From 6a960aff385b8792e3900244ea7eaaed29f41811 Mon Sep 17 00:00:00 2001 From: Ben Sander Date: Mon, 2 May 2016 23:47:04 -0500 Subject: [PATCH] add fallback to libc++ --- hipamd/bin/hipcc | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/hipamd/bin/hipcc b/hipamd/bin/hipcc index 38b6318f06..db58f9e44d 100755 --- a/hipamd/bin/hipcc +++ b/hipamd/bin/hipcc @@ -51,7 +51,7 @@ if ($verbose & 0x2) { } # set if user explicitly requests -stdlib=libc++. (else we default to libstdc++ for better interop with g++): -$enablelibcpp = 0; # TODO - set to 0 +$setStdLib = 0; # TODO - set to 0 if ($HIP_PLATFORM eq "hcc") { $HSA_PATH=$ENV{'HSA_PATH'}; @@ -70,9 +70,6 @@ if ($HIP_PLATFORM eq "hcc") { $HIPCC=$HCC; $HIPCXXFLAGS = $HCCFLAGS; - # To interoperate cleanly with G++, we default to using libc++ library: - $HIPCXXFLAGS .= " -stdlib=libstdc++"; - $HIPCXXFLAGS .= " -I$HIP_PATH/include/hcc_detail/cuda"; $HIPCXXFLAGS .= " -I$HSA_PATH/include"; $HIPLDFLAGS = "-hc -L$HCC_HOME/lib -Wl,--rpath=$HCC_HOME/lib -lc++ -ldl -lpthread -Wl,--whole-archive -lmcwamp -Wl,--no-whole-archive"; @@ -151,10 +148,15 @@ foreach $arg (@ARGV) $needLDFLAGS = 1; } - if($arg eq '-stdlib=libc++' and $enablelibcpp eq 0) + if($arg eq '-stdlib=libc++' and $setStdLib eq 0) { $HIPCXXFLAGS .= " -stdlib=libc++"; - $enablelibcpp = 1; + $setStdLib = 1; + } + if($arg eq '-stdlib=libstdc++' and $setStdLib eq 0) + { + $HIPCXXFLAGS .= " -stdlib=libstdc++"; + $setStdLib = 1; } if ($arg =~ m/^-/) { @@ -195,14 +197,14 @@ if ($hasCU and $HIP_PLATFORM eq 'hcc') { $HIPCXXFLAGS .= " -x c++"; } -if ($enablelibcpp eq 0 and $HIP_PLATFORM eq 'hcc') +if ($setStdLib eq 0 and $HIP_PLATFORM eq 'hcc') { - $HIPCXXFLAGS .= " -stdlib=libstdc++"; -} -# TODO -remove me. -if ($enablelibcpp eq 2 and $HIP_PLATFORM eq 'hcc') -{ - $HIPCXXFLAGS .= " -stdlib=libc++"; + $defaultLibCpp = 0; # TODO - should be 0 for best interop with G++ + if ($defaultLibCpp) { + $HIPCXXFLAGS .= " -stdlib=libc++"; # TODO - remove me, defaults to libc++. + } else { + $HIPCXXFLAGS .= " -stdlib=libstdc++"; + } } if ($needHipHcc) {