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 |
+ 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 >
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.
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
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 --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
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