[main-line]Build warnings on PowerPC system
Christophe Leroy
christophe.leroy at csgroup.eu
Fri Mar 28 22:48:53 AEDT 2025
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
More information about the Linuxppc-dev
mailing list