forked from OSchip/llvm-project
Drop libgcc and default to libc++ for NetBSD/ARM on 6.99.40+.
Don't bother with keeping the old support for x86_64 in 6.99.23+, just use a single range. Update test cases for the always-on --eh-frame-hdr. llvm-svn: 208170
This commit is contained in:
parent
3a6c28ad1c
commit
1ea6647838
|
@ -2621,8 +2621,12 @@ NetBSD::GetCXXStdlibType(const ArgList &Args) const {
|
|||
|
||||
unsigned Major, Minor, Micro;
|
||||
getTriple().getOSVersion(Major, Minor, Micro);
|
||||
if (Major >= 7 || (Major == 6 && Minor == 99 && Micro >= 23) || Major == 0) {
|
||||
if (Major >= 7 || (Major == 6 && Minor == 99 && Micro >= 40) || Major == 0) {
|
||||
switch (getArch()) {
|
||||
case llvm::Triple::arm:
|
||||
case llvm::Triple::armeb:
|
||||
case llvm::Triple::thumb:
|
||||
case llvm::Triple::thumbeb:
|
||||
case llvm::Triple::x86:
|
||||
case llvm::Triple::x86_64:
|
||||
return ToolChain::CST_Libcxx;
|
||||
|
|
|
@ -6608,8 +6608,12 @@ void netbsd::Link::ConstructJob(Compilation &C, const JobAction &JA,
|
|||
unsigned Major, Minor, Micro;
|
||||
getToolChain().getTriple().getOSVersion(Major, Minor, Micro);
|
||||
bool useLibgcc = true;
|
||||
if (Major >= 7 || (Major == 6 && Minor == 99 && Micro >= 23) || Major == 0) {
|
||||
if (Major >= 7 || (Major == 6 && Minor == 99 && Micro >= 40) || Major == 0) {
|
||||
switch(getToolChain().getArch()) {
|
||||
case llvm::Triple::arm:
|
||||
case llvm::Triple::armeb:
|
||||
case llvm::Triple::thumb:
|
||||
case llvm::Triple::thumbeb:
|
||||
case llvm::Triple::x86:
|
||||
case llvm::Triple::x86_64:
|
||||
useLibgcc = false;
|
||||
|
|
|
@ -251,7 +251,6 @@
|
|||
// S-ARM-7: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o"
|
||||
// S-ARM-7: "{{.*}}/usr/lib{{/|\\\\}}eabi{{/|\\\\}}crti.o"
|
||||
// S-ARM-7: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
|
||||
// S-ARM-7: "-lgcc_eh" "-lc" "-lgcc"
|
||||
// S-ARM-7: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
|
||||
|
||||
// S-ARM-6: clang{{.*}}" "-cc1" "-triple" "armv5e--netbsd6.0.0-eabi"
|
||||
|
|
|
@ -7,6 +7,12 @@
|
|||
// RUN: %clangxx -no-canonical-prefixes -target x86_64--netbsd6.0.0 \
|
||||
// RUN: --sysroot=%S/Inputs/basic_netbsd_tree %s -### 2>&1 \
|
||||
// RUN: | FileCheck -check-prefix=X86_64-6 %s
|
||||
// RUN: %clangxx -no-canonical-prefixes -target arm--netbsd6.0.0-eabi \
|
||||
// RUN: --sysroot=%S/Inputs/basic_netbsd_tree %s -### 2>&1 \
|
||||
// RUN: | FileCheck -check-prefix=ARM %s
|
||||
// RUN: %clangxx -no-canonical-prefixes -target arm--netbsd7.0.0-eabi \
|
||||
// RUN: --sysroot=%S/Inputs/basic_netbsd_tree %s -### 2>&1 \
|
||||
// RUN: | FileCheck -check-prefix=ARM-7 %s
|
||||
// RUN: %clangxx -no-canonical-prefixes -target aarch64--netbsd \
|
||||
// RUN: --sysroot=%S/Inputs/basic_netbsd_tree %s -### 2>&1 \
|
||||
// RUN: | FileCheck -check-prefix=AARCH64 %s
|
||||
|
@ -35,6 +41,12 @@
|
|||
// RUN: %clangxx -no-canonical-prefixes -target x86_64--netbsd6.0.0 -static \
|
||||
// RUN: --sysroot=%S/Inputs/basic_netbsd_tree %s -### 2>&1 \
|
||||
// RUN: | FileCheck -check-prefix=S-X86_64-6 %s
|
||||
// RUN: %clangxx -no-canonical-prefixes -target arm--netbsd6.0.0-eabi -static \
|
||||
// RUN: --sysroot=%S/Inputs/basic_netbsd_tree %s -### 2>&1 \
|
||||
// RUN: | FileCheck -check-prefix=S-ARM %s
|
||||
// RUN: %clangxx -no-canonical-prefixes -target arm--netbsd7.0.0-eabi -static \
|
||||
// RUN: --sysroot=%S/Inputs/basic_netbsd_tree %s -### 2>&1 \
|
||||
// RUN: | FileCheck -check-prefix=S-ARM-7 %s
|
||||
// RUN: %clangxx -no-canonical-prefixes -target aarch64--netbsd -static \
|
||||
// RUN: --sysroot=%S/Inputs/basic_netbsd_tree %s -### 2>&1 \
|
||||
// RUN: | FileCheck -check-prefix=S-AARCH64 %s
|
||||
|
@ -73,6 +85,19 @@
|
|||
// X86_64-6: "-lm" "-lc" "-lgcc" "--as-needed" "-lgcc_s" "--no-as-needed"
|
||||
// X86_64-6: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
|
||||
|
||||
// ARM: clang{{.*}}" "-cc1" "-triple" "armv5e--netbsd6.0.0-eabi"
|
||||
// ARM: ld{{.*}}" "--eh-frame-hdr" "-dynamic-linker" "/libexec/ld.elf_so"
|
||||
// ARM: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o" "{{.*}}/usr/lib{{/|\\\\}}eabi{{/|\\\\}}crti.o"
|
||||
// ARM: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lstdc++"
|
||||
// ARM: "-lm" "-lc" "-lgcc" "--as-needed" "-lgcc_s" "--no-as-needed"
|
||||
// ARM: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
|
||||
|
||||
// ARM-7: clang{{.*}}" "-cc1" "-triple" "armv5e--netbsd7.0.0-eabi"
|
||||
// ARM-7: ld{{.*}}" "--eh-frame-hdr" "-dynamic-linker" "/libexec/ld.elf_so"
|
||||
// ARM-7: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o" "{{.*}}/usr/lib{{/|\\\\}}eabi{{/|\\\\}}crti.o"
|
||||
// ARM-7: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc++" "-lm" "-lc"
|
||||
// ARM-7: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
|
||||
|
||||
// AARCH64: clang{{.*}}" "-cc1" "-triple" "aarch64--netbsd"
|
||||
// AARCH64: ld{{.*}}" "--eh-frame-hdr" "-dynamic-linker" "/libexec/ld.elf_so"
|
||||
// AARCH64: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o" "{{.*}}/usr/lib{{/|\\\\}}crti.o"
|
||||
|
@ -117,54 +142,67 @@
|
|||
// SPARC64: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
|
||||
|
||||
// S-X86_64: clang{{.*}}" "-cc1" "-triple" "x86_64--netbsd"
|
||||
// S-X86_64: ld{{.*}}" "-Bstatic"
|
||||
// S-X86_64: ld{{.*}}" "--eh-frame-hdr" "-Bstatic"
|
||||
// S-X86_64: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o" "{{.*}}/usr/lib{{/|\\\\}}crti.o"
|
||||
// S-X86_64: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc++"
|
||||
// S-X86_64: "-lm" "-lc" "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
|
||||
|
||||
// S-X86_64-7: clang{{.*}}" "-cc1" "-triple" "x86_64--netbsd7.0.0"
|
||||
// S-X86_64-7: ld{{.*}}" "-Bstatic"
|
||||
// S-X86_64-7: ld{{.*}}" "--eh-frame-hdr" "-Bstatic"
|
||||
// S-X86_64-7: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o" "{{.*}}/usr/lib{{/|\\\\}}crti.o"
|
||||
// S-X86_64-7: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc++"
|
||||
// S-X86_64-7: "-lm" "-lc" "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
|
||||
|
||||
// S-X86_64-6: clang{{.*}}" "-cc1" "-triple" "x86_64--netbsd6.0.0"
|
||||
// S-X86_64-6: ld{{.*}}" "-Bstatic"
|
||||
// S-X86_64-6: ld{{.*}}" "--eh-frame-hdr" "-Bstatic"
|
||||
// S-X86_64-6: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o" "{{.*}}/usr/lib{{/|\\\\}}crti.o"
|
||||
// S-X86_64-6: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lstdc++"
|
||||
// S-X86_64-6: "-lm" "-lc" "-lgcc_eh" "-lc" "-lgcc"
|
||||
// S-X86_64-6: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
|
||||
|
||||
// S-ARM: clang{{.*}}" "-cc1" "-triple" "armv5e--netbsd6.0.0-eabi"
|
||||
// S-ARM: ld{{.*}}" "--eh-frame-hdr" "-Bstatic"
|
||||
// S-ARM: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o" "{{.*}}/usr/lib{{/|\\\\}}eabi{{/|\\\\}}crti.o"
|
||||
// S-ARM: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lstdc++"
|
||||
// S-ARM: "-lm" "-lc" "-lgcc_eh" "-lc" "-lgcc"
|
||||
// S-ARM: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
|
||||
|
||||
// S-ARM-7: clang{{.*}}" "-cc1" "-triple" "armv5e--netbsd7.0.0-eabi"
|
||||
// S-ARM-7: ld{{.*}}" "--eh-frame-hdr" "-Bstatic"
|
||||
// S-ARM-7: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o" "{{.*}}/usr/lib{{/|\\\\}}eabi{{/|\\\\}}crti.o"
|
||||
// S-ARM-7: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc++" "-lm" "-lc"
|
||||
// S-ARM-7: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
|
||||
|
||||
// S-AARCH64: clang{{.*}}" "-cc1" "-triple" "aarch64--netbsd"
|
||||
// S-AARCH64: ld{{.*}}" "-Bstatic"
|
||||
// S-AARCH64: ld{{.*}}" "--eh-frame-hdr" "-Bstatic"
|
||||
// S-AARCH64: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o" "{{.*}}/usr/lib{{/|\\\\}}crti.o"
|
||||
// S-AARCH64: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lstdc++"
|
||||
// S-AARCH64: "-lm" "-lc" "-lgcc_eh" "-lc" "-lgcc"
|
||||
// S-AARCH64: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
|
||||
|
||||
// S-AARCH64-7: clang{{.*}}" "-cc1" "-triple" "aarch64--netbsd7.0.0"
|
||||
// S-AARCH64-7: ld{{.*}}" "-Bstatic"
|
||||
// S-AARCH64-7: ld{{.*}}" "--eh-frame-hdr" "-Bstatic"
|
||||
// S-AARCH64-7: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o" "{{.*}}/usr/lib{{/|\\\\}}crti.o"
|
||||
// S-AARCH64-7: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lstdc++"
|
||||
// S-AARCH64-7: "-lm" "-lc" "-lgcc_eh" "-lc" "-lgcc"
|
||||
// S-AARCH64-7: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
|
||||
|
||||
// S-ARM64: clang{{.*}}" "-cc1" "-triple" "arm64--netbsd"
|
||||
// S-ARM64: ld{{.*}}" "-Bstatic"
|
||||
// S-ARM64: ld{{.*}}" "--eh-frame-hdr" "-Bstatic"
|
||||
// S-ARM64: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o" "{{.*}}/usr/lib{{/|\\\\}}crti.o"
|
||||
// S-ARM64: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lstdc++"
|
||||
// S-ARM64: "-lm" "-lc" "-lgcc_eh" "-lc" "-lgcc"
|
||||
// S-ARM64: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
|
||||
|
||||
// S-ARM64-7: clang{{.*}}" "-cc1" "-triple" "arm64--netbsd7.0.0"
|
||||
// S-ARM64-7: ld{{.*}}" "-Bstatic"
|
||||
// S-ARM64-7: ld{{.*}}" "--eh-frame-hdr" "-Bstatic"
|
||||
// S-ARM64-7: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o" "{{.*}}/usr/lib{{/|\\\\}}crti.o"
|
||||
// S-ARM64-7: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lstdc++"
|
||||
// S-ARM64-7: "-lm" "-lc" "-lgcc_eh" "-lc" "-lgcc"
|
||||
// S-ARM64-7: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
|
||||
|
||||
// S-SPARC: clang{{.*}}" "-cc1" "-triple" "sparc--netbsd"
|
||||
// S-SPARC: ld{{.*}}" "-Bstatic"
|
||||
// S-SPARC: ld{{.*}}" "--eh-frame-hdr" "-Bstatic"
|
||||
// S-SPARC: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o"
|
||||
// S-SPARC: "{{.*}}/usr/lib{{/|\\\\}}sparc{{/|\\\\}}crti.o"
|
||||
// S-SPARC: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lstdc++"
|
||||
|
@ -172,7 +210,7 @@
|
|||
// S-SPARC: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
|
||||
|
||||
// S-SPARC64: clang{{.*}}" "-cc1" "-triple" "sparc64--netbsd"
|
||||
// S-SPARC64: ld{{.*}}" "-Bstatic"
|
||||
// S-SPARC64: ld{{.*}}" "--eh-frame-hdr" "-Bstatic"
|
||||
// S-SPARC64: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o" "{{.*}}/usr/lib{{/|\\\\}}crti.o"
|
||||
// S-SPARC64: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lstdc++"
|
||||
// S-SPARC64: "-lm" "-lc" "-lgcc_eh" "-lc" "-lgcc"
|
||||
|
|
Loading…
Reference in New Issue