2019-05-29 23:25:29

by Mauro Carvalho Chehab

[permalink] [raw]
Subject: [PATCH 13/22] docs: zh_CN: avoid duplicate citation references

Documentation/process/management-style.rst:35: WARNING: duplicate label decisions, other instance in Documentation/translations/zh_CN/process/management-style.rst
Documentation/process/programming-language.rst:37: WARNING: duplicate citation c-language, other instance in Documentation/translations/zh_CN/process/programming-language.rst
Documentation/process/programming-language.rst:38: WARNING: duplicate citation gcc, other instance in Documentation/translations/zh_CN/process/programming-language.rst
Documentation/process/programming-language.rst:39: WARNING: duplicate citation clang, other instance in Documentation/translations/zh_CN/process/programming-language.rst
Documentation/process/programming-language.rst:40: WARNING: duplicate citation icc, other instance in Documentation/translations/zh_CN/process/programming-language.rst
Documentation/process/programming-language.rst:41: WARNING: duplicate citation gcc-c-dialect-options, other instance in Documentation/translations/zh_CN/process/programming-language.rst
Documentation/process/programming-language.rst:42: WARNING: duplicate citation gnu-extensions, other instance in Documentation/translations/zh_CN/process/programming-language.rst
Documentation/process/programming-language.rst:43: WARNING: duplicate citation gcc-attribute-syntax, other instance in Documentation/translations/zh_CN/process/programming-language.rst
Documentation/process/programming-language.rst:44: WARNING: duplicate citation n2049, other instance in Documentation/translations/zh_CN/process/programming-language.rst

Signed-off-by: Mauro Carvalho Chehab <[email protected]>
---
.../zh_CN/process/management-style.rst | 4 +--
.../zh_CN/process/programming-language.rst | 28 +++++++++----------
2 files changed, 16 insertions(+), 16 deletions(-)

diff --git a/Documentation/translations/zh_CN/process/management-style.rst b/Documentation/translations/zh_CN/process/management-style.rst
index a181fa56d19e..c6a5bb285797 100644
--- a/Documentation/translations/zh_CN/process/management-style.rst
+++ b/Documentation/translations/zh_CN/process/management-style.rst
@@ -28,7 +28,7 @@ Linux内核管理风格

不管怎样,这里是:

-.. _decisions:
+.. _cn_decisions:

1)决策
-------
@@ -108,7 +108,7 @@ Linux内核管理风格
但是,为了做好作为内核管理者的准备,最好记住不要烧掉任何桥梁,不要轰炸任何
无辜的村民,也不要疏远太多的内核开发人员。事实证明,疏远人是相当容易的,而
亲近一个疏远的人是很难的。因此,“疏远”立即属于“不可逆”的范畴,并根据
-:ref:`decisions` 成为绝不可以做的事情。
+:ref:`cn_decisions` 成为绝不可以做的事情。

这里只有几个简单的规则:

diff --git a/Documentation/translations/zh_CN/process/programming-language.rst b/Documentation/translations/zh_CN/process/programming-language.rst
index 51fd4ef48ea1..9de9a3108c4d 100644
--- a/Documentation/translations/zh_CN/process/programming-language.rst
+++ b/Documentation/translations/zh_CN/process/programming-language.rst
@@ -8,21 +8,21 @@
程序设计语言
============

