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 <ak@linux.intel.com> Link: http://lkml.kernel.org/r/1391846481-31491-10-git-send-email-ak@linux.intel.com Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
		
			
				
	
	
		
			29 lines
		
	
	
	
		
			676 B
			
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			29 lines
		
	
	
	
		
			676 B
			
		
	
	
	
		
			Bash
		
	
	
	
	
	
#!/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
 |