52 lines
1.6 KiB
Diff
52 lines
1.6 KiB
Diff
|
Fix link_tool_exe_linux.in to work with ccache
|
||
|
|
||
|
The link_tool_exe_linux.in Perl script makes the assumption that the
|
||
|
compilation command line is always:
|
||
|
|
||
|
gcc -o foobar foobar.c -someflags
|
||
|
|
||
|
I.e, it assumes that the compiler is the first word of the command
|
||
|
line. However, this is not true with ccache, where the command line
|
||
|
is:
|
||
|
|
||
|
/path/to/ccache /path/to/crossgcc -o foobar foobar.c -someflags
|
||
|
|
||
|
Since this Perl script simply needs to add additional flags to the
|
||
|
command line, we simply add them at the end of the command line
|
||
|
instead of trying to add them at the beginning.
|
||
|
|
||
|
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||
|
|
||
|
Index: valgrind-3.6.1/coregrind/link_tool_exe_linux.in
|
||
|
===================================================================
|
||
|
--- valgrind-3.6.1.orig/coregrind/link_tool_exe_linux.in 2011-12-22 13:59:08.933499060 +0100
|
||
|
+++ valgrind-3.6.1/coregrind/link_tool_exe_linux.in 2011-12-22 13:59:50.302782709 +0100
|
||
|
@@ -55,25 +55,13 @@
|
||
|
if (($#ARGV + 1) < 5);
|
||
|
|
||
|
my $ala = $ARGV[0];
|
||
|
+shift;
|
||
|
|
||
|
# check for plausible-ish alt load address
|
||
|
die "Bogus alt-load address"
|
||
|
if (length($ala) < 3 || index($ala, "0x") != 0);
|
||
|
|
||
|
-# The cc invokation to do the final link
|
||
|
-my $cc = $ARGV[1];
|
||
|
-
|
||
|
-# and the 'restargs' are argv[2 ..]
|
||
|
-
|
||
|
-# so, build up the complete command here:
|
||
|
-# 'cc' -static -Ttext='ala' 'restargs'
|
||
|
-
|
||
|
-my $cmd="$cc -static -Wl,-Ttext=$ala";
|
||
|
-
|
||
|
-# Add the rest of the parameters
|
||
|
-foreach my $n (2 .. $#ARGV) {
|
||
|
- $cmd = "$cmd $ARGV[$n]";
|
||
|
-}
|
||
|
+my $cmd=join(" ", @ARGV) . " -static -Wl,-Ttext=$ala";
|
||
|
|
||
|
#print "link_tool_exe_linux: $cmd\n";
|
||
|
|