-内核是用C语言 [c-language]_ 编写的。更准确地说,内核通常是用 ``gcc`` [gcc]_
-在 ``-std=gnu89`` [gcc-c-dialect-options]_ 下编译的:ISO C90的 GNU 方言(
+内核是用C语言 [cn_c-language]_ 编写的。更准确地说,内核通常是用 ``gcc`` [cn_gcc]_
+在 ``-std=gnu89`` [cn_gcc-c-dialect-options]_ 下编译的:ISO C90的 GNU 方言(
包括一些C99特性)

-这种方言包含对语言 [gnu-extensions]_ 的许多扩展,当然,它们许多都在内核中使用。
+这种方言包含对语言 [cn_gnu-extensions]_ 的许多扩展,当然,它们许多都在内核中使用。

-对于一些体系结构,有一些使用 ``clang`` [clang]_ 和 ``icc`` [icc]_ 编译内核
+对于一些体系结构,有一些使用 ``clang`` [cn_clang]_ 和 ``icc`` [cn_icc]_ 编译内核
的支持,尽管在编写此文档时还没有完成,仍需要第三方补丁。

属性
----

-在整个内核中使用的一个常见扩展是属性(attributes) [gcc-attribute-syntax]_
+在整个内核中使用的一个常见扩展是属性(attributes) [cn_gcc-attribute-syntax]_
属性允许将实现定义的语义引入语言实体(如变量、函数或类型),而无需对语言进行
-重大的语法更改(例如添加新关键字) [n2049]_
+重大的语法更改(例如添加新关键字) [cn_n2049]_

在某些情况下,属性是可选的(即不支持这些属性的编译器仍然应该生成正确的代码,
即使其速度较慢或执行的编译时检查/诊断次数不够)
@@ -31,11 +31,11 @@
``__attribute__((__pure__))`` ),以检测可以使用哪些关键字和/或缩短代码, 具体
请参阅 ``include/linux/compiler_attributes.h``

-.. [c-language] http://www.open-std.org/jtc1/sc22/wg14/www/standards
-.. [gcc] https://gcc.gnu.org
-.. [clang] https://clang.llvm.org
-.. [icc] https://software.intel.com/en-us/c-compilers
-.. [gcc-c-dialect-options] https://gcc.gnu.org/onlinedocs/gcc/C-Dialect-Options.html
-.. [gnu-extensions] https://gcc.gnu.org/onlinedocs/gcc/C-Extensions.html
-.. [gcc-attribute-syntax] https://gcc.gnu.org/onlinedocs/gcc/Attribute-Syntax.html
-.. [n2049] http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2049.pdf
+.. [cn_c-language] http://www.open-std.org/jtc1/sc22/wg14/www/standards
+.. [cn_gcc] https://gcc.gnu.org
+.. [cn_clang] https://clang.llvm.org
+.. [cn_icc] https://software.intel.com/en-us/c-compilers
+.. [cn_gcc-c-dialect-options] https://gcc.gnu.org/onlinedocs/gcc/C-Dialect-Options.html
+.. [cn_gnu-extensions] https://gcc.gnu.org/onlinedocs/gcc/C-Extensions.html
+.. [cn_gcc-attribute-syntax] https://gcc.gnu.org/onlinedocs/gcc/Attribute-Syntax.html
+.. [cn_n2049] http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2049.pdf
--
2.21.0


2019-06-02 15:02:58

by Alex Shi

[permalink] [raw]
Subject: Re: [PATCH 13/22] docs: zh_CN: avoid duplicate citation references



On 2019/5/30 7:23 上午, Mauro Carvalho Chehab wrote:
> Documentation/process/management-style.rst:35: WARNING: duplicate label decisions, other instance in Documentation/translations/zh_CN/process/management-style.rst
> Documentation/process/programming-language.rst:37: WARNING: duplicate citation c-language, other instance in Documentation/translations/zh_CN/process/programming-language.rst
> Documentation/process/programming-language.rst:38: WARNING: duplicate citation gcc, other instance in Documentation/translations/zh_CN/process/programming-language.rst
> Documentation/process/programming-language.rst:39: WARNING: duplicate citation clang, other instance in Documentation/translations/zh_CN/process/programming-language.rst
> Documentation/process/programming-language.rst:40: WARNING: duplicate citation icc, other instance in Documentation/translations/zh_CN/process/programming-language.rst
> Documentation/process/programming-language.rst:41: WARNING: duplicate citation gcc-c-dialect-options, other instance in Documentation/translations/zh_CN/process/programming-language.rst
> Documentation/process/programming-language.rst:42: WARNING: duplicate citation gnu-extensions, other instance in Documentation/translations/zh_CN/process/programming-language.rst
> Documentation/process/programming-language.rst:43: WARNING: duplicate citation gcc-attribute-syntax, other instance in Documentation/translations/zh_CN/process/programming-language.rst
> Documentation/process/programming-language.rst:44: WARNING: duplicate citation n2049, other instance in Documentation/translations/zh_CN/process/programming-language.rst
>
> Signed-off-by: Mauro Carvalho Chehab <[email protected]>
> ---
> .../zh_CN/process/management-style.rst | 4 +--
> .../zh_CN/process/programming-language.rst | 28 +++++++++----------
> 2 files changed, 16 insertions(+), 16 deletions(-)
>
> diff --git a/Documentation/translations/zh_CN/process/management-style.rst b/Documentation/translations/zh_CN/process/management-style.rst
> index a181fa56d19e..c6a5bb285797 100644
> --- a/Documentation/translations/zh_CN/process/management-style.rst
> +++ b/Documentation/translations/zh_CN/process/management-style.rst
> @@ -28,7 +28,7 @@ Linux内核管理风格
>
> 不管怎样,这里是:
>
> -.. _decisions:
> +.. _cn_decisions:
>
> 1)决策
> -------
> @@ -108,7 +108,7 @@ Linux内核管理风格
> 但是,为了做好作为内核管理者的准备,最好记住不要烧掉任何桥梁,不要轰炸任何
> 无辜的村民,也不要疏远太多的内核开发人员。事实证明,疏远人是相当容易的,而
> 亲近一个疏远的人是很难的。因此,“疏远”立即属于“不可逆”的范畴,并根据
> -:ref:`decisions` 成为绝不可以做的事情。
> +:ref:`cn_decisions` 成为绝不可以做的事情。

