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..95466d843d69 100644 --- a/pkgs/development/tools/build-managers/gnumake/4.2/default.nix +++ b/pkgs/development/tools/build-managers/gnumake/4.2/default.nix @@ -20,6 +20,8 @@ stdenv.mkDerivation { # included Makefiles, don't look in /usr/include and friends. ./impure-dirs.patch ./pselect.patch + # Fix support for glibc 2.27's glob, inspired by http://www.linuxfromscratch.org/lfs/view/8.2/chapter05/make.html + ./glibc-2.27-glob.patch ]; nativeBuildInputs = stdenv.lib.optionals guileSupport [ pkgconfig ]; diff --git a/pkgs/development/tools/build-managers/gnumake/4.2/glibc-2.27-glob.patch b/pkgs/development/tools/build-managers/gnumake/4.2/glibc-2.27-glob.patch new file mode 100644 index 000000000000..186212d0d298 --- /dev/null +++ b/pkgs/development/tools/build-managers/gnumake/4.2/glibc-2.27-glob.patch @@ -0,0 +1,32 @@ +diff -Naur glob/glob.c glob/glob.c +--- glob/glob.c 2013-10-20 13:14:38.000000000 -0400 ++++ glob/glob.c 2018-03-16 14:32:38.483496170 -0400 +@@ -208,28 +208,9 @@ + #endif /* __GNU_LIBRARY__ || __DJGPP__ */ + + +-#if !defined __alloca && !defined __GNU_LIBRARY__ +- +-# ifdef __GNUC__ +-# undef alloca +-# define alloca(n) __builtin_alloca (n) +-# else /* Not GCC. */ +-# ifdef HAVE_ALLOCA_H + # include +-# else /* Not HAVE_ALLOCA_H. */ +-# ifndef _AIX +-# ifdef WINDOWS32 +-# include +-# else +-extern char *alloca (); +-# endif /* WINDOWS32 */ +-# endif /* Not _AIX. */ +-# endif /* sparc or HAVE_ALLOCA_H. */ +-# endif /* GCC. */ +- + # define __alloca alloca + +-#endif + + #ifndef __GNU_LIBRARY__ + # define __stat stat 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 deleted file mode 100644 index c2639c6cc927..000000000000 --- a/pkgs/development/tools/build-managers/gnumake/4.2/glibc-2.27.patch +++ /dev/null @@ -1,24 +0,0 @@ -From 48c8a116a914a325a0497721f5d8b58d5bba34d4 Mon Sep 17 00:00:00 2001 -From: Paul Smith -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 - #include - --#define GLOB_INTERFACE_VERSION 1 - #if !defined _LIBC && defined __GNU_LIBRARY__ && __GNU_LIBRARY__ > 1 - # include --# if _GNU_GLOB_INTERFACE_VERSION == GLOB_INTERFACE_VERSION -+# if _GNU_GLOB_INTERFACE_VERSION == 1 || _GNU_GLOB_INTERFACE_VERSION == 2 - gnu glob - # endif - #endif diff --git a/pkgs/development/tools/build-managers/gnumake/4.2/head.nix b/pkgs/development/tools/build-managers/gnumake/4.2/head.nix deleted file mode 100644 index 5f3ae10c3e5b..000000000000 --- a/pkgs/development/tools/build-managers/gnumake/4.2/head.nix +++ /dev/null @@ -1,69 +0,0 @@ -{ stdenv, fetchurl, texinfo, guileSupport ? false, pkgconfig , guile ? null, autoreconfHook }: - -assert guileSupport -> ( guile != null ); - -let - version = "4.2.90"; - revision = "48c8a116a914a325a0497721f5d8b58d5bba34d4"; - revCount = "2491"; - shortRev = "48c8a11"; - - baseVersion = "4.2.1"; - baseTarball = fetchurl { - url = "mirror://gnu/make/make-${baseVersion}.tar.bz2"; - sha256 = "12f5zzyq2w56g95nni65hc0g5p7154033y2f3qmjvd016szn5qnn"; - }; -in -stdenv.mkDerivation { - name = "gnumake-${version}pre${revCount}_${shortRev}"; - - src = fetchurl { - url = "http://git.savannah.gnu.org/cgit/make.git/snapshot/make-${revision}.tar.gz"; - sha256 = "0k6yvhr2a5lh1qhflv02dyvq5p20ikgaakm8w6gr4xmkspljwpwx"; - }; - - postUnpack = '' - unpackFile ${baseTarball} - cp make-${baseVersion}/po/*.po $sourceRoot/po - cp make-${baseVersion}/doc/{fdl,make-stds}.texi $sourceRoot/doc - ''; - - patches = [ - # Purity: don't look for library dependencies (of the form `-lfoo') in /lib - # and /usr/lib. It's a stupid feature anyway. Likewise, when searching for - # included Makefiles, don't look in /usr/include and friends. - ./impure-dirs-head.patch - ]; - - postPatch = '' - # These aren't in the 4.2.1 tarball yet. - sed -i -e 's/sr//' -e 's/zh_TW//' po/LINGUAS - ''; - - nativeBuildInputs = [ autoreconfHook pkgconfig texinfo ]; - buildInputs = stdenv.lib.optional guileSupport guile; - - configureFlags = stdenv.lib.optional guileSupport "--with-guile"; - - outputs = [ "out" "man" "info" ]; - - meta = with stdenv.lib; { - homepage = http://www.gnu.org/software/make/; - description = "A tool to control the generation of non-source files from sources"; - license = licenses.gpl3Plus; - - longDescription = '' - Make is a tool which controls the generation of executables and - other non-source files of a program from the program's source files. - - Make gets its knowledge of how to build your program from a file - called the makefile, which lists each of the non-source files and - how to compute it from other files. When you write a program, you - should write a makefile for it, so that it is possible to use Make - to build and install the program. - ''; - - platforms = platforms.all; - maintainers = [ maintainers.vrthra ]; - }; -} diff --git a/pkgs/development/tools/build-managers/gnumake/4.2/impure-dirs-head.patch b/pkgs/development/tools/build-managers/gnumake/4.2/impure-dirs-head.patch deleted file mode 100644 index 06d39e13ce39..000000000000 --- a/pkgs/development/tools/build-managers/gnumake/4.2/impure-dirs-head.patch +++ /dev/null @@ -1,31 +0,0 @@ -diff -Naur a/src/read.c b/src/read.c ---- a/src/read.c 2017-11-19 15:17:47.000000000 -0500 -+++ b/src/read.c 2018-02-19 08:53:51.548755213 -0500 -@@ -109,10 +109,12 @@ - #endif - INCLUDEDIR, - #ifndef _AMIGA -+#if 0 - "/usr/gnu/include", - "/usr/local/include", - "/usr/include", - #endif -+#endif - 0 - }; - -diff -Naur a/src/remake.c b/src/remake.c ---- a/src/remake.c 2017-11-19 15:17:47.000000000 -0500 -+++ b/src/remake.c 2018-02-19 08:54:08.304101943 -0500 -@@ -1601,9 +1601,11 @@ - static const char *dirs[] = - { - #ifndef _AMIGA -+#if 0 - "/lib", - "/usr/lib", - #endif -+#endif - #if defined(WINDOWS32) && !defined(LIBDIR) - /* - * This is completely up to the user at product install time. Just define diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 816f0a2b597b..ed16ed95b942 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -7758,11 +7758,7 @@ with pkgs; gnumake382 = callPackage ../development/tools/build-managers/gnumake/3.82 { }; gnumake3 = gnumake382; - gnumake42 = callPackage ../development/tools/build-managers/gnumake/4.2 { }; - gnumake = if hostPlatform.isRiscV # Technically this check should be for glibc version. - then gnumake42HEAD - else gnumake42; - gnumake42HEAD = callPackage ../development/tools/build-managers/gnumake/4.2/head.nix { }; + gnumake = callPackage ../development/tools/build-managers/gnumake/4.2 { }; gnustep = recurseIntoAttrs (callPackage ../desktops/gnustep {});