linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] scripts: remove obsolete gcc-ld script
@ 2022-08-25  9:15 Lukas Bulwahn
  2022-08-25 17:19 ` Nick Desaulniers
  0 siblings, 1 reply; 5+ messages in thread
From: Lukas Bulwahn @ 2022-08-25  9:15 UTC (permalink / raw)
  To: Andi Kleen, H . Peter Anvin, linux-kbuild, Masahiro Yamada,
	Michal Marek, Nick Desaulniers
  Cc: kernel-janitors, linux-kernel, Lukas Bulwahn

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

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


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH] scripts: remove obsolete gcc-ld script
  2022-08-25  9:15 [PATCH] scripts: remove obsolete gcc-ld script Lukas Bulwahn
@ 2022-08-25 17:19 ` Nick Desaulniers
  2022-08-27 14:07   ` Masahiro Yamada
  2022-08-29  7:07   ` Jiri Slaby
  0 siblings, 2 replies; 5+ messages in thread
From: Nick Desaulniers @ 2022-08-25 17:19 UTC (permalink / raw)
  To: Lukas Bulwahn, Jiri Slaby
  Cc: Andi Kleen, H . Peter Anvin, linux-kbuild, Masahiro Yamada,
	Michal Marek, kernel-janitors, linux-kernel

+ 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

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] scripts: remove obsolete gcc-ld script
  2022-08-25 17:19 ` Nick Desaulniers
@ 2022-08-27 14:07   ` Masahiro Yamada
  2022-08-29  7:07   ` Jiri Slaby
  1 sibling, 0 replies; 5+ messages in thread
From: Masahiro Yamada @ 2022-08-27 14:07 UTC (permalink / raw)
  To: Nick Desaulniers
  Cc: Lukas Bulwahn, Jiri Slaby, Andi Kleen, H . Peter Anvin,
	Linux Kbuild mailing list, Michal Marek, kernel-janitors,
	Linux Kernel Mailing List

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.


-- 
Best Regards
Masahiro Yamada

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] scripts: remove obsolete gcc-ld script
  2022-08-25 17:19 ` Nick Desaulniers
  2022-08-27 14:07   ` Masahiro Yamada
@ 2022-08-29  7:07   ` Jiri Slaby
  2022-08-29  8:30     ` Masahiro Yamada
  1 sibling, 1 reply; 5+ messages in thread
From: Jiri Slaby @ 2022-08-29  7:07 UTC (permalink / raw)
  To: Nick Desaulniers, Lukas Bulwahn
  Cc: Andi Kleen, H . Peter Anvin, linux-kbuild, Masahiro Yamada,
	Michal Marek, kernel-janitors, linux-kernel, Martin Liska

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


-- 
js
suse labs


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] scripts: remove obsolete gcc-ld script
  2022-08-29  7:07   ` Jiri Slaby
@ 2022-08-29  8:30     ` Masahiro Yamada
  0 siblings, 0 replies; 5+ messages in thread
From: Masahiro Yamada @ 2022-08-29  8:30 UTC (permalink / raw)
  To: Jiri Slaby
  Cc: Nick Desaulniers, Lukas Bulwahn, Andi Kleen, H . Peter Anvin,
	Linux Kbuild mailing list, Michal Marek, kernel-janitors,
	Linux Kernel Mailing List, Martin Liska

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.







-- 
Best Regards
Masahiro Yamada

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2022-08-29  8:32 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-08-25  9:15 [PATCH] scripts: remove obsolete gcc-ld script Lukas Bulwahn
2022-08-25 17:19 ` Nick Desaulniers
2022-08-27 14:07   ` Masahiro Yamada
2022-08-29  7:07   ` Jiri Slaby
2022-08-29  8:30     ` 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).