diff mbox series

scripts: remove obsolete gcc-ld script

Message ID 20220825091517.30842-1-lukas.bulwahn@gmail.com (mailing list archive)
State New, archived
Headers show
Series scripts: remove obsolete gcc-ld script | expand

Commit Message

Lukas Bulwahn Aug. 25, 2022, 9:15 a.m. UTC
Since commit 8564ed2b3888 ("Kbuild, lto: Add a gcc-ld script to let run gcc
as ld") in 2014, there was not specific work on this the gcc-ld script
other than treewide clean-ups.

There are no users within the kernel tree, and probably no out-of-tree
users either, and there is no dedicated maintainer in MAINTAINERS.

Delete this obsolete gcc-ld script.

Signed-off-by: Lukas Bulwahn <lukas.bulwahn@gmail.com>
---
If there are no objections, I would like to get this patch included
through the kbuild tree.

Masahiro-san, please pick this patch.

 scripts/gcc-ld | 30 ------------------------------
 1 file changed, 30 deletions(-)
 delete mode 100755 scripts/gcc-ld

Comments

Nick Desaulniers Aug. 25, 2022, 5:19 p.m. UTC | #1
+ Jiri in case this needs to be carried downstream.

On Thu, Aug 25, 2022 at 2:15 AM Lukas Bulwahn <lukas.bulwahn@gmail.com> wrote:
>
> Since commit 8564ed2b3888 ("Kbuild, lto: Add a gcc-ld script to let run gcc
> as ld") in 2014, there was not specific work on this the gcc-ld script
> other than treewide clean-ups.
>
> There are no users within the kernel tree, and probably no out-of-tree
> users either, and there is no dedicated maintainer in MAINTAINERS.
>
> Delete this obsolete gcc-ld script.
>
> Signed-off-by: Lukas Bulwahn <lukas.bulwahn@gmail.com>

No callers in-tree; happy to bring it back though should there later
be. Thanks for the patch.

Reviewed-by: Nick Desaulniers <ndesaulniers@google.com>

> ---
> If there are no objections, I would like to get this patch included
> through the kbuild tree.
>
> Masahiro-san, please pick this patch.
>
>  scripts/gcc-ld | 30 ------------------------------
>  1 file changed, 30 deletions(-)
>  delete mode 100755 scripts/gcc-ld
>
> diff --git a/scripts/gcc-ld b/scripts/gcc-ld
> deleted file mode 100755
> index 997b818c3962..000000000000
> --- a/scripts/gcc-ld
> +++ /dev/null
> @@ -1,30 +0,0 @@
> -#!/bin/sh
> -# SPDX-License-Identifier: GPL-2.0
> -# run gcc with ld options
> -# used as a wrapper to execute link time optimizations
> -# yes virginia, this is not pretty
> -
> -ARGS="-nostdlib"
> -
> -while [ "$1" != "" ] ; do
> -       case "$1" in
> -       -save-temps|-m32|-m64) N="$1" ;;
> -       -r) N="$1" ;;
> -       -[Wg]*) N="$1" ;;
> -       -[olv]|-[Ofd]*|-nostdlib) N="$1" ;;
> -       --end-group|--start-group)
> -                N="-Wl,$1" ;;
> -       -[RTFGhIezcbyYu]*|\
> ---script|--defsym|-init|-Map|--oformat|-rpath|\
> --rpath-link|--sort-section|--section-start|-Tbss|-Tdata|-Ttext|\
> ---version-script|--dynamic-list|--version-exports-symbol|--wrap|-m)
> -               A="$1" ; shift ; N="-Wl,$A,$1" ;;
> -       -[m]*) N="$1" ;;
> -       -*) N="-Wl,$1" ;;
> -       *)  N="$1" ;;
> -       esac
> -       ARGS="$ARGS $N"
> -       shift
> -done
> -
> -exec $CC $ARGS
> --
> 2.17.1
>
Masahiro Yamada Aug. 27, 2022, 2:07 p.m. UTC | #2
On Fri, Aug 26, 2022 at 2:20 AM Nick Desaulniers
<ndesaulniers@google.com> wrote:
>
> + Jiri in case this needs to be carried downstream.
>
> On Thu, Aug 25, 2022 at 2:15 AM Lukas Bulwahn <lukas.bulwahn@gmail.com> wrote:
> >
> > Since commit 8564ed2b3888 ("Kbuild, lto: Add a gcc-ld script to let run gcc
> > as ld") in 2014, there was not specific work on this the gcc-ld script
> > other than treewide clean-ups.
> >
> > There are no users within the kernel tree, and probably no out-of-tree
> > users either, and there is no dedicated maintainer in MAINTAINERS.
> >
> > Delete this obsolete gcc-ld script.
> >
> > Signed-off-by: Lukas Bulwahn <lukas.bulwahn@gmail.com>
>
> No callers in-tree; happy to bring it back though should there later
> be. Thanks for the patch.
>
> Reviewed-by: Nick Desaulniers <ndesaulniers@google.com>
>
> > ---
> > If there are no objections, I would like to get this patch included
> > through the kbuild tree.
> >
> > Masahiro-san, please pick this patch.
> >
> >  scripts/gcc-ld | 30 ------------------------------
> >  1 file changed, 30 deletions(-)
> >  delete mode 100755 scripts/gcc-ld
> >
> > diff --git a/scripts/gcc-ld b/scripts/gcc-ld
> > deleted file mode 100755
> > index 997b818c3962..000000000000
> > --- a/scripts/gcc-ld
> > +++ /dev/null
> > @@ -1,30 +0,0 @@
> > -#!/bin/sh
> > -# SPDX-License-Identifier: GPL-2.0
> > -# run gcc with ld options
> > -# used as a wrapper to execute link time optimizations
> > -# yes virginia, this is not pretty
> > -
> > -ARGS="-nostdlib"
> > -
> > -while [ "$1" != "" ] ; do
> > -       case "$1" in
> > -       -save-temps|-m32|-m64) N="$1" ;;
> > -       -r) N="$1" ;;
> > -       -[Wg]*) N="$1" ;;
> > -       -[olv]|-[Ofd]*|-nostdlib) N="$1" ;;
> > -       --end-group|--start-group)
> > -                N="-Wl,$1" ;;
> > -       -[RTFGhIezcbyYu]*|\
> > ---script|--defsym|-init|-Map|--oformat|-rpath|\
> > --rpath-link|--sort-section|--section-start|-Tbss|-Tdata|-Ttext|\
> > ---version-script|--dynamic-list|--version-exports-symbol|--wrap|-m)
> > -               A="$1" ; shift ; N="-Wl,$A,$1" ;;
> > -       -[m]*) N="$1" ;;
> > -       -*) N="-Wl,$1" ;;
> > -       *)  N="$1" ;;
> > -       esac
> > -       ARGS="$ARGS $N"
> > -       shift
> > -done
> > -
> > -exec $CC $ARGS
> > --
> > 2.17.1
> >
>
>
> --
> Thanks,
> ~Nick Desaulniers




