forked from mirrors/nixpkgs
gnumake: Unconditionally fix build against glibc-2.27
This commit is contained in:
parent
1c30c8dd55
commit
519f0b8db2
|
@ -20,6 +20,8 @@ stdenv.mkDerivation {
|
||||||
# included Makefiles, don't look in /usr/include and friends.
|
# included Makefiles, don't look in /usr/include and friends.
|
||||||
./impure-dirs.patch
|
./impure-dirs.patch
|
||||||
./pselect.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 ];
|
nativeBuildInputs = stdenv.lib.optionals guileSupport [ pkgconfig ];
|
||||||
|
|
|
@ -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 <alloca.h>
|
||||||
|
-# else /* Not HAVE_ALLOCA_H. */
|
||||||
|
-# ifndef _AIX
|
||||||
|
-# ifdef WINDOWS32
|
||||||
|
-# include <malloc.h>
|
||||||
|
-# 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
|
|
@ -1,24 +0,0 @@
|
||||||
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
|
|
|
@ -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 ];
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -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
|
|
|
@ -7758,11 +7758,7 @@ with pkgs;
|
||||||
|
|
||||||
gnumake382 = callPackage ../development/tools/build-managers/gnumake/3.82 { };
|
gnumake382 = callPackage ../development/tools/build-managers/gnumake/3.82 { };
|
||||||
gnumake3 = gnumake382;
|
gnumake3 = gnumake382;
|
||||||
gnumake42 = callPackage ../development/tools/build-managers/gnumake/4.2 { };
|
gnumake = 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 { };
|
|
||||||
|
|
||||||
gnustep = recurseIntoAttrs (callPackage ../desktops/gnustep {});
|
gnustep = recurseIntoAttrs (callPackage ../desktops/gnustep {});
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue