diff options
author | Alyssa Ross <hi@alyssa.is> | 2019-02-24 01:09:00 +0000 |
---|---|---|
committer | Alyssa Ross <hi@alyssa.is> | 2019-02-24 01:09:00 +0000 |
commit | 072c01a28f865e9487df09aed7ddff328252fb36 (patch) | |
tree | 6df6e652915940255f294ed8998cce1c4c7c2d40 /nixpkgs/pkgs/development/libraries/glibc | |
parent | 024b46ff20027c15322e5d868ecec42632556d4b (diff) | |
parent | 969cff2691a02b3d7e5468beda26c482d8986644 (diff) | |
download | nixlib-072c01a28f865e9487df09aed7ddff328252fb36.tar nixlib-072c01a28f865e9487df09aed7ddff328252fb36.tar.gz nixlib-072c01a28f865e9487df09aed7ddff328252fb36.tar.bz2 nixlib-072c01a28f865e9487df09aed7ddff328252fb36.tar.lz nixlib-072c01a28f865e9487df09aed7ddff328252fb36.tar.xz nixlib-072c01a28f865e9487df09aed7ddff328252fb36.tar.zst nixlib-072c01a28f865e9487df09aed7ddff328252fb36.zip |
Merge commit '969cff2691a02b3d7e5468beda26c482d8986644'
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/glibc')
4 files changed, 114 insertions, 10 deletions
diff --git a/nixpkgs/pkgs/development/libraries/glibc/common.nix b/nixpkgs/pkgs/development/libraries/glibc/common.nix index 50d8c6e268c2..cb4571265af7 100644 --- a/nixpkgs/pkgs/development/libraries/glibc/common.nix +++ b/nixpkgs/pkgs/development/libraries/glibc/common.nix @@ -28,7 +28,6 @@ { name , withLinuxHeaders ? false , profilingLibraries ? false -, installLocales ? false , withGd ? false , meta , ... @@ -44,7 +43,7 @@ assert withLinuxHeaders -> linuxHeaders != null; assert withGd -> gd != null && libpng != null; stdenv.mkDerivation ({ - inherit version installLocales; + inherit version; linuxHeaders = if withLinuxHeaders then linuxHeaders else null; inherit (stdenv) is64bit; @@ -88,9 +87,15 @@ stdenv.mkDerivation ({ less linux-*?/arch/x86/kernel/syscall_table_32.S */ ./allow-kernel-2.6.32.patch + /* Provide utf-8 locales by default, so we can use it in stdenv without depending on our large locale-archive. */ + (fetchurl { + url = "https://salsa.debian.org/glibc-team/glibc/raw/49767c9f7de4828220b691b29de0baf60d8a54ec/debian/patches/localedata/locale-C.diff"; + sha256 = "0irj60hs2i91ilwg5w7sqrxb695c93xg0ik7yhhq9irprd7fidn4"; + }) ] ++ lib.optional stdenv.isx86_64 ./fix-x64-abi.patch - ++ lib.optional stdenv.hostPlatform.isMusl ./fix-rpc-types-musl-conflicts.patch; + ++ lib.optional stdenv.hostPlatform.isMusl ./fix-rpc-types-musl-conflicts.patch + ++ lib.optional stdenv.buildPlatform.isDarwin ./darwin-cross-build.patch; postPatch = '' diff --git a/nixpkgs/pkgs/development/libraries/glibc/darwin-cross-build.patch b/nixpkgs/pkgs/development/libraries/glibc/darwin-cross-build.patch new file mode 100644 index 000000000000..7b224924104b --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/glibc/darwin-cross-build.patch @@ -0,0 +1,103 @@ +enable cross-compilation of glibc on Darwin (build=Darwin, host=Linux) +* increase ulimit for open files: macOS default of 256 is too low for glibc build system +* use host version of ar, which is given by environment variable +* build system uses stamp.os and stamp.oS files, which only differ in case; + this fails on macOS, so replace .oS with .o_S +* libintl.h does not exist (and is not needed) on macOS + +--- glibc-2.27/Makefile.in 2018-02-01 17:17:18.000000000 +0100 ++++ glibc-2.27/Makefile.in 2019-02-15 17:38:27.022965553 +0100 +@@ -6,9 +6,11 @@ + .PHONY: all install bench + + all .DEFAULT: +- $(MAKE) -r PARALLELMFLAGS="$(PARALLELMFLAGS)" -C $(srcdir) objdir=`pwd` $@ ++ ulimit -n 1024; \ ++ $(MAKE) -r AR=$$AR PARALLELMFLAGS="$(PARALLELMFLAGS)" -C $(srcdir) objdir=`pwd` $@ + + install: ++ ulimit -n 1024; \ + LC_ALL=C; export LC_ALL; \ + $(MAKE) -r PARALLELMFLAGS="$(PARALLELMFLAGS)" -C $(srcdir) objdir=`pwd` $@ + +--- glibc-2.27/Makerules 2018-02-01 17:17:18.000000000 +0100 ++++ glibc-2.27/Makerules 2019-02-15 17:43:11.196039000 +0100 +@@ -915,8 +915,8 @@ + ifndef objects + + # Create the stamp$o files to keep the parent makefile happy. +-subdir_lib: $(foreach o,$(object-suffixes-for-libc),$(objpfx)stamp$o) +-$(foreach o,$(object-suffixes-for-libc),$(objpfx)stamp$o): ++subdir_lib: $(foreach o,$(object-suffixes-for-libc),$(objpfx)stamp$(subst .oS,.o_S,$o)) ++$(foreach o,$(object-suffixes-for-libc),$(objpfx)stamp$(subst .oS,.o_S,$o)): + $(make-target-directory) + rm -f $@; > $@ + else +@@ -927,7 +927,7 @@ + # The parent will then actually add them all to the archive in the + # archive rule, below. + define o-iterator-doit +-$(objpfx)stamp$o: $(o-objects); $$(do-stamp) ++$(objpfx)stamp$(subst .oS,.o_S,$o): $(o-objects); $$(do-stamp) + endef + define do-stamp + $(make-target-directory) +@@ -943,14 +943,14 @@ + # on the stamp files built above. + define o-iterator-doit + $(common-objpfx)$(patsubst %,$(libtype$o),c): \ +- $(subdirs-stamp-o) $(common-objpfx)stamp$o; $$(do-makelib) ++ $(subdirs-stamp-o) $(common-objpfx)stamp$(subst .oS,.o_S,$o); $$(do-makelib) + endef + define do-makelib + cd $(common-objdir) && \ + $(AR) $(CREATE_ARFLAGS) $(@F) `cat $(patsubst $(common-objpfx)%,%,$^)` + endef + subdirs-stamps := $(foreach d,$(subdirs),$(common-objpfx)$d/stamp%) +-subdirs-stamp-o = $(subst %,$o,$(subdirs-stamps)) ++subdirs-stamp-o = $(subst %,$(subst .oS,.o_S,$o),$(subdirs-stamps)) + ifndef subdir + $(subdirs-stamps): subdir_lib; + endif +@@ -961,7 +961,7 @@ + # This makes all the object files. + .PHONY: objects objs libobjs extra-objs + objects objs: libobjs extra-objs +-libobjs: $(foreach o,$(object-suffixes-for-libc),$(objpfx)stamp$o) ++libobjs: $(foreach o,$(object-suffixes-for-libc),$(objpfx)stamp$(subst .oS,.o_S,$o)) + extra-objs: $(addprefix $(objpfx),$(extra-objs)) + + # Canned sequence for building an extra library archive. +@@ -1615,7 +1615,7 @@ + $(rmobjs) + define rmobjs + $(foreach o,$(object-suffixes-for-libc), +--rm -f $(objpfx)stamp$o $(o-objects)) ++-rm -f $(objpfx)stamp$(subst .oS,.o_S,$o) $(o-objects)) + endef + + # Also remove the dependencies and generated source files. +--- glibc-2.27/sunrpc/rpc_main.c 2019-02-15 17:32:43.710244513 +0100 ++++ glibc-2.27/sunrpc/rpc_main.c 2019-02-15 17:23:57.139617796 +0100 +@@ -38,7 +38,9 @@ + #include <stdio.h> + #include <string.h> + #include <unistd.h> ++#ifndef __APPLE__ + #include <libintl.h> ++#endif + #include <locale.h> + #include <ctype.h> + #include <sys/types.h> +--- glibc-2.27/sunrpc/rpc_scan.c 2019-02-15 17:32:54.845490606 +0100 ++++ glibc-2.27/sunrpc/rpc_scan.c 2019-02-15 17:24:54.288066644 +0100 +@@ -37,7 +37,9 @@ + #include <stdio.h> + #include <ctype.h> + #include <string.h> ++#ifndef __APPLE__ + #include <libintl.h> ++#endif + #include "rpc_scan.h" + #include "rpc_parse.h" + #include "rpc_util.h" diff --git a/nixpkgs/pkgs/development/libraries/glibc/default.nix b/nixpkgs/pkgs/development/libraries/glibc/default.nix index 27a1267f0cfe..e46985d3fca8 100644 --- a/nixpkgs/pkgs/development/libraries/glibc/default.nix +++ b/nixpkgs/pkgs/development/libraries/glibc/default.nix @@ -1,6 +1,5 @@ { stdenv, callPackage , withLinuxHeaders ? true -, installLocales ? true , profilingLibraries ? false , withGd ? false }: @@ -8,7 +7,7 @@ callPackage ./common.nix { inherit stdenv; } { name = "glibc" + stdenv.lib.optionalString withGd "-gd"; - inherit withLinuxHeaders profilingLibraries installLocales withGd; + inherit withLinuxHeaders profilingLibraries withGd; # Note: # Things you write here override, and do not add to, @@ -57,9 +56,8 @@ callPackage ./common.nix { inherit stdenv; } { ''; postInstall = '' - if test -n "$installLocales"; then - make -j''${NIX_BUILD_CORES:-1} -l''${NIX_BUILD_CORES:-1} localedata/install-locales - fi + echo SUPPORTED-LOCALES=C.UTF-8/UTF-8 > ../glibc-2*/localedata/SUPPORTED + make -j''${NIX_BUILD_CORES:-1} -l''${NIX_BUILD_CORES:-1} localedata/install-locales test -f $out/etc/ld.so.cache && rm $out/etc/ld.so.cache diff --git a/nixpkgs/pkgs/development/libraries/glibc/locales.nix b/nixpkgs/pkgs/development/libraries/glibc/locales.nix index 7090c5ceceec..2b20c17d4500 100644 --- a/nixpkgs/pkgs/development/libraries/glibc/locales.nix +++ b/nixpkgs/pkgs/development/libraries/glibc/locales.nix @@ -13,8 +13,6 @@ callPackage ./common.nix { inherit stdenv; } { name = "glibc-locales"; - installLocales = true; - builder = ./locales-builder.sh; outputs = [ "out" ]; |