It's good to have.

>
> 这里只有几个简单的规则:
>
> diff --git a/Documentation/translations/zh_CN/process/programming-language.rst b/Documentation/translations/zh_CN/process/programming-language.rst
> index 51fd4ef48ea1..9de9a3108c4d 100644
> --- a/Documentation/translations/zh_CN/process/programming-language.rst
> +++ b/Documentation/translations/zh_CN/process/programming-language.rst
> @@ -8,21 +8,21 @@
> 程序设计语言
> ============
>
> -内核是用C语言 [c-language]_ 编写的。更准确地说,内核通常是用 ``gcc`` [gcc]_
> -在 ``-std=gnu89`` [gcc-c-dialect-options]_ 下编译的:ISO C90的 GNU 方言(
> +内核是用C语言 [cn_c-language]_ 编写的。更准确地说,内核通常是用 ``gcc`` [cn_gcc]_

this change isn't good. cn_gcc will show in docs, it looks wired and confusing for peoples. other changes have the same issue. Could you find other way to fix the warning? or I'd rather tolerant it.

Thanks
Alex

2019-06-04 10:23:44

by Mauro Carvalho Chehab

[permalink] [raw]
Subject: Re: [PATCH 13/22] docs: zh_CN: avoid duplicate citation references

Em Sun, 2 Jun 2019 23:01:21 +0800
Alex Shi <[email protected]> escreveu:

> On 2019/5/30 7:23 上午, Mauro Carvalho Chehab wrote:
> > Documentation/process/management-style.rst:35: WARNING: duplicate label decisions, other instance in Documentation/translations/zh_CN/process/management-style.rst
> > Documentation/process/programming-language.rst:37: WARNING: duplicate citation c-language, other instance in Documentation/translations/zh_CN/process/programming-language.rst
> > Documentation/process/programming-language.rst:38: WARNING: duplicate citation gcc, other instance in Documentation/translations/zh_CN/process/programming-language.rst
> > Documentation/process/programming-language.rst:39: WARNING: duplicate citation clang, other instance in Documentation/translations/zh_CN/process/programming-language.rst
> > Documentation/process/programming-language.rst:40: WARNING: duplicate citation icc, other instance in Documentation/translations/zh_CN/process/programming-language.rst
> > Documentation/process/programming-language.rst:41: WARNING: duplicate citation gcc-c-dialect-options, other instance in Documentation/translations/zh_CN/process/programming-language.rst
> > Documentation/process/programming-language.rst:42: WARNING: duplicate citation gnu-extensions, other instance in Documentation/translations/zh_CN/process/programming-language.rst
> > Documentation/process/programming-language.rst:43: WARNING: duplicate citation gcc-attribute-syntax, other instance in Documentation/translations/zh_CN/process/programming-language.rst
> > Documentation/process/programming-language.rst:44: WARNING: duplicate citation n2049, other instance in Documentation/translations/zh_CN/process/programming-language.rst
> >
> > Signed-off-by: Mauro Carvalho Chehab <[email protected]>
> > ---
> > .../zh_CN/process/management-style.rst | 4 +--
> > .../zh_CN/process/programming-language.rst | 28 +++++++++----------
> > 2 files changed, 16 insertions(+), 16 deletions(-)
> >
> > diff --git a/Documentation/translations/zh_CN/process/management-style.rst b/Documentation/translations/zh_CN/process/management-style.rst
> > index a181fa56d19e..c6a5bb285797 100644
> > --- a/Documentation/translations/zh_CN/process/management-style.rst
> > +++ b/Documentation/translations/zh_CN/process/management-style.rst
> > @@ -28,7 +28,7 @@ Linux内核管理风格
> >
> > 不管怎样,这里是:
> >
> > -.. _decisions:
> > +.. _cn_decisions:
> >
> > 1)决策
> > -------
> > @@ -108,7 +108,7 @@ Linux内核管理风格
> > 但是,为了做好作为内核管理者的准备,最好记住不要烧掉任何桥梁,不要轰炸任何
> > 无辜的村民,也不要疏远太多的内核开发人员。事实证明,疏远人是相当容易的,而
> > 亲近一个疏远的人是很难的。因此,“疏远”立即属于“不可逆”的范畴,并根据
> > -:ref:`decisions` 成为绝不可以做的事情。
> > +:ref:`cn_decisions` 成为绝不可以做的事情。
>
> It's good to have.
>
> >
> > 这里只有几个简单的规则:
> >
> > diff --git a/Documentation/translations/zh_CN/process/programming-language.rst b/Documentation/translations/zh_CN/process/programming-language.rst
> > index 51fd4ef48ea1..9de9a3108c4d 100644
> > --- a/Documentation/translations/zh_CN/process/programming-language.rst
> > +++ b/Documentation/translations/zh_CN/process/programming-language.rst
> > @@ -8,21 +8,21 @@
> > 程序设计语言
> > ============
> >
> > -内核是用C语言 [c-language]_ 编写的。更准确地说,内核通常是用 ``gcc`` [gcc]_
> > -在 ``-std=gnu89`` [gcc-c-dialect-options]_ 下编译的:ISO C90的 GNU 方言(
> > +内核是用C语言 [cn_c-language]_ 编写的。更准确地说,内核通常是用 ``gcc`` [cn_gcc]_
>
> this change isn't good. cn_gcc will show in docs, it looks wired and confusing for peoples. other changes have the same issue. Could you find other way to fix the warning? or I'd rather tolerant it.

Well, Sphinx has a way to do that, like, for example:

diff --git a/Documentation/translations/zh_CN/process/programming-language.rst b/Documentation/translations/zh_CN/process/programming-language.rst
index 9de9a3108c4d..353fb8eaf4b5 100644
--- a/Documentation/translations/zh_CN/process/programming-language.rst
+++ b/Documentation/translations/zh_CN/process/programming-language.rst
@@ -9,7 +9,7 @@
============

内核是用C语言 [cn_c-language]_ 编写的。更准确地说,内核通常是用 ``gcc`` [cn_gcc]_
-在 ``-std=gnu89`` [cn_gcc-c-dialect-options]_ 下编译的:ISO C90的 GNU 方言(
+在 ``-std=gnu89`` :ref:`gcc C dialect options <cn_gcc-c-dialect-options>` 下编译的:ISO C90的 GNU 方言(
包括一些C99特性)

这种方言包含对语言 [cn_gnu-extensions]_ 的许多扩展,当然,它们许多都在内核中使用。

If we use that, at least for some of those references, it would probably
be better to translate "dialect-options" (and similar terms) to Chinese.

Thanks,
Mauro

2019-06-04 10:45:13

by Mauro Carvalho Chehab

[permalink] [raw]
Subject: Re: [PATCH 13/22] docs: zh_CN: avoid duplicate citation references

Em Tue, 4 Jun 2019 07:20:57 -0300
Mauro Carvalho Chehab <[email protected]> escreveu:

> Em Sun, 2 Jun 2019 23:01:21 +0800
> Alex Shi <[email protected]> escreveu:
>
> > On 2019/5/30 7:23 上午, Mauro Carvalho Chehab wrote:
> > > Documentation/process/management-style.rst:35: WARNING: duplicate label decisions, other instance in Documentation/translations/zh_CN/process/management-style.rst
> > > Documentation/process/programming-language.rst:37: WARNING: duplicate citation c-language, other instance in Documentation/translations/zh_CN/process/programming-language.rst
> > > Documentation/process/programming-language.rst:38: WARNING: duplicate citation gcc, other instance in Documentation/translations/zh_CN/process/programming-language.rst
> > > Documentation/process/programming-language.rst:39: WARNING: duplicate citation clang, other instance in Documentation/translations/zh_CN/process/programming-language.rst
> > > Documentation/process/programming-language.rst:40: WARNING: duplicate citation icc, other instance in Documentation/translations/zh_CN/process/programming-language.rst
> > > Documentation/process/programming-language.rst:41: WARNING: duplicate citation gcc-c-dialect-options, other instance in Documentation/translations/zh_CN/process/programming-language.rst
> > > Documentation/process/programming-language.rst:42: WARNING: duplicate citation gnu-extensions, other instance in Documentation/translations/zh_CN/process/programming-language.rst
> > > Documentation/process/programming-language.rst:43: WARNING: duplicate citation gcc-attribute-syntax, other instance in Documentation/translations/zh_CN/process/programming-language.rst
> > > Documentation/process/programming-language.rst:44: WARNING: duplicate citation n2049, other instance in Documentation/translations/zh_CN/process/programming-language.rst
> > >
> > > Signed-off-by: Mauro Carvalho Chehab <[email protected]>
> > > ---
> > > .../zh_CN/process/management-style.rst | 4 +--
> > > .../zh_CN/process/programming-language.rst | 28 +++++++++----------
> > > 2 files changed, 16 insertions(+), 16 deletions(-)
> > >
> > > diff --git a/Documentation/translations/zh_CN/process/management-style.rst b/Documentation/translations/zh_CN/process/management-style.rst
> > > index a181fa56d19e..c6a5bb285797 100644
> > > --- a/Documentation/translations/zh_CN/process/management-style.rst
> > > +++ b/Documentation/translations/zh_CN/process/management-style.rst
> > > @@ -28,7 +28,7 @@ Linux内核管理风格
> > >
> > > 不管怎样,这里是:
> > >
> > > -.. _decisions:
> > > +.. _cn_decisions:
> > >
> > > 1)决策
> > > -------
> > > @@ -108,7 +108,7 @@ Linux内核管理风格
> > > 但是,为了做好作为内核管理者的准备,最好记住不要烧掉任何桥梁,不要轰炸任何
> > > 无辜的村民,也不要疏远太多的内核开发人员。事实证明,疏远人是相当容易的,而
> > > 亲近一个疏远的人是很难的。因此,“疏远”立即属于“不可逆”的范畴,并根据
> > > -:ref:`decisions` 成为绝不可以做的事情。
> > > +:ref:`cn_decisions` 成为绝不可以做的事情。
> >
> > It's good to have.
> >
> > >
> > > 这里只有几个简单的规则:
> > >
> > > diff --git a/Documentation/translations/zh_CN/process/programming-language.rst b/Documentation/translations/zh_CN/process/programming-language.rst
> > > index 51fd4ef48ea1..9de9a3108c4d 100644
> > > --- a/Documentation/translations/zh_CN/process/programming-language.rst
> > > +++ b/Documentation/translations/zh_CN/process/programming-language.rst
> > > @@ -8,21 +8,21 @@
> > > 程序设计语言
> > > ============
> > >
> > > -内核是用C语言 [c-language]_ 编写的。更准确地说,内核通常是用 ``gcc`` [gcc]_
> > > -在 ``-std=gnu89`` [gcc-c-dialect-options]_ 下编译的:ISO C90的 GNU 方言(
> > > +内核是用C语言 [cn_c-language]_ 编写的。更准确地说,内核通常是用 ``gcc`` [cn_gcc]_
> >
> > this change isn't good. cn_gcc will show in docs, it looks wired and confusing for peoples. other changes have the same issue. Could you find other way to fix the warning? or I'd rather tolerant it.
>
> Well, Sphinx has a way to do that, like, for example:
>
> diff --git a/Documentation/translations/zh_CN/process/programming-language.rst b/Documentation/translations/zh_CN/process/programming-language.rst
> index 9de9a3108c4d..353fb8eaf4b5 100644
> --- a/Documentation/translations/zh_CN/process/programming-language.rst
> +++ b/Documentation/translations/zh_CN/process/programming-language.rst
> @@ -9,7 +9,7 @@
> ============
>
> 内核是用C语言 [cn_c-language]_ 编写的。更准确地说,内核通常是用 ``gcc`` [cn_gcc]_
> -在 ``-std=gnu89`` [cn_gcc-c-dialect-options]_ 下编译的:ISO C90的 GNU 方言(
> +在 ``-std=gnu89`` :ref:`gcc C dialect options <cn_gcc-c-dialect-options>` 下编译的:ISO C90的 GNU 方言(
> 包括一些C99特性)
>
> 这种方言包含对语言 [cn_gnu-extensions]_ 的许多扩展,当然,它们许多都在内核中使用。
>
> If we use that, at least for some of those references, it would probably
> be better to translate "dialect-options" (and similar terms) to Chinese.
>
> Thanks,
> Mauro

Thanks,
Mauro

This should do the work:

[PATCH] docs: zh_CN: avoid duplicate citation references

Documentation/process/management-style.rst:35: WARNING: duplicate label decisions, other instance in Documentation/translations/zh_CN/process/management-style.rst
Documentation/process/programming-language.rst:37: WARNING: duplicate citation c-language, other instance in Documentation/translations/zh_CN/process/programming-language.rst
Documentation/process/programming-language.rst:38: WARNING: duplicate citation gcc, other instance in Documentation/translations/zh_CN/process/programming-language.rst
Documentation/process/programming-language.rst:39: WARNING: duplicate citation clang, other instance in Documentation/translations/zh_CN/process/programming-language.rst
Documentation/process/programming-language.rst:40: WARNING: duplicate citation icc, other instance in Documentation/translations/zh_CN/process/programming-language.rst
Documentation/process/programming-language.rst:41: WARNING: duplicate citation gcc-c-dialect-options, other instance in Documentation/translations/zh_CN/process/programming-language.rst
Documentation/process/programming-language.rst:42: WARNING: duplicate citation gnu-extensions, other instance in Documentation/translations/zh_CN/process/programming-language.rst
Documentation/process/programming-language.rst:43: WARNING: duplicate citation gcc-attribute-syntax, other instance in Documentation/translations/zh_CN/process/programming-language.rst
Documentation/process/programming-language.rst:44: WARNING: duplicate citation n2049, other instance in Documentation/translations/zh_CN/process/programming-language.rst

Signed-off-by: Mauro Carvalho Chehab <[email protected]>

diff --git a/Documentation/translations/zh_CN/process/management-style.rst b/Documentation/translations/zh_CN/process/management-style.rst
index a181fa56d19e..c6a5bb285797 100644
--- a/Documentation/translations/zh_CN/process/management-style.rst
+++ b/Documentation/translations/zh_CN/process/management-style.rst
@@ -28,7 +28,7 @@ Linux内核管理风格

不管怎样,这里是:

-.. _decisions:
+.. _cn_decisions:

1)决策
-------
@@ -108,7 +108,7 @@ Linux内核管理风格
但是,为了做好作为内核管理者的准备,最好记住不要烧掉任何桥梁,不要轰炸任何
无辜的村民,也不要疏远太多的内核开发人员。事实证明,疏远人是相当容易的,而
亲近一个疏远的人是很难的。因此,“疏远”立即属于“不可逆”的范畴,并根据
-:ref:`decisions` 成为绝不可以做的事情。
+:ref:`cn_decisions` 成为绝不可以做的事情。

这里只有几个简单的规则:

diff --git a/Documentation/translations/zh_CN/process/programming-language.rst b/Documentation/translations/zh_CN/process/programming-language.rst
index 51fd4ef48ea1..22b0e68c8360 100644
--- a/Documentation/translations/zh_CN/process/programming-language.rst
+++ b/Documentation/translations/zh_CN/process/programming-language.rst
@@ -8,21 +8,21 @@
程序设计语言
============

-内核是用C语言 [c-language]_ 编写的。更准确地说,内核通常是用 ``gcc`` [gcc]_
-在 ``-std=gnu89`` [gcc-c-dialect-options]_ 下编译的:ISO C90的 GNU 方言(
+内核是用C语言 :ref:`c-language <cn_c-language>` 编写的。更准确地说,内核通常是用 ``gcc`` :ref:`gcc <cn_gcc>`
+在 ``-std=gnu89`` :ref:`gcc-c-dialect-options <cn_gcc-c-dialect-options>` 下编译的:ISO C90的 GNU 方言(
包括一些C99特性)

-这种方言包含对语言 [gnu-extensions]_ 的许多扩展,当然,它们许多都在内核中使用。
+这种方言包含对语言 :ref:`gnu-extensions <cn_gnu-extensions>` 的许多扩展,当然,它们许多都在内核中使用。

-对于一些体系结构,有一些使用 ``clang`` [clang]_ 和 ``icc`` [icc]_ 编译内核
+对于一些体系结构,有一些使用 ``clang`` :ref:`clang <cn_clang>` 和 ``icc`` :ref:`icc <cn_icc>` 编译内核
的支持,尽管在编写此文档时还没有完成,仍需要第三方补丁。

属性
----

-在整个内核中使用的一个常见扩展是属性(attributes) [gcc-attribute-syntax]_
+在整个内核中使用的一个常见扩展是属性(attributes) :ref:`gcc-attribute-syntax <cn_gcc-attribute-syntax>`
属性允许将实现定义的语义引入语言实体(如变量、函数或类型),而无需对语言进行
-重大的语法更改(例如添加新关键字) [n2049]_
+重大的语法更改(例如添加新关键字) :ref:`n2049 <cn_n2049>`

在某些情况下,属性是可选的(即不支持这些属性的编译器仍然应该生成正确的代码,
即使其速度较慢或执行的编译时检查/诊断次数不够)
@@ -31,11 +31,42 @@
``__attribute__((__pure__))`` ),以检测可以使用哪些关键字和/或缩短代码, 具体
请参阅 ``include/linux/compiler_attributes.h``

-.. [c-language] http://www.open-std.org/jtc1/sc22/wg14/www/standards
-.. [gcc] https://gcc.gnu.org
-.. [clang] https://clang.llvm.org
-.. [icc] https://software.intel.com/en-us/c-compilers
-.. [gcc-c-dialect-options] https://gcc.gnu.org/onlinedocs/gcc/C-Dialect-Options.html
-.. [gnu-extensions] https://gcc.gnu.org/onlinedocs/gcc/C-Extensions.html
-.. [gcc-attribute-syntax] https://gcc.gnu.org/onlinedocs/gcc/Attribute-Syntax.html
-.. [n2049] http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2049.pdf
+.. _cn_c-language:
+
+c-language
+ http://www.open-std.org/jtc1/sc22/wg14/www/standards
+
+.. _cn_gcc:
+
+gcc
+ https://gcc.gnu.org
+
+.. _cn_clang:
+
+clang
+ https://clang.llvm.org
+
+.. _cn_icc:
+
+icc
+ https://software.intel.com/en-us/c-compilers
+
+.. _cn_gcc-c-dialect-options:
+
+c-dialect-options
+ https://gcc.gnu.org/onlinedocs/gcc/C-Dialect-Options.html
+
+.. _cn_gnu-extensions:
+
+gnu-extensions
+ https://gcc.gnu.org/onlinedocs/gcc/C-Extensions.html
+
+.. _cn_gcc-attribute-syntax:
+
+gcc-attribute-syntax
+ https://gcc.gnu.org/onlinedocs/gcc/Attribute-Syntax.html
+
+.. _cn_n2049:
+
+n2049
+ http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2049.pdf