Skip to content

Commit

Permalink
Kbuild, lto: Add a gcc-ld script to let run gcc as ld
Browse files Browse the repository at this point in the history
For LTO we need to run the link step with gcc, not ld.
Since there are a lot of linker options passed to it, add a gcc-ld wrapper
that wraps them as -Wl,

Signed-off-by: Andi Kleen <[email protected]>
Link: http://lkml.kernel.org/r/[email protected]
Signed-off-by: H. Peter Anvin <[email protected]>
  • Loading branch information
Andi Kleen authored and H. Peter Anvin committed Feb 14, 2014
1 parent ccbef16 commit 8564ed2
Showing 1 changed file with 29 additions and 0 deletions.
29 changes: 29 additions & 0 deletions scripts/gcc-ld
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
#!/bin/sh
# 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

0 comments on commit 8564ed2

Please sign in to comment.