Re: r346167 - [Driver] Reland again again: Default Android toolchains to libc++.
Just fyi: this broke Chrome's build of compiler-rt using tot Clang against the sysroot generated by NDK r16's (I think) make_standalong_toolchain.py, see https://crbug.com/902270 It looks like we'll just hack around it though. On Mon, Nov 5, 2018 at 9:57 PM, Dan Albert via cfe-commits wrote: > Author: danalbert > Date: Mon Nov 5 12:57:46 2018 > New Revision: 346167 > > URL: http://llvm.org/viewvc/llvm-project?rev=346167=rev > Log: > [Driver] Reland again again: Default Android toolchains to libc++. > > Landed more fixes to the compiler-rt Android tests. > > Original review was https://reviews.llvm.org/D53109. > > Added: > > cfe/trunk/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/include/c++/v1/.keep > Modified: > cfe/trunk/lib/Driver/ToolChains/Linux.cpp > cfe/trunk/lib/Driver/ToolChains/Linux.h > cfe/trunk/test/Driver/android-ndk-standalone.cpp > > Modified: cfe/trunk/lib/Driver/ToolChains/Linux.cpp > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/ToolChains/Linux.cpp?rev=346167=346166=346167=diff > == > --- cfe/trunk/lib/Driver/ToolChains/Linux.cpp (original) > +++ cfe/trunk/lib/Driver/ToolChains/Linux.cpp Mon Nov 5 12:57:46 2018 > @@ -443,6 +443,12 @@ Linux::Linux(const Driver , const llvm >addPathIfExists(D, SysRoot + "/usr/lib", Paths); > } > > +ToolChain::CXXStdlibType Linux::GetDefaultCXXStdlibType() const { > + if (getTriple().isAndroid()) > +return ToolChain::CST_Libcxx; > + return ToolChain::CST_Libstdcxx; > +} > + > bool Linux::HasNativeLLVMSupport() const { return true; } > > Tool *Linux::buildLinker() const { return new > tools::gnutools::Linker(*this); } > > Modified: cfe/trunk/lib/Driver/ToolChains/Linux.h > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/ToolChains/Linux.h?rev=346167=346166=346167=diff > == > --- cfe/trunk/lib/Driver/ToolChains/Linux.h (original) > +++ cfe/trunk/lib/Driver/ToolChains/Linux.h Mon Nov 5 12:57:46 2018 > @@ -37,6 +37,7 @@ public: >llvm::opt::ArgStringList ) const override; >void AddIAMCUIncludeArgs(const llvm::opt::ArgList , > llvm::opt::ArgStringList ) const override; > + CXXStdlibType GetDefaultCXXStdlibType() const override; >bool isPIEDefault() const override; >bool IsMathErrnoDefault() const override; >SanitizerMask getSupportedSanitizers() const override; > > Added: > cfe/trunk/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/include/c++/v1/.keep > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/include/c%2B%2B/v1/.keep?rev=346167=auto > == > (empty) > > Modified: cfe/trunk/test/Driver/android-ndk-standalone.cpp > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/android-ndk-standalone.cpp?rev=346167=346166=346167=diff > == > --- cfe/trunk/test/Driver/android-ndk-standalone.cpp (original) > +++ cfe/trunk/test/Driver/android-ndk-standalone.cpp Mon Nov 5 12:57:46 2018 > @@ -2,21 +2,13 @@ > // toolchain. > // > // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ > -// RUN: -target arm-linux-androideabi21 -stdlib=libstdc++ \ > +// RUN: -target arm-linux-androideabi21 \ > // RUN: -B%S/Inputs/basic_android_ndk_tree \ > // RUN: --sysroot=%S/Inputs/basic_android_ndk_tree/sysroot \ > // RUN: | FileCheck %s > // CHECK: {{.*}}clang{{.*}}" "-cc1" > // CHECK: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" > -// CHECK: "-internal-isystem" "{{.*}}/include/c++/4.9" > -// CHECK-NOT: "-internal-isystem" > "{{.*}}/include/c++/4.9/arm-linux-androideabi/armv7-a/thumb" > -// CHECK-NOT: "-internal-isystem" > "{{.*}}/include/c++/4.9/arm-linux-androideabi/armv7-a" > -// CHECK-NOT: "-internal-isystem" > "{{.*}}/include/c++/4.9/arm-linux-androideabi/thumb" > -// CHECK: "-internal-isystem" "{{.*}}/include/c++/4.9/arm-linux-androideabi" > -// CHECK-NOT: "-internal-isystem" > "{{.*}}/include/c++/4.9/arm-linux-androideabi/armv7-a/thumb" > -// CHECK-NOT: "-internal-isystem" > "{{.*}}/include/c++/4.9/arm-linux-androideabi/armv7-a" > -// CHECK-NOT: "-internal-isystem" > "{{.*}}/include/c++/4.9/arm-linux-androideabi/thumb" > -// CHECK: "-internal-isystem" "{{.*}}/include/c++/4.9/backward" > +// CHECK: "-internal-isystem" "{{.*}}/include/c++/v1" > // CHECK: "-internal-isystem" "{{.*}}/sysroot/usr/local/include" > // CHECK: "-internal-isystem" "[[RESOURCE_DIR]]{{(/|)}}include" > // CHECK: "-internal-externc-isystem" > "{{.*}}/sysroot/usr/include/arm-linux-androideabi" > @@ -49,21 +41,47 @@ > // CHECK-14: "-L{{.*}}/sysroot/usr/lib/arm-linux-androideabi" > // > // RUN: %clang -no-canonical-prefixes %s -### -o
r346167 - [Driver] Reland again again: Default Android toolchains to libc++.
Author: danalbert Date: Mon Nov 5 12:57:46 2018 New Revision: 346167 URL: http://llvm.org/viewvc/llvm-project?rev=346167=rev Log: [Driver] Reland again again: Default Android toolchains to libc++. Landed more fixes to the compiler-rt Android tests. Original review was https://reviews.llvm.org/D53109. Added: cfe/trunk/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/include/c++/v1/.keep Modified: cfe/trunk/lib/Driver/ToolChains/Linux.cpp cfe/trunk/lib/Driver/ToolChains/Linux.h cfe/trunk/test/Driver/android-ndk-standalone.cpp Modified: cfe/trunk/lib/Driver/ToolChains/Linux.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/ToolChains/Linux.cpp?rev=346167=346166=346167=diff == --- cfe/trunk/lib/Driver/ToolChains/Linux.cpp (original) +++ cfe/trunk/lib/Driver/ToolChains/Linux.cpp Mon Nov 5 12:57:46 2018 @@ -443,6 +443,12 @@ Linux::Linux(const Driver , const llvm addPathIfExists(D, SysRoot + "/usr/lib", Paths); } +ToolChain::CXXStdlibType Linux::GetDefaultCXXStdlibType() const { + if (getTriple().isAndroid()) +return ToolChain::CST_Libcxx; + return ToolChain::CST_Libstdcxx; +} + bool Linux::HasNativeLLVMSupport() const { return true; } Tool *Linux::buildLinker() const { return new tools::gnutools::Linker(*this); } Modified: cfe/trunk/lib/Driver/ToolChains/Linux.h URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/ToolChains/Linux.h?rev=346167=346166=346167=diff == --- cfe/trunk/lib/Driver/ToolChains/Linux.h (original) +++ cfe/trunk/lib/Driver/ToolChains/Linux.h Mon Nov 5 12:57:46 2018 @@ -37,6 +37,7 @@ public: llvm::opt::ArgStringList ) const override; void AddIAMCUIncludeArgs(const llvm::opt::ArgList , llvm::opt::ArgStringList ) const override; + CXXStdlibType GetDefaultCXXStdlibType() const override; bool isPIEDefault() const override; bool IsMathErrnoDefault() const override; SanitizerMask getSupportedSanitizers() const override; Added: cfe/trunk/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/include/c++/v1/.keep URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/include/c%2B%2B/v1/.keep?rev=346167=auto == (empty) Modified: cfe/trunk/test/Driver/android-ndk-standalone.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/android-ndk-standalone.cpp?rev=346167=346166=346167=diff == --- cfe/trunk/test/Driver/android-ndk-standalone.cpp (original) +++ cfe/trunk/test/Driver/android-ndk-standalone.cpp Mon Nov 5 12:57:46 2018 @@ -2,21 +2,13 @@ // toolchain. // // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ -// RUN: -target arm-linux-androideabi21 -stdlib=libstdc++ \ +// RUN: -target arm-linux-androideabi21 \ // RUN: -B%S/Inputs/basic_android_ndk_tree \ // RUN: --sysroot=%S/Inputs/basic_android_ndk_tree/sysroot \ // RUN: | FileCheck %s // CHECK: {{.*}}clang{{.*}}" "-cc1" // CHECK: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" -// CHECK: "-internal-isystem" "{{.*}}/include/c++/4.9" -// CHECK-NOT: "-internal-isystem" "{{.*}}/include/c++/4.9/arm-linux-androideabi/armv7-a/thumb" -// CHECK-NOT: "-internal-isystem" "{{.*}}/include/c++/4.9/arm-linux-androideabi/armv7-a" -// CHECK-NOT: "-internal-isystem" "{{.*}}/include/c++/4.9/arm-linux-androideabi/thumb" -// CHECK: "-internal-isystem" "{{.*}}/include/c++/4.9/arm-linux-androideabi" -// CHECK-NOT: "-internal-isystem" "{{.*}}/include/c++/4.9/arm-linux-androideabi/armv7-a/thumb" -// CHECK-NOT: "-internal-isystem" "{{.*}}/include/c++/4.9/arm-linux-androideabi/armv7-a" -// CHECK-NOT: "-internal-isystem" "{{.*}}/include/c++/4.9/arm-linux-androideabi/thumb" -// CHECK: "-internal-isystem" "{{.*}}/include/c++/4.9/backward" +// CHECK: "-internal-isystem" "{{.*}}/include/c++/v1" // CHECK: "-internal-isystem" "{{.*}}/sysroot/usr/local/include" // CHECK: "-internal-isystem" "[[RESOURCE_DIR]]{{(/|)}}include" // CHECK: "-internal-externc-isystem" "{{.*}}/sysroot/usr/include/arm-linux-androideabi" @@ -49,21 +41,47 @@ // CHECK-14: "-L{{.*}}/sysroot/usr/lib/arm-linux-androideabi" // // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ -// RUN: -target armv7a-none-linux-androideabi21 -stdlib=libstdc++ \ +// RUN: -target arm-linux-androideabi21 -stdlib=libstdc++ \ +// RUN: -B%S/Inputs/basic_android_ndk_tree \ +// RUN: --sysroot=%S/Inputs/basic_android_ndk_tree/sysroot \ +// RUN: | FileCheck --check-prefix=CHECK-STDCXX %s +// CHECK-STDCXX: {{.*}}clang{{.*}}" "-cc1" +// CHECK-STDCXX: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" +// CHECK-STDCXX: "-internal-isystem" "{{.*}}/include/c++/4.9" +//