From 182de524a1339cf00b186fe277a5aeefc3ac982c Mon Sep 17 00:00:00 2001 From: Will Dietz Date: Sat, 23 Jun 2018 11:45:55 -0500 Subject: [PATCH] llvm_{39,4}: refactor to use same patch file --- pkgs/development/compilers/llvm/3.9/llvm.nix | 2 +- .../llvm/4/dynamiclibrary-musl.patch | 33 ------------------- pkgs/development/compilers/llvm/4/llvm.nix | 2 +- .../llvm/{3.9 => }/dynamiclibrary-musl.patch | 0 4 files changed, 2 insertions(+), 35 deletions(-) delete mode 100644 pkgs/development/compilers/llvm/4/dynamiclibrary-musl.patch rename pkgs/development/compilers/llvm/{3.9 => }/dynamiclibrary-musl.patch (100%) diff --git a/pkgs/development/compilers/llvm/3.9/llvm.nix b/pkgs/development/compilers/llvm/3.9/llvm.nix index 8fe1ac46ce9..708e471bd4a 100644 --- a/pkgs/development/compilers/llvm/3.9/llvm.nix +++ b/pkgs/development/compilers/llvm/3.9/llvm.nix @@ -64,7 +64,7 @@ in stdenv.mkDerivation rec { }) ] ++ stdenv.lib.optionals stdenv.hostPlatform.isMusl [ ../TLI-musl.patch - ./dynamiclibrary-musl.patch + ../dynamiclibrary-musl.patch ]; postPatch = "" diff --git a/pkgs/development/compilers/llvm/4/dynamiclibrary-musl.patch b/pkgs/development/compilers/llvm/4/dynamiclibrary-musl.patch deleted file mode 100644 index d5d7f07b5e1..00000000000 --- a/pkgs/development/compilers/llvm/4/dynamiclibrary-musl.patch +++ /dev/null @@ -1,33 +0,0 @@ -From d12ecb83d01dcb580dd94f4d57828f33d3eb4c35 Mon Sep 17 00:00:00 2001 -From: Natanael Copa -Date: Thu, 18 Feb 2016 15:33:21 +0100 -Subject: [PATCH 3/3] Fix DynamicLibrary to build with musl libc - -stdin/out/err is part of the libc and not the kernel so we check for the -specific libc that does the unexpected instead of linux. - -This is needed for making it build with musl libc. ---- - lib/Support/DynamicLibrary.cpp | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/lib/Support/DynamicLibrary.cpp b/lib/Support/DynamicLibrary.cpp -index 9a7aeb5..0c1c8f8 100644 ---- a/lib/Support/DynamicLibrary.cpp -+++ b/lib/Support/DynamicLibrary.cpp -@@ -140,10 +140,10 @@ void* DynamicLibrary::SearchForAddressOfSymbol(const char *symbolName) { - #define EXPLICIT_SYMBOL(SYM) \ - if (!strcmp(symbolName, #SYM)) return &SYM - --// On linux we have a weird situation. The stderr/out/in symbols are both -+// On GNU libc we have a weird situation. The stderr/out/in symbols are both - // macros and global variables because of standards requirements. So, we - // boldly use the EXPLICIT_SYMBOL macro without checking for a #define first. --#if defined(__linux__) and !defined(__ANDROID__) -+#if defined(__GLIBC__) - { - EXPLICIT_SYMBOL(stderr); - EXPLICIT_SYMBOL(stdout); --- -2.7.3 - diff --git a/pkgs/development/compilers/llvm/4/llvm.nix b/pkgs/development/compilers/llvm/4/llvm.nix index a371296db32..06bcd74456c 100644 --- a/pkgs/development/compilers/llvm/4/llvm.nix +++ b/pkgs/development/compilers/llvm/4/llvm.nix @@ -83,7 +83,7 @@ in stdenv.mkDerivation (rec { patch -p0 < ${../aarch64.patch} '' + stdenv.lib.optionalString stdenv.hostPlatform.isMusl '' patch -p1 -i ${../TLI-musl.patch} - patch -p1 -i ${./dynamiclibrary-musl.patch} + patch -p1 -i ${../dynamiclibrary-musl.patch} patch -p1 -i ${./sanitizers-nongnu.patch} -d projects/compiler-rt ''; diff --git a/pkgs/development/compilers/llvm/3.9/dynamiclibrary-musl.patch b/pkgs/development/compilers/llvm/dynamiclibrary-musl.patch similarity index 100% rename from pkgs/development/compilers/llvm/3.9/dynamiclibrary-musl.patch rename to pkgs/development/compilers/llvm/dynamiclibrary-musl.patch