diff --git a/pkgs/applications/networking/browsers/firefox-3/3.1.nix b/pkgs/applications/networking/browsers/firefox-3/3.1.nix new file mode 100644 index 000000000000..ef40ac0c7d3e --- /dev/null +++ b/pkgs/applications/networking/browsers/firefox-3/3.1.nix @@ -0,0 +1,84 @@ +{ stdenv, fetchurl, pkgconfig, gtk, pango, perl, python, zip, libIDL +, libjpeg, zlib, cairo, dbus, dbus_glib, bzip2 +, freetype, fontconfig, xulrunner, alsaLib, autoconf + +, # If you want the resulting program to call itself "Firefox" instead + # of "Deer Park", enable this option. However, those binaries may + # not be distributed without permission from the Mozilla Foundation, + # see http://www.mozilla.org/foundation/trademarks/. + enableOfficialBranding ? false + +}: + +stdenv.mkDerivation { + name = "firefox-3.1b2"; + + src = fetchurl { + url = ftp://ftp.mozilla.org/pub/firefox/releases/3.1b2/source/firefox-3.1b2-source.tar.bz2; + sha256 = "1mqy7q4bfw8iphlmzvymqfki8r4zzynyyy6z6gws4qqx9ry42jqs"; + }; + + buildInputs = [ + pkgconfig gtk perl zip libIDL libjpeg zlib cairo bzip2 + python dbus dbus_glib pango freetype fontconfig alsaLib + autoconf + ]; + + propagatedBuildInputs = [xulrunner]; + + preConfigure = '' + export PREFIX=$out + export LIBXUL_DIST=$out + autoconf + cd js/src + autoconf + cd ../.. + ''; + + preBuild = '' + cd nsprpub + autoconf + ./configure + make + cd .. + ''; + + configureFlags = [ + "--enable-application=browser" + "--enable-optimize" + "--disable-debug" + "--enable-strip" + "--with-system-jpeg" + "--with-system-zlib" + "--with-system-bz2" + # "--with-system-png" # <-- "--with-system-png won't work because the system's libpng doesn't have APNG support" + "--enable-system-cairo" + #"--enable-system-sqlite" # <-- this seems to be discouraged + "--disable-crashreporter" + "--with-libxul-sdk=${xulrunner}/lib/xulrunner-devel-${xulrunner.version}" + ]; + + postInstall = '' + # Strip some more stuff. + strip -S $out/lib/*/* || true + + libDir=$(cd $out/lib && ls -d firefox-[0-9]*) + test -n "$libDir" + + ln -s ${xulrunner}/lib/xulrunner-${xulrunner.version} $out/lib/$libDir/xulrunner + + # Register extensions etc. !!! is this needed anymore? + echo "running firefox -register..." + $out/bin/firefox -register + ''; # */ + + meta = { + description = "Mozilla Firefox - the browser, reloaded"; + homepage = http://www.mozilla.com/en-US/firefox/; + }; + + passthru = { + inherit gtk; + isFirefox3Like = true; + }; +} diff --git a/pkgs/applications/networking/browsers/firefox-3/3.5.nix b/pkgs/applications/networking/browsers/firefox-3/3.5.nix new file mode 100644 index 000000000000..09f2eabe5413 --- /dev/null +++ b/pkgs/applications/networking/browsers/firefox-3/3.5.nix @@ -0,0 +1,83 @@ +{ stdenv, fetchurl, pkgconfig, gtk, pango, perl, python, zip, libIDL +, libjpeg, zlib, cairo, dbus, dbus_glib, bzip2 +, freetype, fontconfig, xulrunner, alsaLib, autoconf + +, # If you want the resulting program to call itself "Firefox" instead + # of "Deer Park", enable this option. However, those binaries may + # not be distributed without permission from the Mozilla Foundation, + # see http://www.mozilla.org/foundation/trademarks/. + enableOfficialBranding ? false + +}: + +let version = xulrunner.ffversion; in + +stdenv.mkDerivation { + name = "firefox-${version}"; + + src = xulrunner.src; + + buildInputs = [ + pkgconfig gtk perl zip libIDL libjpeg zlib cairo bzip2 + python dbus dbus_glib pango freetype fontconfig alsaLib + autoconf + ]; + + propagatedBuildInputs = [xulrunner]; + + preConfigure = '' + export PREFIX=$out + export LIBXUL_DIST=$out + autoconf + cd js/src + autoconf + cd ../.. + ''; + + preBuild = '' + cd nsprpub + autoconf + ./configure + make + cd .. + ''; + + configureFlags = [ + "--enable-application=browser" + "--enable-optimize" + "--disable-debug" + "--enable-strip" + "--with-system-jpeg" + "--with-system-zlib" + "--with-system-bz2" + # "--with-system-png" # <-- "--with-system-png won't work because the system's libpng doesn't have APNG support" + "--enable-system-cairo" + #"--enable-system-sqlite" # <-- this seems to be discouraged + "--disable-crashreporter" + "--with-libxul-sdk=${xulrunner}/lib/xulrunner-devel-${xulrunner.version}" + ]; + + postInstall = '' + # Strip some more stuff. + strip -S $out/lib/*/* || true + + libDir=$(cd $out/lib && ls -d firefox-[0-9]*) + test -n "$libDir" + + ln -s ${xulrunner}/lib/xulrunner-${xulrunner.version} $out/lib/$libDir/xulrunner + + # Register extensions etc. !!! is this needed anymore? + echo "running firefox -register..." + $out/bin/firefox -register + ''; # */ + + meta = { + description = "Mozilla Firefox - the browser, reloaded"; + homepage = http://www.mozilla.com/en-US/firefox/; + }; + + passthru = { + inherit gtk; + isFirefox3Like = true; + }; +} diff --git a/pkgs/applications/networking/browsers/firefox-3/binary.nix b/pkgs/applications/networking/browsers/firefox-3/binary.nix new file mode 100644 index 000000000000..73e002435b88 --- /dev/null +++ b/pkgs/applications/networking/browsers/firefox-3/binary.nix @@ -0,0 +1,55 @@ +args: with args; + +assert stdenv.system == "i686-linux"; + +stdenv.mkDerivation { + name = "firefox-3b1"; + + src = + fetchurl { + url = ftp://ftp.mozilla.org/pub/firefox/releases/3.0b1/linux-i686/en-US/firefox-3.0b1.tar.bz2; + sha256 = "1cpcc5b07zdqyd5kiwhb4dqhy2mzbf97plsglcp6bc9054cmsylk"; + }; + buildInputs = [ + pkgconfig gtk perl zip libIDL libXi libjpeg libpng zlib cairo + python curl coreutils atk pango glib libX11 libXrender + freetype fontconfig libXft libXt + ]; + + buildPhase = " + additionalRpath=''; + for i in \$buildInputs ${stdenv.glibc} ${stdenv.gcc.gcc}; do + additionalRpath=\$additionalRpath:\$i/lib; + done + for i in firefox-bin ; do + oldrpath=$(patchelf --print-rpath \$i) + patchelf --set-rpath \$oldrpath\$additionalRpath \$i + patchelf --set-interpreter ${stdenv.glibc}/lib/ld-linux.so.2 \$i + done + "; + + installPhase = " + export dontPatchELF=1; + mkdir -p \$out + cp -r . \$out/firefox + mkdir -p \$out/bin + ln -s \$out/firefox/firefox \$out/bin/firefox + + sed -e 's@moz_libdir=.*@moz_libdir='\$out'/firefox/@' -i \$out/bin/firefox + sed -e 's@moz_libdir=.*@&\\nexport PATH=\$PATH:${coreutils}/bin@' -i \$out/bin/firefox + sed -e 's@`/bin/pwd@`${coreutils}/bin/pwd@' -i \$out/bin/firefox + sed -e 's@`/bin/ls@`${coreutils}/bin/ls@' -i \$out/bin/firefox + + strip -S \$out/firefox/*.so || true + + echo \"running firefox -register...\" + \$out/firefox/firefox-bin -register || false + "; + + meta = { + description = "Mozilla Firefox - the browser, reloaded"; + }; + + passthru = {inherit gtk;}; +} + diff --git a/pkgs/applications/networking/browsers/firefox-3/default.nix b/pkgs/applications/networking/browsers/firefox-3/default.nix new file mode 100644 index 000000000000..4743d71ef507 --- /dev/null +++ b/pkgs/applications/networking/browsers/firefox-3/default.nix @@ -0,0 +1,71 @@ +{ stdenv, fetchurl, pkgconfig, gtk, pango, perl, python, zip, libIDL +, libjpeg, zlib, cairo, dbus, dbus_glib, bzip2 +, freetype, fontconfig, xulrunner + +, # If you want the resulting program to call itself "Firefox" instead + # of "Deer Park", enable this option. However, those binaries may + # not be distributed without permission from the Mozilla Foundation, + # see http://www.mozilla.org/foundation/trademarks/. + enableOfficialBranding ? false + +}: + +stdenv.mkDerivation rec { + name = "firefox-${version}"; + + version = "3.0.11"; + + src = fetchurl { + # Don't forget to update xulrunner.nix as well! + url = "http://releases.mozilla.org/pub/mozilla.org/firefox/releases/${version}/source/firefox-${version}-source.tar.bz2"; + sha1 = "ca792dcdb67af40c91a4fcece25d6adfb6fef2c3"; + }; + + buildInputs = [ + pkgconfig gtk perl zip libIDL libjpeg zlib cairo bzip2 + python dbus dbus_glib pango freetype fontconfig + ]; + + propagatedBuildInputs = [xulrunner]; + + configureFlags = [ + "--enable-application=browser" + "--enable-optimize" + "--disable-debug" + "--enable-strip" + "--with-system-jpeg" + "--with-system-zlib" + "--with-system-bz2" + # "--with-system-png" # <-- "--with-system-png won't work because the system's libpng doesn't have APNG support" + "--enable-system-cairo" + #"--enable-system-sqlite" # <-- this seems to be discouraged + "--disable-crashreporter" + "--with-libxul-sdk=${xulrunner}/lib/xulrunner-devel-${xulrunner.version}" + ]; + + postInstall = '' + # Strip some more stuff. + strip -S $out/lib/*/* || true + + libDir=$(cd $out/lib && ls -d firefox-[0-9]*) + test -n "$libDir" + + ln -s ${xulrunner}/lib/xulrunner-${xulrunner.version} $out/lib/$libDir/xulrunner + + # Register extensions etc. !!! is this needed anymore? + echo "running firefox -register..." + $out/bin/firefox -register + ''; # */ + + meta = { + description = "Mozilla Firefox - the browser, reloaded"; + homepage = http://www.mozilla.com/en-US/firefox/; + }; + + passthru = { + inherit gtk; + isFirefox3Like = true; + }; +} + + diff --git a/pkgs/applications/networking/browsers/firefox-3/xulrunner-3.1.nix b/pkgs/applications/networking/browsers/firefox-3/xulrunner-3.1.nix new file mode 100644 index 000000000000..0fb5027e31ee --- /dev/null +++ b/pkgs/applications/networking/browsers/firefox-3/xulrunner-3.1.nix @@ -0,0 +1,96 @@ +{ stdenv, fetchurl, pkgconfig, gtk, pango, perl, python, zip, libIDL +, libjpeg, libpng, zlib, cairo, dbus, dbus_glib, bzip2, xlibs +, freetype, fontconfig, file, alsaLib, autoconf + +, # If you want the resulting program to call itself "Firefox" instead + # of "Deer Park", enable this option. However, those binaries may + # not be distributed without permission from the Mozilla Foundation, + # see http://www.mozilla.org/foundation/trademarks/. + enableOfficialBranding ? false +}: + +let + + version = "1.9.1b2"; # this attribute is used by other packages + +in + +stdenv.mkDerivation { + name = "xulrunner-${version}"; + + src = fetchurl { + url = ftp://ftp.mozilla.org/pub/firefox/releases/3.1b2/source/firefox-3.1b2-source.tar.bz2; + sha256 = "1mqy7q4bfw8iphlmzvymqfki8r4zzynyyy6z6gws4qqx9ry42jqs"; + }; + + buildInputs = [ + pkgconfig gtk perl zip libIDL libjpeg libpng zlib cairo bzip2 + python dbus dbus_glib pango freetype fontconfig + xlibs.libXi xlibs.libX11 xlibs.libXrender xlibs.libXft xlibs.libXt + file alsaLib autoconf + ]; + + preConfigure = '' + export PREFIX=$out + export LIBXUL_DIST=$out + autoconf + cd js/src + autoconf + cd ../.. + ''; + + configureFlags = [ + "--enable-application=xulrunner" + "--disable-javaxpcom" + "--enable-optimize" + "--disable-debug" + "--enable-strip" + "--with-system-jpeg" + "--with-system-zlib" + "--with-system-bz2" + # "--with-system-png" # <-- "--with-system-png won't work because the system's libpng doesn't have APNG support" + "--enable-system-cairo" + #"--enable-system-sqlite" # <-- this seems to be discouraged + "--disable-crashreporter" + ]; + + installFlags = [ + "SKIP_GRE_REGISTRATION=1" + ]; + + postInstall = '' + export dontPatchELF=1; + + # Strip some more stuff + strip -S $out/lib/*/* || true + + # Fix some references to /bin paths in the Firefox shell script. + substituteInPlace $out/bin/xulrunner \ + --replace /bin/pwd "$(type -tP pwd)" \ + --replace /bin/ls "$(type -tP ls)" + + # Fix run-mozilla.sh search + libDir=$(cd $out/lib && ls -d xulrunner-[0-9]*) + echo libDir: $libDir + test -n "$libDir" + cd $out/bin + mv xulrunner ../lib/$libDir/ + + for i in $out/lib/$libDir/*; do + file $i; + if file $i | grep executable &>/dev/null; then + ln -s $i $out/bin + fi; + done; + rm $out/bin/run-mozilla.sh || true + ''; # */ + + meta = { + description = "Mozilla Firefox XUL runner"; + homepage = http://www.mozilla.com/en-US/firefox/; + }; + + passthru = { inherit gtk version; }; +} + + diff --git a/pkgs/applications/networking/browsers/firefox-3/xulrunner-3.5.nix b/pkgs/applications/networking/browsers/firefox-3/xulrunner-3.5.nix new file mode 100644 index 000000000000..d21451a66ea5 --- /dev/null +++ b/pkgs/applications/networking/browsers/firefox-3/xulrunner-3.5.nix @@ -0,0 +1,102 @@ +{ stdenv, fetchurl, pkgconfig, gtk, pango, perl, python, zip, libIDL +, libjpeg, libpng, zlib, cairo, dbus, dbus_glib, bzip2, xlibs +, freetype, fontconfig, file, alsaLib, autoconf + +, # If you want the resulting program to call itself "Firefox" instead + # of "Deer Park", enable this option. However, those binaries may + # not be distributed without permission from the Mozilla Foundation, + # see http://www.mozilla.org/foundation/trademarks/. + enableOfficialBranding ? false +}: + +let + + version = "1.9.1rc1"; + shownVersion = "1.9.1"; # this attribute is used by other packages + # _usually_ it is the same as version + ffversion = "3.5rc1"; + +in + +stdenv.mkDerivation rec { + name = "xulrunner-${version}"; + + src = fetchurl { + url = "ftp://ftp.mozilla.org/pub/firefox/releases/${ffversion}/source/firefox-${ffversion}-source.tar.bz2"; + sha256 = "14yrkvk0kibfpkcvbb44ww89plhm8iikbqmnc0jbkjr4k70a7gcl"; + }; + + buildInputs = [ + pkgconfig gtk perl zip libIDL libjpeg libpng zlib cairo bzip2 + python dbus dbus_glib pango freetype fontconfig + xlibs.libXi xlibs.libX11 xlibs.libXrender xlibs.libXft xlibs.libXt + file alsaLib autoconf + ]; + + preConfigure = '' + export PREFIX=$out + export LIBXUL_DIST=$out + autoconf + cd js/src + autoconf + cd ../.. + ''; + + configureFlags = [ + "--enable-application=xulrunner" + "--disable-javaxpcom" + "--enable-optimize" + "--disable-debug" + "--enable-strip" + "--with-system-jpeg" + "--with-system-zlib" + "--with-system-bz2" + # "--with-system-png" # <-- "--with-system-png won't work because the system's libpng doesn't have APNG support" + "--enable-system-cairo" + #"--enable-system-sqlite" # <-- this seems to be discouraged + "--disable-crashreporter" + ]; + + installFlags = [ + "SKIP_GRE_REGISTRATION=1" + ]; + + postInstall = '' + export dontPatchELF=1; + + # Strip some more stuff + strip -S $out/lib/*/* || true + + # Fix some references to /bin paths in the Firefox shell script. + substituteInPlace $out/bin/xulrunner \ + --replace /bin/pwd "$(type -tP pwd)" \ + --replace /bin/ls "$(type -tP ls)" + + # Fix run-mozilla.sh search + libDir=$(cd $out/lib && ls -d xulrunner-[0-9]*) + echo libDir: $libDir + test -n "$libDir" + cd $out/bin + mv xulrunner ../lib/$libDir/ + + for i in $out/lib/$libDir/*; do + file $i; + if file $i | grep executable &>/dev/null; then + ln -s $i $out/bin + fi; + done; + rm $out/bin/run-mozilla.sh || true + ''; # */ + + meta = { + description = "Mozilla Firefox XUL runner"; + homepage = http://www.mozilla.com/en-US/firefox/; + }; + + passthru = { + inherit gtk ffversion src; + version = shownVersion; + }; +} + + diff --git a/pkgs/applications/networking/browsers/firefox-3/xulrunner.nix b/pkgs/applications/networking/browsers/firefox-3/xulrunner.nix new file mode 100644 index 000000000000..3b345fe84df1 --- /dev/null +++ b/pkgs/applications/networking/browsers/firefox-3/xulrunner.nix @@ -0,0 +1,87 @@ +{ stdenv, fetchurl, pkgconfig, gtk, pango, perl, python, zip, libIDL +, libjpeg, libpng, zlib, cairo, dbus, dbus_glib, bzip2, xlibs +, freetype, fontconfig, file + +, # If you want the resulting program to call itself "Firefox" instead + # of "Deer Park", enable this option. However, those binaries may + # not be distributed without permission from the Mozilla Foundation, + # see http://www.mozilla.org/foundation/trademarks/. + enableOfficialBranding ? false +}: + +let + + version = "1.9.0.11"; # this attribute is used by other packages + +in + +stdenv.mkDerivation { + name = "xulrunner-${version}"; + + src = fetchurl { + url = http://releases.mozilla.org/pub/mozilla.org/firefox/releases/3.0.11/source/firefox-3.0.11-source.tar.bz2; + sha1 = "ca792dcdb67af40c91a4fcece25d6adfb6fef2c3"; + }; + + buildInputs = [ + pkgconfig gtk perl zip libIDL libjpeg libpng zlib cairo bzip2 + python dbus dbus_glib pango freetype fontconfig + xlibs.libXi xlibs.libX11 xlibs.libXrender xlibs.libXft xlibs.libXt + file + ]; + + configureFlags = [ + "--enable-application=xulrunner" + "--disable-javaxpcom" + "--enable-optimize" + "--disable-debug" + "--enable-strip" + "--with-system-jpeg" + "--with-system-zlib" + "--with-system-bz2" + # "--with-system-png" # <-- "--with-system-png won't work because the system's libpng doesn't have APNG support" + "--enable-system-cairo" + #"--enable-system-sqlite" # <-- this seems to be discouraged + "--disable-crashreporter" + ]; + + installFlags = [ + "SKIP_GRE_REGISTRATION=1" + ]; + + postInstall = '' + export dontPatchELF=1; + + # Strip some more stuff + strip -S $out/lib/*/* || true + + # Fix some references to /bin paths in the Firefox shell script. + substituteInPlace $out/bin/xulrunner \ + --replace /bin/pwd "$(type -tP pwd)" \ + --replace /bin/ls "$(type -tP ls)" + + # Fix run-mozilla.sh search + libDir=$(cd $out/lib && ls -d xulrunner-[0-9]*) + echo libDir: $libDir + test -n "$libDir" + cd $out/bin + mv xulrunner ../lib/$libDir/ + + for i in $out/lib/$libDir/*; do + file $i; + if file $i | grep executable &>/dev/null; then + ln -s $i $out/bin + fi; + done; + rm $out/bin/run-mozilla.sh || true + ''; # */ + + meta = { + description = "Mozilla Firefox XUL runner"; + homepage = http://www.mozilla.com/en-US/firefox/; + }; + + passthru = { inherit gtk version; }; +} + + diff --git a/pkgs/build-support/gcc-wrapper/builder.sh b/pkgs/build-support/gcc-wrapper/builder.sh index 0691b4273254..0fe3f3768f2a 100644 --- a/pkgs/build-support/gcc-wrapper/builder.sh +++ b/pkgs/build-support/gcc-wrapper/builder.sh @@ -17,8 +17,15 @@ if test -z "$nativeLibc"; then # against the crt1.o from our own glibc, rather than the one in # /usr/lib. (This is only an issue when using an `impure' # compiler/linker, i.e., one that searches /usr/lib and so on.) - echo "-B$libc/lib/ -idirafter $libc/include" > $out/nix-support/libc-cflags - + # + # Unfortunately, setting -B appears to override the default search + # path. Thus, the gcc-specific "../includes-fixed" directory is + # now longer searched and glibc's header fails to + # compile, because it uses "#include_next " to find the + # limits.h file in ../includes-fixed. To remedy the problem, + # another -idirafter is necessary to add that directory again. + echo "-B$libc/lib/ -idirafter $libc/include -idirafter $gcc/lib/gcc/*/*/include-fixed" > $out/nix-support/libc-cflags + echo "-L$libc/lib" > $out/nix-support/libc-ldflags # The dynamic linker is passed in `ldflagsBefore' to allow diff --git a/pkgs/development/interpreters/perl-5.10/default.nix b/pkgs/development/interpreters/perl-5.10/default.nix index 2acae30889e5..a8b8dd536a75 100644 --- a/pkgs/development/interpreters/perl-5.10/default.nix +++ b/pkgs/development/interpreters/perl-5.10/default.nix @@ -27,7 +27,7 @@ stdenv.mkDerivation { ${if stdenv ? glibc then "-Dusethreads" else ""} ''; - configureScript = "./Configure"; + configureScript = "${stdenv.shell} ./Configure"; dontAddPrefix = true; diff --git a/pkgs/development/libraries/glibc-2.5/builder.sh b/pkgs/development/libraries/glibc-2.5/builder.sh index 19ed717de3b3..695a3a1ab3da 100644 --- a/pkgs/development/libraries/glibc-2.5/builder.sh +++ b/pkgs/development/libraries/glibc-2.5/builder.sh @@ -1,6 +1,5 @@ # glibc cannot have itself in its rpath. export NIX_NO_SELF_RPATH=1 -export NIX_DONT_SET_RPATH=1 source $stdenv/setup @@ -9,17 +8,12 @@ export PWD_P=$(type -tP pwd) postUnpack() { - cd $sourceRoot - unpackFile $linuxthreadsSrc - cd .. + cd $sourceRoot/.. } preConfigure() { - # Use Linuxthreads instead of NPTL. - rm -rf nptl - for i in configure io/ftwtest-sh; do substituteInPlace "$i" \ --replace "@PWD@" "pwd" @@ -27,7 +21,7 @@ preConfigure() { mkdir ../build cd ../build - + configureScript=../$sourceRoot/configure } @@ -38,6 +32,7 @@ postConfigure() { # test binaries. export NIX_CFLAGS_LINK= export NIX_LDFLAGS_BEFORE= + export NIX_DONT_SET_RPATH=1 } @@ -48,11 +43,6 @@ postInstall() { rm $out/etc/ld.so.cache (cd $out/include && ln -s $kernelHeaders/include/* .) || exit 1 - # Workaround for the wrong getting installed. This - # appears to be a regression: - # http://www.mail-archive.com/debian-glibc@lists.debian.org/msg31543.html - cp ../$sourceRoot/linuxthreads/semaphore.h $out/include - # Fix for NIXOS-54 (ldd not working on x86_64). Make a symlink # "lib64" to "lib". if test -n "$is64bit"; then diff --git a/pkgs/development/libraries/glibc-2.5/default.nix b/pkgs/development/libraries/glibc-2.5/default.nix index e4720cf56d52..abfc3d0f4395 100644 --- a/pkgs/development/libraries/glibc-2.5/default.nix +++ b/pkgs/development/libraries/glibc-2.5/default.nix @@ -12,22 +12,26 @@ stdenv.mkDerivation { md5 = "1fb29764a6a650a4d5b409dda227ac9f"; }; - linuxthreadsSrc = fetchurl { - url = http://ftp.gnu.org/gnu/glibc/glibc-linuxthreads-2.5.tar.bz2; - md5 = "870d76d46dcaba37c13d01dca47d1774"; - }; - - patches = [ ./glibc-pwd.patch ./glibc-getcwd-param-MAX.patch ]; + patches = [ ./glibc-pwd.patch ./glibc-getcwd-param-MAX.patch ./glibc-inline.patch ./x86-fnstsw.patch ]; inherit kernelHeaders installLocales; inherit (stdenv) is64bit; - # `--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 - --with-tls --without-__thread --disable-sanity-checks + --disable-sanity-checks ${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"; + + meta = { + homepage = http://www.gnu.org/software/libc/; + description = "The GNU C Library"; + }; } diff --git a/pkgs/development/libraries/glibc-2.5/glibc-inline.patch b/pkgs/development/libraries/glibc-2.5/glibc-inline.patch new file mode 100644 index 000000000000..19e400e0d50f --- /dev/null +++ b/pkgs/development/libraries/glibc-2.5/glibc-inline.patch @@ -0,0 +1,1822 @@ +--- libc/mach/mach/mig_support.h.jj 2001-07-06 06:55:35.000000000 +0200 ++++ libc/mach/mach/mig_support.h 2006-11-07 11:18:32.000000000 +0100 +@@ -1,4 +1,4 @@ +-/* Copyright (C) 1993,94,97,99,2001 Free Software Foundation, Inc. ++/* Copyright (C) 1993,94,97,99,2001,2006 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or +@@ -67,12 +67,12 @@ extern void mig_reply_setup (const mach_ + /* Idiocy support function. */ + extern vm_size_t mig_strncpy (char *__dst, const char *__src, vm_size_t __len); + extern vm_size_t __mig_strncpy (char *__dst, const char *__src, vm_size_t); +-extern __inline vm_size_t ++__extern_inline vm_size_t + __mig_strncpy (char *__dst, const char *__src, vm_size_t __len) + { + return __stpncpy (__dst, __src, __len) - __dst; + } +-extern __inline vm_size_t ++__extern_inline vm_size_t + mig_strncpy (char *__dst, const char *__src, vm_size_t __len) + { + return __mig_strncpy (__dst, __src, __len); +--- libc/mach/lock-intern.h.jj 2001-07-06 06:55:34.000000000 +0200 ++++ libc/mach/lock-intern.h 2006-11-06 21:05:34.000000000 +0100 +@@ -1,4 +1,4 @@ +-/* Copyright (C) 1994, 1996 Free Software Foundation, Inc. ++/* Copyright (C) 1994, 1996, 2006 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or +@@ -22,7 +22,7 @@ + #include + + #ifndef _EXTERN_INLINE +-#define _EXTERN_INLINE extern __inline ++#define _EXTERN_INLINE __extern_inline + #endif + + +--- libc/include/stdlib.h.jj 2006-01-14 13:08:56.000000000 +0100 ++++ libc/include/stdlib.h 2006-11-06 21:08:02.000000000 +0100 +@@ -139,43 +139,43 @@ libc_hidden_proto (____strtoll_l_interna + libc_hidden_proto (____strtoul_l_internal) + libc_hidden_proto (____strtoull_l_internal) + +-extern __inline double ++__extern_inline double + __NTH (__strtod_l (__const char *__restrict __nptr, char **__restrict __endptr, + __locale_t __loc)) + { + return ____strtod_l_internal (__nptr, __endptr, 0, __loc); + } +-extern __inline long int ++__extern_inline long int + __NTH (__strtol_l (__const char *__restrict __nptr, char **__restrict __endptr, + int __base, __locale_t __loc)) + { + return ____strtol_l_internal (__nptr, __endptr, __base, 0, __loc); + } +-extern __inline unsigned long int ++__extern_inline unsigned long int + __NTH (__strtoul_l (__const char *__restrict __nptr, + char **__restrict __endptr, int __base, __locale_t __loc)) + { + return ____strtoul_l_internal (__nptr, __endptr, __base, 0, __loc); + } +-extern __inline float ++__extern_inline float + __NTH (__strtof_l (__const char *__restrict __nptr, char **__restrict __endptr, + __locale_t __loc)) + { + return ____strtof_l_internal (__nptr, __endptr, 0, __loc); + } +-extern __inline long double ++__extern_inline long double + __NTH (__strtold_l (__const char *__restrict __nptr, + char **__restrict __endptr, __locale_t __loc)) + { + return ____strtold_l_internal (__nptr, __endptr, 0, __loc); + } +-__extension__ extern __inline long long int ++__extension__ __extern_inline long long int + __NTH (__strtoll_l (__const char *__restrict __nptr, + char **__restrict __endptr, int __base, __locale_t __loc)) + { + return ____strtoll_l_internal (__nptr, __endptr, __base, 0, __loc); + } +-__extension__ extern __inline unsigned long long int ++__extension__ __extern_inline unsigned long long int + __NTH (__strtoull_l (__const char * __restrict __nptr, + char **__restrict __endptr, int __base, __locale_t __loc)) + { +--- libc/include/ctype.h.jj 2004-03-16 11:09:04.000000000 +0100 ++++ libc/include/ctype.h 2006-11-06 21:06:24.000000000 +0100 +@@ -15,7 +15,7 @@ extern int __isctype (int __c, int __mas + # include + + # ifndef CTYPE_EXTERN_INLINE /* Used by ctype/ctype-info.c, which see. */ +-# define CTYPE_EXTERN_INLINE extern inline ++# define CTYPE_EXTERN_INLINE __extern_inline + # endif + + __libc_tsd_define (extern, CTYPE_B) +--- libc/include/sys/stat.h.jj 2006-02-12 22:29:08.000000000 +0100 ++++ libc/include/sys/stat.h 2006-11-06 21:07:01.000000000 +0100 +@@ -19,13 +19,13 @@ hidden_proto (__lxstat64) + hidden_proto (__xstat) + hidden_proto (__xstat64) + #endif +-extern __inline__ int __stat (__const char *__path, struct stat *__statbuf) ++__extern_inline int __stat (__const char *__path, struct stat *__statbuf) + { + return __xstat (_STAT_VER, __path, __statbuf); + } + libc_hidden_proto (__xmknod) +-extern __inline__ int __mknod (__const char *__path, __mode_t __mode, +- __dev_t __dev) ++__extern_inline int __mknod (__const char *__path, __mode_t __mode, ++ __dev_t __dev) + { + return __xmknod (_MKNOD_VER, __path, __mode, &__dev); + } +--- libc/stdlib/stdlib.h.jj 2006-10-31 23:05:34.000000000 +0100 ++++ libc/stdlib/stdlib.h 2006-11-06 21:16:09.000000000 +0100 +@@ -324,18 +324,18 @@ extern unsigned long long int __strtoull + /* Define inline functions which call the internal entry points. */ + + __BEGIN_NAMESPACE_STD +-extern __inline double ++__extern_inline double + __NTH (strtod (__const char *__restrict __nptr, char **__restrict __endptr)) + { + return __strtod_internal (__nptr, __endptr, 0); + } +-extern __inline long int ++__extern_inline long int + __NTH (strtol (__const char *__restrict __nptr, char **__restrict __endptr, + int __base)) + { + return __strtol_internal (__nptr, __endptr, __base, 0); + } +-extern __inline unsigned long int ++__extern_inline unsigned long int + __NTH (strtoul (__const char *__restrict __nptr, char **__restrict __endptr, + int __base)) + { +@@ -345,13 +345,13 @@ __END_NAMESPACE_STD + + # ifdef __USE_ISOC99 + __BEGIN_NAMESPACE_C99 +-extern __inline float ++__extern_inline float + __NTH (strtof (__const char *__restrict __nptr, char **__restrict __endptr)) + { + return __strtof_internal (__nptr, __endptr, 0); + } + # ifndef __LDBL_COMPAT +-extern __inline long double ++__extern_inline long double + __NTH (strtold (__const char *__restrict __nptr, char **__restrict __endptr)) + { + return __strtold_internal (__nptr, __endptr, 0); +@@ -361,13 +361,13 @@ __END_NAMESPACE_C99 + # endif + + # ifdef __USE_BSD +-__extension__ extern __inline long long int ++__extension__ __extern_inline long long int + __NTH (strtoq (__const char *__restrict __nptr, char **__restrict __endptr, + int __base)) + { + return __strtoll_internal (__nptr, __endptr, __base, 0); + } +-__extension__ extern __inline unsigned long long int ++__extension__ __extern_inline unsigned long long int + __NTH (strtouq (__const char *__restrict __nptr, char **__restrict __endptr, + int __base)) + { +@@ -377,13 +377,13 @@ __NTH (strtouq (__const char *__restrict + + # if defined __USE_MISC || defined __USE_ISOC99 + __BEGIN_NAMESPACE_C99 +-__extension__ extern __inline long long int ++__extension__ __extern_inline long long int + __NTH (strtoll (__const char *__restrict __nptr, char **__restrict __endptr, + int __base)) + { + return __strtoll_internal (__nptr, __endptr, __base, 0); + } +-__extension__ extern __inline unsigned long long int ++__extension__ __extern_inline unsigned long long int + __NTH (strtoull (__const char * __restrict __nptr, char **__restrict __endptr, + int __base)) + { +@@ -393,17 +393,17 @@ __END_NAMESPACE_C99 + # endif + + __BEGIN_NAMESPACE_STD +-extern __inline double ++__extern_inline double + __NTH (atof (__const char *__nptr)) + { + return strtod (__nptr, (char **) NULL); + } +-extern __inline int ++__extern_inline int + __NTH (atoi (__const char *__nptr)) + { + return (int) strtol (__nptr, (char **) NULL, 10); + } +-extern __inline long int ++__extern_inline long int + __NTH (atol (__const char *__nptr)) + { + return strtol (__nptr, (char **) NULL, 10); +@@ -412,7 +412,7 @@ __END_NAMESPACE_STD + + # if defined __USE_MISC || defined __USE_ISOC99 + __BEGIN_NAMESPACE_C99 +-__extension__ extern __inline long long int ++__extension__ __extern_inline long long int + __NTH (atoll (__const char *__nptr)) + { + return strtoll (__nptr, (char **) NULL, 10); +--- libc/stdlib/bits/stdlib.h.jj 2005-08-22 17:06:07.000000000 +0200 ++++ libc/stdlib/bits/stdlib.h 2006-11-07 11:18:39.000000000 +0100 +@@ -1,5 +1,5 @@ + /* Checking macros for stdlib functions. +- Copyright (C) 2005 Free Software Foundation, Inc. ++ Copyright (C) 2005, 2006 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or +@@ -28,7 +28,7 @@ extern char *__REDIRECT_NTH (__realpath_ + (__const char *__restrict __name, + char *__restrict __resolved), realpath) __wur; + +-extern __always_inline __wur char * ++__extern_always_inline __wur char * + __NTH (realpath (__const char *__restrict __name, char *__restrict __resolved)) + { + if (__bos (__resolved) != (size_t) -1) +@@ -44,7 +44,7 @@ extern int __REDIRECT_NTH (__ptsname_r_a + size_t __buflen), ptsname_r) + __nonnull ((2)); + +-extern __always_inline int ++__extern_always_inline int + __NTH (ptsname_r (int __fd, char *__buf, size_t __buflen)) + { + if (__bos (__buf) != (size_t) -1 +@@ -59,7 +59,7 @@ extern int __wctomb_chk (char *__s, wcha + extern int __REDIRECT_NTH (__wctomb_alias, (char *__s, wchar_t __wchar), + wctomb) __wur; + +-extern __always_inline __wur int ++__extern_always_inline __wur int + __NTH (wctomb (char *__s, wchar_t __wchar)) + { + /* We would have to include to get a definition of MB_LEN_MAX. +@@ -83,7 +83,7 @@ extern size_t __REDIRECT_NTH (__mbstowcs + __const char *__restrict __src, + size_t __len), mbstowcs); + +-extern __always_inline size_t ++__extern_always_inline size_t + __NTH (mbstowcs (wchar_t *__restrict __dst, __const char *__restrict __src, + size_t __len)) + { +@@ -104,7 +104,7 @@ extern size_t __REDIRECT_NTH (__wcstombs + __const wchar_t *__restrict __src, + size_t __len), wcstombs); + +-extern __always_inline size_t ++__extern_always_inline size_t + __NTH (wcstombs (char *__restrict __dst, __const wchar_t *__restrict __src, + size_t __len)) + { + --- libc/stdlib/gmp.h.jj 2002-08-27 00:39:44.000000000 +0200 ++++ libc/stdlib/gmp.h 2006-11-07 15:02:06.000000000 +0100 +@@ -1,6 +1,6 @@ + /* gmp.h -- Definitions for GNU multiple precision functions. + +-Copyright (C) 1991, 1993, 1994, 1995, 1996 Free Software Foundation, Inc. ++Copyright (C) 1991, 1993, 1994, 1995, 1996, 2006 Free Software Foundation, Inc. + + This file is part of the GNU MP Library. + +@@ -21,6 +21,8 @@ MA 02111-1307, USA. */ + + #ifndef __GMP_H__ + ++#include ++ + #ifndef __GNU_MP__ + #define __GNU_MP__ 2 + #define __need_size_t +@@ -41,7 +43,7 @@ MA 02111-1307, USA. */ + + #ifndef _EXTERN_INLINE + #ifdef __GNUC__ +-#define _EXTERN_INLINE extern __inline__ ++#define _EXTERN_INLINE __extern_inline + #else + #define _EXTERN_INLINE static + #endif +--- libc/ctype/ctype.h.jj 2004-09-08 00:23:45.000000000 +0200 ++++ libc/ctype/ctype.h 2006-11-07 11:18:56.000000000 +0100 +@@ -1,4 +1,4 @@ +-/* Copyright (C) 1991,92,93,95,96,97,98,99,2001,2002,2004 ++/* Copyright (C) 1991,92,93,95,96,97,98,99,2001,2002,2004,2006 + Free Software Foundation, Inc. + This file is part of the GNU C Library. + +@@ -187,13 +187,13 @@ __exctype (_tolower); + # endif + + # ifdef __USE_EXTERN_INLINES +-extern __inline int ++__extern_inline int + __NTH (tolower (int __c)) + { + return __c >= -128 && __c < 256 ? (*__ctype_tolower_loc ())[__c] : __c; + } + +-extern __inline int ++__extern_inline int + __NTH (toupper (int __c)) + { + return __c >= -128 && __c < 256 ? (*__ctype_toupper_loc ())[__c] : __c; +--- libc/nptl/sysdeps/pthread/bits/libc-lock.h.jj 2006-10-24 10:14:03.000000000 +0200 ++++ libc/nptl/sysdeps/pthread/bits/libc-lock.h 2006-11-07 10:45:52.000000000 +0100 +@@ -1,5 +1,6 @@ + /* libc-internal interface for mutex locks. NPTL version. +- Copyright (C) 1996-2001, 2002, 2003, 2005 Free Software Foundation, Inc. ++ Copyright (C) 1996-2001, 2002, 2003, 2005, 2006 ++ Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or +@@ -408,7 +409,7 @@ extern void _pthread_cleanup_pop_restore + + + /* Normal cleanup handling, based on C cleanup attribute. */ +-extern __inline void ++__extern_inline void + __libc_cleanup_routine (struct __pthread_cleanup_frame *f) + { + if (f->__do_it) +--- libc/nptl/sysdeps/pthread/pthread.h.jj 2006-06-05 01:59:07.000000000 +0200 ++++ libc/nptl/sysdeps/pthread/pthread.h 2006-11-07 10:49:27.000000000 +0100 +@@ -572,7 +572,7 @@ class __pthread_cleanup_class + function the compiler is free to decide inlining the change when + needed or fall back on the copy which must exist somewhere + else. */ +-extern __inline void ++__extern_inline void + __pthread_cleanup_routine (struct __pthread_cleanup_frame *__frame) + { + if (__frame->__do_it) +@@ -1103,7 +1103,7 @@ extern int pthread_atfork (void (*__prep + + #ifdef __USE_EXTERN_INLINES + /* Optimizations. */ +-extern __inline int ++__extern_inline int + __NTH (pthread_equal (pthread_t __thread1, pthread_t __thread2)) + { + return __thread1 == __thread2; +--- libc/nptl/sysdeps/pthread/allocalim.h.jj 2006-05-02 08:16:07.000000000 +0200 ++++ libc/nptl/sysdeps/pthread/allocalim.h 2006-11-07 10:46:28.000000000 +0100 +@@ -21,8 +21,7 @@ + #include + + +-extern int +-__always_inline ++__extern_always_inline int + __libc_use_alloca (size_t size) + { + return (__builtin_expect (size <= PTHREAD_STACK_MIN / 4, 1) +--- libc/nptl/sysdeps/pthread/gai_misc.h.jj 2006-09-05 17:23:12.000000000 +0200 ++++ libc/nptl/sysdeps/pthread/gai_misc.h 2006-11-06 21:17:39.000000000 +0100 +@@ -76,7 +76,7 @@ + #define gai_start_notify_thread __gai_start_notify_thread + #define gai_create_helper_thread __gai_create_helper_thread + +-extern inline void ++__extern_inline void + __gai_start_notify_thread (void) + { + sigset_t ss; +@@ -85,7 +85,7 @@ __gai_start_notify_thread (void) + INTERNAL_SYSCALL (rt_sigprocmask, err, 4, SIG_SETMASK, &ss, NULL, _NSIG / 8); + } + +-extern inline int ++__extern_inline int + __gai_create_helper_thread (pthread_t *threadp, void *(*tf) (void *), + void *arg) + { +--- libc/nptl/sysdeps/unix/sysv/linux/aio_misc.h.jj 2006-03-02 18:32:45.000000000 +0100 ++++ libc/nptl/sysdeps/unix/sysv/linux/aio_misc.h 2006-11-06 21:18:34.000000000 +0100 +@@ -27,7 +27,7 @@ + # define aio_start_notify_thread __aio_start_notify_thread + # define aio_create_helper_thread __aio_create_helper_thread + +-extern inline void ++__extern_inline void + __aio_start_notify_thread (void) + { + sigset_t ss; +@@ -36,7 +36,7 @@ __aio_start_notify_thread (void) + INTERNAL_SYSCALL (rt_sigprocmask, err, 4, SIG_SETMASK, &ss, NULL, _NSIG / 8); + } + +-extern inline int ++__extern_inline int + __aio_create_helper_thread (pthread_t *threadp, void *(*tf) (void *), + void *arg) + { +--- libc/resolv/gai_misc.c.jj 2006-08-03 10:01:53.000000000 +0200 ++++ libc/resolv/gai_misc.c 2006-11-07 10:49:55.000000000 +0100 +@@ -30,7 +30,7 @@ + #ifndef gai_create_helper_thread + # define gai_create_helper_thread __gai_create_helper_thread + +-extern inline int ++__extern_inline int + __gai_create_helper_thread (pthread_t *threadp, void *(*tf) (void *), + void *arg) + { +--- libc/bits/mathinline.h.jj 1997-10-13 05:53:18.000000000 +0200 ++++ libc/bits/mathinline.h 2006-11-07 10:51:05.000000000 +0100 +@@ -1,6 +1,6 @@ + /* This file should provide inline versions of math functions. + +- Surround GCC-specific parts with #ifdef __GNUC__, and use `extern __inline'. ++ Surround GCC-specific parts with #ifdef __GNUC__, and use `__extern_inline'. + + This file should define __MATH_INLINES if functions are actually defined as + inlines. */ +--- libc/bits/string.h.jj 1997-10-13 05:53:19.000000000 +0200 ++++ libc/bits/string.h 2006-11-07 10:50:54.000000000 +0100 +@@ -1,6 +1,6 @@ + /* This file should provide inline versions of string functions. + +- Surround GCC-specific parts with #ifdef __GNUC__, and use `extern __inline'. ++ Surround GCC-specific parts with #ifdef __GNUC__, and use `__extern_inline'. + + This file should define __STRING_INLINES if functions are actually defined + as inlines. */ +--- libc/bits/sigset.h.jj 2001-07-06 06:55:50.000000000 +0200 ++++ libc/bits/sigset.h 2006-11-07 11:19:08.000000000 +0100 +@@ -1,5 +1,6 @@ + /* __sig_atomic_t, __sigset_t, and related definitions. Generic/BSD version. +- Copyright (C) 1991, 1992, 1994, 1996, 1997 Free Software Foundation, Inc. ++ Copyright (C) 1991, 1992, 1994, 1996, 1997, 2006 ++ Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or +@@ -38,7 +39,7 @@ typedef unsigned long int __sigset_t; + #define _SIGSET_H_fns 1 + + #ifndef _EXTERN_INLINE +-# define _EXTERN_INLINE extern __inline ++# define _EXTERN_INLINE __extern_inline + #endif + + /* Return a mask that includes SIG only. The cast to `sigset_t' avoids +--- libc/misc/sys/cdefs.h.jj 2006-01-14 21:14:36.000000000 +0100 ++++ libc/misc/sys/cdefs.h 2006-11-06 21:00:45.000000000 +0100 +@@ -279,6 +279,18 @@ + # define __always_inline __inline + #endif + ++/* GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99 ++ inline semantics. */ ++#if __GNUC_PREREQ (4,3) && defined (__STDC_VERSION__) \ ++ && __STDC_VERSION__ >= 199901L ++# define __extern_inline extern __inline __attribute__ ((__gnu_inline__)) ++# define __extern_always_inline \ ++ extern __always_inline __inline __attribute__ ((__gnu_inline__)) ++#else ++# define __extern_inline extern __inline ++# define __extern_always_inline extern __always_inline ++#endif ++ + /* It is possible to compile containing GCC extensions even if GCC is + run in pedantic mode if the uses are carefully marked using the + `__extension__' keyword. But this is not generally available before +--- libc/libio/bits/stdio.h.jj 2004-09-08 00:23:44.000000000 +0200 ++++ libc/libio/bits/stdio.h 2006-11-06 21:23:07.000000000 +0100 +@@ -1,5 +1,5 @@ + /* Optimizing macros and inline functions for stdio functions. +- Copyright (C) 1998, 2000, 2001, 2004 Free Software Foundation, Inc. ++ Copyright (C) 1998, 2000, 2001, 2004, 2006 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or +@@ -24,7 +24,7 @@ + #ifdef __cplusplus + # define __STDIO_INLINE inline + #else +-# define __STDIO_INLINE extern __inline ++# define __STDIO_INLINE __extern_inline + #endif + + +--- libc/libio/bits/stdio2.h.jj 2005-03-19 01:14:58.000000000 +0100 ++++ libc/libio/bits/stdio2.h 2006-11-06 21:22:33.000000000 +0100 +@@ -1,5 +1,5 @@ + /* Checking macros for stdio functions. +- Copyright (C) 2004, 2005 Free Software Foundation, Inc. ++ Copyright (C) 2004, 2005, 2006 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or +@@ -75,7 +75,7 @@ extern int __vprintf_chk (int __flag, __ + extern char *__gets_chk (char *__str, size_t) __wur; + extern char *__REDIRECT (__gets_alias, (char *__str), gets) __wur; + +-extern __always_inline __wur char * ++__extern_always_inline __wur char * + gets (char *__str) + { + if (__bos (__str) != (size_t) -1) +@@ -89,7 +89,7 @@ extern char *__REDIRECT (__fgets_alias, + (char *__restrict __s, int __n, + FILE *__restrict __stream), fgets) __wur; + +-extern __always_inline __wur char * ++__extern_always_inline __wur char * + fgets (char *__restrict __s, int __n, FILE *__restrict __stream) + { + if (__bos (__s) != (size_t) -1 +@@ -105,7 +105,7 @@ extern char *__REDIRECT (__fgets_unlocke + (char *__restrict __s, int __n, + FILE *__restrict __stream), fgets_unlocked) __wur; + +-extern __always_inline __wur char * ++__extern_always_inline __wur char * + fgets_unlocked (char *__restrict __s, int __n, FILE *__restrict __stream) + { + if (__bos (__s) != (size_t) -1 +--- libc/argp/argp.h.jj 2006-04-22 17:08:26.000000000 +0200 ++++ libc/argp/argp.h 2006-11-06 21:24:08.000000000 +0100 +@@ -558,7 +558,7 @@ extern void *__argp_input (__const struc + # endif + + # ifndef ARGP_EI +-# define ARGP_EI extern __inline__ ++# define ARGP_EI __extern_inline + # endif + + ARGP_EI void +--- libc/argp/argp-fmtstream.h.jj 2005-09-27 23:45:41.000000000 +0200 ++++ libc/argp/argp-fmtstream.h 2006-11-07 11:19:12.000000000 +0100 +@@ -1,5 +1,5 @@ + /* Word-wrapping and line-truncating streams. +- Copyright (C) 1997 Free Software Foundation, Inc. ++ Copyright (C) 1997, 2006 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Written by Miles Bader . + +@@ -203,7 +203,7 @@ extern int __argp_fmtstream_ensure (argp + #endif + + #ifndef ARGP_FS_EI +-#define ARGP_FS_EI extern inline ++#define ARGP_FS_EI __extern_inline + #endif + + ARGP_FS_EI size_t +--- libc/locale/programs/locfile.c.jj 2006-05-10 04:12:39.000000000 +0200 ++++ libc/locale/programs/locfile.c 2006-11-07 15:13:20.000000000 +0100 +@@ -33,6 +33,11 @@ + #include "locfile.h" + #include "simple-hash.h" + ++/* This prototype is needed to export locfile_hash from this object ++ when using ISO C99 inline semantics. */ ++struct keyword_t; ++const struct keyword_t *locfile_hash (const char *str, unsigned int len); ++ + #include "locfile-kw.h" + + +--- libc/locale/programs/charmap.c.jj 2006-08-19 19:50:52.000000000 +0200 ++++ libc/locale/programs/charmap.c 2006-11-07 15:11:05.000000000 +0100 +@@ -35,6 +35,10 @@ + + #include + ++/* This prototype is needed to export charmap_hash from this object ++ when using ISO C99 inline semantics. */ ++struct keyword_t; ++const struct keyword_t *charmap_hash (const char *str, unsigned int len); + + /* Define the lookup function. */ + #include "charmap-kw.h" +--- libc/io/sys/stat.h.jj 2006-01-06 13:14:05.000000000 +0100 ++++ libc/io/sys/stat.h 2006-11-06 21:27:03.000000000 +0100 +@@ -430,28 +430,28 @@ extern int __xmknodat (int __ver, int __ + #if defined __GNUC__ && __GNUC__ >= 2 + /* Inlined versions of the real stat and mknod functions. */ + +-extern __inline__ int ++__extern_inline int + __NTH (stat (__const char *__path, struct stat *__statbuf)) + { + return __xstat (_STAT_VER, __path, __statbuf); + } + + # if defined __USE_BSD || defined __USE_XOPEN_EXTENDED +-extern __inline__ int ++__extern_inline int + __NTH (lstat (__const char *__path, struct stat *__statbuf)) + { + return __lxstat (_STAT_VER, __path, __statbuf); + } + # endif + +-extern __inline__ int ++__extern_inline int + __NTH (fstat (int __fd, struct stat *__statbuf)) + { + return __fxstat (_STAT_VER, __fd, __statbuf); + } + + # ifdef __USE_ATFILE +-extern __inline__ int ++__extern_inline int + __NTH (fstatat (int __fd, __const char *__filename, struct stat *__statbuf, + int __flag)) + { +@@ -460,7 +460,7 @@ __NTH (fstatat (int __fd, __const char * + # endif + + # if defined __USE_MISC || defined __USE_BSD +-extern __inline__ int ++__extern_inline int + __NTH (mknod (__const char *__path, __mode_t __mode, __dev_t __dev)) + { + return __xmknod (_MKNOD_VER, __path, __mode, &__dev); +@@ -468,7 +468,7 @@ __NTH (mknod (__const char *__path, __mo + # endif + + # ifdef __USE_ATFILE +-extern __inline__ int ++__extern_inline int + __NTH (mknodat (int __fd, __const char *__path, __mode_t __mode, + __dev_t __dev)) + { +@@ -479,28 +479,28 @@ __NTH (mknodat (int __fd, __const char * + # if defined __USE_LARGEFILE64 \ + && (! defined __USE_FILE_OFFSET64 \ + || (defined __REDIRECT_NTH && defined __OPTIMIZE__)) +-extern __inline__ int ++__extern_inline int + __NTH (stat64 (__const char *__path, struct stat64 *__statbuf)) + { + return __xstat64 (_STAT_VER, __path, __statbuf); + } + + # if defined __USE_BSD || defined __USE_XOPEN_EXTENDED +-extern __inline__ int ++__extern_inline int + __NTH (lstat64 (__const char *__path, struct stat64 *__statbuf)) + { + return __lxstat64 (_STAT_VER, __path, __statbuf); + } + # endif + +-extern __inline__ int ++__extern_inline int + __NTH (fstat64 (int __fd, struct stat64 *__statbuf)) + { + return __fxstat64 (_STAT_VER, __fd, __statbuf); + } + + # ifdef __USE_GNU +-extern __inline__ int ++__extern_inline int + __NTH (fstatat64 (int __fd, __const char *__filename, struct stat64 *__statbuf, + int __flag)) + { +--- libc/wcsmbs/wchar.h.jj 2006-09-27 17:56:30.000000000 +0200 ++++ libc/wcsmbs/wchar.h 2006-11-06 21:28:28.000000000 +0100 +@@ -326,19 +326,19 @@ __END_NAMESPACE_C99 + locales must use ASCII encoding for the values in the ASCII range + and because the wchar_t encoding is always ISO 10646. */ + extern wint_t __btowc_alias (int __c) __asm ("btowc"); +-extern __inline wint_t ++__extern_inline wint_t + __NTH (btowc (int __c)) + { return (__builtin_constant_p (__c) && __c >= '\0' && __c <= '\x7f' + ? (wint_t) __c : __btowc_alias (__c)); } + + extern int __wctob_alias (wint_t __c) __asm ("wctob"); +-extern __inline int ++__extern_inline int + __NTH (wctob (wint_t __wc)) + { return (__builtin_constant_p (__wc) && __wc >= L'\0' && __wc <= L'\x7f' + ? (int) __wc : __wctob_alias (__wc)); } + # endif + +-extern __inline size_t ++__extern_inline size_t + __NTH (mbrlen (__const char *__restrict __s, size_t __n, + mbstate_t *__restrict __ps)) + { return (__ps != NULL +@@ -548,38 +548,38 @@ extern unsigned long long int __wcstoull + /* Define inline functions which call the internal entry points. */ + __BEGIN_NAMESPACE_C99 + +-extern __inline double ++__extern_inline double + __NTH (wcstod (__const wchar_t *__restrict __nptr, + wchar_t **__restrict __endptr)) + { return __wcstod_internal (__nptr, __endptr, 0); } +-extern __inline long int ++__extern_inline long int + __NTH (wcstol (__const wchar_t *__restrict __nptr, + wchar_t **__restrict __endptr, int __base)) + { return __wcstol_internal (__nptr, __endptr, __base, 0); } +-extern __inline unsigned long int ++__extern_inline unsigned long int + __NTH (wcstoul (__const wchar_t *__restrict __nptr, + wchar_t **__restrict __endptr, int __base)) + { return __wcstoul_internal (__nptr, __endptr, __base, 0); } + __END_NAMESPACE_C99 + + # ifdef __USE_GNU +-extern __inline float ++__extern_inline float + __NTH (wcstof (__const wchar_t *__restrict __nptr, + wchar_t **__restrict __endptr)) + { return __wcstof_internal (__nptr, __endptr, 0); } + # ifndef __LDBL_COMPAT +-extern __inline long double ++__extern_inline long double + __NTH (wcstold (__const wchar_t *__restrict __nptr, + wchar_t **__restrict __endptr)) + { return __wcstold_internal (__nptr, __endptr, 0); } + # endif + __extension__ +-extern __inline long long int ++__extern_inline long long int + __NTH (wcstoq (__const wchar_t *__restrict __nptr, + wchar_t **__restrict __endptr, int __base)) + { return __wcstoll_internal (__nptr, __endptr, __base, 0); } + __extension__ +-extern __inline unsigned long long int ++__extern_inline unsigned long long int + __NTH (wcstouq (__const wchar_t *__restrict __nptr, + wchar_t **__restrict __endptr, int __base)) + { return __wcstoull_internal (__nptr, __endptr, __base, 0); } +--- libc/wcsmbs/bits/wchar2.h.jj 2006-01-14 13:09:47.000000000 +0100 ++++ libc/wcsmbs/bits/wchar2.h 2006-11-06 21:29:19.000000000 +0100 +@@ -30,7 +30,7 @@ extern wchar_t *__REDIRECT_NTH (__wmemcp + __const wchar_t *__restrict __s2, size_t __n), + wmemcpy); + +-extern __always_inline wchar_t * ++__extern_always_inline wchar_t * + __NTH (wmemcpy (wchar_t *__restrict __s1, __const wchar_t *__restrict __s2, + size_t __n)) + { +@@ -46,7 +46,7 @@ extern wchar_t *__REDIRECT_NTH (__wmemmo + __const wchar_t *__s2, + size_t __n), wmemmove); + +-extern __always_inline wchar_t * ++__extern_always_inline wchar_t * + __NTH (wmemmove (wchar_t *__restrict __s1, __const wchar_t *__restrict __s2, + size_t __n)) + { +@@ -65,7 +65,7 @@ extern wchar_t *__REDIRECT_NTH (__wmempc + __const wchar_t *__restrict __s2, + size_t __n), wmempcpy); + +-extern __always_inline wchar_t * ++__extern_always_inline wchar_t * + __NTH (wmempcpy (wchar_t *__restrict __s1, __const wchar_t *__restrict __s2, + size_t __n)) + { +@@ -81,7 +81,7 @@ extern wchar_t *__wmemset_chk (wchar_t * + extern wchar_t *__REDIRECT_NTH (__wmemset_alias, (wchar_t *__s, wchar_t __c, + size_t __n), wmemset); + +-extern __always_inline wchar_t * ++__extern_always_inline wchar_t * + __NTH (wmemset (wchar_t *__restrict __s, wchar_t __c, size_t __n)) + { + if (__bos0 (__s) != (size_t) -1) +@@ -97,7 +97,7 @@ extern wchar_t *__REDIRECT_NTH (__wcscpy + (wchar_t *__restrict __dest, + __const wchar_t *__restrict __src), wcscpy); + +-extern __always_inline wchar_t * ++__extern_always_inline wchar_t * + __NTH (wcscpy (wchar_t *__dest, __const wchar_t *__src)) + { + if (__bos (__dest) != (size_t) -1) +@@ -112,7 +112,7 @@ extern wchar_t *__REDIRECT_NTH (__wcpcpy + __const wchar_t *__src), + wcpcpy); + +-extern __always_inline wchar_t * ++__extern_always_inline wchar_t * + __NTH (wcpcpy (wchar_t *__dest, __const wchar_t *__src)) + { + if (__bos (__dest) != (size_t) -1) +@@ -129,7 +129,7 @@ extern wchar_t *__REDIRECT_NTH (__wcsncp + __const wchar_t *__restrict __src, + size_t __n), wcsncpy); + +-extern __always_inline wchar_t * ++__extern_always_inline wchar_t * + __NTH (wcsncpy (wchar_t *__dest, __const wchar_t *__src, size_t __n)) + { + if (__bos (__dest) != (size_t) -1 +@@ -148,7 +148,7 @@ extern wchar_t *__REDIRECT_NTH (__wcpncp + __const wchar_t *__restrict __src, + size_t __n), wcpncpy); + +-extern __always_inline wchar_t * ++__extern_always_inline wchar_t * + __NTH (wcpncpy (wchar_t *__dest, __const wchar_t *__src, size_t __n)) + { + if (__bos (__dest) != (size_t) -1 +@@ -166,7 +166,7 @@ extern wchar_t *__REDIRECT_NTH (__wcscat + (wchar_t *__restrict __dest, + __const wchar_t *__restrict __src), wcscat); + +-extern __always_inline wchar_t * ++__extern_always_inline wchar_t * + __NTH (wcscat (wchar_t *__dest, __const wchar_t *__src)) + { + if (__bos (__dest) != (size_t) -1) +@@ -183,7 +183,7 @@ extern wchar_t *__REDIRECT_NTH (__wcsnca + __const wchar_t *__restrict __src, + size_t __n), wcsncat); + +-extern __always_inline wchar_t * ++__extern_always_inline wchar_t * + __NTH (wcsncat (wchar_t *__dest, __const wchar_t *__src, size_t __n)) + { + if (__bos (__dest) != (size_t) -1) +@@ -246,7 +246,7 @@ extern wchar_t *__REDIRECT (__fgetws_ali + (wchar_t *__restrict __s, int __n, + __FILE *__restrict __stream), fgetws) __wur; + +-extern __always_inline __wur wchar_t * ++__extern_always_inline __wur wchar_t * + fgetws (wchar_t *__restrict __s, int __n, __FILE *__restrict __stream) + { + if (__bos (__s) != (size_t) -1 +@@ -264,7 +264,7 @@ extern wchar_t *__REDIRECT (__fgetws_unl + __FILE *__restrict __stream), fgetws_unlocked) + __wur; + +-extern __always_inline __wur wchar_t * ++__extern_always_inline __wur wchar_t * + fgetws_unlocked (wchar_t *__restrict __s, int __n, __FILE *__restrict __stream) + { + if (__bos (__s) != (size_t) -1 +@@ -281,7 +281,7 @@ extern size_t __REDIRECT_NTH (__wcrtomb_ + (char *__restrict __s, wchar_t __wchar, + mbstate_t *__restrict __ps), wcrtomb) __wur; + +-extern __always_inline __wur size_t ++__extern_always_inline __wur size_t + __NTH (wcrtomb (char *__s, wchar_t __wchar, mbstate_t *__ps)) + { + /* We would have to include to get a definition of MB_LEN_MAX. +@@ -307,7 +307,7 @@ extern size_t __REDIRECT_NTH (__mbsrtowc + size_t __len, mbstate_t *__restrict __ps), + mbsrtowcs); + +-extern __always_inline size_t ++__extern_always_inline size_t + __NTH (mbsrtowcs (wchar_t *__restrict __dst, __const char **__restrict __src, + size_t __len, mbstate_t *__restrict __ps)) + { +@@ -330,7 +330,7 @@ extern size_t __REDIRECT_NTH (__wcsrtomb + size_t __len, mbstate_t *__restrict __ps), + wcsrtombs); + +-extern __always_inline size_t ++__extern_always_inline size_t + __NTH (wcsrtombs (char *__restrict __dst, __const wchar_t **__restrict __src, + size_t __len, mbstate_t *__restrict __ps)) + { +@@ -352,7 +352,7 @@ extern size_t __REDIRECT_NTH (__mbsnrtow + size_t __len, mbstate_t *__restrict __ps), + mbsnrtowcs); + +-extern __always_inline size_t ++__extern_always_inline size_t + __NTH (mbsnrtowcs (wchar_t *__restrict __dst, __const char **__restrict __src, + size_t __nmc, size_t __len, mbstate_t *__restrict __ps)) + { +@@ -376,7 +376,7 @@ extern size_t __REDIRECT_NTH (__wcsnrtom + size_t __nwc, size_t __len, + mbstate_t *__restrict __ps), wcsnrtombs); + +-extern __always_inline size_t ++__extern_always_inline size_t + __NTH (wcsnrtombs (char *__restrict __dst, __const wchar_t **__restrict __src, + size_t __nwc, size_t __len, mbstate_t *__restrict __ps)) + { +--- libc/socket/bits/socket2.h.jj 2005-08-08 21:00:53.000000000 +0200 ++++ libc/socket/bits/socket2.h 2006-11-06 21:29:59.000000000 +0100 +@@ -1,5 +1,5 @@ + /* Checking macros for socket functions. +- Copyright (C) 2005 Free Software Foundation, Inc. ++ Copyright (C) 2005, 2006 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or +@@ -26,7 +26,7 @@ extern ssize_t __recv_chk (int __fd, voi + extern ssize_t __REDIRECT (__recv_alias, (int __fd, void *__buf, size_t __n, + int __flags), recv); + +-extern __always_inline ssize_t ++__extern_always_inline ssize_t + recv (int __fd, void *__buf, size_t __n, int __flags) + { + if (__bos0 (__buf) != (size_t) -1 +@@ -44,7 +44,7 @@ extern ssize_t __REDIRECT (__recvfrom_al + int __flags, __SOCKADDR_ARG __addr, + socklen_t *__restrict __addr_len), recvfrom); + +-extern __always_inline ssize_t ++__extern_always_inline ssize_t + recvfrom (int __fd, void *__restrict __buf, size_t __n, int __flags, + __SOCKADDR_ARG __addr, socklen_t *__restrict __addr_len) + { +--- libc/posix/bits/unistd.h.jj 2006-08-24 08:47:31.000000000 +0200 ++++ libc/posix/bits/unistd.h 2006-11-06 21:30:39.000000000 +0100 +@@ -26,7 +26,7 @@ extern ssize_t __read_chk (int __fd, voi + extern ssize_t __REDIRECT (__read_alias, (int __fd, void *__buf, + size_t __nbytes), read) __wur; + +-extern __always_inline __wur ssize_t ++__extern_always_inline __wur ssize_t + read (int __fd, void *__buf, size_t __nbytes) + { + if (__bos0 (__buf) != (size_t) -1 +@@ -48,7 +48,7 @@ extern ssize_t __REDIRECT (__pread64_ali + __off64_t __offset), pread64) __wur; + + # ifndef __USE_FILE_OFFSET64 +-extern __always_inline __wur ssize_t ++__extern_always_inline __wur ssize_t + pread (int __fd, void *__buf, size_t __nbytes, __off_t __offset) + { + if (__bos0 (__buf) != (size_t) -1 +@@ -57,7 +57,7 @@ pread (int __fd, void *__buf, size_t __n + return __pread_alias (__fd, __buf, __nbytes, __offset); + } + # else +-extern __always_inline __wur ssize_t ++__extern_always_inline __wur ssize_t + pread (int __fd, void *__buf, size_t __nbytes, __off64_t __offset) + { + if (__bos0 (__buf) != (size_t) -1 +@@ -68,7 +68,7 @@ pread (int __fd, void *__buf, size_t __n + # endif + + # ifdef __USE_LARGEFILE64 +-extern __always_inline __wur ssize_t ++__extern_always_inline __wur ssize_t + pread64 (int __fd, void *__buf, size_t __nbytes, __off64_t __offset) + { + if (__bos0 (__buf) != (size_t) -1 +@@ -89,7 +89,7 @@ extern ssize_t __REDIRECT_NTH (__readlin + char *__restrict __buf, size_t __len), readlink) + __nonnull ((1, 2)) __wur; + +-extern __always_inline __nonnull ((1, 2)) __wur ssize_t ++__extern_always_inline __nonnull ((1, 2)) __wur ssize_t + __NTH (readlink (__const char *__restrict __path, char *__restrict __buf, + size_t __len)) + { +@@ -111,7 +111,7 @@ extern ssize_t __REDIRECT_NTH (__readlin + readlinkat) + __nonnull ((2, 3)) __wur; + +-extern __always_inline __nonnull ((2, 3)) __wur ssize_t ++__extern_always_inline __nonnull ((2, 3)) __wur ssize_t + __NTH (readlinkat (int __fd, __const char *__restrict __path, + char *__restrict __buf, size_t __len)) + { +@@ -127,7 +127,7 @@ extern char *__getcwd_chk (char *__buf, + extern char *__REDIRECT_NTH (__getcwd_alias, + (char *__buf, size_t __size), getcwd) __wur; + +-extern __always_inline __wur char * ++__extern_always_inline __wur char * + __NTH (getcwd (char *__buf, size_t __size)) + { + if (__bos (__buf) != (size_t) -1 +@@ -142,7 +142,7 @@ extern char *__getwd_chk (char *__buf, s + extern char *__REDIRECT_NTH (__getwd_alias, (char *__buf), getwd) + __nonnull ((1)) __wur; + +-extern __always_inline __nonnull ((1)) __attribute_deprecated__ __wur char * ++__extern_always_inline __nonnull ((1)) __attribute_deprecated__ __wur char * + __NTH (getwd (char *__buf)) + { + if (__bos (__buf) != (size_t) -1) +@@ -156,7 +156,7 @@ extern size_t __confstr_chk (int __name, + extern size_t __REDIRECT_NTH (__confstr_alias, (int __name, char *__buf, + size_t __len), confstr); + +-extern __always_inline size_t ++__extern_always_inline size_t + __NTH (confstr (int __name, char *__buf, size_t __len)) + { + if (__bos (__buf) != (size_t) -1 +@@ -171,7 +171,7 @@ extern int __getgroups_chk (int __size, + extern int __REDIRECT_NTH (__getgroups_alias, (int __size, __gid_t __list[]), + getgroups) __wur; + +-extern __always_inline int ++__extern_always_inline int + __NTH (getgroups (int __size, __gid_t __list[])) + { + if (__bos (__list) != (size_t) -1 +@@ -188,7 +188,7 @@ extern int __REDIRECT_NTH (__ttyname_r_a + size_t __buflen), ttyname_r) + __nonnull ((2)); + +-extern __always_inline int ++__extern_always_inline int + __NTH (ttyname_r (int __fd, char *__buf, size_t __buflen)) + { + if (__bos (__buf) != (size_t) -1 +@@ -204,7 +204,7 @@ extern int __getlogin_r_chk (char *__buf + extern int __REDIRECT (__getlogin_r_alias, (char *__buf, size_t __buflen), + getlogin_r) __nonnull ((1)); + +-extern __always_inline int ++__extern_always_inline int + getlogin_r (char *__buf, size_t __buflen) + { + if (__bos (__buf) != (size_t) -1 +@@ -221,7 +221,7 @@ extern int __gethostname_chk (char *__bu + extern int __REDIRECT_NTH (__gethostname_alias, (char *__buf, size_t __buflen), + gethostname) __nonnull ((1)); + +-extern __always_inline int ++__extern_always_inline int + __NTH (gethostname (char *__buf, size_t __buflen)) + { + if (__bos (__buf) != (size_t) -1 +@@ -239,7 +239,7 @@ extern int __REDIRECT_NTH (__getdomainna + size_t __buflen), + getdomainname) __nonnull ((1)) __wur; + +-extern __always_inline int ++__extern_always_inline int + __NTH (getdomainname (char *__buf, size_t __buflen)) + { + if (__bos (__buf) != (size_t) -1 +--- libc/string/bits/string3.h.jj 2005-08-08 21:02:31.000000000 +0200 ++++ libc/string/bits/string3.h 2006-11-07 11:19:17.000000000 +0100 +@@ -1,4 +1,4 @@ +-/* Copyright (C) 2004, 2005 Free Software Foundation, Inc. ++/* Copyright (C) 2004, 2005, 2006 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or +@@ -151,7 +151,7 @@ extern char *__REDIRECT_NTH (__stpncpy_a + __const char *__src, + size_t __n), stpncpy); + +-extern __always_inline char * ++__extern_always_inline char * + __NTH (stpncpy (char *__dest, __const char *__src, size_t __n)) + { + if (__bos (__dest) != (size_t) -1 +--- libc/string/bits/string2.h.jj 2004-05-28 08:39:13.000000000 +0200 ++++ libc/string/bits/string2.h 2006-11-07 11:19:24.000000000 +0100 +@@ -0,0 +1,18 @@ ++/* DO NOT EDIT THIS FILE. ++ ++ It has been auto-edited by fixincludes from: ++ ++ "fixinc/tests/inc/bits/string2.h" ++ ++ This had to be done to correct non-standard usages in the ++ original, manufacturer supplied header file. */ ++ ++ ++ ++#if defined( GLIBC_C99_INLINE_3_CHECK ) ++# if defined(__cplusplus) || __STDC_VERSION__ >= 19901L ++# define __STRING_INLINE inline ++# else ++# define __STRING_INLINE extern __inline ++# endif ++#endif /* GLIBC_C99_INLINE_3_CHECK */ +@@ -1,5 +1,5 @@ + /* Machine-independant string function optimizations. +- Copyright (C) 1997-2003, 2004 Free Software Foundation, Inc. ++ Copyright (C) 1997-2003, 2004, 2006 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper , 1997. + +@@ -43,7 +43,7 @@ + # ifdef __cplusplus + # define __STRING_INLINE inline + # else +-# define __STRING_INLINE extern __inline ++# define __STRING_INLINE __extern_inline + # endif + #endif + +--- libc/string/argz.h.jj 2004-09-08 00:23:43.000000000 +0200 ++++ libc/string/argz.h 2006-11-07 11:19:33.000000000 +0100 +@@ -1,5 +1,5 @@ + /* Routines for dealing with '\0' separated arg vectors. +- Copyright (C) 1995,96,97,98,99,2000,2004 Free Software Foundation, Inc. ++ Copyright (C) 1995,96,97,98,99,2000,2004,2006 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or +@@ -160,7 +160,7 @@ extern char *argz_next (__const char *__ + __const char *__restrict __entry) __THROW; + + #ifdef __USE_EXTERN_INLINES +-extern inline char * ++__extern_inline char * + __NTH (__argz_next (__const char *__argz, size_t __argz_len, + __const char *__entry)) + { +@@ -174,7 +174,7 @@ __NTH (__argz_next (__const char *__argz + else + return __argz_len > 0 ? (char *) __argz : 0; + } +-extern inline char * ++__extern_inline char * + __NTH (argz_next (__const char *__argz, size_t __argz_len, + __const char *__entry)) + { +--- libc/math/bits/cmathcalls.h.jj 2001-07-06 06:55:35.000000000 +0200 ++++ libc/math/bits/cmathcalls.h 2006-11-07 11:19:39.000000000 +0100 +@@ -1,6 +1,6 @@ + /* Prototype declarations for complex math functions; + helper file for . +- Copyright (C) 1997, 1998, 2001 Free Software Foundation, Inc. ++ Copyright (C) 1997, 1998, 2001, 2006 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or +@@ -135,21 +135,21 @@ __MATHDECL (_Mdouble_,creal, (_Mdouble_c + #if defined __GNUC__ && !__GNUC_PREREQ (2, 97) && defined __OPTIMIZE__ + + /* Imaginary part of Z. */ +-extern __inline _Mdouble_ ++__extern_inline _Mdouble_ + __MATH_PRECNAME(cimag) (_Mdouble_complex_ __z) __THROW + { + return __imag__ __z; + } + + /* Real part of Z. */ +-extern __inline _Mdouble_ ++__extern_inline _Mdouble_ + __MATH_PRECNAME(creal) (_Mdouble_complex_ __z) __THROW + { + return __real__ __z; + } + + /* Complex conjugate of Z. */ +-extern __inline _Mdouble_complex_ ++__extern_inline _Mdouble_complex_ + __MATH_PRECNAME(conj) (_Mdouble_complex_ __z) __THROW + { + return __extension__ ~__z; +--- libc/math/math_private.h.jj 2005-11-21 16:43:03.000000000 +0100 ++++ libc/math/math_private.h 2006-11-06 21:33:45.000000000 +0100 +@@ -192,7 +192,7 @@ extern int __kernel_rem_pio2 (double* + extern double __copysign (double x, double __y); + + #if __GNUC_PREREQ (4, 0) +-extern inline double __copysign (double x, double y) ++__extern_inline double __copysign (double x, double y) + { return __builtin_copysign (x, y); } + #endif + +@@ -239,7 +239,7 @@ extern int __kernel_rem_pio2f (float*, + extern float __copysignf (float x, float __y); + + #if __GNUC_PREREQ (4, 0) +-extern inline float __copysignf (float x, float y) ++__extern_inline float __copysignf (float x, float y) + { return __builtin_copysignf (x, y); } + #endif + +@@ -307,7 +307,7 @@ extern long double __logbl (long double + extern long double __significandl (long double x); + + #if __GNUC_PREREQ (4, 0) +-extern inline long double __copysignl (long double x, long double y) ++__extern_inline long double __copysignl (long double x, long double y) + { return __builtin_copysignl (x, y); } + #endif + +--- libc/hurd/hurd.h.jj 2002-01-02 10:52:20.000000000 +0100 ++++ libc/hurd/hurd.h 2006-11-07 11:19:51.000000000 +0100 +@@ -1,4 +1,5 @@ +-/* Copyright (C) 1993,94,95,96,97,98,99,2001,02 Free Software Foundation, Inc. ++/* Copyright (C) 1993,94,95,96,97,98,99,2001,2002,2006 ++ Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or +@@ -44,7 +45,7 @@ + #include + + #ifndef _HURD_H_EXTERN_INLINE +-#define _HURD_H_EXTERN_INLINE extern __inline ++#define _HURD_H_EXTERN_INLINE __extern_inline + #endif + + _HURD_H_EXTERN_INLINE int +--- libc/hurd/hurd/port.h.jj 2001-07-06 06:54:47.000000000 +0200 ++++ libc/hurd/hurd/port.h 2006-11-07 11:19:58.000000000 +0100 +@@ -1,5 +1,6 @@ + /* Lightweight user references for ports. +- Copyright (C) 1993, 1994, 1995, 1997, 1999 Free Software Foundation, Inc. ++ Copyright (C) 1993, 1994, 1995, 1997, 1999, 2006 ++ Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or +@@ -55,7 +56,7 @@ struct hurd_port + + + #ifndef _HURD_PORT_H_EXTERN_INLINE +-#define _HURD_PORT_H_EXTERN_INLINE extern __inline ++#define _HURD_PORT_H_EXTERN_INLINE __extern_inline + #endif + + +--- libc/hurd/hurd/threadvar.h.jj 2002-09-02 09:08:53.000000000 +0200 ++++ libc/hurd/hurd/threadvar.h 2006-11-07 10:54:40.000000000 +0100 +@@ -1,5 +1,5 @@ + /* Internal per-thread variables for the Hurd. +- Copyright (C) 1994,95,97,98,99,2001,02 Free Software Foundation, Inc. ++ Copyright (C) 1994,95,97,98,99,2001,02,06 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or +@@ -74,7 +74,7 @@ enum __hurd_threadvar_index + + + #ifndef _HURD_THREADVAR_H_EXTERN_INLINE +-#define _HURD_THREADVAR_H_EXTERN_INLINE extern __inline ++#define _HURD_THREADVAR_H_EXTERN_INLINE __extern_inline + #endif + + /* Return the location of the value for the per-thread variable with index +--- libc/hurd/hurd/fd.h.jj 2006-03-06 08:59:07.000000000 +0100 ++++ libc/hurd/hurd/fd.h 2006-11-07 10:53:18.000000000 +0100 +@@ -52,7 +52,7 @@ extern struct mutex _hurd_dtable_lock; / + #include + + #ifndef _HURD_FD_H_EXTERN_INLINE +-#define _HURD_FD_H_EXTERN_INLINE extern __inline ++#define _HURD_FD_H_EXTERN_INLINE __extern_inline + #endif + + /* Returns the descriptor cell for FD. If FD is invalid or unused, return +--- libc/hurd/hurd/signal.h.jj 2002-02-18 21:57:11.000000000 +0100 ++++ libc/hurd/hurd/signal.h 2006-11-07 10:54:13.000000000 +0100 +@@ -1,5 +1,5 @@ + /* Implementing POSIX.1 signals under the Hurd. +- Copyright (C) 1993,94,95,96,98,99,2002 Free Software Foundation, Inc. ++ Copyright (C) 1993,94,95,96,98,99,2002,2006 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or +@@ -126,7 +126,7 @@ extern struct hurd_sigstate *_hurd_self_ + __attribute__ ((__const__)); + + #ifndef _HURD_SIGNAL_H_EXTERN_INLINE +-#define _HURD_SIGNAL_H_EXTERN_INLINE extern __inline ++#define _HURD_SIGNAL_H_EXTERN_INLINE __extern_inline + #endif + + _HURD_SIGNAL_H_EXTERN_INLINE struct hurd_sigstate * +--- libc/hurd/hurd/userlink.h.jj 2001-07-06 06:54:47.000000000 +0200 ++++ libc/hurd/hurd/userlink.h 2006-11-07 10:53:37.000000000 +0100 +@@ -1,5 +1,5 @@ + /* Support for chains recording users of a resource; `struct hurd_userlink'. +- Copyright (C) 1994, 1995, 1997, 1999 Free Software Foundation, Inc. ++ Copyright (C) 1994, 1995, 1997, 1999, 2006 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or +@@ -71,7 +71,7 @@ struct hurd_userlink + + + #ifndef _HURD_USERLINK_H_EXTERN_INLINE +-#define _HURD_USERLINK_H_EXTERN_INLINE extern __inline ++#define _HURD_USERLINK_H_EXTERN_INLINE __extern_inline + #endif + + +--- libc/sysdeps/mach/alpha/machine-sp.h.jj 2001-07-06 06:55:56.000000000 +0200 ++++ libc/sysdeps/mach/alpha/machine-sp.h 2006-11-07 10:55:42.000000000 +0100 +@@ -1,5 +1,5 @@ + /* Machine-specific function to return the stack pointer. Alpha version. +- Copyright (C) 1994, 1997 Free Software Foundation, Inc. ++ Copyright (C) 1994, 1997, 2006 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or +@@ -23,7 +23,7 @@ + /* Return the current stack pointer. */ + + #ifndef _EXTERN_INLINE +-#define _EXTERN_INLINE extern __inline ++#define _EXTERN_INLINE __extern_inline + #endif + + _EXTERN_INLINE void * +--- libc/sysdeps/mach/alpha/machine-lock.h.jj 2003-02-26 01:01:15.000000000 +0100 ++++ libc/sysdeps/mach/alpha/machine-lock.h 2006-11-07 11:20:04.000000000 +0100 +@@ -1,5 +1,5 @@ + /* Machine-specific definition for spin locks. Alpha version. +- Copyright (C) 1994, 1997 Free Software Foundation, Inc. ++ Copyright (C) 1994, 1997, 2006 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or +@@ -30,7 +30,7 @@ typedef __volatile long int __spin_lock_ + + + #ifndef _EXTERN_INLINE +-#define _EXTERN_INLINE extern __inline ++#define _EXTERN_INLINE __extern_inline + #endif + + /* Unlock LOCK. */ +--- libc/sysdeps/mach/i386/machine-lock.h.jj 2001-07-06 06:56:00.000000000 +0200 ++++ libc/sysdeps/mach/i386/machine-lock.h 2006-11-07 10:56:10.000000000 +0100 +@@ -1,5 +1,5 @@ + /* Machine-specific definition for spin locks. i386 version. +- Copyright (C) 1994, 1997 Free Software Foundation, Inc. ++ Copyright (C) 1994, 1997, 2006 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or +@@ -30,7 +30,7 @@ typedef __volatile int __spin_lock_t; + + + #ifndef _EXTERN_INLINE +-#define _EXTERN_INLINE extern __inline ++#define _EXTERN_INLINE __extern_inline + #endif + + /* Unlock LOCK. */ +--- libc/sysdeps/mach/powerpc/machine-sp.h.jj 2002-08-27 00:39:44.000000000 +0200 ++++ libc/sysdeps/mach/powerpc/machine-sp.h 2006-11-07 10:56:59.000000000 +0100 +@@ -1,5 +1,5 @@ + /* Machine-specific function to return the stack pointer. PowerPC version. +- Copyright (C) 2001 Free Software Foundation, Inc. ++ Copyright (C) 2001, 2006 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or +@@ -27,7 +27,7 @@ + # ifdef _HURD_THREADVAR_H_EXTERN_INLINE + # define _EXTERN_INLINE _HURD_THREADVAR_H_EXTERN_INLINE + # else +-# define _EXTERN_INLINE extern __inline ++# define _EXTERN_INLINE __extern_inline + # endif + #endif + +--- libc/sysdeps/mach/powerpc/machine-lock.h.jj 2002-02-17 08:13:25.000000000 +0100 ++++ libc/sysdeps/mach/powerpc/machine-lock.h 2006-11-07 10:56:40.000000000 +0100 +@@ -1,5 +1,5 @@ + /* Machine-specific definition for spin locks. PowerPC version. +- Copyright (C) 1994,97,2002 Free Software Foundation, Inc. ++ Copyright (C) 1994,97,2002,2006 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or +@@ -30,7 +30,7 @@ typedef __volatile long int __spin_lock_ + + + #ifndef _EXTERN_INLINE +-#define _EXTERN_INLINE extern __inline ++#define _EXTERN_INLINE __extern_inline + #endif + + /* Unlock LOCK. */ +--- libc/sysdeps/alpha/fpu/bits/mathinline.h.jj 2005-02-08 05:37:48.000000000 +0100 ++++ libc/sysdeps/alpha/fpu/bits/mathinline.h 2006-11-07 10:59:08.000000000 +0100 +@@ -1,5 +1,6 @@ + /* Inline math functions for Alpha. +- Copyright (C) 1996, 1997, 1999-2001, 2004 Free Software Foundation, Inc. ++ Copyright (C) 1996, 1997, 1999-2001, 2004, 2006 ++ Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by David Mosberger-Tang. + +@@ -25,7 +26,7 @@ + #ifdef __cplusplus + # define __MATH_INLINE __inline + #else +-# define __MATH_INLINE extern __inline ++# define __MATH_INLINE __extern_inline + #endif + + #if defined __USE_ISOC99 && defined __GNUC__ && !__GNUC_PREREQ(3,0) +--- libc/sysdeps/ia64/fpu/bits/mathinline.h.jj 2004-09-08 23:44:02.000000000 +0200 ++++ libc/sysdeps/ia64/fpu/bits/mathinline.h 2006-11-07 10:59:49.000000000 +0100 +@@ -1,5 +1,5 @@ + /* Inline math functions for ia64. +- Copyright (C) 2004 Free Software Foundation, Inc. ++ Copyright (C) 2004, 2006 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or +@@ -24,7 +24,7 @@ + #ifdef __cplusplus + # define __MATH_INLINE __inline + #else +-# define __MATH_INLINE extern __inline ++# define __MATH_INLINE __extern_inline + #endif + + #if defined __USE_ISOC99 && defined __GNUC__ && __GNUC__ >= 2 +--- libc/sysdeps/i386/fpu/bits/mathinline.h.jj 2004-09-08 00:23:42.000000000 +0200 ++++ libc/sysdeps/i386/fpu/bits/mathinline.h 2006-11-07 11:00:56.000000000 +0100 +@@ -1,5 +1,5 @@ + /* Inline math functions for i387. +- Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004 ++ Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2006 + Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by John C. Bowman , 1995. +@@ -26,7 +26,7 @@ + #ifdef __cplusplus + # define __MATH_INLINE __inline + #else +-# define __MATH_INLINE extern __inline ++# define __MATH_INLINE __extern_inline + #endif + + +--- libc/sysdeps/i386/i486/bits/string.h.jj 2004-12-15 21:30:16.000000000 +0100 ++++ libc/sysdeps/i386/i486/bits/string.h 2006-11-07 11:01:34.000000000 +0100 +@@ -1,5 +1,5 @@ + /* Optimized, inlined string functions. i486 version. +- Copyright (C) 1997,1998,1999,2000,2001,2002,2003,2004 ++ Copyright (C) 1997,1998,1999,2000,2001,2002,2003,2004,2006 + Free Software Foundation, Inc. + This file is part of the GNU C Library. + +@@ -35,7 +35,7 @@ + # ifdef __cplusplus + # define __STRING_INLINE inline + # else +-# define __STRING_INLINE extern __inline ++# define __STRING_INLINE __extern_inline + # endif + #endif + +--- libc/sysdeps/generic/inttypes.h.jj 2004-09-08 00:23:42.000000000 +0200 ++++ libc/sysdeps/generic/inttypes.h 2006-11-07 11:02:59.000000000 +0100 +@@ -1,4 +1,4 @@ +-/* Copyright (C) 1997-2001, 2004 Free Software Foundation, Inc. ++/* Copyright (C) 1997-2001, 2004, 2006 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or +@@ -330,7 +330,7 @@ extern long int __strtol_internal (__con + int __base, int __group) __THROW; + # define __strtol_internal_defined 1 + # endif +-extern __inline intmax_t ++__extern_inline intmax_t + __NTH (strtoimax (__const char *__restrict nptr, char **__restrict endptr, + int base)) + { +@@ -345,7 +345,7 @@ extern unsigned long int __strtoul_inter + int __base, int __group) __THROW; + # define __strtoul_internal_defined 1 + # endif +-extern __inline uintmax_t ++__extern_inline uintmax_t + __NTH (strtoumax (__const char *__restrict nptr, char **__restrict endptr, + int base)) + { +@@ -359,7 +359,7 @@ extern long int __wcstol_internal (__con + int __base, int __group) __THROW; + # define __wcstol_internal_defined 1 + # endif +-extern __inline intmax_t ++__extern_inline intmax_t + __NTH (wcstoimax (__const __gwchar_t *__restrict nptr, + __gwchar_t **__restrict endptr, int base)) + { +@@ -376,7 +376,7 @@ extern unsigned long int __wcstoul_inter + int __base, int __group) __THROW; + # define __wcstoul_internal_defined 1 + # endif +-extern __inline uintmax_t ++__extern_inline uintmax_t + __NTH (wcstoumax (__const __gwchar_t *__restrict nptr, + __gwchar_t **__restrict endptr, int base)) + { +@@ -393,7 +393,7 @@ extern long long int __strtoll_internal + int __base, int __group) __THROW; + # define __strtoll_internal_defined 1 + # endif +-extern __inline intmax_t ++__extern_inline intmax_t + __NTH (strtoimax (__const char *__restrict nptr, char **__restrict endptr, + int base)) + { +@@ -411,7 +411,7 @@ extern unsigned long long int __strtoull + int __group) __THROW; + # define __strtoull_internal_defined 1 + # endif +-extern __inline uintmax_t ++__extern_inline uintmax_t + __NTH (strtoumax (__const char *__restrict nptr, char **__restrict endptr, + int base)) + { +@@ -427,7 +427,7 @@ extern long long int __wcstoll_internal + int __base, int __group) __THROW; + # define __wcstoll_internal_defined 1 + # endif +-extern __inline intmax_t ++__extern_inline intmax_t + __NTH (wcstoimax (__const __gwchar_t *__restrict nptr, + __gwchar_t **__restrict endptr, int base)) + { +@@ -446,7 +446,7 @@ extern unsigned long long int __wcstoull + int __group) __THROW; + # define __wcstoull_internal_defined 1 + # endif +-extern __inline uintmax_t ++__extern_inline uintmax_t + __NTH (wcstoumax (__const __gwchar_t *__restrict nptr, + __gwchar_t **__restrict endptr, int base)) + { +--- libc/sysdeps/generic/machine-sp.h.jj 2001-07-06 06:55:49.000000000 +0200 ++++ libc/sysdeps/generic/machine-sp.h 2006-11-07 11:06:02.000000000 +0100 +@@ -1,5 +1,5 @@ + /* Machine-specific function to return the stack pointer. Stub version. +- Copyright (C) 1994, 1997 Free Software Foundation, Inc. ++ Copyright (C) 1994, 1997, 2006 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or +@@ -23,7 +23,7 @@ + /* Return the current stack pointer. */ + + #ifndef _EXTERN_INLINE +-#define _EXTERN_INLINE extern __inline ++#define _EXTERN_INLINE __extern_inline + #endif + + _EXTERN_INLINE void * +--- libc/sysdeps/generic/machine-lock.h.jj 2001-07-06 06:55:49.000000000 +0200 ++++ libc/sysdeps/generic/machine-lock.h 2006-11-07 11:02:08.000000000 +0100 +@@ -1,5 +1,5 @@ + /* Machine-specific definition for spin locks. Stub version. +- Copyright (C) 1994, 1997 Free Software Foundation, Inc. ++ Copyright (C) 1994, 1997, 2006 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or +@@ -30,7 +30,7 @@ typedef volatile int __spin_lock_t; + + + #ifndef _EXTERN_INLINE +-#define _EXTERN_INLINE extern __inline ++#define _EXTERN_INLINE __extern_inline + #endif + + /* Unlock LOCK. */ +--- libc/sysdeps/generic/allocalim.h.jj 2002-10-09 11:19:59.000000000 +0200 ++++ libc/sysdeps/generic/allocalim.h 2006-11-07 11:03:22.000000000 +0100 +@@ -1,4 +1,4 @@ +-extern inline int __libc_use_alloca (size_t size) ++__extern_inline int __libc_use_alloca (size_t size) + { + return size <= __MAX_ALLOCA_CUTOFF; + } +--- libc/sysdeps/pthread/aio_misc.c.jj 2006-01-04 00:12:54.000000000 +0100 ++++ libc/sysdeps/pthread/aio_misc.c 2006-11-07 11:06:31.000000000 +0100 +@@ -33,7 +33,7 @@ + #ifndef aio_create_helper_thread + # define aio_create_helper_thread __aio_create_helper_thread + +-extern inline int ++__extern_inline int + __aio_create_helper_thread (pthread_t *threadp, void *(*tf) (void *), void *arg) + { + pthread_attr_t attr; +--- libc/sysdeps/s390/bits/string.h.jj 2005-01-28 22:44:42.000000000 +0100 ++++ libc/sysdeps/s390/bits/string.h 2006-11-07 11:07:05.000000000 +0100 +@@ -1,5 +1,5 @@ + /* Optimized, inlined string functions. S/390 version. +- Copyright (C) 2000, 2001 Free Software Foundation, Inc. ++ Copyright (C) 2000, 2001, 2006 Free Software Foundation, Inc. + Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com). + This file is part of the GNU C Library. + +@@ -34,7 +34,7 @@ + # ifdef __cplusplus + # define __STRING_INLINE inline + # else +-# define __STRING_INLINE extern __inline ++# define __STRING_INLINE __extern_inline + # endif + #endif + +--- libc/sysdeps/s390/fpu/bits/mathinline.h.jj 2006-02-01 04:00:20.000000000 +0100 ++++ libc/sysdeps/s390/fpu/bits/mathinline.h 2006-11-07 11:07:37.000000000 +0100 +@@ -1,5 +1,5 @@ + /* Inline math functions for s390. +- Copyright (C) 2004 Free Software Foundation, Inc. ++ Copyright (C) 2004, 2006 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or +@@ -24,7 +24,7 @@ + #ifdef __cplusplus + # define __MATH_INLINE __inline + #else +-# define __MATH_INLINE extern __inline ++# define __MATH_INLINE __extern_inline + #endif + + #if (!defined __NO_MATH_INLINES || defined __LIBC_INTERNAL_MATH_INLINES) \ +--- libc/sysdeps/powerpc/fpu/bits/mathinline.h.jj 2006-11-06 20:53:15.000000000 +0100 ++++ libc/sysdeps/powerpc/fpu/bits/mathinline.h 2006-11-07 11:08:04.000000000 +0100 +@@ -25,7 +25,7 @@ + #ifdef __cplusplus + # define __MATH_INLINE __inline + #else +-# define __MATH_INLINE extern __inline ++# define __MATH_INLINE __extern_inline + #endif /* __cplusplus */ + + #if defined __GNUC__ && !defined _SOFT_FLOAT +--- libc/sysdeps/x86_64/fpu/bits/mathinline.h.jj 2004-09-08 00:18:59.000000000 +0200 ++++ libc/sysdeps/x86_64/fpu/bits/mathinline.h 2006-11-07 11:10:33.000000000 +0100 +@@ -1,5 +1,5 @@ + /* Inline math functions for x86-64. +- Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc. ++ Copyright (C) 2002, 2003, 2004, 2006 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Andreas Jaeger , 2002. + +@@ -25,7 +25,7 @@ + #ifdef __cplusplus + # define __MATH_INLINE __inline + #else +-# define __MATH_INLINE extern __inline ++# define __MATH_INLINE __extern_inline + #endif + + +--- libc/sysdeps/sparc/fpu/bits/mathinline.h.jj 2006-01-14 13:09:02.000000000 +0100 ++++ libc/sysdeps/sparc/fpu/bits/mathinline.h 2006-11-07 11:10:57.000000000 +0100 +@@ -131,7 +131,7 @@ + # ifdef __cplusplus + # define __MATH_INLINE __inline + # else +-# define __MATH_INLINE extern __inline ++# define __MATH_INLINE __extern_inline + # endif /* __cplusplus */ + + /* The gcc, version 2.7 or below, has problems with all this inlining +--- libc/sysdeps/unix/bsd/bsd4.4/bits/socket.h.jj 2004-09-11 18:28:10.000000000 +0200 ++++ libc/sysdeps/unix/bsd/bsd4.4/bits/socket.h 2006-11-07 11:12:07.000000000 +0100 +@@ -1,5 +1,5 @@ + /* System-specific socket constants and types. 4.4 BSD version. +- Copyright (C) 1991,92,1994-2002,2004 Free Software Foundation, Inc. ++ Copyright (C) 1991,92,1994-2002,2004,2006 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or +@@ -227,7 +227,7 @@ extern struct cmsghdr *__cmsg_nxthdr (st + struct cmsghdr *__cmsg) __THROW; + #ifdef __USE_EXTERN_INLINES + # ifndef _EXTERN_INLINE +-# define _EXTERN_INLINE extern __inline ++# define _EXTERN_INLINE __extern_inline + # endif + _EXTERN_INLINE struct cmsghdr * + __NTH (__cmsg_nxthdr (struct msghdr *__mhdr, struct cmsghdr *__cmsg)) +--- libc/sysdeps/unix/sysv/linux/ia64/ioperm.c.jj 2004-03-18 00:17:58.000000000 +0100 ++++ libc/sysdeps/unix/sysv/linux/ia64/ioperm.c 2006-11-07 11:13:23.000000000 +0100 +@@ -1,4 +1,4 @@ +-/* Copyright (C) 1999, 2000, 2001, 2004 Free Software Foundation, Inc. ++/* Copyright (C) 1999, 2000, 2001, 2004, 2006 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by David Mosberger-Tang . + +@@ -51,7 +51,7 @@ static struct + } + io; + +-__inline__ unsigned long int ++static __always_inline unsigned long int + io_offset (unsigned long int port) + { + return ((port >> 2) << 12) | (port & 0xfff); +--- libc/sysdeps/unix/sysv/linux/bits/socket.h.jj 2006-04-02 19:25:37.000000000 +0200 ++++ libc/sysdeps/unix/sysv/linux/bits/socket.h 2006-11-07 11:15:04.000000000 +0100 +@@ -264,7 +264,7 @@ extern struct cmsghdr *__cmsg_nxthdr (st + struct cmsghdr *__cmsg) __THROW; + #ifdef __USE_EXTERN_INLINES + # ifndef _EXTERN_INLINE +-# define _EXTERN_INLINE extern __inline ++# define _EXTERN_INLINE __extern_inline + # endif + _EXTERN_INLINE struct cmsghdr * + __NTH (__cmsg_nxthdr (struct msghdr *__mhdr, struct cmsghdr *__cmsg)) +--- libc/sysdeps/unix/sysv/linux/bits/sigset.h.jj 2001-07-06 06:56:14.000000000 +0200 ++++ libc/sysdeps/unix/sysv/linux/bits/sigset.h 2006-11-07 11:14:48.000000000 +0100 +@@ -1,5 +1,6 @@ + /* __sig_atomic_t, __sigset_t, and related definitions. Linux version. +- Copyright (C) 1991, 1992, 1994, 1996, 1997 Free Software Foundation, Inc. ++ Copyright (C) 1991, 1992, 1994, 1996, 1997, 2006 ++ Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or +@@ -43,7 +44,7 @@ typedef struct + # define _SIGSET_H_fns 1 + + # ifndef _EXTERN_INLINE +-# define _EXTERN_INLINE extern __inline ++# define _EXTERN_INLINE __extern_inline + # endif + + /* Return a mask that includes the bit for SIG only. */ +--- libc/sysdeps/unix/sysv/linux/sys/sysmacros.h.jj 2004-09-08 00:18:59.000000000 +0200 ++++ libc/sysdeps/unix/sysv/linux/sys/sysmacros.h 2006-11-07 11:15:53.000000000 +0100 +@@ -0,0 +1,18 @@ ++/* DO NOT EDIT THIS FILE. ++ ++ It has been auto-edited by fixincludes from: ++ ++ "fixinc/tests/inc/sys/sysmacros.h" ++ ++ This had to be done to correct non-standard usages in the ++ original, manufacturer supplied header file. */ ++ ++ ++ ++#if defined( GLIBC_C99_INLINE_4_CHECK ) ++__extension__ ++#if __STDC_VERSION__ < 19901L ++extern ++#endif ++ __inline unsigned int ++#endif /* GLIBC_C99_INLINE_4_CHECK */ +@@ -1,5 +1,6 @@ + /* Definitions of macros to access `dev_t' values. +- Copyright (C) 1996, 1997, 1999, 2003, 2004 Free Software Foundation, Inc. ++ Copyright (C) 1996, 1997, 1999, 2003, 2004, 2006 ++ Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or +@@ -27,30 +28,30 @@ + they need. */ + #ifdef __GLIBC_HAVE_LONG_LONG + __extension__ +-extern __inline unsigned int gnu_dev_major (unsigned long long int __dev) ++__extern_inline unsigned int gnu_dev_major (unsigned long long int __dev) + __THROW; + __extension__ +-extern __inline unsigned int gnu_dev_minor (unsigned long long int __dev) ++__extern_inline unsigned int gnu_dev_minor (unsigned long long int __dev) + __THROW; + __extension__ +-extern __inline unsigned long long int gnu_dev_makedev (unsigned int __major, ++__extern_inline unsigned long long int gnu_dev_makedev (unsigned int __major, + unsigned int __minor) + __THROW; + + # if defined __GNUC__ && __GNUC__ >= 2 +-__extension__ extern __inline unsigned int ++__extension__ __extern_inline unsigned int + __NTH (gnu_dev_major (unsigned long long int __dev)) + { + return ((__dev >> 8) & 0xfff) | ((unsigned int) (__dev >> 32) & ~0xfff); + } + +-__extension__ extern __inline unsigned int ++__extension__ __extern_inline unsigned int + __NTH (gnu_dev_minor (unsigned long long int __dev)) + { + return (__dev & 0xff) | ((unsigned int) (__dev >> 12) & ~0xff); + } + +-__extension__ extern __inline unsigned long long int ++__extension__ __extern_inline unsigned long long int + __NTH (gnu_dev_makedev (unsigned int __major, unsigned int __minor)) + { + return ((__minor & 0xff) | ((__major & 0xfff) << 8) diff --git a/pkgs/development/libraries/glibc-2.5/x86-fnstsw.patch b/pkgs/development/libraries/glibc-2.5/x86-fnstsw.patch new file mode 100644 index 000000000000..45deb1d2d719 --- /dev/null +++ b/pkgs/development/libraries/glibc-2.5/x86-fnstsw.patch @@ -0,0 +1,32 @@ +# --- T2-COPYRIGHT-NOTE-BEGIN --- +# This copyright note is auto-generated by ./scripts/Create-CopyPatch. +# +# T2 SDE: package/.../glibc/x86-fnstsw.patch +# Copyright (C) 2008 The T2 SDE Project +# +# More information can be found in the files COPYING and README. +# +# This patch file is dual-licensed. It is available under the license the +# patched project is licensed under, as long as it is an OpenSource license +# as defined at http://www.opensource.org/ (e.g. BSD, X11) or under the terms +# of the GNU General Public License as published by the Free Software +# Foundation; either version 2 of the License, or (at your option) any later +# version. +# --- T2-COPYRIGHT-NOTE-END --- + +Fix more strict checking in binutils since 2.18.50.0.3: + sysdeps/i386/fpu/ftestexcept.c:33: Error: suffix or operands invalid for `fnstsw' + + - Rene Rebe + +--- glibc-2.6.1/sysdeps/i386/fpu/ftestexcept.c.vanilla 2008-09-02 12:45:07.000000000 +0200 ++++ glibc-2.6.1/sysdeps/i386/fpu/ftestexcept.c 2008-09-02 12:46:37.000000000 +0200 +@@ -26,7 +26,7 @@ + int + fetestexcept (int excepts) + { +- int temp; ++ short temp; + int xtemp = 0; + + /* Get current exceptions. */ diff --git a/pkgs/development/libraries/glibc-2.9/builder.sh b/pkgs/development/libraries/glibc-2.9/builder.sh index 34219f12f429..8cc6be4cf738 100644 --- a/pkgs/development/libraries/glibc-2.9/builder.sh +++ b/pkgs/development/libraries/glibc-2.9/builder.sh @@ -1,6 +1,5 @@ -# glibc cannot have itself in its rpath. +# Glibc cannot have itself in its RPATH. export NIX_NO_SELF_RPATH=1 -export NIX_DONT_SET_RPATH=1 source $stdenv/setup @@ -41,6 +40,8 @@ postConfigure() { # test binaries. export NIX_CFLAGS_LINK= export NIX_LDFLAGS_BEFORE= + + export NIX_DONT_SET_RPATH=1 } diff --git a/pkgs/development/libraries/glibc-2.9/default.nix b/pkgs/development/libraries/glibc-2.9/default.nix index 84c138a197b6..c94cedab018c 100644 --- a/pkgs/development/libraries/glibc-2.9/default.nix +++ b/pkgs/development/libraries/glibc-2.9/default.nix @@ -5,9 +5,9 @@ stdenv.mkDerivation rec { name = "glibc-2.9"; - + builder = ./builder.sh; - + src = fetchurl { url = http://nixos.org/tarballs/glibc-2.9-20081208.tar.bz2; sha256 = "0zhxbgcsl97pf349m0lz8d5ljvvzrcqc23yf08d888xlk4ms8m3h"; @@ -48,9 +48,6 @@ stdenv.mkDerivation rec { ./rpcgen-path.patch ]; - # `--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 diff --git a/pkgs/development/libraries/gmp/default.nix b/pkgs/development/libraries/gmp/default.nix index 0b472928d0e8..541fabddd441 100644 --- a/pkgs/development/libraries/gmp/default.nix +++ b/pkgs/development/libraries/gmp/default.nix @@ -1,17 +1,19 @@ {stdenv, fetchurl, m4, cxx ? true}: -stdenv.mkDerivation { - name = "gmp-4.2.4"; +stdenv.mkDerivation rec { + name = "gmp-4.3.1"; src = fetchurl { - url = mirror://gnu/gmp/gmp-4.2.4.tar.bz2; - sha256 = "0s73xzhwrfqcr1gmhsink1fhfzjlkyk70b1bdyrm76m6b3jv082l"; + url = "mirror://gnu/gmp/${name}.tar.bz2"; + sha256 = "1j5pklq36ivg2cim5wfysns229a544lqkimp3mlzkwjl513ra0ma"; }; buildInputs = [m4]; - + + preConfigure = "ln -sf configfsf.guess config.guess"; + configureFlags = if cxx then "--enable-cxx" else "--disable-cxx"; - + doCheck = true; meta = { diff --git a/pkgs/stdenv/generic/setup-new.sh b/pkgs/stdenv/generic/setup-new.sh deleted file mode 100644 index cadfeadc6dbe..000000000000 --- a/pkgs/stdenv/generic/setup-new.sh +++ /dev/null @@ -1,782 +0,0 @@ -# Run the named hook, either by calling the function with that name or -# by evaluating the variable with that name. This allows convenient -# setting of hooks both from Nix expressions (as attributes / -# environment variables) and from shell scripts (as functions). -runHook() { - local hookName="$1" - if test "$(type -t $hookName)" = function; then - $hookName - else - eval "${!hookName}" - fi -} - - -exitHandler() { - exitCode=$? - set +e - - closeNest - - if test -n "$showBuildStats"; then - times > "$NIX_BUILD_TOP/.times" - local -a times=($(cat "$NIX_BUILD_TOP/.times")) - # Print the following statistics: - # - user time for the shell - # - system time for the shell - # - user time for all child processes - # - system time for all child processes - echo "build time elapsed: " ${times[*]} - fi - - if test $exitCode != 0; then - runHook failureHook - - # If the builder had a non-zero exit code and - # $succeedOnFailure is set, create the file - # `$out/nix-support/failed' to signal failure, and exit - # normally. Otherwise, return the original exit code. - if test -n "$succeedOnFailure"; then - echo "build failed with exit code $exitCode (ignored)" - ensureDir "$out/nix-support" - echo -n $exitCode > "$out/nix-support/failed" - exit 0 - fi - - else - runHook exitHook - fi - - exit $exitCode -} - -trap "exitHandler" EXIT - - -###################################################################### -# Helper functions that might be useful in setup hooks. - - -addToSearchPathWithCustomDelimiter() { - local delimiter=$1 - local varName=$2 - local dir=$3 - if [ -d "$dir" ]; then - eval export ${varName}=${!varName}${!varName:+$delimiter}${dir} - fi -} - -PATH_DELIMITER=':' - -addToSearchPath() { - addToSearchPathWithCustomDelimiter "${PATH_DELIMITER}" "$@" -} - - -###################################################################### -# Initialisation. - -set -e - -test -z $NIX_GCC && NIX_GCC=@gcc@ - - -# Wildcard expansions that don't match should expand to an empty list. -# This ensures that, for instance, "for i in *; do ...; done" does the -# right thing. -shopt -s nullglob - - -# Set up the initial path. -PATH= -for i in $NIX_GCC @initialPath@; do - if test "$i" = /; then i=; fi - addToSearchPath PATH $i/bin -done - -if test "$NIX_DEBUG" = "1"; then - echo "initial path: $PATH" -fi - - -# Execute the pre-hook. -export SHELL=@shell@ -if test -z "$shell"; then - export shell=@shell@ -fi -param1=@param1@ -param2=@param2@ -param3=@param3@ -param4=@param4@ -param5=@param5@ -if test -n "@preHook@"; then source @preHook@; fi -runHook preHook - - -# Check that the pre-hook initialised SHELL. -if test -z "$SHELL"; then echo "SHELL not set"; exit 1; fi - - -# Hack: run gcc's setup hook. -envHooks=() -if test -f $NIX_GCC/nix-support/setup-hook; then - source $NIX_GCC/nix-support/setup-hook -fi - - -# Ensure that the given directories exists. -ensureDir() { - local dir - for dir in "$@"; do - if ! test -x "$dir"; then mkdir -p "$dir"; fi - done -} - -installBin() { - ensureDir $out/bin - cp "$@" $out/bin -} - - -# Allow the caller to augment buildInputs (it's not always possible to -# do this before the call to setup.sh, since the PATH is empty at that -# point; here we have a basic Unix environment). -runHook addInputsHook - - -# Recursively find all build inputs. -findInputs() { - local pkg=$1 - - case $pkgs in - *\ $pkg\ *) - return 0 - ;; - esac - - pkgs="$pkgs $pkg " - - if test -f $pkg/nix-support/setup-hook; then - source $pkg/nix-support/setup-hook - fi - - if test -f $pkg/nix-support/propagated-build-inputs; then - for i in $(cat $pkg/nix-support/propagated-build-inputs); do - findInputs $i - done - fi -} - -pkgs="" -for i in $buildInputs $propagatedBuildInputs; do - findInputs $i -done - - -# Set the relevant environment variables to point to the build inputs -# found above. -addToEnv() { - local pkg=$1 - - if test -d $1/bin; then - addToSearchPath _PATH $1/bin - fi - - # Run the package-specific hooks set by the setup-hook scripts. - for i in "${envHooks[@]}"; do - $i $pkg - done -} - -for i in $pkgs; do - addToEnv $i -done - - -# Add the output as an rpath. -if test "$NIX_NO_SELF_RPATH" != "1"; then - export NIX_LDFLAGS="-rpath $out/lib $NIX_LDFLAGS" - if test -n "$NIX_LIB64_IN_SELF_RPATH"; then - export NIX_LDFLAGS="-rpath $out/lib64 $NIX_LDFLAGS" - fi -fi - - -# Strip debug information by default. -if test -z "$NIX_STRIP_DEBUG"; then - export NIX_STRIP_DEBUG=1 - export NIX_CFLAGS_STRIP="-g0 -Wl,--strip-debug" -fi - - -# Set the TZ (timezone) environment variable, otherwise commands like -# `date' will complain (e.g., `Tue Mar 9 10:01:47 Local time zone must -# be set--see zic manual page 2004'). -export TZ=UTC - - -# Set the prefix. This is generally $out, but it can be overriden, -# for instance if we just want to perform a test build/install to a -# temporary location and write a build report to $out. -if test -z "$prefix"; then - prefix="$out"; -fi - -if test "$useTempPrefix" = "1"; then - prefix="$NIX_BUILD_TOP/tmp_prefix"; -fi - - -PATH=$_PATH${_PATH:+:}$PATH -if test "$NIX_DEBUG" = "1"; then - echo "final path: $PATH" -fi - - -# Make GNU Make produce nested output. -export NIX_INDENT_MAKE=1 - - -###################################################################### -# Misc. helper functions. - - -stripDirs() { - local dirs="$1" - local stripFlags="$2" - local dirsNew= - - for d in ${dirs}; do - if test -d "$prefix/$d"; then - dirsNew="${dirsNew} $prefix/$d " - fi - done - dirs=${dirsNew} - - if test -n "${dirs}"; then - header "stripping (with flags $stripFlags) in $dirs" - find $dirs -type f -print0 | xargs -0 ${xargsFlags:--r} strip $stripFlags || true - stopNest - fi -} - - -###################################################################### -# Textual substitution functions. - - -substitute() { - local input="$1" - local output="$2" - - local -a params=("$@") - local -a args=() - - local n p pattern replacement varName - - for ((n = 2; n < ${#params[*]}; n += 1)); do - p=${params[$n]} - - if test "$p" = "--replace"; then - pattern="${params[$((n + 1))]}" - replacement="${params[$((n + 2))]}" - n=$((n + 2)) - fi - - if test "$p" = "--subst-var"; then - varName="${params[$((n + 1))]}" - pattern="@$varName@" - replacement="${!varName}" - n=$((n + 1)) - fi - - if test "$p" = "--subst-var-by"; then - pattern="@${params[$((n + 1))]}@" - replacement="${params[$((n + 2))]}" - n=$((n + 2)) - fi - - if test ${#args[@]} != 0; then - args[${#args[@]}]="-a" - fi - args[${#args[@]}]="$pattern" - args[${#args[@]}]="$replacement" - done - - replace-literal -e -s -- "${args[@]}" < "$input" > "$output".tmp - if test -x "$output"; then - chmod +x "$output".tmp - fi - mv -f "$output".tmp "$output" -} - - -substituteInPlace() { - local fileName="$1" - shift - substitute "$fileName" "$fileName" "$@" -} - - -substituteAll() { - local input="$1" - local output="$2" - - # Select all environment variables that start with a lowercase character. - for envVar in $(env | sed "s/^[^a-z].*//" | sed "s/^\([^=]*\)=.*/\1/"); do - if test "$NIX_DEBUG" = "1"; then - echo "$envVar -> ${!envVar}" - fi - args="$args --subst-var $envVar" - done - - substitute "$input" "$output" $args -} - - -###################################################################### -# What follows is the generic builder. - - -nestingLevel=0 - -startNest() { - nestingLevel=$(($nestingLevel + 1)) - echo -en "\e[$1p" -} - -stopNest() { - nestingLevel=$(($nestingLevel - 1)) - echo -en "\e[q" -} - -header() { - startNest "$2" - echo "$1" -} - -# Make sure that even when we exit abnormally, the original nesting -# level is properly restored. -closeNest() { - while test $nestingLevel -gt 0; do - stopNest - done -} - - -# This function is useful for debugging broken Nix builds. It dumps -# all environment variables to a file `env-vars' in the build -# directory. If the build fails and the `-K' option is used, you can -# then go to the build directory and source in `env-vars' to reproduce -# the environment used for building. -dumpVars() { - if test "$noDumpEnvVars" != "1"; then - export > "$NIX_BUILD_TOP/env-vars" - fi -} - - -# Utility function: return the base name of the given path, with the -# prefix `HASH-' removed, if present. -stripHash() { - strippedName=$(basename $1); - if echo "$strippedName" | grep -q '^[a-z0-9]\{32\}-'; then - strippedName=$(echo "$strippedName" | cut -c34-) - fi -} - - -unpackFile() { - curSrc="$1" - local cmd - - header "unpacking source archive $curSrc" 3 - - case "$curSrc" in - *.tar) - tar xvf $curSrc - ;; - *.tar.gz | *.tgz | *.tar.Z) - gzip -d < $curSrc | tar xvf - - ;; - *.tar.bz2 | *.tbz2) - bzip2 -d < $curSrc | tar xvf - - ;; - *.zip) - unzip $curSrc - ;; - *) - if test -d "$curSrc"; then - stripHash $curSrc - cp -prvd $curSrc $strippedName - else - if test -z "$unpackCmd"; then - echo "source archive $curSrc has unknown type" - exit 1 - fi - runHook unpackCmd - fi - ;; - esac - - stopNest -} - - -unpackPhase() { - runHook preUnpack - - if test -z "$srcs"; then - if test -z "$src"; then - echo 'variable $src or $srcs should point to the source' - exit 1 - fi - srcs="$src" - fi - - # To determine the source directory created by unpacking the - # source archives, we record the contents of the current - # directory, then look below which directory got added. Yeah, - # it's rather hacky. - local dirsBefore="" - for i in *; do - if test -d "$i"; then - dirsBefore="$dirsBefore $i " - fi - done - - # Unpack all source archives. - for i in $srcs; do - unpackFile $i - done - - # Find the source directory. - if test -n "$setSourceRoot"; then - runHook setSourceRoot - elif test -z "$sourceRoot"; then - sourceRoot= - for i in *; do - if test -d "$i"; then - case $dirsBefore in - *\ $i\ *) - ;; - *) - if test -n "$sourceRoot"; then - echo "unpacker produced multiple directories" - exit 1 - fi - sourceRoot="$i" - ;; - esac - fi - done - fi - - if test -z "$sourceRoot"; then - echo "unpacker appears to have produced no directories" - exit 1 - fi - - echo "source root is $sourceRoot" - - # By default, add write permission to the sources. This is often - # necessary when sources have been copied from other store - # locations. - if test "$dontMakeSourcesWritable" != 1; then - chmod -R u+w "$sourceRoot" - fi - - runHook postUnpack -} - - -patchPhase() { - runHook prePatch - - if test -z "$patchPhase" -a -z "$patches"; then return; fi - - for i in $patches; do - header "applying patch $i" 3 - local uncompress=cat - case $i in - *.gz) - uncompress="gzip -d" - ;; - *.bz2) - uncompress="bzip2 -d" - ;; - esac - $uncompress < $i | patch ${patchFlags:--p1} - stopNest - done - - runHook postPatch -} - - -fixLibtool() { - sed -i -e 's^eval sys_lib_.*search_path=.*^^' "$1" -} - - -configurePhase() { - runHook preConfigure - - if test -z "$configureScript"; then - configureScript=./configure - if ! test -x $configureScript; then - echo "no configure script, doing nothing" - return - fi - fi - - if test -z "$dontFixLibtool"; then - for i in $(find . -name "ltmain.sh"); do - echo "fixing libtool script $i" - fixLibtool $i - done - fi - - if test -z "$dontAddPrefix"; then - configureFlags="${prefixKey:---prefix=}$prefix $configureFlags" - fi - - # Add --disable-dependency-tracking to speed up some builds. - if test -z "$dontAddDisableDepTrack"; then - if grep -q dependency-tracking $configureScript; then - configureFlags="--disable-dependency-tracking $configureFlags" - fi - fi - - # By default, disable static builds. - if test -z "$dontDisableStatic"; then - if grep -q enable-static $configureScript; then - configureFlags="--disable-static $configureFlags" - fi - fi - - echo "configure flags: $configureFlags ${configureFlagsArray[@]}" - $configureScript $configureFlags "${configureFlagsArray[@]}" - - runHook postConfigure -} - - -buildPhase() { - runHook preBuild - - if test -z "$makeFlags" && ! test -n "$makefile" -o -e "Makefile" -o -e "makefile" -o -e "GNUmakefile"; then - echo "no Makefile, doing nothing" - return - fi - - echo "make flags: $makeFlags ${makeFlagsArray[@]} $buildFlags ${buildFlagsArray[@]}" - make ${makefile:+-f $makefile} \ - $makeFlags "${makeFlagsArray[@]}" \ - $buildFlags "${buildFlagsArray[@]}" - - runHook postBuild -} - - -checkPhase() { - runHook preCheck - - echo "check flags: $makeFlags ${makeFlagsArray[@]} $checkFlags ${checkFlagsArray[@]}" - make ${makefile:+-f $makefile} \ - $makeFlags "${makeFlagsArray[@]}" \ - $checkFlags "${checkFlagsArray[@]}" ${checkTarget:-check} - - runHook postCheck -} - - -patchELF() { - # Patch all ELF executables and shared libraries. - header "patching ELF executables and libraries" - if test -e "$prefix"; then - find "$prefix" \( \ - \( -type f -a -name "*.so*" \) -o \ - \( -type f -a -perm +0100 \) \ - \) -print -exec patchelf --shrink-rpath {} \; - fi - stopNest -} - - -patchShebangs() { - # Rewrite all script interpreter file names (`#! /path') under the - # specified directory tree to paths found in $PATH. E.g., - # /bin/sh will be rewritten to /nix/store/-some-bash/bin/sh. - # Interpreters that are already in the store are left untouched. - header "patching script interpreter paths" - local dir="$1" - local f - for f in $(find "$dir" -type f -perm +0100); do - local oldPath=$(sed -ne '1 s,^#![ ]*\([^ ]*\).*$,\1,p' "$f") - if test -n "$oldPath" -a "${oldPath:0:${#NIX_STORE}}" != "$NIX_STORE"; then - local newPath=$(type -P $(basename $oldPath) || true) - if test -n "$newPath" -a "$newPath" != "$oldPath"; then - echo "$f: interpreter changed from $oldPath to $newPath" - sed -i -e "1 s,$oldPath,$newPath," "$f" - fi - fi - done - stopNest -} - - -installPhase() { - runHook preInstall - - ensureDir "$prefix" - - installTargets=${installTargets:-install} - echo "install flags: $installTargets $makeFlags ${makeFlagsArray[@]} $installFlags ${installFlagsArray[@]}" - make ${makefile:+-f $makefile} $installTargets \ - $makeFlags "${makeFlagsArray[@]}" \ - $installFlags "${installFlagsArray[@]}" - - runHook postInstall -} - - -# The fixup phase performs generic, package-independent, Nix-related -# stuff, like running patchelf and setting the -# propagated-build-inputs. It should rarely be overriden. -fixupPhase() { - runHook preFixup - - # Put man/doc/info under $out/share. - forceShare=${forceShare:=man doc info} - if test -n "$forceShare"; then - for d in $forceShare; do - if test -d "$prefix/$d"; then - if test -d "$prefix/share/$d"; then - echo "both $d/ and share/$d/ exists!" - else - echo "fixing location of $d/ subdirectory" - ensureDir $prefix/share - if test -w $prefix/share; then - mv -v $prefix/$d $prefix/share - ln -sv share/$d $prefix - fi - fi - fi - done; - fi - - # TODO: strip _only_ ELF executables, and return || fail here... - if test -z "$dontStrip"; then - stripDebugList=${stripDebugList:-lib lib64 libexec bin sbin} - if test -n "$stripDebugList"; then - stripDirs "$stripDebugList" "${stripDebugFlags:--S}" - fi - - stripAllList=${stripAllList:-} - if test -n "$stripAllList"; then - stripDirs "$stripAllList" "${stripAllFlags:--s}" - fi - fi - - if test "$havePatchELF" = 1 -a -z "$dontPatchELF"; then - patchELF "$prefix" - fi - - if test -z "$dontPatchShebangs"; then - patchShebangs "$prefix" - fi - - if test -n "$propagatedBuildInputs"; then - ensureDir "$out/nix-support" - echo "$propagatedBuildInputs" > "$out/nix-support/propagated-build-inputs" - fi - - if test -n "$setupHook"; then - ensureDir "$out/nix-support" - substituteAll "$setupHook" "$out/nix-support/setup-hook" - fi - - runHook postFixup -} - - -distPhase() { - runHook preDist - - echo "dist flags: $distFlags ${distFlagsArray[@]}" - make ${makefile:+-f $makefile} $distFlags "${distFlagsArray[@]}" ${distTarget:-dist} - - if test "$dontCopyDist" != 1; then - ensureDir "$out/tarballs" - - # Note: don't quote $tarballs, since we explicitly permit - # wildcards in there. - cp -pvd ${tarballs:-*.tar.gz} $out/tarballs - fi - - runHook postDist -} - - -showPhaseHeader() { - local phase="$1" - case $phase in - unpackPhase) header "unpacking sources";; - patchPhase) header "patching sources";; - configurePhase) header "configuring";; - buildPhase) header "building";; - checkPhase) header "running tests";; - installPhase) header "installing";; - fixupPhase) header "post-installation fixup";; - *) header "$phase";; - esac -} - - -genericBuild() { - header "building $out" - - if test -n "$buildCommand"; then - eval "$buildCommand" - return - fi - - if test -z "$phases"; then - phases="$prePhases unpackPhase patchPhase $preConfigurePhases \ - configurePhase $preBuildPhases buildPhase checkPhase \ - $preInstallPhases installPhase fixupPhase \ - $preDistPhases distPhase $postPhases"; - fi - - for curPhase in $phases; do - if test "$curPhase" = buildPhase -a -n "$dontBuild"; then continue; fi - if test "$curPhase" = checkPhase -a -z "$doCheck"; then continue; fi - if test "$curPhase" = installPhase -a -n "$dontInstall"; then continue; fi - if test "$curPhase" = fixupPhase -a -n "$dontFixup"; then continue; fi - if test "$curPhase" = distPhase -a -z "$doDist"; then continue; fi - - showPhaseHeader "$curPhase" - dumpVars - - # Evaluate the variable named $curPhase if it exists, otherwise the - # function named $curPhase. - eval "${!curPhase:-$curPhase}" - - if test "$curPhase" = unpackPhase; then - cd "${sourceRoot:-.}" - fi - - stopNest - done - - stopNest -} - - -# Execute the post-hook. -if test -n "@postHook@"; then source @postHook@; fi -runHook postHook - - -dumpVars diff --git a/pkgs/stdenv/generic/setup.sh b/pkgs/stdenv/generic/setup.sh index 372bff1eae1e..cadfeadc6dbe 100644 --- a/pkgs/stdenv/generic/setup.sh +++ b/pkgs/stdenv/generic/setup.sh @@ -19,8 +19,8 @@ exitHandler() { closeNest if test -n "$showBuildStats"; then - times > $NIX_BUILD_TOP/.times - local -a times=($(cat $NIX_BUILD_TOP/.times)) + times > "$NIX_BUILD_TOP/.times" + local -a times=($(cat "$NIX_BUILD_TOP/.times")) # Print the following statistics: # - user time for the shell # - system time for the shell @@ -371,7 +371,7 @@ closeNest() { # the environment used for building. dumpVars() { if test "$noDumpEnvVars" != "1"; then - export > $NIX_BUILD_TOP/env-vars + export > "$NIX_BUILD_TOP/env-vars" fi } @@ -482,7 +482,7 @@ unpackPhase() { # By default, add write permission to the sources. This is often # necessary when sources have been copied from other store # locations. - if test "dontMakeSourcesWritable" != 1; then + if test "$dontMakeSourcesWritable" != 1; then chmod -R u+w "$sourceRoot" fi diff --git a/pkgs/stdenv/linux/bootstrap/i686/bzip2 b/pkgs/stdenv/linux/bootstrap/i686/bzip2 index c4a9e6cb872f..6cd5273c3336 100755 Binary files a/pkgs/stdenv/linux/bootstrap/i686/bzip2 and b/pkgs/stdenv/linux/bootstrap/i686/bzip2 differ diff --git a/pkgs/stdenv/linux/bootstrap/i686/cpio b/pkgs/stdenv/linux/bootstrap/i686/cpio index 03f053ce65ee..387b67664f6c 100755 Binary files a/pkgs/stdenv/linux/bootstrap/i686/cpio and b/pkgs/stdenv/linux/bootstrap/i686/cpio differ diff --git a/pkgs/stdenv/linux/bootstrap/i686/curl.bz2 b/pkgs/stdenv/linux/bootstrap/i686/curl.bz2 index 394b0fb2b461..a6dd7502b5a3 100755 Binary files a/pkgs/stdenv/linux/bootstrap/i686/curl.bz2 and b/pkgs/stdenv/linux/bootstrap/i686/curl.bz2 differ diff --git a/pkgs/stdenv/linux/bootstrap/i686/default.nix b/pkgs/stdenv/linux/bootstrap/i686/default.nix index 4200bcb7ea6d..f83fa44360d9 100644 --- a/pkgs/stdenv/linux/bootstrap/i686/default.nix +++ b/pkgs/stdenv/linux/bootstrap/i686/default.nix @@ -7,7 +7,7 @@ curl = ./curl.bz2; bootstrapTools = { - url = http://nixos.org/tarballs/stdenv-linux/i686/r13932/bootstrap-tools.cpio.bz2; - sha256 = "12z35wnpcbjwczsr9fldp6bjpz7wh5qwylw6xfrr9l4s7gmk3m8a"; + url = http://nixos.org/tarballs/stdenv-linux/i686/r16022/bootstrap-tools.cpio.bz2; + sha256 = "1x014icv3dxfs55qzshxjs9gaczmhwlrn144p4314zvl4xz6wq3f"; }; } diff --git a/pkgs/stdenv/linux/bootstrap/i686/ln b/pkgs/stdenv/linux/bootstrap/i686/ln index dda29b4ea2b0..57ddcf8dcf73 100755 Binary files a/pkgs/stdenv/linux/bootstrap/i686/ln and b/pkgs/stdenv/linux/bootstrap/i686/ln differ diff --git a/pkgs/stdenv/linux/bootstrap/i686/mkdir b/pkgs/stdenv/linux/bootstrap/i686/mkdir index b3682da3cd23..18c35db0aff1 100755 Binary files a/pkgs/stdenv/linux/bootstrap/i686/mkdir and b/pkgs/stdenv/linux/bootstrap/i686/mkdir differ diff --git a/pkgs/stdenv/linux/bootstrap/i686/sh b/pkgs/stdenv/linux/bootstrap/i686/sh index b03bbf0cfcd7..13e681ed1a9e 100755 Binary files a/pkgs/stdenv/linux/bootstrap/i686/sh and b/pkgs/stdenv/linux/bootstrap/i686/sh differ diff --git a/pkgs/stdenv/linux/bootstrap/x86_64/default.nix b/pkgs/stdenv/linux/bootstrap/x86_64/default.nix index 30b30d9c498a..ffd23a866039 100644 --- a/pkgs/stdenv/linux/bootstrap/x86_64/default.nix +++ b/pkgs/stdenv/linux/bootstrap/x86_64/default.nix @@ -4,7 +4,7 @@ { bootstrapTools = { - url = http://nixos.org/tarballs/stdenv-linux/x86_64/r13932/bootstrap-tools.cpio.bz2; - sha256 = "135lx2945cxf43g9n39dxcamw6f6n8qp5iqbh4xma575rf2bx5js"; + url = http://nixos.org/tarballs/stdenv-linux/x86_64/r16022/bootstrap-tools.cpio.bz2; + sha256 = "1hwmyd9x9lhmb1ckwap2lvf7wi34p1j23v5bw41drym4mfp97ynz"; }; -} \ No newline at end of file +} diff --git a/pkgs/stdenv/linux/default.nix b/pkgs/stdenv/linux/default.nix index 90444a96d76c..b74258120b3c 100644 --- a/pkgs/stdenv/linux/default.nix +++ b/pkgs/stdenv/linux/default.nix @@ -77,7 +77,6 @@ rec { param1 = bootstrapTools; preHook = builtins.toFile "prehook.sh" '' - export LD_LIBRARY_PATH=$param1/lib # Don't patch #!/interpreter because it leads to retained # dependencies on the bootstrapTools in the final stdenv. dontPatchShebangs=1 diff --git a/pkgs/stdenv/linux/scripts/unpack-bootstrap-tools.sh b/pkgs/stdenv/linux/scripts/unpack-bootstrap-tools.sh index bb9c7071f3de..c1fa8582ed8a 100644 --- a/pkgs/stdenv/linux/scripts/unpack-bootstrap-tools.sh +++ b/pkgs/stdenv/linux/scripts/unpack-bootstrap-tools.sh @@ -16,7 +16,7 @@ for i in $out/bin/* $out/libexec/gcc/*/*/*; do echo patching $i if ! test -L $i; then LD_LIBRARY_PATH=$out/lib $out/lib/ld-linux*.so.2 \ - ./patchelf --set-interpreter $out/lib/ld-linux*.so.2 --set-rpath $out/lib $i + ./patchelf --set-interpreter $out/lib/ld-linux*.so.2 --set-rpath $out/lib --force-rpath $i fi done diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 1861ec710fce..9801a94ddb91 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -223,8 +223,6 @@ let overrideGCC overrideInStdenv overrideSetup useDietLibC useKlibc makeStaticBinaries; - stdenvNew = overrideSetup stdenv ../stdenv/generic/setup-new.sh; - ### BUILD SUPPORT @@ -277,8 +275,7 @@ let # from being built. fetchurl = useFromStdenv "fetchurl" (import ../build-support/fetchurl { - inherit curl; - stdenv = stdenvNew; + inherit curl stdenv; }); # fetchurlBoot is used for curl and its dependencies in order to @@ -3164,7 +3161,12 @@ let inherit fetchurl stdenv pkgconfig gettext; }; - glibc = useFromStdenv "glibc" glibc29; + glibc = useFromStdenv "glibc" (if getConfig ["brokenRedHatKernel"] false then glibc25 else glibc29); + + glibc25 = import ../development/libraries/glibc-2.5 { + inherit fetchurl stdenv kernelHeaders; + installLocales = getPkgConfig "glibc" "locales" false; + }; glibc27 = import ../development/libraries/glibc-2.7 { inherit fetchurl stdenv kernelHeaders; diff --git a/pkgs/top-level/release.nix b/pkgs/top-level/release.nix index 74a3b008b177..a688cb716abd 100644 --- a/pkgs/top-level/release.nix +++ b/pkgs/top-level/release.nix @@ -12,7 +12,7 @@ let prio = level: job: toJob job // { schedulingPriority = level; }; toJob = x: if builtins.isAttrs x then x else - { type = "job"; systems = x; schedulingPriority = 20; }; + { type = "job"; systems = x; schedulingPriority = 10; }; /* Perform a job on the given set of platforms. The function `f' is called by Hydra for each platform, and should return some job