From b5409b8e98e5d62d383caf996bef124b056e65e7 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Mon, 12 Nov 2007 18:01:27 +0000 Subject: [PATCH] * Glibc 2.7. * Hack to remove the dependency on Perl. * Hack to work around this bug: http://sourceware.org/bugzilla/show_bug.cgi I.e. when gcc is compiled with --with-arch=i686, then the preprocessor symbol `__i686' will be defined to `1'. This causes the symbol __i686.get_pc_thunk.dx to be mangled. The error message for reference: ../sysdeps/i386/fpu/s_frexp.S: Assembler messages: ../sysdeps/i386/fpu/s_frexp.S:66: Error: invalid identifier for ".ifdef" ../sysdeps/i386/fpu/s_frexp.S:66: Error: junk at end of line, first unrecognized character is `1' ... ../sysdeps/i386/fpu/s_frexp.S:66: Error: ".endif" without ".if" ../sysdeps/i386/fpu/s_frexp.S:66: Error: junk `.get_pc_thunk.dx' after expression Now Glibc builds again with GCC 4.x. svn path=/nixpkgs/branches/stdenv-updates/; revision=9660 --- .../libraries/glibc-nptl/builder.sh | 7 ++++++ .../libraries/glibc-nptl/default.nix | 23 +++++++++++-------- pkgs/top-level/all-packages.nix | 3 +-- 3 files changed, 21 insertions(+), 12 deletions(-) diff --git a/pkgs/development/libraries/glibc-nptl/builder.sh b/pkgs/development/libraries/glibc-nptl/builder.sh index e4f6dec1354..3e874ed891c 100644 --- a/pkgs/development/libraries/glibc-nptl/builder.sh +++ b/pkgs/development/libraries/glibc-nptl/builder.sh @@ -16,6 +16,13 @@ preConfigure() { --replace "@PWD@" "pwd" done + # In the glibc 2.6/2.7 tarballs C-translit.h is a little bit older + # than C-translit.h.in, forcing Make to rebuild it unnecessarily. + # This wouldn't be problem except that it requires Perl, which we + # don't want as a dependency in the Nixpkgs bootstrap. So force + # the output file to be newer. + touch locale/C-translit.h + mkdir ../build cd ../build diff --git a/pkgs/development/libraries/glibc-nptl/default.nix b/pkgs/development/libraries/glibc-nptl/default.nix index 86cc9ecf565..8a5a84bd2c6 100644 --- a/pkgs/development/libraries/glibc-nptl/default.nix +++ b/pkgs/development/libraries/glibc-nptl/default.nix @@ -1,18 +1,16 @@ -{ stdenv, fetchurl, kernelHeaders -,perl +{ stdenv, fetchurl, kernelHeaders , installLocales ? true , profilingLibraries ? false }: stdenv.mkDerivation { - name = "glibc-2.6.1-nptl"; + name = "glibc-2.7"; builder = ./builder.sh; - src = - fetchurl { - url = http://ftp.gnu.org/gnu/glibc/glibc-2.6.1.tar.bz2; - sha256 = "08pcfsi9zpikjakljklks2ln3hn7544cr9br4kbh5kx27cy3mv9x"; - }; + src = fetchurl { + url = mirror://gnu/glibc/glibc-2.7.tar.bz2; + sha256 = "06j5q20l11x8kcrl9bg15xgb1pw0w82pazikxf4zvq2fmhiaa922"; + }; patches = [ ./glibc-pwd.patch ./glibc-getcwd-param-MAX.patch ]; @@ -20,12 +18,17 @@ stdenv.mkDerivation { inherit (stdenv) is64bit; - buildInputs=[perl]; - # `--with-tls --without-__thread' enables support for TLS but causes # it not to be used. Required if we don't want to barf on 2.4 # kernels. Or something. configureFlags="--enable-add-ons --with-headers=${kernelHeaders}/include ${if profilingLibraries then "--enable-profile" else "--disable-profile"}"; + + # Workaround for this bug: + # http://sourceware.org/bugzilla/show_bug.cgi?id=411 + # I.e. when gcc is compiled with --with-arch=i686, then the + # preprocessor symbol `__i686' will be defined to `1'. This causes + # the symbol __i686.get_pc_thunk.dx to be mangled. + NIX_CFLAGS_COMPILE = "-U__i686"; } diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 7dac21186e2..90e2d4bc7a5 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -1747,8 +1747,7 @@ rec { }); glibcNPTL = import ../development/libraries/glibc-nptl { - inherit fetchurl kernelHeaders perl; - stdenv = overrideGCC stdenv gcc34; + inherit fetchurl stdenv kernelHeaders; }; glibmm = import ../development/libraries/gtk-libs-2.6/glibmm {