mirror of
https://github.com/Gericom/teak-llvm.git
synced 2025-06-25 14:28:54 -04:00

Summary: It seems a bad idea to change the default in the middle of a release branch due to possible changes in global ctor / dtor ordering between .ctors and .init_array. With FreeBSD 11.0's release imminent lets change the default now for FreeBSD 12 (the current development stream) and later. FreeBSD rtld has supported .init_array / .fini_array for many years. As of Jan 1 2017 all supported FreeBSD releases and branches will have support. Reviewers: dim, brooks, arichardson Reviewed By: dim, brooks, arichardson Subscribers: bsdjhb, krytarowski, emaste, cfe-commits Differential Revision: https://reviews.llvm.org/D24867 llvm-svn: 336008
99 lines
4.2 KiB
C
99 lines
4.2 KiB
C
// Test whether or not the driver instructs the backend to use .init_array
|
|
// sections for global constructors.
|
|
//
|
|
// CHECK-INIT-ARRAY: -fuse-init-array
|
|
// CHECK-NO-INIT-ARRAY-NOT: -fuse-init-array
|
|
//
|
|
// RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \
|
|
// RUN: -target i386-unknown-linux \
|
|
// RUN: --sysroot=%S/Inputs/resource_dir \
|
|
// RUN: --gcc-toolchain="" \
|
|
// RUN: | FileCheck --check-prefix=CHECK-INIT-ARRAY %s
|
|
//
|
|
// RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \
|
|
// RUN: -target i386-unknown-linux \
|
|
// RUN: --sysroot=%S/Inputs/fake_install_tree \
|
|
// RUN: --gcc-toolchain="" \
|
|
// RUN: | FileCheck --check-prefix=CHECK-INIT-ARRAY %s
|
|
//
|
|
// RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \
|
|
// RUN: -fno-use-init-array \
|
|
// RUN: -target i386-unknown-linux \
|
|
// RUN: --sysroot=%S/Inputs/fake_install_tree \
|
|
// RUN: --gcc-toolchain="" \
|
|
// RUN: | FileCheck --check-prefix=CHECK-NO-INIT-ARRAY %s
|
|
//
|
|
// RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \
|
|
// RUN: -fno-use-init-array -fuse-init-array \
|
|
// RUN: -target i386-unknown-linux \
|
|
// RUN: --sysroot=%S/Inputs/fake_install_tree \
|
|
// RUN: --gcc-toolchain="" \
|
|
// RUN: | FileCheck --check-prefix=CHECK-INIT-ARRAY %s
|
|
//
|
|
// RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \
|
|
// RUN: -target i386-unknown-linux \
|
|
// RUN: --sysroot=%S/Inputs/basic_linux_tree \
|
|
// RUN: --gcc-toolchain="" \
|
|
// RUN: | FileCheck --check-prefix=CHECK-NO-INIT-ARRAY %s
|
|
//
|
|
// RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \
|
|
// RUN: -fuse-init-array \
|
|
// RUN: -target i386-unknown-linux \
|
|
// RUN: --sysroot=%S/Inputs/basic_linux_tree \
|
|
// RUN: --gcc-toolchain="" \
|
|
// RUN: | FileCheck --check-prefix=CHECK-INIT-ARRAY %s
|
|
//
|
|
// RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \
|
|
// RUN: -target arm-unknown-linux-androideabi \
|
|
// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
|
|
// RUN: --gcc-toolchain="" \
|
|
// RUN: | FileCheck --check-prefix=CHECK-INIT-ARRAY %s
|
|
//
|
|
// RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \
|
|
// RUN: -target mipsel-unknown-linux-android \
|
|
// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
|
|
// RUN: --gcc-toolchain="" \
|
|
// RUN: | FileCheck --check-prefix=CHECK-INIT-ARRAY %s
|
|
//
|
|
// RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \
|
|
// RUN: -target i386-unknown-linux-android \
|
|
// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
|
|
// RUN: --gcc-toolchain="" \
|
|
// RUN: | FileCheck --check-prefix=CHECK-INIT-ARRAY %s
|
|
//
|
|
// RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \
|
|
// RUN: -target aarch64-none-linux-gnu \
|
|
// RUN: --sysroot=%S/Inputs/basic_linux_tree \
|
|
// RUN: --gcc-toolchain="" \
|
|
// RUN: | FileCheck --check-prefix=CHECK-INIT-ARRAY %s
|
|
//
|
|
// RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \
|
|
// RUN: -target aarch64-none-none-eabi \
|
|
// RUN: | FileCheck --check-prefix=CHECK-INIT-ARRAY %s
|
|
|
|
// RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \
|
|
// RUN: -target arm64-none-linux-gnu \
|
|
// RUN: --sysroot=%S/Inputs/basic_linux_tree \
|
|
// RUN: --gcc-toolchain="" \
|
|
// RUN: | FileCheck --check-prefix=CHECK-INIT-ARRAY %s
|
|
//
|
|
// RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \
|
|
// RUN: -target arm64-none-none-eabi \
|
|
// RUN: | FileCheck --check-prefix=CHECK-INIT-ARRAY %s
|
|
|
|
// RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \
|
|
// RUN: -target i386-unknown-freebsd11 \
|
|
// RUN: | FileCheck --check-prefix=CHECK-NO-INIT-ARRAY %s
|
|
|
|
// RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \
|
|
// RUN: -target i386-unknown-freebsd12 \
|
|
// RUN: | FileCheck --check-prefix=CHECK-INIT-ARRAY %s
|
|
//
|
|
// RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \
|
|
// RUN: -target sparc-sun-solaris2.11 \
|
|
// RUN: | FileCheck --check-prefix=CHECK-INIT-ARRAY %s
|
|
//
|
|
// RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \
|
|
// RUN: -target i386-pc-solaris2.11 \
|
|
// RUN: | FileCheck --check-prefix=CHECK-INIT-ARRAY %s
|