Re: [PATCH v6] docs/zh_CN: Add dev-tools/kcsan Chinese translation

From: Jonathan Corbet
Date: Fri Aug 16 2024 - 18:28:53 EST


Haoyang Liu <tttturtleruss@xxxxxxxxxxx> writes:

> Translate dev-tools/kcsan commit 31f605a308e6
> ("kcsan, compiler_types: Introduce __data_racy type qualifier")
> into Chinese and add it in dev-tools/zh_CN/index.rst
>
> Signed-off-by: Haoyang Liu <tttturtleruss@xxxxxxxxxxx>
> Reviewed-by: Yanteng Si <siyanteng@xxxxxxxxxxx>
> ---
> v5 -> v6: Fix a typo.
> v4 -> v5: Translate link into Chinese as well according to reviewer's advice.
> v3 -> v4: Added original English text for proper nouns and modified some unclear experessions.
> v2 -> v3: Revised some sentences based on reviewer's suggestions and updated the KTSAN url.
> v1 -> v2: Added commit tag and fixed style problems according to reviewer's suggestions.
>
> .../translations/zh_CN/dev-tools/index.rst | 2 +-
> .../translations/zh_CN/dev-tools/kcsan.rst | 321 ++++++++++++++++++
> 2 files changed, 322 insertions(+), 1 deletion(-)
> create mode 100644 Documentation/translations/zh_CN/dev-tools/kcsan.rst

So I applied this, but ended up unapplying it. It adds a whole pile of
docs build warnings:

Documentation/translations/zh_CN/dev-tools/kcsan:223: ./include/linux/kcsan-checks.h:370: WARNING: Duplicate C declaration, also defined at dev-tools/kcsan:370.
Declaration is '.. c:macro:: ASSERT_EXCLUSIVE_WRITER'.
Documentation/translations/zh_CN/dev-tools/kcsan:223: ./include/linux/kcsan-checks.h:419: WARNING: Duplicate C declaration, also defined at dev-tools/kcsan:419.
Declaration is '.. c:macro:: ASSERT_EXCLUSIVE_WRITER_SCOPED'.
Documentation/translations/zh_CN/dev-tools/kcsan:223: ./include/linux/kcsan-checks.h:451: WARNING: Duplicate C declaration, also defined at dev-tools/kcsan:451.
Declaration is '.. c:macro:: ASSERT_EXCLUSIVE_ACCESS'.

[...]

You really do need to do a build test before sending changes like this.

The problem is the duplicated inclusion caused by the kernel-doc
directive:

> +.. kernel-doc:: include/linux/kcsan-checks.h
> + :functions: ASSERT_EXCLUSIVE_WRITER ASSERT_EXCLUSIVE_WRITER_SCOPED
> + ASSERT_EXCLUSIVE_ACCESS ASSERT_EXCLUSIVE_ACCESS_SCOPED
> + ASSERT_EXCLUSIVE_BITS
>

We really just can't do that with the current build system; the best
thing is to put in a note saying to see the original document for those
declarations.

This would be good to fix, perhaps with a variant of kernel-doc that
doesn't generate the duplicated declarations, but until somebody does
that we have to work around it.

Thanks,

jon