mirror of https://github.com/microsoft/clang.git
Request init/fini array on FreeBSD 12 and later
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 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@336008 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
cb739b3466
commit
833ad29a88
|
@ -2543,6 +2543,8 @@ void Generic_ELF::addClangTargetOptions(const ArgList &DriverArgs,
|
|||
bool UseInitArrayDefault =
|
||||
getTriple().getArch() == llvm::Triple::aarch64 ||
|
||||
getTriple().getArch() == llvm::Triple::aarch64_be ||
|
||||
(getTriple().getOS() == llvm::Triple::FreeBSD &&
|
||||
getTriple().getOSMajorVersion() >= 12) ||
|
||||
(getTriple().getOS() == llvm::Triple::Linux &&
|
||||
((!GCCInstallation.isValid() || !V.isOlderThan(4, 7, 0)) ||
|
||||
getTriple().isAndroid())) ||
|
||||
|
|
|
@ -80,6 +80,14 @@
|
|||
// 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 \
|
||||
|
|
Loading…
Reference in New Issue