Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 454922 Details for
Bug 595834
sys-devel/clang: arm keywording (was: does not detect arm hardfloat)
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
clang: 0001-Driver-Improve-support-for-Gentoo-arm-hardfloat-eabi.patch
0001-Driver-Improve-support-for-Gentoo-arm-hardfloat-eabi.patch (text/plain), 6.50 KB, created by
Michał Górny
on 2016-12-02 18:01:41 UTC
(
hide
)
Description:
clang: 0001-Driver-Improve-support-for-Gentoo-arm-hardfloat-eabi.patch
Filename:
MIME Type:
Creator:
Michał Górny
Created:
2016-12-02 18:01:41 UTC
Size:
6.50 KB
patch
obsolete
>From 8a5a13d24172fbc578bab55a10d1477749998527 Mon Sep 17 00:00:00 2001 >From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org> >Date: Fri, 2 Dec 2016 15:41:00 +0100 >Subject: [PATCH] [Driver] Improve support for Gentoo arm*-hardfloat-*-*eabi > triples > >Add support for the alternative arm*-hardfloat-* triples that are used >by Gentoo to the GCC installation detector, in order to make it possible >to link to gcc libraries while using the standard clang -target triples. >Add tests based on armhf Gentoo environment. >--- > lib/Driver/ToolChains.cpp | 9 ++++++++ > .../usr/armv7a-hardfloat-linux-gnueabi/lib/.keep | 0 > .../gentoo_linux_gcc_armhf_tree/usr/include/.keep | 0 > .../4.9.3/crtbegin.o | 0 > .../4.9.3/include/g++-v4.9.3/.keep | 0 > test/Driver/linux-ld.c | 26 ++++++++++++++++++++++ > 6 files changed, 35 insertions(+) > create mode 100644 test/Driver/Inputs/gentoo_linux_gcc_armhf_tree/usr/armv7a-hardfloat-linux-gnueabi/lib/.keep > create mode 100644 test/Driver/Inputs/gentoo_linux_gcc_armhf_tree/usr/include/.keep > create mode 100644 test/Driver/Inputs/gentoo_linux_gcc_armhf_tree/usr/lib/gcc/armv7a-hardfloat-linux-gnueabi/4.9.3/crtbegin.o > create mode 100644 test/Driver/Inputs/gentoo_linux_gcc_armhf_tree/usr/lib/gcc/armv7a-hardfloat-linux-gnueabi/4.9.3/include/g++-v4.9.3/.keep > >diff --git a/lib/Driver/ToolChains.cpp b/lib/Driver/ToolChains.cpp >index d03e0cbd8a..fb73628bf2 100644 >--- a/lib/Driver/ToolChains.cpp >+++ b/lib/Driver/ToolChains.cpp >@@ -1557,7 +1557,10 @@ bool Generic_GCC::GCCInstallationDetector::getBiarchSibling(Multilib &M) const { > static const char *const ARMLibDirs[] = {"/lib"}; > static const char *const ARMTriples[] = {"arm-linux-gnueabi", > "arm-linux-androideabi"}; >+ // arm*-hardfloat-* triples are used by Gentoo > static const char *const ARMHFTriples[] = {"arm-linux-gnueabihf", >+ "armv6j-hardfloat-linux-gnueabi", >+ "armv7a-hardfloat-linux-gnueabi", > "armv7hl-redhat-linux-gnueabi"}; > static const char *const ARMebLibDirs[] = {"/lib"}; > static const char *const ARMebTriples[] = {"armeb-linux-gnueabi", >@@ -1565,6 +1568,10 @@ bool Generic_GCC::GCCInstallationDetector::getBiarchSibling(Multilib &M) const { > static const char *const ARMebHFTriples[] = { > "armeb-linux-gnueabihf", "armebv7hl-redhat-linux-gnueabi"}; > >+ static const char *const ARMHFMuslTriples[] = { >+ "armv6j-hardfloat-linux-musleabi", >+ "armv7a-hardfloat-linux-musleabi"}; >+ > static const char *const X86_64LibDirs[] = {"/lib64", "/lib"}; > static const char *const X86_64Triples[] = { > "x86_64-linux-gnu", "x86_64-unknown-linux-gnu", >@@ -1664,6 +1671,8 @@ bool Generic_GCC::GCCInstallationDetector::getBiarchSibling(Multilib &M) const { > LibDirs.append(begin(ARMLibDirs), end(ARMLibDirs)); > if (TargetTriple.getEnvironment() == llvm::Triple::GNUEABIHF) { > TripleAliases.append(begin(ARMHFTriples), end(ARMHFTriples)); >+ } else if (TargetTriple.getEnvironment() == llvm::Triple::MuslEABIHF) { >+ TripleAliases.append(begin(ARMHFMuslTriples), end(ARMHFMuslTriples)); > } else { > TripleAliases.append(begin(ARMTriples), end(ARMTriples)); > } >diff --git a/test/Driver/Inputs/gentoo_linux_gcc_armhf_tree/usr/armv7a-hardfloat-linux-gnueabi/lib/.keep b/test/Driver/Inputs/gentoo_linux_gcc_armhf_tree/usr/armv7a-hardfloat-linux-gnueabi/lib/.keep >new file mode 100644 >index 0000000000..e69de29bb2 >diff --git a/test/Driver/Inputs/gentoo_linux_gcc_armhf_tree/usr/include/.keep b/test/Driver/Inputs/gentoo_linux_gcc_armhf_tree/usr/include/.keep >new file mode 100644 >index 0000000000..e69de29bb2 >diff --git a/test/Driver/Inputs/gentoo_linux_gcc_armhf_tree/usr/lib/gcc/armv7a-hardfloat-linux-gnueabi/4.9.3/crtbegin.o b/test/Driver/Inputs/gentoo_linux_gcc_armhf_tree/usr/lib/gcc/armv7a-hardfloat-linux-gnueabi/4.9.3/crtbegin.o >new file mode 100644 >index 0000000000..e69de29bb2 >diff --git a/test/Driver/Inputs/gentoo_linux_gcc_armhf_tree/usr/lib/gcc/armv7a-hardfloat-linux-gnueabi/4.9.3/include/g++-v4.9.3/.keep b/test/Driver/Inputs/gentoo_linux_gcc_armhf_tree/usr/lib/gcc/armv7a-hardfloat-linux-gnueabi/4.9.3/include/g++-v4.9.3/.keep >new file mode 100644 >index 0000000000..e69de29bb2 >diff --git a/test/Driver/linux-ld.c b/test/Driver/linux-ld.c >index 60b30dd543..dcd7afbf6a 100644 >--- a/test/Driver/linux-ld.c >+++ b/test/Driver/linux-ld.c >@@ -1002,6 +1002,32 @@ > // CHECK-DEBIAN-SPARC64: "[[SYSROOT]]/usr/lib/gcc/sparc64-linux-gnu/4.9{{/|\\\\}}crtend.o" > // CHECK-DEBIAN-SPARC64: "[[SYSROOT]]/usr/lib/gcc/sparc64-linux-gnu/4.9/../../../sparc64-linux-gnu{{/|\\\\}}crtn.o" > // >+// Check Gentoo Linux with GCC installed using arm*-hardfloat-linux-gnu* triples. >+// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ >+// RUN: --target=armv7a-hardfloat-linux-gnueabi --rtlib=platform \ >+// RUN: --gcc-toolchain="" \ >+// RUN: --sysroot=%S/Inputs/gentoo_linux_gcc_armhf_tree \ >+// RUN: | FileCheck --check-prefix=CHECK-LD-GENTOO-ARMHF %s >+// CHECK-LD-GENTOO-ARMHF-NOT: warning: >+// CHECK-LD-GENTOO-ARMHF: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" >+// CHECK-LD-GENTOO-ARMHF: "--eh-frame-hdr" >+// CHECK-LD-GENTOO-ARMHF: "-m" "armelf_linux_eabi" >+// CHECK-LD-GENTOO-ARMHF: "-dynamic-linker" "/lib/ld-linux-armhf.so.3" >+// CHECK-LD-GENTOO-ARMHF: "{{.*}}/usr/lib/gcc/armv7a-hardfloat-linux-gnueabi/4.9.3/crtbegin.o" >+// CHECK-LD-GENTOO-ARMHF: "-L[[SYSROOT]]/usr/lib/gcc/armv7a-hardfloat-linux-gnueabi/4.9.3" >+// CHECK-LD-GENTOO-ARMHF: "-L[[SYSROOT]]/usr/lib/gcc/armv7a-hardfloat-linux-gnueabi/4.9.3/../../../../armv7a-hardfloat-linux-gnueabi/lib" >+// CHECK-LD-GENTOO-ARMHF: "-L[[SYSROOT]]/usr/lib/gcc/armv7a-hardfloat-linux-gnueabi/4.9.3/../../.." >+// CHECK-LD-GENTOO-ARMHF: "-lgcc" "--as-needed" "-lgcc_s" "--no-as-needed" >+// CHECK-LD-GENTOO-ARMHF: "-lc" >+// CHECK-LD-GENTOO-ARMHF: "-lgcc" "--as-needed" "-lgcc_s" "--no-as-needed" >+// >+// Check whether the standard ARM triples can find Gentoo gcc. >+// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ >+// RUN: --target=armv7a-unknown-linux-gnueabihf --rtlib=platform \ >+// RUN: --gcc-toolchain="" \ >+// RUN: --sysroot=%S/Inputs/gentoo_linux_gcc_armhf_tree \ >+// RUN: | FileCheck --check-prefix=CHECK-LD-GENTOO-ARMHF %s >+// > // Test linker invocation on Android. > // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ > // RUN: --target=arm-linux-androideabi -rtlib=platform \ >-- >2.11.0 >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 595834
:
449958
|
450002
|
450004
|
450580
|
454920
| 454922