Applied to linux-kbuild.
Thanks.
Jiri Slaby Aug. 29, 2022, 7:07 a.m. UTC | #3
On 25. 08. 22, 19:19, Nick Desaulniers wrote:
> + Jiri in case this needs to be carried downstream.

Thanks.

> On Thu, Aug 25, 2022 at 2:15 AM Lukas Bulwahn <lukas.bulwahn@gmail.com> wrote:
>>
>> Since commit 8564ed2b3888 ("Kbuild, lto: Add a gcc-ld script to let run gcc
>> as ld") in 2014, there was not specific work on this the gcc-ld script
>> other than treewide clean-ups.
>>
>> There are no users within the kernel tree, and probably no out-of-tree
>> users either, and there is no dedicated maintainer in MAINTAINERS.

There are out-of-tree users.

>> Delete this obsolete gcc-ld script.
>>
>> Signed-off-by: Lukas Bulwahn <lukas.bulwahn@gmail.com>
> 
> No callers in-tree; happy to bring it back though should there later
> be. Thanks for the patch.

I agree to have this downstream-only for the time being. We have updates 
for it queued, so we'd only start tracking the full content now...

BTW the script is not nice at all. How do the clang people cope with the 
issue? (Running gcc-ld instead of ld with proper arguments when linking 
using (full) LTO. For example "-z now" -> "-Wl,-z,now".)

> Reviewed-by: Nick Desaulniers <ndesaulniers@google.com>
> 
>> ---
>> If there are no objections, I would like to get this patch included
>> through the kbuild tree.
>>
>> Masahiro-san, please pick this patch.
>>
>>   scripts/gcc-ld | 30 ------------------------------
>>   1 file changed, 30 deletions(-)
>>   delete mode 100755 scripts/gcc-ld
>>
>> diff --git a/scripts/gcc-ld b/scripts/gcc-ld
>> deleted file mode 100755
>> index 997b818c3962..000000000000
>> --- a/scripts/gcc-ld
>> +++ /dev/null
>> @@ -1,30 +0,0 @@
>> -#!/bin/sh
>> -# SPDX-License-Identifier: GPL-2.0
>> -# run gcc with ld options
>> -# used as a wrapper to execute link time optimizations
>> -# yes virginia, this is not pretty
>> -
>> -ARGS="-nostdlib"
>> -
>> -while [ "$1" != "" ] ; do
>> -       case "$1" in
>> -       -save-temps|-m32|-m64) N="$1" ;;
>> -       -r) N="$1" ;;
>> -       -[Wg]*) N="$1" ;;
>> -       -[olv]|-[Ofd]*|-nostdlib) N="$1" ;;
>> -       --end-group|--start-group)
>> -                N="-Wl,$1" ;;
>> -       -[RTFGhIezcbyYu]*|\
>> ---script|--defsym|-init|-Map|--oformat|-rpath|\
>> --rpath-link|--sort-section|--section-start|-Tbss|-Tdata|-Ttext|\
>> ---version-script|--dynamic-list|--version-exports-symbol|--wrap|-m)
>> -               A="$1" ; shift ; N="-Wl,$A,$1" ;;
>> -       -[m]*) N="$1" ;;
>> -       -*) N="-Wl,$1" ;;
>> -       *)  N="$1" ;;
>> -       esac
>> -       ARGS="$ARGS $N"
>> -       shift
>> -done
>> -
>> -exec $CC $ARGS
Masahiro Yamada Aug. 29, 2022, 8:30 a.m. UTC | #4
On Mon, Aug 29, 2022 at 4:08 PM Jiri Slaby <jirislaby@kernel.org> wrote:
>
> On 25. 08. 22, 19:19, Nick Desaulniers wrote:
> > + Jiri in case this needs to be carried downstream.
>
> Thanks.
>
> > On Thu, Aug 25, 2022 at 2:15 AM Lukas Bulwahn <lukas.bulwahn@gmail.com> wrote:
> >>
> >> Since commit 8564ed2b3888 ("Kbuild, lto: Add a gcc-ld script to let run gcc
> >> as ld") in 2014, there was not specific work on this the gcc-ld script
> >> other than treewide clean-ups.
> >>
> >> There are no users within the kernel tree, and probably no out-of-tree
> >> users either, and there is no dedicated maintainer in MAINTAINERS.
>
> There are out-of-tree users.
>
> >> Delete this obsolete gcc-ld script.
> >>
> >> Signed-off-by: Lukas Bulwahn <lukas.bulwahn@gmail.com>
> >
> > No callers in-tree; happy to bring it back though should there later
> > be. Thanks for the patch.
>
> I agree to have this downstream-only for the time being. We have updates
> for it queued, so we'd only start tracking the full content now...
>
> BTW the script is not nice at all. How do the clang people cope with the
> issue? (Running gcc-ld instead of ld with proper arguments when linking
> using (full) LTO. For example "-z now" -> "-Wl,-z,now".)



This comes from the difference in which layer LTO is implemented.



GCC LTO is a feature of the GCC compiler.
GNU binutils is agnostic about LTO.
So, you need to use $(CC) as the linker driver.
scripts/gcc-ld adds the '-Wl,' prefix to linker options.




Clang LTO works in cooperation with the LLD linker.
So, the direct use of $(LD) works.
scripts/gcc-ld is unneeded.
diff mbox series

Patch

diff --git a/scripts/gcc-ld b/scripts/gcc-ld
deleted file mode 100755
index 997b818c3962..000000000000
--- a/scripts/gcc-ld
+++ /dev/null
@@ -1,30 +0,0 @@ 
-#!/bin/sh
-# SPDX-License-Identifier: GPL-2.0
-# run gcc with ld options
-# used as a wrapper to execute link time optimizations
-# yes virginia, this is not pretty
-
-ARGS="-nostdlib"
-
-while [ "$1" != "" ] ; do
-	case "$1" in
-	-save-temps|-m32|-m64) N="$1" ;;
-	-r) N="$1" ;;
-	-[Wg]*) N="$1" ;;
-	-[olv]|-[Ofd]*|-nostdlib) N="$1" ;;
-	--end-group|--start-group)
-		 N="-Wl,$1" ;;
-	-[RTFGhIezcbyYu]*|\
---script|--defsym|-init|-Map|--oformat|-rpath|\
--rpath-link|--sort-section|--section-start|-Tbss|-Tdata|-Ttext|\
---version-script|--dynamic-list|--version-exports-symbol|--wrap|-m)
-		A="$1" ; shift ; N="-Wl,$A,$1" ;;
-	-[m]*) N="$1" ;;
-	-*) N="-Wl,$1" ;;
-	*)  N="$1" ;;
-	esac
-	ARGS="$ARGS $N"
-	shift
-done
-
-exec $CC $ARGS