[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <d021d85f-e00e-4795-878f-ee53a5fd886c@csgroup.eu>
Date: Fri, 28 Mar 2025 12:48:53 +0100
From: Christophe Leroy <christophe.leroy@...roup.eu>
To: Madhavan Srinivasan <maddy@...ux.ibm.com>,
Venkat Rao Bagalkote <venkat88@...ux.ibm.com>,
linuxppc-dev <linuxppc-dev@...ts.ozlabs.org>,
LKML <linux-kernel@...r.kernel.org>
Subject: Re: [main-line]Build warnings on PowerPC system
Le 28/03/2025 à 12:14, Madhavan Srinivasan a écrit :
>
>>>> diff --git a/arch/powerpc/boot/wrapper b/arch/powerpc/boot/wrapper
>>>> index 1db60fe13802..09ceb5a42d81 100755
>>>> --- a/arch/powerpc/boot/wrapper
>>>> +++ b/arch/powerpc/boot/wrapper
>>>> @@ -235,7 +235,7 @@ fi
>>>> # suppress some warnings in recent ld versions
>>>> nowarn="-z noexecstack"
>>>> if ! ld_is_lld; then
>>>> - if [ "$LD_VERSION" -ge "$(echo 2.39 | ld_version)" ]; then
>>>> + if [ "$LD_VERSION" -ge "$(echo 2.35 | ld_version)" ]; then
>>>> nowarn="$nowarn --no-warn-rwx-segments"
>>>> fi
>>>> fi
>>> Above change fixes the issue. No warnings observed. Thank you!!
>>
>> Take care, this must be a special version of binutils.
>>
>> With regular 2.36.1 I get following error:
>>
>> $ /opt/gcc/gcc-8.5.0-nolibc/powerpc64-linux/bin/powerpc64-linux-ld --version
>> GNU ld (GNU Binutils) 2.36.1
>> Copyright (C) 2021 Free Software Foundation, Inc.
>> This program is free software; you may redistribute it under the terms of
>> the GNU General Public License version 3 or (at your option) a later version.
>> This program has absolutely no warranty.
>>
>> $ /opt/gcc/gcc-8.5.0-nolibc/powerpc64-linux/bin/powerpc64-linux-ld --no-warn-rwx-segments test.o
>> /opt/gcc/gcc-8.5.0-nolibc/powerpc64-linux/bin/powerpc64-linux-ld: unrecognized option '--no-warn-rwx-segments'
>> /opt/gcc/gcc-8.5.0-nolibc/powerpc64-linux/bin/powerpc64-linux-ld: use the --help option for usage information
>>
>
> Nice catch. Thanks Christophe.
>
> May be we need to handle this special/specific case with an
> additional check
>
> diff --git a/arch/powerpc/boot/wrapper b/arch/powerpc/boot/wrapper
> index 1db60fe13802..d3779c20e548 100755
> --- a/arch/powerpc/boot/wrapper
> +++ b/arch/powerpc/boot/wrapper
> @@ -237,6 +237,8 @@ nowarn="-z noexecstack"
> if ! ld_is_lld; then
> if [ "$LD_VERSION" -ge "$(echo 2.39 | ld_version)" ]; then
> nowarn="$nowarn --no-warn-rwx-segments"
> + elif [ "$LD_VERSION" -eq "235020000" ]; then
> + nowarn="$nowarn --no-warn-rwx-segments"
> fi
> fi
>
I think it is not the official version of 2.35.2, it is a modified
version from a distribution. It doesn't exist in the official 2.35.2:
$ git remote -v
origin https://sourceware.org/git/binutils-gdb.git (fetch)
origin https://sourceware.org/git/binutils-gdb.git (push)
$ git grep rwx-segments origin/binutils-2_35-branch
[empty]
What about doing something like commit 0d362be5b142 ("Makefile: link
with -z noexecstack --no-warn-rwx-segments") ?
Christophe
Powered by blists - more mailing lists