forked from OSchip/llvm-project
Improve x86 android support, add x86_64 android target
llvm-svn: 199875
This commit is contained in:
parent
29b7866c6c
commit
cf7ae30135
|
@ -1292,7 +1292,8 @@ void Generic_GCC::GCCInstallationDetector::print(raw_ostream &OS) const {
|
|||
static const char *const X86_64Triples[] = {
|
||||
"x86_64-linux-gnu", "x86_64-unknown-linux-gnu", "x86_64-pc-linux-gnu",
|
||||
"x86_64-redhat-linux6E", "x86_64-redhat-linux", "x86_64-suse-linux",
|
||||
"x86_64-manbo-linux-gnu", "x86_64-linux-gnu", "x86_64-slackware-linux"
|
||||
"x86_64-manbo-linux-gnu", "x86_64-linux-gnu", "x86_64-slackware-linux",
|
||||
"x86_64-linux-android"
|
||||
};
|
||||
static const char *const X86LibDirs[] = { "/lib32", "/lib" };
|
||||
static const char *const X86Triples[] = {
|
||||
|
|
|
@ -6344,10 +6344,13 @@ static bool hasMipsN32ABIArg(const ArgList &Args) {
|
|||
|
||||
static StringRef getLinuxDynamicLinker(const ArgList &Args,
|
||||
const toolchains::Linux &ToolChain) {
|
||||
if (ToolChain.getTriple().getEnvironment() == llvm::Triple::Android)
|
||||
return "/system/bin/linker";
|
||||
else if (ToolChain.getArch() == llvm::Triple::x86 ||
|
||||
ToolChain.getArch() == llvm::Triple::sparc)
|
||||
if (ToolChain.getTriple().getEnvironment() == llvm::Triple::Android) {
|
||||
if (ToolChain.getTriple().isArch64Bit())
|
||||
return "/system/bin/linker64";
|
||||
else
|
||||
return "/system/bin/linker";
|
||||
} else if (ToolChain.getArch() == llvm::Triple::x86 ||
|
||||
ToolChain.getArch() == llvm::Triple::sparc)
|
||||
return "/lib/ld-linux.so.2";
|
||||
else if (ToolChain.getArch() == llvm::Triple::aarch64)
|
||||
return "/lib/ld-linux-aarch64.so.1";
|
||||
|
|
|
@ -211,3 +211,9 @@
|
|||
// RUN: | FileCheck --check-prefix=ANDROID-X86 %s
|
||||
// ANDROID-X86: clang
|
||||
// ANDROID-X86: "-target-cpu" "core2"
|
||||
|
||||
// RUN: %clang -target x86_64-linux-android -### -S %s 2>&1 \
|
||||
// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
|
||||
// RUN: | FileCheck --check-prefix=ANDROID-X86_64 %s
|
||||
// ANDROID-X86_64: clang
|
||||
// ANDROID-X86_64: "-target-cpu" "core2"
|
||||
|
|
|
@ -559,6 +559,10 @@
|
|||
// RUN: --target=i686-linux-android \
|
||||
// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
|
||||
// RUN: | FileCheck --check-prefix=CHECK-ANDROID %s
|
||||
// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
|
||||
// RUN: --target=x86_64-linux-android \
|
||||
// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
|
||||
// RUN: | FileCheck --check-prefix=CHECK-ANDROID %s
|
||||
// CHECK-ANDROID: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
|
||||
// CHECK-ANDROID: "{{.*}}{{/|\\\\}}crtbegin_dynamic.o"
|
||||
// CHECK-ANDROID: "-L[[SYSROOT]]/usr/lib"
|
||||
|
@ -587,6 +591,11 @@
|
|||
// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
|
||||
// RUN: -shared \
|
||||
// RUN: | FileCheck --check-prefix=CHECK-ANDROID-SO %s
|
||||
// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
|
||||
// RUN: --target=x86_64-linux-android \
|
||||
// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
|
||||
// RUN: -shared \
|
||||
// RUN: | FileCheck --check-prefix=CHECK-ANDROID-SO %s
|
||||
// CHECK-ANDROID-SO: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
|
||||
// CHECK-ANDROID-SO: "-Bsymbolic"
|
||||
// CHECK-ANDROID-SO: "{{.*}}{{/|\\\\}}crtbegin_so.o"
|
||||
|
@ -616,6 +625,11 @@
|
|||
// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
|
||||
// RUN: -static \
|
||||
// RUN: | FileCheck --check-prefix=CHECK-ANDROID-STATIC %s
|
||||
// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
|
||||
// RUN: --target=x86-linux-android \
|
||||
// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
|
||||
// RUN: -static \
|
||||
// RUN: | FileCheck --check-prefix=CHECK-ANDROID-STATIC %s
|
||||
// CHECK-ANDROID-STATIC: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
|
||||
// CHECK-ANDROID-STATIC: "{{.*}}{{/|\\\\}}crtbegin_static.o"
|
||||
// CHECK-ANDROID-STATIC: "-L[[SYSROOT]]/usr/lib"
|
||||
|
@ -644,6 +658,11 @@
|
|||
// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
|
||||
// RUN: -pie \
|
||||
// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PIE %s
|
||||
// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
|
||||
// RUN: --target=x86_64-linux-android \
|
||||
// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
|
||||
// RUN: -pie \
|
||||
// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PIE %s
|
||||
// CHECK-ANDROID-PIE: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
|
||||
// CHECK-ANDROID-PIE: "{{.*}}{{/|\\\\}}crtbegin_dynamic.o"
|
||||
// CHECK-ANDROID-PIE: "-L[[SYSROOT]]/usr/lib"
|
||||
|
@ -651,6 +670,28 @@
|
|||
// CHECK-ANDROID-PIE: "-lgcc"
|
||||
// CHECK-ANDROID-PIE-NOT: "gcc_s"
|
||||
// CHECK-ANDROID-PIE: "{{.*}}{{/|\\\\}}crtend_android.o"
|
||||
// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
|
||||
// RUN: --target=arm-linux-androideabi \
|
||||
// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
|
||||
// RUN: | FileCheck --check-prefix=CHECK-ANDROID-32 %s
|
||||
// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
|
||||
// RUN: --target=arm-linux-android \
|
||||
// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
|
||||
// RUN: | FileCheck --check-prefix=CHECK-ANDROID-32 %s
|
||||
// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
|
||||
// RUN: --target=mipsel-linux-android \
|
||||
// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
|
||||
// RUN: | FileCheck --check-prefix=CHECK-ANDROID-32 %s
|
||||
// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
|
||||
// RUN: --target=i686-linux-android \
|
||||
// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
|
||||
// RUN: | FileCheck --check-prefix=CHECK-ANDROID-32 %s
|
||||
// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
|
||||
// RUN: --target=x86_64-linux-android \
|
||||
// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
|
||||
// RUN: | FileCheck --check-prefix=CHECK-ANDROID-64 %s
|
||||
// CHECK-ANDROID-32: "-dynamic-linker" "/system/bin/linker"
|
||||
// CHECK-ANDROID-64: "-dynamic-linker" "/system/bin/linker64"
|
||||
//
|
||||
// Check linker invocation on Debian 6 MIPS 32/64-bit.
|
||||
// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
|
||||
|
|
Loading…
Reference in New Issue