aboutsummaryrefslogtreecommitdiffstats
path: root/main/llvm/clang-3.6-musl-use-init-array.patch
diff options
context:
space:
mode:
Diffstat (limited to 'main/llvm/clang-3.6-musl-use-init-array.patch')
-rw-r--r--main/llvm/clang-3.6-musl-use-init-array.patch20
1 files changed, 20 insertions, 0 deletions
diff --git a/main/llvm/clang-3.6-musl-use-init-array.patch b/main/llvm/clang-3.6-musl-use-init-array.patch
new file mode 100644
index 0000000000..ae632aabf9
--- /dev/null
+++ b/main/llvm/clang-3.6-musl-use-init-array.patch
@@ -0,0 +1,20 @@
+diff --git a/lib/Driver/ToolChains.cpp b/lib/Driver/ToolChains.cpp
+index f789fd5..6d75b4b 100644
+--- a/lib/Driver/ToolChains.cpp
++++ b/lib/Driver/ToolChains.cpp
+@@ -2080,13 +2085,14 @@ void Generic_ELF::addClangTargetOptions(const ArgList &DriverArgs,
+ const Generic_GCC::GCCVersion &V = GCCInstallation.getVersion();
+ bool UseInitArrayDefault =
+ getTriple().getArch() == llvm::Triple::aarch64 ||
+ getTriple().getArch() == llvm::Triple::aarch64_be ||
+ (getTriple().getOS() == llvm::Triple::Linux &&
+ (!V.isOlderThan(4, 7, 0) ||
+- getTriple().getEnvironment() == llvm::Triple::Android));
++ getTriple().getEnvironment() == llvm::Triple::Android ||
++ getTriple().getEnvironment() == llvm::Triple::Musl));
+
+ if (DriverArgs.hasFlag(options::OPT_fuse_init_array,
+ options::OPT_fno_use_init_array,
+ UseInitArrayDefault))
+ CC1Args.push_back("-fuse-init-array");
+ }