From a7e893482b47589d82a8126afd7d0ba025b8f202 Mon Sep 17 00:00:00 2001 From: Tilmann Scheller Date: Tue, 6 May 2014 16:58:14 +0000 Subject: [PATCH] Add driver support for AArch64 Fedora. Reviewed by Eric Christopher. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@208105 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Driver/ToolChains.cpp | 5 +++-- .../gcc/aarch64-redhat-linux/4.9.0/crtbegin.o | 0 .../gcc/aarch64-redhat-linux/4.9.0/crtend.o | 0 .../Inputs/fedora_21_tree/usr/lib64/crt1.o | 0 .../Inputs/fedora_21_tree/usr/lib64/crti.o | 0 .../Inputs/fedora_21_tree/usr/lib64/crtn.o | 0 test/Driver/linux-ld.c | 18 ++++++++++++++++++ 7 files changed, 21 insertions(+), 2 deletions(-) create mode 100644 test/Driver/Inputs/fedora_21_tree/usr/lib/gcc/aarch64-redhat-linux/4.9.0/crtbegin.o create mode 100644 test/Driver/Inputs/fedora_21_tree/usr/lib/gcc/aarch64-redhat-linux/4.9.0/crtend.o create mode 100644 test/Driver/Inputs/fedora_21_tree/usr/lib64/crt1.o create mode 100644 test/Driver/Inputs/fedora_21_tree/usr/lib64/crti.o create mode 100644 test/Driver/Inputs/fedora_21_tree/usr/lib64/crtn.o diff --git a/lib/Driver/ToolChains.cpp b/lib/Driver/ToolChains.cpp index 6e741c6ab2..98cd927ad9 100644 --- a/lib/Driver/ToolChains.cpp +++ b/lib/Driver/ToolChains.cpp @@ -1320,10 +1320,11 @@ bool Generic_GCC::GCCInstallationDetector::getBiarchSibling(Multilib &M) const { // Declare a bunch of static data sets that we'll select between below. These // are specifically designed to always refer to string literals to avoid any // lifetime or initialization issues. - static const char *const AArch64LibDirs[] = { "/lib" }; + static const char *const AArch64LibDirs[] = { "/lib64", "/lib" }; static const char *const AArch64Triples[] = { "aarch64-none-linux-gnu", "aarch64-linux-gnu", - "aarch64-linux-android" }; + "aarch64-linux-android", + "aarch64-redhat-linux" }; static const char *const AArch64beLibDirs[] = { "/lib" }; static const char *const AArch64beTriples[] = { "aarch64_be-none-linux-gnu", "aarch64_be-linux-gnu" }; diff --git a/test/Driver/Inputs/fedora_21_tree/usr/lib/gcc/aarch64-redhat-linux/4.9.0/crtbegin.o b/test/Driver/Inputs/fedora_21_tree/usr/lib/gcc/aarch64-redhat-linux/4.9.0/crtbegin.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/fedora_21_tree/usr/lib/gcc/aarch64-redhat-linux/4.9.0/crtend.o b/test/Driver/Inputs/fedora_21_tree/usr/lib/gcc/aarch64-redhat-linux/4.9.0/crtend.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/fedora_21_tree/usr/lib64/crt1.o b/test/Driver/Inputs/fedora_21_tree/usr/lib64/crt1.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/fedora_21_tree/usr/lib64/crti.o b/test/Driver/Inputs/fedora_21_tree/usr/lib64/crti.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/Inputs/fedora_21_tree/usr/lib64/crtn.o b/test/Driver/Inputs/fedora_21_tree/usr/lib64/crtn.o new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/Driver/linux-ld.c b/test/Driver/linux-ld.c index b7dbb5a37b..4036635847 100644 --- a/test/Driver/linux-ld.c +++ b/test/Driver/linux-ld.c @@ -361,6 +361,24 @@ // CHECK-FEDORA-18-ARM-HF: "{{.*}}/usr/lib/gcc/armv7hl-redhat-linux-gnueabi/4.7.2{{/|\\\\}}crtend.o" // CHECK-FEDORA-18-ARM-HF: "{{.*}}/usr/lib/gcc/armv7hl-redhat-linux-gnueabi/4.7.2/../../../../lib{{/|\\\\}}crtn.o" // +// Check Fedora 21 on AArch64. +// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ +// RUN: --target=arm64-unknown-linux-gnu \ +// RUN: --sysroot=%S/Inputs/fedora_21_tree \ +// RUN: | FileCheck --check-prefix=CHECK-FEDORA-21-AARCH64 %s +// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ +// RUN: --target=aarch64-unknown-linux-gnu \ +// RUN: --sysroot=%S/Inputs/fedora_21_tree \ +// RUN: | FileCheck --check-prefix=CHECK-FEDORA-21-AARCH64 %s +// CHECK-FEDORA-21-AARCH64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" +// CHECK-FEDORA-21-AARCH64: "{{.*}}/usr/lib/gcc/aarch64-redhat-linux/4.9.0/../../../../lib64{{/|\\\\}}crt1.o" +// CHECK-FEDORA-21-AARCH64: "{{.*}}/usr/lib/gcc/aarch64-redhat-linux/4.9.0/../../../../lib64{{/|\\\\}}crti.o" +// CHECK-FEDORA-21-AARCH64: "{{.*}}/usr/lib/gcc/aarch64-redhat-linux/4.9.0{{/|\\\\}}crtbegin.o" +// CHECK-FEDORA-21-AARCH64: "-L[[SYSROOT]]/usr/lib/gcc/aarch64-redhat-linux/4.9.0" +// CHECK-FEDORA-21-AARCH64: "-L[[SYSROOT]]/usr/lib/gcc/aarch64-redhat-linux/4.9.0/../../../../lib64" +// CHECK-FEDORA-21-AARCH64: "{{.*}}/usr/lib/gcc/aarch64-redhat-linux/4.9.0{{/|\\\\}}crtend.o" +// CHECK-FEDORA-21-AARCH64: "{{.*}}/usr/lib/gcc/aarch64-redhat-linux/4.9.0/../../../../lib64{{/|\\\\}}crtn.o" +// // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ // RUN: --target=arm-unknown-linux-gnueabi \ // RUN: --sysroot=%S/Inputs/ubuntu_12.04_LTS_multiarch_tree \ -- 2.40.0