Re: r346167 - [Driver] Reland again again: Default Android toolchains to libc++.

2018-11-06 Thread Hans Wennborg via cfe-commits
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++.

2018-11-05 Thread Dan Albert via cfe-commits
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"
+//