diff options
author | Alexey Zaytsev <alexey.zaytsev@gmail.com> | 2008-12-18 20:22:27 +0300 |
---|---|---|
committer | Alexey Zaytsev <alexey.zaytsev@gmail.com> | 2008-12-18 21:11:00 +0300 |
commit | 9e6965b5031ad49b2ce4b6c8db6e1343b3364292 (patch) | |
tree | a9d6d4273581701eb1b6b04d6d1f305abb77ea2e /cgcc | |
parent | Set gcc include path at runtime. (diff) | |
download | sparse-9e6965b5031ad49b2ce4b6c8db6e1343b3364292.tar.gz sparse-9e6965b5031ad49b2ce4b6c8db6e1343b3364292.tar.bz2 sparse-9e6965b5031ad49b2ce4b6c8db6e1343b3364292.zip |
Let cgcc pass -gcc-base-dir to sparse.
Signed-off-by: Alexey Zaytsev <alexey.zaytsev@gmail.com>
Diffstat (limited to 'cgcc')
-rwxr-xr-x | cgcc | 14 |
1 files changed, 13 insertions, 1 deletions
@@ -10,9 +10,11 @@ my $has_specs = 0; my $gendeps = 0; my $do_check = 0; my $do_compile = 1; +my $gcc_base_dir; my $verbose = 0; -foreach (@ARGV) { +while (@ARGV) { + $_ = shift(@ARGV); # Look for a .c file. We don't want to run the checker on .o or .so files # in the link run. (This simplistic check knows nothing about options # with arguments, but it seems to do the job.) @@ -36,6 +38,12 @@ foreach (@ARGV) { next; } + if (/^-gcc-base-dir$/) { + $gcc_base_dir = shift @ARGV; + die ("$0: missing argument for -gcc-base-dir option") if !$gcc_base_dir; + next; + } + # If someone adds "-E", don't pre-process twice. $do_compile = 0 if $_ eq '-E'; @@ -56,6 +64,10 @@ if ($do_check) { $check .= &add_specs ('host_arch_specs'); $check .= &add_specs ('host_os_specs'); } + + $gcc_base_dir = qx($cc -print-file-name=) if !$gcc_base_dir; + $check .= " -gcc-base-dir " . $gcc_base_dir if $gcc_base_dir; + print "$check\n" if $verbose; if ($do_compile) { system ($check); |