[PATCH] [scan-build] Add an option to skip overriding CC and CXX make vars
Jonathan Roelofs via cfe-commits
cfe-commits at lists.llvm.org
Mon Jan 15 07:36:03 PST 2018
LGTM. Would you like me to commit it for you?
Jon
On 1/14/18 9:22 AM, Paul Fertser wrote:
> Autoconf and some other systems tend to add essential compilation
> options to CC (e.g. -std=gnu99). When running such an auto-generated
> makefile, scan-build does not need to change CC and CXX as they are
> already set to use ccc-analyzer by a configure script.
>
> Implement a new option --keep-cc as was proposed in this discussion:
> http://lists.llvm.org/pipermail/cfe-dev/2013-September/031832.html
> ---
> tools/scan-build/bin/scan-build | 24 ++++++++++++++++++++----
> 1 file changed, 20 insertions(+), 4 deletions(-)
>
> diff --git a/tools/scan-build/bin/scan-build b/tools/scan-build/bin/scan-build
> index cbf3bf3..49018eb 100755
> --- a/tools/scan-build/bin/scan-build
> +++ b/tools/scan-build/bin/scan-build
> @@ -51,6 +51,7 @@ my %Options = (
> OutputDir => undef, # Parent directory to store HTML files.
> HtmlTitle => basename($CurrentDir)." - scan-build results",
> IgnoreErrors => 0, # Ignore build errors.
> + KeepCC => 0, # Do not override CC and CXX make variables
> ViewResults => 0, # View results when the build terminates.
> ExitStatusFoundBugs => 0, # Exit status reflects whether bugs were found
> ShowDescription => 0, # Display the description of the defect in the list
> @@ -1062,6 +1063,7 @@ sub RunXcodebuild {
> sub RunBuildCommand {
> my $Args = shift;
> my $IgnoreErrors = shift;
> + my $KeepCC = shift;
> my $Cmd = $Args->[0];
> my $CCAnalyzer = shift;
> my $CXXAnalyzer = shift;
> @@ -1099,8 +1101,10 @@ sub RunBuildCommand {
> unshift @$Args, $CXXAnalyzer;
> }
> elsif ($Cmd eq "make" or $Cmd eq "gmake" or $Cmd eq "mingw32-make") {
> - AddIfNotPresent($Args, "CC=$CCAnalyzer");
> - AddIfNotPresent($Args, "CXX=$CXXAnalyzer");
> + if (!$KeepCC) {
> + AddIfNotPresent($Args, "CC=$CCAnalyzer");
> + AddIfNotPresent($Args, "CXX=$CXXAnalyzer");
> + }
> if ($IgnoreErrors) {
> AddIfNotPresent($Args,"-k");
> AddIfNotPresent($Args,"-i");
> @@ -1158,6 +1162,12 @@ OPTIONS:
> currently supports make and xcodebuild. This is a convenience option; one
> can specify this behavior directly using build options.
>
> + --keep-cc
> +
> + Do not override CC and CXX make variables. Useful when running make in
> + autoconf-based (and similar) projects where configure can add extra flags
> + to those variables.
> +
> --html-title [title]
> --html-title=[title]
>
> @@ -1532,6 +1542,12 @@ sub ProcessArgs {
> next;
> }
>
> + if ($arg eq "--keep-cc") {
> + shift @$Args;
> + $Options{KeepCC} = 1;
> + next;
> + }
> +
> if ($arg =~ /^--use-cc(=(.+))?$/) {
> shift @$Args;
> my $cc;
> @@ -1838,8 +1854,8 @@ my %EnvVars = (
> );
>
> # Run the build.
> -my $ExitStatus = RunBuildCommand(\@ARGV, $Options{IgnoreErrors}, $Cmd, $CmdCXX,
> - \%EnvVars);
> +my $ExitStatus = RunBuildCommand(\@ARGV, $Options{IgnoreErrors}, $Options{KeepCC},
> + $Cmd, $CmdCXX, \%EnvVars);
>
> if (defined $Options{OutputFormat}) {
> if ($Options{OutputFormat} =~ /plist/) {
--
Jon Roelofs
jonathan at codesourcery.com
CodeSourcery / Mentor Embedded / Siemens
More information about the cfe-commits
mailing list