summary refs log tree commit diff
diff options
context:
space:
mode:
authorShea Levy <shea@shealevy.com>2018-02-18 04:56:40 -0500
committerShea Levy <shea@shealevy.com>2018-02-18 09:27:50 -0500
commita551e6debce4cfc0bac3a051f5256a523cd32459 (patch)
tree8eb558b16d0f6ff36cc7c6e2f41a67dddc027724
parent765194d7abb34f82fad697a769c570dd71f87530 (diff)
downloadnixlib-a551e6debce4cfc0bac3a051f5256a523cd32459.tar
nixlib-a551e6debce4cfc0bac3a051f5256a523cd32459.tar.gz
nixlib-a551e6debce4cfc0bac3a051f5256a523cd32459.tar.bz2
nixlib-a551e6debce4cfc0bac3a051f5256a523cd32459.tar.lz
nixlib-a551e6debce4cfc0bac3a051f5256a523cd32459.tar.xz
nixlib-a551e6debce4cfc0bac3a051f5256a523cd32459.tar.zst
nixlib-a551e6debce4cfc0bac3a051f5256a523cd32459.zip
gnumake: Fix build against glibc 2.27.
-rw-r--r--pkgs/development/libraries/glibc/common-2.27.nix2
-rw-r--r--pkgs/development/tools/build-managers/gnumake/4.2/default.nix4
-rw-r--r--pkgs/development/tools/build-managers/gnumake/4.2/glibc-2.27.patch24
3 files changed, 29 insertions, 1 deletions
diff --git a/pkgs/development/libraries/glibc/common-2.27.nix b/pkgs/development/libraries/glibc/common-2.27.nix
index d493feb35fa8..6c443ebbb932 100644
--- a/pkgs/development/libraries/glibc/common-2.27.nix
+++ b/pkgs/development/libraries/glibc/common-2.27.nix
@@ -192,6 +192,8 @@ stdenv.mkDerivation ({
     maintainers = [ lib.maintainers.eelco ];
     platforms = lib.platforms.linux;
   } // meta;
+
+  passthru = { inherit version; };
 }
 
 // lib.optionalAttrs (cross != null) {
diff --git a/pkgs/development/tools/build-managers/gnumake/4.2/default.nix b/pkgs/development/tools/build-managers/gnumake/4.2/default.nix
index e175205143fc..1094cacb7af3 100644
--- a/pkgs/development/tools/build-managers/gnumake/4.2/default.nix
+++ b/pkgs/development/tools/build-managers/gnumake/4.2/default.nix
@@ -4,6 +4,8 @@ assert guileSupport -> ( pkgconfig != null && guile != null );
 
 let
   version = "4.2.1";
+
+  needGlibcPatch = (stdenv.cc.libc.version or "") == "2.27";
 in
 stdenv.mkDerivation {
   name = "gnumake-${version}";
@@ -20,7 +22,7 @@ stdenv.mkDerivation {
     # included Makefiles, don't look in /usr/include and friends.
     ./impure-dirs.patch
     ./pselect.patch
-  ];
+  ] ++ stdenv.lib.optional needGlibcPatch ./glibc-2.27.patch;
 
   nativeBuildInputs = stdenv.lib.optionals guileSupport [ pkgconfig ];
   buildInputs = stdenv.lib.optionals guileSupport [ guile ];
diff --git a/pkgs/development/tools/build-managers/gnumake/4.2/glibc-2.27.patch b/pkgs/development/tools/build-managers/gnumake/4.2/glibc-2.27.patch
new file mode 100644
index 000000000000..c2639c6cc927
--- /dev/null
+++ b/pkgs/development/tools/build-managers/gnumake/4.2/glibc-2.27.patch
@@ -0,0 +1,24 @@
+From 48c8a116a914a325a0497721f5d8b58d5bba34d4 Mon Sep 17 00:00:00 2001
+From: Paul Smith <psmith@gnu.org>
+Date: Sun, 19 Nov 2017 15:09:16 -0500
+Subject: * configure.ac: Support GLIBC glob interface version 2
+
+---
+ configure.ac | 3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+diff -Naur a/configure b/configure
+--- configure	2016-06-10 19:03:21.000000000 -0400
++++ configure	2018-02-18 04:40:32.971371555 -0500
+@@ -11481,10 +11481,9 @@
+ #include <glob.h>
+ #include <fnmatch.h>
+ 
+-#define GLOB_INTERFACE_VERSION 1
+ #if !defined _LIBC && defined __GNU_LIBRARY__ && __GNU_LIBRARY__ > 1
+ # include <gnu-versions.h>
+-# if _GNU_GLOB_INTERFACE_VERSION == GLOB_INTERFACE_VERSION
++# if _GNU_GLOB_INTERFACE_VERSION == 1 || _GNU_GLOB_INTERFACE_VERSION == 2
+    gnu glob
+ # endif
+ #endif