From bb62f8553fdfd5d14caa0e2bac1c4a21ef89fb62 Mon Sep 17 00:00:00 2001 From: Reshabh Sharma <60782296+rksharma-yymd@users.noreply.github.com> Date: Tue, 17 Mar 2020 14:02:14 +0530 Subject: [PATCH] Output file name should not change flags picked for compiler (#1938) Fixes SWDEV-207362, The output file name should not contribute to picking up the right flags for the compiler. This fix solves issues when the output has conflicting extensions which confuses hipcc to treat them as the source files and add the required flags for them. PS: Output file refers to the file followed by -o Change-Id: I1095966c11143ad73e81fabc35b4e9de5d3afada Example: hipcc test.o -o test.hip will add the flags for .hip compilation ignoring the fact that it is an output file --- bin/hipcc | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/bin/hipcc b/bin/hipcc index 0163324d65..b3db312c78 100755 --- a/bin/hipcc +++ b/bin/hipcc @@ -391,6 +391,7 @@ my $toolArgs = ""; # arguments to pass to the hcc or nvcc tool my $optArg = ""; # -O args my $targetOpt = '--amdgpu-target='; my $targetsStr = ""; +my $skipOutputFile = 0; # file followed by -o should not contibute in picking compiler flags foreach $arg (@ARGV) { @@ -402,8 +403,16 @@ foreach $arg (@ARGV) $needCXXFLAGS = 1; $needLDFLAGS = 0; } + + if ($skipOutputFile) { + $toolArgs .= " $arg"; + $skipOutputFile = 0; + next; + } + if ($arg eq '-o') { $needLDFLAGS = 1; + $skipOutputFile = 1; } if(($trimarg eq '-stdlib=libc++') and ($setStdLib eq 0))