* [RFC PATCH 2/2] kbuild: Rename and use BINUTILS_VERSION where needed
@ 2020-04-19 13:21 Sedat Dilek
2020-04-19 16:40 ` Nathan Chancellor
2020-04-24 2:38 ` Masahiro Yamada
0 siblings, 2 replies; 3+ messages in thread
From: Sedat Dilek @ 2020-04-19 13:21 UTC (permalink / raw)
To: Catalin Marinas, Will Deacon, Masahiro Yamada, Masami Hiramatsu,
Steven Rostedt (VMware), Jessica Yu, Peter Zijlstra (Intel),
Mauro Carvalho Chehab, Joel Fernandes (Google), Patrick Bellasi,
Krzysztof Kozlowski, Dan Williams, Eric W. Biederman,
linux-arm-kernel, linux-kernel
Cc: Sedat Dilek
In the first patch I introduced LD_IS_BINUTILS Kconfig.
To be consistent in naming convention I renamed from LD_VERSION
to BINUTILS_VERSION.
So, we have the double "LD_IS_BINUTILS" and "BINUTILS_VERSION"
like "CC_IS_GCC" and "GCC_VERSION".
For the same reason I renamed the shell script to detect the GNU ld
linker version.
In Documentation/process/changes.rst we use "binutils" and GNU ld
binary is part of it (see [3]).
The patches "init/kconfig: Add LD_VERSION Kconfig" (see [1]) and
"arm64: Kconfig: ptrauth: Add binutils version check to fix mismatch"
(see [2]) added checks for binutils >=2.23.1 whereas binutils
version 2.23 is minimum supported version (see [3]).
I have renamed to BINUTILS_VERSION where needed.
[1] https://git.kernel.org/linus/9553d16fa671b9621c5e2847d08bd90d3be3349c
[2] https://git.kernel.org/linus/15cd0e675f3f76b4d21c313795fe0c23df0ee20f
[3] https://git.kernel.org/linus/Documentation/process/changes.rst#n79
Signed-off-by: Sedat Dilek <sedat.dilek@gmail.com>
---
arch/arm64/Kconfig | 2 +-
init/Kconfig | 4 ++--
scripts/{ld-version.sh => binutils-version.sh} | 0
3 files changed, 3 insertions(+), 3 deletions(-)
rename scripts/{ld-version.sh => binutils-version.sh} (100%)
diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
index 40fb05d96c60..274ba9b3ac95 100644
--- a/arch/arm64/Kconfig
+++ b/arch/arm64/Kconfig
@@ -1504,7 +1504,7 @@ config ARM64_PTR_AUTH
depends on (CC_HAS_SIGN_RETURN_ADDRESS || CC_HAS_BRANCH_PROT_PAC_RET) && AS_HAS_PAC
# GCC 9.1 and later inserts a .note.gnu.property section note for PAC
# which is only understood by binutils starting with version 2.33.1.
- depends on !CC_IS_GCC || GCC_VERSION < 90100 || LD_VERSION >= 233010000
+ depends on !CC_IS_GCC || GCC_VERSION < 90100 || BINUTILS_VERSION >= 233010000
depends on !CC_IS_CLANG || AS_HAS_CFI_NEGATE_RA_STATE
depends on (!FUNCTION_GRAPH_TRACER || DYNAMIC_FTRACE_WITH_REGS)
help
diff --git a/init/Kconfig b/init/Kconfig
index 520116efea0f..946db4786951 100644
--- a/init/Kconfig
+++ b/init/Kconfig
@@ -19,9 +19,9 @@ config GCC_VERSION
config LD_IS_BINUTILS
def_bool $(success,$(LD) -v | head -n 1 | grep -q 'GNU ld')
-config LD_VERSION
+config BINUTILS_VERSION
int
- default $(shell,$(LD) --version | $(srctree)/scripts/ld-version.sh) if LD_IS_BINUTILS
+ default $(shell,$(LD) --version | $(srctree)/scripts/binutils-version.sh) if LD_IS_BINUTILS
config CC_IS_CLANG
def_bool $(success,$(CC) --version | head -n 1 | grep -q clang)
diff --git a/scripts/ld-version.sh b/scripts/binutils-version.sh
similarity index 100%
rename from scripts/ld-version.sh
rename to scripts/binutils-version.sh
--
2.26.1
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [RFC PATCH 2/2] kbuild: Rename and use BINUTILS_VERSION where needed
2020-04-19 13:21 [RFC PATCH 2/2] kbuild: Rename and use BINUTILS_VERSION where needed Sedat Dilek
@ 2020-04-19 16:40 ` Nathan Chancellor
2020-04-24 2:38 ` Masahiro Yamada
1 sibling, 0 replies; 3+ messages in thread
From: Nathan Chancellor @ 2020-04-19 16:40 UTC (permalink / raw)
To: Sedat Dilek
Cc: Krzysztof Kozlowski, Peter Zijlstra (Intel), Catalin Marinas,
Masahiro Yamada, linux-kernel, Steven Rostedt (VMware),
Patrick Bellasi, Joel Fernandes (Google), Masami Hiramatsu,
Jessica Yu, Mauro Carvalho Chehab, Dan Williams, Will Deacon,
linux-arm-kernel, Eric W. Biederman
Hi Sedat,
On Sun, Apr 19, 2020 at 03:21:42PM +0200, Sedat Dilek wrote:
> In the first patch I introduced LD_IS_BINUTILS Kconfig.
This sentence can removed, this offers no context when applied to the
git tree.
> To be consistent in naming convention I renamed from LD_VERSION
> to BINUTILS_VERSION.
Is this the only motivation behind this patch? Is this fixing a bug that
you have notice or is it just because there is a linker aside from GNU
ld that works with the kernel?
> So, we have the double "LD_IS_BINUTILS" and "BINUTILS_VERSION"
> like "CC_IS_GCC" and "GCC_VERSION".
>
> For the same reason I renamed the shell script to detect the GNU ld
> linker version.
>
> In Documentation/process/changes.rst we use "binutils" and GNU ld
> binary is part of it (see [3]).
^ Kind of weird to have 3 come before 1 and 2
I also don't think that linking to the documentation like that is
necessary.
> The patches "init/kconfig: Add LD_VERSION Kconfig" (see [1]) and
> "arm64: Kconfig: ptrauth: Add binutils version check to fix mismatch"
> (see [2]) added checks for binutils >=2.23.1 whereas binutils
^2.33.1
> version 2.23 is minimum supported version (see [3]).
I am not sure what relevance this parapgraph has to the patch?
If it is indeed relevant, it should be reworked to use the standard
kernel way of referring to commits:
9553d16fa671 ("init/kconfig: Add LD_VERSION Kconfig")
15cd0e675f3f ("arm64: Kconfig: ptrauth: Add binutils version check to fix mismatch")
instead of the title of the patch with a link to the web interface.
> I have renamed to BINUTILS_VERSION where needed.
>
> [1] https://git.kernel.org/linus/9553d16fa671b9621c5e2847d08bd90d3be3349c
> [2] https://git.kernel.org/linus/15cd0e675f3f76b4d21c313795fe0c23df0ee20f
> [3] https://git.kernel.org/linus/Documentation/process/changes.rst#n79
>
> Signed-off-by: Sedat Dilek <sedat.dilek@gmail.com>
> ---
> arch/arm64/Kconfig | 2 +-
> init/Kconfig | 4 ++--
> scripts/{ld-version.sh => binutils-version.sh} | 0
> 3 files changed, 3 insertions(+), 3 deletions(-)
> rename scripts/{ld-version.sh => binutils-version.sh} (100%)
>
> diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
> index 40fb05d96c60..274ba9b3ac95 100644
> --- a/arch/arm64/Kconfig
> +++ b/arch/arm64/Kconfig
> @@ -1504,7 +1504,7 @@ config ARM64_PTR_AUTH
> depends on (CC_HAS_SIGN_RETURN_ADDRESS || CC_HAS_BRANCH_PROT_PAC_RET) && AS_HAS_PAC
> # GCC 9.1 and later inserts a .note.gnu.property section note for PAC
> # which is only understood by binutils starting with version 2.33.1.
> - depends on !CC_IS_GCC || GCC_VERSION < 90100 || LD_VERSION >= 233010000
> + depends on !CC_IS_GCC || GCC_VERSION < 90100 || BINUTILS_VERSION >= 233010000
> depends on !CC_IS_CLANG || AS_HAS_CFI_NEGATE_RA_STATE
> depends on (!FUNCTION_GRAPH_TRACER || DYNAMIC_FTRACE_WITH_REGS)
> help
> diff --git a/init/Kconfig b/init/Kconfig
> index 520116efea0f..946db4786951 100644
> --- a/init/Kconfig
> +++ b/init/Kconfig
> @@ -19,9 +19,9 @@ config GCC_VERSION
> config LD_IS_BINUTILS
> def_bool $(success,$(LD) -v | head -n 1 | grep -q 'GNU ld')
>
> -config LD_VERSION
> +config BINUTILS_VERSION
> int
> - default $(shell,$(LD) --version | $(srctree)/scripts/ld-version.sh) if LD_IS_BINUTILS
> + default $(shell,$(LD) --version | $(srctree)/scripts/binutils-version.sh) if LD_IS_BINUTILS
This is not the only place that ld-version.sh is used, all of these
spots need to be updated with the move.
$ rg --no-heading "ld-version.sh"
scripts/coccicheck:SPATCH_VERSION_NUM=$(echo $SPATCH_VERSION | ${DIR}/scripts/ld-version.sh)
scripts/coccicheck: REQ_NUM=$(echo $REQ | ${DIR}/scripts/ld-version.sh)
scripts/nsdeps:SPATCH_REQ_VERSION_NUM=$(echo $SPATCH_REQ_VERSION | ${DIR}/scripts/ld-version.sh)
scripts/nsdeps:SPATCH_VERSION_NUM=$(echo $SPATCH_VERSION | ${DIR}/scripts/ld-version.sh)
scripts/Kbuild.include:ld-version = $(shell $(LD) --version | $(srctree)/scripts/ld-version.sh)
init/Kconfig: default $(shell,$(LD) --version | $(srctree)/scripts/ld-version.sh)
> config CC_IS_CLANG
> def_bool $(success,$(CC) --version | head -n 1 | grep -q clang)
> diff --git a/scripts/ld-version.sh b/scripts/binutils-version.sh
> similarity index 100%
> rename from scripts/ld-version.sh
> rename to scripts/binutils-version.sh
> --
> 2.26.1
>
For what it's worth, I think the idea behind this patch is fine but I do
not think the first patch in the series is necessary. The only reason
that LD_IS_BINUTILS even exists is to hide BINUTILS_VERSION. However,
the only reason I have seen from you to do this is to match GCC_VERSION.
The reason that CONFIG_GCC_VERSION does not run gcc-version.sh is to
avoid mistaking clang for gcc due to the use of the __GNUC*__ macros.
scripts/ld-version.sh already returns zero for ld.lld so I think that
it is just sufficient to add CONFIG_LD_IS_LLD whenever we are ready for
it (I might have a reason to send it out today, we'll see).
$ ld.lld --version | ./scripts/ld-version.sh
0
Cheers,
Nathan
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [RFC PATCH 2/2] kbuild: Rename and use BINUTILS_VERSION where needed
2020-04-19 13:21 [RFC PATCH 2/2] kbuild: Rename and use BINUTILS_VERSION where needed Sedat Dilek
2020-04-19 16:40 ` Nathan Chancellor
@ 2020-04-24 2:38 ` Masahiro Yamada
1 sibling, 0 replies; 3+ messages in thread
From: Masahiro Yamada @ 2020-04-24 2:38 UTC (permalink / raw)
To: Sedat Dilek
Cc: Krzysztof Kozlowski, Peter Zijlstra (Intel), Catalin Marinas,
Linux Kernel Mailing List, Steven Rostedt (VMware),
Patrick Bellasi, Joel Fernandes (Google), Masami Hiramatsu,
Jessica Yu, Mauro Carvalho Chehab, Dan Williams, Will Deacon,
linux-arm-kernel, Eric W. Biederman
On Sun, Apr 19, 2020 at 10:21 PM Sedat Dilek <sedat.dilek@gmail.com> wrote:
>
> In the first patch I introduced LD_IS_BINUTILS Kconfig.
>
> To be consistent in naming convention I renamed from LD_VERSION
> to BINUTILS_VERSION.
>
> So, we have the double "LD_IS_BINUTILS" and "BINUTILS_VERSION"
> like "CC_IS_GCC" and "GCC_VERSION".
>
> For the same reason I renamed the shell script to detect the GNU ld
> linker version.
>
> In Documentation/process/changes.rst we use "binutils" and GNU ld
> binary is part of it (see [3]).
>
> The patches "init/kconfig: Add LD_VERSION Kconfig" (see [1]) and
> "arm64: Kconfig: ptrauth: Add binutils version check to fix mismatch"
> (see [2]) added checks for binutils >=2.23.1 whereas binutils
> version 2.23 is minimum supported version (see [3]).
>
> I have renamed to BINUTILS_VERSION where needed.
I do not think this is the right thing to do.
As the doc implies
https://lore.kernel.org/lkml/20200224174129.2664-1-ndesaulniers@google.com/T/
we support overriding CC, LD, ... etc. individually.
(such a usage might be rare with LLVM=1 syntax supported, though)
I'd rather want to stick to LD_VERSION
instead of the version of the tool suite.
config BINUTILS_VERSION
int
default $(shell,$(LD) --version |
$(srctree)/scripts/binutils-version.sh) if LD_IS_BINUTILS
This will leave BINUTILS_VERSION empty when LD=ld.lld,
but it looks strange if binutils is still used for other tools.
>
> [1] https://git.kernel.org/linus/9553d16fa671b9621c5e2847d08bd90d3be3349c
> [2] https://git.kernel.org/linus/15cd0e675f3f76b4d21c313795fe0c23df0ee20f
> [3] https://git.kernel.org/linus/Documentation/process/changes.rst#n79
>
> Signed-off-by: Sedat Dilek <sedat.dilek@gmail.com>
> ---
> arch/arm64/Kconfig | 2 +-
> init/Kconfig | 4 ++--
> scripts/{ld-version.sh => binutils-version.sh} | 0
> 3 files changed, 3 insertions(+), 3 deletions(-)
> rename scripts/{ld-version.sh => binutils-version.sh} (100%)
>
> diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
> index 40fb05d96c60..274ba9b3ac95 100644
> --- a/arch/arm64/Kconfig
> +++ b/arch/arm64/Kconfig
> @@ -1504,7 +1504,7 @@ config ARM64_PTR_AUTH
> depends on (CC_HAS_SIGN_RETURN_ADDRESS || CC_HAS_BRANCH_PROT_PAC_RET) && AS_HAS_PAC
> # GCC 9.1 and later inserts a .note.gnu.property section note for PAC
> # which is only understood by binutils starting with version 2.33.1.
> - depends on !CC_IS_GCC || GCC_VERSION < 90100 || LD_VERSION >= 233010000
> + depends on !CC_IS_GCC || GCC_VERSION < 90100 || BINUTILS_VERSION >= 233010000
> depends on !CC_IS_CLANG || AS_HAS_CFI_NEGATE_RA_STATE
> depends on (!FUNCTION_GRAPH_TRACER || DYNAMIC_FTRACE_WITH_REGS)
> help
> diff --git a/init/Kconfig b/init/Kconfig
> index 520116efea0f..946db4786951 100644
> --- a/init/Kconfig
> +++ b/init/Kconfig
> @@ -19,9 +19,9 @@ config GCC_VERSION
> config LD_IS_BINUTILS
> def_bool $(success,$(LD) -v | head -n 1 | grep -q 'GNU ld')
>
> -config LD_VERSION
> +config BINUTILS_VERSION
> int
> - default $(shell,$(LD) --version | $(srctree)/scripts/ld-version.sh) if LD_IS_BINUTILS
> + default $(shell,$(LD) --version | $(srctree)/scripts/binutils-version.sh) if LD_IS_BINUTILS
>
> config CC_IS_CLANG
> def_bool $(success,$(CC) --version | head -n 1 | grep -q clang)
> diff --git a/scripts/ld-version.sh b/scripts/binutils-version.sh
> similarity index 100%
> rename from scripts/ld-version.sh
> rename to scripts/binutils-version.sh
> --
> 2.26.1
>
--
Best Regards
Masahiro Yamada
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2020-04-24 2:39 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-04-19 13:21 [RFC PATCH 2/2] kbuild: Rename and use BINUTILS_VERSION where needed Sedat Dilek
2020-04-19 16:40 ` Nathan Chancellor
2020-04-24 2:38 ` Masahiro Yamada
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).