<div dir="ltr"><div>@<a href="mailto:shuhong.liu@ibm.com">shuhong.liu@ibm.com</a>: I'm not sure what process you followed to commit this, but the commit message does not seem right. It might make sense to revert this and commit again with the proper message to make annotations from `git blame` work better.</div><div><br></div><div>-- HT<br> </div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Aug 10, 2020 at 10:33 AM Shuhong Liu via cfe-commits <<a href="mailto:cfe-commits@lists.llvm.org">cfe-commits@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><br>
Author: Shuhong Liu<br>
Date: 2020-08-10T10:27:04-04:00<br>
New Revision: b129c9d81aff8ece71eb29df1e5f31136a48c040<br>
<br>
URL: <a href="https://github.com/llvm/llvm-project/commit/b129c9d81aff8ece71eb29df1e5f31136a48c040" rel="noreferrer" target="_blank">https://github.com/llvm/llvm-project/commit/b129c9d81aff8ece71eb29df1e5f31136a48c040</a><br>
DIFF: <a href="https://github.com/llvm/llvm-project/commit/b129c9d81aff8ece71eb29df1e5f31136a48c040.diff" rel="noreferrer" target="_blank">https://github.com/llvm/llvm-project/commit/b129c9d81aff8ece71eb29df1e5f31136a48c040.diff</a><br>
<br>
LOG: Author: Shuhong Liu <<a href="mailto:shuhong.liu@ibm.com" target="_blank">shuhong.liu@ibm.com</a>><br>
Date: Mon Aug 10 10:31:50 2020 +0300<br>
<br>
[AIX][Clang][Driver] Generate reference to the C++ library on the link step<br>
<br>
Have the linker find libc++ on its search path by adding -lc++.<br>
<br>
Reviewed by: daltenty, hubert.reinterpretcast, stevewan<br>
<br>
Differential Revision: <a href="https://reviews.llvm.org/D85315" rel="noreferrer" target="_blank">https://reviews.llvm.org/D85315</a><br>
<br>
Added: <br>
<br>
<br>
Modified: <br>
clang/lib/Driver/ToolChains/AIX.cpp<br>
clang/lib/Driver/ToolChains/AIX.h<br>
clang/test/Driver/aix-ld.c<br>
<br>
Removed: <br>
<br>
<br>
<br>
################################################################################<br>
diff --git a/clang/lib/Driver/ToolChains/AIX.cpp b/clang/lib/Driver/ToolChains/AIX.cpp<br>
index f9d8e18d6fd0..bc130a5557e9 100644<br>
--- a/clang/lib/Driver/ToolChains/AIX.cpp<br>
+++ b/clang/lib/Driver/ToolChains/AIX.cpp<br>
@@ -141,6 +141,9 @@ void aix::Linker::ConstructJob(Compilation &C, const JobAction &JA,<br>
Args.AddAllArgs(CmdArgs, options::OPT_L);<br>
ToolChain.AddFilePathLibArgs(Args, CmdArgs);<br>
<br>
+ if (getToolChain().ShouldLinkCXXStdlib(Args))<br>
+ getToolChain().AddCXXStdlibLibArgs(Args, CmdArgs);<br>
+<br>
if (!Args.hasArg(options::OPT_nostdlib, options::OPT_nodefaultlibs)) {<br>
// Support POSIX threads if "-pthreads" or "-pthread" is present.<br>
if (Args.hasArg(options::OPT_pthreads, options::OPT_pthread))<br>
@@ -197,6 +200,23 @@ void AIX::AddClangSystemIncludeArgs(const ArgList &DriverArgs,<br>
addSystemInclude(DriverArgs, CC1Args, UP.str());<br>
}<br>
<br>
+void AIX::AddCXXStdlibLibArgs(const llvm::opt::ArgList &DriverArgs,<br>
+ llvm::opt::ArgStringList &CC1Args) const {<br>
+ switch (GetCXXStdlibType(DriverArgs)) {<br>
+ case ToolChain::CST_Libcxx:<br>
+ CC1Args.push_back("-lc++");<br>
+ return;<br>
+ case ToolChain::CST_Libstdcxx:<br>
+ llvm::report_fatal_error("linking libstdc++ unimplemented on AIX");<br>
+ }<br>
+<br>
+ llvm_unreachable("Unexpected C++ library type; only libc++ is supported.");<br>
+}<br>
+<br>
+ToolChain::CXXStdlibType AIX::GetDefaultCXXStdlibType() const {<br>
+ return ToolChain::CST_Libcxx;<br>
+}<br>
+<br>
auto AIX::buildAssembler() const -> Tool * { return new aix::Assembler(*this); }<br>
<br>
auto AIX::buildLinker() const -> Tool * { return new aix::Linker(*this); }<br>
<br>
diff --git a/clang/lib/Driver/ToolChains/AIX.h b/clang/lib/Driver/ToolChains/AIX.h<br>
index 942bb3cceb8a..f63b20da969e 100644<br>
--- a/clang/lib/Driver/ToolChains/AIX.h<br>
+++ b/clang/lib/Driver/ToolChains/AIX.h<br>
@@ -67,6 +67,11 @@ class LLVM_LIBRARY_VISIBILITY AIX : public ToolChain {<br>
AddClangSystemIncludeArgs(const llvm::opt::ArgList &DriverArgs,<br>
llvm::opt::ArgStringList &CC1Args) const override;<br>
<br>
+ void AddCXXStdlibLibArgs(const llvm::opt::ArgList &Args,<br>
+ llvm::opt::ArgStringList &CmdArgs) const override;<br>
+<br>
+ CXXStdlibType GetDefaultCXXStdlibType() const override;<br>
+<br>
protected:<br>
Tool *buildAssembler() const override;<br>
Tool *buildLinker() const override;<br>
<br>
diff --git a/clang/test/Driver/aix-ld.c b/clang/test/Driver/aix-ld.c<br>
index 59e35248af30..7b3710ca21ef 100644<br>
--- a/clang/test/Driver/aix-ld.c<br>
+++ b/clang/test/Driver/aix-ld.c<br>
@@ -15,6 +15,7 @@<br>
// CHECK-LD32: "-bpT:0x10000000" "-bpD:0x20000000"<br>
// CHECK-LD32: "[[SYSROOT]]/usr/lib{{/|\\\\}}crt0.o"<br>
// CHECK-LD32: "-L[[SYSROOT]]/usr/lib"<br>
+// CHECK-LD32-NOT: "-lc++"<br>
// CHECK-LD32: "-lc"<br>
<br>
// Check powerpc64-ibm-aix7.1.0.0, 64-bit.<br>
@@ -31,6 +32,7 @@<br>
// CHECK-LD64: "-bpT:0x100000000" "-bpD:0x110000000"<br>
// CHECK-LD64: "[[SYSROOT]]/usr/lib{{/|\\\\}}crt0_64.o"<br>
// CHECK-LD64: "-L[[SYSROOT]]/usr/lib"<br>
+// CHECK-LD64-NOT: "-lc++"<br>
// CHECK-LD64: "-lc"<br>
<br>
// Check powerpc-ibm-aix7.1.0.0, 32-bit. Enable POSIX thread support.<br>
@@ -48,6 +50,7 @@<br>
// CHECK-LD32-PTHREAD: "-bpT:0x10000000" "-bpD:0x20000000"<br>
// CHECK-LD32-PTHREAD: "[[SYSROOT]]/usr/lib{{/|\\\\}}crt0.o"<br>
// CHECK-LD32-PTHREAD: "-L[[SYSROOT]]/usr/lib"<br>
+// CHECK-LD32-PTHREAD-NOT: "-lc++"<br>
// CHECK-LD32-PTHREAD: "-lpthreads"<br>
// CHECK-LD32-PTHREAD: "-lc"<br>
<br>
@@ -66,6 +69,7 @@<br>
// CHECK-LD64-PTHREAD: "-bpT:0x100000000" "-bpD:0x110000000"<br>
// CHECK-LD64-PTHREAD: "[[SYSROOT]]/usr/lib{{/|\\\\}}crt0_64.o"<br>
// CHECK-LD64-PTHREAD: "-L[[SYSROOT]]/usr/lib"<br>
+// CHECK-LD64-PTHREAD-NOT: "-lc++"<br>
// CHECK-LD64-PTHREAD: "-lpthreads"<br>
// CHECK-LD64-PTHREAD: "-lc"<br>
<br>
@@ -84,6 +88,7 @@<br>
// CHECK-LD32-PROF: "-bpT:0x10000000" "-bpD:0x20000000"<br>
// CHECK-LD32-PROF: "[[SYSROOT]]/usr/lib{{/|\\\\}}mcrt0.o"<br>
// CHECK-LD32-PROF: "-L[[SYSROOT]]/usr/lib"<br>
+// CHECK-LD32-PROF-NOT: "-lc++"<br>
// CHECK-LD32-PROF: "-lc"<br>
<br>
// Check powerpc64-ibm-aix7.1.0.0, 64-bit. Enable g-profiling.<br>
@@ -101,6 +106,7 @@<br>
// CHECK-LD64-GPROF: "-bpT:0x100000000" "-bpD:0x110000000"<br>
// CHECK-LD64-GPROF: "[[SYSROOT]]/usr/lib{{/|\\\\}}gcrt0_64.o"<br>
// CHECK-LD64-GPROF: "-L[[SYSROOT]]/usr/lib"<br>
+// CHECK-LD64-GPROF-NOT: "-lc++"<br>
// CHECK-LD64-GPROF: "-lc"<br>
<br>
// Check powerpc-ibm-aix7.1.0.0, 32-bit. Static linking.<br>
@@ -118,6 +124,7 @@<br>
// CHECK-LD32-STATIC: "-bpT:0x10000000" "-bpD:0x20000000"<br>
// CHECK-LD32-STATIC: "[[SYSROOT]]/usr/lib{{/|\\\\}}crt0.o"<br>
// CHECK-LD32-STATIC: "-L[[SYSROOT]]/usr/lib"<br>
+// CHECK-LD32-STATIC-NOT: "-lc++"<br>
// CHECK-LD32-STATIC: "-lc"<br>
<br>
// Check powerpc-ibm-aix7.1.0.0, 32-bit. Library search path.<br>
@@ -136,6 +143,7 @@<br>
// CHECK-LD32-LIBP: "[[SYSROOT]]/usr/lib{{/|\\\\}}crt0.o"<br>
// CHECK-LD32-LIBP: "-L[[SYSROOT]]/powerpc-ibm-aix7.1.0.0"<br>
// CHECK-LD32-LIBP: "-L[[SYSROOT]]/usr/lib"<br>
+// CHECK-LD32-LIBP-NOT: "-lc++"<br>
// CHECK-LD32-LIBP: "-lc"<br>
<br>
// Check powerpc-ibm-aix7.1.0.0, 32-bit. nostdlib.<br>
@@ -154,6 +162,7 @@<br>
// CHECK-LD32-NO-STD-LIB: "-bpT:0x10000000" "-bpD:0x20000000"<br>
// CHECK-LD32-NO-STD-LIB-NOT: "[[SYSROOT]]/usr/lib{{/|\\\\}}crt0.o"<br>
// CHECK-LD32-NO-STD-LIB: "-L[[SYSROOT]]/usr/lib"<br>
+// CHECK-LD32-NO-STD-LIB-NOT: "-lc++"<br>
// CHECK-LD32-NO-STD-LIB-NOT: "-lpthreads"<br>
// CHECK-LD32-NO-STD-LIB-NOT: "-lc"<br>
<br>
@@ -173,14 +182,15 @@<br>
// CHECK-LD64-NO-DEFAULT-LIBS: "-bpT:0x100000000" "-bpD:0x110000000"<br>
// CHECK-LD64-NO-DEFAULT-LIBS: "[[SYSROOT]]/usr/lib{{/|\\\\}}crt0_64.o"<br>
// CHECK-LD64-NO-DEFAULT-LIBS: "-L[[SYSROOT]]/usr/lib"<br>
+// CHECK-LD64-NO-DEFAULT-LIBS-NOT: "-lc++"<br>
// CHECK-LD64-NO-DEFAULT-LIBS-NOT: "-lpthreads"<br>
// CHECK-LD64-NO-DEFAULT-LIBS-NOT: "-lc"<br>
<br>
// Check powerpc-ibm-aix7.1.0.0, 32-bit. 'bcdtors' and argument order.<br>
// RUN: %clangxx -no-canonical-prefixes %s 2>&1 -### \<br>
-// RUN: -Wl,-bnocdtors \<br>
-// RUN: -target powerpc-ibm-aix7.1.0.0 \<br>
-// RUN: --sysroot %S/Inputs/aix_ppc_tree \<br>
+// RUN: -Wl,-bnocdtors \<br>
+// RUN: -target powerpc-ibm-aix7.1.0.0 \<br>
+// RUN: --sysroot %S/Inputs/aix_ppc_tree \<br>
// RUN: | FileCheck --check-prefix=CHECK-LD32-CXX-ARG-ORDER %s<br>
// CHECK-LD32-CXX-ARG-ORDER: {{.*}}clang{{.*}}" "-cc1" "-triple" "powerpc-ibm-aix7.1.0.0"<br>
// CHECK-LD32-CXX-ARG-ORDER: "-isysroot" "[[SYSROOT:[^"]+]]"<br>
@@ -192,3 +202,146 @@<br>
// CHECK-LD32-CXX-ARG-ORDER: "-bcdtors:all:0:s"<br>
// CHECK-LD32-CXX-ARG-ORDER: "-bnocdtors"<br>
// CHECK-LD32-CXX-ARG-ORDER-NOT: "-bcdtors:all:0:s"<br>
+// CHECK-LD32-CXX-ARG-ORDER: "-lc++"<br>
+// CHECK-LD32-CXX-ARG-ORDER: "-lc"<br>
+<br>
+// Check powerpc-ibm-aix7.1.0.0, 32-bit. lc++ and lc order.<br>
+// RUN: %clangxx -no-canonical-prefixes %s 2>&1 -### \<br>
+// RUN: -target powerpc-ibm-aix7.1.0.0 \<br>
+// RUN: --sysroot %S/Inputs/aix_ppc_tree \<br>
+// RUN: | FileCheck --check-prefix=CHECK-LD32-CXX-ARG-LCXX %s<br>
+// CHECK-LD32-CXX-ARG-LCXX: {{.*}}clang{{.*}}" "-cc1" "-triple" "powerpc-ibm-aix7.1.0.0"<br>
+// CHECK-LD32-CXX-ARG-LCXX: "-isysroot" "[[SYSROOT:[^"]+]]"<br>
+// CHECK-LD32-CXX-ARG-LCXX: "{{.*}}ld{{(.exe)?}}"<br>
+// CHECK-LD32-CXX-ARG-LCXX: "-b32"<br>
+// CHECK-LD32-CXX-ARG-LCXX: "-bpT:0x10000000" "-bpD:0x20000000"<br>
+// CHECK-LD32-CXX-ARG-LCXX: "[[SYSROOT]]/usr/lib{{/|\\\\}}crt0.o"<br>
+// CHECK-LD32-CXX-ARG-LCXX: "-L[[SYSROOT]]/usr/lib"<br>
+// CHECK-LD32-CXX-ARG-LCXX: "-lc++"<br>
+// CHECK-LD32-CXX-ARG-LCXX: "-lc"<br>
+<br>
+// Check powerpc64-ibm-aix7.1.0.0, 64-bit. lc++ and lc order.<br>
+// RUN: %clangxx -no-canonical-prefixes %s 2>&1 -### \<br>
+// RUN: -target powerpc64-ibm-aix7.1.0.0 \<br>
+// RUN: --sysroot %S/Inputs/aix_ppc_tree \<br>
+// RUN: | FileCheck --check-prefix=CHECK-LD64-CXX-ARG-LCXX %s<br>
+// CHECK-LD64-CXX-ARG-LCXX: {{.*}}clang{{.*}}" "-cc1" "-triple" "powerpc64-ibm-aix7.1.0.0"<br>
+// CHECK-LD64-CXX-ARG-LCXX: "-isysroot" "[[SYSROOT:[^"]+]]"<br>
+// CHECK-LD64-CXX-ARG-LCXX: "{{.*}}ld{{(.exe)?}}"<br>
+// CHECK-LD64-CXX-ARG-LCXX: "-b64"<br>
+// CHECK-LD64-CXX-ARG-LCXX: "-bpT:0x100000000" "-bpD:0x110000000"<br>
+// CHECK-LD64-CXX-ARG-LCXX: "[[SYSROOT]]/usr/lib{{/|\\\\}}crt0_64.o"<br>
+// CHECK-LD64-CXX-ARG-LCXX: "-L[[SYSROOT]]/usr/lib"<br>
+// CHECK-LD64-CXX-ARG-LCXX: "-lc++"<br>
+// CHECK-LD64-CXX-ARG-LCXX: "-lc"<br>
+<br>
+// Check powerpc-ibm-aix7.1.0.0, 32-bit. -nodefaultlibs.<br>
+// RUN: %clangxx -no-canonical-prefixes %s 2>&1 -### \<br>
+// RUN: -nodefaultlibs \<br>
+// RUN: -target powerpc-ibm-aix7.1.0.0 \<br>
+// RUN: --sysroot %S/Inputs/aix_ppc_tree \<br>
+// RUN: | FileCheck --check-prefix=CHECK-LD32-NODEFLIB-LCXX %s<br>
+// CHECK-LD32-NODEFLIB-LCXX: {{.*}}clang{{.*}}" "-cc1" "-triple" "powerpc-ibm-aix7.1.0.0"<br>
+// CHECK-LD32-NODEFLIB-LCXX: "-isysroot" "[[SYSROOT:[^"]+]]"<br>
+// CHECK-LD32-NODEFLIB-LCXX: "{{.*}}ld{{(.exe)?}}"<br>
+// CHECK-LD32-NODEFLIB-LCXX: "-b32"<br>
+// CHECK-LD32-NODEFLIB-LCXX: "-bpT:0x10000000" "-bpD:0x20000000"<br>
+// CHECK-LD32-NODEFLIB-LCXX: "[[SYSROOT]]/usr/lib{{/|\\\\}}crt0.o"<br>
+// CHECK-LD32-NODEFLIB-LCXX: "-L[[SYSROOT]]/usr/lib"<br>
+// CHECK-LD32-NODEFLIB-LCXX-NOT: "-lc++"<br>
+// CHECK-LD32-NODEFLIB-LCXX-NOT: "-lc"<br>
+<br>
+// Check powerpc64-ibm-aix7.1.0.0, 64-bit. -nodefaultlibs.<br>
+// RUN: %clangxx -no-canonical-prefixes %s 2>&1 -### \<br>
+// RUN: -nodefaultlibs \<br>
+// RUN: -target powerpc64-ibm-aix7.1.0.0 \<br>
+// RUN: --sysroot %S/Inputs/aix_ppc_tree \<br>
+// RUN: | FileCheck --check-prefix=CHECK-LD64-NODEFLIB-LCXX %s<br>
+// CHECK-LD64-NODEFLIB-LCXX: {{.*}}clang{{.*}}" "-cc1" "-triple" "powerpc64-ibm-aix7.1.0.0"<br>
+// CHECK-LD64-NODEFLIB-LCXX: "-isysroot" "[[SYSROOT:[^"]+]]"<br>
+// CHECK-LD64-NODEFLIB-LCXX: "{{.*}}ld{{(.exe)?}}"<br>
+// CHECK-LD64-NODEFLIB-LCXX: "-b64"<br>
+// CHECK-LD64-NODEFLIB-LCXX: "-bpT:0x100000000" "-bpD:0x110000000"<br>
+// CHECK-LD64-NODEFLIB-LCXX: "[[SYSROOT]]/usr/lib{{/|\\\\}}crt0_64.o"<br>
+// CHECK-LD64-NODEFLIB-LCXX: "-L[[SYSROOT]]/usr/lib"<br>
+// CHECK-LD64-NODEFLIB-LCXX-NOT: "-lc++"<br>
+// CHECK-LD64-NODEFLIB-LCXX-NOT: "-lc"<br>
+<br>
+// Check powerpc-ibm-aix7.1.0.0, 32-bit. -nostdlib.<br>
+// RUN: %clangxx -no-canonical-prefixes %s 2>&1 -### \<br>
+// RUN: -nostdlib \<br>
+// RUN: -target powerpc-ibm-aix7.1.0.0 \<br>
+// RUN: --sysroot %S/Inputs/aix_ppc_tree \<br>
+// RUN: | FileCheck --check-prefix=CHECK-LD32-NOSTDLIB-LCXX %s<br>
+// CHECK-LD32-NOSTDLIB-LCXX: {{.*}}clang{{.*}}" "-cc1" "-triple" "powerpc-ibm-aix7.1.0.0"<br>
+// CHECK-LD32-NOSTDLIB-LCXX: "-isysroot" "[[SYSROOT:[^"]+]]"<br>
+// CHECK-LD32-NOSTDLIB-LCXX: "{{.*}}ld{{(.exe)?}}"<br>
+// CHECK-LD32-NOSTDLIB-LCXX: "-b32"<br>
+// CHECK-LD32-NOSTDLIB-LCXX: "-bpT:0x10000000" "-bpD:0x20000000"<br>
+// CHECK-LD32-NOSTDLIB-LCXX-NOT: "[[SYSROOT]]/usr/lib{{/|\\\\}}crt0.o"<br>
+// CHECK-LD32-NOSTDLIB-LCXX: "-L[[SYSROOT]]/usr/lib"<br>
+// CHECK-LD32-NOSTDLIB-LCXX-NOT: "-lc++"<br>
+// CHECK-LD32-NOSTDLIB-LCXX-NOT: "-lc"<br>
+<br>
+// Check powerpc64-ibm-aix7.1.0.0, 64-bit. -nostdlib.<br>
+// RUN: %clangxx -no-canonical-prefixes %s 2>&1 -### \<br>
+// RUN: -nostdlib \<br>
+// RUN: -target powerpc64-ibm-aix7.1.0.0 \<br>
+// RUN: --sysroot %S/Inputs/aix_ppc_tree \<br>
+// RUN: | FileCheck --check-prefix=CHECK-LD64-NOSTDLIB-LCXX %s<br>
+// CHECK-LD64-NOSTDLIB-LCXX: {{.*}}clang{{.*}}" "-cc1" "-triple" "powerpc64-ibm-aix7.1.0.0"<br>
+// CHECK-LD64-NOSTDLIB-LCXX: "-isysroot" "[[SYSROOT:[^"]+]]"<br>
+// CHECK-LD64-NOSTDLIB-LCXX: "{{.*}}ld{{(.exe)?}}"<br>
+// CHECK-LD64-NOSTDLIB-LCXX: "-b64"<br>
+// CHECK-LD64-NOSTDLIB-LCXX: "-bpT:0x100000000" "-bpD:0x110000000"<br>
+// CHECK-LD64-NOSTDLIB-LCXX-NOT: "[[SYSROOT]]/usr/lib{{/|\\\\}}crt0_64.o"<br>
+// CHECK-LD64-NOSTDLIB-LCXX: "-L[[SYSROOT]]/usr/lib"<br>
+// CHECK-LD64-NOSTDLIB-LCXX-NOT: "-lc++"<br>
+// CHECK-LD64-NOSTDLIB-LCXX-NOT: "-lc"<br>
+<br>
+// Check powerpc-ibm-aix7.1.0.0, 32-bit. -nostdlib++.<br>
+// RUN: %clangxx -no-canonical-prefixes %s 2>&1 -### \<br>
+// RUN: -nostdlib++ \<br>
+// RUN: -target powerpc-ibm-aix7.1.0.0 \<br>
+// RUN: --sysroot %S/Inputs/aix_ppc_tree \<br>
+// RUN: | FileCheck --check-prefix=CHECK-LD32-NOSTDLIBXX-LCXX %s<br>
+// CHECK-LD32-NOSTDLIBXX-LCXX: {{.*}}clang{{.*}}" "-cc1" "-triple" "powerpc-ibm-aix7.1.0.0"<br>
+// CHECK-LD32-NOSTDLIBXX-LCXX: "-isysroot" "[[SYSROOT:[^"]+]]"<br>
+// CHECK-LD32-NOSTDLIBXX-LCXX: "{{.*}}ld{{(.exe)?}}"<br>
+// CHECK-LD32-NOSTDLIBXX-LCXX: "-b32"<br>
+// CHECK-LD32-NOSTDLIBXX-LCXX: "-bpT:0x10000000" "-bpD:0x20000000"<br>
+// CHECK-LD32-NOSTDLIBXX-LCXX: "[[SYSROOT]]/usr/lib{{/|\\\\}}crt0.o"<br>
+// CHECK-LD32-NOSTDLIBXX-LCXX: "-L[[SYSROOT]]/usr/lib"<br>
+// CHECK-LD32-NOSTDLIBXX-LCXX-NOT: "-lc++"<br>
+// CHECK-LD32-NOSTDLIBXX-LCXX: "-lc"<br>
+<br>
+// Check powerpc64-ibm-aix7.1.0.0, 64-bit. -nostdlib++.<br>
+// RUN: %clangxx -no-canonical-prefixes %s 2>&1 -### \<br>
+// RUN: -nostdlib++ \<br>
+// RUN: -target powerpc64-ibm-aix7.1.0.0 \<br>
+// RUN: --sysroot %S/Inputs/aix_ppc_tree \<br>
+// RUN: | FileCheck --check-prefix=CHECK-LD64-NOSTDLIBXX-LCXX %s<br>
+// CHECK-LD64-NOSTDLIBXX-LCXX: {{.*}}clang{{.*}}" "-cc1" "-triple" "powerpc64-ibm-aix7.1.0.0"<br>
+// CHECK-LD64-NOSTDLIBXX-LCXX: "-isysroot" "[[SYSROOT:[^"]+]]"<br>
+// CHECK-LD64-NOSTDLIBXX-LCXX: "{{.*}}ld{{(.exe)?}}"<br>
+// CHECK-LD64-NOSTDLIBXX-LCXX: "-b64"<br>
+// CHECK-LD64-NOSTDLIBXX-LCXX: "-bpT:0x100000000" "-bpD:0x110000000"<br>
+// CHECK-LD64-NOSTDLIBXX-LCXX: "[[SYSROOT]]/usr/lib{{/|\\\\}}crt0_64.o"<br>
+// CHECK-LD64-NOSTDLIBXX-LCXX: "-L[[SYSROOT]]/usr/lib"<br>
+// CHECK-LD64-NOSTDLIBXX-LCXX-NOT: "-lc++"<br>
+// CHECK-LD64-NOSTDLIBXX-LCXX: "-lc"<br>
+<br>
+// Check powerpc-ibm-aix7.1.0.0, 32-bit. -stdlib=libstdc++ invokes fatal error.<br>
+// RUN: not --crash %clangxx -no-canonical-prefixes %s 2>&1 -### \<br>
+// RUN: -target powerpc-ibm-aix7.1.0.0 \<br>
+// RUN: -stdlib=libstdc++ \<br>
+// RUN: --sysroot %S/Inputs/aix_ppc_tree \<br>
+// RUN: | FileCheck --check-prefix=CHECK-LD-LIBSTDCXX %s<br>
+<br>
+// Check powerpc64-ibm-aix7.1.0.0, 64-bit. -stdlib=libstdc++ invokes fatal error.<br>
+// RUN: not --crash %clangxx -no-canonical-prefixes %s 2>&1 -### \<br>
+// RUN: -target powerpc64-ibm-aix7.1.0.0 \<br>
+// RUN: -stdlib=libstdc++ \<br>
+// RUN: --sysroot %S/Inputs/aix_ppc_tree \<br>
+// RUN: | FileCheck --check-prefix=CHECK-LD-LIBSTDCXX %s<br>
+// CHECK-LD-LIBSTDCXX: LLVM ERROR: linking libstdc++ unimplemented on AIX<br>
<br>
<br>
<br>
_______________________________________________<br>
cfe-commits mailing list<br>
<a href="mailto:cfe-commits@lists.llvm.org" target="_blank">cfe-commits@lists.llvm.org</a><br>
<a href="https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits" rel="noreferrer" target="_blank">https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits</a><br>
</blockquote></div>