diff options
author | Fangrui Song <maskray@google.com> | 2019-12-11 21:48:59 -0800 |
---|---|---|
committer | Fangrui Song <maskray@google.com> | 2019-12-12 10:32:56 -0800 |
commit | b2b5cac3ec07782b917b2816f175da682723cd49 (patch) | |
tree | a724b239b5dd0e06305faecf206023363f04a82b /clang/test/Driver/mips-mti-linux.c | |
parent | 61f5ba5c32fae2726d3ead5e7360c084720f4692 (diff) | |
download | bcm5719-llvm-b2b5cac3ec07782b917b2816f175da682723cd49.tar.gz bcm5719-llvm-b2b5cac3ec07782b917b2816f175da682723cd49.zip |
Default to -fuse-init-array
Very few ELF platforms still use .ctors/.dtors now. Linux (glibc: 1999-07),
DragonFlyBSD, FreeBSD (2012-03) and Solaris have supported .init_array
for many years. Some architectures like AArch64/RISC-V default to
.init_array . GNU ld and gold can even convert .ctors to .init_array .
It makes more sense to flip the CC1 default, and only uses
-fno-use-init-array on platforms that don't support .init_array .
For example, OpenBSD did not support DT_INIT_ARRAY before Aug 2016
(https://github.com/openbsd/src/commit/86fa57a2792c6374b0849dd7b818a11e676e60ba)
I may miss some ELF platforms that still use .ctors, but their
maintainers can easily diagnose such problems.
Reviewed By: rnk
Differential Revision: https://reviews.llvm.org/D71393
Diffstat (limited to 'clang/test/Driver/mips-mti-linux.c')
-rw-r--r-- | clang/test/Driver/mips-mti-linux.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/clang/test/Driver/mips-mti-linux.c b/clang/test/Driver/mips-mti-linux.c index ddc84986ee8..21b270c0a4b 100644 --- a/clang/test/Driver/mips-mti-linux.c +++ b/clang/test/Driver/mips-mti-linux.c @@ -13,7 +13,7 @@ // RUN: | FileCheck --check-prefix=CHECK-BE-HF-32R2 %s // // CHECK-BE-HF-32R2: "{{[^"]*}}clang{{[^"]*}}" {{.*}} "-triple" "mips-mti-linux" -// CHECK-BE-HF-32R2-SAME: "-fuse-init-array" "-target-cpu" "mips32r2" +// CHECK-BE-HF-32R2-SAME: "-target-cpu" "mips32r2" // CHECK-BE-HF-32R2-SAME: "-isysroot" "{{.*}}mips_mti_linux/sysroot" // CHECK-BE-HF-32R2: "{{[^"]*}}ld.lld{{[^"]*}}" // CHECK-BE-HF-32R2-SAME: "--sysroot=[[SYSROOT:[^"]+]]" {{.*}} "-dynamic-linker" "/lib/ld-musl-mips.so.1" @@ -31,7 +31,7 @@ // RUN: | FileCheck --check-prefix=CHECK-LE-HF-32R2 %s // // CHECK-LE-HF-32R2: "{{[^"]*}}clang{{[^"]*}}" {{.*}} "-triple" "mipsel-mti-linux" -// CHECK-LE-HF-32R2-SAME: "-fuse-init-array" "-target-cpu" "mips32r2" +// CHECK-LE-HF-32R2-SAME: "-target-cpu" "mips32r2" // CHECK-LE-HF-32R2-SAME: "-isysroot" "{{.*}}mips_mti_linux/sysroot" // CHECK-LE-HF-32R2: "{{[^"]*}}ld.lld{{[^"]*}}" // CHECK-LE-HF-32R2-SAME: "--sysroot=[[SYSROOT:[^"]+]]" {{.*}} "-dynamic-linker" "/lib/ld-musl-mipsel.so.1" |