summary refs log tree commit diff
path: root/pkgs/development
diff options
context:
space:
mode:
authorVladimír Čunát <vcunat@gmail.com>2013-02-21 12:41:13 +0100
committerVladimír Čunát <vcunat@gmail.com>2013-02-21 12:43:00 +0100
commit0d72174dbd7b3d8f01f7c369059854eee9d1346f (patch)
treecfb37fdbe02c3973f44d2b2428b0b8c4759d85d6 /pkgs/development
parent0cddd5787f834fab1dda943cf47d2f129c4d8499 (diff)
parentaacca1902cbb7117d978199323cf7bc1ffa4ee97 (diff)
Merge branch stdenv-updates into x-updates
x-updates is supposed to merge after stdenv-updates, so let's test it

Conflicts:
	pkgs/development/libraries/gtk+/2.x.nix (both updated, taking newer)
	pkgs/development/libraries/mesa/default.nix (taking nativeBuildInputs)
Diffstat (limited to 'pkgs/development')
-rw-r--r--pkgs/development/compilers/gcc-upc-4.0/builder.sh85
-rw-r--r--pkgs/development/compilers/gcc-upc-4.0/default.nix63
-rw-r--r--pkgs/development/compilers/gcc-upc-4.0/honor-cflags.patch20
-rw-r--r--pkgs/development/compilers/gcc-upc-4.0/no-sys-dirs.patch202
-rw-r--r--pkgs/development/compilers/gcc/2.95/builder.sh72
-rw-r--r--pkgs/development/compilers/gcc/2.95/default.nix17
-rw-r--r--pkgs/development/compilers/gcc/2.95/no-sys-dirs.patch231
-rw-r--r--pkgs/development/compilers/gcc/4.0/builder.sh85
-rw-r--r--pkgs/development/compilers/gcc/4.0/default.nix51
-rw-r--r--pkgs/development/compilers/gcc/4.0/no-sys-dirs.patch228
-rw-r--r--pkgs/development/compilers/gcc/4.1/builder.sh83
-rw-r--r--pkgs/development/compilers/gcc/4.1/default.nix71
-rw-r--r--pkgs/development/compilers/gcc/4.1/no-sys-dirs.patch177
-rw-r--r--pkgs/development/compilers/gcc/4.3/default.nix10
-rw-r--r--pkgs/development/compilers/gcc/4.3/siginfo_t_fix.patch174
-rw-r--r--pkgs/development/compilers/gcc/4.4/default.nix45
-rw-r--r--pkgs/development/compilers/gcc/4.4/siginfo_t_fix.patch174
-rw-r--r--pkgs/development/compilers/gcc/4.5/default.nix34
-rw-r--r--pkgs/development/compilers/gcc/4.6/builder.sh18
-rw-r--r--pkgs/development/compilers/gcc/4.6/default.nix192
-rw-r--r--pkgs/development/compilers/gcc/4.6/siginfo_t_fix.patch211
-rw-r--r--pkgs/development/compilers/gcc/4.7/builder.sh15
-rw-r--r--pkgs/development/compilers/gcc/4.7/default.nix211
-rw-r--r--pkgs/development/compilers/gnatboot/default.nix4
-rw-r--r--pkgs/development/compilers/go/default.nix8
-rw-r--r--pkgs/development/compilers/iasl/default.nix25
-rw-r--r--pkgs/development/compilers/mit-scheme/default.nix2
-rw-r--r--pkgs/development/compilers/tinycc/default.nix2
-rw-r--r--pkgs/development/compilers/vala/15.2.nix2
-rw-r--r--pkgs/development/compilers/vala/16.1.nix2
-rw-r--r--pkgs/development/compilers/vala/default.nix2
-rw-r--r--pkgs/development/interpreters/clisp/bits_ipctypes_to_sys_ipc.patch12
-rw-r--r--pkgs/development/interpreters/clisp/default.nix10
-rw-r--r--pkgs/development/interpreters/guile/1.8.nix4
-rw-r--r--pkgs/development/interpreters/guile/default.nix8
-rw-r--r--pkgs/development/interpreters/hiphopvm/default.nix4
-rw-r--r--pkgs/development/interpreters/octave/hg.nix2
-rw-r--r--pkgs/development/interpreters/perl/5.16/default.nix63
-rw-r--r--pkgs/development/interpreters/perl/5.16/no-libutil.patch12
-rw-r--r--pkgs/development/interpreters/perl/5.16/no-sys-dirs.patch152
-rw-r--r--pkgs/development/interpreters/perl/5.16/setup-hook.sh5
-rw-r--r--pkgs/development/libraries/GConf/3.x.nix2
-rw-r--r--pkgs/development/libraries/SDL/default.nix2
-rw-r--r--pkgs/development/libraries/acl/default.nix2
-rw-r--r--pkgs/development/libraries/aqbanking/default.nix2
-rw-r--r--pkgs/development/libraries/asc-support/default.nix2
-rw-r--r--pkgs/development/libraries/asf-support/default.nix2
-rw-r--r--pkgs/development/libraries/atk/default.nix2
-rw-r--r--pkgs/development/libraries/atkmm/2.22.x.nix2
-rw-r--r--pkgs/development/libraries/attica/default.nix2
-rw-r--r--pkgs/development/libraries/attr/default.nix2
-rw-r--r--pkgs/development/libraries/avahi/default.nix2
-rw-r--r--pkgs/development/libraries/boolstuff/default.nix2
-rw-r--r--pkgs/development/libraries/boost/1.44.nix6
-rw-r--r--pkgs/development/libraries/boost/1.47.nix10
-rw-r--r--pkgs/development/libraries/boost/1.49.nix12
-rw-r--r--pkgs/development/libraries/boost/1.53.nix10
-rw-r--r--pkgs/development/libraries/boost/time_utc.patch320
-rw-r--r--pkgs/development/libraries/c-library/default.nix2
-rw-r--r--pkgs/development/libraries/caelum/default.nix2
-rw-r--r--pkgs/development/libraries/cloog-ppl/default.nix2
-rw-r--r--pkgs/development/libraries/clucene-core/2.x.nix2
-rw-r--r--pkgs/development/libraries/clutter-gtk/0.10.8.nix2
-rw-r--r--pkgs/development/libraries/clutter-gtk/default.nix2
-rw-r--r--pkgs/development/libraries/clutter/default.nix2
-rw-r--r--pkgs/development/libraries/cogl/default.nix2
-rw-r--r--pkgs/development/libraries/config-support/default.nix2
-rw-r--r--pkgs/development/libraries/dbus-glib/default.nix2
-rw-r--r--pkgs/development/libraries/dbus/default.nix4
-rw-r--r--pkgs/development/libraries/directfb/default.nix2
-rw-r--r--pkgs/development/libraries/eigen/2.0.nix8
-rw-r--r--pkgs/development/libraries/eigen/default.nix2
-rw-r--r--pkgs/development/libraries/error-support/default.nix2
-rw-r--r--pkgs/development/libraries/farsight2/default.nix2
-rw-r--r--pkgs/development/libraries/farstream/default.nix2
-rw-r--r--pkgs/development/libraries/ffmpeg/default.nix4
-rw-r--r--pkgs/development/libraries/fltk/fltk13.nix2
-rw-r--r--pkgs/development/libraries/fmod/default.nix4
-rw-r--r--pkgs/development/libraries/funambol/default.nix2
-rw-r--r--pkgs/development/libraries/gamin/default.nix2
-rw-r--r--pkgs/development/libraries/gdk-pixbuf/default.nix2
-rw-r--r--pkgs/development/libraries/gegl/default.nix2
-rw-r--r--pkgs/development/libraries/gettext/default.nix4
-rw-r--r--pkgs/development/libraries/gettext/no-gets.patch42
-rw-r--r--pkgs/development/libraries/glib-networking/default.nix2
-rw-r--r--pkgs/development/libraries/glib/default.nix2
-rw-r--r--pkgs/development/libraries/glibc/2.13/common.nix19
-rw-r--r--pkgs/development/libraries/glibc/2.14/common.nix223
-rw-r--r--pkgs/development/libraries/glibc/2.14/dont_use_system_ld_so_cache.patch43
-rw-r--r--pkgs/development/libraries/glibc/2.14/info.nix26
-rw-r--r--pkgs/development/libraries/glibc/2.14/nss-skip-unavail.patch21
-rw-r--r--pkgs/development/libraries/glibc/2.14/rpcgen-path.patch72
-rw-r--r--pkgs/development/libraries/glibc/2.17/builder.sh (renamed from pkgs/development/libraries/glibc/2.14/builder.sh)0
-rw-r--r--pkgs/development/libraries/glibc/2.17/common.nix176
-rw-r--r--pkgs/development/libraries/glibc/2.17/default.nix (renamed from pkgs/development/libraries/glibc/2.14/default.nix)8
-rw-r--r--pkgs/development/libraries/glibc/2.17/dont-use-system-ld-so-cache.patch45
-rw-r--r--pkgs/development/libraries/glibc/2.17/glibc-crypt-blowfish.patch795
-rw-r--r--pkgs/development/libraries/glibc/2.17/glibc-elf-localscope.patch (renamed from pkgs/development/libraries/glibc/2.14/glibc-elf-localscope.patch)0
-rw-r--r--pkgs/development/libraries/glibc/2.17/info.nix26
-rw-r--r--pkgs/development/libraries/glibc/2.17/locales-builder.sh (renamed from pkgs/development/libraries/glibc/2.14/locales-builder.sh)0
-rw-r--r--pkgs/development/libraries/glibc/2.17/locales.nix (renamed from pkgs/development/libraries/glibc/2.14/locales.nix)0
-rw-r--r--pkgs/development/libraries/glibc/2.17/nix-locale-archive.patch (renamed from pkgs/development/libraries/glibc/2.14/nix-locale-archive.patch)48
-rw-r--r--pkgs/development/libraries/glibc/2.17/rpcgen-path.patch54
-rw-r--r--pkgs/development/libraries/glibc/2.5/binutils-ld.patch27
-rw-r--r--pkgs/development/libraries/glibc/2.5/builder.sh57
-rw-r--r--pkgs/development/libraries/glibc/2.5/default.nix40
-rw-r--r--pkgs/development/libraries/glibc/2.5/glibc-getcwd-param-MAX.patch14
-rw-r--r--pkgs/development/libraries/glibc/2.5/glibc-inline.patch1822
-rw-r--r--pkgs/development/libraries/glibc/2.5/glibc-pwd.patch74
-rw-r--r--pkgs/development/libraries/glibc/2.5/make-3-82-fix.patch14
-rw-r--r--pkgs/development/libraries/glibc/2.5/x86-fnstsw.patch32
-rw-r--r--pkgs/development/libraries/glibc/2.7/builder.sh60
-rw-r--r--pkgs/development/libraries/glibc/2.7/default.nix57
-rw-r--r--pkgs/development/libraries/glibc/2.7/nss-skip-unavail.patch25
-rw-r--r--pkgs/development/libraries/glibc/2.9/binutils-2.20.patch42
-rw-r--r--pkgs/development/libraries/glibc/2.9/binutils-ld.patch33
-rw-r--r--pkgs/development/libraries/glibc/2.9/builder.sh85
-rw-r--r--pkgs/development/libraries/glibc/2.9/default.nix103
-rw-r--r--pkgs/development/libraries/glibc/2.9/headers.nix63
-rw-r--r--pkgs/development/libraries/glibc/2.9/headersbuilder.sh38
-rw-r--r--pkgs/development/libraries/glibc/2.9/info.nix47
-rw-r--r--pkgs/development/libraries/glibc/2.9/locale-override.patch72
-rw-r--r--pkgs/development/libraries/glibc/2.9/locales.nix67
-rw-r--r--pkgs/development/libraries/glibc/2.9/localesbuilder.sh50
-rw-r--r--pkgs/development/libraries/glibc/2.9/nss-skip-unavail.patch25
-rw-r--r--pkgs/development/libraries/glibc/2.9/rpcgen-path.patch72
-rw-r--r--pkgs/development/libraries/glibmm/2.30.x.nix2
-rw-r--r--pkgs/development/libraries/gmp/4.3.2.nix2
-rw-r--r--pkgs/development/libraries/gmp/5.0.5.nix2
-rw-r--r--pkgs/development/libraries/gmp/5.1.1.nix54
-rw-r--r--pkgs/development/libraries/gnutls/default.nix2
-rw-r--r--pkgs/development/libraries/google-perftools/default.nix14
-rw-r--r--pkgs/development/libraries/gperftools/default.nix22
-rw-r--r--pkgs/development/libraries/gperftools/glibc-2.16.patch13
-rw-r--r--pkgs/development/libraries/gpgme/default.nix2
-rw-r--r--pkgs/development/libraries/gstreamer/gst-plugins-good/default.nix6
-rw-r--r--pkgs/development/libraries/gstreamer/gst-plugins-good/v4l.patch11
-rw-r--r--pkgs/development/libraries/gstreamer/qt-gstreamer/default.nix2
-rw-r--r--pkgs/development/libraries/gtk+/2.x.nix2
-rw-r--r--pkgs/development/libraries/gtk+/3.2.x.nix2
-rw-r--r--pkgs/development/libraries/gtkmm/2.24.x.nix2
-rw-r--r--pkgs/development/libraries/gtkmm/3.2.x.nix2
-rw-r--r--pkgs/development/libraries/gupnp-igd/default.nix2
-rw-r--r--pkgs/development/libraries/gupnp/default.nix2
-rw-r--r--pkgs/development/libraries/gwenhywfar/default.nix2
-rw-r--r--pkgs/development/libraries/haskell/cuda/default.nix2
-rw-r--r--pkgs/development/libraries/hspell/dicts.nix2
-rw-r--r--pkgs/development/libraries/hwloc/default.nix2
-rw-r--r--pkgs/development/libraries/ilbc/default.nix2
-rw-r--r--pkgs/development/libraries/imlib2/default.nix2
-rw-r--r--pkgs/development/libraries/itk/default.nix2
-rw-r--r--pkgs/development/libraries/jasper/default.nix2
-rw-r--r--pkgs/development/libraries/json-glib/default.nix2
-rw-r--r--pkgs/development/libraries/kdevplatform/default.nix2
-rw-r--r--pkgs/development/libraries/libbluray/default.nix2
-rw-r--r--pkgs/development/libraries/libcdr/default.nix2
-rw-r--r--pkgs/development/libraries/libchop/default.nix2
-rw-r--r--pkgs/development/libraries/libdbusmenu-qt/default.nix2
-rw-r--r--pkgs/development/libraries/libdevil/default.nix2
-rw-r--r--pkgs/development/libraries/libdiscid/default.nix2
-rw-r--r--pkgs/development/libraries/libdmtx/default.nix2
-rw-r--r--pkgs/development/libraries/libdrm/default.nix2
-rw-r--r--pkgs/development/libraries/libgnome-keyring/3.x.nix2
-rw-r--r--pkgs/development/libraries/libgnome-keyring/default.nix2
-rw-r--r--pkgs/development/libraries/libgphoto2/default.nix2
-rw-r--r--pkgs/development/libraries/libgpod/default.nix2
-rw-r--r--pkgs/development/libraries/libgsf/default.nix2
-rw-r--r--pkgs/development/libraries/libgtop/default.nix2
-rw-r--r--pkgs/development/libraries/libgweather/default.nix2
-rw-r--r--pkgs/development/libraries/libharu/default.nix2
-rw-r--r--pkgs/development/libraries/libical/default.nix2
-rw-r--r--pkgs/development/libraries/libidn/default.nix4
-rw-r--r--pkgs/development/libraries/libimobiledevice/default.nix2
-rw-r--r--pkgs/development/libraries/libktorrent/default.nix2
-rw-r--r--pkgs/development/libraries/liblastfm/default.nix2
-rw-r--r--pkgs/development/libraries/libmad/default.nix2
-rw-r--r--pkgs/development/libraries/libmms/default.nix2
-rw-r--r--pkgs/development/libraries/libmng/default.nix2
-rw-r--r--pkgs/development/libraries/libogg/default.nix2
-rw-r--r--pkgs/development/libraries/libopensc-dnie/default.nix4
-rw-r--r--pkgs/development/libraries/libpcap/default.nix2
-rw-r--r--pkgs/development/libraries/libplist/default.nix2
-rw-r--r--pkgs/development/libraries/libpng/12.nix2
-rw-r--r--pkgs/development/libraries/librdf/rasqal.nix2
-rw-r--r--pkgs/development/libraries/librdf/redland.nix2
-rw-r--r--pkgs/development/libraries/librsvg/default.nix2
-rw-r--r--pkgs/development/libraries/libsoup/default.nix2
-rw-r--r--pkgs/development/libraries/libssh/default.nix2
-rw-r--r--pkgs/development/libraries/libtasn1/default.nix4
-rw-r--r--pkgs/development/libraries/libtheora/default.nix2
-rw-r--r--pkgs/development/libraries/libvirt/default.nix4
-rw-r--r--pkgs/development/libraries/libvisio/default.nix2
-rw-r--r--pkgs/development/libraries/libvorbis/default.nix2
-rw-r--r--pkgs/development/libraries/libwpd/0.8.nix2
-rw-r--r--pkgs/development/libraries/libwpd/default.nix2
-rw-r--r--pkgs/development/libraries/libwpg/default.nix2
-rw-r--r--pkgs/development/libraries/libxcrypt/default.nix17
-rw-r--r--pkgs/development/libraries/libxcrypt/gcc46.patch18
-rw-r--r--pkgs/development/libraries/libxklavier/default.nix2
-rw-r--r--pkgs/development/libraries/lirc/default.nix6
-rw-r--r--pkgs/development/libraries/mediastreamer/default.nix2
-rw-r--r--pkgs/development/libraries/mesa/default.nix2
-rw-r--r--pkgs/development/libraries/mythes/default.nix2
-rw-r--r--pkgs/development/libraries/ncurses/default.nix2
-rw-r--r--pkgs/development/libraries/ntrack/default.nix2
-rw-r--r--pkgs/development/libraries/ogrepaged/default.nix2
-rw-r--r--pkgs/development/libraries/openbabel/default.nix2
-rw-r--r--pkgs/development/libraries/opencv/default.nix2
-rw-r--r--pkgs/development/libraries/openssl/darwin-arch.patch30
-rw-r--r--pkgs/development/libraries/openssl/default.nix15
-rw-r--r--pkgs/development/libraries/pango/default.nix2
-rw-r--r--pkgs/development/libraries/pangomm/2.28.x.nix2
-rw-r--r--pkgs/development/libraries/pcre/8.30.nix38
-rw-r--r--pkgs/development/libraries/pcre/8.31.nix38
-rw-r--r--pkgs/development/libraries/pcre/default.nix4
-rw-r--r--pkgs/development/libraries/pgen/default.nix2
-rw-r--r--pkgs/development/libraries/phonon-backend-gstreamer/default.nix2
-rw-r--r--pkgs/development/libraries/phonon-backend-vlc/default.nix2
-rw-r--r--pkgs/development/libraries/phonon/default.nix2
-rw-r--r--pkgs/development/libraries/physfs/default.nix2
-rw-r--r--pkgs/development/libraries/plib/default.nix2
-rw-r--r--pkgs/development/libraries/podofo/default.nix2
-rw-r--r--pkgs/development/libraries/polkit-qt-1/default.nix2
-rw-r--r--pkgs/development/libraries/poppler/default.nix2
-rw-r--r--pkgs/development/libraries/ppl/default.nix2
-rw-r--r--pkgs/development/libraries/prison/default.nix2
-rw-r--r--pkgs/development/libraries/pt-support/default.nix2
-rw-r--r--pkgs/development/libraries/ptable-support/default.nix2
-rw-r--r--pkgs/development/libraries/qca2/default.nix2
-rw-r--r--pkgs/development/libraries/qca2/ossl.nix2
-rw-r--r--pkgs/development/libraries/qhull/default.nix2
-rw-r--r--pkgs/development/libraries/qt-3/default.nix2
-rw-r--r--pkgs/development/libraries/qt-4.x/4.8/default.nix2
-rw-r--r--pkgs/development/libraries/rstore-support/default.nix2
-rw-r--r--pkgs/development/libraries/science/math/liblapack/default.nix2
-rw-r--r--pkgs/development/libraries/sdf-support/default.nix2
-rw-r--r--pkgs/development/libraries/sglr/default.nix2
-rw-r--r--pkgs/development/libraries/snappy/default.nix23
-rw-r--r--pkgs/development/libraries/sofia-sip/default.nix2
-rw-r--r--pkgs/development/libraries/soprano/default.nix2
-rw-r--r--pkgs/development/libraries/soqt/default.nix2
-rw-r--r--pkgs/development/libraries/spice/default.nix2
-rw-r--r--pkgs/development/libraries/sqlite/full.nix2
-rw-r--r--pkgs/development/libraries/strigi/default.nix2
-rw-r--r--pkgs/development/libraries/taglib-extras/default.nix2
-rw-r--r--pkgs/development/libraries/taglib/default.nix2
-rw-r--r--pkgs/development/libraries/telepathy/farstream/default.nix2
-rw-r--r--pkgs/development/libraries/telepathy/qt/default.nix2
-rw-r--r--pkgs/development/libraries/tide-support/default.nix2
-rw-r--r--pkgs/development/libraries/tokyo-tyrant/default.nix2
-rw-r--r--pkgs/development/libraries/toolbuslib/default.nix2
-rw-r--r--pkgs/development/libraries/tremor/default.nix2
-rw-r--r--pkgs/development/libraries/v8/default.nix2
-rw-r--r--pkgs/development/libraries/vcdimager/default.nix2
-rw-r--r--pkgs/development/libraries/vxl/default.nix5
-rw-r--r--pkgs/development/libraries/wxGTK-2.8/default.nix2
-rw-r--r--pkgs/development/libraries/wxGTK-2.9/default.nix2
-rw-r--r--pkgs/development/libraries/xine-lib/default.nix2
-rw-r--r--pkgs/development/libraries/zlib/default.nix2
-rw-r--r--pkgs/development/mobile/androidenv/build-app.nix2
-rw-r--r--pkgs/development/perl-modules/Compress-Raw-Zlib/default.nix1
-rw-r--r--pkgs/development/perl-modules/generic/builder.sh4
-rw-r--r--pkgs/development/python-modules/generic/default.nix13
-rw-r--r--pkgs/development/python-modules/generic/wrap.sh2
-rw-r--r--pkgs/development/python-modules/python-sip/default.nix5
-rw-r--r--pkgs/development/tools/analysis/valgrind/default.nix4
-rw-r--r--pkgs/development/tools/analysis/valgrind/glibc-2.17.patch78
-rwxr-xr-xpkgs/development/tools/build-managers/cmake/setup-hook.sh2
-rw-r--r--pkgs/development/tools/documentation/doxygen/1.7.nix2
-rw-r--r--pkgs/development/tools/documentation/doxygen/default.nix2
-rw-r--r--pkgs/development/tools/documentation/gnome-doc-utils/default.nix2
-rw-r--r--pkgs/development/tools/haskell/BNFC/default.nix4
-rw-r--r--pkgs/development/tools/misc/automake/automake-1.11.x.nix4
-rw-r--r--pkgs/development/tools/misc/automake/automake-1.12.x.nix6
-rw-r--r--pkgs/development/tools/misc/binutils/default.nix9
-rw-r--r--pkgs/development/tools/misc/binutils/dtneeded.patch12
-rw-r--r--pkgs/development/tools/misc/cscope/default.nix4
-rw-r--r--pkgs/development/tools/misc/elfutils/default.nix4
-rw-r--r--pkgs/development/tools/misc/gdb/default.nix10
-rw-r--r--pkgs/development/tools/misc/gnum4/default.nix2
-rw-r--r--pkgs/development/tools/misc/gnum4/no-gets.patch26
-rw-r--r--pkgs/development/tools/misc/libtool/libtool2.nix2
-rw-r--r--pkgs/development/tools/misc/strace/default.nix2
-rw-r--r--pkgs/development/tools/misc/texinfo/4.13a.nix (renamed from pkgs/development/tools/misc/texinfo/default.nix)2
-rw-r--r--pkgs/development/tools/misc/texinfo/5.0.nix36
-rw-r--r--pkgs/development/tools/misc/xxdiff/default.nix2
-rw-r--r--pkgs/development/tools/parsing/bison/bison-1.875.nix13
-rw-r--r--pkgs/development/tools/parsing/bison/bison-2.3.nix38
-rw-r--r--pkgs/development/tools/parsing/bison/bison-2.4.nix40
-rw-r--r--pkgs/development/tools/parsing/bison/bison-2.5.nix44
-rw-r--r--pkgs/development/tools/parsing/bison/default.nix (renamed from pkgs/development/tools/parsing/bison/bison-2.6.nix)6
-rw-r--r--pkgs/development/tools/parsing/flex/flex-2.5.35.nix2
-rw-r--r--pkgs/development/tools/phantomjs/default.nix2
-rw-r--r--pkgs/development/web/nodejs/build-node-package.nix2
294 files changed, 3208 insertions, 5492 deletions
diff --git a/pkgs/development/compilers/gcc-upc-4.0/builder.sh b/pkgs/development/compilers/gcc-upc-4.0/builder.sh
deleted file mode 100644
index 08622c1899ed3..0000000000000
--- a/pkgs/development/compilers/gcc-upc-4.0/builder.sh
+++ /dev/null
@@ -1,85 +0,0 @@
-source $stdenv/setup
-
-
-export NIX_FIXINC_DUMMY=$NIX_BUILD_TOP/dummy
-mkdir $NIX_FIXINC_DUMMY
-
-
-# libstdc++ needs this; otherwise it will use /lib/cpp, which is a Bad
-# Thing.
-export CPP="gcc -E"
-export CXXCPP="gcc -E"
-
-
-if test "$noSysDirs" = "1"; then
-
-    if test -e $NIX_GCC/nix-support/orig-libc; then
-
-        # Figure out what extra flags to pass to the gcc compilers
-        # being generated to make sure that they use our glibc.
-        extraCFlags="$(cat $NIX_GCC/nix-support/libc-cflags)"
-        extraLDFlags="$(cat $NIX_GCC/nix-support/libc-ldflags) $(cat $NIX_GCC/nix-support/libc-ldflags-before)"
-
-        # Use *real* header files, otherwise a limits.h is generated
-        # that does not include Glibc's limits.h (notably missing
-        # SSIZE_MAX, which breaks the build).
-        export NIX_FIXINC_DUMMY=$(cat $NIX_GCC/nix-support/orig-libc)/include
-        
-    else
-        # Hack: support impure environments.
-        extraCFlags="-isystem /usr/include"
-        extraLDFlags="-L/usr/lib64 -L/usr/lib"
-        export NIX_FIXINC_DUMMY=/usr/include
-    fi
-
-    extraCFlags="-g0 $extraCFlags"
-    extraLDFlags="--strip-debug $extraLDFlags"
-
-    export NIX_EXTRA_CFLAGS=$extraCFlags
-    for i in $extraLDFlags; do
-        export NIX_EXTRA_LDFLAGS="$NIX_EXTRA_LDFLAGS -Wl,$i"
-    done
-
-    export CFLAGS=$extraCFlags
-    export CXXFLAGS=$extraCFlags
-    
-    makeFlagsArray=( \
-        NATIVE_SYSTEM_HEADER_DIR="$NIX_FIXINC_DUMMY" \
-        SYSTEM_HEADER_DIR="$NIX_FIXINC_DUMMY" \
-        LIMITS_H_TEST=true \
-        X_CFLAGS="$NIX_EXTRA_CFLAGS $NIX_EXTRA_LDFLAGS" \
-        LDFLAGS="$NIX_EXTRA_CFLAGS $NIX_EXTRA_LDFLAGS" \
-        LDFLAGS_FOR_TARGET="$NIX_EXTRA_CFLAGS $NIX_EXTRA_LDFLAGS" \
-        )
-fi
-
-
-preConfigure() {
-    # Perform the build in a different directory.
-    mkdir ../build
-    cd ../build
-    configureScript=../$sourceRoot/configure
-}
-
-
-postInstall() {
-    # Remove precompiled headers for now.  They are very big and
-    # probably not very useful yet.
-    find $out/include -name "*.gch" -exec rm -rf {} \; -prune
-
-    # Remove `fixincl' to prevent a retained dependency on the
-    # previous gcc.
-    rm -rf $out/libexec/gcc/*/*/install-tools
-
-    # Get rid of some "fixed" header files
-    rm -rf $out/lib/gcc/*/*/include/root
-}
-
-
-if test -z "$profiledCompiler"; then
-    buildFlags="bootstrap"
-else    
-    buildFlags="profiledbootstrap"
-fi
-
-genericBuild
diff --git a/pkgs/development/compilers/gcc-upc-4.0/default.nix b/pkgs/development/compilers/gcc-upc-4.0/default.nix
deleted file mode 100644
index b3b458aae1fac..0000000000000
--- a/pkgs/development/compilers/gcc-upc-4.0/default.nix
+++ /dev/null
@@ -1,63 +0,0 @@
-# Nix expression for GCC-UPC 4.0, based on that of GCC 4.0.
-
-{ stdenv, fetchurl, noSysDirs, bison, autoconf, gnum4
-, profiledCompiler ? false
-, gmp ? null , mpfr ? null
-, texinfo ? null
-}:
-
-with stdenv.lib;
-
-# GCC-UPC apparently doesn't support GCov and friends.
-assert profiledCompiler == false;
-
-stdenv.mkDerivation {
-  name = "gcc-upc-4.0.3.5";
-  
-  builder = ../gcc/4.0/builder.sh;
-  
-  src = fetchurl {
-    url = "ftp://ftp.intrepid.com/pub/upc/rls/upc-4.0.3.5/upc-4.0.3.5.src.tar.gz";
-    sha256 = "0afnz1bz0kknhl18205bbwncyza08983ivfaagj5yl7x3nwy7prv";
-  };
-  
-  patches = [ ./honor-cflags.patch ]
-    ++ optional noSysDirs [ ./no-sys-dirs.patch ];
-    
-  inherit noSysDirs profiledCompiler;
-
-  # Attributes used by `wrapGCC'.
-  langC   = true ;
-  langCC  = false;
-  langF77 = false;
-  langUPC = true;    # unused
-
-  buildInputs =
-    [ gmp mpfr texinfo
-      # Bison is needed to build the parsers.
-      bison
-      # For some reason, `autoheader' and `m4' are needed.
-      autoconf gnum4
-    ];
-
-  # Note: We use `--enable-maintainer-mode' so that `bison' is actually
-  # run when needed.
-  configureFlags = "
-    --disable-multilib
-    --disable-libstdcxx-pch
-    --disable-libmudflap
-    --with-system-zlib
-    ${if stdenv.isi686 then "--with-arch=i686" else ""}
-    --enable-maintainer-mode
-  ";
-
-  meta = {
-    homepage = http://www.intrepid.com/upc.html;
-    license = "GPL/LGPL";
-    longDscription = ''
-      A GCC-based compiler for the Unified Parallel C (UPC) language,
-      a distributed shared memory aware variant of C (see
-      http://upc.gwu.edu/).
-    '';
-  };
-}
diff --git a/pkgs/development/compilers/gcc-upc-4.0/honor-cflags.patch b/pkgs/development/compilers/gcc-upc-4.0/honor-cflags.patch
deleted file mode 100644
index 9862884551185..0000000000000
--- a/pkgs/development/compilers/gcc-upc-4.0/honor-cflags.patch
+++ /dev/null
@@ -1,20 +0,0 @@
---- upc-4.0.3.5/gcc/upc/Make-lang.in	2008-03-03 18:56:13.000000000 +0100
-+++ upc-4.0.3.5/gcc/upc/Make-lang.in	2008-03-03 18:57:27.000000000 +0100
-@@ -70,7 +70,7 @@ xupc$(exeext): $(srcdir)/upc/upc-cmd.c M
- 	    "-DLIB_PATH=\"$${libdir}\"" \
- 	    "-DINC_PATH=\"$${incdir}\"" \
- 	    -c $(srcdir)/upc/upc-cmd.c -o xupc-tmp.o
--	$(CC) xupc-tmp.o -o xupc$(exeext) $(LIBS)
-+	$(CC) xupc-tmp.o $(ALL_CFLAGS) $(LDFLAGS) -o xupc$(exeext) $(LIBS)
- 	rm -f xupc-tmp.o
- 
- upc-cmd$(exeext): $(srcdir)/upc/upc-cmd.c Makefile cc1upc$(exeext) $(LIBDEPS)
-@@ -80,7 +80,7 @@ upc-cmd$(exeext): $(srcdir)/upc/upc-cmd.
- 	    "-DCOMPILER=\"gcc\"" \
- 	    "-DBIN_PATH=\"$(bindir)\"" \
- 	    -c $(srcdir)/upc/upc-cmd.c -o upc-cmd-tmp.o
--	$(CC) upc-cmd-tmp.o -o upc-cmd$(exeext) $(LIBS)
-+	$(CC) upc-cmd-tmp.o $(ALL_CFLAGS) $(LDFLAGS) -o upc-cmd$(exeext) $(LIBS)
- 	rm -f upc-cmd-tmp.o
- 
- # UPC language specific files.
diff --git a/pkgs/development/compilers/gcc-upc-4.0/no-sys-dirs.patch b/pkgs/development/compilers/gcc-upc-4.0/no-sys-dirs.patch
deleted file mode 100644
index dcac5342637aa..0000000000000
--- a/pkgs/development/compilers/gcc-upc-4.0/no-sys-dirs.patch
+++ /dev/null
@@ -1,202 +0,0 @@
-diff -rc gcc-4.0.0-orig/gcc/cppdefault.c gcc-4.0.0/gcc/cppdefault.c
-*** gcc-4.0.0-orig/gcc/cppdefault.c	2004-11-03 04:23:49.000000000 +0100
---- gcc-4.0.0/gcc/cppdefault.c	2005-04-22 09:53:28.000000000 +0200
-***************
-*** 41,46 ****
---- 41,50 ----
-  # undef CROSS_INCLUDE_DIR
-  #endif
-  
-+ #undef LOCAL_INCLUDE_DIR
-+ #undef SYSTEM_INCLUDE_DIR
-+ #undef STANDARD_INCLUDE_DIR
-+ 
-  const struct default_include cpp_include_defaults[]
-  #ifdef INCLUDE_DEFAULTS
-  = INCLUDE_DEFAULTS;
-diff -rc gcc-4.0.0-orig/gcc/Makefile.in gcc-4.0.0/gcc/Makefile.in
-*** gcc-4.0.0-orig/gcc/Makefile.in	2005-04-04 21:45:13.000000000 +0200
---- gcc-4.0.0/gcc/Makefile.in	2005-04-22 10:38:50.000000000 +0200
-***************
-*** 213,219 ****
-  CPPFLAGS = @CPPFLAGS@
-  
-  # These exists to be overridden by the x-* and t-* files, respectively.
-! X_CFLAGS =
-  T_CFLAGS =
-  
-  X_CPPFLAGS =
---- 213,219 ----
-  CPPFLAGS = @CPPFLAGS@
-  
-  # These exists to be overridden by the x-* and t-* files, respectively.
-! X_CFLAGS = $(NIX_EXTRA_CFLAGS) $(NIX_EXTRA_LDFLAGS)
-  T_CFLAGS =
-  
-  X_CPPFLAGS =
-***************
-*** 373,379 ****
-  MD5_H	    = $(srcdir)/../include/md5.h
-  
-  # Default native SYSTEM_HEADER_DIR, to be overridden by targets.
-! NATIVE_SYSTEM_HEADER_DIR = /usr/include
-  # Default cross SYSTEM_HEADER_DIR, to be overridden by targets.
-  CROSS_SYSTEM_HEADER_DIR = @CROSS_SYSTEM_HEADER_DIR@
-  
---- 373,383 ----
-  MD5_H	    = $(srcdir)/../include/md5.h
-  
-  # Default native SYSTEM_HEADER_DIR, to be overridden by targets.
-! # Nix: we override NATIVE_SYSTEM_HEADER_DIR in order to prevent
-! # `fixinc' from fixing header files in /usr/include.  However,
-! # NATIVE_SYSTEM_HEADER_DIR must point to an existing directory, so set
-! # it to some dummy directory.
-! NATIVE_SYSTEM_HEADER_DIR = $(NIX_FIXINC_DUMMY)
-  # Default cross SYSTEM_HEADER_DIR, to be overridden by targets.
-  CROSS_SYSTEM_HEADER_DIR = @CROSS_SYSTEM_HEADER_DIR@
-  
-***************
-*** 385,391 ****
-  STMP_FIXINC = @STMP_FIXINC@
-  
-  # Test to see whether <limits.h> exists in the system header files.
-! LIMITS_H_TEST = [ -f $(SYSTEM_HEADER_DIR)/limits.h ]
-  
-  # Directory for prefix to system directories, for
-  # each of $(system_prefix)/usr/include, $(system_prefix)/usr/lib, etc.
---- 389,395 ----
-  STMP_FIXINC = @STMP_FIXINC@
-  
-  # Test to see whether <limits.h> exists in the system header files.
-! LIMITS_H_TEST = true
-  
-  # Directory for prefix to system directories, for
-  # each of $(system_prefix)/usr/include, $(system_prefix)/usr/lib, etc.
-***************
-*** 2677,2683 ****
-    -DGPLUSPLUS_INCLUDE_DIR=\"$(gcc_gxx_include_dir)\" \
-    -DGPLUSPLUS_TOOL_INCLUDE_DIR=\"$(gcc_gxx_include_dir)/$(target_noncanonical)\" \
-    -DGPLUSPLUS_BACKWARD_INCLUDE_DIR=\"$(gcc_gxx_include_dir)/backward\" \
-!   -DLOCAL_INCLUDE_DIR=\"$(local_includedir)\" \
-    -DCROSS_INCLUDE_DIR=\"$(CROSS_SYSTEM_HEADER_DIR)\" \
-    -DTOOL_INCLUDE_DIR=\"$(gcc_tooldir)/include\" \
-    @TARGET_SYSTEM_ROOT_DEFINE@
---- 2681,2687 ----
-    -DGPLUSPLUS_INCLUDE_DIR=\"$(gcc_gxx_include_dir)\" \
-    -DGPLUSPLUS_TOOL_INCLUDE_DIR=\"$(gcc_gxx_include_dir)/$(target_noncanonical)\" \
-    -DGPLUSPLUS_BACKWARD_INCLUDE_DIR=\"$(gcc_gxx_include_dir)/backward\" \
-!   -DLOCAL_INCLUDE_DIR=\"/no-such-dir\" \
-    -DCROSS_INCLUDE_DIR=\"$(CROSS_SYSTEM_HEADER_DIR)\" \
-    -DTOOL_INCLUDE_DIR=\"$(gcc_tooldir)/include\" \
-    @TARGET_SYSTEM_ROOT_DEFINE@
-diff -rc gcc-4.0.0-orig/ltcf-cxx.sh gcc-4.0.0/ltcf-cxx.sh
-*** gcc-4.0.0-orig/ltcf-cxx.sh	2004-10-02 18:33:06.000000000 +0200
---- gcc-4.0.0/ltcf-cxx.sh	2005-04-22 09:53:28.000000000 +0200
-***************
-*** 988,994 ****
-    # the conftest object file.
-    pre_test_object_deps_done=no
-  
-!   for p in `eval $output_verbose_link_cmd`; do
-  
-      case $p in
-  
---- 988,994 ----
-    # the conftest object file.
-    pre_test_object_deps_done=no
-  
-!   for p in `true`; do
-  
-      case $p in
-  
-Only in gcc-4.0.0: ltcf-cxx.sh.orig
-diff -rc gcc-4.0.0-orig/ltconfig gcc-4.0.0/ltconfig
-*** gcc-4.0.0-orig/ltconfig	2004-10-02 18:33:06.000000000 +0200
---- gcc-4.0.0/ltconfig	2005-04-22 13:33:33.000000000 +0200
-***************
-*** 2321,2326 ****
---- 2321,2331 ----
-  # A language-specific compiler.
-  CC=$CC
-  
-+ # Ugly hack to get libmudflap (and possibly other libraries) to build.
-+ # Libtool filters out \`-B' flags when linking (why?), so the \`-B' flag
-+ # to Glibc gets lost.  Here we forcibly add it to any invocation.
-+ CC="\$CC $NIX_EXTRA_LDFLAGS"
-+ 
-  # Is the compiler the GNU C compiler?
-  with_gcc=$with_gcc
-  
-Only in gcc-4.0.0: ltconfig~
-diff -rc gcc-4.0.0-orig/Makefile.in gcc-4.0.0/Makefile.in
-*** gcc-4.0.0-orig/Makefile.in	2005-04-21 09:04:10.000000000 +0200
---- gcc-4.0.0/Makefile.in	2005-04-22 09:53:28.000000000 +0200
-***************
-*** 336,342 ****
-  NM = @NM@
-  
-  LD = @LD@
-! LDFLAGS = 
-  
-  RANLIB = @RANLIB@
-  
---- 336,342 ----
-  NM = @NM@
-  
-  LD = @LD@
-! LDFLAGS = $(NIX_EXTRA_LDFLAGS)
-  
-  RANLIB = @RANLIB@
-  
-***************
-*** 387,393 ****
-  # CFLAGS will be just -g.  We want to ensure that TARGET libraries
-  # (which we know are built with gcc) are built with optimizations so
-  # prepend -O2 when setting CFLAGS_FOR_TARGET.
-! CFLAGS_FOR_TARGET = -O2 $(CFLAGS)
-  # If GCC_FOR_TARGET is not overriden on the command line, then this
-  # variable is passed down to the gcc Makefile, where it is used to
-  # build libgcc2.a.  We define it here so that it can itself be
---- 387,393 ----
-  # CFLAGS will be just -g.  We want to ensure that TARGET libraries
-  # (which we know are built with gcc) are built with optimizations so
-  # prepend -O2 when setting CFLAGS_FOR_TARGET.
-! CFLAGS_FOR_TARGET = -O2 $(CFLAGS) $(NIX_EXTRA_CFLAGS)
-  # If GCC_FOR_TARGET is not overriden on the command line, then this
-  # variable is passed down to the gcc Makefile, where it is used to
-  # build libgcc2.a.  We define it here so that it can itself be
-***************
-*** 400,406 ****
-  RAW_CXX_FOR_TARGET = @RAW_CXX_FOR_TARGET@
-  CXX_FOR_TARGET_FOR_RECURSIVE_MAKE = @CXX_FOR_TARGET_FOR_RECURSIVE_MAKE@
-  RAW_CXX_FOR_TARGET_FOR_RECURSIVE_MAKE = @RAW_CXX_FOR_TARGET_FOR_RECURSIVE_MAKE@
-! CXXFLAGS_FOR_TARGET = $(CXXFLAGS)
-  LIBCXXFLAGS_FOR_TARGET = $(CXXFLAGS_FOR_TARGET) -fno-implicit-templates
-  
-  DLLTOOL_FOR_TARGET=@DLLTOOL_FOR_TARGET@
---- 400,406 ----
-  RAW_CXX_FOR_TARGET = @RAW_CXX_FOR_TARGET@
-  CXX_FOR_TARGET_FOR_RECURSIVE_MAKE = @CXX_FOR_TARGET_FOR_RECURSIVE_MAKE@
-  RAW_CXX_FOR_TARGET_FOR_RECURSIVE_MAKE = @RAW_CXX_FOR_TARGET_FOR_RECURSIVE_MAKE@
-! CXXFLAGS_FOR_TARGET = $(CXXFLAGS) $(NIX_EXTRA_CFLAGS)
-  LIBCXXFLAGS_FOR_TARGET = $(CXXFLAGS_FOR_TARGET) -fno-implicit-templates
-  
-  DLLTOOL_FOR_TARGET=@DLLTOOL_FOR_TARGET@
-***************
-*** 434,440 ****
-      fi; \
-    fi`
-  
-! LDFLAGS_FOR_TARGET = 
-  
-  NM_FOR_TARGET=@NM_FOR_TARGET@
-  CONFIGURED_NM_FOR_TARGET=@CONFIGURED_NM_FOR_TARGET@
---- 434,440 ----
-      fi; \
-    fi`
-  
-! LDFLAGS_FOR_TARGET = $(NIX_EXTRA_LDFLAGS)
-  
-  NM_FOR_TARGET=@NM_FOR_TARGET@
-  CONFIGURED_NM_FOR_TARGET=@CONFIGURED_NM_FOR_TARGET@
-Only in gcc-4.0.0: Makefile.in.orig
diff --git a/pkgs/development/compilers/gcc/2.95/builder.sh b/pkgs/development/compilers/gcc/2.95/builder.sh
deleted file mode 100644
index 5244d986da088..0000000000000
--- a/pkgs/development/compilers/gcc/2.95/builder.sh
+++ /dev/null
@@ -1,72 +0,0 @@
-source $stdenv/setup
-
-
-export NIX_FIXINC_DUMMY=$NIX_BUILD_TOP/dummy
-mkdir $NIX_FIXINC_DUMMY
-
-
-if test "$noSysDirs" = "1"; then
-
-    if test "$noSysDirs" = "1"; then
-        # Figure out what extra flags to pass to the gcc compilers
-        # being generated to make sure that they use our glibc.
-        if test -e $NIX_GCC/nix-support/orig-glibc; then
-            glibc=$(cat $NIX_GCC/nix-support/orig-glibc)
-            # Ugh.  Copied from gcc-wrapper/builder.sh.  We can't just
-            # source in $NIX_GCC/nix-support/add-flags, since that
-            # would cause *this* GCC to be linked against the
-            # *previous* GCC.  Need some more modularity there.
-            extraCFlags="-B$glibc/lib -isystem $glibc/include"
-            extraLDFlags="-B$glibc/lib -L$glibc/lib -Wl,-s \
-              -Wl,-dynamic-linker,$glibc/lib/ld-linux.so.2"
-
-            # Oh, what a hack.  I should be shot for this.
-            # In stage 1, we should link against the previous GCC, but
-            # not afterwards.  Otherwise we retain a dependency.
-            # However, ld-wrapper, which adds the linker flags for the
-            # previous GCC, is also used in stage 2/3.  We can prevent
-            # it from adding them by NIX_GLIBC_FLAGS_SET, but then
-            # gcc-wrapper will also not add them, thereby causing
-            # stage 1 to fail.  So we use a trick to only set the
-            # flags in gcc-wrapper.
-            hook=$(pwd)/ld-wrapper-hook
-            echo "NIX_GLIBC_FLAGS_SET=1" > $hook
-            export NIX_LD_WRAPPER_START_HOOK=$hook
-        fi
-
-        export NIX_EXTRA_CFLAGS=$extraCFlags
-        export NIX_EXTRA_LDFLAGS=$extraLDFlags
-        export CFLAGS=$extraCFlags
-        export CXXFLAGS=$extraCFlags
-        export LDFLAGS=$extraLDFlags
-        export BOOT_LDFLAGS=$extraLDFlags
-    fi
-
-else
-    patches=""
-fi
-
-
-preConfigure() {
-    
-    # Determine the frontends to build.
-    langs="c"
-    if test -n "$langCC"; then
-        langs="$langs,c++"
-    fi
-    if test -n "$langF77"; then
-        langs="$langs,f77"
-    fi
-
-    # Perform the build in a different directory.
-    mkdir ../build
-    cd ../build
-
-    configureScript=../$sourceRoot/configure
-    configureFlags="--enable-languages=$langs"
-}
-
-
-buildFlags="bootstrap"
-
-genericBuild
diff --git a/pkgs/development/compilers/gcc/2.95/default.nix b/pkgs/development/compilers/gcc/2.95/default.nix
deleted file mode 100644
index d1f20dd230ffb..0000000000000
--- a/pkgs/development/compilers/gcc/2.95/default.nix
+++ /dev/null
@@ -1,17 +0,0 @@
-{ stdenv, fetchurl, noSysDirs
-, langC ? true, langCC ? true, langF77 ? false
-}:
-
-assert langC;
-
-stdenv.mkDerivation {
-  name = "gcc-2.95.3";
-  builder = ./builder.sh;
-  src = fetchurl {
-    url = mirror://gnu/gcc/gcc-2.95.3.tar.gz;
-    md5 = "f3ad4f32c2296fad758ed051b5ac8e28";
-  };
-  # !!! apply only if noSysDirs is set
-  patches = [./no-sys-dirs.patch];
-  inherit noSysDirs langC langCC langF77;
-}
diff --git a/pkgs/development/compilers/gcc/2.95/no-sys-dirs.patch b/pkgs/development/compilers/gcc/2.95/no-sys-dirs.patch
deleted file mode 100644
index 886b7cb37c3cd..0000000000000
--- a/pkgs/development/compilers/gcc/2.95/no-sys-dirs.patch
+++ /dev/null
@@ -1,231 +0,0 @@
-diff -rc gcc-orig/config.if gcc-2.95.3/config.if
-*** gcc-orig/config.if	1998-10-18 19:37:10.000000000 +0200
---- gcc-2.95.3/config.if	2004-08-03 12:29:32.000000000 +0200
-***************
-*** 64,70 ****
-    return 0;
-  }
-  EOF
-!       ${CC-cc} $dummy.c -o $dummy 2>/dev/null
-        if [ "$?" = 0 ]
-        then
-  	libc_interface=-libc6.`./$dummy`-
---- 64,70 ----
-    return 0;
-  }
-  EOF
-!       ${CC-cc} $NIX_EXTRA_CFLAGS $NIX_EXTRA_LDFLAGS $dummy.c -o $dummy 2>/dev/null
-        if [ "$?" = 0 ]
-        then
-  	libc_interface=-libc6.`./$dummy`-
-diff -rc gcc-orig/gcc/cccp.c gcc-2.95.3/gcc/cccp.c
-*** gcc-orig/gcc/cccp.c	2001-01-25 15:03:00.000000000 +0100
---- gcc-2.95.3/gcc/cccp.c	2004-08-03 10:54:39.000000000 +0200
-***************
-*** 373,378 ****
---- 373,382 ----
-      char fname[1];
-    };
-  
-+ #undef LOCAL_INCLUDE_DIR
-+ #undef SYSTEM_INCLUDE_DIR
-+ #undef STANDARD_INCLUDE_DIR
-+ 
-  /* #include "file" looks in source file dir, then stack.  */
-  /* #include <file> just looks in the stack.  */
-  /* -I directories are added to the end, then the defaults are added.  */
-***************
-*** 424,430 ****
---- 428,436 ----
-  #ifndef STANDARD_INCLUDE_COMPONENT
-  #define STANDARD_INCLUDE_COMPONENT 0
-  #endif
-+ #ifdef STANDARD_INCLUDE_DIR
-      { STANDARD_INCLUDE_DIR, STANDARD_INCLUDE_COMPONENT, 0, 0, 0 },
-+ #endif
-  #endif /* not CROSS_COMPILE */
-      { 0, 0, 0, 0, 0 }
-      };
-diff -rc gcc-orig/gcc/gcc.c gcc-2.95.3/gcc/gcc.c
-*** gcc-orig/gcc/gcc.c	2001-01-25 15:03:16.000000000 +0100
---- gcc-2.95.3/gcc/gcc.c	2004-08-03 11:48:09.000000000 +0200
-***************
-*** 1369,1388 ****
-  #undef MD_STARTFILE_PREFIX_1
-  #endif
-  
-- #ifndef STANDARD_EXEC_PREFIX
-- #define STANDARD_EXEC_PREFIX "/usr/local/lib/gcc-lib/"
-- #endif /* !defined STANDARD_EXEC_PREFIX */
-- 
-  static const char *standard_exec_prefix = STANDARD_EXEC_PREFIX;
-- static const char *standard_exec_prefix_1 = "/usr/lib/gcc/";
-  #ifdef MD_EXEC_PREFIX
-  static const char *md_exec_prefix = MD_EXEC_PREFIX;
-  #endif
-  
-- #ifndef STANDARD_STARTFILE_PREFIX
-- #define STANDARD_STARTFILE_PREFIX "/usr/local/lib/"
-- #endif /* !defined STANDARD_STARTFILE_PREFIX */
-- 
-  #ifdef MD_STARTFILE_PREFIX
-  static const char *md_startfile_prefix = MD_STARTFILE_PREFIX;
-  #endif
---- 1369,1379 ----
-***************
-*** 1390,1401 ****
-  static const char *md_startfile_prefix_1 = MD_STARTFILE_PREFIX_1;
-  #endif
-  static const char *standard_startfile_prefix = STANDARD_STARTFILE_PREFIX;
-- static const char *standard_startfile_prefix_1 = "/lib/";
-- static const char *standard_startfile_prefix_2 = "/usr/lib/";
-  
-- #ifndef TOOLDIR_BASE_PREFIX
-- #define TOOLDIR_BASE_PREFIX "/usr/local/"
-- #endif
-  static const char *tooldir_base_prefix = TOOLDIR_BASE_PREFIX;
-  static const char *tooldir_prefix;
-  
---- 1381,1387 ----
-***************
-*** 2896,2908 ****
-  		  value = argv[++i];
-  		else
-  		  value = p + 1;
-  		add_prefix (&exec_prefixes, value, NULL_PTR, 1, 0, &warn_B);
-  		add_prefix (&startfile_prefixes, value, NULL_PTR,
-  			    1, 0, &warn_B);
-  		add_prefix (&include_prefixes, concat (value, "include",
-  						       NULL_PTR),
-  			    NULL_PTR, 1, 0, NULL_PTR);
-! 
-  		/* As a kludge, if the arg is "[foo/]stageN/", just add
-  		   "[foo/]include" to the include prefix.  */
-  		{
---- 2882,2897 ----
-  		  value = argv[++i];
-  		else
-  		  value = p + 1;
-+                 if (strlen(value) > 0 && value[strlen(value) - 1] != '/')
-+                     value = concat (value, "/", NULL_PTR);
-+                 add_prefix (&startfile_prefixes, value, "BINUTILS", 0, 0, NULL_PTR);
-  		add_prefix (&exec_prefixes, value, NULL_PTR, 1, 0, &warn_B);
-  		add_prefix (&startfile_prefixes, value, NULL_PTR,
-  			    1, 0, &warn_B);
-  		add_prefix (&include_prefixes, concat (value, "include",
-  						       NULL_PTR),
-  			    NULL_PTR, 1, 0, NULL_PTR);
-!                 
-  		/* As a kludge, if the arg is "[foo/]stageN/", just add
-  		   "[foo/]include" to the include prefix.  */
-  		{
-***************
-*** 3060,3073 ****
-  #ifndef OS2
-    add_prefix (&exec_prefixes, standard_exec_prefix, "BINUTILS",
-  	      0, 2, warn_std_ptr);
--   add_prefix (&exec_prefixes, standard_exec_prefix_1, "BINUTILS",
-- 	      0, 2, warn_std_ptr);
-  #endif
-  
-    add_prefix (&startfile_prefixes, standard_exec_prefix, "BINUTILS",
-  	      0, 1, warn_std_ptr);
--   add_prefix (&startfile_prefixes, standard_exec_prefix_1, "BINUTILS",
-- 	      0, 1, warn_std_ptr);
-  
-    tooldir_prefix = concat (tooldir_base_prefix, spec_machine, 
-  			   dir_separator_str, NULL_PTR);
---- 3049,3058 ----
-***************
-*** 4865,4874 ****
-  		      NULL_PTR, 0, 0, NULL_PTR);
-  	}		       
-  
--       add_prefix (&startfile_prefixes, standard_startfile_prefix_1,
-- 		  "BINUTILS", 0, 0, NULL_PTR);
--       add_prefix (&startfile_prefixes, standard_startfile_prefix_2,
-- 		  "BINUTILS", 0, 0, NULL_PTR);
-  #if 0 /* Can cause surprises, and one can use -B./ instead.  */
-        add_prefix (&startfile_prefixes, "./", NULL_PTR, 0, 1, NULL_PTR);
-  #endif
---- 4850,4855 ----
-diff -rc gcc-orig/gcc/Makefile.in gcc-2.95.3/gcc/Makefile.in
-*** gcc-orig/gcc/Makefile.in	2001-01-25 15:02:58.000000000 +0100
---- gcc-2.95.3/gcc/Makefile.in	2004-08-03 12:24:39.000000000 +0200
-***************
-*** 74,80 ****
-  BOOT_CFLAGS = -O2 $(CFLAGS)
-  #WARN_CFLAGS = -W -Wall
-  # These exists to be overridden by the x-* and t-* files, respectively.
-! X_CFLAGS =
-  T_CFLAGS =
-  
-  X_CPPFLAGS =
---- 74,80 ----
-  BOOT_CFLAGS = -O2 $(CFLAGS)
-  #WARN_CFLAGS = -W -Wall
-  # These exists to be overridden by the x-* and t-* files, respectively.
-! X_CFLAGS = $(NIX_EXTRA_CFLAGS) $(NIX_EXTRA_LDFLAGS)
-  T_CFLAGS =
-  
-  X_CPPFLAGS =
-***************
-*** 218,224 ****
-         && [ -f /usr/bin/ranlib -o -f /bin/ranlib ] )
-  
-  # Dir to search for system headers.  Overridden by cross-make.
-! SYSTEM_HEADER_DIR = /usr/include
-  
-  # Control whether to run fixproto.
-  STMP_FIXPROTO = stmp-fixproto
---- 218,228 ----
-         && [ -f /usr/bin/ranlib -o -f /bin/ranlib ] )
-  
-  # Dir to search for system headers.  Overridden by cross-make.
-! # Nix: we override NATIVE_SYSTEM_HEADER_DIR in order to prevent
-! # `fixinc' from fixing header files in /usr/include.  However,
-! # NATIVE_SYSTEM_HEADER_DIR must point to an existing directory, so set
-! # it to some dummy directory.
-! SYSTEM_HEADER_DIR = $(NIX_FIXINC_DUMMY)
-  
-  # Control whether to run fixproto.
-  STMP_FIXPROTO = stmp-fixproto
-diff -rc gcc-orig/Makefile.in gcc-2.95.3/Makefile.in
-*** gcc-orig/Makefile.in	1999-06-23 00:44:42.000000000 +0200
---- gcc-2.95.3/Makefile.in	2004-08-03 10:46:42.000000000 +0200
-***************
-*** 87,94 ****
-  CXXFLAGS = -g -O2
-  
-  LIBCFLAGS = $(CFLAGS)
-! CFLAGS_FOR_TARGET = $(CFLAGS)
-! LDFLAGS_FOR_TARGET = 
-  LIBCFLAGS_FOR_TARGET = $(CFLAGS_FOR_TARGET)
-  PICFLAG = 
-  PICFLAG_FOR_TARGET = 
---- 87,94 ----
-  CXXFLAGS = -g -O2
-  
-  LIBCFLAGS = $(CFLAGS)
-! CFLAGS_FOR_TARGET = $(CFLAGS) $(NIX_EXTRA_CFLAGS)
-! LDFLAGS_FOR_TARGET = $(NIX_EXTRA_LDFLAGS)
-  LIBCFLAGS_FOR_TARGET = $(CFLAGS_FOR_TARGET)
-  PICFLAG = 
-  PICFLAG_FOR_TARGET = 
-***************
-*** 99,105 ****
-  
-  # Use -O2 to stress test the compiler.
-  LIBCXXFLAGS = $(CXXFLAGS) -fno-implicit-templates
-! CXXFLAGS_FOR_TARGET = $(CXXFLAGS)
-  LIBCXXFLAGS_FOR_TARGET = $(CXXFLAGS_FOR_TARGET) -fno-implicit-templates
-  
-  RANLIB = ranlib
---- 99,105 ----
-  
-  # Use -O2 to stress test the compiler.
-  LIBCXXFLAGS = $(CXXFLAGS) -fno-implicit-templates
-! CXXFLAGS_FOR_TARGET = $(CXXFLAGS) $(NIX_EXTRA_CFLAGS)
-  LIBCXXFLAGS_FOR_TARGET = $(CXXFLAGS_FOR_TARGET) -fno-implicit-templates
-  
-  RANLIB = ranlib
diff --git a/pkgs/development/compilers/gcc/4.0/builder.sh b/pkgs/development/compilers/gcc/4.0/builder.sh
deleted file mode 100644
index 08622c1899ed3..0000000000000
--- a/pkgs/development/compilers/gcc/4.0/builder.sh
+++ /dev/null
@@ -1,85 +0,0 @@
-source $stdenv/setup
-
-
-export NIX_FIXINC_DUMMY=$NIX_BUILD_TOP/dummy
-mkdir $NIX_FIXINC_DUMMY
-
-
-# libstdc++ needs this; otherwise it will use /lib/cpp, which is a Bad
-# Thing.
-export CPP="gcc -E"
-export CXXCPP="gcc -E"
-
-
-if test "$noSysDirs" = "1"; then
-
-    if test -e $NIX_GCC/nix-support/orig-libc; then
-
-        # Figure out what extra flags to pass to the gcc compilers
-        # being generated to make sure that they use our glibc.
-        extraCFlags="$(cat $NIX_GCC/nix-support/libc-cflags)"
-        extraLDFlags="$(cat $NIX_GCC/nix-support/libc-ldflags) $(cat $NIX_GCC/nix-support/libc-ldflags-before)"
-
-        # Use *real* header files, otherwise a limits.h is generated
-        # that does not include Glibc's limits.h (notably missing
-        # SSIZE_MAX, which breaks the build).
-        export NIX_FIXINC_DUMMY=$(cat $NIX_GCC/nix-support/orig-libc)/include
-        
-    else
-        # Hack: support impure environments.
-        extraCFlags="-isystem /usr/include"
-        extraLDFlags="-L/usr/lib64 -L/usr/lib"
-        export NIX_FIXINC_DUMMY=/usr/include
-    fi
-
-    extraCFlags="-g0 $extraCFlags"
-    extraLDFlags="--strip-debug $extraLDFlags"
-
-    export NIX_EXTRA_CFLAGS=$extraCFlags
-    for i in $extraLDFlags; do
-        export NIX_EXTRA_LDFLAGS="$NIX_EXTRA_LDFLAGS -Wl,$i"
-    done
-
-    export CFLAGS=$extraCFlags
-    export CXXFLAGS=$extraCFlags
-    
-    makeFlagsArray=( \
-        NATIVE_SYSTEM_HEADER_DIR="$NIX_FIXINC_DUMMY" \
-        SYSTEM_HEADER_DIR="$NIX_FIXINC_DUMMY" \
-        LIMITS_H_TEST=true \
-        X_CFLAGS="$NIX_EXTRA_CFLAGS $NIX_EXTRA_LDFLAGS" \
-        LDFLAGS="$NIX_EXTRA_CFLAGS $NIX_EXTRA_LDFLAGS" \
-        LDFLAGS_FOR_TARGET="$NIX_EXTRA_CFLAGS $NIX_EXTRA_LDFLAGS" \
-        )
-fi
-
-
-preConfigure() {
-    # Perform the build in a different directory.
-    mkdir ../build
-    cd ../build
-    configureScript=../$sourceRoot/configure
-}
-
-
-postInstall() {
-    # Remove precompiled headers for now.  They are very big and
-    # probably not very useful yet.
-    find $out/include -name "*.gch" -exec rm -rf {} \; -prune
-
-    # Remove `fixincl' to prevent a retained dependency on the
-    # previous gcc.
-    rm -rf $out/libexec/gcc/*/*/install-tools
-
-    # Get rid of some "fixed" header files
-    rm -rf $out/lib/gcc/*/*/include/root
-}
-
-
-if test -z "$profiledCompiler"; then
-    buildFlags="bootstrap"
-else    
-    buildFlags="profiledbootstrap"
-fi
-
-genericBuild
diff --git a/pkgs/development/compilers/gcc/4.0/default.nix b/pkgs/development/compilers/gcc/4.0/default.nix
deleted file mode 100644
index 4e51681a533a3..0000000000000
--- a/pkgs/development/compilers/gcc/4.0/default.nix
+++ /dev/null
@@ -1,51 +0,0 @@
-{ stdenv, fetchurl, noSysDirs
-, langC ? true, langCC ? true, langFortran ? false
-, profiledCompiler ? false
-, gmp ? null , mpfr ? null
-, texinfo ? null
-, name ? "gcc"
-}:
-
-assert langC;
-
-with stdenv.lib;
-
-stdenv.mkDerivation {
-  name = "${name}-4.0.4";
-  
-  builder = ./builder.sh;
-  
-  src = fetchurl {
-    url = ftp://ftp.nluug.nl/mirror/languages/gcc/releases/gcc-4.0.4/gcc-4.0.4.tar.bz2;
-    sha256 = "0izwr8d69ld3a1yr8z94s7y7k861wi613mplys2c0bvdr58y1zgk";
-  };
-  
-  patches =
-    optional noSysDirs [./no-sys-dirs.patch];
-    
-  inherit noSysDirs langC langCC langFortran profiledCompiler;
-
-  buildInputs = [gmp mpfr texinfo];
-
-  configureFlags = "
-    --disable-multilib
-    --disable-libstdcxx-pch
-    --disable-libmudflap
-    --with-system-zlib
-    --enable-languages=${
-      concatStrings (intersperse ","
-        (  optional langC       "c"
-        ++ optional langCC      "c++"
-        ++ optional langFortran "f95"
-        )
-      )
-    }
-    ${if stdenv.isi686 then "--with-arch=i686" else ""}
-  ";
-
-  meta = {
-    homepage = "http://gcc.gnu.org/";
-    license = "GPL/LGPL";
-    description = "GNU Compiler Collection, 4.0.x";
-  };
-}
diff --git a/pkgs/development/compilers/gcc/4.0/no-sys-dirs.patch b/pkgs/development/compilers/gcc/4.0/no-sys-dirs.patch
deleted file mode 100644
index 74ef6056b1fd6..0000000000000
--- a/pkgs/development/compilers/gcc/4.0/no-sys-dirs.patch
+++ /dev/null
@@ -1,228 +0,0 @@
-diff -rc gcc-4.0.0-orig/gcc/cppdefault.c gcc-4.0.0/gcc/cppdefault.c
-*** gcc-4.0.0-orig/gcc/cppdefault.c	2004-11-03 04:23:49.000000000 +0100
---- gcc-4.0.0/gcc/cppdefault.c	2005-04-22 09:53:28.000000000 +0200
-***************
-*** 41,46 ****
---- 41,50 ----
-  # undef CROSS_INCLUDE_DIR
-  #endif
-  
-+ #undef LOCAL_INCLUDE_DIR
-+ #undef SYSTEM_INCLUDE_DIR
-+ #undef STANDARD_INCLUDE_DIR
-+ 
-  const struct default_include cpp_include_defaults[]
-  #ifdef INCLUDE_DEFAULTS
-  = INCLUDE_DEFAULTS;
-diff -rc gcc-4.0.0-orig/gcc/Makefile.in gcc-4.0.0/gcc/Makefile.in
-*** gcc-4.0.0-orig/gcc/Makefile.in	2005-04-04 21:45:13.000000000 +0200
---- gcc-4.0.0/gcc/Makefile.in	2005-04-22 10:38:50.000000000 +0200
-***************
-*** 213,219 ****
-  CPPFLAGS = @CPPFLAGS@
-  
-  # These exists to be overridden by the x-* and t-* files, respectively.
-! X_CFLAGS =
-  T_CFLAGS =
-  
-  X_CPPFLAGS =
---- 213,219 ----
-  CPPFLAGS = @CPPFLAGS@
-  
-  # These exists to be overridden by the x-* and t-* files, respectively.
-! X_CFLAGS = $(NIX_EXTRA_CFLAGS) $(NIX_EXTRA_LDFLAGS)
-  T_CFLAGS =
-  
-  X_CPPFLAGS =
-***************
-*** 373,379 ****
-  MD5_H	    = $(srcdir)/../include/md5.h
-  
-  # Default native SYSTEM_HEADER_DIR, to be overridden by targets.
-! NATIVE_SYSTEM_HEADER_DIR = /usr/include
-  # Default cross SYSTEM_HEADER_DIR, to be overridden by targets.
-  CROSS_SYSTEM_HEADER_DIR = @CROSS_SYSTEM_HEADER_DIR@
-  
---- 373,383 ----
-  MD5_H	    = $(srcdir)/../include/md5.h
-  
-  # Default native SYSTEM_HEADER_DIR, to be overridden by targets.
-! # Nix: we override NATIVE_SYSTEM_HEADER_DIR in order to prevent
-! # `fixinc' from fixing header files in /usr/include.  However,
-! # NATIVE_SYSTEM_HEADER_DIR must point to an existing directory, so set
-! # it to some dummy directory.
-! NATIVE_SYSTEM_HEADER_DIR = $(NIX_FIXINC_DUMMY)
-  # Default cross SYSTEM_HEADER_DIR, to be overridden by targets.
-  CROSS_SYSTEM_HEADER_DIR = @CROSS_SYSTEM_HEADER_DIR@
-  
-***************
-*** 385,391 ****
-  STMP_FIXINC = @STMP_FIXINC@
-  
-  # Test to see whether <limits.h> exists in the system header files.
-! LIMITS_H_TEST = [ -f $(SYSTEM_HEADER_DIR)/limits.h ]
-  
-  # Directory for prefix to system directories, for
-  # each of $(system_prefix)/usr/include, $(system_prefix)/usr/lib, etc.
---- 389,395 ----
-  STMP_FIXINC = @STMP_FIXINC@
-  
-  # Test to see whether <limits.h> exists in the system header files.
-! LIMITS_H_TEST = true
-  
-  # Directory for prefix to system directories, for
-  # each of $(system_prefix)/usr/include, $(system_prefix)/usr/lib, etc.
-***************
-*** 2677,2683 ****
-    -DGPLUSPLUS_INCLUDE_DIR=\"$(gcc_gxx_include_dir)\" \
-    -DGPLUSPLUS_TOOL_INCLUDE_DIR=\"$(gcc_gxx_include_dir)/$(target_noncanonical)\" \
-    -DGPLUSPLUS_BACKWARD_INCLUDE_DIR=\"$(gcc_gxx_include_dir)/backward\" \
-!   -DLOCAL_INCLUDE_DIR=\"$(local_includedir)\" \
-    -DCROSS_INCLUDE_DIR=\"$(CROSS_SYSTEM_HEADER_DIR)\" \
-    -DTOOL_INCLUDE_DIR=\"$(gcc_tooldir)/include\" \
-    @TARGET_SYSTEM_ROOT_DEFINE@
---- 2681,2687 ----
-    -DGPLUSPLUS_INCLUDE_DIR=\"$(gcc_gxx_include_dir)\" \
-    -DGPLUSPLUS_TOOL_INCLUDE_DIR=\"$(gcc_gxx_include_dir)/$(target_noncanonical)\" \
-    -DGPLUSPLUS_BACKWARD_INCLUDE_DIR=\"$(gcc_gxx_include_dir)/backward\" \
-!   -DLOCAL_INCLUDE_DIR=\"/no-such-dir\" \
-    -DCROSS_INCLUDE_DIR=\"$(CROSS_SYSTEM_HEADER_DIR)\" \
-    -DTOOL_INCLUDE_DIR=\"$(gcc_tooldir)/include\" \
-    @TARGET_SYSTEM_ROOT_DEFINE@
-Only in gcc-4.0.0/gcc: Makefile.in~
-diff -rc gcc-4.0.0-orig/libstdc++-v3/include/Makefile.in gcc-4.0.0/libstdc++-v3/include/Makefile.in
-*** gcc-4.0.0-orig/libstdc++-v3/include/Makefile.in	2005-04-01 06:24:31.000000000 +0200
---- gcc-4.0.0/libstdc++-v3/include/Makefile.in	2005-04-22 09:54:27.000000000 +0200
-***************
-*** 959,966 ****
-  	if [ ! -d "${pch_output_builddir}" ]; then \
-  	  mkdir -p ${pch_output_builddir}; \
-  	fi; \
-! 	$(CXX) $(PCHFLAGS) $(AM_CPPFLAGS) ${pch_source} -O0 -g -o ${pch_output_builddir}/O0g.gch; \
-! 	$(CXX) $(PCHFLAGS) $(AM_CPPFLAGS) ${pch_source} -O2 -g -o ${pch_output_builddir}/O2g.gch;
-  
-  # For robustness sake (in light of junk files or in-source
-  # configuration), copy from the build or source tree to the install
---- 959,966 ----
-  	if [ ! -d "${pch_output_builddir}" ]; then \
-  	  mkdir -p ${pch_output_builddir}; \
-  	fi; \
-! 	$(CXX) $(CFLAGS) $(PCHFLAGS) $(AM_CPPFLAGS) ${pch_source} -O0 -g -o ${pch_output_builddir}/O0g.gch; \
-! 	$(CXX) $(CFLAGS) $(PCHFLAGS) $(AM_CPPFLAGS) ${pch_source} -O2 -g -o ${pch_output_builddir}/O2g.gch;
-  
-  # For robustness sake (in light of junk files or in-source
-  # configuration), copy from the build or source tree to the install
-Only in gcc-4.0.0/libstdc++-v3/include: Makefile.in~
-Only in gcc-4.0.0/libstdc++-v3/include: Makefile.in.orig
-Only in gcc-4.0.0/libstdc++-v3/include: Makefile.in.rej
-diff -rc gcc-4.0.0-orig/ltcf-cxx.sh gcc-4.0.0/ltcf-cxx.sh
-*** gcc-4.0.0-orig/ltcf-cxx.sh	2004-10-02 18:33:06.000000000 +0200
---- gcc-4.0.0/ltcf-cxx.sh	2005-04-22 09:53:28.000000000 +0200
-***************
-*** 988,994 ****
-    # the conftest object file.
-    pre_test_object_deps_done=no
-  
-!   for p in `eval $output_verbose_link_cmd`; do
-  
-      case $p in
-  
---- 988,994 ----
-    # the conftest object file.
-    pre_test_object_deps_done=no
-  
-!   for p in `true`; do
-  
-      case $p in
-  
-Only in gcc-4.0.0: ltcf-cxx.sh.orig
-diff -rc gcc-4.0.0-orig/ltconfig gcc-4.0.0/ltconfig
-*** gcc-4.0.0-orig/ltconfig	2004-10-02 18:33:06.000000000 +0200
---- gcc-4.0.0/ltconfig	2005-04-22 13:33:33.000000000 +0200
-***************
-*** 2321,2326 ****
---- 2321,2331 ----
-  # A language-specific compiler.
-  CC=$CC
-  
-+ # Ugly hack to get libmudflap (and possibly other libraries) to build.
-+ # Libtool filters out \`-B' flags when linking (why?), so the \`-B' flag
-+ # to Glibc gets lost.  Here we forcibly add it to any invocation.
-+ CC="\$CC $NIX_EXTRA_LDFLAGS"
-+ 
-  # Is the compiler the GNU C compiler?
-  with_gcc=$with_gcc
-  
-Only in gcc-4.0.0: ltconfig~
-diff -rc gcc-4.0.0-orig/Makefile.in gcc-4.0.0/Makefile.in
-*** gcc-4.0.0-orig/Makefile.in	2005-04-21 09:04:10.000000000 +0200
---- gcc-4.0.0/Makefile.in	2005-04-22 09:53:28.000000000 +0200
-***************
-*** 336,342 ****
-  NM = @NM@
-  
-  LD = @LD@
-! LDFLAGS = 
-  
-  RANLIB = @RANLIB@
-  
---- 336,342 ----
-  NM = @NM@
-  
-  LD = @LD@
-! LDFLAGS = $(NIX_EXTRA_LDFLAGS)
-  
-  RANLIB = @RANLIB@
-  
-***************
-*** 387,393 ****
-  # CFLAGS will be just -g.  We want to ensure that TARGET libraries
-  # (which we know are built with gcc) are built with optimizations so
-  # prepend -O2 when setting CFLAGS_FOR_TARGET.
-! CFLAGS_FOR_TARGET = -O2 $(CFLAGS)
-  # If GCC_FOR_TARGET is not overriden on the command line, then this
-  # variable is passed down to the gcc Makefile, where it is used to
-  # build libgcc2.a.  We define it here so that it can itself be
---- 387,393 ----
-  # CFLAGS will be just -g.  We want to ensure that TARGET libraries
-  # (which we know are built with gcc) are built with optimizations so
-  # prepend -O2 when setting CFLAGS_FOR_TARGET.
-! CFLAGS_FOR_TARGET = -O2 $(CFLAGS) $(NIX_EXTRA_CFLAGS)
-  # If GCC_FOR_TARGET is not overriden on the command line, then this
-  # variable is passed down to the gcc Makefile, where it is used to
-  # build libgcc2.a.  We define it here so that it can itself be
-***************
-*** 400,406 ****
-  RAW_CXX_FOR_TARGET = @RAW_CXX_FOR_TARGET@
-  CXX_FOR_TARGET_FOR_RECURSIVE_MAKE = @CXX_FOR_TARGET_FOR_RECURSIVE_MAKE@
-  RAW_CXX_FOR_TARGET_FOR_RECURSIVE_MAKE = @RAW_CXX_FOR_TARGET_FOR_RECURSIVE_MAKE@
-! CXXFLAGS_FOR_TARGET = $(CXXFLAGS)
-  LIBCXXFLAGS_FOR_TARGET = $(CXXFLAGS_FOR_TARGET) -fno-implicit-templates
-  
-  DLLTOOL_FOR_TARGET=@DLLTOOL_FOR_TARGET@
---- 400,406 ----
-  RAW_CXX_FOR_TARGET = @RAW_CXX_FOR_TARGET@
-  CXX_FOR_TARGET_FOR_RECURSIVE_MAKE = @CXX_FOR_TARGET_FOR_RECURSIVE_MAKE@
-  RAW_CXX_FOR_TARGET_FOR_RECURSIVE_MAKE = @RAW_CXX_FOR_TARGET_FOR_RECURSIVE_MAKE@
-! CXXFLAGS_FOR_TARGET = $(CXXFLAGS) $(NIX_EXTRA_CFLAGS)
-  LIBCXXFLAGS_FOR_TARGET = $(CXXFLAGS_FOR_TARGET) -fno-implicit-templates
-  
-  DLLTOOL_FOR_TARGET=@DLLTOOL_FOR_TARGET@
-***************
-*** 434,440 ****
-      fi; \
-    fi`
-  
-! LDFLAGS_FOR_TARGET = 
-  
-  NM_FOR_TARGET=@NM_FOR_TARGET@
-  CONFIGURED_NM_FOR_TARGET=@CONFIGURED_NM_FOR_TARGET@
---- 434,440 ----
-      fi; \
-    fi`
-  
-! LDFLAGS_FOR_TARGET = $(NIX_EXTRA_LDFLAGS)
-  
-  NM_FOR_TARGET=@NM_FOR_TARGET@
-  CONFIGURED_NM_FOR_TARGET=@CONFIGURED_NM_FOR_TARGET@
-Only in gcc-4.0.0: Makefile.in.orig
diff --git a/pkgs/development/compilers/gcc/4.1/builder.sh b/pkgs/development/compilers/gcc/4.1/builder.sh
deleted file mode 100644
index f8abca122570d..0000000000000
--- a/pkgs/development/compilers/gcc/4.1/builder.sh
+++ /dev/null
@@ -1,83 +0,0 @@
-source $stdenv/setup
-
-
-export NIX_FIXINC_DUMMY=$NIX_BUILD_TOP/dummy
-mkdir $NIX_FIXINC_DUMMY
-
-
-# libstdc++ needs this; otherwise it will use /lib/cpp, which is a Bad
-# Thing.
-export CPP="gcc -E"
-
-
-if test "$noSysDirs" = "1"; then
-
-    if test -e $NIX_GCC/nix-support/orig-libc; then
-
-        # Figure out what extra flags to pass to the gcc compilers
-        # being generated to make sure that they use our glibc.
-        extraCFlags="$(cat $NIX_GCC/nix-support/libc-cflags)"
-        extraLDFlags="$(cat $NIX_GCC/nix-support/libc-ldflags) $(cat $NIX_GCC/nix-support/libc-ldflags-before)"
-
-        # Use *real* header files, otherwise a limits.h is generated
-        # that does not include Glibc's limits.h (notably missing
-        # SSIZE_MAX, which breaks the build).
-        export NIX_FIXINC_DUMMY=$(cat $NIX_GCC/nix-support/orig-libc)/include
-        
-    else
-        # Hack: support impure environments.
-        extraCFlags="-isystem /usr/include"
-        extraLDFlags="-L/usr/lib64 -L/usr/lib"
-        export NIX_FIXINC_DUMMY=/usr/include
-    fi
-
-    extraCFlags="-g0 $extraCFlags"
-    extraLDFlags="--strip-debug $extraLDFlags"
-
-    export NIX_EXTRA_CFLAGS=$extraCFlags
-    for i in $extraLDFlags; do
-        export NIX_EXTRA_LDFLAGS="$NIX_EXTRA_LDFLAGS -Wl,$i"
-    done
-
-    makeFlagsArray=( \
-        NATIVE_SYSTEM_HEADER_DIR="$NIX_FIXINC_DUMMY" \
-        SYSTEM_HEADER_DIR="$NIX_FIXINC_DUMMY" \
-        LIMITS_H_TEST=true \
-        X_CFLAGS="$NIX_EXTRA_CFLAGS $NIX_EXTRA_LDFLAGS" \
-        LDFLAGS="$NIX_EXTRA_CFLAGS $NIX_EXTRA_LDFLAGS" \
-        LDFLAGS_FOR_TARGET="$NIX_EXTRA_CFLAGS $NIX_EXTRA_LDFLAGS" \
-        )
-fi
-
-
-preConfigure() {
-    # Perform the build in a different directory.
-    mkdir ../build
-    cd ../build
-    configureScript=../$sourceRoot/configure
-}
-
-
-postInstall() {
-    # Remove precompiled headers for now.  They are very big and
-    # probably not very useful yet.
-    find $out/include -name "*.gch" -exec rm -rf {} \; -prune
-
-    # Remove `fixincl' to prevent a retained dependency on the
-    # previous gcc.
-    rm -rf $out/libexec/gcc/*/*/install-tools
-
-    # Get rid of some "fixed" header files
-    rm -rf $out/lib/gcc/*/*/include/root
-}
-
-
-if test -z "$staticCompiler"; then
-    if test -z "$profiledCompiler"; then
-        buildFlags="bootstrap $buildFlags"
-    else    
-        buildFlags="profiledbootstrap $buildFlags"
-    fi
-fi
-
-genericBuild
diff --git a/pkgs/development/compilers/gcc/4.1/default.nix b/pkgs/development/compilers/gcc/4.1/default.nix
deleted file mode 100644
index b460ad813f810..0000000000000
--- a/pkgs/development/compilers/gcc/4.1/default.nix
+++ /dev/null
@@ -1,71 +0,0 @@
-{ stdenv, fetchurl, noSysDirs
-, langC ? true, langCC ? true, langFortran ? false
-, profiledCompiler ? false
-, staticCompiler ? false
-, gmp ? null
-, mpfr ? null
-, texinfo ? null
-, name ? "gcc"
-}:
-
-assert langC || langFortran;
-
-with stdenv.lib;
-
-stdenv.mkDerivation {
-  name = "${name}-4.1.2";
-  
-  builder = ./builder.sh;
-  
-  src =
-    optional /*langC*/ true (fetchurl {
-      url = mirror://gnu/gcc/gcc-4.1.2/gcc-core-4.1.2.tar.bz2;
-      sha256 = "07binc1hqlr0g387zrg5sp57i12yzd5ja2lgjb83bbh0h3gwbsbv";
-    }) ++
-    optional /*langCC*/ true (fetchurl {
-      url = mirror://gnu/gcc/gcc-4.1.2/gcc-g++-4.1.2.tar.bz2;
-      sha256 = "1qm2izcxna10jai0v4s41myki0xkw9174qpl6k1rnrqhbx0sl1hc";
-    }) ++
-    optional langFortran (fetchurl {
-      url = mirror://gnu/gcc/gcc-4.1.2/gcc-fortran-4.1.2.tar.bz2;
-      sha256 = "0772dhmm4gc10420h0d0mfkk2sirvjmjxz8j0ywm8wp5qf8vdi9z";
-    });
-    
-  patches =
-    optional noSysDirs [./no-sys-dirs.patch];
-    
-  inherit noSysDirs profiledCompiler staticCompiler;
-
-  buildInputs = [gmp mpfr texinfo];
-
-  enableParallelBuilding = true;
-  
-  configureFlags = "
-    --disable-multilib
-    --disable-libstdcxx-pch
-    --with-system-zlib
-    --enable-languages=${
-      concatStrings (intersperse ","
-        (  optional langC       "c"
-        ++ optional langCC      "c++"
-        ++ optional langFortran "fortran"
-        )
-      )
-    }
-    ${if stdenv.isi686 then "--with-arch=i686" else ""}
-  ";
-
-  makeFlags = if staticCompiler then "LDFLAGS=-static" else "";
-
-  passthru = { inherit langC langCC langFortran; };
-
-  meta = {
-    homepage = "http://gcc.gnu.org/";
-    license = "GPL/LGPL";
-    description = "GNU Compiler Collection, 4.1.x";
-
-    # Give the real GCC a lower priority than the GCC wrapper so that
-    # both can be installed at the same time.
-    priority = "7";
-  };
-}
diff --git a/pkgs/development/compilers/gcc/4.1/no-sys-dirs.patch b/pkgs/development/compilers/gcc/4.1/no-sys-dirs.patch
deleted file mode 100644
index 7872e4901ef5b..0000000000000
--- a/pkgs/development/compilers/gcc/4.1/no-sys-dirs.patch
+++ /dev/null
@@ -1,177 +0,0 @@
-diff -rc gcc-4.1.2-orig/Makefile.in gcc-4.1.2/Makefile.in
-*** gcc-4.1.2-orig/Makefile.in	Tue Apr  4 23:03:05 2006
---- gcc-4.1.2/Makefile.in	Wed May 23 11:35:41 2007
-***************
-*** 213,219 ****
-  RAW_CXX_TARGET_EXPORTS = \
-  	$(BASE_TARGET_EXPORTS) \
-  	CXX_FOR_TARGET="$(RAW_CXX_FOR_TARGET)"; export CXX_FOR_TARGET; \
-! 	CXX="$(RAW_CXX_FOR_TARGET)"; export CXX;
-  
-  NORMAL_TARGET_EXPORTS = \
-  	$(BASE_TARGET_EXPORTS) \
---- 213,220 ----
-  RAW_CXX_TARGET_EXPORTS = \
-  	$(BASE_TARGET_EXPORTS) \
-  	CXX_FOR_TARGET="$(RAW_CXX_FOR_TARGET)"; export CXX_FOR_TARGET; \
-! 	CXX="$(RAW_CXX_FOR_TARGET) $(CFLAGS_FOR_BUILD)"; export CXX; \
-! 	CXXCPP="$(RAW_CXX_FOR_TARGET) $(CFLAGS_FOR_BUILD) -E"; export CXXCPP;
-  
-  NORMAL_TARGET_EXPORTS = \
-  	$(BASE_TARGET_EXPORTS) \
-***************
-*** 352,357 ****
---- 353,366 ----
-  @host_makefile_frag@
-  ###
-  
-+ CFLAGS += $(NIX_EXTRA_CFLAGS)
-+ CPPFLAGS_FOR_TARGET += $(NIX_EXTRA_CFLAGS)
-+ CXXFLAGS += $(NIX_EXTRA_CFLAGS)
-+ LDFLAGS += $(NIX_EXTRA_LDFLAGS)
-+ LDFLAGS_FOR_TARGET += $(NIX_EXTRA_LDFLAGS)
-+ BOOT_CFLAGS += $(NIX_EXTRA_CFLAGS)
-+ BOOT_LDFLAGS += $(NIX_EXTRA_LDFLAGS)
-+ 
-  # This is the list of directories that may be needed in RPATH_ENVVAR
-  # so that prorgams built for the target machine work.
-  TARGET_LIB_PATH = $(TARGET_LIB_PATH_libstdc++-v3)$(TARGET_LIB_PATH_libmudflap)$(TARGET_LIB_PATH_libssp)$(HOST_LIB_PATH_gcc)
-diff -rc gcc-4.1.2-orig/gcc/Makefile.in gcc-4.1.2/gcc/Makefile.in
-*** gcc-4.1.2-orig/gcc/Makefile.in	Wed Nov  1 15:40:44 2006
---- gcc-4.1.2/gcc/Makefile.in	Wed May 23 11:35:41 2007
-***************
-*** 383,389 ****
-  MD5_H	    = $(srcdir)/../include/md5.h
-  
-  # Default native SYSTEM_HEADER_DIR, to be overridden by targets.
-! NATIVE_SYSTEM_HEADER_DIR = /usr/include
-  # Default cross SYSTEM_HEADER_DIR, to be overridden by targets.
-  CROSS_SYSTEM_HEADER_DIR = @CROSS_SYSTEM_HEADER_DIR@
-  
---- 383,393 ----
-  MD5_H	    = $(srcdir)/../include/md5.h
-  
-  # Default native SYSTEM_HEADER_DIR, to be overridden by targets.
-! # Nix: we override NATIVE_SYSTEM_HEADER_DIR in order to prevent
-! # `fixinc' from fixing header files in /usr/include.  However,
-! # NATIVE_SYSTEM_HEADER_DIR must point to an existing directory, so set
-! # it to some dummy directory.
-! NATIVE_SYSTEM_HEADER_DIR = $(NIX_FIXINC_DUMMY)
-  # Default cross SYSTEM_HEADER_DIR, to be overridden by targets.
-  CROSS_SYSTEM_HEADER_DIR = @CROSS_SYSTEM_HEADER_DIR@
-  
-***************
-*** 3007,3013 ****
-    -DGPLUSPLUS_INCLUDE_DIR=\"$(gcc_gxx_include_dir)\" \
-    -DGPLUSPLUS_TOOL_INCLUDE_DIR=\"$(gcc_gxx_include_dir)/$(target_noncanonical)\" \
-    -DGPLUSPLUS_BACKWARD_INCLUDE_DIR=\"$(gcc_gxx_include_dir)/backward\" \
-!   -DLOCAL_INCLUDE_DIR=\"$(local_includedir)\" \
-    -DCROSS_INCLUDE_DIR=\"$(CROSS_SYSTEM_HEADER_DIR)\" \
-    -DTOOL_INCLUDE_DIR=\"$(gcc_tooldir)/include\" \
-    @TARGET_SYSTEM_ROOT_DEFINE@
---- 3011,3017 ----
-    -DGPLUSPLUS_INCLUDE_DIR=\"$(gcc_gxx_include_dir)\" \
-    -DGPLUSPLUS_TOOL_INCLUDE_DIR=\"$(gcc_gxx_include_dir)/$(target_noncanonical)\" \
-    -DGPLUSPLUS_BACKWARD_INCLUDE_DIR=\"$(gcc_gxx_include_dir)/backward\" \
-!   -DLOCAL_INCLUDE_DIR=\"/no-such-dir\" \
-    -DCROSS_INCLUDE_DIR=\"$(CROSS_SYSTEM_HEADER_DIR)\" \
-    -DTOOL_INCLUDE_DIR=\"$(gcc_tooldir)/include\" \
-    @TARGET_SYSTEM_ROOT_DEFINE@
-diff -rc gcc-4.1.2-orig/gcc/cppdefault.c gcc-4.1.2/gcc/cppdefault.c
-*** gcc-4.1.2-orig/gcc/cppdefault.c	Sat Jun 25 04:02:01 2005
---- gcc-4.1.2/gcc/cppdefault.c	Wed May 23 11:35:41 2007
-***************
-*** 41,46 ****
---- 41,50 ----
-  # undef CROSS_INCLUDE_DIR
-  #endif
-  
-+ #undef LOCAL_INCLUDE_DIR
-+ #undef SYSTEM_INCLUDE_DIR
-+ #undef STANDARD_INCLUDE_DIR
-+ 
-  const struct default_include cpp_include_defaults[]
-  #ifdef INCLUDE_DEFAULTS
-  = INCLUDE_DEFAULTS;
-diff -rc gcc-4.1.2-orig/gcc/gcc.c gcc-4.1.2/gcc/gcc.c
-*** gcc-4.1.2-orig/gcc/gcc.c	Tue Nov  7 15:26:21 2006
---- gcc-4.1.2/gcc/gcc.c	Wed May 23 11:35:41 2007
-***************
-*** 1435,1444 ****
-  /* Default prefixes to attach to command names.  */
-  
-  #ifndef STANDARD_STARTFILE_PREFIX_1
-! #define STANDARD_STARTFILE_PREFIX_1 "/lib/"
-  #endif
-  #ifndef STANDARD_STARTFILE_PREFIX_2
-! #define STANDARD_STARTFILE_PREFIX_2 "/usr/lib/"
-  #endif
-  
-  #ifdef CROSS_COMPILE  /* Don't use these prefixes for a cross compiler.  */
---- 1435,1444 ----
-  /* Default prefixes to attach to command names.  */
-  
-  #ifndef STANDARD_STARTFILE_PREFIX_1
-! #define STANDARD_STARTFILE_PREFIX_1 ""
-  #endif
-  #ifndef STANDARD_STARTFILE_PREFIX_2
-! #define STANDARD_STARTFILE_PREFIX_2 ""
-  #endif
-  
-  #ifdef CROSS_COMPILE  /* Don't use these prefixes for a cross compiler.  */
-***************
-*** 1459,1466 ****
-  #endif
-  
-  static const char *const standard_exec_prefix = STANDARD_EXEC_PREFIX;
-! static const char *const standard_exec_prefix_1 = "/usr/libexec/gcc/";
-! static const char *const standard_exec_prefix_2 = "/usr/lib/gcc/";
-  static const char *md_exec_prefix = MD_EXEC_PREFIX;
-  
-  static const char *md_startfile_prefix = MD_STARTFILE_PREFIX;
---- 1459,1466 ----
-  #endif
-  
-  static const char *const standard_exec_prefix = STANDARD_EXEC_PREFIX;
-! static const char *const standard_exec_prefix_1 = "/no-such-path/";
-! static const char *const standard_exec_prefix_2 = "/no-such-path/";
-  static const char *md_exec_prefix = MD_EXEC_PREFIX;
-  
-  static const char *md_startfile_prefix = MD_STARTFILE_PREFIX;
-diff -rc gcc-4.1.2-orig/ltcf-cxx.sh gcc-4.1.2/ltcf-cxx.sh
-*** gcc-4.1.2-orig/ltcf-cxx.sh	Sat Jul 16 04:30:53 2005
---- gcc-4.1.2/ltcf-cxx.sh	Wed May 23 11:35:41 2007
-***************
-*** 989,995 ****
-    # the conftest object file.
-    pre_test_object_deps_done=no
-  
-!   for p in `eval $output_verbose_link_cmd`; do
-  
-      case $p in
-  
---- 989,995 ----
-    # the conftest object file.
-    pre_test_object_deps_done=no
-  
-!   for p in `true`; do
-  
-      case $p in
-  
-diff -rc gcc-4.1.2-orig/ltconfig gcc-4.1.2/ltconfig
-*** gcc-4.1.2-orig/ltconfig	Tue Jul  4 22:30:34 2006
---- gcc-4.1.2/ltconfig	Wed May 23 11:35:41 2007
-***************
-*** 2322,2327 ****
---- 2322,2332 ----
-  # A language-specific compiler.
-  CC=$CC
-  
-+ # Ugly hack to get libmudflap (and possibly other libraries) to build.
-+ # Libtool filters out \`-B' flags when linking (why?), so the \`-B' flag
-+ # to Glibc gets lost.  Here we forcibly add it to any invocation.
-+ CC="\$CC $NIX_EXTRA_CFLAGS $NIX_EXTRA_LDFLAGS"
-+ 
-  # Is the compiler the GNU C compiler?
-  with_gcc=$with_gcc
-  
diff --git a/pkgs/development/compilers/gcc/4.3/default.nix b/pkgs/development/compilers/gcc/4.3/default.nix
index 4b9fd616d8490..d17f9f1951501 100644
--- a/pkgs/development/compilers/gcc/4.3/default.nix
+++ b/pkgs/development/compilers/gcc/4.3/default.nix
@@ -47,9 +47,9 @@ let
       " --enable-threads=posix" +
       " --enable-nls"
       );
-  stageNameAddon = if (crossStageStatic) then "-stage-static" else
+  stageNameAddon = if crossStageStatic then "-stage-static" else
     "-stage-final";
-  crossNameAddon = if (cross != null) then "-${cross.config}" + stageNameAddon else "";
+  crossNameAddon = if cross != null then "-${cross.config}" + stageNameAddon else "";
 in
 
 stdenv.mkDerivation ({
@@ -76,7 +76,7 @@ stdenv.mkDerivation ({
     });
     
   patches =
-    [./pass-cxxcpp.patch ./libmudflap-cpp.patch]
+    [ ./pass-cxxcpp.patch ./libmudflap-cpp.patch ./siginfo_t_fix.patch ]
     ++ optional noSysDirs ./no-sys-dirs.patch
     ++ optional (noSysDirs && langFortran) ./no-sys-dirs-fortran.patch
     ++ optional langJava ./java-jvgenmain-link.patch
@@ -85,7 +85,7 @@ stdenv.mkDerivation ({
     
   inherit noSysDirs profiledCompiler staticCompiler crossStageStatic
     binutilsCross libcCross;
-  targetConfig = if (cross != null) then cross.config else null;
+  targetConfig = if cross != null then cross.config else null;
 
   buildInputs = [texinfo gmp mpfr]
     ++ (optionals langTreelang [bison flex])
@@ -129,7 +129,7 @@ stdenv.mkDerivation ({
       enableMultilib; };
 
   # ghdl does not build fine with parallel building
-  enableParallelBuilding = if langVhdl then false else true;
+  enableParallelBuilding = !langVhdl;
 
   meta = {
     homepage = "http://gcc.gnu.org/";
diff --git a/pkgs/development/compilers/gcc/4.3/siginfo_t_fix.patch b/pkgs/development/compilers/gcc/4.3/siginfo_t_fix.patch
new file mode 100644
index 0000000000000..8b126cd08c363
--- /dev/null
+++ b/pkgs/development/compilers/gcc/4.3/siginfo_t_fix.patch
@@ -0,0 +1,174 @@
+https://bugs.gentoo.org/424970
+
+fix from upstream for building with newer glibc versions
+
+From f0cdca2bf2230005025e13e7354fedb612933c96 Mon Sep 17 00:00:00 2001
+From: tschwinge <tschwinge@138bc75d-0d04-0410-961f-82ee72b054a4>
+Date: Fri, 20 Apr 2012 08:14:00 +0000
+Subject: [PATCH] 	struct siginfo vs. siginfo_t
+
+	Backport from trunk (but apply to gcc/):
+
+	2012-04-20  Thomas Schwinge  <thomas@codesourcery.com>
+
+gcc/
+	* config/alpha/linux-unwind.h (alpha_fallback_frame_state): Use
+	siginfo_t instead of struct siginfo.
+	* config/bfin/linux-unwind.h (bfin_fallback_frame_state): Likewise.
+	* config/i386/linux-unwind.h (x86_fallback_frame_state): Likewise.
+	* config/ia64/linux-unwind.h (ia64_fallback_frame_state)
+	(ia64_handle_unwabi): Likewise.
+	* config/mips/linux-unwind.h (mips_fallback_frame_state): Likewise.
+	* config/pa/linux-unwind.h (pa32_fallback_frame_state): Likewise.
+	* config/sh/linux-unwind.h (shmedia_fallback_frame_state)
+	(sh_fallback_frame_state): Likewise.
+	* config/xtensa/linux-unwind.h (xtensa_fallback_frame_state): Likewise.
+
+git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_5-branch@186613 138bc75d-0d04-0410-961f-82ee72b054a4
+---
+ gcc/ChangeLog                    |   20 ++++++++++++++++++++
+ gcc/config/alpha/linux-unwind.h  |    4 ++--
+ gcc/config/bfin/linux-unwind.h   |    6 +++---
+ gcc/config/i386/linux-unwind.h   |    6 +++---
+ gcc/config/ia64/linux-unwind.h   |    6 +++---
+ gcc/config/mips/linux-unwind.h   |    5 +++--
+ gcc/config/pa/linux-unwind.h     |    4 ++--
+ gcc/config/sh/linux-unwind.h     |    9 +++++----
+ gcc/config/xtensa/linux-unwind.h |    4 ++--
+ 9 files changed, 43 insertions(+), 21 deletions(-)
+
+diff --git a/gcc/config/alpha/linux-unwind.h b/gcc/config/alpha/linux-unwind.h
+index 4c811dc..8c04b3b 100644
+--- a/gcc/config/alpha/linux-unwind.h
++++ b/gcc/config/alpha/linux-unwind.h
+@@ -49,7 +49,7 @@ alpha_fallback_frame_state (struct _Unwind_Context *context,
+   else if (pc[1] == 0x201f015f)		/* lda $0,NR_rt_sigreturn */
+     {
+       struct rt_sigframe {
+-	struct siginfo info;
++	siginfo_t info;
+ 	struct ucontext uc;
+       } *rt_ = context->cfa;
+       sc = &rt_->uc.uc_mcontext;
+diff --git a/gcc/config/bfin/linux-unwind.h b/gcc/config/bfin/linux-unwind.h
+index 88c8285..15bb2f1 100644
+--- a/gcc/config/bfin/linux-unwind.h
++++ b/gcc/config/bfin/linux-unwind.h
+@@ -48,10 +48,10 @@ bfin_fallback_frame_state (struct _Unwind_Context *context,
+     {
+       struct rt_sigframe {
+ 	int sig;
+-	struct siginfo *pinfo;
++	siginfo_t *pinfo;
+ 	void *puc;
+ 	char retcode[8];
+-	struct siginfo info;
++	siginfo_t info;
+ 	struct ucontext uc;
+       } *rt_ = context->cfa;
+ 
+diff --git a/gcc/config/i386/linux-unwind.h b/gcc/config/i386/linux-unwind.h
+index 36ee370..fe0ea3e 100644
+--- a/gcc/config/i386/linux-unwind.h
++++ b/gcc/config/i386/linux-unwind.h
+@@ -133,9 +133,9 @@ x86_fallback_frame_state (struct _Unwind_Context *context,
+     {
+       struct rt_sigframe {
+ 	int sig;
+-	struct siginfo *pinfo;
++	siginfo_t *pinfo;
+ 	void *puc;
+-	struct siginfo info;
++	siginfo_t info;
+ 	struct ucontext uc;
+       } *rt_ = context->cfa;
+       /* The void * cast is necessary to avoid an aliasing warning.
+diff --git a/gcc/config/ia64/linux-unwind.h b/gcc/config/ia64/linux-unwind.h
+index 93f762d..da31259 100644
+--- a/gcc/config/ia64/linux-unwind.h
++++ b/gcc/config/ia64/linux-unwind.h
+@@ -47,7 +47,7 @@ ia64_fallback_frame_state (struct _Unwind_Context *context,
+       struct sigframe {
+ 	char scratch[16];
+ 	unsigned long sig_number;
+-	struct siginfo *info;
++	siginfo_t *info;
+ 	struct sigcontext *sc;
+       } *frame_ = (struct sigframe *)context->psp;
+       struct sigcontext *sc = frame_->sc;
+@@ -137,7 +137,7 @@ ia64_handle_unwabi (struct _Unwind_Context *context, _Unwind_FrameState *fs)
+       struct sigframe {
+ 	char scratch[16];
+ 	unsigned long sig_number;
+-	struct siginfo *info;
++	siginfo_t *info;
+ 	struct sigcontext *sc;
+       } *frame = (struct sigframe *)context->psp;
+       struct sigcontext *sc = frame->sc;
+diff --git a/gcc/config/mips/linux-unwind.h b/gcc/config/mips/linux-unwind.h
+index 02f7cd5..094ff58 100644
+--- a/gcc/config/mips/linux-unwind.h
++++ b/gcc/config/mips/linux-unwind.h
+@@ -75,7 +76,7 @@ mips_fallback_frame_state (struct _Unwind_Context *context,
+       struct rt_sigframe {
+ 	u_int32_t ass[4];  /* Argument save space for o32.  */
+ 	u_int32_t trampoline[2];
+-	struct siginfo info;
++	siginfo_t info;
+ 	_sig_ucontext_t uc;
+       } *rt_ = context->cfa;
+       sc = &rt_->uc.uc_mcontext;
+diff --git a/gcc/config/pa/linux-unwind.h b/gcc/config/pa/linux-unwind.h
+index a0560e9..38b4eda 100644
+--- a/gcc/config/pa/linux-unwind.h
++++ b/gcc/config/pa/linux-unwind.h
+@@ -63,7 +63,7 @@ pa32_fallback_frame_state (struct _Unwind_Context *context,
+   int i;
+   struct sigcontext *sc;
+   struct rt_sigframe {
+-    struct siginfo info;
++    siginfo_t info;
+     struct ucontext uc;
+   } *frame;
+ 
+diff --git a/gcc/config/sh/linux-unwind.h b/gcc/config/sh/linux-unwind.h
+index 94ed95d..5a78e31 100644
+--- a/gcc/config/sh/linux-unwind.h
++++ b/gcc/config/sh/linux-unwind.h
+@@ -80,9 +81,9 @@ shmedia_fallback_frame_state (struct _Unwind_Context *context,
+ 	   && (*(unsigned long *) (pc+11)  == 0x6ff0fff0))
+     {
+       struct rt_sigframe {
+-	struct siginfo *pinfo;
++	siginfo_t *pinfo;
+ 	void *puc;
+-	struct siginfo info;
++	siginfo_t info;
+ 	struct ucontext uc;
+       } *rt_ = context->cfa;
+       /* The void * cast is necessary to avoid an aliasing warning.
+@@ -179,7 +180,7 @@ sh_fallback_frame_state (struct _Unwind_Context *context,
+ 		&& (*(unsigned short *) (pc+14)  == 0x00ad))))
+     {
+       struct rt_sigframe {
+-	struct siginfo info;
++	siginfo_t info;
+ 	struct ucontext uc;
+       } *rt_ = context->cfa;
+       /* The void * cast is necessary to avoid an aliasing warning.
+diff --git a/gcc/config/xtensa/linux-unwind.h b/gcc/config/xtensa/linux-unwind.h
+index 32e9349..2456497 100644
+--- a/gcc/config/xtensa/linux-unwind.h
++++ b/gcc/config/xtensa/linux-unwind.h
+@@ -62,7 +62,7 @@ xtensa_fallback_frame_state (struct _Unwind_Context *context,
+   struct sigcontext *sc;
+ 
+   struct rt_sigframe {
+-    struct siginfo info;
++    siginfo_t info;
+     struct ucontext uc;
+   } *rt_;
+ 
+-- 
+1.7.9.7
+
diff --git a/pkgs/development/compilers/gcc/4.4/default.nix b/pkgs/development/compilers/gcc/4.4/default.nix
index d962d4ac3471a..60e7baa778129 100644
--- a/pkgs/development/compilers/gcc/4.4/default.nix
+++ b/pkgs/development/compilers/gcc/4.4/default.nix
@@ -84,9 +84,9 @@ let version = "4.4.6";
         " --enable-nls" +
         " --disable-decimal-float" # No final libdecnumber (it may work only in 386)
         );
-    stageNameAddon = if (crossStageStatic) then "-stage-static" else
+    stageNameAddon = if crossStageStatic then "-stage-static" else
       "-stage-final";
-    crossNameAddon = if (cross != null) then "-${cross.config}" + stageNameAddon else "";
+    crossNameAddon = if cross != null then "-${cross.config}" + stageNameAddon else "";
 
 in
 
@@ -104,16 +104,19 @@ stdenv.mkDerivation ({
   };
 
   patches =
-    [./pass-cxxcpp.patch
+    [ ./pass-cxxcpp.patch
 
-     # libmudflap and libstdc++ receive the build CPP,
-     # and not the target.
-     # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42279
-     ./target-cpp.patch
+      # libmudflap and libstdc++ receive the build CPP,
+      # and not the target.
+      # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42279
+      ./target-cpp.patch
 
-     # Bad mixture of build/target flags
-     ./libstdc++-target.patch
-     ]
+      # Bad mixture of build/target flags
+      ./libstdc++-target.patch
+
+      # Compatibility with newer Glibc.
+      ./siginfo_t_fix.patch
+    ]
     ++ optional noSysDirs ./no-sys-dirs.patch
     # The GNAT Makefiles did not pay attention to CFLAGS_FOR_TARGET for its
     # target libraries and tools.
@@ -124,7 +127,7 @@ stdenv.mkDerivation ({
   inherit noSysDirs profiledCompiler staticCompiler langJava crossStageStatic
     libcCross;
 
-  buildNativeInputs = [ texinfo which ];
+  nativeBuildInputs = [ texinfo which ];
 
   buildInputs = [ gmp mpfr gettext ]
     ++ (optional (ppl != null) ppl)
@@ -163,11 +166,11 @@ stdenv.mkDerivation ({
       )
     }
     ${if langAda then " --enable-libada" else ""}
-    ${if (cross == null && stdenv.isi686) then "--with-arch=i686" else ""}
+    ${if cross == null && stdenv.isi686 then "--with-arch=i686" else ""}
     ${if cross != null then crossConfigureFlags else ""}
   ";
 
-  targetConfig = if (cross != null) then cross.config else null;
+  targetConfig = if cross != null then cross.config else null;
 
   # Needed for the cross compilation to work
   AR = "ar";
@@ -189,13 +192,13 @@ stdenv.mkDerivation ({
     configureFlags = "
       ${if enableMultilib then "" else "--disable-multilib"}
       ${if enableShared then "" else "--disable-shared"}
-      ${if ppl != null then "--with-ppl=${ppl.hostDrv}" else ""}
-      ${if cloogppl != null then "--with-cloog=${cloogppl.hostDrv}" else ""}
-      ${if langJava then "--with-ecj-jar=${javaEcj.hostDrv}" else ""}
+      ${if ppl != null then "--with-ppl=${ppl.crossDrv}" else ""}
+      ${if cloogppl != null then "--with-cloog=${cloogppl.crossDrv}" else ""}
+      ${if langJava then "--with-ecj-jar=${javaEcj.crossDrv}" else ""}
       ${if javaAwtGtk then "--enable-java-awt=gtk" else ""}
-      ${if langJava && javaAntlr != null then "--with-antlr-jar=${javaAntlr.hostDrv}" else ""}
-      --with-gmp=${gmp.hostDrv}
-      --with-mpfr=${mpfr.hostDrv}
+      ${if langJava && javaAntlr != null then "--with-antlr-jar=${javaAntlr.crossDrv}" else ""}
+      --with-gmp=${gmp.crossDrv}
+      --with-mpfr=${mpfr.crossDrv}
       --disable-libstdcxx-pch
       --without-included-gettext
       --with-system-zlib
@@ -211,7 +214,7 @@ stdenv.mkDerivation ({
         )
       }
       ${if langAda then " --enable-libada" else ""}
-      ${if (cross == null && stdenv.isi686) then "--with-arch=i686" else ""}
+      ${if cross == null && stdenv.isi686 then "--with-arch=i686" else ""}
       ${if cross != null then crossConfigureFlags else ""}
       --target=${stdenv.cross.config}
     ";
@@ -243,7 +246,7 @@ stdenv.mkDerivation ({
       enableMultilib version; };
 
   # ghdl does not build fine with parallel building
-  enableParallelBuilding = if langVhdl then false else true;
+  enableParallelBuilding = !langVhdl;
 
   meta = {
     homepage = http://gcc.gnu.org/;
diff --git a/pkgs/development/compilers/gcc/4.4/siginfo_t_fix.patch b/pkgs/development/compilers/gcc/4.4/siginfo_t_fix.patch
new file mode 100644
index 0000000000000..8b126cd08c363
--- /dev/null
+++ b/pkgs/development/compilers/gcc/4.4/siginfo_t_fix.patch
@@ -0,0 +1,174 @@
+https://bugs.gentoo.org/424970
+
+fix from upstream for building with newer glibc versions
+
+From f0cdca2bf2230005025e13e7354fedb612933c96 Mon Sep 17 00:00:00 2001
+From: tschwinge <tschwinge@138bc75d-0d04-0410-961f-82ee72b054a4>
+Date: Fri, 20 Apr 2012 08:14:00 +0000
+Subject: [PATCH] 	struct siginfo vs. siginfo_t
+
+	Backport from trunk (but apply to gcc/):
+
+	2012-04-20  Thomas Schwinge  <thomas@codesourcery.com>
+
+gcc/
+	* config/alpha/linux-unwind.h (alpha_fallback_frame_state): Use
+	siginfo_t instead of struct siginfo.
+	* config/bfin/linux-unwind.h (bfin_fallback_frame_state): Likewise.
+	* config/i386/linux-unwind.h (x86_fallback_frame_state): Likewise.
+	* config/ia64/linux-unwind.h (ia64_fallback_frame_state)
+	(ia64_handle_unwabi): Likewise.
+	* config/mips/linux-unwind.h (mips_fallback_frame_state): Likewise.
+	* config/pa/linux-unwind.h (pa32_fallback_frame_state): Likewise.
+	* config/sh/linux-unwind.h (shmedia_fallback_frame_state)
+	(sh_fallback_frame_state): Likewise.
+	* config/xtensa/linux-unwind.h (xtensa_fallback_frame_state): Likewise.
+
+git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_5-branch@186613 138bc75d-0d04-0410-961f-82ee72b054a4
+---
+ gcc/ChangeLog                    |   20 ++++++++++++++++++++
+ gcc/config/alpha/linux-unwind.h  |    4 ++--
+ gcc/config/bfin/linux-unwind.h   |    6 +++---
+ gcc/config/i386/linux-unwind.h   |    6 +++---
+ gcc/config/ia64/linux-unwind.h   |    6 +++---
+ gcc/config/mips/linux-unwind.h   |    5 +++--
+ gcc/config/pa/linux-unwind.h     |    4 ++--
+ gcc/config/sh/linux-unwind.h     |    9 +++++----
+ gcc/config/xtensa/linux-unwind.h |    4 ++--
+ 9 files changed, 43 insertions(+), 21 deletions(-)
+
+diff --git a/gcc/config/alpha/linux-unwind.h b/gcc/config/alpha/linux-unwind.h
+index 4c811dc..8c04b3b 100644
+--- a/gcc/config/alpha/linux-unwind.h
++++ b/gcc/config/alpha/linux-unwind.h
+@@ -49,7 +49,7 @@ alpha_fallback_frame_state (struct _Unwind_Context *context,
+   else if (pc[1] == 0x201f015f)		/* lda $0,NR_rt_sigreturn */
+     {
+       struct rt_sigframe {
+-	struct siginfo info;
++	siginfo_t info;
+ 	struct ucontext uc;
+       } *rt_ = context->cfa;
+       sc = &rt_->uc.uc_mcontext;
+diff --git a/gcc/config/bfin/linux-unwind.h b/gcc/config/bfin/linux-unwind.h
+index 88c8285..15bb2f1 100644
+--- a/gcc/config/bfin/linux-unwind.h
++++ b/gcc/config/bfin/linux-unwind.h
+@@ -48,10 +48,10 @@ bfin_fallback_frame_state (struct _Unwind_Context *context,
+     {
+       struct rt_sigframe {
+ 	int sig;
+-	struct siginfo *pinfo;
++	siginfo_t *pinfo;
+ 	void *puc;
+ 	char retcode[8];
+-	struct siginfo info;
++	siginfo_t info;
+ 	struct ucontext uc;
+       } *rt_ = context->cfa;
+ 
+diff --git a/gcc/config/i386/linux-unwind.h b/gcc/config/i386/linux-unwind.h
+index 36ee370..fe0ea3e 100644
+--- a/gcc/config/i386/linux-unwind.h
++++ b/gcc/config/i386/linux-unwind.h
+@@ -133,9 +133,9 @@ x86_fallback_frame_state (struct _Unwind_Context *context,
+     {
+       struct rt_sigframe {
+ 	int sig;
+-	struct siginfo *pinfo;
++	siginfo_t *pinfo;
+ 	void *puc;
+-	struct siginfo info;
++	siginfo_t info;
+ 	struct ucontext uc;
+       } *rt_ = context->cfa;
+       /* The void * cast is necessary to avoid an aliasing warning.
+diff --git a/gcc/config/ia64/linux-unwind.h b/gcc/config/ia64/linux-unwind.h
+index 93f762d..da31259 100644
+--- a/gcc/config/ia64/linux-unwind.h
++++ b/gcc/config/ia64/linux-unwind.h
+@@ -47,7 +47,7 @@ ia64_fallback_frame_state (struct _Unwind_Context *context,
+       struct sigframe {
+ 	char scratch[16];
+ 	unsigned long sig_number;
+-	struct siginfo *info;
++	siginfo_t *info;
+ 	struct sigcontext *sc;
+       } *frame_ = (struct sigframe *)context->psp;
+       struct sigcontext *sc = frame_->sc;
+@@ -137,7 +137,7 @@ ia64_handle_unwabi (struct _Unwind_Context *context, _Unwind_FrameState *fs)
+       struct sigframe {
+ 	char scratch[16];
+ 	unsigned long sig_number;
+-	struct siginfo *info;
++	siginfo_t *info;
+ 	struct sigcontext *sc;
+       } *frame = (struct sigframe *)context->psp;
+       struct sigcontext *sc = frame->sc;
+diff --git a/gcc/config/mips/linux-unwind.h b/gcc/config/mips/linux-unwind.h
+index 02f7cd5..094ff58 100644
+--- a/gcc/config/mips/linux-unwind.h
++++ b/gcc/config/mips/linux-unwind.h
+@@ -75,7 +76,7 @@ mips_fallback_frame_state (struct _Unwind_Context *context,
+       struct rt_sigframe {
+ 	u_int32_t ass[4];  /* Argument save space for o32.  */
+ 	u_int32_t trampoline[2];
+-	struct siginfo info;
++	siginfo_t info;
+ 	_sig_ucontext_t uc;
+       } *rt_ = context->cfa;
+       sc = &rt_->uc.uc_mcontext;
+diff --git a/gcc/config/pa/linux-unwind.h b/gcc/config/pa/linux-unwind.h
+index a0560e9..38b4eda 100644
+--- a/gcc/config/pa/linux-unwind.h
++++ b/gcc/config/pa/linux-unwind.h
+@@ -63,7 +63,7 @@ pa32_fallback_frame_state (struct _Unwind_Context *context,
+   int i;
+   struct sigcontext *sc;
+   struct rt_sigframe {
+-    struct siginfo info;
++    siginfo_t info;
+     struct ucontext uc;
+   } *frame;
+ 
+diff --git a/gcc/config/sh/linux-unwind.h b/gcc/config/sh/linux-unwind.h
+index 94ed95d..5a78e31 100644
+--- a/gcc/config/sh/linux-unwind.h
++++ b/gcc/config/sh/linux-unwind.h
+@@ -80,9 +81,9 @@ shmedia_fallback_frame_state (struct _Unwind_Context *context,
+ 	   && (*(unsigned long *) (pc+11)  == 0x6ff0fff0))
+     {
+       struct rt_sigframe {
+-	struct siginfo *pinfo;
++	siginfo_t *pinfo;
+ 	void *puc;
+-	struct siginfo info;
++	siginfo_t info;
+ 	struct ucontext uc;
+       } *rt_ = context->cfa;
+       /* The void * cast is necessary to avoid an aliasing warning.
+@@ -179,7 +180,7 @@ sh_fallback_frame_state (struct _Unwind_Context *context,
+ 		&& (*(unsigned short *) (pc+14)  == 0x00ad))))
+     {
+       struct rt_sigframe {
+-	struct siginfo info;
++	siginfo_t info;
+ 	struct ucontext uc;
+       } *rt_ = context->cfa;
+       /* The void * cast is necessary to avoid an aliasing warning.
+diff --git a/gcc/config/xtensa/linux-unwind.h b/gcc/config/xtensa/linux-unwind.h
+index 32e9349..2456497 100644
+--- a/gcc/config/xtensa/linux-unwind.h
++++ b/gcc/config/xtensa/linux-unwind.h
+@@ -62,7 +62,7 @@ xtensa_fallback_frame_state (struct _Unwind_Context *context,
+   struct sigcontext *sc;
+ 
+   struct rt_sigframe {
+-    struct siginfo info;
++    siginfo_t info;
+     struct ucontext uc;
+   } *rt_;
+ 
+-- 
+1.7.9.7
+
diff --git a/pkgs/development/compilers/gcc/4.5/default.nix b/pkgs/development/compilers/gcc/4.5/default.nix
index 9cf38718a473e..cb0432b66728a 100644
--- a/pkgs/development/compilers/gcc/4.5/default.nix
+++ b/pkgs/development/compilers/gcc/4.5/default.nix
@@ -78,7 +78,7 @@ let version = "4.5.4";
       withArch +
       withCpu +
       withAbi +
-      (if (crossMingw && crossStageStatic) then
+      (if crossMingw && crossStageStatic then
         " --with-headers=${libcCross}/include" +
         " --with-gcc" +
         " --with-gnu-as" +
@@ -115,9 +115,9 @@ let version = "4.5.4";
           " --enable-nls" +
           " --disable-decimal-float") # No final libdecnumber (it may work only in 386)
         );
-    stageNameAddon = if (crossStageStatic) then "-stage-static" else
+    stageNameAddon = if crossStageStatic then "-stage-static" else
       "-stage-final";
-    crossNameAddon = if (cross != null) then "-${cross.config}" + stageNameAddon else "";
+    crossNameAddon = if cross != null then "-${cross.config}" + stageNameAddon else "";
 
 in
 
@@ -146,7 +146,7 @@ stdenv.mkDerivation ({
 
   postPatch =
     if (stdenv.system == "i586-pc-gnu"
-        || (libcCross != null                  # e.g., building `gcc.hostDrv'
+        || (libcCross != null                  # e.g., building `gcc.crossDrv'
             && libcCross ? crossConfig
             && libcCross.crossConfig == "i586-pc-gnu")
         || (cross != null && cross.config == "i586-pc-gnu"
@@ -189,7 +189,7 @@ stdenv.mkDerivation ({
       # On NixOS, use the right path to the dynamic linker instead of
       # `/lib/ld*.so'.
       let
-        libc = if (libcCross != null) then libcCross else stdenv.gcc.libc;
+        libc = if libcCross != null then libcCross else stdenv.gcc.libc;
       in
         '' echo "fixing the \`GLIBC_DYNAMIC_LINKER' and \`UCLIBC_DYNAMIC_LINKER' macros..."
            for header in "gcc/config/"*-gnu.h "gcc/config/"*"/"*.h
@@ -205,7 +205,7 @@ stdenv.mkDerivation ({
   inherit noSysDirs profiledCompiler staticCompiler langJava crossStageStatic
     libcCross crossMingw;
 
-  buildNativeInputs = [ texinfo which ]
+  nativeBuildInputs = [ texinfo which ]
     ++ optional (perl != null) perl;
     
   buildInputs = [ gmp mpfr mpc libelf gettext ]
@@ -237,7 +237,7 @@ stdenv.mkDerivation ({
     --with-gmp=${gmp}
     --with-mpfr=${mpfr}
     --with-mpc=${mpc}
-    ${if (libelf != null) then "--with-libelf=${libelf}" else ""}
+    ${if libelf != null then "--with-libelf=${libelf}" else ""}
     --disable-libstdcxx-pch
     --without-included-gettext
     --with-system-zlib
@@ -255,11 +255,11 @@ stdenv.mkDerivation ({
     ${ # Trick that should be taken out once we have a mips64el-linux not loongson2f
       if cross == null && stdenv.system == "mips64el-linux" then "--with-arch=loongson2f" else ""}
     ${if langAda then " --enable-libada" else ""}
-    ${if (cross == null && stdenv.isi686) then "--with-arch=i686" else ""}
+    ${if cross == null && stdenv.isi686 then "--with-arch=i686" else ""}
     ${if cross != null then crossConfigureFlags else ""}
   ";
 
-  targetConfig = if (cross != null) then cross.config else null;
+  targetConfig = if cross != null then cross.config else null;
 
   crossAttrs = {
     AR = "${stdenv.cross.config}-ar";
@@ -277,13 +277,13 @@ stdenv.mkDerivation ({
     configureFlags = ''
       ${if enableMultilib then "" else "--disable-multilib"}
       ${if enableShared then "" else "--disable-shared"}
-      ${if ppl != null then "--with-ppl=${ppl.hostDrv}" else ""}
-      ${if cloogppl != null then "--with-cloog=${cloogppl.hostDrv}" else ""}
-      ${if langJava then "--with-ecj-jar=${javaEcj.hostDrv}" else ""}
+      ${if ppl != null then "--with-ppl=${ppl.crossDrv}" else ""}
+      ${if cloogppl != null then "--with-cloog=${cloogppl.crossDrv}" else ""}
+      ${if langJava then "--with-ecj-jar=${javaEcj.crossDrv}" else ""}
       ${if javaAwtGtk then "--enable-java-awt=gtk" else ""}
-      ${if langJava && javaAntlr != null then "--with-antlr-jar=${javaAntlr.hostDrv}" else ""}
-      --with-gmp=${gmp.hostDrv}
-      --with-mpfr=${mpfr.hostDrv}
+      ${if langJava && javaAntlr != null then "--with-antlr-jar=${javaAntlr.crossDrv}" else ""}
+      --with-gmp=${gmp.crossDrv}
+      --with-mpfr=${mpfr.crossDrv}
       --disable-libstdcxx-pch
       --without-included-gettext
       --with-system-zlib
@@ -299,7 +299,7 @@ stdenv.mkDerivation ({
         )
       }
       ${if langAda then " --enable-libada" else ""}
-      ${if (cross == null && stdenv.isi686) then "--with-arch=i686" else ""}
+      ${if cross == null && stdenv.isi686 then "--with-arch=i686" else ""}
       ${if cross != null then crossConfigureFlags else ""}
       --target=${stdenv.cross.config}
     '';
@@ -391,7 +391,7 @@ stdenv.mkDerivation ({
 
 // optionalAttrs (cross != null || libcCross != null) {
   # `builder.sh' sets $CPP, which leads configure to use "gcc -E" instead of,
-  # say, "i586-pc-gnu-gcc -E" when building `gcc.hostDrv'.
+  # say, "i586-pc-gnu-gcc -E" when building `gcc.crossDrv'.
   # FIXME: Fix `builder.sh' directly in the next stdenv-update.
   postUnpack = "unset CPP";
 }
diff --git a/pkgs/development/compilers/gcc/4.6/builder.sh b/pkgs/development/compilers/gcc/4.6/builder.sh
index 6cd64bc58f209..bdf15be5a996d 100644
--- a/pkgs/development/compilers/gcc/4.6/builder.sh
+++ b/pkgs/development/compilers/gcc/4.6/builder.sh
@@ -196,6 +196,15 @@ postConfigure() {
 }
 
 
+preInstall() {
+    # Make ‘lib64’ a symlink to ‘lib’.
+    if [ -n "$is64bit" -a -z "$enableMultilib" ]; then
+        mkdir -p $out/lib
+        ln -s lib $out/lib64
+    fi
+}
+
+
 postInstall() {
     # Remove precompiled headers for now.  They are very big and
     # probably not very useful yet.
@@ -234,13 +243,4 @@ postInstall() {
     eval "$postInstallGhdl"
 }
 
-
-if test -z "$targetConfig" && test -z "$crossConfig"; then
-    if test -z "$profiledCompiler"; then
-        buildFlags="bootstrap $buildFlags"
-    else    
-        buildFlags="profiledbootstrap $buildFlags"
-    fi
-fi
-
 genericBuild
diff --git a/pkgs/development/compilers/gcc/4.6/default.nix b/pkgs/development/compilers/gcc/4.6/default.nix
index b77fd08850164..d95e161ba2381 100644
--- a/pkgs/development/compilers/gcc/4.6/default.nix
+++ b/pkgs/development/compilers/gcc/4.6/default.nix
@@ -51,7 +51,10 @@ let version = "4.6.3";
     # Whether building a cross-compiler for GNU/Hurd.
     crossGNU = cross != null && cross.config == "i586-pc-gnu";
 
-    patches = [ ]
+    patches =
+      [ # Fix building on Glibc 2.16.
+        ./siginfo_t_fix.patch
+      ]
       ++ optional (cross != null) ./libstdc++-target.patch
       ++ optional noSysDirs ./no-sys-dirs.patch
       # The GNAT Makefiles did not pay attention to CFLAGS_FOR_TARGET for its
@@ -84,71 +87,95 @@ let version = "4.6.3";
 
     javaAwtGtk = langJava && gtk != null;
 
+    /* Platform flags */
+    platformFlags = let
+        gccArch = stdenv.lib.attrByPath [ "platform" "gcc" "arch" ] null stdenv;
+        gccCpu = stdenv.lib.attrByPath [ "platform" "gcc" "cpu" ] null stdenv;
+        gccAbi = stdenv.lib.attrByPath [ "platform" "gcc" "abi" ] null stdenv;
+        gccFpu = stdenv.lib.attrByPath [ "platform" "gcc" "fpu" ] null stdenv;
+        gccFloat = stdenv.lib.attrByPath [ "platform" "gcc" "float" ] null stdenv;
+        withArch = if gccArch != null then " --with-arch=${gccArch}" else "";
+        withCpu = if gccCpu != null then " --with-cpu=${gccCpu}" else "";
+        withAbi = if gccAbi != null then " --with-abi=${gccAbi}" else "";
+        withFpu = if gccFpu != null then " --with-fpu=${gccFpu}" else "";
+        withFloat = if gccFloat != null then " --with-float=${gccFloat}" else "";
+      in 
+        (withArch +
+        withCpu +
+        withAbi +
+        withFpu +
+        withFloat);
+
     /* Cross-gcc settings */
-    gccArch = stdenv.lib.attrByPath [ "gcc" "arch" ] null cross;
-    gccCpu = stdenv.lib.attrByPath [ "gcc" "cpu" ] null cross;
-    gccAbi = stdenv.lib.attrByPath [ "gcc" "abi" ] null cross;
-    withArch = if gccArch != null then " --with-arch=${gccArch}" else "";
-    withCpu = if gccCpu != null then " --with-cpu=${gccCpu}" else "";
-    withAbi = if gccAbi != null then " --with-abi=${gccAbi}" else "";
     crossMingw = (cross != null && cross.libc == "msvcrt");
-
-    crossConfigureFlags =
-      "--target=${cross.config}" +
-      withArch +
-      withCpu +
-      withAbi +
-      (if (crossMingw && crossStageStatic) then
-        " --with-headers=${libcCross}/include" +
-        " --with-gcc" +
-        " --with-gnu-as" +
-        " --with-gnu-ld" +
-        " --with-gnu-ld" +
-        " --disable-shared" +
-        " --disable-nls" +
-        " --disable-debug" +
-        " --enable-sjlj-exceptions" +
-        " --enable-threads=win32" +
-        " --disable-win32-registry"
-        else if crossStageStatic then
-        " --disable-libssp --disable-nls" +
-        " --without-headers" +
-        " --disable-threads " +
-        " --disable-libmudflap " +
-        " --disable-libgomp " +
-        " --disable-libquadmath" +
-        " --disable-shared" +
-        " --disable-decimal-float" # libdecnumber requires libc
-        else
-        " --with-headers=${libcCross}/include" +
-        " --enable-__cxa_atexit" +
-        " --enable-long-long" +
-        (if crossMingw then
-          " --enable-threads=win32" +
-          " --enable-sjlj-exceptions" +
-          " --enable-hash-synchronization" +
-          " --disable-libssp" +
+    crossConfigureFlags = let
+        gccArch = stdenv.lib.attrByPath [ "gcc" "arch" ] null cross;
+        gccCpu = stdenv.lib.attrByPath [ "gcc" "cpu" ] null cross;
+        gccAbi = stdenv.lib.attrByPath [ "gcc" "abi" ] null cross;
+        gccFpu = stdenv.lib.attrByPath [ "gcc" "fpu" ] null cross;
+        withArch = if gccArch != null then " --with-arch=${gccArch}" else "";
+        withCpu = if gccCpu != null then " --with-cpu=${gccCpu}" else "";
+        withAbi = if gccAbi != null then " --with-abi=${gccAbi}" else "";
+        withFpu = if gccFpu != null then " --with-fpu=${gccFpu}" else "";
+      in
+        "--target=${cross.config}" +
+        withArch +
+        withCpu +
+        withAbi +
+        withFpu +
+        (if crossMingw && crossStageStatic then
+          " --with-headers=${libcCross}/include" +
+          " --with-gcc" +
+          " --with-gnu-as" +
+          " --with-gnu-ld" +
+          " --with-gnu-ld" +
+          " --disable-shared" +
           " --disable-nls" +
-          " --with-dwarf2" +
-          # I think noone uses shared gcc libs in mingw, so we better do the same.
-          # In any case, mingw32 g++ linking is broken by default with shared libs,
-          # unless adding "-lsupc++" to any linking command. I don't know why.
+          " --disable-debug" +
+          " --enable-sjlj-exceptions" +
+          " --enable-threads=win32" +
+          " --disable-win32-registry"
+          else if crossStageStatic then
+          " --disable-libssp --disable-nls" +
+          " --without-headers" +
+          " --disable-threads " +
+          " --disable-libmudflap " +
+          " --disable-libgomp " +
+          " --disable-libquadmath" +
           " --disable-shared" +
-          (if cross.config == "x86_64-w64-mingw32" then
-            # To keep ABI compatibility with upstream mingw-w64
-            " --enable-fully-dynamic-string"
-            else "")
-          else (if cross.libc == "uclibc" then
-            # In uclibc cases, libgomp needs an additional '-ldl'
-            # and as I don't know how to pass it, I disable libgomp.
-            " --disable-libgomp" else "") +
-          " --enable-threads=posix" +
-          " --enable-nls" +
-          " --disable-decimal-float") # No final libdecnumber (it may work only in 386)
-        );
-    stageNameAddon = if (crossStageStatic) then "-stage-static" else
+          " --disable-decimal-float" # libdecnumber requires libc
+          else
+          " --with-headers=${libcCross}/include" +
+          " --enable-__cxa_atexit" +
+          " --enable-long-long" +
+          (if crossMingw then
+            " --enable-threads=win32" +
+            " --enable-sjlj-exceptions" +
+            " --enable-hash-synchronization" +
+            " --disable-libssp" +
+            " --disable-nls" +
+            " --with-dwarf2" +
+            # I think noone uses shared gcc libs in mingw, so we better do the same.
+            # In any case, mingw32 g++ linking is broken by default with shared libs,
+            # unless adding "-lsupc++" to any linking command. I don't know why.
+            " --disable-shared" +
+            (if cross.config == "x86_64-w64-mingw32" then
+              # To keep ABI compatibility with upstream mingw-w64
+              " --enable-fully-dynamic-string"
+              else "")
+            else (if cross.libc == "uclibc" then
+              # In uclibc cases, libgomp needs an additional '-ldl'
+              # and as I don't know how to pass it, I disable libgomp.
+              " --disable-libgomp" else "") +
+            " --enable-threads=posix" +
+            " --enable-nls" +
+            " --disable-decimal-float") # No final libdecnumber (it may work only in 386)
+          );
+    stageNameAddon = if crossStageStatic then "-stage-static" else
       "-stage-final";
-    crossNameAddon = if (cross != null) then "-${cross.config}" + stageNameAddon else "";
+    crossNameAddon = if cross != null then "-${cross.config}" + stageNameAddon else "";
+
+  bootstrap = cross == null && !stdenv.isArm && !stdenv.isMips;
 
 in
 
@@ -165,11 +192,11 @@ stdenv.mkDerivation ({
     inherit langC langCC langFortran langJava langAda langGo;
   };
 
-  inherit patches;
+  inherit patches enableMultilib;
 
   postPatch =
     if (stdenv.isGNU
-        || (libcCross != null                  # e.g., building `gcc.hostDrv'
+        || (libcCross != null                  # e.g., building `gcc.crossDrv'
             && libcCross ? crossConfig
             && libcCross.crossConfig == "i586-pc-gnu")
         || (crossGNU && libcCross != null))
@@ -211,7 +238,7 @@ stdenv.mkDerivation ({
       # On NixOS, use the right path to the dynamic linker instead of
       # `/lib/ld*.so'.
       let
-        libc = if (libcCross != null) then libcCross else stdenv.gcc.libc;
+        libc = if libcCross != null then libcCross else stdenv.gcc.libc;
       in
         '' echo "fixing the \`GLIBC_DYNAMIC_LINKER' and \`UCLIBC_DYNAMIC_LINKER' macros..."
            for header in "gcc/config/"*-gnu.h "gcc/config/"*"/"*.h
@@ -224,10 +251,10 @@ stdenv.mkDerivation ({
         ''
     else null;
 
-  inherit noSysDirs profiledCompiler staticCompiler langJava crossStageStatic
+  inherit noSysDirs staticCompiler langJava crossStageStatic
     libcCross crossMingw;
 
-  buildNativeInputs = [ texinfo which gettext ]
+  nativeBuildInputs = [ texinfo which gettext ]
     ++ (optional (perl != null) perl)
     ++ (optional javaAwtGtk pkgconfig);
 
@@ -270,7 +297,7 @@ stdenv.mkDerivation ({
     --with-gmp=${gmp}
     --with-mpfr=${mpfr}
     --with-mpc=${mpc}
-    ${if (libelf != null) then "--with-libelf=${libelf}" else ""}
+    ${if libelf != null then "--with-libelf=${libelf}" else ""}
     --disable-libstdcxx-pch
     --without-included-gettext
     --with-system-zlib
@@ -286,14 +313,18 @@ stdenv.mkDerivation ({
         )
       )
     }
-    ${ # Trick that should be taken out once we have a mips64el-linux not loongson2f
-      if cross == null && stdenv.system == "mips64el-linux" then "--with-arch=loongson2f" else ""}
     ${if langAda then " --enable-libada" else ""}
-    ${if (cross == null && stdenv.isi686) then "--with-arch=i686" else ""}
+    ${if cross == null && stdenv.isi686 then "--with-arch=i686" else ""}
     ${if cross != null then crossConfigureFlags else ""}
+    ${if !bootstrap then "--disable-bootstrap" else ""}
+    ${if cross == null then platformFlags else ""}
   ";
 
-  targetConfig = if (cross != null) then cross.config else null;
+  targetConfig = if cross != null then cross.config else null;
+
+  buildFlags = if bootstrap then
+    (if profiledCompiler then "profiledbootstrap" else "bootstrap")
+    else "";
 
   installTargets =
     if stripped
@@ -317,13 +348,13 @@ stdenv.mkDerivation ({
     configureFlags = ''
       ${if enableMultilib then "" else "--disable-multilib"}
       ${if enableShared then "" else "--disable-shared"}
-      ${if ppl != null then "--with-ppl=${ppl.hostDrv}" else ""}
-      ${if cloog != null then "--with-cloog=${cloog.hostDrv} --enable-cloog-backend=isl" else ""}
-      ${if langJava then "--with-ecj-jar=${javaEcj.hostDrv}" else ""}
+      ${if ppl != null then "--with-ppl=${ppl.crossDrv}" else ""}
+      ${if cloog != null then "--with-cloog=${cloog.crossDrv} --enable-cloog-backend=isl" else ""}
+      ${if langJava then "--with-ecj-jar=${javaEcj.crossDrv}" else ""}
       ${if javaAwtGtk then "--enable-java-awt=gtk" else ""}
-      ${if langJava && javaAntlr != null then "--with-antlr-jar=${javaAntlr.hostDrv}" else ""}
-      --with-gmp=${gmp.hostDrv}
-      --with-mpfr=${mpfr.hostDrv}
+      ${if langJava && javaAntlr != null then "--with-antlr-jar=${javaAntlr.crossDrv}" else ""}
+      --with-gmp=${gmp.crossDrv}
+      --with-mpfr=${mpfr.crossDrv}
       --disable-libstdcxx-pch
       --without-included-gettext
       --with-system-zlib
@@ -340,10 +371,11 @@ stdenv.mkDerivation ({
         )
       }
       ${if langAda then " --enable-libada" else ""}
-      ${if (cross == null && stdenv.isi686) then "--with-arch=i686" else ""}
+      ${if cross == null && stdenv.isi686 then "--with-arch=i686" else ""}
       ${if cross != null then crossConfigureFlags else ""}
       --target=${stdenv.cross.config}
     '';
+    buildFlags = "";
   };
 
 
@@ -399,10 +431,12 @@ stdenv.mkDerivation ({
     else null;
 
   passthru = { inherit langC langCC langAda langFortran langVhdl
-      langGo enableMultilib version; };
+      langGo version; };
 
   enableParallelBuilding = true;
 
+  inherit (stdenv) is64bit;
+
   meta = {
     homepage = http://gcc.gnu.org/;
     license = "GPLv3+";  # runtime support libraries are typically LGPLv3+
diff --git a/pkgs/development/compilers/gcc/4.6/siginfo_t_fix.patch b/pkgs/development/compilers/gcc/4.6/siginfo_t_fix.patch
new file mode 100644
index 0000000000000..1409c552c7d00
--- /dev/null
+++ b/pkgs/development/compilers/gcc/4.6/siginfo_t_fix.patch
@@ -0,0 +1,211 @@
+Partly taken from:
+http://gcc.gnu.org/git/?p=gcc.git;a=patch;h=5617a3db5d04630d0bfb71a3578894b4442f266d
+
+Adapted to gcc 4.6.3. Original commit text follows.
+
+From 5617a3db5d04630d0bfb71a3578894b4442f266d Mon Sep 17 00:00:00 2001
+From: tschwinge <tschwinge@138bc75d-0d04-0410-961f-82ee72b054a4>
+Date: Fri, 20 Apr 2012 07:44:50 +0000
+Subject: [PATCH] 	struct siginfo vs. siginfo_t
+
+gcc/
+	* config/alpha/linux-unwind.h (alpha_fallback_frame_state): Use
+	siginfo_t instead of struct siginfo.
+	* config/bfin/linux-unwind.h (bfin_fallback_frame_state): Likewise.
+	* config/i386/linux-unwind.h (x86_fallback_frame_state): Likewise.
+	* config/ia64/linux-unwind.h (ia64_fallback_frame_state)
+	(ia64_handle_unwabi): Likewise.
+	* config/mips/linux-unwind.h (mips_fallback_frame_state): Likewise.
+	* config/pa/linux-unwind.h (pa32_fallback_frame_state): Likewise.
+	* config/sh/linux-unwind.h (shmedia_fallback_frame_state)
+	(sh_fallback_frame_state): Likewise.
+	* config/xtensa/linux-unwind.h (xtensa_fallback_frame_state): Likewise.
+
+git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@186610 138bc75d-0d04-0410-961f-82ee72b054a4
+
+diff --git a/gcc/config/alpha/linux-unwind.h b/gcc/config/alpha/linux-unwind.h
+index 4c811dc..8c04b3b 100644
+--- a/gcc/config/alpha/linux-unwind.h
++++ b/gcc/config/alpha/linux-unwind.h
+@@ -1,5 +1,5 @@
+ /* DWARF2 EH unwinding support for Alpha Linux.
+-   Copyright (C) 2004, 2005, 2009, 2011 Free Software Foundation, Inc.
++   Copyright (C) 2004, 2005, 2009, 2011, 2012 Free Software Foundation, Inc.
+ 
+ This file is part of GCC.
+ 
+@@ -49,7 +49,7 @@ alpha_fallback_frame_state (struct _Unwind_Context *context,
+   else if (pc[1] == 0x201f015f)		/* lda $0,NR_rt_sigreturn */
+     {
+       struct rt_sigframe {
+-	struct siginfo info;
++	siginfo_t info;
+ 	struct ucontext uc;
+       } *rt_ = context->cfa;
+       sc = &rt_->uc.uc_mcontext;
+diff --git a/gcc/config/bfin/linux-unwind.h b/gcc/config/bfin/linux-unwind.h
+index 88c8285..15bb2f1 100644
+--- a/gcc/config/bfin/linux-unwind.h
++++ b/gcc/config/bfin/linux-unwind.h
+@@ -1,5 +1,5 @@
+ /* DWARF2 EH unwinding support for Blackfin.
+-   Copyright (C) 2007, 2009 Free Software Foundation, Inc.
++   Copyright (C) 2007, 2009, 2012 Free Software Foundation, Inc.
+ 
+ This file is part of GCC.
+ 
+@@ -48,10 +48,10 @@ bfin_fallback_frame_state (struct _Unwind_Context *context,
+     {
+       struct rt_sigframe {
+ 	int sig;
+-	struct siginfo *pinfo;
++	siginfo_t *pinfo;
+ 	void *puc;
+ 	char retcode[8];
+-	struct siginfo info;
++	siginfo_t info;
+ 	struct ucontext uc;
+       } *rt_ = context->cfa;
+ 
+diff --git a/gcc/config/i386/linux-unwind.h b/gcc/config/i386/linux-unwind.h
+index ad0ccfa..02b1897 100644
+--- a/gcc/config/i386/linux-unwind.h
++++ b/gcc/config/i386/linux-unwind.h
+@@ -136,9 +136,9 @@ x86_fallback_frame_state (struct _Unwind_Context *context,
+     {
+       struct rt_sigframe {
+ 	int sig;
+-	struct siginfo *pinfo;
++	siginfo_t *pinfo;
+ 	void *puc;
+-	struct siginfo info;
++	siginfo_t info;
+ 	struct ucontext uc;
+       } *rt_ = context->cfa;
+       /* The void * cast is necessary to avoid an aliasing warning.
+diff --git a/gcc/config/ia64/linux-unwind.h b/gcc/config/ia64/linux-unwind.h
+index 93f762d..da31259 100644
+--- a/gcc/config/ia64/linux-unwind.h
++++ b/gcc/config/ia64/linux-unwind.h
+@@ -1,5 +1,5 @@
+ /* DWARF2 EH unwinding support for IA64 Linux.
+-   Copyright (C) 2004, 2005, 2009 Free Software Foundation, Inc.
++   Copyright (C) 2004, 2005, 2009, 2012 Free Software Foundation, Inc.
+ 
+    This file is part of GCC.
+ 
+@@ -47,7 +47,7 @@ ia64_fallback_frame_state (struct _Unwind_Context *context,
+       struct sigframe {
+ 	char scratch[16];
+ 	unsigned long sig_number;
+-	struct siginfo *info;
++	siginfo_t *info;
+ 	struct sigcontext *sc;
+       } *frame_ = (struct sigframe *)context->psp;
+       struct sigcontext *sc = frame_->sc;
+@@ -137,7 +137,7 @@ ia64_handle_unwabi (struct _Unwind_Context *context, _Unwind_FrameState *fs)
+       struct sigframe {
+ 	char scratch[16];
+ 	unsigned long sig_number;
+-	struct siginfo *info;
++	siginfo_t *info;
+ 	struct sigcontext *sc;
+       } *frame = (struct sigframe *)context->psp;
+       struct sigcontext *sc = frame->sc;
+diff --git a/gcc/config/mips/linux-unwind.h b/gcc/config/mips/linux-unwind.h
+index 02f7cd5..094ff58 100644
+--- a/gcc/config/mips/linux-unwind.h
++++ b/gcc/config/mips/linux-unwind.h
+@@ -1,5 +1,6 @@
+ /* DWARF2 EH unwinding support for MIPS Linux.
+-   Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
++   Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2012 Free Software
++   Foundation, Inc.
+ 
+ This file is part of GCC.
+ 
+@@ -75,7 +76,7 @@ mips_fallback_frame_state (struct _Unwind_Context *context,
+       struct rt_sigframe {
+ 	u_int32_t ass[4];  /* Argument save space for o32.  */
+ 	u_int32_t trampoline[2];
+-	struct siginfo info;
++	siginfo_t info;
+ 	_sig_ucontext_t uc;
+       } *rt_ = context->cfa;
+       sc = &rt_->uc.uc_mcontext;
+diff --git a/gcc/config/pa/linux-unwind.h b/gcc/config/pa/linux-unwind.h
+index a0560e9..38b4eda 100644
+--- a/gcc/config/pa/linux-unwind.h
++++ b/gcc/config/pa/linux-unwind.h
+@@ -1,5 +1,5 @@
+ /* DWARF2 EH unwinding support for PA Linux.
+-   Copyright (C) 2004, 2005, 2009 Free Software Foundation, Inc.
++   Copyright (C) 2004, 2005, 2009, 2012 Free Software Foundation, Inc.
+ 
+ This file is part of GCC.
+ 
+@@ -63,7 +63,7 @@ pa32_fallback_frame_state (struct _Unwind_Context *context,
+   int i;
+   struct sigcontext *sc;
+   struct rt_sigframe {
+-    struct siginfo info;
++    siginfo_t info;
+     struct ucontext uc;
+   } *frame;
+ 
+diff --git a/gcc/config/sh/linux-unwind.h b/gcc/config/sh/linux-unwind.h
+index 94ed95d..5a78e31 100644
+--- a/gcc/config/sh/linux-unwind.h
++++ b/gcc/config/sh/linux-unwind.h
+@@ -1,5 +1,6 @@
+ /* DWARF2 EH unwinding support for SH Linux.
+-   Copyright (C) 2004, 2005, 2006, 2007, 2009 Free Software Foundation, Inc.
++   Copyright (C) 2004, 2005, 2006, 2007, 2009, 2012 Free Software Foundation,
++   Inc.
+ 
+ This file is part of GCC.
+ 
+@@ -80,9 +81,9 @@ shmedia_fallback_frame_state (struct _Unwind_Context *context,
+ 	   && (*(unsigned long *) (pc+11)  == 0x6ff0fff0))
+     {
+       struct rt_sigframe {
+-	struct siginfo *pinfo;
++	siginfo_t *pinfo;
+ 	void *puc;
+-	struct siginfo info;
++	siginfo_t info;
+ 	struct ucontext uc;
+       } *rt_ = context->cfa;
+       /* The void * cast is necessary to avoid an aliasing warning.
+@@ -179,7 +180,7 @@ sh_fallback_frame_state (struct _Unwind_Context *context,
+ 		&& (*(unsigned short *) (pc+14)  == 0x00ad))))
+     {
+       struct rt_sigframe {
+-	struct siginfo info;
++	siginfo_t info;
+ 	struct ucontext uc;
+       } *rt_ = context->cfa;
+       /* The void * cast is necessary to avoid an aliasing warning.
+diff --git a/gcc/config/xtensa/linux-unwind.h b/gcc/config/xtensa/linux-unwind.h
+index 32e9349..2456497 100644
+--- a/gcc/config/xtensa/linux-unwind.h
++++ b/gcc/config/xtensa/linux-unwind.h
+@@ -1,5 +1,5 @@
+ /* DWARF2 EH unwinding support for Xtensa.
+-   Copyright (C) 2008, 2009 Free Software Foundation, Inc.
++   Copyright (C) 2008, 2009, 2012 Free Software Foundation, Inc.
+ 
+ This file is part of GCC.
+ 
+@@ -62,7 +62,7 @@ xtensa_fallback_frame_state (struct _Unwind_Context *context,
+   struct sigcontext *sc;
+ 
+   struct rt_sigframe {
+-    struct siginfo info;
++    siginfo_t info;
+     struct ucontext uc;
+   } *rt_;
+ 
+-- 
+1.7.3.4
+
diff --git a/pkgs/development/compilers/gcc/4.7/builder.sh b/pkgs/development/compilers/gcc/4.7/builder.sh
index 4ae7a1c193b92..37400fba5bf5c 100644
--- a/pkgs/development/compilers/gcc/4.7/builder.sh
+++ b/pkgs/development/compilers/gcc/4.7/builder.sh
@@ -71,7 +71,7 @@ if test "$noSysDirs" = "1"; then
         unset CPATH
         if test -z "$crossStageStatic"; then
             EXTRA_TARGET_CFLAGS="-B${libcCross}/lib -idirafter ${libcCross}/include"
-            EXTRA_TARGET_LDFLAGS="-Wl,-L${libcCross}/lib"
+            EXTRA_TARGET_LDFLAGS="-Wl,-L${libcCross}/lib -Wl,-rpath,${libcCross}/lib -Wl,-rpath-link,${libcCross}/lib"
         fi
     else
         if test -z "$NIX_GCC_CROSS"; then
@@ -95,7 +95,9 @@ if test "$noSysDirs" = "1"; then
             NIX_FIXINC_DUMMY_CROSS=$(cat $NIX_GCC_CROSS/nix-support/orig-libc)/include
 
             # The path to the Glibc binaries such as `crti.o'.
-            glibc_libdir="$(cat $NIX_GCC_CROSS/nix-support/orig-libc)/lib"
+            glibc_dir="$(cat $NIX_GCC_CROSS/nix-support/orig-libc)"
+            glibc_libdir="$glibc_dir/lib"
+            configureFlags="$configureFlags --with-native-system-header-dir=$glibc_dir/include"
 
             extraFlags="-I$NIX_FIXINC_DUMMY_CROSS $extraFlags"
             extraLDFlags="-L$glibc_libdir -rpath $glibc_libdir $extraLDFlags"
@@ -237,13 +239,4 @@ postInstall() {
     eval "$postInstallGhdl"
 }
 
-
-if test -z "$targetConfig" && test -z "$crossConfig"; then
-    if test -z "$profiledCompiler"; then
-        buildFlags="bootstrap $buildFlags"
-    else    
-        buildFlags="profiledbootstrap $buildFlags"
-    fi
-fi
-
 genericBuild
diff --git a/pkgs/development/compilers/gcc/4.7/default.nix b/pkgs/development/compilers/gcc/4.7/default.nix
index 5ab7166204e92..62a86751a712e 100644
--- a/pkgs/development/compilers/gcc/4.7/default.nix
+++ b/pkgs/development/compilers/gcc/4.7/default.nix
@@ -85,74 +85,104 @@ let version = "4.7.2";
 
     javaAwtGtk = langJava && gtk != null;
 
+    /* Platform flags */
+    platformFlags = let
+        gccArch = stdenv.lib.attrByPath [ "platform" "gcc" "arch" ] null stdenv;
+        gccCpu = stdenv.lib.attrByPath [ "platform" "gcc" "cpu" ] null stdenv;
+        gccAbi = stdenv.lib.attrByPath [ "platform" "gcc" "abi" ] null stdenv;
+        gccFpu = stdenv.lib.attrByPath [ "platform" "gcc" "fpu" ] null stdenv;
+        gccFloat = stdenv.lib.attrByPath [ "platform" "gcc" "float" ] null stdenv;
+        gccMode = stdenv.lib.attrByPath [ "platform" "gcc" "mode" ] null stdenv;
+        withArch = if gccArch != null then " --with-arch=${gccArch}" else "";
+        withCpu = if gccCpu != null then " --with-cpu=${gccCpu}" else "";
+        withAbi = if gccAbi != null then " --with-abi=${gccAbi}" else "";
+        withFpu = if gccFpu != null then " --with-fpu=${gccFpu}" else "";
+        withFloat = if gccFloat != null then " --with-float=${gccFloat}" else "";
+        withMode = if gccMode != null then " --with-mode=${gccMode}" else "";
+      in 
+        (withArch +
+        withCpu +
+        withAbi +
+        withFpu +
+        withFloat +
+        withMode);
+
     /* Cross-gcc settings */
-    gccArch = stdenv.lib.attrByPath [ "gcc" "arch" ] null cross;
-    gccCpu = stdenv.lib.attrByPath [ "gcc" "cpu" ] null cross;
-    gccAbi = stdenv.lib.attrByPath [ "gcc" "abi" ] null cross;
-    gccMode = stdenv.lib.attrByPath [ "gcc" "mode" ] null cross;
-    withArch = if gccArch != null then " --with-arch=${gccArch}" else "";
-    withCpu = if gccCpu != null then " --with-cpu=${gccCpu}" else "";
-    withAbi = if gccAbi != null then " --with-abi=${gccAbi}" else "";
-    withMode = if gccMode != null then " --with-mode=${gccMode}" else "";
     crossMingw = (cross != null && cross.libc == "msvcrt");
-
-    crossConfigureFlags =
-      "--target=${cross.config}" +
-      withArch +
-      withCpu +
-      withAbi +
-      withMode +
-      (if (crossMingw && crossStageStatic) then
-        " --with-headers=${libcCross}/include" +
-        " --with-gcc" +
-        " --with-gnu-as" +
-        " --with-gnu-ld" +
-        " --with-gnu-ld" +
-        " --disable-shared" +
-        " --disable-nls" +
-        " --disable-debug" +
-        " --enable-sjlj-exceptions" +
-        " --enable-threads=win32" +
-        " --disable-win32-registry"
-        else if crossStageStatic then
-        " --disable-libssp --disable-nls" +
-        " --without-headers" +
-        " --disable-threads " +
-        " --disable-libmudflap " +
-        " --disable-libgomp " +
-        " --disable-libquadmath" +
-        " --disable-shared" +
-        " --disable-decimal-float" # libdecnumber requires libc
-        else
-        " --with-headers=${libcCross}/include" +
-        " --enable-__cxa_atexit" +
-        " --enable-long-long" +
-        (if crossMingw then
-          " --enable-threads=win32" +
-          " --enable-sjlj-exceptions" +
-          " --enable-hash-synchronization" +
-          " --disable-libssp" +
+    crossConfigureFlags = let
+        gccArch = stdenv.lib.attrByPath [ "gcc" "arch" ] null cross;
+        gccCpu = stdenv.lib.attrByPath [ "gcc" "cpu" ] null cross;
+        gccAbi = stdenv.lib.attrByPath [ "gcc" "abi" ] null cross;
+        gccFpu = stdenv.lib.attrByPath [ "gcc" "fpu" ] null cross;
+        gccFloat = stdenv.lib.attrByPath [ "gcc" "float" ] null cross;
+        gccMode = stdenv.lib.attrByPath [ "gcc" "mode" ] null cross;
+        withArch = if gccArch != null then " --with-arch=${gccArch}" else "";
+        withCpu = if gccCpu != null then " --with-cpu=${gccCpu}" else "";
+        withAbi = if gccAbi != null then " --with-abi=${gccAbi}" else "";
+        withFpu = if gccFpu != null then " --with-fpu=${gccFpu}" else "";
+        withFloat = if gccFloat != null then " --with-float=${gccFloat}" else "";
+        withMode = if gccMode != null then " --with-mode=${gccMode}" else "";
+      in
+        "--target=${cross.config}" +
+        withArch +
+        withCpu +
+        withAbi +
+        withFpu +
+        withFloat +
+        withMode +
+        (if crossMingw && crossStageStatic then
+          " --with-headers=${libcCross}/include" +
+          " --with-gcc" +
+          " --with-gnu-as" +
+          " --with-gnu-ld" +
+          " --with-gnu-ld" +
+          " --disable-shared" +
           " --disable-nls" +
-          " --with-dwarf2" +
-          # I think noone uses shared gcc libs in mingw, so we better do the same.
-          # In any case, mingw32 g++ linking is broken by default with shared libs,
-          # unless adding "-lsupc++" to any linking command. I don't know why.
+          " --disable-debug" +
+          " --enable-sjlj-exceptions" +
+          " --enable-threads=win32" +
+          " --disable-win32-registry"
+          else if crossStageStatic then
+          " --disable-libssp --disable-nls" +
+          " --without-headers" +
+          " --disable-threads " +
+          " --disable-libmudflap " +
+          " --disable-libgomp " +
+          " --disable-libquadmath" +
           " --disable-shared" +
-          (if cross.config == "x86_64-w64-mingw32" then
-            # To keep ABI compatibility with upstream mingw-w64
-            " --enable-fully-dynamic-string"
-            else "")
-          else (if cross.libc == "uclibc" then
-            # In uclibc cases, libgomp needs an additional '-ldl'
-            # and as I don't know how to pass it, I disable libgomp.
-            " --disable-libgomp" else "") +
-          " --enable-threads=posix" +
-          " --enable-nls" +
-          " --disable-decimal-float") # No final libdecnumber (it may work only in 386)
-        );
-    stageNameAddon = if (crossStageStatic) then "-stage-static" else
+          " --disable-decimal-float" # libdecnumber requires libc
+          else
+          " --with-headers=${libcCross}/include" +
+          " --enable-__cxa_atexit" +
+          " --enable-long-long" +
+          (if crossMingw then
+            " --enable-threads=win32" +
+            " --enable-sjlj-exceptions" +
+            " --enable-hash-synchronization" +
+            " --disable-libssp" +
+            " --disable-nls" +
+            " --with-dwarf2" +
+            # I think noone uses shared gcc libs in mingw, so we better do the same.
+            # In any case, mingw32 g++ linking is broken by default with shared libs,
+            # unless adding "-lsupc++" to any linking command. I don't know why.
+            " --disable-shared" +
+            (if cross.config == "x86_64-w64-mingw32" then
+              # To keep ABI compatibility with upstream mingw-w64
+              " --enable-fully-dynamic-string"
+              else "")
+            else (if cross.libc == "uclibc" then
+              # In uclibc cases, libgomp needs an additional '-ldl'
+              # and as I don't know how to pass it, I disable libgomp.
+              " --disable-libgomp" else "") +
+            " --enable-threads=posix" +
+            " --enable-nls" +
+            " --disable-decimal-float") # No final libdecnumber (it may work only in 386)
+          );
+    stageNameAddon = if crossStageStatic then "-stage-static" else
       "-stage-final";
-    crossNameAddon = if (cross != null) then "-${cross.config}" + stageNameAddon else "";
+    crossNameAddon = if cross != null then "-${cross.config}" + stageNameAddon else "";
+
+  bootstrap = cross == null && !stdenv.isArm && !stdenv.isMips;
 
 in
 
@@ -173,7 +203,7 @@ stdenv.mkDerivation ({
 
   postPatch =
     if (stdenv.isGNU
-        || (libcCross != null                  # e.g., building `gcc.hostDrv'
+        || (libcCross != null                  # e.g., building `gcc.crossDrv'
             && libcCross ? crossConfig
             && libcCross.crossConfig == "i586-pc-gnu")
         || (crossGNU && libcCross != null))
@@ -212,7 +242,7 @@ stdenv.mkDerivation ({
       # On NixOS, use the right path to the dynamic linker instead of
       # `/lib/ld*.so'.
       let
-        libc = if (libcCross != null) then libcCross else stdenv.gcc.libc;
+        libc = if libcCross != null then libcCross else stdenv.gcc.libc;
       in
         '' echo "fixing the \`GLIBC_DYNAMIC_LINKER' and \`UCLIBC_DYNAMIC_LINKER' macros..."
            for header in "gcc/config/"*-gnu.h "gcc/config/"*"/"*.h
@@ -225,10 +255,10 @@ stdenv.mkDerivation ({
         ''
     else null;
 
-  inherit noSysDirs profiledCompiler staticCompiler langJava crossStageStatic
+  inherit noSysDirs staticCompiler langJava crossStageStatic
     libcCross crossMingw;
 
-  buildNativeInputs = [ texinfo which gettext ]
+  nativeBuildInputs = [ texinfo which gettext ]
     ++ (optional (perl != null) perl)
     ++ (optional javaAwtGtk pkgconfig);
 
@@ -275,7 +305,7 @@ stdenv.mkDerivation ({
     --with-gmp=${gmp}
     --with-mpfr=${mpfr}
     --with-mpc=${mpc}
-    ${if (libelf != null) then "--with-libelf=${libelf}" else ""}
+    ${if libelf != null then "--with-libelf=${libelf}" else ""}
     --disable-libstdcxx-pch
     --without-included-gettext
     --with-system-zlib
@@ -294,21 +324,36 @@ stdenv.mkDerivation ({
     ${if (stdenv ? glibc && cross == null)
       then " --with-native-system-header-dir=${stdenv.glibc}/include"
       else ""}
-    ${ # Trick that should be taken out once we have a mips64el-linux not loongson2f
-      if cross == null && stdenv.system == "mips64el-linux" then "--with-arch=loongson2f" else ""}
     ${if langAda then " --enable-libada" else ""}
-    ${if (cross == null && stdenv.isi686) then "--with-arch=i686" else ""}
+    ${if cross == null && stdenv.isi686 then "--with-arch=i686" else ""}
     ${if cross != null then crossConfigureFlags else ""}
+    ${if !bootstrap then "--disable-bootstrap" else ""}
+    ${if cross == null then platformFlags else ""}
   ";
 
-  targetConfig = if (cross != null) then cross.config else null;
+  targetConfig = if cross != null then cross.config else null;
+
+  buildFlags = if bootstrap then
+    (if profiledCompiler then "profiledbootstrap" else "bootstrap")
+    else "";
 
   installTargets =
     if stripped
     then "install-strip"
     else "install";
 
-  crossAttrs = {
+  crossAttrs = let
+    xgccArch = stdenv.lib.attrByPath [ "gcc" "arch" ] null stdenv.cross;
+    xgccCpu = stdenv.lib.attrByPath [ "gcc" "cpu" ] null stdenv.cross;
+    xgccAbi = stdenv.lib.attrByPath [ "gcc" "abi" ] null stdenv.cross;
+    xgccFpu = stdenv.lib.attrByPath [ "gcc" "fpu" ] null stdenv.cross;
+    xgccFloat = stdenv.lib.attrByPath [ "gcc" "float" ] null stdenv.cross;
+    xwithArch = if xgccArch != null then " --with-arch=${xgccArch}" else "";
+    xwithCpu = if xgccCpu != null then " --with-cpu=${xgccCpu}" else "";
+    xwithAbi = if xgccAbi != null then " --with-abi=${xgccAbi}" else "";
+    xwithFpu = if xgccFpu != null then " --with-fpu=${xgccFpu}" else "";
+    xwithFloat = if xgccFloat != null then " --with-float=${xgccFloat}" else "";
+  in {
     AR = "${stdenv.cross.config}-ar";
     LD = "${stdenv.cross.config}-ld";
     CC = "${stdenv.cross.config}-gcc";
@@ -324,13 +369,13 @@ stdenv.mkDerivation ({
     configureFlags = ''
       ${if enableMultilib then "" else "--disable-multilib"}
       ${if enableShared then "" else "--disable-shared"}
-      ${if ppl != null then "--with-ppl=${ppl.hostDrv}" else ""}
-      ${if cloog != null then "--with-cloog=${cloog.hostDrv} --enable-cloog-backend=isl" else ""}
-      ${if langJava then "--with-ecj-jar=${javaEcj.hostDrv}" else ""}
+      ${if ppl != null then "--with-ppl=${ppl.crossDrv}" else ""}
+      ${if cloog != null then "--with-cloog=${cloog.crossDrv} --enable-cloog-backend=isl" else ""}
+      ${if langJava then "--with-ecj-jar=${javaEcj.crossDrv}" else ""}
       ${if javaAwtGtk then "--enable-java-awt=gtk" else ""}
-      ${if langJava && javaAntlr != null then "--with-antlr-jar=${javaAntlr.hostDrv}" else ""}
-      --with-gmp=${gmp.hostDrv}
-      --with-mpfr=${mpfr.hostDrv}
+      ${if langJava && javaAntlr != null then "--with-antlr-jar=${javaAntlr.crossDrv}" else ""}
+      --with-gmp=${gmp.crossDrv}
+      --with-mpfr=${mpfr.crossDrv}
       --disable-libstdcxx-pch
       --without-included-gettext
       --with-system-zlib
@@ -347,10 +392,14 @@ stdenv.mkDerivation ({
         )
       }
       ${if langAda then " --enable-libada" else ""}
-      ${if (cross == null && stdenv.isi686) then "--with-arch=i686" else ""}
-      ${if cross != null then crossConfigureFlags else ""}
       --target=${stdenv.cross.config}
+      ${xwithArch}
+      ${xwithCpu}
+      ${xwithAbi}
+      ${xwithFpu}
+      ${xwithFloat}
     '';
+    buildFlags = "";
   };
 
 
diff --git a/pkgs/development/compilers/gnatboot/default.nix b/pkgs/development/compilers/gnatboot/default.nix
index 79208743ae42a..1de0c88a6bc7a 100644
--- a/pkgs/development/compilers/gnatboot/default.nix
+++ b/pkgs/development/compilers/gnatboot/default.nix
@@ -3,12 +3,12 @@
 stdenv.mkDerivation {
   name = "gentoo-gnatboot-4.1";
 
-  src = if (stdenv.system == "i686-linux") then
+  src = if stdenv.system == "i686-linux" then
     fetchurl {
       url = "mirror://gentoo/distfiles/gnatboot-4.1-i386.tar.bz2";
       sha256 = "0665zk71598204bf521vw68i5y6ccqarq9fcxsqp7ccgycb4lysr";
     }
-    else if (stdenv.system == "x86_64-linux") then
+    else if stdenv.system == "x86_64-linux" then
     fetchurl {
       url = "mirror://gentoo/distfiles/gnatboot-4.1-amd64.tar.bz2";
       sha256 = "1li4d52lmbnfs6llcshlbqyik2q2q4bvpir0f7n38nagp0h6j0d4";
diff --git a/pkgs/development/compilers/go/default.nix b/pkgs/development/compilers/go/default.nix
index 60ea7981931d5..955daa0ad9fcf 100644
--- a/pkgs/development/compilers/go/default.nix
+++ b/pkgs/development/compilers/go/default.nix
@@ -54,9 +54,9 @@ stdenv.mkDerivation {
   patches = [ ./cacert.patch ];
 
   GOOS = "linux";
-  GOARCH = if (stdenv.system == "i686-linux") then "386"
-          else if (stdenv.system == "x86_64-linux") then "amd64"
-          else if (stdenv.system == "armv5tel-linux") then "arm"
+  GOARCH = if stdenv.system == "i686-linux" then "386"
+          else if stdenv.system == "x86_64-linux" then "amd64"
+          else if stdenv.system == "armv5tel-linux" then "arm"
           else throw "Unsupported system";
   GOARM = stdenv.lib.optionalString (stdenv.system == "armv5tel-linux") "5";
 
@@ -74,7 +74,7 @@ stdenv.mkDerivation {
     for a in go gofmt godoc; do
 	    wrapProgram "$out/bin/$a" \
 	      --set "GOROOT" $out/share/go \
-        ${if (stdenv.system == "armv5tel-linux") then "--set GOARM $GOARM" else ""}
+        ${if stdenv.system == "armv5tel-linux" then "--set GOARM $GOARM" else ""}
     done
 
     # Copy the emacs configuration for Go files.
diff --git a/pkgs/development/compilers/iasl/default.nix b/pkgs/development/compilers/iasl/default.nix
index 085c599b96925..09245ba6d4bdc 100644
--- a/pkgs/development/compilers/iasl/default.nix
+++ b/pkgs/development/compilers/iasl/default.nix
@@ -1,27 +1,28 @@
 {stdenv, fetchurl, bison, flex}:
 
 stdenv.mkDerivation {
-  name = "iasl-20120215";
+  name = "iasl-20130117";
+
   src = fetchurl {
-    url = http://www.acpica.org/download/acpica-unix-20120215.tar.gz;
-    sha256 = "13avirbqdnp7whl6ji8ixkhzdwf1cadl5fg8ggzbxp99bx0rgd5j";
+    url = http://www.acpica.org/download/acpica-unix-20130117.tar.gz;
+    sha256 = "1zils7l7gnkbbl8916dlhvij1g625ryb7769zhzffn3flshfdivh";
   };
 
-  buildPhase = "
-    cd source/compiler
-    make
-    cd ..
-  ";
+  NIX_CFLAGS_COMPILE = "-O3";
 
-  installPhase = "
-    install -d $out/bin
-    install compiler/iasl $out/bin
-  ";
+  buildFlags = "iasl";
 
   buildInputs = [ bison flex ];
 
+  installPhase =
+    ''
+      install -d $out/bin
+      install generate/unix/bin*/iasl $out/bin
+    '';
+
   meta = {
     description = "Intel ACPI Compiler";
     homepage = http://www.acpica.org/;
+    license = "iasl"; # FIXME: is this a free software license?
   };
 }
diff --git a/pkgs/development/compilers/mit-scheme/default.nix b/pkgs/development/compilers/mit-scheme/default.nix
index 7572dda771181..29950aa9e3dde 100644
--- a/pkgs/development/compilers/mit-scheme/default.nix
+++ b/pkgs/development/compilers/mit-scheme/default.nix
@@ -60,7 +60,7 @@ stdenv.mkDerivation {
          $out/lib/mit-scheme${arch}
     '';
 
-  buildNativeInputs = [ makeWrapper gnum4 texinfo texLive automake ];
+  nativeBuildInputs = [ makeWrapper gnum4 texinfo texLive automake ];
 
   # XXX: The `check' target doesn't exist.
   doCheck = false;
diff --git a/pkgs/development/compilers/tinycc/default.nix b/pkgs/development/compilers/tinycc/default.nix
index 058d84a12de8d..f607edd0f024c 100644
--- a/pkgs/development/compilers/tinycc/default.nix
+++ b/pkgs/development/compilers/tinycc/default.nix
@@ -11,7 +11,7 @@ let version = "0.9.25"; in
       sha256 = "0dfycf80x73dz67c97j1ry29wrv35393ai5ry46i1x1fzfq6rv8v";
     };
 
-    buildNativeInputs = [ perl texinfo ];
+    nativeBuildInputs = [ perl texinfo ];
 
     patches =
       [ (fetchurl {
diff --git a/pkgs/development/compilers/vala/15.2.nix b/pkgs/development/compilers/vala/15.2.nix
index 822102b7bd4f1..529ccea6bc80a 100644
--- a/pkgs/development/compilers/vala/15.2.nix
+++ b/pkgs/development/compilers/vala/15.2.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
     sha256 = "0g71zq6dpqrw2f40wfzdf18fdw41ymr17laqniy2kr622hkxdi8w";
   };
 
-  buildNativeInputs = [ yacc flex pkgconfig xz ];
+  nativeBuildInputs = [ yacc flex pkgconfig xz ];
 
   buildInputs = [ glib ];
 
diff --git a/pkgs/development/compilers/vala/16.1.nix b/pkgs/development/compilers/vala/16.1.nix
index 54e6af8798d50..f054c59d2e4b4 100644
--- a/pkgs/development/compilers/vala/16.1.nix
+++ b/pkgs/development/compilers/vala/16.1.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
     sha256 = "1n708n9ixyy9qrzyv1wf4ybvcclx43ib9ki028wwpvkz6kv8zqlb";
   };
 
-  buildNativeInputs = [ yacc flex pkgconfig xz ];
+  nativeBuildInputs = [ yacc flex pkgconfig xz ];
 
   buildInputs = [ glib ];
 
diff --git a/pkgs/development/compilers/vala/default.nix b/pkgs/development/compilers/vala/default.nix
index a60a71e35806e..bce86ac598472 100644
--- a/pkgs/development/compilers/vala/default.nix
+++ b/pkgs/development/compilers/vala/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
     sha256 = "09i2s0dwmrk147ind2dx7nq845g12fp6fsjqrphhrr0dbi0zzgh3";
   };
 
-  buildNativeInputs = [ yacc flex pkgconfig xz ];
+  nativeBuildInputs = [ yacc flex pkgconfig xz ];
 
   buildInputs = [ glib ];
 
diff --git a/pkgs/development/interpreters/clisp/bits_ipctypes_to_sys_ipc.patch b/pkgs/development/interpreters/clisp/bits_ipctypes_to_sys_ipc.patch
new file mode 100644
index 0000000000000..d6163022830da
--- /dev/null
+++ b/pkgs/development/interpreters/clisp/bits_ipctypes_to_sys_ipc.patch
@@ -0,0 +1,12 @@
+diff -ru a/modules/bindings/glibc/linux.lisp b/modules/bindings/glibc/linux.lisp
+--- a/modules/bindings/glibc/linux.lisp	2008-10-10 16:15:49.000000000 +0300
++++ b/modules/bindings/glibc/linux.lisp	2012-12-04 01:01:35.000000000 +0200
+@@ -86,7 +86,7 @@
+ 
+ (def-c-type __key_t)            ; int
+ 
+-(c-lines "#include <bits/ipctypes.h>~%")
++(c-lines "#include <sys/ipc.h>~%")
+ (def-c-type __ipc_pid_t)        ; ushort
+ 
+ ; --------------------------- <sys/types.h> -----------------------------------
diff --git a/pkgs/development/interpreters/clisp/default.nix b/pkgs/development/interpreters/clisp/default.nix
index 23b4e4e9e54d7..bd19d738860a0 100644
--- a/pkgs/development/interpreters/clisp/default.nix
+++ b/pkgs/development/interpreters/clisp/default.nix
@@ -18,14 +18,20 @@ stdenv.mkDerivation rec {
       libXt pcre zlib libXpm xproto libXext xextproto libffi
       libffcall
     ];
- 
+
+  patches = [ ./bits_ipctypes_to_sys_ipc.patch ]; # from Gentoo
+
   # First, replace port 9090 (rather low, can be used)
   # with 64237 (much higher, IANA private area, not
   # anything rememberable).
-  patchPhase = ''
+  # Also remove reference to a type that disappeared from recent glibc
+  # (seems the correct thing to do, found no reference to any solution)
+  postPatch = ''
     sed -e 's@9090@64237@g' -i tests/socket.tst
     sed -i 's@/bin/pwd@${coreutils}&@' src/clisp-link.in
     find . -type f | xargs sed -e 's/-lICE/-lXau &/' -i
+
+    substituteInPlace modules/bindings/glibc/linux.lisp --replace "(def-c-type __swblk_t)" ""
   '';
 
   configureFlags =
diff --git a/pkgs/development/interpreters/guile/1.8.nix b/pkgs/development/interpreters/guile/1.8.nix
index bf1efbbb1a95e..f44f71020b4c7 100644
--- a/pkgs/development/interpreters/guile/1.8.nix
+++ b/pkgs/development/interpreters/guile/1.8.nix
@@ -14,9 +14,9 @@ stdenv.mkDerivation rec {
   # GCC 4.6 raises a number of set-but-unused warnings.
   configureFlags = [ "--disable-error-on-warning" ];
 
-  buildNativeInputs = [ makeWrapper gawk ];
+  nativeBuildInputs = [ makeWrapper gawk ];
   propagatedBuildInputs = [ readline gmp libtool ];
-  selfBuildNativeInput = true;
+  selfNativeBuildInput = true;
 
   postInstall = ''
     wrapProgram $out/bin/guile-snarf --prefix PATH : "${gawk}/bin"
diff --git a/pkgs/development/interpreters/guile/default.nix b/pkgs/development/interpreters/guile/default.nix
index e5c8f2685480f..d09e995e95c09 100644
--- a/pkgs/development/interpreters/guile/default.nix
+++ b/pkgs/development/interpreters/guile/default.nix
@@ -14,7 +14,7 @@
     sha256 = "0f53pxkia4v17n0avwqlcjpy0n89hkazm2xsa6p84lv8k6k8y9vg";
   };
 
-  buildNativeInputs = [ makeWrapper gawk pkgconfig ];
+  nativeBuildInputs = [ makeWrapper gawk pkgconfig ];
   buildInputs = [ readline libtool libunistring libffi ];
   propagatedBuildInputs = [ gmp boehmgc ]
 
@@ -25,13 +25,17 @@
     ++ [ libtool libunistring ];
 
   # A native Guile 2.0 is needed to cross-build Guile.
-  selfBuildNativeInput = true;
+  selfNativeBuildInput = true;
 
   enableParallelBuilding = true;
 
   patches = [ ./disable-gc-sensitive-tests.patch ] ++
     (stdenv.lib.optional (coverageAnalysis != null) ./gcov-file-name.patch);
 
+  # Explicitly link against libgcc_s, to work around the infamous
+  # "libgcc_s.so.1 must be installed for pthread_cancel to work".
+  LDFLAGS = "-lgcc_s";
+
   postInstall = ''
     wrapProgram $out/bin/guile-snarf --prefix PATH : "${gawk}/bin"
 
diff --git a/pkgs/development/interpreters/hiphopvm/default.nix b/pkgs/development/interpreters/hiphopvm/default.nix
index d2cdf06f13853..57e3e93c6466e 100644
--- a/pkgs/development/interpreters/hiphopvm/default.nix
+++ b/pkgs/development/interpreters/hiphopvm/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchurl, fetchgit, cmake, boost, libunwind, mysql, libmemcached, pcre
 , libevent, gd, curl, libxml2, icu, flex, bison, openssl, zlib, php, re2c
-, expat, libcap, oniguruma, libdwarf, libmcrypt, inteltbb, google_perftools
+, expat, libcap, oniguruma, libdwarf, libmcrypt, inteltbb, gperftools
 , bzip2, openldap, readline, libelf, uwimap, binutils, cyrus_sasl, pam
 }:
 assert stdenv.system == "x86_64-linux";
@@ -45,7 +45,7 @@ stdenv.mkDerivation {
   buildInputs = [ 
     cmake boost libunwind mysql libmemcached pcre libeventFB gd curlFB
     libxml2_280 icu flex bison openssl zlib php expat libcap oniguruma
-    libdwarf libmcrypt inteltbb google_perftools bzip2 openldap readline
+    libdwarf libmcrypt inteltbb gperftools bzip2 openldap readline
     libelf uwimap binutils cyrus_sasl pam
   ];
   installPhase = ''
diff --git a/pkgs/development/interpreters/octave/hg.nix b/pkgs/development/interpreters/octave/hg.nix
index f414dd7196548..f44efb9435876 100644
--- a/pkgs/development/interpreters/octave/hg.nix
+++ b/pkgs/development/interpreters/octave/hg.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation ({
       license = "GPL-3";
     };
 } // (
-  if (config.octave.devVersion or false) then {
+  if config.octave.devVersion or false then {
     name = "octave-hg"; # developement version mercurial repo
     # REGION AUTO UPDATE:   { name="octave"; type = "hg"; url = "http://www.octave.org/hg/octave"; }
     src = sourceFromHead "octave-03b414516dd8.tar.gz"
diff --git a/pkgs/development/interpreters/perl/5.16/default.nix b/pkgs/development/interpreters/perl/5.16/default.nix
new file mode 100644
index 0000000000000..288de63b4ae8d
--- /dev/null
+++ b/pkgs/development/interpreters/perl/5.16/default.nix
@@ -0,0 +1,63 @@
+{ stdenv, fetchurl }:
+
+let
+
+  libc = if stdenv.gcc.libc or null != null then stdenv.gcc.libc else "/usr";
+
+in
+
+stdenv.mkDerivation rec {
+  name = "perl-5.16.2";
+
+  src = fetchurl {
+    url = "mirror://cpan/src/${name}.tar.gz";
+    sha256 = "03nh8bqnjsdd5izjv3n2yfcxw4ck0llwww36jpbjbjgixwpqpy4f";
+  };
+
+  patches =
+    [ # Do not look in /usr etc. for dependencies.
+      ./no-sys-dirs.patch
+    ]
+    ++ stdenv.lib.optional stdenv.isDarwin ./no-libutil.patch;
+
+  # Build a thread-safe Perl with a dynamic libperls.o.  We need the
+  # "installstyle" option to ensure that modules are put under
+  # $out/lib/perl5 - this is the general default, but because $out
+  # contains the string "perl", Configure would select $out/lib.
+  # Miniperl needs -lm. perl needs -lrt.
+  configureFlags =
+    [ "-de"
+      "-Dcc=gcc"
+      "-Uinstallusrbinperl"
+      "-Dinstallstyle=lib/perl5"
+      "-Duseshrplib"
+      "-Dlocincpth=${libc}/include"
+      "-Dloclibpth=${libc}/lib"
+    ]
+    ++ stdenv.lib.optional (stdenv ? glibc) "-Dusethreads";
+
+  configureScript = "${stdenv.shell} ./Configure";
+
+  dontAddPrefix = true;
+
+  enableParallelBuilding = true;
+
+  preConfigure =
+    ''
+      configureFlags="$configureFlags -Dprefix=$out -Dman1dir=$out/share/man/man1 -Dman3dir=$out/share/man/man3"
+
+      ${stdenv.lib.optionalString stdenv.isArm ''
+        configureFlagsArray=(-Dldflags="-lm -lrt")
+      ''}
+    '';
+
+  preBuild = stdenv.lib.optionalString (!(stdenv ? gcc && stdenv.gcc.nativeTools))
+    ''
+      # Make Cwd work on NixOS (where we don't have a /bin/pwd).
+      substituteInPlace dist/Cwd/Cwd.pm --replace "'/bin/pwd'" "'$(type -tP pwd)'"
+    '';
+
+  setupHook = ./setup-hook.sh;
+
+  passthru.libPrefix = "lib/perl5/site_perl";
+}
diff --git a/pkgs/development/interpreters/perl/5.16/no-libutil.patch b/pkgs/development/interpreters/perl/5.16/no-libutil.patch
new file mode 100644
index 0000000000000..9b749bccf32cd
--- /dev/null
+++ b/pkgs/development/interpreters/perl/5.16/no-libutil.patch
@@ -0,0 +1,12 @@
+diff -ru -x '*~' perl-5.14.2-orig/Configure perl-5.14.2/Configure
+--- perl-5.14.2-orig/Configure	2011-09-26 11:44:34.000000000 +0200
++++ perl-5.14.2/Configure	2012-02-16 17:24:50.779839039 +0100
+@@ -1368,7 +1368,7 @@
+ : List of libraries we want.
+ : If anyone needs extra -lxxx, put those in a hint file.
+ libswanted="sfio socket bind inet nsl nm ndbm gdbm dbm db malloc dl dld ld sun"
+-libswanted="$libswanted m crypt sec util c cposix posix ucb bsd BSD"
++libswanted="$libswanted m crypt sec c cposix posix ucb bsd BSD"
+ : We probably want to search /usr/shlib before most other libraries.
+ : This is only used by the lib/ExtUtils/MakeMaker.pm routine extliblist.
+ glibpth=`echo " $glibpth " | sed -e 's! /usr/shlib ! !'`
diff --git a/pkgs/development/interpreters/perl/5.16/no-sys-dirs.patch b/pkgs/development/interpreters/perl/5.16/no-sys-dirs.patch
new file mode 100644
index 0000000000000..54ffb28e2065e
--- /dev/null
+++ b/pkgs/development/interpreters/perl/5.16/no-sys-dirs.patch
@@ -0,0 +1,152 @@
+diff -ru -x '*~' perl-5.14.2-orig/Configure perl-5.14.2/Configure
+--- perl-5.14.2-orig/Configure	2011-09-26 11:44:34.000000000 +0200
++++ perl-5.14.2/Configure	2012-01-20 17:05:23.089223129 +0100
+@@ -106,15 +106,7 @@
+ fi
+ 
+ : Proper PATH setting
+-paths='/bin /usr/bin /usr/local/bin /usr/ucb /usr/local /usr/lbin'
+-paths="$paths /opt/bin /opt/local/bin /opt/local /opt/lbin"
+-paths="$paths /usr/5bin /etc /usr/gnu/bin /usr/new /usr/new/bin /usr/nbin"
+-paths="$paths /opt/gnu/bin /opt/new /opt/new/bin /opt/nbin"
+-paths="$paths /sys5.3/bin /sys5.3/usr/bin /bsd4.3/bin /bsd4.3/usr/ucb"
+-paths="$paths /bsd4.3/usr/bin /usr/bsd /bsd43/bin /opt/ansic/bin /usr/ccs/bin"
+-paths="$paths /etc /usr/lib /usr/ucblib /lib /usr/ccs/lib"
+-paths="$paths /sbin /usr/sbin /usr/libexec"
+-paths="$paths /system/gnu_library/bin"
++paths=''
+ 
+ for p in $paths
+ do
+@@ -1311,8 +1303,7 @@
+ archname=''
+ : Possible local include directories to search.
+ : Set locincpth to "" in a hint file to defeat local include searches.
+-locincpth="/usr/local/include /opt/local/include /usr/gnu/include"
+-locincpth="$locincpth /opt/gnu/include /usr/GNU/include /opt/GNU/include"
++locincpth=""
+ :
+ : no include file wanted by default
+ inclwanted=''
+@@ -1328,17 +1319,12 @@
+ archobjs=''
+ libnames=''
+ : change the next line if compiling for Xenix/286 on Xenix/386
+-xlibpth='/usr/lib/386 /lib/386'
++xlibpth=''
+ : Possible local library directories to search.
+-loclibpth="/usr/local/lib /opt/local/lib /usr/gnu/lib"
+-loclibpth="$loclibpth /opt/gnu/lib /usr/GNU/lib /opt/GNU/lib"
++loclibpth=""
+ 
+ : general looking path for locating libraries
+-glibpth="/lib /usr/lib $xlibpth"
+-glibpth="$glibpth /usr/ccs/lib /usr/ucblib /usr/local/lib"
+-test -f /usr/shlib/libc.so && glibpth="/usr/shlib $glibpth"
+-test -f /shlib/libc.so     && glibpth="/shlib $glibpth"
+-test -d /usr/lib64         && glibpth="$glibpth /lib64 /usr/lib64 /usr/local/lib64"
++glibpth=""
+ 
+ : Private path used by Configure to find libraries.  Its value
+ : is prepended to libpth. This variable takes care of special
+@@ -1371,8 +1357,6 @@
+ libswanted="$libswanted m crypt sec util c cposix posix ucb bsd BSD"
+ : We probably want to search /usr/shlib before most other libraries.
+ : This is only used by the lib/ExtUtils/MakeMaker.pm routine extliblist.
+-glibpth=`echo " $glibpth " | sed -e 's! /usr/shlib ! !'`
+-glibpth="/usr/shlib $glibpth"
+ : Do not use vfork unless overridden by a hint file.
+ usevfork=false
+ 
+@@ -2380,7 +2364,6 @@
+ zip
+ "
+ pth=`echo $PATH | sed -e "s/$p_/ /g"`
+-pth="$pth /lib /usr/lib"
+ for file in $loclist; do
+ 	eval xxx=\$$file
+ 	case "$xxx" in
+@@ -4785,7 +4768,7 @@
+ : Set private lib path
+ case "$plibpth" in
+ '') if ./mips; then
+-		plibpth="$incpath/usr/lib /usr/local/lib /usr/ccs/lib"
++		plibpth="$incpath/usr/lib"
+ 	fi;;
+ esac
+ case "$libpth" in
+@@ -8390,13 +8373,8 @@
+ echo " "
+ case "$sysman" in
+ '') 
+-	syspath='/usr/share/man/man1 /usr/man/man1'
+-	syspath="$syspath /usr/man/mann /usr/man/manl /usr/man/local/man1"
+-	syspath="$syspath /usr/man/u_man/man1"
+-	syspath="$syspath /usr/catman/u_man/man1 /usr/man/l_man/man1"
+-	syspath="$syspath /usr/local/man/u_man/man1 /usr/local/man/l_man/man1"
+-	syspath="$syspath /usr/man/man.L /local/man/man1 /usr/local/man/man1"
+-	sysman=`./loc . /usr/man/man1 $syspath`
++	syspath=''
++	sysman=''
+ 	;;
+ esac
+ if $test -d "$sysman"; then
+@@ -19721,9 +19699,10 @@
+ case "$full_ar" in
+ '') full_ar=$ar ;;
+ esac
++full_ar=ar
+ 
+ : Store the full pathname to the sed program for use in the C program
+-full_sed=$sed
++full_sed=sed
+ 
+ : see what type gids are declared as in the kernel
+ echo " "
+diff -ru -x '*~' perl-5.14.2-orig/ext/Errno/Errno_pm.PL perl-5.14.2/ext/Errno/Errno_pm.PL
+--- perl-5.14.2-orig/ext/Errno/Errno_pm.PL	2011-09-26 11:44:34.000000000 +0200
++++ perl-5.14.2/ext/Errno/Errno_pm.PL	2012-01-20 17:02:07.938138311 +0100
+@@ -137,11 +137,7 @@
+ 	if ($dep =~ /(\S+errno\.h)/) {
+ 	     $file{$1} = 1;
+ 	}
+-    } elsif ($^O eq 'linux' &&
+-	      $Config{gccversion} ne '' && 
+-	      $Config{gccversion} !~ /intel/i
+-	      # might be using, say, Intel's icc
+-	     ) {
++    } elsif (0) {
+ 	# Some Linuxes have weird errno.hs which generate
+ 	# no #file or #line directives
+ 	my $linux_errno_h = -e '/usr/include/errno.h' ?
+diff -ru -x '*~' perl-5.14.2-orig/hints/freebsd.sh perl-5.14.2/hints/freebsd.sh
+--- perl-5.14.2-orig/hints/freebsd.sh	2011-09-19 15:18:22.000000000 +0200
++++ perl-5.14.2/hints/freebsd.sh	2012-01-20 17:10:37.267924044 +0100
+@@ -118,21 +118,21 @@
+         objformat=`/usr/bin/objformat`
+         if [ x$objformat = xaout ]; then
+             if [ -e /usr/lib/aout ]; then
+-                libpth="/usr/lib/aout /usr/local/lib /usr/lib"
+-                glibpth="/usr/lib/aout /usr/local/lib /usr/lib"
++                libpth=""
++                glibpth=""
+             fi
+             lddlflags='-Bshareable'
+         else
+-            libpth="/usr/lib /usr/local/lib"
+-            glibpth="/usr/lib /usr/local/lib"
++            libpth=""
++            glibpth=""
+             ldflags="-Wl,-E "
+             lddlflags="-shared "
+         fi
+         cccdlflags='-DPIC -fPIC'
+         ;;
+ *)
+-       libpth="/usr/lib /usr/local/lib"
+-       glibpth="/usr/lib /usr/local/lib"
++       libpth=""
++       glibpth=""
+        ldflags="-Wl,-E "
+         lddlflags="-shared "
+         cccdlflags='-DPIC -fPIC'
diff --git a/pkgs/development/interpreters/perl/5.16/setup-hook.sh b/pkgs/development/interpreters/perl/5.16/setup-hook.sh
new file mode 100644
index 0000000000000..6a144a7f7804d
--- /dev/null
+++ b/pkgs/development/interpreters/perl/5.16/setup-hook.sh
@@ -0,0 +1,5 @@
+addPerlLibPath () {
+    addToSearchPath PERL5LIB $1/lib/perl5/site_perl
+}
+
+envHooks=(${envHooks[@]} addPerlLibPath)
diff --git a/pkgs/development/libraries/GConf/3.x.nix b/pkgs/development/libraries/GConf/3.x.nix
index 4f6d5a9a04ac8..82c0c1f2c4359 100644
--- a/pkgs/development/libraries/GConf/3.x.nix
+++ b/pkgs/development/libraries/GConf/3.x.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation {
 
   propagatedBuildInputs = [ glib dbus_glib ];
   buildInputs = [ polkit gtk3 libxml2 ];
-  buildNativeInputs = [ pkgconfig intltool ];
+  nativeBuildInputs = [ pkgconfig intltool ];
 
   configureFlags = "--disable-orbit";
 
diff --git a/pkgs/development/libraries/SDL/default.nix b/pkgs/development/libraries/SDL/default.nix
index a2847bac884a8..899c3bb5c8d88 100644
--- a/pkgs/development/libraries/SDL/default.nix
+++ b/pkgs/development/libraries/SDL/default.nix
@@ -44,7 +44,7 @@ stdenv.mkDerivation rec {
   configureFlags = configureFlagsFun { inherit alsaLib; };
 
   crossAttrs = {
-      configureFlags = configureFlagsFun { alsaLib = alsaLib.hostDrv; };
+      configureFlags = configureFlagsFun { alsaLib = alsaLib.crossDrv; };
   };
 
   passthru = {inherit openglSupport;};
diff --git a/pkgs/development/libraries/acl/default.nix b/pkgs/development/libraries/acl/default.nix
index 3ccb569198000..bc0821f39fddb 100644
--- a/pkgs/development/libraries/acl/default.nix
+++ b/pkgs/development/libraries/acl/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
     sha256 = "09aj30m49ivycl3irram8c3givc0crivjm3ymw0nhfaxrwhlb186";
   };
 
-  buildNativeInputs = [ gettext ];
+  nativeBuildInputs = [ gettext ];
   buildInputs = [ attr ];
 
   # Upstream use C++-style comments in C code. Remove them.
diff --git a/pkgs/development/libraries/aqbanking/default.nix b/pkgs/development/libraries/aqbanking/default.nix
index 6c6e30137179a..0ddb1aaa7492a 100644
--- a/pkgs/development/libraries/aqbanking/default.nix
+++ b/pkgs/development/libraries/aqbanking/default.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ gwenhywfar gmp zlib ];
 
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 
   configureFlags = "--with-gwen-dir=${gwenhywfar}";
 
diff --git a/pkgs/development/libraries/asc-support/default.nix b/pkgs/development/libraries/asc-support/default.nix
index a078faaceb126..a2b2588d9cc37 100644
--- a/pkgs/development/libraries/asc-support/default.nix
+++ b/pkgs/development/libraries/asc-support/default.nix
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
   patches = if isMingw then [./mingw.patch] else [];
 
   buildInputs = [aterm toolbuslib asfSupport errorSupport ptSupport sglr tideSupport cLibrary configSupport ptableSupport rstoreSupport ];
-  buildNativeInputs = [pkgconfig];
+  nativeBuildInputs = [pkgconfig];
   
   dontStrip = isMingw;
 }  
diff --git a/pkgs/development/libraries/asf-support/default.nix b/pkgs/development/libraries/asf-support/default.nix
index e2b7a14e81918..9a712a869af7c 100644
--- a/pkgs/development/libraries/asf-support/default.nix
+++ b/pkgs/development/libraries/asf-support/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = [aterm errorSupport ptSupport];
-  buildNativeInputs = [pkgconfig];  
+  nativeBuildInputs = [pkgconfig];  
 
   dontStrip = isMingw;
 } 
diff --git a/pkgs/development/libraries/atk/default.nix b/pkgs/development/libraries/atk/default.nix
index eba56776bd2b8..4dd0ae1eeafbc 100644
--- a/pkgs/development/libraries/atk/default.nix
+++ b/pkgs/development/libraries/atk/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
     sha256 = "eff663f90847620bb68c9c2cbaaf7f45e2ff44163b9ab3f10d15be763680491f";
   };
 
-  buildNativeInputs = [ pkgconfig perl ];
+  nativeBuildInputs = [ pkgconfig perl ];
 
   propagatedBuildInputs = [ glib ];
 
diff --git a/pkgs/development/libraries/atkmm/2.22.x.nix b/pkgs/development/libraries/atkmm/2.22.x.nix
index 66237c4c7b993..b25432491fbce 100644
--- a/pkgs/development/libraries/atkmm/2.22.x.nix
+++ b/pkgs/development/libraries/atkmm/2.22.x.nix
@@ -10,5 +10,5 @@ stdenv.mkDerivation rec {
 
   propagatedBuildInputs = [ atk glibmm ];
 
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 }
diff --git a/pkgs/development/libraries/attica/default.nix b/pkgs/development/libraries/attica/default.nix
index a719537dd2fb5..9a5002551cb8b 100644
--- a/pkgs/development/libraries/attica/default.nix
+++ b/pkgs/development/libraries/attica/default.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
   };
   
   buildInputs = [ qt4 ];
-  buildNativeInputs = [ cmake ];
+  nativeBuildInputs = [ cmake ];
   
   meta = with stdenv.lib; {
     description = "A library to access Open Collaboration Service providers";
diff --git a/pkgs/development/libraries/attr/default.nix b/pkgs/development/libraries/attr/default.nix
index adc530863068a..3c5855ea284f2 100644
--- a/pkgs/development/libraries/attr/default.nix
+++ b/pkgs/development/libraries/attr/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
     sha256 = "07qf6kb2zk512az481bbnsk9jycn477xpva1a726n5pzlzf9pmnw";
   };
 
-  buildNativeInputs = [ gettext ];
+  nativeBuildInputs = [ gettext ];
 
   configureFlags = "MAKE=make MSGFMT=msgfmt MSGMERGE=msgmerge XGETTEXT=xgettext ECHO=echo SED=sed AWK=gawk";
 
diff --git a/pkgs/development/libraries/avahi/default.nix b/pkgs/development/libraries/avahi/default.nix
index 0789ef0ea7ca1..39a03e0b00291 100644
--- a/pkgs/development/libraries/avahi/default.nix
+++ b/pkgs/development/libraries/avahi/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
     ++ (stdenv.lib.optional qt4Support qt4)
     ++ libiconvOrEmpty;
 
-  buildNativeInputs = [ pkgconfig gettext intltool ];
+  nativeBuildInputs = [ pkgconfig gettext intltool ];
 
   configureFlags =
     [ "--disable-qt3" "--disable-gdbm" "--disable-mono"
diff --git a/pkgs/development/libraries/boolstuff/default.nix b/pkgs/development/libraries/boolstuff/default.nix
index c05fddc18cf05..9b5c25d4ca4e3 100644
--- a/pkgs/development/libraries/boolstuff/default.nix
+++ b/pkgs/development/libraries/boolstuff/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
     sha256 = "0akwb57lnzq1ak32k6mdxbma2gj0pqhj8y9m6hq79djb9s3mxvmn";
   };
 
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 
   meta = { 
     description = "Library for operations on boolean expression binary trees";
diff --git a/pkgs/development/libraries/boost/1.44.nix b/pkgs/development/libraries/boost/1.44.nix
index ad09adc8606ce..e0235cd8b39f2 100644
--- a/pkgs/development/libraries/boost/1.44.nix
+++ b/pkgs/development/libraries/boost/1.44.nix
@@ -29,7 +29,7 @@ let
     (enableShared && enableStatic)) then
     "tagged" else "system";
 
-  cflags = if (enablePIC) then "cflags=-fPIC cxxflags=-fPIC linkflags=-fPIC" else "";
+  cflags = if enablePIC then "cflags=-fPIC cxxflags=-fPIC linkflags=-fPIC" else "";
 
 in
 
@@ -71,7 +71,7 @@ stdenv.mkDerivation {
   ];
 
   crossAttrs = rec {
-    buildInputs = [ expat.hostDrv zlib.hostDrv bzip2.hostDrv ];
+    buildInputs = [ expat.crossDrv zlib.crossDrv bzip2.crossDrv ];
     # all buildInputs set previously fell into propagatedBuildInputs, as usual, so we have to
     # override them.
     propagatedBuildInputs = buildInputs;
@@ -85,7 +85,7 @@ stdenv.mkDerivation {
       cat << EOF > user-config.jam
       using gcc : cross : $crossConfig-g++ ;
       EOF
-      ./bjam -j$NIX_BUILD_CORES -sEXPAT_INCLUDE=${expat.hostDrv}/include -sEXPAT_LIBPATH=${expat.hostDrv}/lib --layout=${finalLayout} --user-config=user-config.jam toolset=gcc-cross variant=${variant} threading=${threading} link=${link} ${cflags} --without-python install
+      ./bjam -j$NIX_BUILD_CORES -sEXPAT_INCLUDE=${expat.crossDrv}/include -sEXPAT_LIBPATH=${expat.crossDrv}/lib --layout=${finalLayout} --user-config=user-config.jam toolset=gcc-cross variant=${variant} threading=${threading} link=${link} ${cflags} --without-python install
     '';
   };
 }
diff --git a/pkgs/development/libraries/boost/1.47.nix b/pkgs/development/libraries/boost/1.47.nix
index b8774b70265cf..195cb469051f3 100644
--- a/pkgs/development/libraries/boost/1.47.nix
+++ b/pkgs/development/libraries/boost/1.47.nix
@@ -29,11 +29,11 @@ let
     (enableShared && enableStatic)) then
     "tagged" else "system";
 
-  cflags = if (enablePIC && enableExceptions) then
+  cflags = if enablePIC && enableExceptions then
              "cflags=-fPIC -fexceptions cxxflags=-fPIC linkflags=-fPIC"
-           else if (enablePIC) then
+           else if enablePIC then
              "cflags=-fPIC cxxflags=-fPIC linkflags=-fPIC"
-           else if (enableExceptions) then
+           else if enableExceptions then
              "cflags=-fexceptions"
            else
              "";
@@ -70,7 +70,7 @@ stdenv.mkDerivation {
   installPhase = ":";
 
   crossAttrs = rec {
-    buildInputs = [ expat.hostDrv zlib.hostDrv bzip2.hostDrv ];
+    buildInputs = [ expat.crossDrv zlib.crossDrv bzip2.crossDrv ];
     # all buildInputs set previously fell into propagatedBuildInputs, as usual, so we have to
     # override them.
     propagatedBuildInputs = buildInputs;
@@ -84,7 +84,7 @@ stdenv.mkDerivation {
       cat << EOF > user-config.jam
       using gcc : cross : $crossConfig-g++ ;
       EOF
-      ./b2 -j$NIX_BUILD_CORES -sEXPAT_INCLUDE=${expat.hostDrv}/include -sEXPAT_LIBPATH=${expat.hostDrv}/lib --layout=${finalLayout} --user-config=user-config.jam toolset=gcc-cross variant=${variant} threading=${threading} link=${link} ${cflags} --without-python install
+      ./b2 -j$NIX_BUILD_CORES -sEXPAT_INCLUDE=${expat.crossDrv}/include -sEXPAT_LIBPATH=${expat.crossDrv}/lib --layout=${finalLayout} --user-config=user-config.jam toolset=gcc-cross variant=${variant} threading=${threading} link=${link} ${cflags} --without-python install
     '';
   };
 }
diff --git a/pkgs/development/libraries/boost/1.49.nix b/pkgs/development/libraries/boost/1.49.nix
index a86670927aad7..e0ba0630cd069 100644
--- a/pkgs/development/libraries/boost/1.49.nix
+++ b/pkgs/development/libraries/boost/1.49.nix
@@ -29,11 +29,11 @@ let
     (enableShared && enableStatic)) then
     "tagged" else "system";
 
-  cflags = if (enablePIC && enableExceptions) then
+  cflags = if enablePIC && enableExceptions then
              "cflags=-fPIC -fexceptions cxxflags=-fPIC linkflags=-fPIC"
-           else if (enablePIC) then
+           else if enablePIC then
              "cflags=-fPIC cxxflags=-fPIC linkflags=-fPIC"
-           else if (enableExceptions) then
+           else if enableExceptions then
              "cflags=-fexceptions"
            else
              "";
@@ -57,7 +57,7 @@ stdenv.mkDerivation {
   };
 
   # See <http://svn.boost.org/trac/boost/ticket/4688>.
-  patches = [ ./boost_filesystem_post_1_49_0.patch ];
+  patches = [ ./boost_filesystem_post_1_49_0.patch ./time_utc.patch ];
 
   enableParallelBuilding = true;
 
@@ -71,7 +71,7 @@ stdenv.mkDerivation {
   installPhase = ":";
 
   crossAttrs = rec {
-    buildInputs = [ expat.hostDrv zlib.hostDrv bzip2.hostDrv ];
+    buildInputs = [ expat.crossDrv zlib.crossDrv bzip2.crossDrv ];
     # all buildInputs set previously fell into propagatedBuildInputs, as usual, so we have to
     # override them.
     propagatedBuildInputs = buildInputs;
@@ -85,7 +85,7 @@ stdenv.mkDerivation {
       cat << EOF > user-config.jam
       using gcc : cross : $crossConfig-g++ ;
       EOF
-      ./b2 -j$NIX_BUILD_CORES -sEXPAT_INCLUDE=${expat.hostDrv}/include -sEXPAT_LIBPATH=${expat.hostDrv}/lib --layout=${finalLayout} --user-config=user-config.jam toolset=gcc-cross variant=${variant} threading=${threading} link=${link} ${cflags} --without-python install
+      ./b2 -j$NIX_BUILD_CORES -sEXPAT_INCLUDE=${expat.crossDrv}/include -sEXPAT_LIBPATH=${expat.crossDrv}/lib --layout=${finalLayout} --user-config=user-config.jam toolset=gcc-cross variant=${variant} threading=${threading} link=${link} ${cflags} --without-python install
     '';
   };
 }
diff --git a/pkgs/development/libraries/boost/1.53.nix b/pkgs/development/libraries/boost/1.53.nix
index 7de750efd916a..c3272e98a144f 100644
--- a/pkgs/development/libraries/boost/1.53.nix
+++ b/pkgs/development/libraries/boost/1.53.nix
@@ -27,11 +27,11 @@ let
   # To avoid library name collisions
   layout = if taggedLayout then "tagged" else "system";
 
-  cflags = if (enablePIC && enableExceptions) then
+  cflags = if enablePIC && enableExceptions then
              "cflags=-fPIC -fexceptions cxxflags=-fPIC linkflags=-fPIC"
-           else if (enablePIC) then
+           else if enablePIC then
              "cflags=-fPIC cxxflags=-fPIC linkflags=-fPIC"
-           else if (enableExceptions) then
+           else if enableExceptions then
              "cflags=-fexceptions"
            else
              "";
@@ -71,7 +71,7 @@ stdenv.mkDerivation {
   '';
 
   crossAttrs = rec {
-    buildInputs = [ expat.hostDrv zlib.hostDrv bzip2.hostDrv ];
+    buildInputs = [ expat.crossDrv zlib.crossDrv bzip2.crossDrv ];
     # all buildInputs set previously fell into propagatedBuildInputs, as usual, so we have to
     # override them.
     propagatedBuildInputs = buildInputs;
@@ -85,7 +85,7 @@ stdenv.mkDerivation {
       cat << EOF > user-config.jam
       using gcc : cross : $crossConfig-g++ ;
       EOF
-      ./b2 -j$NIX_BUILD_CORES -sEXPAT_INCLUDE=${expat.hostDrv}/include -sEXPAT_LIBPATH=${expat.hostDrv}/lib --layout=${layout} --user-config=user-config.jam toolset=gcc-cross variant=${variant} threading=${threading} link=${link} ${cflags} --without-python install
+      ./b2 -j$NIX_BUILD_CORES -sEXPAT_INCLUDE=${expat.crossDrv}/include -sEXPAT_LIBPATH=${expat.crossDrv}/lib --layout=${layout} --user-config=user-config.jam toolset=gcc-cross variant=${variant} threading=${threading} link=${link} ${cflags} --without-python install
     '';
   };
 }
diff --git a/pkgs/development/libraries/boost/time_utc.patch b/pkgs/development/libraries/boost/time_utc.patch
new file mode 100644
index 0000000000000..3585d0bfc6dd5
--- /dev/null
+++ b/pkgs/development/libraries/boost/time_utc.patch
@@ -0,0 +1,320 @@
+From: https://build.opensuse.org/package/view_file?file=boost-time_utc.patch&package=boost&project=Application%3AGeo
+
+From: https://svn.boost.org/trac/boost/changeset/78802
+
+Message:
+    Thread: fix TIME_UTC, WINVER, constexpr for tags, and don't use local files
+
+Only the TIME_UTC_ change is taken
+ 
+Index: boost_1_49_0/boost/thread/xtime.hpp
+===================================================================
+--- boost_1_49_0.orig/boost/thread/xtime.hpp
++++ boost_1_49_0/boost/thread/xtime.hpp
+@@ -2,7 +2,7 @@
+ // William E. Kempf
+ // Copyright (C) 2007-8 Anthony Williams
+ //
+-//  Distributed under the Boost Software License, Version 1.0. (See accompanying 
++//  Distributed under the Boost Software License, Version 1.0. (See accompanying
+ //  file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ 
+ #ifndef BOOST_XTIME_WEK070601_HPP
+@@ -20,7 +20,7 @@ namespace boost {
+ 
+ enum xtime_clock_types
+ {
+-    TIME_UTC=1
++    TIME_UTC_=1
+ //    TIME_TAI,
+ //    TIME_MONOTONIC,
+ //    TIME_PROCESS,
+@@ -53,14 +53,14 @@ struct xtime
+         boost::posix_time::microseconds((nsec+500)/1000);
+ #endif
+     }
+-    
++
+ };
+ 
+ inline xtime get_xtime(boost::system_time const& abs_time)
+ {
+     xtime res;
+     boost::posix_time::time_duration const time_since_epoch=abs_time-boost::posix_time::from_time_t(0);
+-            
++
+     res.sec=static_cast<xtime::xtime_sec_t>(time_since_epoch.total_seconds());
+     res.nsec=static_cast<xtime::xtime_nsec_t>(time_since_epoch.fractional_seconds()*(1000000000/time_since_epoch.ticks_per_second()));
+     return res;
+@@ -68,7 +68,7 @@ inline xtime get_xtime(boost::system_tim
+ 
+ inline int xtime_get(struct xtime* xtp, int clock_type)
+ {
+-    if (clock_type == TIME_UTC)
++    if (clock_type == TIME_UTC_)
+     {
+         *xtp=get_xtime(get_system_time());
+         return clock_type;
+@@ -81,7 +81,7 @@ inline int xtime_cmp(const xtime& xt1, c
+ {
+     if (xt1.sec == xt2.sec)
+         return (int)(xt1.nsec - xt2.nsec);
+-    else 
++    else
+         return (xt1.sec > xt2.sec) ? 1 : -1;
+ }
+ 
+Index: boost_1_49_0/libs/thread/example/starvephil.cpp
+===================================================================
+--- boost_1_49_0.orig/libs/thread/example/starvephil.cpp
++++ boost_1_49_0/libs/thread/example/starvephil.cpp
+@@ -50,7 +50,7 @@ public:
+                       << "very hot ..." << std::endl;
+         }
+         boost::xtime xt;
+-        boost::xtime_get(&xt, boost::TIME_UTC);
++        boost::xtime_get(&xt, boost::TIME_UTC_);
+         xt.sec += 3;
+         boost::thread::sleep(xt);
+         m_chickens += value;
+@@ -85,7 +85,7 @@ void chef()
+             std::cout << "(" << clock() << ") Chef: cooking ..." << std::endl;
+         }
+         boost::xtime xt;
+-        boost::xtime_get(&xt, boost::TIME_UTC);
++        boost::xtime_get(&xt, boost::TIME_UTC_);
+         xt.sec += 2;
+         boost::thread::sleep(xt);
+         {
+@@ -111,7 +111,7 @@ struct phil
+             if (m_id > 0)
+             {
+                 boost::xtime xt;
+-                boost::xtime_get(&xt, boost::TIME_UTC);
++                boost::xtime_get(&xt, boost::TIME_UTC_);
+                 xt.sec += 3;
+                 boost::thread::sleep(xt);
+             }
+Index: boost_1_49_0/libs/thread/example/tennis.cpp
+===================================================================
+--- boost_1_49_0.orig/libs/thread/example/tennis.cpp
++++ boost_1_49_0/libs/thread/example/tennis.cpp
+@@ -1,7 +1,7 @@
+ // Copyright (C) 2001-2003
+ // William E. Kempf
+ //
+-//  Distributed under the Boost Software License, Version 1.0. (See accompanying 
++//  Distributed under the Boost Software License, Version 1.0. (See accompanying
+ //  file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ 
+ #include <boost/thread/mutex.hpp>
+@@ -104,7 +104,7 @@ int main(int argc, char* argv[])
+     boost::thread thrdb(thread_adapter(&player, (void*)PLAYER_B));
+ 
+     boost::xtime xt;
+-    boost::xtime_get(&xt, boost::TIME_UTC);
++    boost::xtime_get(&xt, boost::TIME_UTC_);
+     xt.sec += 1;
+     boost::thread::sleep(xt);
+     {
+Index: boost_1_49_0/libs/thread/example/thread.cpp
+===================================================================
+--- boost_1_49_0.orig/libs/thread/example/thread.cpp
++++ boost_1_49_0/libs/thread/example/thread.cpp
+@@ -14,7 +14,7 @@ struct thread_alarm
+     void operator()()
+     {
+         boost::xtime xt;
+-        boost::xtime_get(&xt, boost::TIME_UTC);
++        boost::xtime_get(&xt, boost::TIME_UTC_);
+         xt.sec += m_secs;
+ 
+         boost::thread::sleep(xt);
+Index: boost_1_49_0/libs/thread/example/xtime.cpp
+===================================================================
+--- boost_1_49_0.orig/libs/thread/example/xtime.cpp
++++ boost_1_49_0/libs/thread/example/xtime.cpp
+@@ -10,7 +10,7 @@
+ int main(int argc, char* argv[])
+ {
+     boost::xtime xt;
+-    boost::xtime_get(&xt, boost::TIME_UTC);
++    boost::xtime_get(&xt, boost::TIME_UTC_);
+     xt.sec += 1;
+     boost::thread::sleep(xt); // Sleep for 1 second
+ }
+Index: boost_1_49_0/libs/thread/src/pthread/thread.cpp
+===================================================================
+--- boost_1_49_0.orig/libs/thread/src/pthread/thread.cpp
++++ boost_1_49_0/libs/thread/src/pthread/thread.cpp
+@@ -23,7 +23,7 @@
+ #include <unistd.h>
+ #endif
+ 
+-#include "timeconv.inl"
++#include <libs/thread/src/pthread/timeconv.inl>
+ 
+ namespace boost
+ {
+@@ -354,7 +354,7 @@ namespace boost
+                     cond.timed_wait(lock, xt);
+ #   endif
+                     xtime cur;
+-                    xtime_get(&cur, TIME_UTC);
++                    xtime_get(&cur, TIME_UTC_);
+                     if (xtime_cmp(xt, cur) <= 0)
+                         return;
+                 }
+@@ -369,7 +369,7 @@ namespace boost
+             BOOST_VERIFY(!pthread_yield());
+ #   else
+             xtime xt;
+-            xtime_get(&xt, TIME_UTC);
++            xtime_get(&xt, TIME_UTC_);
+             sleep(xt);
+ #   endif
+         }
+Index: boost_1_49_0/libs/thread/src/pthread/timeconv.inl
+===================================================================
+--- boost_1_49_0.orig/libs/thread/src/pthread/timeconv.inl
++++ boost_1_49_0/libs/thread/src/pthread/timeconv.inl
+@@ -20,8 +20,8 @@ const int NANOSECONDS_PER_MICROSECOND =
+ inline void to_time(int milliseconds, boost::xtime& xt)
+ {
+     int res = 0;
+-    res = boost::xtime_get(&xt, boost::TIME_UTC);
+-    BOOST_ASSERT(res == boost::TIME_UTC); (void)res;
++    res = boost::xtime_get(&xt, boost::TIME_UTC_);
++    BOOST_ASSERT(res == boost::TIME_UTC_); (void)res;
+ 
+     xt.sec += (milliseconds / MILLISECONDS_PER_SECOND);
+     xt.nsec += ((milliseconds % MILLISECONDS_PER_SECOND) *
+@@ -56,8 +56,8 @@ inline void to_timespec_duration(const b
+ {
+     boost::xtime cur;
+     int res = 0;
+-    res = boost::xtime_get(&cur, boost::TIME_UTC);
+-    BOOST_ASSERT(res == boost::TIME_UTC); (void)res;
++    res = boost::xtime_get(&cur, boost::TIME_UTC_);
++    BOOST_ASSERT(res == boost::TIME_UTC_); (void)res;
+ 
+     if (boost::xtime_cmp(xt, cur) <= 0)
+     {
+@@ -87,8 +87,8 @@ inline void to_duration(boost::xtime xt,
+ {
+     boost::xtime cur;
+     int res = 0;
+-    res = boost::xtime_get(&cur, boost::TIME_UTC);
+-    BOOST_ASSERT(res == boost::TIME_UTC); (void)res;
++    res = boost::xtime_get(&cur, boost::TIME_UTC_);
++    BOOST_ASSERT(res == boost::TIME_UTC_); (void)res;
+ 
+     if (boost::xtime_cmp(xt, cur) <= 0)
+         milliseconds = 0;
+@@ -109,8 +109,8 @@ inline void to_microduration(boost::xtim
+ {
+     boost::xtime cur;
+     int res = 0;
+-    res = boost::xtime_get(&cur, boost::TIME_UTC);
+-    BOOST_ASSERT(res == boost::TIME_UTC); (void)res;
++    res = boost::xtime_get(&cur, boost::TIME_UTC_);
++    BOOST_ASSERT(res == boost::TIME_UTC_); (void)res;
+ 
+     if (boost::xtime_cmp(xt, cur) <= 0)
+         microseconds = 0;
+Index: boost_1_49_0/libs/thread/src/win32/timeconv.inl
+===================================================================
+--- boost_1_49_0.orig/libs/thread/src/win32/timeconv.inl
++++ boost_1_49_0/libs/thread/src/win32/timeconv.inl
+@@ -17,8 +17,8 @@ const int NANOSECONDS_PER_MICROSECOND =
+ inline void to_time(int milliseconds, boost::xtime& xt)
+ {
+     int res = 0;
+-    res = boost::xtime_get(&xt, boost::TIME_UTC);
+-    assert(res == boost::TIME_UTC);
++    res = boost::xtime_get(&xt, boost::TIME_UTC_);
++    assert(res == boost::TIME_UTC_);
+ 
+     xt.sec += (milliseconds / MILLISECONDS_PER_SECOND);
+     xt.nsec += ((milliseconds % MILLISECONDS_PER_SECOND) *
+@@ -54,8 +54,8 @@ inline void to_timespec_duration(const b
+ {
+     boost::xtime cur;
+     int res = 0;
+-    res = boost::xtime_get(&cur, boost::TIME_UTC);
+-    assert(res == boost::TIME_UTC);
++    res = boost::xtime_get(&cur, boost::TIME_UTC_);
++    assert(res == boost::TIME_UTC_);
+ 
+     if (boost::xtime_cmp(xt, cur) <= 0)
+     {
+@@ -85,8 +85,8 @@ inline void to_duration(boost::xtime xt,
+ {
+     boost::xtime cur;
+     int res = 0;
+-    res = boost::xtime_get(&cur, boost::TIME_UTC);
+-    assert(res == boost::TIME_UTC);
++    res = boost::xtime_get(&cur, boost::TIME_UTC_);
++    assert(res == boost::TIME_UTC_);
+ 
+     if (boost::xtime_cmp(xt, cur) <= 0)
+         milliseconds = 0;
+@@ -107,8 +107,8 @@ inline void to_microduration(boost::xtim
+ {
+     boost::xtime cur;
+     int res = 0;
+-    res = boost::xtime_get(&cur, boost::TIME_UTC);
+-    assert(res == boost::TIME_UTC);
++    res = boost::xtime_get(&cur, boost::TIME_UTC_);
++    assert(res == boost::TIME_UTC_);
+ 
+     if (boost::xtime_cmp(xt, cur) <= 0)
+         microseconds = 0;
+Index: boost_1_49_0/libs/thread/test/test_xtime.cpp
+===================================================================
+--- boost_1_49_0.orig/libs/thread/test/test_xtime.cpp
++++ boost_1_49_0/libs/thread/test/test_xtime.cpp
+@@ -17,8 +17,8 @@ void test_xtime_cmp()
+ {
+     boost::xtime xt1, xt2, cur;
+     BOOST_CHECK_EQUAL(
+-        boost::xtime_get(&cur, boost::TIME_UTC),
+-        static_cast<int>(boost::TIME_UTC));
++        boost::xtime_get(&cur, boost::TIME_UTC_),
++        static_cast<int>(boost::TIME_UTC_));
+ 
+     xt1 = xt2 = cur;
+     xt1.nsec -= 1;
+@@ -42,14 +42,14 @@ void test_xtime_get()
+     boost::xtime orig, cur, old;
+     BOOST_CHECK_EQUAL(
+         boost::xtime_get(&orig,
+-            boost::TIME_UTC), static_cast<int>(boost::TIME_UTC));
++            boost::TIME_UTC_), static_cast<int>(boost::TIME_UTC_));
+     old = orig;
+ 
+     for (int x=0; x < 100; ++x)
+     {
+         BOOST_CHECK_EQUAL(
+-            boost::xtime_get(&cur, boost::TIME_UTC),
+-            static_cast<int>(boost::TIME_UTC));
++            boost::xtime_get(&cur, boost::TIME_UTC_),
++            static_cast<int>(boost::TIME_UTC_));
+         BOOST_CHECK(boost::xtime_cmp(cur, orig) >= 0);
+         BOOST_CHECK(boost::xtime_cmp(cur, old) >= 0);
+         old = cur;
+Index: boost_1_49_0/libs/thread/test/util.inl
+===================================================================
+--- boost_1_49_0.orig/libs/thread/test/util.inl
++++ boost_1_49_0/libs/thread/test/util.inl
+@@ -28,8 +28,8 @@ inline boost::xtime delay(int secs, int
+     const int NANOSECONDS_PER_MILLISECOND = 1000000;
+ 
+     boost::xtime xt;
+-    if (boost::TIME_UTC != boost::xtime_get (&xt, boost::TIME_UTC))
+-        BOOST_ERROR ("boost::xtime_get != boost::TIME_UTC");
++    if (boost::TIME_UTC_ != boost::xtime_get (&xt, boost::TIME_UTC_))
++        BOOST_ERROR ("boost::xtime_get != boost::TIME_UTC_");
+ 
+     nsecs += xt.nsec;
+     msecs += nsecs / NANOSECONDS_PER_MILLISECOND;
diff --git a/pkgs/development/libraries/c-library/default.nix b/pkgs/development/libraries/c-library/default.nix
index 96bb82f54be8e..714e8b66089cb 100644
--- a/pkgs/development/libraries/c-library/default.nix
+++ b/pkgs/development/libraries/c-library/default.nix
@@ -17,6 +17,6 @@ stdenv.mkDerivation rec {
   patches = if isMingw then [./mingw.patch] else [];
   
   buildInputs = [aterm];
-  buildNativeInputs = [pkgconfig];
+  nativeBuildInputs = [pkgconfig];
   dontStrip = isMingw;
 }  
diff --git a/pkgs/development/libraries/caelum/default.nix b/pkgs/development/libraries/caelum/default.nix
index 75eb5109b4531..e48ed5a76928f 100644
--- a/pkgs/development/libraries/caelum/default.nix
+++ b/pkgs/development/libraries/caelum/default.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = [ ois ogre boost ];
-  buildNativeInputs = [ cmake pkgconfig ];
+  nativeBuildInputs = [ cmake pkgconfig ];
 
   enableParallelBuilding = true;
 
diff --git a/pkgs/development/libraries/cloog-ppl/default.nix b/pkgs/development/libraries/cloog-ppl/default.nix
index d9dae7bfd41fc..aa594a8e2bc17 100644
--- a/pkgs/development/libraries/cloog-ppl/default.nix
+++ b/pkgs/development/libraries/cloog-ppl/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
   configureFlags = "--with-ppl=${ppl}";
 
   crossAttrs = {
-    configureFlags = "--with-ppl=${ppl.hostDrv}";
+    configureFlags = "--with-ppl=${ppl.crossDrv}";
   };
 
   doCheck = true;
diff --git a/pkgs/development/libraries/clucene-core/2.x.nix b/pkgs/development/libraries/clucene-core/2.x.nix
index 72460184df21a..97c7a4c9f53a2 100644
--- a/pkgs/development/libraries/clucene-core/2.x.nix
+++ b/pkgs/development/libraries/clucene-core/2.x.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
     sha256 = "1arffdwivig88kkx685pldr784njm0249k0rb1f1plwavlrw9zfx";
   };
 
-  buildNativeInputs = [ cmake ];
+  nativeBuildInputs = [ cmake ];
 
   buildInputs = [ boost zlib ];
 
diff --git a/pkgs/development/libraries/clutter-gtk/0.10.8.nix b/pkgs/development/libraries/clutter-gtk/0.10.8.nix
index b44801928e90b..182040f5c414c 100644
--- a/pkgs/development/libraries/clutter-gtk/0.10.8.nix
+++ b/pkgs/development/libraries/clutter-gtk/0.10.8.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
   };
 
   propagatedBuildInputs = [ clutter gtk ];
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 
   postBuild = "rm -rf $out/share/gtk-doc";
 
diff --git a/pkgs/development/libraries/clutter-gtk/default.nix b/pkgs/development/libraries/clutter-gtk/default.nix
index a48ff93ce228b..3e13ff2da7e35 100644
--- a/pkgs/development/libraries/clutter-gtk/default.nix
+++ b/pkgs/development/libraries/clutter-gtk/default.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
   };
 
   propagatedBuildInputs = [ clutter gtk3 ];
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 
   postBuild = "rm -rf $out/share/gtk-doc";
 
diff --git a/pkgs/development/libraries/clutter/default.nix b/pkgs/development/libraries/clutter/default.nix
index 52a9eaa98fa15..6c6891fb279cf 100644
--- a/pkgs/development/libraries/clutter/default.nix
+++ b/pkgs/development/libraries/clutter/default.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation {
     sha256 = "0bzsvnharawfg525lpavrp55mq4aih5nb01dwwqwnccg8hk9z2fw";
   };
 
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
   propagatedBuildInputs =
     [ libX11 mesa libXext libXfixes libXdamage libXcomposite libXi cogl pango
       atk json_glib
diff --git a/pkgs/development/libraries/cogl/default.nix b/pkgs/development/libraries/cogl/default.nix
index 11a6e374e2e4b..b697ed87edc43 100644
--- a/pkgs/development/libraries/cogl/default.nix
+++ b/pkgs/development/libraries/cogl/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
     sha256 = "1ix87hz3qxqysqwx58wbc46lzchlmfs08fjzbf3l6mmsqj8gs9pc";
   };
 
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 
   propagatedBuildInputs =
     [ mesa glib gdk_pixbuf libXfixes libXcomposite libXdamage ];
diff --git a/pkgs/development/libraries/config-support/default.nix b/pkgs/development/libraries/config-support/default.nix
index 72b1bea7b2035..d25accd4664ec 100644
--- a/pkgs/development/libraries/config-support/default.nix
+++ b/pkgs/development/libraries/config-support/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = [aterm];
-  buildNativeInputs = [pkgconfig];
+  nativeBuildInputs = [pkgconfig];
 
   dontStrip = isMingw;
 } 
diff --git a/pkgs/development/libraries/dbus-glib/default.nix b/pkgs/development/libraries/dbus-glib/default.nix
index 5fccc7ad66b75..47e83e7780ccb 100644
--- a/pkgs/development/libraries/dbus-glib/default.nix
+++ b/pkgs/development/libraries/dbus-glib/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
     sha256 = "04fiwld5yaxyggxlvdmbaqkngh4fn8gfkkqckcp3274bpgb82z19";
   };
 
-  buildNativeInputs = [ pkgconfig gettext ];
+  nativeBuildInputs = [ pkgconfig gettext ];
 
   buildInputs = [ expat ] ++ stdenv.lib.optional (!stdenv.isLinux) libiconv;
 
diff --git a/pkgs/development/libraries/dbus/default.nix b/pkgs/development/libraries/dbus/default.nix
index 0b8029c94dbf1..5716ac6648a09 100644
--- a/pkgs/development/libraries/dbus/default.nix
+++ b/pkgs/development/libraries/dbus/default.nix
@@ -17,7 +17,7 @@ in rec {
   libs = stdenv.mkDerivation {
     name = "dbus-library-" + version;
 
-    buildNativeInputs = [ pkgconfig ];
+    nativeBuildInputs = [ pkgconfig ];
 
     buildInputs = [ expat ];
 
@@ -48,7 +48,7 @@ in rec {
 
     configureFlags = "${configureFlags} --with-dbus-daemondir=${daemon}/bin";
 
-    buildNativeInputs = [ pkgconfig ];
+    nativeBuildInputs = [ pkgconfig ];
 
     buildInputs = [ expat libs ]
       ++ stdenv.lib.optionals useX11 [ libX11 libICE libSM ];
diff --git a/pkgs/development/libraries/directfb/default.nix b/pkgs/development/libraries/directfb/default.nix
index 5c6c080a92519..cdc54ef669161 100644
--- a/pkgs/development/libraries/directfb/default.nix
+++ b/pkgs/development/libraries/directfb/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation {
     sha256 = s.hash;
   };
 
-  buildNativeInputs = [ perl ];
+  nativeBuildInputs = [ perl ];
 
   buildInputs = [ pkgconfig zlib libjpeg freetype giflib libpng ]
     ++ stdenv.lib.optional enableSDL SDL
diff --git a/pkgs/development/libraries/eigen/2.0.nix b/pkgs/development/libraries/eigen/2.0.nix
index 6884aca16fcb8..9cf0a3c350cc0 100644
--- a/pkgs/development/libraries/eigen/2.0.nix
+++ b/pkgs/development/libraries/eigen/2.0.nix
@@ -5,15 +5,15 @@ let
 in
 stdenv.mkDerivation {
   name = "eigen-${v}";
-  
+
   src = fetchurl {
     url = "http://bitbucket.org/eigen/eigen/get/${v}.tar.bz2";
     name = "eigen-${v}.tar.bz2";
     sha256 = "1akcb4g5hvc664gfc6sxb6f6jrm55fgks6017wg0smyvmm6k09v0";
   };
-  
-  buildNativeInputs = [ cmake ];
-  
+
+  nativeBuildInputs = [ cmake ];
+
   meta = with stdenv.lib; {
     description = "C++ template library for linear algebra: vectors, matrices, and related algorithms";
     license = licenses.lgpl3Plus;
diff --git a/pkgs/development/libraries/eigen/default.nix b/pkgs/development/libraries/eigen/default.nix
index 56f66aba8f8d7..5653eec6d41ff 100644
--- a/pkgs/development/libraries/eigen/default.nix
+++ b/pkgs/development/libraries/eigen/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation {
     sha256 = "1hywvbn4a8f96fjn3cvd6nxzh5jvh05s1r263d9vqlgn25dxrzay";
   };
   
-  buildNativeInputs = [ cmake ];
+  nativeBuildInputs = [ cmake ];
   
   meta = with stdenv.lib; {
     description = "C++ template library for linear algebra: vectors, matrices, and related algorithms";
diff --git a/pkgs/development/libraries/error-support/default.nix b/pkgs/development/libraries/error-support/default.nix
index da59c3bb9b462..766a0dbef1d80 100644
--- a/pkgs/development/libraries/error-support/default.nix
+++ b/pkgs/development/libraries/error-support/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = [aterm toolbuslib];
-  buildNativeInputs = [pkgconfig];
+  nativeBuildInputs = [pkgconfig];
 
   dontStrip = isMingw;
 } 
diff --git a/pkgs/development/libraries/farsight2/default.nix b/pkgs/development/libraries/farsight2/default.nix
index cbb21073685c7..3467ac2cc3bca 100644
--- a/pkgs/development/libraries/farsight2/default.nix
+++ b/pkgs/development/libraries/farsight2/default.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ libnice python pygobject gst_python gupnp_igd ];
 
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 
   propagatedBuildInputs = [ gstreamer gst_plugins_base ];
 
diff --git a/pkgs/development/libraries/farstream/default.nix b/pkgs/development/libraries/farstream/default.nix
index 3babcb8283371..87764483f47ea 100644
--- a/pkgs/development/libraries/farstream/default.nix
+++ b/pkgs/development/libraries/farstream/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ libnice python pygobject gupnp_igd ];
 
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 
   propagatedBuildInputs = [ gstreamer gst_plugins_base gst_python 
     gst_plugins_good gst_plugins_bad gst_ffmpeg
diff --git a/pkgs/development/libraries/ffmpeg/default.nix b/pkgs/development/libraries/ffmpeg/default.nix
index 3b5e28a2ee7fb..b37fcdf4436cc 100644
--- a/pkgs/development/libraries/ffmpeg/default.nix
+++ b/pkgs/development/libraries/ffmpeg/default.nix
@@ -74,6 +74,10 @@ stdenv.mkDerivation rec {
       ];
   };
 
+  passthru = {
+    inherit vdpauSupport;
+  };
+
   meta = {
     homepage = http://www.ffmpeg.org/;
     description = "A complete, cross-platform solution to record, convert and stream audio and video";
diff --git a/pkgs/development/libraries/fltk/fltk13.nix b/pkgs/development/libraries/fltk/fltk13.nix
index d3d89e6a9074c..3ab267ad6b4aa 100644
--- a/pkgs/development/libraries/fltk/fltk13.nix
+++ b/pkgs/development/libraries/fltk/fltk13.nix
@@ -14,7 +14,7 @@ composableDerivation.composableDerivation {} {
 
   propagatedBuildInputs = [ x11 inputproto libXi freeglut ];
 
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 
   flags =
     # this could be tidied up (?).. eg why does it require freeglut without glSupport?
diff --git a/pkgs/development/libraries/fmod/default.nix b/pkgs/development/libraries/fmod/default.nix
index f73480b3ce460..d85a24fa63ad2 100644
--- a/pkgs/development/libraries/fmod/default.nix
+++ b/pkgs/development/libraries/fmod/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation {
   name = "fmod-42204";
-  src = if (stdenv.system == "i686-linux") then
+  src = if stdenv.system == "i686-linux" then
     fetchurl {
       url = http://www.fmod.org/index.php/release/version/fmodapi42204linux.tar.gz;
       sha256 = "64eedc5b37c597eb925de446106d75cab0b5a79697d5ec048d34702812c08563";
-    } else if (stdenv.system == "x86_64-linux") then
+    } else if stdenv.system == "x86_64-linux" then
     fetchurl {
       url = http://www.fmod.org/index.php/release/version/fmodapi42204linux64.tar.gz;
       sha256 = "3f2eec8265838a1005febe07c4971660e85010e4622911890642dc438746edf3";
diff --git a/pkgs/development/libraries/funambol/default.nix b/pkgs/development/libraries/funambol/default.nix
index 589ffaba3f965..98049e0ca35a7 100644
--- a/pkgs/development/libraries/funambol/default.nix
+++ b/pkgs/development/libraries/funambol/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
 
   propagatedBuildInputs = [ zlib curl ];
 
-  buildNativeInputs = [ automake libtool autoconf unzip ];
+  nativeBuildInputs = [ automake libtool autoconf unzip ];
 
   meta = {
     description = "SyncML client sdk by Funambol project";
diff --git a/pkgs/development/libraries/gamin/default.nix b/pkgs/development/libraries/gamin/default.nix
index a212946c67f32..6d94eee865f3f 100644
--- a/pkgs/development/libraries/gamin/default.nix
+++ b/pkgs/development/libraries/gamin/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
     sha256 = "18cr51y5qacvs2fc2p1bqv32rs8bzgs6l67zhasyl45yx055y218";
   };
 
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 
   buildInputs = [ python glib ];
 
diff --git a/pkgs/development/libraries/gdk-pixbuf/default.nix b/pkgs/development/libraries/gdk-pixbuf/default.nix
index 56ef0f708748b..532318b334b83 100644
--- a/pkgs/development/libraries/gdk-pixbuf/default.nix
+++ b/pkgs/development/libraries/gdk-pixbuf/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
   # !!! We might want to factor out the gdk-pixbuf-xlib subpackage.
   buildInputs = [ libX11 ];
 
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 
   propagatedBuildInputs = [ glib libtiff libjpeg libpng jasper ];
 
diff --git a/pkgs/development/libraries/gegl/default.nix b/pkgs/development/libraries/gegl/default.nix
index 5da6e3e40f4cf..a30d5c78e7f23 100644
--- a/pkgs/development/libraries/gegl/default.nix
+++ b/pkgs/development/libraries/gegl/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ babl libpng cairo libjpeg librsvg pango gtk bzip2 intltool ];
 
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 
   meta = { 
     description = "Graph-based image processing framework";
diff --git a/pkgs/development/libraries/gettext/default.nix b/pkgs/development/libraries/gettext/default.nix
index 73366b2bdc95b..5468c9f2336de 100644
--- a/pkgs/development/libraries/gettext/default.nix
+++ b/pkgs/development/libraries/gettext/default.nix
@@ -8,6 +8,8 @@ stdenv.mkDerivation (rec {
     sha256 = "1sa3ch12qxa4h3ya6hkz119yclcccmincl9j20dhrdx5mykp3b4k";
   };
 
+  patches = [ ./no-gets.patch ];
+
   configureFlags = [ "--disable-csharp" ]
      ++ (stdenv.lib.optionals stdenv.isCygwin
           [ # We have a static libiconv, so we can only build the static lib.
@@ -34,7 +36,7 @@ stdenv.mkDerivation (rec {
       
   crossAttrs = {
     buildInputs = stdenv.lib.optional (stdenv.gccCross.libc ? libiconv)
-      stdenv.gccCross.libc.libiconv.hostDrv;
+      stdenv.gccCross.libc.libiconv.crossDrv;
     # Gettext fails to guess the cross compiler
     configureFlags = "CXX=${stdenv.cross.config}-g++";
   };
diff --git a/pkgs/development/libraries/gettext/no-gets.patch b/pkgs/development/libraries/gettext/no-gets.patch
new file mode 100644
index 0000000000000..9daa48eae649f
--- /dev/null
+++ b/pkgs/development/libraries/gettext/no-gets.patch
@@ -0,0 +1,42 @@
+hack until gzip pulls a newer gnulib version
+
+From 66712c23388e93e5c518ebc8515140fa0c807348 Mon Sep 17 00:00:00 2001
+From: Eric Blake <eblake@redhat.com>
+Date: Thu, 29 Mar 2012 13:30:41 -0600
+Subject: [PATCH] stdio: don't assume gets any more
+
+Gnulib intentionally does not have a gets module, and now that C11
+and glibc have dropped it, we should be more proactive about warning
+any user on a platform that still has a declaration of this dangerous
+interface.
+
+--- a/gettext-tools/libgettextpo/stdio.in.h
++++ b/gettext-tools/libgettextpo/stdio.in.h
+@@ -125,7 +125,6 @@
+    so any use of gets warrants an unconditional warning.  Assume it is
+    always declared, since it is required by C89.  */
+ #undef gets
+-_GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
+ 
+ #if @GNULIB_FOPEN@
+ # if @REPLACE_FOPEN@
+--- a/gettext-tools/gnulib-lib/stdio.in.h
++++ b/gettext-tools/gnulib-lib/stdio.in.h
+@@ -125,7 +125,6 @@
+    so any use of gets warrants an unconditional warning.  Assume it is
+    always declared, since it is required by C89.  */
+ #undef gets
+-_GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
+ 
+ #if @GNULIB_FOPEN@
+ # if @REPLACE_FOPEN@
+--- a/gettext-runtime/gnulib-lib/stdio.in.h
++++ b/gettext-runtime/gnulib-lib/stdio.in.h
+@@ -125,7 +125,6 @@
+    so any use of gets warrants an unconditional warning.  Assume it is
+    always declared, since it is required by C89.  */
+ #undef gets
+-_GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
+ 
+ #if @GNULIB_FOPEN@
+ # if @REPLACE_FOPEN@
diff --git a/pkgs/development/libraries/glib-networking/default.nix b/pkgs/development/libraries/glib-networking/default.nix
index 107a583d10203..2c651980eda84 100644
--- a/pkgs/development/libraries/glib-networking/default.nix
+++ b/pkgs/development/libraries/glib-networking/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation {
     sed -e "s@${glib}/lib/gio/modules@$out/lib/gio/modules@g" -i $(find . -name Makefile)
   '';
 
-  buildNativeInputs = [ pkgconfig intltool ];
+  nativeBuildInputs = [ pkgconfig intltool ];
   propagatedBuildInputs =
     [ glib libtool gnutls2 libproxy libgcrypt libtasn1 gsettings_desktop_schemas ];
 }
diff --git a/pkgs/development/libraries/glib/default.nix b/pkgs/development/libraries/glib/default.nix
index 2c5028427f87d..3ea2771811486 100644
--- a/pkgs/development/libraries/glib/default.nix
+++ b/pkgs/development/libraries/glib/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation (rec {
   # configure script looks for d-bus but it is only needed for tests
   buildInputs = [ libiconvOrNull ];
 
-  buildNativeInputs = [ perl pkgconfig gettext python ];
+  nativeBuildInputs = [ perl pkgconfig gettext python ];
 
   propagatedBuildInputs = [ pcre zlib libffi ];
 
diff --git a/pkgs/development/libraries/glibc/2.13/common.nix b/pkgs/development/libraries/glibc/2.13/common.nix
index cc8c5373ff55f..8be076f335c02 100644
--- a/pkgs/development/libraries/glibc/2.13/common.nix
+++ b/pkgs/development/libraries/glibc/2.13/common.nix
@@ -39,7 +39,7 @@ stdenv.mkDerivation ({
   inherit kernelHeaders installLocales;
 
   # The host/target system.
-  crossConfig = if (cross != null) then cross.config else null;
+  crossConfig = if cross != null then cross.config else null;
 
   inherit (stdenv) is64bit;
 
@@ -102,14 +102,16 @@ stdenv.mkDerivation ({
     "-C"
     "--enable-add-ons"
     "--sysconfdir=/etc"
-    "--localedir=/var/run/current-system/sw/lib/locale" ] ++
-    (stdenv.lib.optional (stdenv.name == "stdenv") "libc_cv_ssp=no") ++ [
+    "--localedir=/var/run/current-system/sw/lib/locale"
+    "libc_cv_ssp=no"
     (if kernelHeaders != null
      then "--with-headers=${kernelHeaders}/include"
      else "--without-headers")
     (if profilingLibraries
      then "--enable-profile"
      else "--disable-profile")
+  ] ++ stdenv.lib.optionals (cross == null && kernelHeaders != null) [
+    "--enable-kernel=2.6.35"
   ] ++ stdenv.lib.optionals (cross != null) [
     (if cross.withTLS then "--with-tls" else "--without-tls")
     (if cross.float == "soft" then "--without-fp" else "--with-fp")
@@ -118,7 +120,8 @@ stdenv.mkDerivation ({
         && cross.platform.kernelMajor == "2.6") [
     "--enable-kernel=2.6.0"
     "--with-__thread"
-  ] ++ stdenv.lib.optionals stdenv.isArm [
+  ] ++ stdenv.lib.optionals (cross == null &&
+       (stdenv.system == "armv5tel-linux")) [
     "--host=arm-linux-gnueabi"
     "--build=arm-linux-gnueabi"
     "--without-fp"
@@ -126,6 +129,14 @@ stdenv.mkDerivation ({
     # To avoid linking with -lgcc_s (dynamic link)
     # so the glibc does not depend on its compiler store path
     "libc_cv_as_needed=no"
+  ] ++ stdenv.lib.optionals (cross == null && stdenv.platform.name == "raspberrypi") [
+    "--host=arm-linux-gnueabi"
+    "--build=arm-linux-gnueabi"
+    "--with-fp"
+
+    # To avoid linking with -lgcc_s (dynamic link)
+    # so the glibc does not depend on its compiler store path
+    "libc_cv_as_needed=no"
   ];
 
   installFlags = [ "sysconfdir=$(out)/etc" ];
diff --git a/pkgs/development/libraries/glibc/2.14/common.nix b/pkgs/development/libraries/glibc/2.14/common.nix
deleted file mode 100644
index ab3ef7c42f49a..0000000000000
--- a/pkgs/development/libraries/glibc/2.14/common.nix
+++ /dev/null
@@ -1,223 +0,0 @@
-/* Build configuration used to build glibc, Info files, and locale
-   information.  */
-
-cross :
-
-{ name, fetchurl, stdenv, installLocales ? false
-, gccCross ? null, kernelHeaders ? null
-, machHeaders ? null, hurdHeaders ? null, libpthreadHeaders ? null
-, mig ? null, fetchgit ? null
-, profilingLibraries ? false, meta
-, preConfigure ? "", ... }@args :
-
-let
-  # For GNU/Hurd, see below.
-  version = if hurdHeaders != null then "20111025" else "2.14.1";
-
-  needsPortsNative = stdenv.isMips || stdenv.isArm;
-  needsPortsCross = cross.arch == "mips" || cross.arch == "arm";
-  needsPorts = if (stdenv ? cross) && stdenv.cross != null then true
-    else if cross == null then needsPortsNative
-    else needsPortsCross;
-
-  srcPorts = fetchurl {
-    url = "mirror://gnu/glibc/glibc-ports-2.14.1.tar.bz2";
-    sha256 = "1acs4sd5mjzmssmd0md6dfqwnziph2am7v09mbnnd8aadpxhm0qw";
-  };
-
-in
-
-assert (cross != null) -> (gccCross != null);
-
-assert (mig != null) -> (machHeaders != null);
-assert (machHeaders != null) -> (hurdHeaders != null);
-assert (hurdHeaders != null) -> (libpthreadHeaders != null);
-assert (hurdHeaders != null) -> (fetchgit != null);
-
-stdenv.mkDerivation ({
-  inherit kernelHeaders installLocales;
-
-  # The host/target system.
-  crossConfig = if (cross != null) then cross.config else null;
-
-  inherit (stdenv) is64bit;
-
-  enableParallelBuilding = true;
-
-  patches =
-    stdenv.lib.optional (fetchgit == null)
-    /* Fix for NIXPKGS-79: when doing host name lookups, when
-       nsswitch.conf contains a line like
-
-         hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4
-
-       don't return an error when mdns4_minimal can't be found.  This
-       is a bug in Glibc: when a service can't be found, NSS should
-       continue to the next service unless "UNAVAIL=return" is set.
-       ("NOTFOUND=return" refers to the service returning a NOTFOUND
-       error, not the service itself not being found.)  The reason is
-       that the "status" variable (while initialised to UNAVAIL) is
-       outside of the loop that iterates over the services, the
-       "files" service sets status to NOTFOUND.  So when the call to
-       find "mdns4_minimal" fails, "status" will still be NOTFOUND,
-       and it will return instead of continuing to "dns".  Thus, the
-       line
-
-         hosts: mdns4_minimal [NOTFOUND=return] dns mdns4
-
-       does work because "status" will contain UNAVAIL after the
-       failure to find mdns4_minimal. */
-    ./nss-skip-unavail.patch
-  ++ [
-    /* Have rpcgen(1) look for cpp(1) in $PATH.  */
-    ./rpcgen-path.patch
-
-    /* Allow nixos and nix handle the locale-archive. */
-    ./nix-locale-archive.patch
-
-    /* don't use /etc/ld.so.cache, for non-nixos systems */
-    ./dont_use_system_ld_so_cache.patch
-
-    /* Without this patch many KDE binaries crash. */
-    ./glibc-elf-localscope.patch
-  ];
-
-  postPatch = ''
-    # Needed for glibc to build with the gnumake 3.82
-    # http://comments.gmane.org/gmane.linux.lfs.support/31227
-    sed -i 's/ot \$/ot:\n\ttouch $@\n$/' manual/Makefile
-
-    # nscd needs libgcc, and we don't want it dynamically linked
-    # because we don't want it to depend on bootstrap-tools libs.
-    echo "LDFLAGS-nscd += -static-libgcc" >> nscd/Makefile
-  '';
-
-  configureFlags = [
-    "-C"
-    "--enable-add-ons"
-    "--sysconfdir=/etc"
-    "--localedir=/var/run/current-system/sw/lib/locale"
-    "libc_cv_ssp=no"
-    (if kernelHeaders != null
-     then "--with-headers=${kernelHeaders}/include"
-     else "--without-headers")
-    (if profilingLibraries
-     then "--enable-profile"
-     else "--disable-profile")
-  ] ++ stdenv.lib.optionals (cross != null) [
-    (if cross.withTLS then "--with-tls" else "--without-tls")
-    (if cross.float == "soft" then "--without-fp" else "--with-fp")
-    "--enable-kernel=2.6.0"
-    "--with-__thread"
-  ] ++ stdenv.lib.optionals stdenv.isArm [
-    "--host=arm-linux-gnueabi"
-    "--build=arm-linux-gnueabi"
-    "--without-fp"
-
-    # To avoid linking with -lgcc_s (dynamic link)
-    # so the glibc does not depend on its compiler store path
-    "libc_cv_as_needed=no"
-  ];
-
-  installFlags = [ "sysconfdir=$(out)/etc" ];
-  
-  buildInputs = stdenv.lib.optionals (cross != null) [ gccCross ]
-    ++ stdenv.lib.optional (mig != null) mig;
-
-  # Needed to install share/zoneinfo/zone.tab.  Set to impure /bin/sh to
-  # prevent a retained dependency on the bootstrap tools in the stdenv-linux
-  # bootstrap.
-  BASH_SHELL = "/bin/sh";
-
-  # 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 = stdenv.lib.optionalString (stdenv.system == "i686-linux") "-U__i686";
-}
-
-# Remove the `gccCross' attribute so that the *native* glibc store path
-# doesn't depend on whether `gccCross' is null or not.
-// (removeAttrs args [ "gccCross" ]) //
-
-{
-  name = name + "-${version}" +
-    stdenv.lib.optionalString (cross != null) "-${cross.config}";
-
-  src =
-    if hurdHeaders != null
-    then fetchgit {
-      # Shamefully the "official" glibc won't build on GNU, so use the one
-      # maintained by the Hurd folks, `tschwinge/Roger_Whittaker' branch.
-      # See <http://www.gnu.org/software/hurd/source_repositories/glibc.html>.
-      url = "git://git.sv.gnu.org/hurd/glibc.git";
-      sha256 = "3fb3dd7030a4b6d3e144fa94c32a0c4f46f17f94e2dfbc6bef41cfc3198725ca";
-      rev = "d740cf9d201dc9ecb0335b0a585828dea9cce793";
-    }
-    else fetchurl {
-      url = "mirror://gnu/glibc/glibc-${version}.tar.bz2";
-      sha256 = "0fsvf5d6sib483rp7asdy8hs0dysxqkrvw316c82hsxy7vxa51bf";
-    };
-
-  # `fetchurl' is a function and thus should not be passed to the
-  # `derivation' primitive.
-  fetchurl = null;
-
-  # Remove absolute paths from `configure' & co.; build out-of-tree.
-  preConfigure = ''
-    export PWD_P=$(type -tP pwd)
-    for i in configure io/ftwtest-sh; do
-        # Can't use substituteInPlace here because replace hasn't been
-        # built yet in the bootstrap.
-        sed -i "$i" -e "s^/bin/pwd^$PWD_P^g"
-    done
-
-    ${if needsPorts then "tar xvf ${srcPorts}" else ""}
-
-    mkdir ../build
-    cd ../build
-
-    configureScript="`pwd`/../$sourceRoot/configure"
-
-    ${preConfigure}
-  '';
-
-  meta = {
-    homepage = http://www.gnu.org/software/libc/;
-    description = "The GNU C Library";
-
-    longDescription =
-      '' Any Unix-like operating system needs a C library: the library which
-         defines the "system calls" and other basic facilities such as
-         open, malloc, printf, exit...
-
-         The GNU C library is used as the C library in the GNU system and
-         most systems with the Linux kernel.
-      '';
-
-    license = "LGPLv2+";
-
-    maintainers = [ stdenv.lib.maintainers.ludo ];
-    #platforms = stdenv.lib.platforms.linux;
-  } // meta;
-}
-
-//
-
-(if hurdHeaders != null
- then {
-   # Work around the fact that the configure snippet that looks for
-   # <hurd/version.h> does not honor `--with-headers=$sysheaders' and that
-   # glibc expects Mach, Hurd, and pthread headers to be in the same place.
-   CPATH = "${hurdHeaders}/include:${machHeaders}/include:${libpthreadHeaders}/include";
-
-   # `fetchgit' is a function and thus should not be passed to the
-   # `derivation' primitive.
-   fetchgit = null;
-
-   # Install NSS stuff in the right place.
-   # XXX: This will be needed for all new glibcs and isn't Hurd-specific.
-   makeFlags = ''vardbdir="$out/var/db"'';
- }
- else { }))
diff --git a/pkgs/development/libraries/glibc/2.14/dont_use_system_ld_so_cache.patch b/pkgs/development/libraries/glibc/2.14/dont_use_system_ld_so_cache.patch
deleted file mode 100644
index 444eb8251e499..0000000000000
--- a/pkgs/development/libraries/glibc/2.14/dont_use_system_ld_so_cache.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-diff -Naur glibc-2.13-orig/elf/ldconfig.c glibc-2.13/elf/ldconfig.c
---- glibc-2.13-orig/elf/ldconfig.c	2011-01-17 23:34:07.000000000 -0500
-+++ glibc-2.13/elf/ldconfig.c	2012-04-10 23:28:45.957492340 -0400
-@@ -51,7 +51,7 @@
- #endif
- 
- #ifndef LD_SO_CONF
--# define LD_SO_CONF SYSCONFDIR "/ld.so.conf"
-+# define LD_SO_CONF PREFIX "/etc/ld.so.conf"
- #endif
- 
- /* Get libc version number.  */
-diff -Naur glibc-2.13-orig/elf/Makefile glibc-2.13/elf/Makefile
---- glibc-2.13-orig/elf/Makefile	2011-01-17 23:34:07.000000000 -0500
-+++ glibc-2.13/elf/Makefile	2012-04-10 23:27:05.666477442 -0400
-@@ -459,11 +459,11 @@
- $(objpfx)sprof: $(libdl)
- 
- $(objpfx)ldconfig: $(ldconfig-modules:%=$(objpfx)%.o)
--SYSCONF-FLAGS := -D'SYSCONFDIR="$(sysconfdir)"'
--CFLAGS-ldconfig.c = $(SYSCONF-FLAGS) -D'LIBDIR="$(libdir)"' \
-+PREFIX-FLAGS := -D'PREFIX="$(prefix)"'
-+CFLAGS-ldconfig.c = $(PREFIX-FLAGS) -D'LIBDIR="$(libdir)"' \
- 		    -D'SLIBDIR="$(slibdir)"' -DIS_IN_ldconfig=1
--CFLAGS-dl-cache.c = $(SYSCONF-FLAGS)
--CFLAGS-cache.c = $(SYSCONF-FLAGS)
-+CFLAGS-dl-cache.c = $(PREFIX-FLAGS)
-+CFLAGS-cache.c = $(PREFIX-FLAGS)
- 
- CPPFLAGS-.os += $(if $(filter $(@F),$(patsubst %,%.os,$(all-rtld-routines))),-DNOT_IN_libc=1 -DIS_IN_rtld=1)
- 
-diff -Naur glibc-2.13-orig/sysdeps/generic/dl-cache.h glibc-2.13/sysdeps/generic/dl-cache.h
---- glibc-2.13-orig/sysdeps/generic/dl-cache.h	2011-01-17 23:34:07.000000000 -0500
-+++ glibc-2.13/sysdeps/generic/dl-cache.h	2012-04-10 23:28:20.077488815 -0400
-@@ -29,7 +29,7 @@
- #endif
- 
- #ifndef LD_SO_CACHE
--# define LD_SO_CACHE SYSCONFDIR "/ld.so.cache"
-+# define LD_SO_CACHE PREFIX "/etc/ld.so.cache"
- #endif
- 
- #ifndef add_system_dir
diff --git a/pkgs/development/libraries/glibc/2.14/info.nix b/pkgs/development/libraries/glibc/2.14/info.nix
deleted file mode 100644
index 75bd996d9bc51..0000000000000
--- a/pkgs/development/libraries/glibc/2.14/info.nix
+++ /dev/null
@@ -1,26 +0,0 @@
-{ stdenv, fetchurl, texinfo, perl }:
-
-let build = import ./common.nix;
-in
-  /* null cross builder */
-  build null {
-    name = "glibc-info";
-
-    inherit fetchurl stdenv;
-
-    configureFlags = [ "--enable-add-ons" ];
-
-    buildInputs = [ texinfo perl ];
-
-    buildPhase = "make info";
-
-    # I don't know why the info is not generated in 'build'
-    # Somehow building the info still does not work, because the final
-    # libc.info hasn't a Top node.
-    installPhase = ''
-      mkdir -p "$out/share/info"
-      cp -v "../$sourceRoot/manual/"*.info* "$out/share/info"
-    '';
-
-    meta.description = "GNU Info manual of the GNU C Library";
-  }
diff --git a/pkgs/development/libraries/glibc/2.14/nss-skip-unavail.patch b/pkgs/development/libraries/glibc/2.14/nss-skip-unavail.patch
deleted file mode 100644
index e48dc2bc0a6ed..0000000000000
--- a/pkgs/development/libraries/glibc/2.14/nss-skip-unavail.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-diff -ru glibc-2.11.2-orig/sysdeps/posix/getaddrinfo.c glibc-2.11.2/sysdeps/posix/getaddrinfo.c
---- glibc-2.11.2-orig/sysdeps/posix/getaddrinfo.c	2010-05-19 22:38:20.000000000 +0200
-+++ glibc-2.11.2/sysdeps/posix/getaddrinfo.c	2010-08-05 18:39:54.259556327 +0200
-@@ -505,8 +505,6 @@
- 	  int no_data = 0;
- 	  int no_inet6_data = 0;
- 	  service_user *nip = NULL;
--	  enum nss_status inet6_status = NSS_STATUS_UNAVAIL;
--	  enum nss_status status = NSS_STATUS_UNAVAIL;
- 	  int no_more;
- 	  int old_res_options;
- 
-@@ -702,6 +700,8 @@
- 
- 	  while (!no_more)
- 	    {
-+ 	      enum nss_status inet6_status = NSS_STATUS_UNAVAIL;
-+ 	      enum nss_status status = NSS_STATUS_UNAVAIL;
- 	      no_data = 0;
- 	      nss_gethostbyname4_r fct4
- 		= __nss_lookup_function (nip, "gethostbyname4_r");
diff --git a/pkgs/development/libraries/glibc/2.14/rpcgen-path.patch b/pkgs/development/libraries/glibc/2.14/rpcgen-path.patch
deleted file mode 100644
index fbb03dd5fadee..0000000000000
--- a/pkgs/development/libraries/glibc/2.14/rpcgen-path.patch
+++ /dev/null
@@ -1,72 +0,0 @@
-By default, rpcgen(1) looks for cpp(1) from a list of fixed absolute paths
-(`/lib/cpp', etc.), which may only be overrided with the `-Y' option.  This
-patch makes it run any `cpp' command found in $PATH.
-
---- glibc-2.7/sunrpc/rpc_main.c	2006-11-10 21:54:46.000000000 +0100
-+++ glibc-2.7/sunrpc/rpc_main.c	2009-04-22 14:32:10.000000000 +0200
-@@ -79,7 +79,7 @@ static const char *cmdname;
- 
- static const char *svcclosetime = "120";
- static int cppDefined;	/* explicit path for C preprocessor */
--static const char *CPP = SUNOS_CPP;
-+static const char *CPP = "cpp";
- static const char CPPFLAGS[] = "-C";
- static char *pathbuf;
- static int cpp_pid;
-@@ -108,7 +108,6 @@ static char *extendfile (const char *fil
- static void open_output (const char *infile, const char *outfile);
- static void add_warning (void);
- static void clear_args (void);
--static void find_cpp (void);
- static void open_input (const char *infile, const char *define);
- static int check_nettype (const char *name, const char *list_to_check[]);
- static void c_output (const char *infile, const char *define,
-@@ -327,31 +326,6 @@ clear_args (void)
-   argcount = FIXEDARGS;
- }
- 
--/* make sure that a CPP exists */
--static void
--find_cpp (void)
--{
--  struct stat buf;
--
--  if (stat (CPP, &buf) < 0)
--    {				/* /lib/cpp or explicit cpp does not exist */
--      if (cppDefined)
--	{
--	  fprintf (stderr, _ ("cannot find C preprocessor: %s \n"), CPP);
--	  crash ();
--	}
--      else
--	{			/* try the other one */
--	  CPP = SVR4_CPP;
--	  if (stat (CPP, &buf) < 0)
--	    {			/* can't find any cpp */
--	      fputs (_ ("cannot find any C preprocessor (cpp)\n"), stdout);
--	      crash ();
--	    }
--	}
--    }
--}
--
- /*
-  * Open input file with given define for C-preprocessor
-  */
-@@ -370,7 +344,6 @@ open_input (const char *infile, const ch
-   switch (cpp_pid)
-     {
-     case 0:
--      find_cpp ();
-       putarg (0, CPP);
-       putarg (1, CPPFLAGS);
-       addarg (define);
-@@ -380,7 +353,7 @@ open_input (const char *infile, const ch
-       close (1);
-       dup2 (pd[1], 1);
-       close (pd[0]);
--      execv (arglist[0], (char **) arglist);
-+      execvp (arglist[0], (char **) arglist);
-       perror ("execv");
-       exit (1);
-     case -1:
diff --git a/pkgs/development/libraries/glibc/2.14/builder.sh b/pkgs/development/libraries/glibc/2.17/builder.sh
index e68e13f9beca2..e68e13f9beca2 100644
--- a/pkgs/development/libraries/glibc/2.14/builder.sh
+++ b/pkgs/development/libraries/glibc/2.17/builder.sh
diff --git a/pkgs/development/libraries/glibc/2.17/common.nix b/pkgs/development/libraries/glibc/2.17/common.nix
new file mode 100644
index 0000000000000..eed512887073d
--- /dev/null
+++ b/pkgs/development/libraries/glibc/2.17/common.nix
@@ -0,0 +1,176 @@
+/* Build configuration used to build glibc, Info files, and locale
+   information.  */
+
+cross:
+
+{ name, fetchurl, stdenv, installLocales ? false
+, gccCross ? null, kernelHeaders ? null
+, machHeaders ? null, hurdHeaders ? null, libpthreadHeaders ? null
+, mig ? null
+, profilingLibraries ? false, meta
+, preConfigure ? "", ... }@args:
+
+let
+
+  version = "2.17";
+
+in
+
+assert cross != null -> gccCross != null;
+assert mig != null -> machHeaders != null;
+assert machHeaders != null -> hurdHeaders != null;
+assert hurdHeaders != null -> libpthreadHeaders != null;
+
+stdenv.mkDerivation ({
+  inherit kernelHeaders installLocales;
+
+  # The host/target system.
+  crossConfig = if cross != null then cross.config else null;
+
+  inherit (stdenv) is64bit;
+
+  enableParallelBuilding = true;
+
+  patches =
+    [ /* Have rpcgen(1) look for cpp(1) in $PATH.  */
+      ./rpcgen-path.patch
+
+      /* Allow NixOS and Nix to handle the locale-archive. */
+      ./nix-locale-archive.patch
+
+      /* Don't use /etc/ld.so.cache, for non-NixOS systems.  Currently
+         disabled on GNU/Hurd, which uses a more recent libc snapshot. */
+      ./dont-use-system-ld-so-cache.patch
+
+      /* Without this patch many KDE binaries crash. */
+      ./glibc-elf-localscope.patch
+
+      /* Add blowfish password hashing support.  This is needed for
+         compatibility with old NixOS installations (since NixOS used
+         to default to blowfish). */
+      ./glibc-crypt-blowfish.patch
+    ];
+
+  postPatch = ''
+    # Needed for glibc to build with the gnumake 3.82
+    # http://comments.gmane.org/gmane.linux.lfs.support/31227
+    sed -i 's/ot \$/ot:\n\ttouch $@\n$/' manual/Makefile
+
+    # nscd needs libgcc, and we don't want it dynamically linked
+    # because we don't want it to depend on bootstrap-tools libs.
+    echo "LDFLAGS-nscd += -static-libgcc" >> nscd/Makefile
+  '';
+
+  configureFlags =
+    [ "-C"
+      "--enable-add-ons"
+      "--enable-obsolete-rpc"
+      "--sysconfdir=/etc"
+      "--localedir=/var/run/current-system/sw/lib/locale"
+      "libc_cv_ssp=no"
+      (if kernelHeaders != null
+       then "--with-headers=${kernelHeaders}/include"
+       else "--without-headers")
+      (if profilingLibraries
+       then "--enable-profile"
+       else "--disable-profile")
+    ] ++ stdenv.lib.optionals (cross == null && kernelHeaders != null) [
+      "--enable-kernel=2.6.35"
+    ] ++ stdenv.lib.optionals (cross != null) [
+      (if cross.withTLS then "--with-tls" else "--without-tls")
+      (if cross.float == "soft" then "--without-fp" else "--with-fp")
+    ] ++ stdenv.lib.optionals (cross != null
+          && cross.platform ? kernelMajor
+          && cross.platform.kernelMajor == "2.6") [
+      "--enable-kernel=2.6.0"
+      "--with-__thread"
+    ] ++ stdenv.lib.optionals (cross == null && stdenv.isArm) [
+      "--host=arm-linux-gnueabi"
+      "--build=arm-linux-gnueabi"
+
+      # To avoid linking with -lgcc_s (dynamic link)
+      # so the glibc does not depend on its compiler store path
+      "libc_cv_as_needed=no"
+    ];
+
+  installFlags = [ "sysconfdir=$(out)/etc" ];
+
+  buildInputs = stdenv.lib.optionals (cross != null) [ gccCross ]
+    ++ stdenv.lib.optional (mig != null) mig;
+
+  # Needed to install share/zoneinfo/zone.tab.  Set to impure /bin/sh to
+  # prevent a retained dependency on the bootstrap tools in the stdenv-linux
+  # bootstrap.
+  BASH_SHELL = "/bin/sh";
+
+  # 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 = stdenv.lib.optionalString (stdenv.system == "i686-linux") "-U__i686";
+}
+
+# Remove the `gccCross' attribute so that the *native* glibc store path
+# doesn't depend on whether `gccCross' is null or not.
+// (removeAttrs args [ "gccCross" "fetchurl" ]) //
+
+{
+  name = name + "-${version}" +
+    stdenv.lib.optionalString (cross != null) "-${cross.config}";
+
+  src = fetchurl {
+    url = "mirror://gnu/glibc/glibc-${version}.tar.gz";
+    sha256 = "0ym3zk9ii64279wgw7pw9xkbxczy2ci7ka6mnfs05rhlainhicm3";
+  };
+
+  # Remove absolute paths from `configure' & co.; build out-of-tree.
+  preConfigure = ''
+    export PWD_P=$(type -tP pwd)
+    for i in configure io/ftwtest-sh; do
+        # Can't use substituteInPlace here because replace hasn't been
+        # built yet in the bootstrap.
+        sed -i "$i" -e "s^/bin/pwd^$PWD_P^g"
+    done
+
+    mkdir ../build
+    cd ../build
+
+    configureScript="`pwd`/../$sourceRoot/configure"
+
+    makeFlags="$makeFlags BUILD_LDFLAGS=-Wl,-rpath,${stdenv.gcc.libc}/lib"
+
+    ${preConfigure}
+  '';
+
+  meta = {
+    homepage = http://www.gnu.org/software/libc/;
+    description = "The GNU C Library"
+      + stdenv.lib.optionalString (hurdHeaders != null) ", for GNU/Hurd";
+
+    longDescription =
+      '' Any Unix-like operating system needs a C library: the library which
+         defines the "system calls" and other basic facilities such as
+         open, malloc, printf, exit...
+
+         The GNU C library is used as the C library in the GNU system and
+         most systems with the Linux kernel.
+      '';
+
+    license = "LGPLv2+";
+
+    maintainers = [ stdenv.lib.maintainers.ludo ];
+    #platforms = stdenv.lib.platforms.linux;
+  } // meta;
+}
+
+// stdenv.lib.optionalAttrs (hurdHeaders != null) {
+  # Work around the fact that the configure snippet that looks for
+  # <hurd/version.h> does not honor `--with-headers=$sysheaders' and that
+  # glibc expects Mach, Hurd, and pthread headers to be in the same place.
+  CPATH = "${hurdHeaders}/include:${machHeaders}/include:${libpthreadHeaders}/include";
+
+  # Install NSS stuff in the right place.
+  # XXX: This will be needed for all new glibcs and isn't Hurd-specific.
+  makeFlags = ''vardbdir="$out/var/db"'';
+})
diff --git a/pkgs/development/libraries/glibc/2.14/default.nix b/pkgs/development/libraries/glibc/2.17/default.nix
index 1b4e43b1013a5..0a0752570f327 100644
--- a/pkgs/development/libraries/glibc/2.14/default.nix
+++ b/pkgs/development/libraries/glibc/2.17/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchurl, kernelHeaders
 , machHeaders ? null, hurdHeaders ? null, libpthreadHeaders ? null
-, mig ? null, fetchgit ? null
+, mig ? null
 , installLocales ? true
 , profilingLibraries ? false
 , gccCross ? null
@@ -14,7 +14,9 @@ let
   cross = if gccCross != null then gccCross.target else null;
 in
   build cross ({
-    name = "glibc${if debugSymbols then "-debug" else ""}";
+    name = "glibc"
+      + stdenv.lib.optionalString (hurdHeaders != null) "-hurd"
+      + stdenv.lib.optionalString debugSymbols "-debug";
 
     inherit fetchurl stdenv kernelHeaders installLocales profilingLibraries
       gccCross;
@@ -54,7 +56,7 @@ in
 
   (if hurdHeaders != null
    then rec {
-     inherit machHeaders hurdHeaders libpthreadHeaders mig fetchgit;
+     inherit machHeaders hurdHeaders libpthreadHeaders mig;
 
      propagatedBuildInputs = [ machHeaders hurdHeaders libpthreadHeaders ];
 
diff --git a/pkgs/development/libraries/glibc/2.17/dont-use-system-ld-so-cache.patch b/pkgs/development/libraries/glibc/2.17/dont-use-system-ld-so-cache.patch
new file mode 100644
index 0000000000000..95f537733204d
--- /dev/null
+++ b/pkgs/development/libraries/glibc/2.17/dont-use-system-ld-so-cache.patch
@@ -0,0 +1,45 @@
+diff -ru glibc-2.16.0-orig/elf/ldconfig.c glibc-2.16.0/elf/ldconfig.c
+--- glibc-2.16.0-orig/elf/ldconfig.c	2012-06-30 15:12:34.000000000 -0400
++++ glibc-2.16.0/elf/ldconfig.c	2012-09-18 11:59:27.463284814 -0400
+@@ -50,7 +50,7 @@
+ #endif
+ 
+ #ifndef LD_SO_CONF
+-# define LD_SO_CONF SYSCONFDIR "/ld.so.conf"
++# define LD_SO_CONF PREFIX "/etc/ld.so.conf"
+ #endif
+ 
+ /* Get libc version number.  */
+diff -ru glibc-2.16.0-orig/elf/Makefile glibc-2.16.0/elf/Makefile
+--- glibc-2.16.0-orig/elf/Makefile	2012-06-30 15:12:34.000000000 -0400
++++ glibc-2.16.0/elf/Makefile	2012-09-18 12:03:30.031955196 -0400
+@@ -415,12 +415,12 @@
+ 
+ $(objpfx)pldd: $(pldd-modules:%=$(objpfx)%.o)
+ 
+-SYSCONF-FLAGS := -D'SYSCONFDIR="$(sysconfdir)"'
+-CFLAGS-ldconfig.c = $(SYSCONF-FLAGS) -D'LIBDIR="$(libdir)"' \
++PREFIX-FLAGS := -D'PREFIX="$(prefix)"'
++CFLAGS-ldconfig.c = $(PREFIX-FLAGS) -D'LIBDIR="$(libdir)"' \
+ 		    -D'SLIBDIR="$(slibdir)"' -DIS_IN_ldconfig=1
+-CFLAGS-dl-cache.c = $(SYSCONF-FLAGS)
+-CFLAGS-cache.c = $(SYSCONF-FLAGS)
+-CFLAGS-rtld.c = $(SYSCONF-FLAGS)
++CFLAGS-dl-cache.c = $(PREFIX-FLAGS)
++CFLAGS-cache.c = $(PREFIX-FLAGS)
++CFLAGS-rtld.c = $(PREFIX-FLAGS)
+ 
+ CPPFLAGS-.os += $(if $(filter $(@F),$(patsubst %,%.os,$(all-rtld-routines))),\
+ 		     -DNOT_IN_libc=1 -DIS_IN_rtld=1 -DIN_LIB=rtld)
+diff -ru glibc-2.16.0-orig/sysdeps/generic/dl-cache.h glibc-2.16.0/sysdeps/generic/dl-cache.h
+--- glibc-2.16.0-orig/sysdeps/generic/dl-cache.h	2012-06-30 15:12:34.000000000 -0400
++++ glibc-2.16.0/sysdeps/generic/dl-cache.h	2012-09-18 11:59:27.465284809 -0400
+@@ -28,7 +28,7 @@
+ #endif
+ 
+ #ifndef LD_SO_CACHE
+-# define LD_SO_CACHE SYSCONFDIR "/ld.so.cache"
++# define LD_SO_CACHE PREFIX "/etc/ld.so.cache"
+ #endif
+ 
+ #ifndef add_system_dir
diff --git a/pkgs/development/libraries/glibc/2.17/glibc-crypt-blowfish.patch b/pkgs/development/libraries/glibc/2.17/glibc-crypt-blowfish.patch
new file mode 100644
index 0000000000000..a0a8acdab63d4
--- /dev/null
+++ b/pkgs/development/libraries/glibc/2.17/glibc-crypt-blowfish.patch
@@ -0,0 +1,795 @@
+From http://cvs.pld-linux.org/cgi-bin/viewvc.cgi/cvs/packages/glibc/glibc-crypt-blowfish.patch?revision=1.7&view=markup
+
+diff -ru -N glibc-2.17-orig/crypt/crypt_blowfish.c glibc-2.17/crypt/crypt_blowfish.c
+--- glibc-2.17-orig/crypt/crypt_blowfish.c	1970-01-01 01:00:00.000000000 +0100
++++ glibc-2.17/crypt/crypt_blowfish.c	2013-01-22 23:30:12.340353965 +0100
+@@ -0,0 +1,743 @@
++/*
++ * This code comes from John the Ripper password cracker, with reentrant
++ * and crypt(3) interfaces added, but optimizations specific to password
++ * cracking removed.
++ *
++ * Written by Solar Designer <solar at openwall.com> in 1998-2002 and
++ * placed in the public domain.
++ *
++ * There's absolutely no warranty.
++ *
++ * It is my intent that you should be able to use this on your system,
++ * as a part of a software package, or anywhere else to improve security,
++ * ensure compatibility, or for any other purpose. I would appreciate
++ * it if you give credit where it is due and keep your modifications in
++ * the public domain as well, but I don't require that in order to let
++ * you place this code and any modifications you make under a license
++ * of your choice.
++ *
++ * This implementation is compatible with OpenBSD bcrypt.c (version 2a)
++ * by Niels Provos <provos at citi.umich.edu>, and uses some of his
++ * ideas. The password hashing algorithm was designed by David Mazieres
++ * <dm at lcs.mit.edu>.
++ *
++ * There's a paper on the algorithm that explains its design decisions:
++ *
++ *	http://www.usenix.org/events/usenix99/provos.html
++ *
++ * Some of the tricks in BF_ROUND might be inspired by Eric Young's
++ * Blowfish library (I can't be sure if I would think of something if I
++ * hadn't seen his code).
++ */
++
++#include <string.h>
++
++#include <errno.h>
++#ifndef __set_errno
++#define __set_errno(val) errno = (val)
++#endif
++
++#undef __CONST
++#ifdef __GNUC__
++#define __CONST __const
++#else
++#define __CONST
++#endif
++
++#ifdef __i386__
++#define BF_ASM				0 /* original OW patch has 1 */
++#define BF_SCALE			1
++#elif defined(__alpha__) || defined(__hppa__) || defined(__x86_64__)
++#define BF_ASM				0
++#define BF_SCALE			1
++#else
++#define BF_ASM				0
++#define BF_SCALE			0
++#endif
++
++typedef unsigned int BF_word;
++
++/* Number of Blowfish rounds, this is also hardcoded into a few places */
++#define BF_N				16
++
++typedef BF_word BF_key[BF_N + 2];
++
++typedef struct {
++	BF_word S[4][0x100];
++	BF_key P;
++} BF_ctx;
++
++/*
++ * Magic IV for 64 Blowfish encryptions that we do at the end.
++ * The string is "OrpheanBeholderScryDoubt" on big-endian.
++ */
++static BF_word BF_magic_w[6] = {
++	0x4F727068, 0x65616E42, 0x65686F6C,
++	0x64657253, 0x63727944, 0x6F756274
++};
++
++/*
++ * P-box and S-box tables initialized with digits of Pi.
++ */
++static BF_ctx BF_init_state = {
++	{
++		{
++			0xd1310ba6, 0x98dfb5ac, 0x2ffd72db, 0xd01adfb7,
++			0xb8e1afed, 0x6a267e96, 0xba7c9045, 0xf12c7f99,
++			0x24a19947, 0xb3916cf7, 0x0801f2e2, 0x858efc16,
++			0x636920d8, 0x71574e69, 0xa458fea3, 0xf4933d7e,
++			0x0d95748f, 0x728eb658, 0x718bcd58, 0x82154aee,
++			0x7b54a41d, 0xc25a59b5, 0x9c30d539, 0x2af26013,
++			0xc5d1b023, 0x286085f0, 0xca417918, 0xb8db38ef,
++			0x8e79dcb0, 0x603a180e, 0x6c9e0e8b, 0xb01e8a3e,
++			0xd71577c1, 0xbd314b27, 0x78af2fda, 0x55605c60,
++			0xe65525f3, 0xaa55ab94, 0x57489862, 0x63e81440,
++			0x55ca396a, 0x2aab10b6, 0xb4cc5c34, 0x1141e8ce,
++			0xa15486af, 0x7c72e993, 0xb3ee1411, 0x636fbc2a,
++			0x2ba9c55d, 0x741831f6, 0xce5c3e16, 0x9b87931e,
++			0xafd6ba33, 0x6c24cf5c, 0x7a325381, 0x28958677,
++			0x3b8f4898, 0x6b4bb9af, 0xc4bfe81b, 0x66282193,
++			0x61d809cc, 0xfb21a991, 0x487cac60, 0x5dec8032,
++			0xef845d5d, 0xe98575b1, 0xdc262302, 0xeb651b88,
++			0x23893e81, 0xd396acc5, 0x0f6d6ff3, 0x83f44239,
++			0x2e0b4482, 0xa4842004, 0x69c8f04a, 0x9e1f9b5e,
++			0x21c66842, 0xf6e96c9a, 0x670c9c61, 0xabd388f0,
++			0x6a51a0d2, 0xd8542f68, 0x960fa728, 0xab5133a3,
++			0x6eef0b6c, 0x137a3be4, 0xba3bf050, 0x7efb2a98,
++			0xa1f1651d, 0x39af0176, 0x66ca593e, 0x82430e88,
++			0x8cee8619, 0x456f9fb4, 0x7d84a5c3, 0x3b8b5ebe,
++			0xe06f75d8, 0x85c12073, 0x401a449f, 0x56c16aa6,
++			0x4ed3aa62, 0x363f7706, 0x1bfedf72, 0x429b023d,
++			0x37d0d724, 0xd00a1248, 0xdb0fead3, 0x49f1c09b,
++			0x075372c9, 0x80991b7b, 0x25d479d8, 0xf6e8def7,
++			0xe3fe501a, 0xb6794c3b, 0x976ce0bd, 0x04c006ba,
++			0xc1a94fb6, 0x409f60c4, 0x5e5c9ec2, 0x196a2463,
++			0x68fb6faf, 0x3e6c53b5, 0x1339b2eb, 0x3b52ec6f,
++			0x6dfc511f, 0x9b30952c, 0xcc814544, 0xaf5ebd09,
++			0xbee3d004, 0xde334afd, 0x660f2807, 0x192e4bb3,
++			0xc0cba857, 0x45c8740f, 0xd20b5f39, 0xb9d3fbdb,
++			0x5579c0bd, 0x1a60320a, 0xd6a100c6, 0x402c7279,
++			0x679f25fe, 0xfb1fa3cc, 0x8ea5e9f8, 0xdb3222f8,
++			0x3c7516df, 0xfd616b15, 0x2f501ec8, 0xad0552ab,
++			0x323db5fa, 0xfd238760, 0x53317b48, 0x3e00df82,
++			0x9e5c57bb, 0xca6f8ca0, 0x1a87562e, 0xdf1769db,
++			0xd542a8f6, 0x287effc3, 0xac6732c6, 0x8c4f5573,
++			0x695b27b0, 0xbbca58c8, 0xe1ffa35d, 0xb8f011a0,
++			0x10fa3d98, 0xfd2183b8, 0x4afcb56c, 0x2dd1d35b,
++			0x9a53e479, 0xb6f84565, 0xd28e49bc, 0x4bfb9790,
++			0xe1ddf2da, 0xa4cb7e33, 0x62fb1341, 0xcee4c6e8,
++			0xef20cada, 0x36774c01, 0xd07e9efe, 0x2bf11fb4,
++			0x95dbda4d, 0xae909198, 0xeaad8e71, 0x6b93d5a0,
++			0xd08ed1d0, 0xafc725e0, 0x8e3c5b2f, 0x8e7594b7,
++			0x8ff6e2fb, 0xf2122b64, 0x8888b812, 0x900df01c,
++			0x4fad5ea0, 0x688fc31c, 0xd1cff191, 0xb3a8c1ad,
++			0x2f2f2218, 0xbe0e1777, 0xea752dfe, 0x8b021fa1,
++			0xe5a0cc0f, 0xb56f74e8, 0x18acf3d6, 0xce89e299,
++			0xb4a84fe0, 0xfd13e0b7, 0x7cc43b81, 0xd2ada8d9,
++			0x165fa266, 0x80957705, 0x93cc7314, 0x211a1477,
++			0xe6ad2065, 0x77b5fa86, 0xc75442f5, 0xfb9d35cf,
++			0xebcdaf0c, 0x7b3e89a0, 0xd6411bd3, 0xae1e7e49,
++			0x00250e2d, 0x2071b35e, 0x226800bb, 0x57b8e0af,
++			0x2464369b, 0xf009b91e, 0x5563911d, 0x59dfa6aa,
++			0x78c14389, 0xd95a537f, 0x207d5ba2, 0x02e5b9c5,
++			0x83260376, 0x6295cfa9, 0x11c81968, 0x4e734a41,
++			0xb3472dca, 0x7b14a94a, 0x1b510052, 0x9a532915,
++			0xd60f573f, 0xbc9bc6e4, 0x2b60a476, 0x81e67400,
++			0x08ba6fb5, 0x571be91f, 0xf296ec6b, 0x2a0dd915,
++			0xb6636521, 0xe7b9f9b6, 0xff34052e, 0xc5855664,
++			0x53b02d5d, 0xa99f8fa1, 0x08ba4799, 0x6e85076a
++		}, {
++			0x4b7a70e9, 0xb5b32944, 0xdb75092e, 0xc4192623,
++			0xad6ea6b0, 0x49a7df7d, 0x9cee60b8, 0x8fedb266,
++			0xecaa8c71, 0x699a17ff, 0x5664526c, 0xc2b19ee1,
++			0x193602a5, 0x75094c29, 0xa0591340, 0xe4183a3e,
++			0x3f54989a, 0x5b429d65, 0x6b8fe4d6, 0x99f73fd6,
++			0xa1d29c07, 0xefe830f5, 0x4d2d38e6, 0xf0255dc1,
++			0x4cdd2086, 0x8470eb26, 0x6382e9c6, 0x021ecc5e,
++			0x09686b3f, 0x3ebaefc9, 0x3c971814, 0x6b6a70a1,
++			0x687f3584, 0x52a0e286, 0xb79c5305, 0xaa500737,
++			0x3e07841c, 0x7fdeae5c, 0x8e7d44ec, 0x5716f2b8,
++			0xb03ada37, 0xf0500c0d, 0xf01c1f04, 0x0200b3ff,
++			0xae0cf51a, 0x3cb574b2, 0x25837a58, 0xdc0921bd,
++			0xd19113f9, 0x7ca92ff6, 0x94324773, 0x22f54701,
++			0x3ae5e581, 0x37c2dadc, 0xc8b57634, 0x9af3dda7,
++			0xa9446146, 0x0fd0030e, 0xecc8c73e, 0xa4751e41,
++			0xe238cd99, 0x3bea0e2f, 0x3280bba1, 0x183eb331,
++			0x4e548b38, 0x4f6db908, 0x6f420d03, 0xf60a04bf,
++			0x2cb81290, 0x24977c79, 0x5679b072, 0xbcaf89af,
++			0xde9a771f, 0xd9930810, 0xb38bae12, 0xdccf3f2e,
++			0x5512721f, 0x2e6b7124, 0x501adde6, 0x9f84cd87,
++			0x7a584718, 0x7408da17, 0xbc9f9abc, 0xe94b7d8c,
++			0xec7aec3a, 0xdb851dfa, 0x63094366, 0xc464c3d2,
++			0xef1c1847, 0x3215d908, 0xdd433b37, 0x24c2ba16,
++			0x12a14d43, 0x2a65c451, 0x50940002, 0x133ae4dd,
++			0x71dff89e, 0x10314e55, 0x81ac77d6, 0x5f11199b,
++			0x043556f1, 0xd7a3c76b, 0x3c11183b, 0x5924a509,
++			0xf28fe6ed, 0x97f1fbfa, 0x9ebabf2c, 0x1e153c6e,
++			0x86e34570, 0xeae96fb1, 0x860e5e0a, 0x5a3e2ab3,
++			0x771fe71c, 0x4e3d06fa, 0x2965dcb9, 0x99e71d0f,
++			0x803e89d6, 0x5266c825, 0x2e4cc978, 0x9c10b36a,
++			0xc6150eba, 0x94e2ea78, 0xa5fc3c53, 0x1e0a2df4,
++			0xf2f74ea7, 0x361d2b3d, 0x1939260f, 0x19c27960,
++			0x5223a708, 0xf71312b6, 0xebadfe6e, 0xeac31f66,
++			0xe3bc4595, 0xa67bc883, 0xb17f37d1, 0x018cff28,
++			0xc332ddef, 0xbe6c5aa5, 0x65582185, 0x68ab9802,
++			0xeecea50f, 0xdb2f953b, 0x2aef7dad, 0x5b6e2f84,
++			0x1521b628, 0x29076170, 0xecdd4775, 0x619f1510,
++			0x13cca830, 0xeb61bd96, 0x0334fe1e, 0xaa0363cf,
++			0xb5735c90, 0x4c70a239, 0xd59e9e0b, 0xcbaade14,
++			0xeecc86bc, 0x60622ca7, 0x9cab5cab, 0xb2f3846e,
++			0x648b1eaf, 0x19bdf0ca, 0xa02369b9, 0x655abb50,
++			0x40685a32, 0x3c2ab4b3, 0x319ee9d5, 0xc021b8f7,
++			0x9b540b19, 0x875fa099, 0x95f7997e, 0x623d7da8,
++			0xf837889a, 0x97e32d77, 0x11ed935f, 0x16681281,
++			0x0e358829, 0xc7e61fd6, 0x96dedfa1, 0x7858ba99,
++			0x57f584a5, 0x1b227263, 0x9b83c3ff, 0x1ac24696,
++			0xcdb30aeb, 0x532e3054, 0x8fd948e4, 0x6dbc3128,
++			0x58ebf2ef, 0x34c6ffea, 0xfe28ed61, 0xee7c3c73,
++			0x5d4a14d9, 0xe864b7e3, 0x42105d14, 0x203e13e0,
++			0x45eee2b6, 0xa3aaabea, 0xdb6c4f15, 0xfacb4fd0,
++			0xc742f442, 0xef6abbb5, 0x654f3b1d, 0x41cd2105,
++			0xd81e799e, 0x86854dc7, 0xe44b476a, 0x3d816250,
++			0xcf62a1f2, 0x5b8d2646, 0xfc8883a0, 0xc1c7b6a3,
++			0x7f1524c3, 0x69cb7492, 0x47848a0b, 0x5692b285,
++			0x095bbf00, 0xad19489d, 0x1462b174, 0x23820e00,
++			0x58428d2a, 0x0c55f5ea, 0x1dadf43e, 0x233f7061,
++			0x3372f092, 0x8d937e41, 0xd65fecf1, 0x6c223bdb,
++			0x7cde3759, 0xcbee7460, 0x4085f2a7, 0xce77326e,
++			0xa6078084, 0x19f8509e, 0xe8efd855, 0x61d99735,
++			0xa969a7aa, 0xc50c06c2, 0x5a04abfc, 0x800bcadc,
++			0x9e447a2e, 0xc3453484, 0xfdd56705, 0x0e1e9ec9,
++			0xdb73dbd3, 0x105588cd, 0x675fda79, 0xe3674340,
++			0xc5c43465, 0x713e38d8, 0x3d28f89e, 0xf16dff20,
++			0x153e21e7, 0x8fb03d4a, 0xe6e39f2b, 0xdb83adf7
++		}, {
++			0xe93d5a68, 0x948140f7, 0xf64c261c, 0x94692934,
++			0x411520f7, 0x7602d4f7, 0xbcf46b2e, 0xd4a20068,
++			0xd4082471, 0x3320f46a, 0x43b7d4b7, 0x500061af,
++			0x1e39f62e, 0x97244546, 0x14214f74, 0xbf8b8840,
++			0x4d95fc1d, 0x96b591af, 0x70f4ddd3, 0x66a02f45,
++			0xbfbc09ec, 0x03bd9785, 0x7fac6dd0, 0x31cb8504,
++			0x96eb27b3, 0x55fd3941, 0xda2547e6, 0xabca0a9a,
++			0x28507825, 0x530429f4, 0x0a2c86da, 0xe9b66dfb,
++			0x68dc1462, 0xd7486900, 0x680ec0a4, 0x27a18dee,
++			0x4f3ffea2, 0xe887ad8c, 0xb58ce006, 0x7af4d6b6,
++			0xaace1e7c, 0xd3375fec, 0xce78a399, 0x406b2a42,
++			0x20fe9e35, 0xd9f385b9, 0xee39d7ab, 0x3b124e8b,
++			0x1dc9faf7, 0x4b6d1856, 0x26a36631, 0xeae397b2,
++			0x3a6efa74, 0xdd5b4332, 0x6841e7f7, 0xca7820fb,
++			0xfb0af54e, 0xd8feb397, 0x454056ac, 0xba489527,
++			0x55533a3a, 0x20838d87, 0xfe6ba9b7, 0xd096954b,
++			0x55a867bc, 0xa1159a58, 0xcca92963, 0x99e1db33,
++			0xa62a4a56, 0x3f3125f9, 0x5ef47e1c, 0x9029317c,
++			0xfdf8e802, 0x04272f70, 0x80bb155c, 0x05282ce3,
++			0x95c11548, 0xe4c66d22, 0x48c1133f, 0xc70f86dc,
++			0x07f9c9ee, 0x41041f0f, 0x404779a4, 0x5d886e17,
++			0x325f51eb, 0xd59bc0d1, 0xf2bcc18f, 0x41113564,
++			0x257b7834, 0x602a9c60, 0xdff8e8a3, 0x1f636c1b,
++			0x0e12b4c2, 0x02e1329e, 0xaf664fd1, 0xcad18115,
++			0x6b2395e0, 0x333e92e1, 0x3b240b62, 0xeebeb922,
++			0x85b2a20e, 0xe6ba0d99, 0xde720c8c, 0x2da2f728,
++			0xd0127845, 0x95b794fd, 0x647d0862, 0xe7ccf5f0,
++			0x5449a36f, 0x877d48fa, 0xc39dfd27, 0xf33e8d1e,
++			0x0a476341, 0x992eff74, 0x3a6f6eab, 0xf4f8fd37,
++			0xa812dc60, 0xa1ebddf8, 0x991be14c, 0xdb6e6b0d,
++			0xc67b5510, 0x6d672c37, 0x2765d43b, 0xdcd0e804,
++			0xf1290dc7, 0xcc00ffa3, 0xb5390f92, 0x690fed0b,
++			0x667b9ffb, 0xcedb7d9c, 0xa091cf0b, 0xd9155ea3,
++			0xbb132f88, 0x515bad24, 0x7b9479bf, 0x763bd6eb,
++			0x37392eb3, 0xcc115979, 0x8026e297, 0xf42e312d,
++			0x6842ada7, 0xc66a2b3b, 0x12754ccc, 0x782ef11c,
++			0x6a124237, 0xb79251e7, 0x06a1bbe6, 0x4bfb6350,
++			0x1a6b1018, 0x11caedfa, 0x3d25bdd8, 0xe2e1c3c9,
++			0x44421659, 0x0a121386, 0xd90cec6e, 0xd5abea2a,
++			0x64af674e, 0xda86a85f, 0xbebfe988, 0x64e4c3fe,
++			0x9dbc8057, 0xf0f7c086, 0x60787bf8, 0x6003604d,
++			0xd1fd8346, 0xf6381fb0, 0x7745ae04, 0xd736fccc,
++			0x83426b33, 0xf01eab71, 0xb0804187, 0x3c005e5f,
++			0x77a057be, 0xbde8ae24, 0x55464299, 0xbf582e61,
++			0x4e58f48f, 0xf2ddfda2, 0xf474ef38, 0x8789bdc2,
++			0x5366f9c3, 0xc8b38e74, 0xb475f255, 0x46fcd9b9,
++			0x7aeb2661, 0x8b1ddf84, 0x846a0e79, 0x915f95e2,
++			0x466e598e, 0x20b45770, 0x8cd55591, 0xc902de4c,
++			0xb90bace1, 0xbb8205d0, 0x11a86248, 0x7574a99e,
++			0xb77f19b6, 0xe0a9dc09, 0x662d09a1, 0xc4324633,
++			0xe85a1f02, 0x09f0be8c, 0x4a99a025, 0x1d6efe10,
++			0x1ab93d1d, 0x0ba5a4df, 0xa186f20f, 0x2868f169,
++			0xdcb7da83, 0x573906fe, 0xa1e2ce9b, 0x4fcd7f52,
++			0x50115e01, 0xa70683fa, 0xa002b5c4, 0x0de6d027,
++			0x9af88c27, 0x773f8641, 0xc3604c06, 0x61a806b5,
++			0xf0177a28, 0xc0f586e0, 0x006058aa, 0x30dc7d62,
++			0x11e69ed7, 0x2338ea63, 0x53c2dd94, 0xc2c21634,
++			0xbbcbee56, 0x90bcb6de, 0xebfc7da1, 0xce591d76,
++			0x6f05e409, 0x4b7c0188, 0x39720a3d, 0x7c927c24,
++			0x86e3725f, 0x724d9db9, 0x1ac15bb4, 0xd39eb8fc,
++			0xed545578, 0x08fca5b5, 0xd83d7cd3, 0x4dad0fc4,
++			0x1e50ef5e, 0xb161e6f8, 0xa28514d9, 0x6c51133c,
++			0x6fd5c7e7, 0x56e14ec4, 0x362abfce, 0xddc6c837,
++			0xd79a3234, 0x92638212, 0x670efa8e, 0x406000e0
++		}, {
++			0x3a39ce37, 0xd3faf5cf, 0xabc27737, 0x5ac52d1b,
++			0x5cb0679e, 0x4fa33742, 0xd3822740, 0x99bc9bbe,
++			0xd5118e9d, 0xbf0f7315, 0xd62d1c7e, 0xc700c47b,
++			0xb78c1b6b, 0x21a19045, 0xb26eb1be, 0x6a366eb4,
++			0x5748ab2f, 0xbc946e79, 0xc6a376d2, 0x6549c2c8,
++			0x530ff8ee, 0x468dde7d, 0xd5730a1d, 0x4cd04dc6,
++			0x2939bbdb, 0xa9ba4650, 0xac9526e8, 0xbe5ee304,
++			0xa1fad5f0, 0x6a2d519a, 0x63ef8ce2, 0x9a86ee22,
++			0xc089c2b8, 0x43242ef6, 0xa51e03aa, 0x9cf2d0a4,
++			0x83c061ba, 0x9be96a4d, 0x8fe51550, 0xba645bd6,
++			0x2826a2f9, 0xa73a3ae1, 0x4ba99586, 0xef5562e9,
++			0xc72fefd3, 0xf752f7da, 0x3f046f69, 0x77fa0a59,
++			0x80e4a915, 0x87b08601, 0x9b09e6ad, 0x3b3ee593,
++			0xe990fd5a, 0x9e34d797, 0x2cf0b7d9, 0x022b8b51,
++			0x96d5ac3a, 0x017da67d, 0xd1cf3ed6, 0x7c7d2d28,
++			0x1f9f25cf, 0xadf2b89b, 0x5ad6b472, 0x5a88f54c,
++			0xe029ac71, 0xe019a5e6, 0x47b0acfd, 0xed93fa9b,
++			0xe8d3c48d, 0x283b57cc, 0xf8d56629, 0x79132e28,
++			0x785f0191, 0xed756055, 0xf7960e44, 0xe3d35e8c,
++			0x15056dd4, 0x88f46dba, 0x03a16125, 0x0564f0bd,
++			0xc3eb9e15, 0x3c9057a2, 0x97271aec, 0xa93a072a,
++			0x1b3f6d9b, 0x1e6321f5, 0xf59c66fb, 0x26dcf319,
++			0x7533d928, 0xb155fdf5, 0x03563482, 0x8aba3cbb,
++			0x28517711, 0xc20ad9f8, 0xabcc5167, 0xccad925f,
++			0x4de81751, 0x3830dc8e, 0x379d5862, 0x9320f991,
++			0xea7a90c2, 0xfb3e7bce, 0x5121ce64, 0x774fbe32,
++			0xa8b6e37e, 0xc3293d46, 0x48de5369, 0x6413e680,
++			0xa2ae0810, 0xdd6db224, 0x69852dfd, 0x09072166,
++			0xb39a460a, 0x6445c0dd, 0x586cdecf, 0x1c20c8ae,
++			0x5bbef7dd, 0x1b588d40, 0xccd2017f, 0x6bb4e3bb,
++			0xdda26a7e, 0x3a59ff45, 0x3e350a44, 0xbcb4cdd5,
++			0x72eacea8, 0xfa6484bb, 0x8d6612ae, 0xbf3c6f47,
++			0xd29be463, 0x542f5d9e, 0xaec2771b, 0xf64e6370,
++			0x740e0d8d, 0xe75b1357, 0xf8721671, 0xaf537d5d,
++			0x4040cb08, 0x4eb4e2cc, 0x34d2466a, 0x0115af84,
++			0xe1b00428, 0x95983a1d, 0x06b89fb4, 0xce6ea048,
++			0x6f3f3b82, 0x3520ab82, 0x011a1d4b, 0x277227f8,
++			0x611560b1, 0xe7933fdc, 0xbb3a792b, 0x344525bd,
++			0xa08839e1, 0x51ce794b, 0x2f32c9b7, 0xa01fbac9,
++			0xe01cc87e, 0xbcc7d1f6, 0xcf0111c3, 0xa1e8aac7,
++			0x1a908749, 0xd44fbd9a, 0xd0dadecb, 0xd50ada38,
++			0x0339c32a, 0xc6913667, 0x8df9317c, 0xe0b12b4f,
++			0xf79e59b7, 0x43f5bb3a, 0xf2d519ff, 0x27d9459c,
++			0xbf97222c, 0x15e6fc2a, 0x0f91fc71, 0x9b941525,
++			0xfae59361, 0xceb69ceb, 0xc2a86459, 0x12baa8d1,
++			0xb6c1075e, 0xe3056a0c, 0x10d25065, 0xcb03a442,
++			0xe0ec6e0e, 0x1698db3b, 0x4c98a0be, 0x3278e964,
++			0x9f1f9532, 0xe0d392df, 0xd3a0342b, 0x8971f21e,
++			0x1b0a7441, 0x4ba3348c, 0xc5be7120, 0xc37632d8,
++			0xdf359f8d, 0x9b992f2e, 0xe60b6f47, 0x0fe3f11d,
++			0xe54cda54, 0x1edad891, 0xce6279cf, 0xcd3e7e6f,
++			0x1618b166, 0xfd2c1d05, 0x848fd2c5, 0xf6fb2299,
++			0xf523f357, 0xa6327623, 0x93a83531, 0x56cccd02,
++			0xacf08162, 0x5a75ebb5, 0x6e163697, 0x88d273cc,
++			0xde966292, 0x81b949d0, 0x4c50901b, 0x71c65614,
++			0xe6c6c7bd, 0x327a140a, 0x45e1d006, 0xc3f27b9a,
++			0xc9aa53fd, 0x62a80f00, 0xbb25bfe2, 0x35bdd2f6,
++			0x71126905, 0xb2040222, 0xb6cbcf7c, 0xcd769c2b,
++			0x53113ec0, 0x1640e3d3, 0x38abbd60, 0x2547adf0,
++			0xba38209c, 0xf746ce76, 0x77afa1c5, 0x20756060,
++			0x85cbfe4e, 0x8ae88dd8, 0x7aaaf9b0, 0x4cf9aa7e,
++			0x1948c25c, 0x02fb8a8c, 0x01c36ae4, 0xd6ebe1f9,
++			0x90d4f869, 0xa65cdea0, 0x3f09252d, 0xc208e69f,
++			0xb74e6132, 0xce77e25b, 0x578fdfe3, 0x3ac372e6
++		}
++	}, {
++		0x243f6a88, 0x85a308d3, 0x13198a2e, 0x03707344,
++		0xa4093822, 0x299f31d0, 0x082efa98, 0xec4e6c89,
++		0x452821e6, 0x38d01377, 0xbe5466cf, 0x34e90c6c,
++		0xc0ac29b7, 0xc97c50dd, 0x3f84d5b5, 0xb5470917,
++		0x9216d5d9, 0x8979fb1b
++	}
++};
++
++static unsigned char BF_itoa64[64 + 1] =
++	"./ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
++
++static unsigned char BF_atoi64[0x60] = {
++	64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 0, 1,
++	54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 64, 64, 64, 64, 64,
++	64, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
++	17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 64, 64, 64, 64, 64,
++	64, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
++	43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 64, 64, 64, 64, 64
++};
++
++/*
++ * This may be optimized out if built with function inlining and no BF_ASM.
++ */
++static void clean(void *data, int size)
++{
++#if BF_ASM
++	extern void _BF_clean(void *data);
++#endif
++	memset(data, 0, size);
++#if BF_ASM
++	_BF_clean(data);
++#endif
++}
++
++#define BF_safe_atoi64(dst, src) \
++{ \
++	tmp = (unsigned char)(src); \
++	if ((unsigned int)(tmp -= 0x20) >= 0x60) return -1; \
++	tmp = BF_atoi64[tmp]; \
++	if (tmp > 63) return -1; \
++	(dst) = tmp; \
++}
++
++static int BF_decode(BF_word *dst, __CONST char *src, int size)
++{
++	unsigned char *dptr = (unsigned char *)dst;
++	unsigned char *end = dptr + size;
++	unsigned char *sptr = (unsigned char *)src;
++	unsigned int tmp, c1, c2, c3, c4;
++
++	do {
++		BF_safe_atoi64(c1, *sptr++);
++		BF_safe_atoi64(c2, *sptr++);
++		*dptr++ = (c1 << 2) | ((c2 & 0x30) >> 4);
++		if (dptr >= end) break;
++
++		BF_safe_atoi64(c3, *sptr++);
++		*dptr++ = ((c2 & 0x0F) << 4) | ((c3 & 0x3C) >> 2);
++		if (dptr >= end) break;
++
++		BF_safe_atoi64(c4, *sptr++);
++		*dptr++ = ((c3 & 0x03) << 6) | c4;
++	} while (dptr < end);
++
++	return 0;
++}
++
++static void BF_encode(char *dst, __CONST BF_word *src, int size)
++{
++	unsigned char *sptr = (unsigned char *)src;
++	unsigned char *end = sptr + size;
++	unsigned char *dptr = (unsigned char *)dst;
++	unsigned int c1, c2;
++
++	do {
++		c1 = *sptr++;
++		*dptr++ = BF_itoa64[c1 >> 2];
++		c1 = (c1 & 0x03) << 4;
++		if (sptr >= end) {
++			*dptr++ = BF_itoa64[c1];
++			break;
++		}
++
++		c2 = *sptr++;
++		c1 |= c2 >> 4;
++		*dptr++ = BF_itoa64[c1];
++		c1 = (c2 & 0x0f) << 2;
++		if (sptr >= end) {
++			*dptr++ = BF_itoa64[c1];
++			break;
++		}
++
++		c2 = *sptr++;
++		c1 |= c2 >> 6;
++		*dptr++ = BF_itoa64[c1];
++		*dptr++ = BF_itoa64[c2 & 0x3f];
++	} while (sptr < end);
++}
++
++static void BF_swap(BF_word *x, int count)
++{
++	static int endianness_check = 1;
++	char *is_little_endian = (char *)&endianness_check;
++	BF_word tmp;
++
++	if (*is_little_endian)
++	do {
++		tmp = *x;
++		tmp = (tmp << 16) | (tmp >> 16);
++		*x++ = ((tmp & 0x00FF00FF) << 8) | ((tmp >> 8) & 0x00FF00FF);
++	} while (--count);
++}
++
++#if BF_SCALE
++/* Architectures which can shift addresses left by 2 bits with no extra cost */
++#define BF_ROUND(L, R, N) \
++	tmp1 = L & 0xFF; \
++	tmp2 = L >> 8; \
++	tmp2 &= 0xFF; \
++	tmp3 = L >> 16; \
++	tmp3 &= 0xFF; \
++	tmp4 = L >> 24; \
++	tmp1 = data.ctx.S[3][tmp1]; \
++	tmp2 = data.ctx.S[2][tmp2]; \
++	tmp3 = data.ctx.S[1][tmp3]; \
++	tmp3 += data.ctx.S[0][tmp4]; \
++	tmp3 ^= tmp2; \
++	R ^= data.ctx.P[N + 1]; \
++	tmp3 += tmp1; \
++	R ^= tmp3;
++#else
++/* Architectures with no complicated addressing modes supported */
++#define BF_INDEX(S, i) \
++	(*((BF_word *)(((unsigned char *)S) + (i))))
++#define BF_ROUND(L, R, N) \
++	tmp1 = L & 0xFF; \
++	tmp1 <<= 2; \
++	tmp2 = L >> 6; \
++	tmp2 &= 0x3FC; \
++	tmp3 = L >> 14; \
++	tmp3 &= 0x3FC; \
++	tmp4 = L >> 22; \
++	tmp4 &= 0x3FC; \
++	tmp1 = BF_INDEX(data.ctx.S[3], tmp1); \
++	tmp2 = BF_INDEX(data.ctx.S[2], tmp2); \
++	tmp3 = BF_INDEX(data.ctx.S[1], tmp3); \
++	tmp3 += BF_INDEX(data.ctx.S[0], tmp4); \
++	tmp3 ^= tmp2; \
++	R ^= data.ctx.P[N + 1]; \
++	tmp3 += tmp1; \
++	R ^= tmp3;
++#endif
++
++/*
++ * Encrypt one block, BF_N is hardcoded here.
++ */
++#define BF_ENCRYPT \
++	L ^= data.ctx.P[0]; \
++	BF_ROUND(L, R, 0); \
++	BF_ROUND(R, L, 1); \
++	BF_ROUND(L, R, 2); \
++	BF_ROUND(R, L, 3); \
++	BF_ROUND(L, R, 4); \
++	BF_ROUND(R, L, 5); \
++	BF_ROUND(L, R, 6); \
++	BF_ROUND(R, L, 7); \
++	BF_ROUND(L, R, 8); \
++	BF_ROUND(R, L, 9); \
++	BF_ROUND(L, R, 10); \
++	BF_ROUND(R, L, 11); \
++	BF_ROUND(L, R, 12); \
++	BF_ROUND(R, L, 13); \
++	BF_ROUND(L, R, 14); \
++	BF_ROUND(R, L, 15); \
++	tmp4 = R; \
++	R = L; \
++	L = tmp4 ^ data.ctx.P[BF_N + 1];
++
++#if BF_ASM
++#define BF_body() \
++	_BF_body_r(&data.ctx);
++#else
++#define BF_body() \
++	L = R = 0; \
++	ptr = data.ctx.P; \
++	do { \
++		ptr += 2; \
++		BF_ENCRYPT; \
++		*(ptr - 2) = L; \
++		*(ptr - 1) = R; \
++	} while (ptr < &data.ctx.P[BF_N + 2]); \
++\
++	ptr = data.ctx.S[0]; \
++	do { \
++		ptr += 2; \
++		BF_ENCRYPT; \
++		*(ptr - 2) = L; \
++		*(ptr - 1) = R; \
++	} while (ptr < &data.ctx.S[3][0xFF]);
++#endif
++
++static void BF_set_key(__CONST char *key, BF_key expanded, BF_key initial)
++{
++	__CONST char *ptr = key;
++	int i, j;
++	BF_word tmp;
++
++	for (i = 0; i < BF_N + 2; i++) {
++		tmp = 0;
++		for (j = 0; j < 4; j++) {
++			tmp <<= 8;
++			tmp |= (unsigned char)*ptr;
++
++			if (!*ptr) ptr = key; else ptr++;
++		}
++
++		expanded[i] = tmp;
++		initial[i] = BF_init_state.P[i] ^ tmp;
++	}
++}
++
++char *_crypt_blowfish_rn(__CONST char *key, __CONST char *setting,
++	char *output, int size)
++{
++#if BF_ASM
++	extern void _BF_body_r(BF_ctx *ctx);
++#endif
++	struct {
++		BF_ctx ctx;
++		BF_key expanded_key;
++		union {
++			BF_word salt[4];
++			BF_word output[6];
++		} binary;
++	} data;
++	BF_word L, R;
++	BF_word tmp1, tmp2, tmp3, tmp4;
++	BF_word *ptr;
++	BF_word count;
++	int i;
++
++	if (size < 7 + 22 + 31 + 1) {
++		__set_errno(ERANGE);
++		return NULL;
++	}
++
++	if (setting[0] != '$' ||
++	    setting[1] != '2' ||
++	    setting[2] != 'a' ||
++	    setting[3] != '$' ||
++	    setting[4] < '0' || setting[4] > '3' ||
++	    setting[5] < '0' || setting[5] > '9' ||
++	    setting[6] != '$') {
++		__set_errno(EINVAL);
++		return NULL;
++	}
++
++	count = (BF_word)1 << ((setting[4] - '0') * 10 + (setting[5] - '0'));
++	if (count < 16 || BF_decode(data.binary.salt, &setting[7], 16)) {
++		clean(data.binary.salt, sizeof(data.binary.salt));
++		__set_errno(EINVAL);
++		return NULL;
++	}
++	BF_swap(data.binary.salt, 4);
++
++	BF_set_key(key, data.expanded_key, data.ctx.P);
++
++	memcpy(data.ctx.S, BF_init_state.S, sizeof(data.ctx.S));
++
++	L = R = 0;
++	for (i = 0; i < BF_N + 2; i += 2) {
++		L ^= data.binary.salt[i & 2];
++		R ^= data.binary.salt[(i & 2) + 1];
++		BF_ENCRYPT;
++		data.ctx.P[i] = L;
++		data.ctx.P[i + 1] = R;
++	}
++
++	ptr = data.ctx.S[0];
++	do {
++		ptr += 4;
++		L ^= data.binary.salt[(BF_N + 2) & 3];
++		R ^= data.binary.salt[(BF_N + 3) & 3];
++		BF_ENCRYPT;
++		*(ptr - 4) = L;
++		*(ptr - 3) = R;
++
++		L ^= data.binary.salt[(BF_N + 4) & 3];
++		R ^= data.binary.salt[(BF_N + 5) & 3];
++		BF_ENCRYPT;
++		*(ptr - 2) = L;
++		*(ptr - 1) = R;
++	} while (ptr < &data.ctx.S[3][0xFF]);
++
++	do {
++		data.ctx.P[0] ^= data.expanded_key[0];
++		data.ctx.P[1] ^= data.expanded_key[1];
++		data.ctx.P[2] ^= data.expanded_key[2];
++		data.ctx.P[3] ^= data.expanded_key[3];
++		data.ctx.P[4] ^= data.expanded_key[4];
++		data.ctx.P[5] ^= data.expanded_key[5];
++		data.ctx.P[6] ^= data.expanded_key[6];
++		data.ctx.P[7] ^= data.expanded_key[7];
++		data.ctx.P[8] ^= data.expanded_key[8];
++		data.ctx.P[9] ^= data.expanded_key[9];
++		data.ctx.P[10] ^= data.expanded_key[10];
++		data.ctx.P[11] ^= data.expanded_key[11];
++		data.ctx.P[12] ^= data.expanded_key[12];
++		data.ctx.P[13] ^= data.expanded_key[13];
++		data.ctx.P[14] ^= data.expanded_key[14];
++		data.ctx.P[15] ^= data.expanded_key[15];
++		data.ctx.P[16] ^= data.expanded_key[16];
++		data.ctx.P[17] ^= data.expanded_key[17];
++
++		BF_body();
++
++		tmp1 = data.binary.salt[0];
++		tmp2 = data.binary.salt[1];
++		tmp3 = data.binary.salt[2];
++		tmp4 = data.binary.salt[3];
++		data.ctx.P[0] ^= tmp1;
++		data.ctx.P[1] ^= tmp2;
++		data.ctx.P[2] ^= tmp3;
++		data.ctx.P[3] ^= tmp4;
++		data.ctx.P[4] ^= tmp1;
++		data.ctx.P[5] ^= tmp2;
++		data.ctx.P[6] ^= tmp3;
++		data.ctx.P[7] ^= tmp4;
++		data.ctx.P[8] ^= tmp1;
++		data.ctx.P[9] ^= tmp2;
++		data.ctx.P[10] ^= tmp3;
++		data.ctx.P[11] ^= tmp4;
++		data.ctx.P[12] ^= tmp1;
++		data.ctx.P[13] ^= tmp2;
++		data.ctx.P[14] ^= tmp3;
++		data.ctx.P[15] ^= tmp4;
++		data.ctx.P[16] ^= tmp1;
++		data.ctx.P[17] ^= tmp2;
++
++		BF_body();
++	} while (--count);
++
++	for (i = 0; i < 6; i += 2) {
++		L = BF_magic_w[i];
++		R = BF_magic_w[i + 1];
++
++		count = 64;
++		do {
++			BF_ENCRYPT;
++		} while (--count);
++
++		data.binary.output[i] = L;
++		data.binary.output[i + 1] = R;
++	}
++
++	memcpy(output, setting, 7 + 22 - 1);
++	output[7 + 22 - 1] = BF_itoa64[(int)
++		BF_atoi64[(int)setting[7 + 22 - 1] - 0x20] & 0x30];
++
++/* This has to be bug-compatible with the original implementation, so
++ * only encode 23 of the 24 bytes. :-) */
++	BF_swap(data.binary.output, 6);
++	BF_encode(&output[7 + 22], data.binary.output, 23);
++	output[7 + 22 + 31] = '\0';
++
++/* Overwrite the most obvious sensitive data we have on the stack. Note
++ * that this does not guarantee there's no sensitive data left on the
++ * stack and/or in registers; I'm not aware of portable code that does. */
++	clean(&data, sizeof(data));
++
++	return output;
++}
++
++char *_crypt_gensalt_blowfish_rn(unsigned long count,
++	__CONST char *input, int size, char *output, int output_size)
++{
++	if (size < 16 || output_size < 7 + 22 + 1 ||
++	    (count && (count < 4 || count > 31))) {
++		if (output_size > 0) output[0] = '\0';
++		__set_errno((output_size < 7 + 22 + 1) ? ERANGE : EINVAL);
++		return NULL;
++	}
++
++	if (!count) count = 5;
++
++	output[0] = '$';
++	output[1] = '2';
++	output[2] = 'a';
++	output[3] = '$';
++	output[4] = '0' + count / 10;
++	output[5] = '0' + count % 10;
++	output[6] = '$';
++
++	BF_encode(&output[7], (BF_word *)input, 16);
++	output[7 + 22] = '\0';
++
++	return output;
++}
+diff -ru -N glibc-2.17-orig/crypt/crypt-entry.c glibc-2.17/crypt/crypt-entry.c
+--- glibc-2.17-orig/crypt/crypt-entry.c	2012-12-25 04:02:13.000000000 +0100
++++ glibc-2.17/crypt/crypt-entry.c	2013-01-22 23:30:12.342353955 +0100
+@@ -61,6 +61,8 @@
+ extern char *__sha512_crypt_r (const char *key, const char *salt,
+ 			       char *buffer, int buflen);
+ extern char *__sha512_crypt (const char *key, const char *salt);
++extern char *_crypt_blowfish_rn (const char *key, const char *setting,
++				char *output, int size);
+ 
+ /* Define our magic string to mark salt for MD5 encryption
+    replacement.  This is meant to be the same as for other MD5 based
+@@ -73,6 +75,9 @@
+ /* Magic string for SHA512 encryption.  */
+ static const char sha512_salt_prefix[] = "$6$";
+ 
++/* Magic string for Blowfish encryption.  */
++static const char blowfish_salt_prefix[] = "$2a$";
++
+ /* For use by the old, non-reentrant routines (crypt/encrypt/setkey)  */
+ extern struct crypt_data _ufc_foobar;
+ 
+@@ -113,6 +118,11 @@
+   if (strncmp (sha512_salt_prefix, salt, sizeof (sha512_salt_prefix) - 1) == 0)
+     return __sha512_crypt_r (key, salt, (char *) data,
+ 			     sizeof (struct crypt_data));
++
++  /* Try to find out whether we have to use Blowfish encryption replacement.  */
++  if (strncmp (blowfish_salt_prefix, salt, sizeof (blowfish_salt_prefix) - 1) == 0)
++    return _crypt_blowfish_rn (key, salt, (char *) data,
++			     sizeof (struct crypt_data));
+ #endif
+ 
+   /*
+diff -ru -N glibc-2.17-orig/crypt/Makefile glibc-2.17/crypt/Makefile
+--- glibc-2.17-orig/crypt/Makefile	2012-12-25 04:02:13.000000000 +0100
++++ glibc-2.17/crypt/Makefile	2013-01-22 23:30:12.341353960 +0100
+@@ -26,7 +26,7 @@
+ extra-libs-others := $(extra-libs)
+ 
+ libcrypt-routines := crypt-entry md5-crypt sha256-crypt sha512-crypt crypt \
+-		     crypt_util
++		     crypt_util crypt_blowfish
+ 
+ tests := cert md5c-test sha256c-test sha512c-test badsalttest
+ 
diff --git a/pkgs/development/libraries/glibc/2.14/glibc-elf-localscope.patch b/pkgs/development/libraries/glibc/2.17/glibc-elf-localscope.patch
index 98f7f81087bb3..98f7f81087bb3 100644
--- a/pkgs/development/libraries/glibc/2.14/glibc-elf-localscope.patch
+++ b/pkgs/development/libraries/glibc/2.17/glibc-elf-localscope.patch
diff --git a/pkgs/development/libraries/glibc/2.17/info.nix b/pkgs/development/libraries/glibc/2.17/info.nix
new file mode 100644
index 0000000000000..322f07f023632
--- /dev/null
+++ b/pkgs/development/libraries/glibc/2.17/info.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchurl, texinfo, perl }:
+
+let build = import ./common.nix; in
+
+/* null cross builder */
+build null {
+  name = "glibc-info";
+
+  inherit fetchurl stdenv;
+
+  configureFlags = [ "--enable-add-ons" ];
+
+  buildInputs = [ texinfo perl ];
+
+  buildPhase = "make info";
+
+  # I don't know why the info is not generated in 'build'
+  # Somehow building the info still does not work, because the final
+  # libc.info hasn't a Top node.
+  installPhase = ''
+    mkdir -p "$out/share/info"
+    cp -v "../$sourceRoot/manual/"*.info* "$out/share/info"
+  '';
+
+  meta.description = "GNU Info manual of the GNU C Library";
+}
diff --git a/pkgs/development/libraries/glibc/2.14/locales-builder.sh b/pkgs/development/libraries/glibc/2.17/locales-builder.sh
index d732e208fa22a..d732e208fa22a 100644
--- a/pkgs/development/libraries/glibc/2.14/locales-builder.sh
+++ b/pkgs/development/libraries/glibc/2.17/locales-builder.sh
diff --git a/pkgs/development/libraries/glibc/2.14/locales.nix b/pkgs/development/libraries/glibc/2.17/locales.nix
index b7eae50ca385c..b7eae50ca385c 100644
--- a/pkgs/development/libraries/glibc/2.14/locales.nix
+++ b/pkgs/development/libraries/glibc/2.17/locales.nix
diff --git a/pkgs/development/libraries/glibc/2.14/nix-locale-archive.patch b/pkgs/development/libraries/glibc/2.17/nix-locale-archive.patch
index aca904f7ff445..88c8adef9226c 100644
--- a/pkgs/development/libraries/glibc/2.14/nix-locale-archive.patch
+++ b/pkgs/development/libraries/glibc/2.17/nix-locale-archive.patch
@@ -1,8 +1,7 @@
-diff --git a/locale/loadarchive.c b/locale/loadarchive.c
-index d545f17..0d8638a 100644
---- a/locale/loadarchive.c
-+++ b/locale/loadarchive.c
-@@ -124,6 +124,25 @@ calculate_head_size (const struct locarhead *h)
+diff -ru glibc-2.16.0-orig/locale/loadarchive.c glibc-2.16.0/locale/loadarchive.c
+--- glibc-2.16.0-orig/locale/loadarchive.c	2012-06-30 15:12:34.000000000 -0400
++++ glibc-2.16.0/locale/loadarchive.c	2012-09-18 11:57:57.277515212 -0400
+@@ -123,6 +123,25 @@
  }
  
  
@@ -14,13 +13,13 @@ index d545f17..0d8638a 100644
 +  char *path2 = getenv ("LOCALE_ARCHIVE");
 +  const char *usualpath = "/usr/lib/locale/locale-archive";
 +  if (path)
-+    fd = open_not_cancel_2 (path, O_RDONLY|O_LARGEFILE);
++    fd = open_not_cancel_2 (path, O_RDONLY|O_LARGEFILE|O_CLOEXEC);
 +  if (path2 && fd < 0)
-+    fd = open_not_cancel_2 (path2, O_RDONLY|O_LARGEFILE);
++    fd = open_not_cancel_2 (path2, O_RDONLY|O_LARGEFILE|O_CLOEXEC);
 +  if (fd < 0)
-+    fd = open_not_cancel_2 (archfname, O_RDONLY|O_LARGEFILE);
++    fd = open_not_cancel_2 (archfname, O_RDONLY|O_LARGEFILE|O_CLOEXEC);
 +  if (fd < 0)
-+    fd = open_not_cancel_2 (usualpath, O_RDONLY|O_LARGEFILE);
++    fd = open_not_cancel_2 (usualpath, O_RDONLY|O_LARGEFILE|O_CLOEXEC);
 +  return fd;
 +}
 +
@@ -28,29 +27,29 @@ index d545f17..0d8638a 100644
  /* Find the locale *NAMEP in the locale archive, and return the
     internalized data structure for its CATEGORY data.  If this locale has
     already been loaded from the archive, just returns the existing data
-@@ -203,7 +222,7 @@ _nl_load_locale_from_archive (int category, const char **namep)
+@@ -202,7 +221,7 @@
        archmapped = &headmap;
  
        /* The archive has never been opened.  */
--      fd = open_not_cancel_2 (archfname, O_RDONLY|O_LARGEFILE);
+-      fd = open_not_cancel_2 (archfname, O_RDONLY|O_LARGEFILE|O_CLOEXEC);
 +      fd = open_locale_archive ();
        if (fd < 0)
  	/* Cannot open the archive, for whatever reason.  */
  	return NULL;
-@@ -394,7 +413,7 @@ _nl_load_locale_from_archive (int category, const char **namep)
+@@ -393,8 +412,7 @@
  	  if (fd == -1)
  	    {
  	      struct stat64 st;
--	      fd = open_not_cancel_2 (archfname, O_RDONLY|O_LARGEFILE);
+-	      fd = open_not_cancel_2 (archfname,
+-				      O_RDONLY|O_LARGEFILE|O_CLOEXEC);
 +	      fd = open_locale_archive ();
  	      if (fd == -1)
  		/* Cannot open the archive, for whatever reason.  */
  		return NULL;
-diff --git a/locale/programs/locale.c b/locale/programs/locale.c
-index 77262b7..fddc00d 100644
---- a/locale/programs/locale.c
-+++ b/locale/programs/locale.c
-@@ -628,6 +628,20 @@ nameentcmp (const void *a, const void *b)
+diff -ru glibc-2.16.0-orig/locale/programs/locale.c glibc-2.16.0/locale/programs/locale.c
+--- glibc-2.16.0-orig/locale/programs/locale.c	2012-06-30 15:12:34.000000000 -0400
++++ glibc-2.16.0/locale/programs/locale.c	2012-09-18 11:53:03.719920947 -0400
+@@ -628,6 +628,20 @@
  		  ((const struct nameent *) b)->name);
  }
  
@@ -71,7 +70,7 @@ index 77262b7..fddc00d 100644
  
  static int
  write_archive_locales (void **all_datap, char *linebuf)
-@@ -641,7 +658,7 @@ write_archive_locales (void **all_datap, char *linebuf)
+@@ -641,7 +655,7 @@
    int fd, ret = 0;
    uint32_t cnt;
  
@@ -80,11 +79,10 @@ index 77262b7..fddc00d 100644
    if (fd < 0)
      return 0;
  
-diff --git a/locale/programs/locarchive.c b/locale/programs/locarchive.c
-index 85ba77d..3ad2af8 100644
---- a/locale/programs/locarchive.c
-+++ b/locale/programs/locarchive.c
-@@ -512,6 +512,20 @@ enlarge_archive (struct locarhandle *ah, const struct locarhead *head)
+diff -ru glibc-2.16.0-orig/locale/programs/locarchive.c glibc-2.16.0/locale/programs/locarchive.c
+--- glibc-2.16.0-orig/locale/programs/locarchive.c	2012-06-30 15:12:34.000000000 -0400
++++ glibc-2.16.0/locale/programs/locarchive.c	2012-09-18 11:53:03.720920942 -0400
+@@ -509,6 +509,20 @@
    *ah = new_ah;
  }
  
@@ -105,7 +103,7 @@ index 85ba77d..3ad2af8 100644
  
  void
  open_archive (struct locarhandle *ah, bool readonly)
-@@ -531,7 +548,7 @@ open_archive (struct locarhandle *ah, bool readonly)
+@@ -528,7 +542,7 @@
    while (1)
      {
        /* Open the archive.  We must have exclusive write access.  */
diff --git a/pkgs/development/libraries/glibc/2.17/rpcgen-path.patch b/pkgs/development/libraries/glibc/2.17/rpcgen-path.patch
new file mode 100644
index 0000000000000..fd81ab5324e39
--- /dev/null
+++ b/pkgs/development/libraries/glibc/2.17/rpcgen-path.patch
@@ -0,0 +1,54 @@
+diff -ru glibc-2.17-orig/sunrpc/rpc_main.c glibc-2.17/sunrpc/rpc_main.c
+--- glibc-2.17-orig/sunrpc/rpc_main.c	2012-12-25 04:02:13.000000000 +0100
++++ glibc-2.17/sunrpc/rpc_main.c	2012-12-29 00:21:04.124698455 +0100
+@@ -77,7 +77,7 @@
+ 
+ static const char *svcclosetime = "120";
+ static int cppDefined;	/* explicit path for C preprocessor */
+-static const char *CPP = "/lib/cpp";
++static const char *CPP = "cpp";
+ static const char CPPFLAGS[] = "-C";
+ static char *pathbuf;
+ static int cpp_pid;
+@@ -106,7 +106,6 @@
+ static void open_output (const char *infile, const char *outfile);
+ static void add_warning (void);
+ static void clear_args (void);
+-static void find_cpp (void);
+ static void open_input (const char *infile, const char *define);
+ static int check_nettype (const char *name, const char *list_to_check[]);
+ static void c_output (const char *infile, const char *define,
+@@ -318,25 +317,6 @@
+   argcount = FIXEDARGS;
+ }
+ 
+-/* make sure that a CPP exists */
+-static void
+-find_cpp (void)
+-{
+-  struct stat buf;
+-
+-  if (stat (CPP, &buf) == 0)
+-    return;
+-
+-  if (cppDefined) /* user specified cpp but it does not exist */
+-    {
+-      fprintf (stderr, _ ("cannot find C preprocessor: %s\n"), CPP);
+-      crash ();
+-    }
+-
+-  /* fall back to system CPP */
+-  CPP = "cpp";
+-}
+-
+ /*
+  * Open input file with given define for C-preprocessor
+  */
+@@ -355,7 +335,6 @@
+   switch (cpp_pid)
+     {
+     case 0:
+-      find_cpp ();
+       putarg (0, CPP);
+       putarg (1, CPPFLAGS);
+       addarg (define);
diff --git a/pkgs/development/libraries/glibc/2.5/binutils-ld.patch b/pkgs/development/libraries/glibc/2.5/binutils-ld.patch
deleted file mode 100644
index 4cd7ab3cec34d..0000000000000
--- a/pkgs/development/libraries/glibc/2.5/binutils-ld.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From 7c8a67320e26b8c11108bf0a3410d3aef9cf3486 Mon Sep 17 00:00:00 2001
-From: Ulrich Drepper <drepper@redhat.com>
-Date: Sat, 31 Jan 2009 00:21:15 +0000
-Subject: [PATCH] * elf/Makefile (ld.so): Adjust the sed script to insert _begin in to
-
-	newer linker scripts.
----
- ChangeLog    |    5 +++++
- elf/Makefile |    4 ++--
- 2 files changed, 7 insertions(+), 2 deletions(-)
-
-diff --git a/elf/Makefile b/elf/Makefile
-index 8079fe9..e44ff1d 100644
---- a/elf/Makefile
-+++ b/elf/Makefile
-@@ -304,7 +304,7 @@ $(objpfx)ld.so: $(objpfx)librtld.os $(ld-map)
- 		  $(LDFLAGS-rtld) -Wl,-z,defs -Wl,--verbose 2>&1 |	\
- 		  LC_ALL=C \
- 		  sed -e '/^=========/,/^=========/!d;/^=========/d'	\
--		      -e 's/\. = 0 + SIZEOF_HEADERS;/& _begin = . - SIZEOF_HEADERS;/' \
-+		      -e 's/\. = .* + SIZEOF_HEADERS;/& _begin = . - SIZEOF_HEADERS;/' \
- 		  > $@.lds
- 	$(LINK.o) -nostdlib -nostartfiles -shared -o $@			\
- 		  $(LDFLAGS-rtld) -Wl,-z,defs $(z-now-$(bind-now))	\
---
-1.6.4
-
diff --git a/pkgs/development/libraries/glibc/2.5/builder.sh b/pkgs/development/libraries/glibc/2.5/builder.sh
deleted file mode 100644
index bc80af83b9265..0000000000000
--- a/pkgs/development/libraries/glibc/2.5/builder.sh
+++ /dev/null
@@ -1,57 +0,0 @@
-# glibc cannot have itself in its rpath.
-export NIX_NO_SELF_RPATH=1
-
-source $stdenv/setup
-
-# Explicitly tell glibc to use our pwd, not /bin/pwd.
-export PWD_P=$(type -tP pwd)
-
-
-postUnpack() {
-    cd $sourceRoot/..
-}
-
-
-preConfigure() {
-
-    for i in configure io/ftwtest-sh; do
-        substituteInPlace "$i" \
-            --replace "@PWD@" "pwd"
-    done
-
-    # Fix shell code that tries to determine whether GNU ld is recent enough.
-    substituteInPlace configure --replace '2.1[3-9]*)' '2.1[3-9]*|2.[2-9][0-9]*)'
-
-    mkdir ../build
-    cd ../build
-
-    configureScript=../$sourceRoot/configure
-}
-
-
-postConfigure() {
-    # Hack: get rid of the `-static' flag set by the bootstrap stdenv.
-    # This has to be done *after* `configure' because it builds some
-    # test binaries.
-    export NIX_CFLAGS_LINK=
-    export NIX_LDFLAGS_BEFORE=
-    export NIX_DONT_SET_RPATH=1
-}
-
-
-postInstall() {
-    if test -n "$installLocales"; then
-        make -j${NIX_BUILD_CORES:-1} -l${NIX_BUILD_CORES:-1} localedata/install-locales
-    fi
-    rm $out/etc/ld.so.cache
-    (cd $out/include && ln -s $kernelHeaders/include/* .) || exit 1
-
-    # Fix for NIXOS-54 (ldd not working on x86_64).  Make a symlink
-    # "lib64" to "lib".
-    if test -n "$is64bit"; then
-        ln -s lib $out/lib64
-    fi
-}
-
-
-genericBuild
diff --git a/pkgs/development/libraries/glibc/2.5/default.nix b/pkgs/development/libraries/glibc/2.5/default.nix
deleted file mode 100644
index 8b8c204a4803d..0000000000000
--- a/pkgs/development/libraries/glibc/2.5/default.nix
+++ /dev/null
@@ -1,40 +0,0 @@
-{ stdenv, fetchurl, kernelHeaders
-, installLocales ? true
-, profilingLibraries ? false
-}:
-
-stdenv.mkDerivation {
-  name = "glibc-2.5";
-  builder = ./builder.sh;
-
-  src = fetchurl {
-    url = http://ftp.gnu.org/gnu/glibc/glibc-2.5.tar.bz2;
-    md5 = "1fb29764a6a650a4d5b409dda227ac9f";
-  };
-
-  patches = [ ./glibc-pwd.patch ./glibc-getcwd-param-MAX.patch ./glibc-inline.patch
-              ./x86-fnstsw.patch ./binutils-ld.patch ./make-3-82-fix.patch ];
-
-  inherit kernelHeaders installLocales;
-
-  inherit (stdenv) is64bit;
-
-  configureFlags="--enable-add-ons
-    --with-headers=${kernelHeaders}/include
-    --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";
-
-  enableParallelBuilding = true;
-
-  meta = {
-    homepage = http://www.gnu.org/software/libc/;
-    description = "The GNU C Library";
-  };
-}
diff --git a/pkgs/development/libraries/glibc/2.5/glibc-getcwd-param-MAX.patch b/pkgs/development/libraries/glibc/2.5/glibc-getcwd-param-MAX.patch
deleted file mode 100644
index 8543dbbf1d76d..0000000000000
--- a/pkgs/development/libraries/glibc/2.5/glibc-getcwd-param-MAX.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-2006-06-18  Mike Frysinger  <vapier@gentoo.org>
-
-	* sysdeps/unix/sysv/linux/getcwd.c: Include sys/param.h.
-
---- glibc-old/sysdeps/unix/sysv/linux/getcwd.c
-+++ glibc-new/sysdeps/unix/sysv/linux/getcwd.c
-@@ -24,6 +24,7 @@
- #include <limits.h>
- #include <stdlib.h>
- #include <unistd.h>
-+#include <sys/param.h>
- 
- #include <sysdep.h>
- #include <sys/syscall.h>
diff --git a/pkgs/development/libraries/glibc/2.5/glibc-inline.patch b/pkgs/development/libraries/glibc/2.5/glibc-inline.patch
deleted file mode 100644
index 19e400e0d50f7..0000000000000
--- a/pkgs/development/libraries/glibc/2.5/glibc-inline.patch
+++ /dev/null
@@ -1,1822 +0,0 @@
---- 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 <machine-lock.h>
- 
- #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 <bits/libc-tsd.h>
- 
- #  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 <limits.h> 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 <features.h>
-+
- #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 <limits.h>
- 
- 
--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 <miles@gnu.ai.mit.edu>.
- 
-@@ -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 <assert.h>
- 
-+/* 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 <limits.h> 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 <drepper@cygnus.com>, 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 <complex.h>.
--   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 <errno.h>
- 
- #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 <hurd/signal.h>
- 
- #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 <bowman@math.ualberta.ca>, 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 <aj@suse.de>, 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 <davidm@hpl.hp.com>.
- 
-@@ -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/glibc-pwd.patch b/pkgs/development/libraries/glibc/2.5/glibc-pwd.patch
deleted file mode 100644
index 07039718477fe..0000000000000
--- a/pkgs/development/libraries/glibc/2.5/glibc-pwd.patch
+++ /dev/null
@@ -1,74 +0,0 @@
-diff -ruN glibc-20050110/configure glibc-20050110.patched/configure
---- glibc-20050110/configure	2005-01-05 10:39:53.000000000 +0100
-+++ glibc-20050110.patched/configure	2005-01-18 13:33:01.000000000 +0100
-@@ -1393,7 +1393,7 @@
- ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure.
- 
- 
--if test "`cd $srcdir; /bin/pwd`" = "`/bin/pwd`"; then
-+if test "`cd $srcdir; @PWD@`" = "`@PWD@`"; then
-   { { echo "$as_me:$LINENO: error: you must configure in a separate build directory" >&5
- echo "$as_me: error: you must configure in a separate build directory" >&2;}
-    { (exit 1); exit 1; }; }
-diff -ruN glibc-20050110/io/ftwtest-sh glibc-20050110.patched/io/ftwtest-sh
---- glibc-20050110/io/ftwtest-sh	2004-02-09 21:12:23.000000000 +0100
-+++ glibc-20050110.patched/io/ftwtest-sh	2005-01-18 13:33:15.000000000 +0100
-@@ -120,7 +120,7 @@
-     sort > $testout
- 
- # perhaps $tmp involves some symlinks...
--tmpreal=`cd $tmp; /bin/pwd 2>/dev/null || /usr/bin/pwd`
-+tmpreal=`cd $tmp; @PWD@ 2>/dev/null || /usr/bin/pwd`
- 
- cat <<EOF | cmp $testout - || exit 1
- base = "$tmp/", file = "ftwtest.d", flag = FTW_D, cwd = $tmpreal, level = 0
-@@ -138,7 +138,7 @@
- EOF
- rm $testout
- 
--curwd=`/bin/pwd 2>/dev/null || /usr/bin/pwd`
-+curwd=`@PWD@ 2>/dev/null || /usr/bin/pwd`
- cd "$tmp"
- LD_LIBRARY_PATH=$objpfx $ldso $testprogram --chdir ftwtest.d |
-     sort > $testout
-@@ -160,7 +160,7 @@
- EOF
- rm $testout
- 
--curwd=`/bin/pwd 2>/dev/null || /usr/bin/pwd`
-+curwd=`@PWD@ 2>/dev/null || /usr/bin/pwd`
- cd "$tmp"
- LD_LIBRARY_PATH=$objpfx $ldso $testprogram --chdir ftwtest.d/. |
-     sort > $testout
-@@ -182,7 +182,7 @@
- EOF
- rm $testout
- 
--curwd=`/bin/pwd 2>/dev/null || /usr/bin/pwd`
-+curwd=`@PWD@ 2>/dev/null || /usr/bin/pwd`
- cd "$tmp"
- LD_LIBRARY_PATH=$objpfx $ldso $testprogram --chdir ftwtest.d/foo/lvl1/link@1 |
-     sort > $testout
-diff -ruN glibc-20050110/scripts/rellns-sh glibc-20050110.patched/scripts/rellns-sh
---- glibc-20050110/scripts/rellns-sh	1999-12-19 00:40:25.000000000 +0100
-+++ glibc-20050110.patched/scripts/rellns-sh	2005-01-18 13:35:53.245937423 +0100
-@@ -22,13 +22,13 @@
-   exit 1
- fi
- 
--if test -x /bin/pwd; then
--  pwd=/bin/pwd
--elif test -x /usr/bin/pwd; then
--  pwd=/usr/bin/pwd
--else
-+#if test -x /bin/pwd; then
-+#  pwd=/bin/pwd
-+#elif test -x /usr/bin/pwd; then
-+#  pwd=/usr/bin/pwd
-+#else
-   pwd='pwd'
--fi
-+#fi
- 
- # Make both paths absolute.
- if test -d $1; then
diff --git a/pkgs/development/libraries/glibc/2.5/make-3-82-fix.patch b/pkgs/development/libraries/glibc/2.5/make-3-82-fix.patch
deleted file mode 100644
index 816e0aa528be3..0000000000000
--- a/pkgs/development/libraries/glibc/2.5/make-3-82-fix.patch
+++ /dev/null
@@ -1,14 +0,0 @@
---- glibc-2.5/manual/Makefile.orig	2011-01-26 17:03:14.000000000 +0100
-+++ glibc-2.5/manual/Makefile	2011-01-26 17:04:30.000000000 +0100
-@@ -232,7 +232,10 @@
- .PHONY: stubs
- stubs: $(objpfx)stubs
- endif
--$(objpfx)stubs ../po/manual.pot $(objpfx)stamp%:
-+$(objpfx)stubs ../po/manual.pot:
-+	$(make-target-directory)
-+	touch $@
-+$(objpfx)stamp%:
- 	$(make-target-directory)
- 	touch $@
- 
diff --git a/pkgs/development/libraries/glibc/2.5/x86-fnstsw.patch b/pkgs/development/libraries/glibc/2.5/x86-fnstsw.patch
deleted file mode 100644
index 45deb1d2d7192..0000000000000
--- a/pkgs/development/libraries/glibc/2.5/x86-fnstsw.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-# --- 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 <rene@exactcode.de>
-
---- 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.7/builder.sh b/pkgs/development/libraries/glibc/2.7/builder.sh
deleted file mode 100644
index d5a43229bfaf2..0000000000000
--- a/pkgs/development/libraries/glibc/2.7/builder.sh
+++ /dev/null
@@ -1,60 +0,0 @@
-# glibc cannot have itself in its rpath.
-export NIX_NO_SELF_RPATH=1
-export NIX_DONT_SET_RPATH=1
-
-source $stdenv/setup
-
-# Explicitly tell glibc to use our pwd, not /bin/pwd.
-export PWD_P=$(type -tP pwd)
-
-# Needed to install share/zoneinfo/zone.tab.
-export BASH_SHELL=$SHELL
-
-
-preConfigure() {
-
-    for i in configure io/ftwtest-sh; do
-        # Can't use substituteInPlace here because replace hasn't been
-        # built yet in the bootstrap.
-        sed -i "$i" -e "s^/bin/pwd^$PWD_P^g"
-    done
-
-    # In the glibc 2.6/2.7 tarballs C-translit.h is a little bit older
-    # than C-translit.h.in, forcing Make to rebuild it unnecessarily.
-    # This wouldn't be problem except that it requires Perl, which we
-    # don't want as a dependency in the Nixpkgs bootstrap.  So force
-    # the output file to be newer.
-    touch locale/C-translit.h
-    
-    mkdir ../build
-    cd ../build
-    
-    configureScript=../$sourceRoot/configure
-}
-
-
-postConfigure() {
-    # Hack: get rid of the `-static' flag set by the bootstrap stdenv.
-    # This has to be done *after* `configure' because it builds some
-    # test binaries.
-    export NIX_CFLAGS_LINK=
-    export NIX_LDFLAGS_BEFORE=
-}
-
-
-postInstall() {
-    if test -n "$installLocales"; then
-        make localedata/install-locales
-    fi
-    rm $out/etc/ld.so.cache
-    (cd $out/include && ln -s $kernelHeaders/include/* .) || exit 1
-
-    # Fix for NIXOS-54 (ldd not working on x86_64).  Make a symlink
-    # "lib64" to "lib".
-    if test -n "$is64bit"; then
-        ln -s lib $out/lib64
-    fi
-}
-
-
-genericBuild
diff --git a/pkgs/development/libraries/glibc/2.7/default.nix b/pkgs/development/libraries/glibc/2.7/default.nix
deleted file mode 100644
index 7eb34e88899ae..0000000000000
--- a/pkgs/development/libraries/glibc/2.7/default.nix
+++ /dev/null
@@ -1,57 +0,0 @@
-{ stdenv, fetchurl, kernelHeaders
-, installLocales ? true
-, profilingLibraries ? false
-}:
-
-stdenv.mkDerivation {
-  name = "glibc-2.7";
-  builder = ./builder.sh;
-
-  src = fetchurl {
-    url = mirror://gnu/glibc/glibc-2.7.tar.bz2;
-    sha256 = "06j5q20l11x8kcrl9bg15xgb1pw0w82pazikxf4zvq2fmhiaa922";
-  };
-
-  inherit kernelHeaders installLocales;
-
-  inherit (stdenv) is64bit;
-
-  patches = [
-    /* Fix for NIXPKGS-79: when doing host name lookups, when
-       nsswitch.conf contains a line like
-       
-         hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4
-
-       don't return an error when mdns4_minimal can't be found.  This
-       is a bug in Glibc: when a service can't be found, NSS should
-       continue to the next service unless "UNAVAIL=return" is set.
-       ("NOTFOUND=return" refers to the service returning a NOTFOUND
-       error, not the service itself not being found.)  The reason is
-       that the "status" variable (while initialised to UNAVAIL) is
-       outside of the loop that iterates over the services, the
-       "files" service sets status to NOTFOUND.  So when the call to
-       find "mdns4_minimal" fails, "status" will still be NOTFOUND,
-       and it will return instead of continuing to "dns".  Thus, the
-       line
-       
-         hosts: mdns4_minimal [NOTFOUND=return] dns mdns4
-
-       does work because "status" will contain UNAVAIL after the
-       failure to find mdns4_minimal. */
-    ./nss-skip-unavail.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
-    ${if profilingLibraries then "--enable-profile" else "--disable-profile"}";
-
-  # Workaround for this bug:
-  #   http://sourceware.org/bugzilla/show_bug.cgi?id=411
-  # I.e. when gcc is compiled with --with-arch=i686, then the
-  # preprocessor symbol `__i686' will be defined to `1'.  This causes
-  # the symbol __i686.get_pc_thunk.dx to be mangled.
-  NIX_CFLAGS_COMPILE = "-U__i686";
-}
diff --git a/pkgs/development/libraries/glibc/2.7/nss-skip-unavail.patch b/pkgs/development/libraries/glibc/2.7/nss-skip-unavail.patch
deleted file mode 100644
index 4d29082f94196..0000000000000
--- a/pkgs/development/libraries/glibc/2.7/nss-skip-unavail.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-diff -rc glibc-2.7-orig/sysdeps/posix/getaddrinfo.c glibc-2.7/sysdeps/posix/getaddrinfo.c
-*** glibc-2.7-orig/sysdeps/posix/getaddrinfo.c	2007-10-17 18:05:12.000000000 +0200
---- glibc-2.7/sysdeps/posix/getaddrinfo.c	2008-04-08 12:17:09.000000000 +0200
-***************
-*** 498,505 ****
-  	  int no_data = 0;
-  	  int no_inet6_data = 0;
-  	  service_user *nip = NULL;
-- 	  enum nss_status inet6_status = NSS_STATUS_UNAVAIL;
-- 	  enum nss_status status = NSS_STATUS_UNAVAIL;
-  	  int no_more;
-  	  int old_res_options;
-  
---- 498,503 ----
-***************
-*** 689,694 ****
---- 687,694 ----
-  
-  	  while (!no_more)
-  	    {
-+               enum nss_status inet6_status = NSS_STATUS_UNAVAIL;
-+               enum nss_status status = NSS_STATUS_UNAVAIL;
-  	      nss_gethostbyname3_r fct = NULL;
-  	      if (req->ai_flags & AI_CANONNAME)
-  		/* No need to use this function if we do not look for
diff --git a/pkgs/development/libraries/glibc/2.9/binutils-2.20.patch b/pkgs/development/libraries/glibc/2.9/binutils-2.20.patch
deleted file mode 100644
index ab3d6144d6eef..0000000000000
--- a/pkgs/development/libraries/glibc/2.9/binutils-2.20.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-Support GNU Binutils 2.20 and beyond.  Patch from
-http://sourceware.org/ml/libc-alpha/2009-09/msg00009.html .
-
-diff --git a/configure b/configure
-index 48e6952..b1d84d7 100755
---- a/configure
-+++ b/configure
-@@ -4841,7 +4841,7 @@ $as_echo_n "checking version of $AS... " >&6; }
-   ac_prog_version=`$AS --version 2>&1 | sed -n 's/^.*GNU assembler.* \([0-9]*\.[0-9.]*\).*$/\1/p'`
-   case $ac_prog_version in
-     '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
--    2.1[3-9]*)
-+    2.1[3-9]*|[2-9].[2-9]*)
-        ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
-     *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
- 
-@@ -4904,7 +4904,7 @@ $as_echo_n "checking version of $LD... " >&6; }
-   ac_prog_version=`$LD --version 2>&1 | sed -n 's/^.*GNU ld.* \([0-9][0-9]*\.[0-9.]*\).*$/\1/p'`
-   case $ac_prog_version in
-     '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
--    2.1[3-9]*)
-+    2.1[3-9]*|[2-9].[2-9]*)
-        ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
-     *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
- 
-diff --git a/configure.in b/configure.in
-index 4584afe..7c4f71f 100644
---- a/configure.in
-+++ b/configure.in
-@@ -897,10 +897,10 @@ AC_SUBST(MIG)dnl Needed by sysdeps/mach/configure.in
- # Accept binutils 2.13 or newer.
- AC_CHECK_PROG_VER(AS, $AS, --version,
- 		  [GNU assembler.* \([0-9]*\.[0-9.]*\)],
--		  [2.1[3-9]*], AS=: critic_missing="$critic_missing as")
-+		  [2.1[3-9]*|[2-9].[2-9]*], AS=: critic_missing="$critic_missing as")
- AC_CHECK_PROG_VER(LD, $LD, --version,
- 		  [GNU ld.* \([0-9][0-9]*\.[0-9.]*\)],
--		  [2.1[3-9]*], LD=: critic_missing="$critic_missing ld")
-+		  [2.1[3-9]*|[2-9].[2-9]*], LD=: critic_missing="$critic_missing ld")
- 
- # We need the physical current working directory.  We cannot use the
- # "pwd -P" shell builtin since that's not portable.  Instead we try to
diff --git a/pkgs/development/libraries/glibc/2.9/binutils-ld.patch b/pkgs/development/libraries/glibc/2.9/binutils-ld.patch
deleted file mode 100644
index ae70f145ce0d3..0000000000000
--- a/pkgs/development/libraries/glibc/2.9/binutils-ld.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 7c8a67320e26b8c11108bf0a3410d3aef9cf3486 Mon Sep 17 00:00:00 2001
-From: Ulrich Drepper <drepper@redhat.com>
-Date: Sat, 31 Jan 2009 00:21:15 +0000
-Subject: [PATCH] * elf/Makefile (ld.so): Adjust the sed script to insert _begin in to
-
-	newer linker scripts.
----
- ChangeLog    |    5 +++++
- elf/Makefile |    4 ++--
- 2 files changed, 7 insertions(+), 2 deletions(-)
-
-diff --git a/elf/Makefile b/elf/Makefile
-index 8079fe9..e44ff1d 100644
---- a/elf/Makefile
-+++ b/elf/Makefile
-@@ -1,4 +1,4 @@
--# Copyright (C) 1995-2007, 2008 Free Software Foundation, Inc.
-+# Copyright (C) 1995-2007, 2008, 2009 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
-@@ -304,7 +304,7 @@ $(objpfx)ld.so: $(objpfx)librtld.os $(ld-map)
- 		  $(LDFLAGS-rtld) -Wl,-z,defs -Wl,--verbose 2>&1 |	\
- 		  LC_ALL=C \
- 		  sed -e '/^=========/,/^=========/!d;/^=========/d'	\
--		      -e 's/\. = 0 + SIZEOF_HEADERS;/& _begin = . - SIZEOF_HEADERS;/' \
-+		      -e 's/\. = .* + SIZEOF_HEADERS;/& _begin = . - SIZEOF_HEADERS;/' \
- 		  > $@.lds
- 	$(LINK.o) -nostdlib -nostartfiles -shared -o $@			\
- 		  $(LDFLAGS-rtld) -Wl,-z,defs $(z-now-$(bind-now))	\
--- 
-1.6.4
-
diff --git a/pkgs/development/libraries/glibc/2.9/builder.sh b/pkgs/development/libraries/glibc/2.9/builder.sh
deleted file mode 100644
index c81a3ac2a9e90..0000000000000
--- a/pkgs/development/libraries/glibc/2.9/builder.sh
+++ /dev/null
@@ -1,85 +0,0 @@
-# Glibc cannot have itself in its RPATH.
-export NIX_NO_SELF_RPATH=1
-
-source $stdenv/setup
-
-# Explicitly tell glibc to use our pwd, not /bin/pwd.
-export PWD_P=$(type -tP pwd)
-
-# Needed to install share/zoneinfo/zone.tab.  Set to impure /bin/sh to
-# prevent a retained dependency on the bootstrap tools in the
-# stdenv-linux bootstrap.
-export BASH_SHELL=/bin/sh
-
-
-preConfigure() {
-
-    for i in configure io/ftwtest-sh; do
-        # Can't use substituteInPlace here because replace hasn't been
-        # built yet in the bootstrap.
-        sed -i "$i" -e "s^/bin/pwd^$PWD_P^g"
-    done
-
-    # In the glibc 2.6/2.7 tarballs C-translit.h is a little bit older
-    # than C-translit.h.in, forcing Make to rebuild it unnecessarily.
-    # This wouldn't be problem except that it requires Perl, which we
-    # don't want as a dependency in the Nixpkgs bootstrap.  So force
-    # the output file to be newer.
-    touch locale/C-translit.h
-
-    tar xvjf "$srcPorts"
-    
-    if test -n "$crossConfig"; then
-        sed -i s/-lgcc_eh//g Makeconfig
-    fi
-
-    mkdir build
-    cd build
-    
-    configureScript=../configure
-    if test -n "$crossConfig"; then
-        cat > config.cache << "EOF"
-libc_cv_forced_unwind=yes
-libc_cv_c_cleanup=yes
-libc_cv_gnu89_inline=yes
-EOF
-        export BUILD_CC=gcc
-        export CC="${crossConfig}-gcc"
-        export AR="${crossConfig}-ar"
-        export RANLIB="${crossConfig}-ranlib"
-        configureFlags="${configureFlags} --cache-file=config.cache"
-
-        # Disable the native stripping, because it breaks libc_nonshared.a
-        dontStrip=1
-    fi
-}
-
-
-postConfigure() {
-    # Hack: get rid of the `-static' flag set by the bootstrap stdenv.
-    # This has to be done *after* `configure' because it builds some
-    # test binaries.
-    export NIX_CFLAGS_LINK=
-    export NIX_LDFLAGS_BEFORE=
-
-    export NIX_DONT_SET_RPATH=1
-    unset CFLAGS
-}
-
-
-postInstall() {
-    if test -n "$installLocales"; then
-        make localedata/install-locales
-    fi
-    test -f $out/etc/ld.so.cache && rm $out/etc/ld.so.cache
-    (cd $out/include && ln -s $kernelHeaders/include/* .) || exit 1
-
-    # Fix for NIXOS-54 (ldd not working on x86_64).  Make a symlink
-    # "lib64" to "lib".
-    if test -n "$is64bit"; then
-        ln -s lib $out/lib64
-    fi
-}
-
-
-genericBuild
diff --git a/pkgs/development/libraries/glibc/2.9/default.nix b/pkgs/development/libraries/glibc/2.9/default.nix
deleted file mode 100644
index 7d42825206e2c..0000000000000
--- a/pkgs/development/libraries/glibc/2.9/default.nix
+++ /dev/null
@@ -1,103 +0,0 @@
-{ stdenv, fetchurl, kernelHeaders
-, installLocales ? true
-, profilingLibraries ? false
-, gccCross ? null
-}:
-let
-    cross = if gccCross != null then gccCross.target else null;
-in
-stdenv.mkDerivation rec {
-  name = "glibc-2.9" +
-    stdenv.lib.optionalString (cross != null) "-${cross.config}";
-
-  builder = ./builder.sh;
-
-  src = fetchurl {
-    url = http://ftp.gnu.org/gnu/glibc/glibc-2.9.tar.bz2;
-    sha256 = "0v53m7flx6qcx7cvrvvw6a4dx4x3y6k8nvpc4wfv5xaaqy2am2q9";
-  };
-
-  srcPorts = fetchurl {
-    url = http://ftp.gnu.org/gnu/glibc/glibc-ports-2.9.tar.bz2;
-    sha256 = "0r2sn527wxqifi63di7ns9wbjh1cainxn978w178khhy7yw9fk42";
-  };
-
-  inherit kernelHeaders installLocales;
-  crossConfig = if (cross != null) then cross.config else null;
-
-  inherit (stdenv) is64bit;
-
-  patches = [
-    /* Fix for NIXPKGS-79: when doing host name lookups, when
-       nsswitch.conf contains a line like
-
-         hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4
-
-       don't return an error when mdns4_minimal can't be found.  This
-       is a bug in Glibc: when a service can't be found, NSS should
-       continue to the next service unless "UNAVAIL=return" is set.
-       ("NOTFOUND=return" refers to the service returning a NOTFOUND
-       error, not the service itself not being found.)  The reason is
-       that the "status" variable (while initialised to UNAVAIL) is
-       outside of the loop that iterates over the services, the
-       "files" service sets status to NOTFOUND.  So when the call to
-       find "mdns4_minimal" fails, "status" will still be NOTFOUND,
-       and it will return instead of continuing to "dns".  Thus, the
-       line
-
-         hosts: mdns4_minimal [NOTFOUND=return] dns mdns4
-
-       does work because "status" will contain UNAVAIL after the
-       failure to find mdns4_minimal. */
-    ./nss-skip-unavail.patch
-
-    /* Make it possible to override the locale-archive in NixOS. */
-    ./locale-override.patch
-
-    /* Have rpcgen(1) look for cpp(1) in $PATH.  */
-    ./rpcgen-path.patch
-
-    /* Support GNU Binutils 2.20 and above.  */
-    ./binutils-2.20.patch
-
-    ./binutils-ld.patch
-  ];
-
-  configureFlags = [
-    "--enable-add-ons"
-    "--with-headers=${kernelHeaders}/include"
-    (if profilingLibraries then "--enable-profile" else "--disable-profile")
-  ] ++ stdenv.lib.optionals (cross != null) [
-    "--with-tls"
-    "--enable-kernel=2.6.0"
-    "--without-fp"
-    "--with-__thread"
-  ] ++ (if stdenv.isArm then [
-    "--host=arm-linux-gnueabi"
-    "--build=arm-linux-gnueabi"
-    "--without-fp"
-  ] else []);
-
-  buildNativeInputs = stdenv.lib.optionals (cross != null) [ gccCross ];
-
-  preInstall = if (cross != null) then ''
-    mkdir -p $out/lib
-    ln -s ${stdenv.gcc.gcc}/lib/libgcc_s.so.1 $out/lib/libgcc_s.so.1
-  '' else "";
-
-  postInstall = if (cross != null) then ''
-    rm $out/lib/libgcc_s.so.1
-  '' else "";
-
-  # 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.9/headers.nix b/pkgs/development/libraries/glibc/2.9/headers.nix
deleted file mode 100644
index 7adeb11c8bc14..0000000000000
--- a/pkgs/development/libraries/glibc/2.9/headers.nix
+++ /dev/null
@@ -1,63 +0,0 @@
-{ stdenv, fetchurl, kernelHeaders
-, profilingLibraries ? false
-}:
-
-stdenv.mkDerivation rec {
-  name = "glibc-headers-2.9";
-
-  builder = ./headersbuilder.sh;
-
-  src = fetchurl {
-    url = http://ftp.gnu.org/gnu/glibc/glibc-2.9.tar.bz2;
-    sha256 = "0v53m7flx6qcx7cvrvvw6a4dx4x3y6k8nvpc4wfv5xaaqy2am2q9";
-  };
-
-  srcPorts = fetchurl {
-    url = http://ftp.gnu.org/gnu/glibc/glibc-ports-2.9.tar.bz2;
-    sha256 = "0r2sn527wxqifi63di7ns9wbjh1cainxn978w178khhy7yw9fk42";
-  };
-
-  inherit kernelHeaders;
-
-  inherit (stdenv) is64bit;
-
-  patches = [
-    /* Support GNU Binutils 2.20 and above.  */
-    ./binutils-2.20.patch
-  ];
-
-  configureFlags = [
-    "--enable-add-ons"
-    "--with-headers=${kernelHeaders}/include"
-    "--disable-sanity-checks"
-    "--enable-hacker-mode"
-    (if profilingLibraries then "--enable-profile" else "--disable-profile")
-  ] ++ (if stdenv.isArm then [
-    "--host=arm-linux-gnueabi"
-    "--build=arm-linux-gnueabi"
-    "--without-fp"
-  ] else []);
-
-  buildPhase = "true";
-
-  # I took some tricks from crosstool-0.43
-  installPhase = ''
-    make cross-compiling=yes CFLAGS=-DBOOTSTRAP_GCC install-headers
-    mkdir -p $out/include/gnu
-    touch $out/include/gnu/stubs.h
-    cp ../include/features.h $out/include/features.h
-    (cd $out/include && ln -s $kernelHeaders/include/* .) || exit 1
-  '';
-
-  # 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.9/headersbuilder.sh b/pkgs/development/libraries/glibc/2.9/headersbuilder.sh
deleted file mode 100644
index 23f4bd4cc6190..0000000000000
--- a/pkgs/development/libraries/glibc/2.9/headersbuilder.sh
+++ /dev/null
@@ -1,38 +0,0 @@
-# Glibc cannot have itself in its RPATH.
-export NIX_NO_SELF_RPATH=1
-
-source $stdenv/setup
-
-# Explicitly tell glibc to use our pwd, not /bin/pwd.
-export PWD_P=$(type -tP pwd)
-
-# Needed to install share/zoneinfo/zone.tab.  Set to impure /bin/sh to
-# prevent a retained dependency on the bootstrap tools in the
-# stdenv-linux bootstrap.
-export BASH_SHELL=/bin/sh
-
-
-preConfigure() {
-
-    for i in configure io/ftwtest-sh; do
-        # Can't use substituteInPlace here because replace hasn't been
-        # built yet in the bootstrap.
-        sed -i "$i" -e "s^/bin/pwd^$PWD_P^g"
-    done
-
-    # In the glibc 2.6/2.7 tarballs C-translit.h is a little bit older
-    # than C-translit.h.in, forcing Make to rebuild it unnecessarily.
-    # This wouldn't be problem except that it requires Perl, which we
-    # don't want as a dependency in the Nixpkgs bootstrap.  So force
-    # the output file to be newer.
-    touch locale/C-translit.h
-
-    tar xvjf "$srcPorts"
-    
-    mkdir build
-    cd build
-    
-    configureScript=../configure
-}
-
-genericBuild
diff --git a/pkgs/development/libraries/glibc/2.9/info.nix b/pkgs/development/libraries/glibc/2.9/info.nix
deleted file mode 100644
index cc79bbece3d2e..0000000000000
--- a/pkgs/development/libraries/glibc/2.9/info.nix
+++ /dev/null
@@ -1,47 +0,0 @@
-{ stdenv, fetchurl, texinfo, perl }:
-
-stdenv.mkDerivation rec {
-  name = "glibc-info-2.9";
-  
-  src = fetchurl {
-    url = http://nixos.org/tarballs/glibc-2.9-20081208.tar.bz2;
-    sha256 = "0zhxbgcsl97pf349m0lz8d5ljvvzrcqc23yf08d888xlk4ms8m3h";
-  };
-
-  patches = [
-    /* Support GNU Binutils 2.20 and above.  */
-    ./binutils-2.20.patch
-  ];
-
-  preConfigure = ''
-    export PWD_P=$(type -tP pwd)
-    for i in configure io/ftwtest-sh; do
-        # Can't use substituteInPlace here because replace hasn't been
-        # built yet in the bootstrap.
-        sed -i "$i" -e "s^/bin/pwd^$PWD_P^g"
-    done
-    mkdir ../build
-    cd ../build
-    
-    configureScript=../$sourceRoot/configure
-  '';
-
-  configureFlags = [ "--enable-add-ons" ];
-
-  buildInputs = [ texinfo perl ];
-
-  buildPhase = "make info";
-
-  # I don't know why the info is not generated in 'build'
-  # Somehow building the info still does not work, because the final
-  # libc.info hasn't a Top node.
-  installPhase = ''
-    mkdir -p $out/share/info
-    cp ../$sourceRoot/manual/*.info $out/share/info
-  '';
-
-  meta = {
-    homepage = http://www.gnu.org/software/libc/;
-    description = "Locale information for the GNU C Library";
-  };
-}
diff --git a/pkgs/development/libraries/glibc/2.9/locale-override.patch b/pkgs/development/libraries/glibc/2.9/locale-override.patch
deleted file mode 100644
index 108d0e35dacf0..0000000000000
--- a/pkgs/development/libraries/glibc/2.9/locale-override.patch
+++ /dev/null
@@ -1,72 +0,0 @@
-diff -rc glibc-2.9-20081208-orig/locale/loadarchive.c glibc-2.9-20081208/locale/loadarchive.c
-*** glibc-2.9-20081208-orig/locale/loadarchive.c	2005-09-09 18:56:52.000000000 +0200
---- glibc-2.9-20081208/locale/loadarchive.c	2009-04-19 13:54:26.000000000 +0200
-***************
-*** 124,129 ****
---- 124,142 ----
-  }
-  
-  
-+ static int
-+ open_locale_archive ()
-+ {
-+   int fd = -1;
-+   char *path = getenv ("LOCALE_ARCHIVE");
-+   if (path)
-+     fd = open_not_cancel_2 (path, O_RDONLY|O_LARGEFILE);
-+   if (fd < 0)
-+     fd = open_not_cancel_2 (archfname, O_RDONLY|O_LARGEFILE);
-+   return fd;
-+ }
-+ 
-+ 
-  /* Find the locale *NAMEP in the locale archive, and return the
-     internalized data structure for its CATEGORY data.  If this locale has
-     already been loaded from the archive, just returns the existing data
-***************
-*** 203,209 ****
-        archmapped = &headmap;
-  
-        /* The archive has never been opened.  */
-!       fd = open_not_cancel_2 (archfname, O_RDONLY|O_LARGEFILE);
-        if (fd < 0)
-  	/* Cannot open the archive, for whatever reason.  */
-  	return NULL;
---- 216,222 ----
-        archmapped = &headmap;
-  
-        /* The archive has never been opened.  */
-!       fd = open_locale_archive ();
-        if (fd < 0)
-  	/* Cannot open the archive, for whatever reason.  */
-  	return NULL;
-***************
-*** 394,400 ****
-  	  if (fd == -1)
-  	    {
-  	      struct stat64 st;
-! 	      fd = open_not_cancel_2 (archfname, O_RDONLY|O_LARGEFILE);
-  	      if (fd == -1)
-  		/* Cannot open the archive, for whatever reason.  */
-  		return NULL;
---- 407,413 ----
-  	  if (fd == -1)
-  	    {
-  	      struct stat64 st;
-! 	      fd = open_locale_archive ();
-  	      if (fd == -1)
-  		/* Cannot open the archive, for whatever reason.  */
-  		return NULL;
-diff -rc glibc-2.9-20081208-orig/sysdeps/generic/unsecvars.h glibc-2.9-20081208/sysdeps/generic/unsecvars.h
-*** glibc-2.9-20081208-orig/sysdeps/generic/unsecvars.h	2006-10-11 18:24:05.000000000 +0200
---- glibc-2.9-20081208/sysdeps/generic/unsecvars.h	2009-04-19 13:55:34.000000000 +0200
-***************
-*** 16,21 ****
---- 16,22 ----
-    "LD_SHOW_AUXV\0"							      \
-    "LD_USE_LOAD_BIAS\0"							      \
-    "LOCALDOMAIN\0"							      \
-+   "LOCALE_ARCHIVE\0"							      \
-    "LOCPATH\0"								      \
-    "MALLOC_TRACE\0"							      \
-    "NIS_PATH\0"								      \
diff --git a/pkgs/development/libraries/glibc/2.9/locales.nix b/pkgs/development/libraries/glibc/2.9/locales.nix
deleted file mode 100644
index a1fe9f82f143d..0000000000000
--- a/pkgs/development/libraries/glibc/2.9/locales.nix
+++ /dev/null
@@ -1,67 +0,0 @@
-/* This function builds just the `lib/locale/locale-archive' file from
-   Glibc and nothing else.  If `allLocales' is true, all supported
-   locales are included; otherwise, just the locales listed in
-   `locales'.  See localedata/SUPPORTED in the Glibc source tree for
-   the list of all supported locales:
-   http://sourceware.org/cgi-bin/cvsweb.cgi/libc/localedata/SUPPORTED?cvsroot=glibc
-*/
-
-{ stdenv, fetchurl, allLocales ? true, locales ? ["en_US.UTF-8/UTF-8"] }:
-
-stdenv.mkDerivation rec {
-  name = "glibc-locales-2.9";
-
-  builder = ./localesbuilder.sh;
-
-  src = fetchurl {
-    url = http://ftp.gnu.org/gnu/glibc/glibc-2.9.tar.bz2;
-    sha256 = "0v53m7flx6qcx7cvrvvw6a4dx4x3y6k8nvpc4wfv5xaaqy2am2q9";
-  };
-
-  srcPorts = fetchurl {
-    url = http://ftp.gnu.org/gnu/glibc/glibc-ports-2.9.tar.bz2;
-    sha256 = "0r2sn527wxqifi63di7ns9wbjh1cainxn978w178khhy7yw9fk42";
-  };
-
-  inherit (stdenv) is64bit;
-
-  configureFlags = [
-    "--enable-add-ons"
-    "--without-headers"
-    "--disable-profile"
-  ] ++ (if stdenv.isArm then [
-    "--host=arm-linux-gnueabi"
-    "--build=arm-linux-gnueabi"
-    "--without-fp"
-  ] else []);
-
-  patches = [
-    /* Support GNU Binutils 2.20 and above.  */
-    ./binutils-2.20.patch
-  ];
-
-  # Awful hack: `localedef' doesn't allow the path to `locale-archive'
-  # to be overriden, but you *can* specify a prefix, i.e. it will use
-  # <prefix>/<path-to-glibc>/lib/locale/locale-archive.  So we use
-  # $TMPDIR as a prefix, meaning that the locale-archive is placed in
-  # $TMPDIR/nix/store/...-glibc-.../lib/locale/locale-archive.
-  buildPhase =
-    ''
-      mkdir -p $TMPDIR/"$(dirname $(readlink -f $(type -p localedef)))/../lib/locale"
-      make localedata/install-locales \
-          LOCALEDEF="localedef --prefix=$TMPDIR" \
-          localedir=$out/lib/locale \
-          ${if allLocales then "" else "SUPPORTED-LOCALES=\"${toString locales}\""}
-    '';
-
-  installPhase =
-    ''
-      mkdir -p $out/lib/locale
-      cp $TMPDIR/nix/store/*/lib/locale/locale-archive $out/lib/locale/
-    '';
-
-  meta = {
-    homepage = http://www.gnu.org/software/libc/;
-    description = "Locale information for the GNU C Library";
-  };
-}
diff --git a/pkgs/development/libraries/glibc/2.9/localesbuilder.sh b/pkgs/development/libraries/glibc/2.9/localesbuilder.sh
deleted file mode 100644
index a28f6bcbaeb37..0000000000000
--- a/pkgs/development/libraries/glibc/2.9/localesbuilder.sh
+++ /dev/null
@@ -1,50 +0,0 @@
-# Glibc cannot have itself in its RPATH.
-export NIX_NO_SELF_RPATH=1
-
-source $stdenv/setup
-
-# Explicitly tell glibc to use our pwd, not /bin/pwd.
-export PWD_P=$(type -tP pwd)
-
-# Needed to install share/zoneinfo/zone.tab.  Set to impure /bin/sh to
-# prevent a retained dependency on the bootstrap tools in the
-# stdenv-linux bootstrap.
-export BASH_SHELL=/bin/sh
-
-
-preConfigure() {
-
-    for i in configure io/ftwtest-sh; do
-        # Can't use substituteInPlace here because replace hasn't been
-        # built yet in the bootstrap.
-        sed -i "$i" -e "s^/bin/pwd^$PWD_P^g"
-    done
-
-    # In the glibc 2.6/2.7 tarballs C-translit.h is a little bit older
-    # than C-translit.h.in, forcing Make to rebuild it unnecessarily.
-    # This wouldn't be problem except that it requires Perl, which we
-    # don't want as a dependency in the Nixpkgs bootstrap.  So force
-    # the output file to be newer.
-    touch locale/C-translit.h
-
-    tar xvjf "$srcPorts"
-    
-    mkdir build
-    cd build
-    
-    configureScript=../configure
-}
-
-
-postConfigure() {
-    # Hack: get rid of the `-static' flag set by the bootstrap stdenv.
-    # This has to be done *after* `configure' because it builds some
-    # test binaries.
-    export NIX_CFLAGS_LINK=
-    export NIX_LDFLAGS_BEFORE=
-
-    export NIX_DONT_SET_RPATH=1
-    unset CFLAGS
-}
-
-genericBuild
diff --git a/pkgs/development/libraries/glibc/2.9/nss-skip-unavail.patch b/pkgs/development/libraries/glibc/2.9/nss-skip-unavail.patch
deleted file mode 100644
index dc09b5098707e..0000000000000
--- a/pkgs/development/libraries/glibc/2.9/nss-skip-unavail.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-diff -rc glibc-2.9-20081208-orig/sysdeps/posix/getaddrinfo.c glibc-2.9-20081208/sysdeps/posix/getaddrinfo.c
-*** glibc-2.9-20081208-orig/sysdeps/posix/getaddrinfo.c	2008-07-30 21:14:22.000000000 +0200
---- glibc-2.9-20081208/sysdeps/posix/getaddrinfo.c	2008-12-10 11:39:32.000000000 +0100
-***************
-*** 505,512 ****
-  	  int no_data = 0;
-  	  int no_inet6_data = 0;
-  	  service_user *nip = NULL;
-- 	  enum nss_status inet6_status = NSS_STATUS_UNAVAIL;
-- 	  enum nss_status status = NSS_STATUS_UNAVAIL;
-  	  int no_more;
-  	  int old_res_options;
-  
---- 505,510 ----
-***************
-*** 702,707 ****
---- 700,707 ----
-  
-  	  while (!no_more)
-  	    {
-+ 	      enum nss_status inet6_status = NSS_STATUS_UNAVAIL;
-+ 	      enum nss_status status = NSS_STATUS_UNAVAIL;
-  	      nss_gethostbyname4_r fct4
-  		= __nss_lookup_function (nip, "gethostbyname4_r");
-  	      if (fct4 != NULL)
diff --git a/pkgs/development/libraries/glibc/2.9/rpcgen-path.patch b/pkgs/development/libraries/glibc/2.9/rpcgen-path.patch
deleted file mode 100644
index fbb03dd5fadee..0000000000000
--- a/pkgs/development/libraries/glibc/2.9/rpcgen-path.patch
+++ /dev/null
@@ -1,72 +0,0 @@
-By default, rpcgen(1) looks for cpp(1) from a list of fixed absolute paths
-(`/lib/cpp', etc.), which may only be overrided with the `-Y' option.  This
-patch makes it run any `cpp' command found in $PATH.
-
---- glibc-2.7/sunrpc/rpc_main.c	2006-11-10 21:54:46.000000000 +0100
-+++ glibc-2.7/sunrpc/rpc_main.c	2009-04-22 14:32:10.000000000 +0200
-@@ -79,7 +79,7 @@ static const char *cmdname;
- 
- static const char *svcclosetime = "120";
- static int cppDefined;	/* explicit path for C preprocessor */
--static const char *CPP = SUNOS_CPP;
-+static const char *CPP = "cpp";
- static const char CPPFLAGS[] = "-C";
- static char *pathbuf;
- static int cpp_pid;
-@@ -108,7 +108,6 @@ static char *extendfile (const char *fil
- static void open_output (const char *infile, const char *outfile);
- static void add_warning (void);
- static void clear_args (void);
--static void find_cpp (void);
- static void open_input (const char *infile, const char *define);
- static int check_nettype (const char *name, const char *list_to_check[]);
- static void c_output (const char *infile, const char *define,
-@@ -327,31 +326,6 @@ clear_args (void)
-   argcount = FIXEDARGS;
- }
- 
--/* make sure that a CPP exists */
--static void
--find_cpp (void)
--{
--  struct stat buf;
--
--  if (stat (CPP, &buf) < 0)
--    {				/* /lib/cpp or explicit cpp does not exist */
--      if (cppDefined)
--	{
--	  fprintf (stderr, _ ("cannot find C preprocessor: %s \n"), CPP);
--	  crash ();
--	}
--      else
--	{			/* try the other one */
--	  CPP = SVR4_CPP;
--	  if (stat (CPP, &buf) < 0)
--	    {			/* can't find any cpp */
--	      fputs (_ ("cannot find any C preprocessor (cpp)\n"), stdout);
--	      crash ();
--	    }
--	}
--    }
--}
--
- /*
-  * Open input file with given define for C-preprocessor
-  */
-@@ -370,7 +344,6 @@ open_input (const char *infile, const ch
-   switch (cpp_pid)
-     {
-     case 0:
--      find_cpp ();
-       putarg (0, CPP);
-       putarg (1, CPPFLAGS);
-       addarg (define);
-@@ -380,7 +353,7 @@ open_input (const char *infile, const ch
-       close (1);
-       dup2 (pd[1], 1);
-       close (pd[0]);
--      execv (arglist[0], (char **) arglist);
-+      execvp (arglist[0], (char **) arglist);
-       perror ("execv");
-       exit (1);
-     case -1:
diff --git a/pkgs/development/libraries/glibmm/2.30.x.nix b/pkgs/development/libraries/glibmm/2.30.x.nix
index 4792ae790be69..a544543d7e3c3 100644
--- a/pkgs/development/libraries/glibmm/2.30.x.nix
+++ b/pkgs/development/libraries/glibmm/2.30.x.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
     sha256 = "15zqgx6rashyhxk89qjqq05p6m40akpgzyjk8bfb3jk68rc2nn39";
   };
 
-  buildNativeInputs = [pkgconfig];
+  nativeBuildInputs = [pkgconfig];
   propagatedBuildInputs = [glib libsigcxx];
 
   meta = {
diff --git a/pkgs/development/libraries/gmp/4.3.2.nix b/pkgs/development/libraries/gmp/4.3.2.nix
index d25b694115387..df7bd0ea3b960 100644
--- a/pkgs/development/libraries/gmp/4.3.2.nix
+++ b/pkgs/development/libraries/gmp/4.3.2.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
     sha256 = "0x8prpqi9amfcmi7r4zrza609ai9529pjaq0h4aw51i867064qck";
   };
 
-  buildNativeInputs = [ m4 ];
+  nativeBuildInputs = [ m4 ];
 
   # Prevent the build system from using sub-architecture-specific
   # instructions (e.g., SSE2 on i686).
diff --git a/pkgs/development/libraries/gmp/5.0.5.nix b/pkgs/development/libraries/gmp/5.0.5.nix
index 98ebe5fcc2561..dba5cafdf573c 100644
--- a/pkgs/development/libraries/gmp/5.0.5.nix
+++ b/pkgs/development/libraries/gmp/5.0.5.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
 
   patches = [ ./ignore-bad-cpuid.patch ];
 
-  buildNativeInputs = [ m4 ];
+  nativeBuildInputs = [ m4 ];
 
   configureFlags =
     # Build a "fat binary", with routines for several sub-architectures
diff --git a/pkgs/development/libraries/gmp/5.1.1.nix b/pkgs/development/libraries/gmp/5.1.1.nix
new file mode 100644
index 0000000000000..0261f833962e0
--- /dev/null
+++ b/pkgs/development/libraries/gmp/5.1.1.nix
@@ -0,0 +1,54 @@
+{ stdenv, fetchurl, m4, cxx ? true }:
+
+stdenv.mkDerivation rec {
+  name = "gmp-5.1.1";
+
+  src = fetchurl {
+    urls = [ "mirror://gnu/gmp/${name}.tar.bz2" "ftp://ftp.gmplib.org/pub/${name}/${name}.tar.bz2" ];
+    sha256 = "1bdgf04k2i12pfivxgjq68iarz3ngix9hpzbmkgijrdk92gpgm50";
+  };
+
+  nativeBuildInputs = [ m4 ];
+
+  configureFlags =
+    # Build a "fat binary", with routines for several sub-architectures
+    # (x86), except on Solaris where some tests crash with "Memory fault".
+    # See <http://hydra.nixos.org/build/2760931>, for instance.
+    (stdenv.lib.optional (!stdenv.isSunOS) "--enable-fat")
+    ++ (if cxx then [ "--enable-cxx" ] else [ "--disable-cxx" ]);
+
+  doCheck = true;
+
+  enableParallelBuilding = true;
+
+  meta = {
+    homepage = "http://gmplib.org/";
+    description = "GMP, the GNU multiple precision arithmetic library";
+    license = stdenv.lib.licenses.gpl3Plus;
+
+    longDescription =
+      '' GMP is a free library for arbitrary precision arithmetic, operating
+         on signed integers, rational numbers, and floating point numbers.
+         There is no practical limit to the precision except the ones implied
+         by the available memory in the machine GMP runs on.  GMP has a rich
+         set of functions, and the functions have a regular interface.
+
+         The main target applications for GMP are cryptography applications
+         and research, Internet security applications, algebra systems,
+         computational algebra research, etc.
+
+         GMP is carefully designed to be as fast as possible, both for small
+         operands and for huge operands.  The speed is achieved by using
+         fullwords as the basic arithmetic type, by using fast algorithms,
+         with highly optimised assembly code for the most common inner loops
+         for a lot of CPUs, and by a general emphasis on speed.
+
+         GMP is faster than any other bignum library.  The advantage for GMP
+         increases with the operand sizes for many operations, since GMP uses
+         asymptotically faster algorithms.
+      '';
+
+    platforms = stdenv.lib.platforms.all;
+    maintainers = [ stdenv.lib.maintainers.ludo stdenv.lib.maintainers.simons ];
+  };
+}
diff --git a/pkgs/development/libraries/gnutls/default.nix b/pkgs/development/libraries/gnutls/default.nix
index a1c1f3f357f4a..c1dab82e37a28 100644
--- a/pkgs/development/libraries/gnutls/default.nix
+++ b/pkgs/development/libraries/gnutls/default.nix
@@ -34,7 +34,7 @@ stdenv.mkDerivation (rec {
   buildInputs = [ zlib lzo ]
     ++ stdenv.lib.optional guileBindings guile;
 
-  buildNativeInputs = [ perl ];
+  nativeBuildInputs = [ perl ];
 
   propagatedBuildInputs = [ nettle libtasn1 ];
 
diff --git a/pkgs/development/libraries/google-perftools/default.nix b/pkgs/development/libraries/google-perftools/default.nix
deleted file mode 100644
index 7935a794a2ff7..0000000000000
--- a/pkgs/development/libraries/google-perftools/default.nix
+++ /dev/null
@@ -1,14 +0,0 @@
-{stdenv, fetchurl, libunwind}:
-
-stdenv.mkDerivation rec {
-  name = "google-perftools-1.8.3";
-  src = fetchurl {
-    url = "http://google-perftools.googlecode.com/files/${name}.tar.gz";
-    sha256 = "0ncx3a8jl6n38q9bjnaz5sq96yb6yh99j3bl64k3295v9arl9mva";
-  };
-  buildInputs = [libunwind];
-  meta = {
-    description = "Fast, multi-threaded malloc() and nifty performance analysis tools.";
-    platforms = stdenv.lib.platforms.linux;
-  };
-}
diff --git a/pkgs/development/libraries/gperftools/default.nix b/pkgs/development/libraries/gperftools/default.nix
new file mode 100644
index 0000000000000..76d1d8c41f750
--- /dev/null
+++ b/pkgs/development/libraries/gperftools/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchurl, libunwind }:
+
+stdenv.mkDerivation rec {
+  name = "gperftools-2.0";
+
+  src = fetchurl {
+    url = "https://gperftools.googlecode.com/files/${name}.tar.gz";
+    sha1 = "da7181a7ba9b5ee7302daf6c16e886c179fe8d1b";
+  };
+
+  patches = [ ./glibc-2.16.patch ];
+
+  buildInputs = [ libunwind ];
+
+  enableParallelBuilding = true;
+
+  meta = {
+    homepage = https://code.google.com/p/gperftools/;
+    description = "Fast, multi-threaded malloc() and nifty performance analysis tools";
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/pkgs/development/libraries/gperftools/glibc-2.16.patch b/pkgs/development/libraries/gperftools/glibc-2.16.patch
new file mode 100644
index 0000000000000..b17e0d57f5fb0
--- /dev/null
+++ b/pkgs/development/libraries/gperftools/glibc-2.16.patch
@@ -0,0 +1,13 @@
+Index: gperftools-2.0/src/base/linuxthreads.cc
+===================================================================
+--- gperftools-2.0.orig/src/base/linuxthreads.cc
++++ gperftools-2.0/src/base/linuxthreads.cc
+@@ -193,7 +193,7 @@ static volatile int *sig_pids, sig_num_t
+ /* Signal handler to help us recover from dying while we are attached to
+  * other threads.
+  */
+-static void SignalHandler(int signum, siginfo_t *si, void *data) {
++static void SignalHandler(int signum, struct siginfo *si, void *data) {
+   if (sig_pids != NULL) {
+     if (signum == SIGABRT) {
+       while (sig_num_threads-- > 0) {
diff --git a/pkgs/development/libraries/gpgme/default.nix b/pkgs/development/libraries/gpgme/default.nix
index 2f1411a0bdaa6..4ba4cbb334744 100644
--- a/pkgs/development/libraries/gpgme/default.nix
+++ b/pkgs/development/libraries/gpgme/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
   
   propagatedBuildInputs = [ libgpgerror glib libassuan pth ];
 
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 
   configureFlags = "--with-gpg=${gpgPath}";
 }
diff --git a/pkgs/development/libraries/gstreamer/gst-plugins-good/default.nix b/pkgs/development/libraries/gstreamer/gst-plugins-good/default.nix
index 4298a88f65e87..85468b309c55c 100644
--- a/pkgs/development/libraries/gstreamer/gst-plugins-good/default.nix
+++ b/pkgs/development/libraries/gstreamer/gst-plugins-good/default.nix
@@ -5,16 +5,18 @@
 }:
 
 stdenv.mkDerivation rec {
-  name = "gst-plugins-good-0.10.30";
+  name = "gst-plugins-good-0.10.31";
 
   src = fetchurl {
     urls = [
       "${meta.homepage}/src/gst-plugins-good/${name}.tar.bz2"
       "mirror://gentoo/distfiles/${name}.tar.bz2"
       ];
-    sha256 = "1xlmw211fcn60y2m5gxrryb3knqril4kk2c01b6j713xna8blb5i";
+    sha256 = "1ijswgcrdp243mfsyza31fpzq6plz40p4b83vkr2x4x7807889vy";
   };
 
+  patches = [ ./v4l.patch ];
+
   configureFlags = "--disable-oss";
 
   buildInputs =
diff --git a/pkgs/development/libraries/gstreamer/gst-plugins-good/v4l.patch b/pkgs/development/libraries/gstreamer/gst-plugins-good/v4l.patch
new file mode 100644
index 0000000000000..22cff574134f7
--- /dev/null
+++ b/pkgs/development/libraries/gstreamer/gst-plugins-good/v4l.patch
@@ -0,0 +1,11 @@
+diff -ru -x '*~' gst-plugins-good-0.10.31-orig/sys/v4l2/gstv4l2bufferpool.c gst-plugins-good-0.10.31/sys/v4l2/gstv4l2bufferpool.c
+--- gst-plugins-good-0.10.31-orig/sys/v4l2/gstv4l2bufferpool.c	2011-12-30 14:59:13.000000000 +0100
++++ gst-plugins-good-0.10.31/sys/v4l2/gstv4l2bufferpool.c	2013-01-28 17:41:25.549523708 +0100
+@@ -181,7 +181,6 @@
+     GST_LOG_OBJECT (pool->v4l2elem, "  MMAP offset:  %u",
+         ret->vbuffer.m.offset);
+   GST_LOG_OBJECT (pool->v4l2elem, "  length:    %u", ret->vbuffer.length);
+-  GST_LOG_OBJECT (pool->v4l2elem, "  input:     %u", ret->vbuffer.input);
+ 
+   data = (guint8 *) v4l2_mmap (0, ret->vbuffer.length,
+       PROT_READ | PROT_WRITE, MAP_SHARED, pool->video_fd,
diff --git a/pkgs/development/libraries/gstreamer/qt-gstreamer/default.nix b/pkgs/development/libraries/gstreamer/qt-gstreamer/default.nix
index 8bfeb8a4beac0..c3510a69a123f 100644
--- a/pkgs/development/libraries/gstreamer/qt-gstreamer/default.nix
+++ b/pkgs/development/libraries/gstreamer/qt-gstreamer/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ gstreamer gst_plugins_base glib qt4 ];
   propagatedBuildInputs = [ boost ];
-  buildNativeInputs = [ cmake automoc4 flex bison pkgconfig ];
+  nativeBuildInputs = [ cmake automoc4 flex bison pkgconfig ];
 
   cmakeFlags = "-DUSE_QT_PLUGIN_DIR=OFF -DUSE_GST_PLUGIN_DIR=OFF";
 
diff --git a/pkgs/development/libraries/gtk+/2.x.nix b/pkgs/development/libraries/gtk+/2.x.nix
index 18f36563f17bc..f899db0e18f5f 100644
--- a/pkgs/development/libraries/gtk+/2.x.nix
+++ b/pkgs/development/libraries/gtk+/2.x.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
-  buildNativeInputs = [ perl pkgconfig ];
+  nativeBuildInputs = [ perl pkgconfig ];
 
   propagatedBuildInputs =
     [ xlibs.xlibs glib atk pango gdk_pixbuf cairo
diff --git a/pkgs/development/libraries/gtk+/3.2.x.nix b/pkgs/development/libraries/gtk+/3.2.x.nix
index 9f333c03fabf2..cace1b626f49c 100644
--- a/pkgs/development/libraries/gtk+/3.2.x.nix
+++ b/pkgs/development/libraries/gtk+/3.2.x.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
-  buildNativeInputs = [ perl pkgconfig ];
+  nativeBuildInputs = [ perl pkgconfig ];
 
   propagatedBuildInputs =
     [ xlibs.xlibs glib atk pango gdk_pixbuf cairo
diff --git a/pkgs/development/libraries/gtkmm/2.24.x.nix b/pkgs/development/libraries/gtkmm/2.24.x.nix
index 56d151101c5d3..ec7f01a8be5e7 100644
--- a/pkgs/development/libraries/gtkmm/2.24.x.nix
+++ b/pkgs/development/libraries/gtkmm/2.24.x.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
     sha256 = "0gcm91sc1a05c56kzh74l370ggj0zz8nmmjvjaaxgmhdq8lpl369";
   };
 
-  buildNativeInputs = [pkgconfig];
+  nativeBuildInputs = [pkgconfig];
 
   propagatedBuildInputs = [ glibmm gtk atkmm cairomm pangomm ];
 
diff --git a/pkgs/development/libraries/gtkmm/3.2.x.nix b/pkgs/development/libraries/gtkmm/3.2.x.nix
index 890d4a34519d2..d3681b4b38671 100644
--- a/pkgs/development/libraries/gtkmm/3.2.x.nix
+++ b/pkgs/development/libraries/gtkmm/3.2.x.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation {
     sha256 = "1wkljr2vjvjg5mggi4rvk9k4j2kzh8lc106k2yp8gqjlhk2xm5b1";
   };
 
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 
   propagatedBuildInputs = [ glibmm gtk3 atkmm cairomm pangomm ];
 
diff --git a/pkgs/development/libraries/gupnp-igd/default.nix b/pkgs/development/libraries/gupnp-igd/default.nix
index a8bb065d7eb82..20a5f2d9c946f 100644
--- a/pkgs/development/libraries/gupnp-igd/default.nix
+++ b/pkgs/development/libraries/gupnp-igd/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ glib python pygobject ];
 
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 
   meta = {
     homepage = http://www.gupnp.org/;
diff --git a/pkgs/development/libraries/gupnp/default.nix b/pkgs/development/libraries/gupnp/default.nix
index 5679591878a54..c70d8fcb0c26e 100644
--- a/pkgs/development/libraries/gupnp/default.nix
+++ b/pkgs/development/libraries/gupnp/default.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation {
   propagatedBuildInputs = [ libxml2 libsoup gssdp ];
   buildInputs = [ glib libuuid ];
 
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 
   meta = {
     homepage = http://www.gupnp.org/;
diff --git a/pkgs/development/libraries/gwenhywfar/default.nix b/pkgs/development/libraries/gwenhywfar/default.nix
index 207b81997af55..724524e2b263e 100644
--- a/pkgs/development/libraries/gwenhywfar/default.nix
+++ b/pkgs/development/libraries/gwenhywfar/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ qt4 gtk ];
 
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 
   QTDIR = qt4;
 }
diff --git a/pkgs/development/libraries/haskell/cuda/default.nix b/pkgs/development/libraries/haskell/cuda/default.nix
index 3baa02d26747c..bb7f0e23fbf17 100644
--- a/pkgs/development/libraries/haskell/cuda/default.nix
+++ b/pkgs/development/libraries/haskell/cuda/default.nix
@@ -21,7 +21,7 @@ cabal.mkDerivation (self: {
       test -f $i && ghc --make $i
     done
   
-    for p in $extraBuildInputs $propagatedBuildNativeInputs; do
+    for p in $extraBuildInputs $propagatedNativeBuildInputs; do
       if [ -d "$p/include" ]; then
         extraLibDirs="$extraLibDirs --extra-include-dir=$p/include"
       fi
diff --git a/pkgs/development/libraries/hspell/dicts.nix b/pkgs/development/libraries/hspell/dicts.nix
index a7f0d19865cfc..fd456ca6209b7 100644
--- a/pkgs/development/libraries/hspell/dicts.nix
+++ b/pkgs/development/libraries/hspell/dicts.nix
@@ -2,7 +2,7 @@
 
 let
   dict = a: stdenv.mkDerivation ({
-    inherit (hspell) src patchPhase buildNativeInputs;
+    inherit (hspell) src patchPhase nativeBuildInputs;
     meta = hspell.meta // {
       description = "${a.buildFlags} Hebrew dictionary";
     } // (if a ? meta then a.meta else {});
diff --git a/pkgs/development/libraries/hwloc/default.nix b/pkgs/development/libraries/hwloc/default.nix
index de4270008f379..3c5f198cea60e 100644
--- a/pkgs/development/libraries/hwloc/default.nix
+++ b/pkgs/development/libraries/hwloc/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
   };
 
   # XXX: libX11 is not directly needed, but needed as a propagated dep of Cairo.
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 
   # Filter out `null' inputs.  This allows users to `.override' the
   # derivation and set optional dependencies to `null'.
diff --git a/pkgs/development/libraries/ilbc/default.nix b/pkgs/development/libraries/ilbc/default.nix
index 3ab4e7e738c91..d77b5d46a79e9 100644
--- a/pkgs/development/libraries/ilbc/default.nix
+++ b/pkgs/development/libraries/ilbc/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
     sha256 = "0zf4mvi3jzx6zjrfl2rbhl2m68pzbzpf1vbdmn7dqbfpcb67jpdy";
   };
 
-  buildNativeInputs = [ cmake ];
+  nativeBuildInputs = [ cmake ];
 
   unpackPhase = ''
     mkdir -v ${name}
diff --git a/pkgs/development/libraries/imlib2/default.nix b/pkgs/development/libraries/imlib2/default.nix
index 83adb16bbc8de..d77e2052f8115 100644
--- a/pkgs/development/libraries/imlib2/default.nix
+++ b/pkgs/development/libraries/imlib2/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
   
   buildInputs = [ x11 libjpeg libtiff libungif libpng bzip2 ];
 
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 
   meta = {
     platforms = stdenv.lib.platforms.gnu; # random choice
diff --git a/pkgs/development/libraries/itk/default.nix b/pkgs/development/libraries/itk/default.nix
index 6be998b691a53..bfe10490fc7f4 100644
--- a/pkgs/development/libraries/itk/default.nix
+++ b/pkgs/development/libraries/itk/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
-  buildNativeInputs = [ cmake xz ];
+  nativeBuildInputs = [ cmake xz ];
   buildInputs = [ libX11 libuuid ];
 
   meta = {
diff --git a/pkgs/development/libraries/jasper/default.nix b/pkgs/development/libraries/jasper/default.nix
index 8cf4cc7991f00..4046c05f79e52 100644
--- a/pkgs/development/libraries/jasper/default.nix
+++ b/pkgs/development/libraries/jasper/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
     sha256 = "154l7zk7yh3v8l2l6zm5s2alvd2fzkp6c9i18iajfbna5af5m43b";
   };
 
-  buildNativeInputs = [unzip];
+  nativeBuildInputs = [unzip];
   propagatedBuildInputs = [ libjpeg ];
 
   configureFlags = "--enable-shared";
diff --git a/pkgs/development/libraries/json-glib/default.nix b/pkgs/development/libraries/json-glib/default.nix
index ad3af7778ff30..8ca1445b1f6d4 100644
--- a/pkgs/development/libraries/json-glib/default.nix
+++ b/pkgs/development/libraries/json-glib/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
   };
 
   propagatedBuildInputs = [ glib ];
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 
   meta = {
     homepage = http://live.gnome.org/JsonGlib;
diff --git a/pkgs/development/libraries/kdevplatform/default.nix b/pkgs/development/libraries/kdevplatform/default.nix
index 367987d5dee4e..2ff2fac296d84 100644
--- a/pkgs/development/libraries/kdevplatform/default.nix
+++ b/pkgs/development/libraries/kdevplatform/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
   propagatedBuildInputs = [ kdelibs qt4 phonon ];
   buildInputs = [ apr aprutil subversion boost qjson ];
 
-  buildNativeInputs = [ cmake automoc4 gettext pkgconfig ];
+  nativeBuildInputs = [ cmake automoc4 gettext pkgconfig ];
 
   meta = {
     maintainers = [ stdenv.lib.maintainers.urkud ];
diff --git a/pkgs/development/libraries/libbluray/default.nix b/pkgs/development/libraries/libbluray/default.nix
index b0252617d7d7d..6c139242f3e78 100644
--- a/pkgs/development/libraries/libbluray/default.nix
+++ b/pkgs/development/libraries/libbluray/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation {
     sha256 = "551b623e76c2dba44b5490fb42ccdc491b28cd42841de28237b8edbed0f0711c";
   };
 
-  buildNativeInputs = [autoconf automake libtool];
+  nativeBuildInputs = [autoconf automake libtool];
   buildInputs = stdenv.lib.optionals withAACS [jdk ant libaacs];
   NIX_LDFLAGS = stdenv.lib.optionalString withAACS "-laacs";
 
diff --git a/pkgs/development/libraries/libcdr/default.nix b/pkgs/development/libraries/libcdr/default.nix
index 823a4839e80d6..d2d6864056043 100644
--- a/pkgs/development/libraries/libcdr/default.nix
+++ b/pkgs/development/libraries/libcdr/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ libwpg libwpd lcms2 ];
 
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 
   CXXFLAGS="--std=gnu++0x"; # For c++11 constants in lcms2.h
 
diff --git a/pkgs/development/libraries/libchop/default.nix b/pkgs/development/libraries/libchop/default.nix
index 4f0c83f2702b1..7f3c025733930 100644
--- a/pkgs/development/libraries/libchop/default.nix
+++ b/pkgs/development/libraries/libchop/default.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
     sha256 = "0fpdyxww41ba52d98blvnf543xvirq1v9xz1i3x1gm9lzlzpmc2g";
   };
 
-  buildNativeInputs = [ pkgconfig gperf ];
+  nativeBuildInputs = [ pkgconfig gperf ];
   buildInputs =
     [ zlib bzip2 lzo
       libgcrypt
diff --git a/pkgs/development/libraries/libdbusmenu-qt/default.nix b/pkgs/development/libraries/libdbusmenu-qt/default.nix
index aeb9331c8ada0..6fa6ca4b6f819 100644
--- a/pkgs/development/libraries/libdbusmenu-qt/default.nix
+++ b/pkgs/development/libraries/libdbusmenu-qt/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation {
   };
 
   buildInputs = [ qt4 ];
-  buildNativeInputs = [ cmake ];
+  nativeBuildInputs = [ cmake ];
 
   cmakeFlags = "-DWITH_DOC=OFF";
   
diff --git a/pkgs/development/libraries/libdevil/default.nix b/pkgs/development/libraries/libdevil/default.nix
index 12008bcbccb09..6efb785b6577d 100644
--- a/pkgs/development/libraries/libdevil/default.nix
+++ b/pkgs/development/libraries/libdevil/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = [ libjpeg libpng libmng lcms1 libtiff openexr mesa libX11 ];
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 
   configureFlags = [ "--enable-ILU" "--enable-ILUT" ];
 
diff --git a/pkgs/development/libraries/libdiscid/default.nix b/pkgs/development/libraries/libdiscid/default.nix
index 3ee43ba3bee06..b8f79f2ae695c 100644
--- a/pkgs/development/libraries/libdiscid/default.nix
+++ b/pkgs/development/libraries/libdiscid/default.nix
@@ -3,7 +3,7 @@
 stdenv.mkDerivation rec {
   name = "libdiscid-0.2.2";
 
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
   buildInputs = [ cmake ];
 
   src = fetchurl {
diff --git a/pkgs/development/libraries/libdmtx/default.nix b/pkgs/development/libraries/libdmtx/default.nix
index 97622bb7b24b1..970a1cf05e924 100644
--- a/pkgs/development/libraries/libdmtx/default.nix
+++ b/pkgs/development/libraries/libdmtx/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
     sha256 = "0iin2j3ad7ldj32dwc04g28k54iv3lrc5121rgyphm7l9hvigbvk";
   };
 
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 
   propagatedBuildInputs = [ imagemagick ];
 
diff --git a/pkgs/development/libraries/libdrm/default.nix b/pkgs/development/libraries/libdrm/default.nix
index b36fcd602028e..b3f25a629871f 100644
--- a/pkgs/development/libraries/libdrm/default.nix
+++ b/pkgs/development/libraries/libdrm/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
     sha256 = "07xazz6flzc2khvks2cxls36sbsx0ns3x2cj499dw3za0134xha8";
   };
 
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
   buildInputs = [ libpthreadstubs libpciaccess udev ];
 
   patches = stdenv.lib.optional stdenv.isDarwin ./libdrm-apple.patch;
diff --git a/pkgs/development/libraries/libgnome-keyring/3.x.nix b/pkgs/development/libraries/libgnome-keyring/3.x.nix
index a8b8e98ced99b..54a023a16f8b9 100644
--- a/pkgs/development/libraries/libgnome-keyring/3.x.nix
+++ b/pkgs/development/libraries/libgnome-keyring/3.x.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation {
   };
 
   propagatedBuildInputs = [ glib dbus_libs libgcrypt ];
-  buildNativeInputs = [ pkgconfig intltool ];
+  nativeBuildInputs = [ pkgconfig intltool ];
 
   meta = {
     inherit (glib.meta) platforms maintainers;
diff --git a/pkgs/development/libraries/libgnome-keyring/default.nix b/pkgs/development/libraries/libgnome-keyring/default.nix
index 05a21f3c82e20..4aadafff84418 100644
--- a/pkgs/development/libraries/libgnome-keyring/default.nix
+++ b/pkgs/development/libraries/libgnome-keyring/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation {
   };
 
   propagatedBuildInputs = [ glib dbus_libs libgcrypt ];
-  buildNativeInputs = [ pkgconfig intltool ];
+  nativeBuildInputs = [ pkgconfig intltool ];
 
   meta = {
     inherit (glib.meta) platforms maintainers;
diff --git a/pkgs/development/libraries/libgphoto2/default.nix b/pkgs/development/libraries/libgphoto2/default.nix
index b55da62c9fb21..3edc8d0ac6cac 100644
--- a/pkgs/development/libraries/libgphoto2/default.nix
+++ b/pkgs/development/libraries/libgphoto2/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
     sha256 = "14h20s0kwqr1nsj90dgjwzs0r3h7z1cpmnivrikd0rrg4m2jvcsr";
   };
   
-  buildNativeInputs = [ pkgconfig gettext ];
+  nativeBuildInputs = [ pkgconfig gettext ];
   buildInputs = [ libtool libjpeg ];
 
   # These are mentioned in the Requires line of libgphoto's pkg-config file.
diff --git a/pkgs/development/libraries/libgpod/default.nix b/pkgs/development/libraries/libgpod/default.nix
index e271e96618094..0ad46e2ed5f4c 100644
--- a/pkgs/development/libraries/libgpod/default.nix
+++ b/pkgs/development/libraries/libgpod/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
   propagatedBuildInputs = [ glib libxml2 sqlite zlib sg3_utils
     gdk_pixbuf taglib libimobiledevice python pygobject mutagen ];
 
-  buildNativeInputs = [ gettext perlXMLParser intltool pkgconfig perl
+  nativeBuildInputs = [ gettext perlXMLParser intltool pkgconfig perl
     libimobiledevice.swig ];
 
   meta = {
diff --git a/pkgs/development/libraries/libgsf/default.nix b/pkgs/development/libraries/libgsf/default.nix
index 4264890fd956a..56f6242c09e82 100644
--- a/pkgs/development/libraries/libgsf/default.nix
+++ b/pkgs/development/libraries/libgsf/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
     sha256 = "127548f07e07951984fb139c3f89d65b9e471aefe6555387de03e1113944d1a2";
   };
 
-  buildNativeInputs = [ intltool pkgconfig ];
+  nativeBuildInputs = [ intltool pkgconfig ];
   buildInputs =
     [ perl perlXMLParser gettext bzip2 python ]
     ++ stdenv.lib.optionals gnomeSupport [ gnome_vfs gdk_pixbuf ];
diff --git a/pkgs/development/libraries/libgtop/default.nix b/pkgs/development/libraries/libgtop/default.nix
index f214c7acf73d6..b592f458c6ce0 100644
--- a/pkgs/development/libraries/libgtop/default.nix
+++ b/pkgs/development/libraries/libgtop/default.nix
@@ -8,5 +8,5 @@ stdenv.mkDerivation {
   };
 
   propagatedBuildInputs = [ glib ];
-  buildNativeInputs = [ pkgconfig perl intltool ];
+  nativeBuildInputs = [ pkgconfig perl intltool ];
 }
diff --git a/pkgs/development/libraries/libgweather/default.nix b/pkgs/development/libraries/libgweather/default.nix
index 4a4da810ae672..5e7a4cff741f7 100644
--- a/pkgs/development/libraries/libgweather/default.nix
+++ b/pkgs/development/libraries/libgweather/default.nix
@@ -9,5 +9,5 @@ stdenv.mkDerivation {
   };
   configureFlags = if stdenv ? glibc then "--with-zoneinfo-dir=${stdenv.glibc}/share/zoneinfo" else "";
   propagatedBuildInputs = [ libxml2 gtk3 libsoup GConf3 ];
-  buildNativeInputs = [ pkgconfig intltool ];
+  nativeBuildInputs = [ pkgconfig intltool ];
 }
diff --git a/pkgs/development/libraries/libharu/default.nix b/pkgs/development/libraries/libharu/default.nix
index 3b8c4be54e058..db1aa4a7473ce 100644
--- a/pkgs/development/libraries/libharu/default.nix
+++ b/pkgs/development/libraries/libharu/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation {
           sha256 = "1993vskpycyr43rwdp8f688fc5zvllrqq935r7rhsgbqbipkk73h";
         };
 
-        buildNativeInputs = [ patchutils ];
+        nativeBuildInputs = [ patchutils ];
 
         buildCommand = "filterdiff -x '*/CHANGES' $src > $out";
       })
diff --git a/pkgs/development/libraries/libical/default.nix b/pkgs/development/libraries/libical/default.nix
index 80f3a1b8e71fa..59d352cf730e0 100644
--- a/pkgs/development/libraries/libical/default.nix
+++ b/pkgs/development/libraries/libical/default.nix
@@ -7,7 +7,7 @@ stdenv.mkDerivation rec {
     rev = "1130";
     sha256 = "56caf19abdf44807fda75a67ef0886319551e53c4e4ece4da4fc862e34c64e1a";
   };
-  buildNativeInputs = [ perl cmake ];
+  nativeBuildInputs = [ perl cmake ];
 
   patches = [ ./respect-env-tzdir.patch ];
 }
diff --git a/pkgs/development/libraries/libidn/default.nix b/pkgs/development/libraries/libidn/default.nix
index 6da91d98d13ac..94e785ee53b95 100644
--- a/pkgs/development/libraries/libidn/default.nix
+++ b/pkgs/development/libraries/libidn/default.nix
@@ -1,11 +1,11 @@
 { fetchurl, stdenv }:
 
 stdenv.mkDerivation rec {
-  name = "libidn-1.24";
+  name = "libidn-1.25";
 
   src = fetchurl {
     url = "mirror://gnu/libidn/${name}.tar.gz";
-    sha256 = "1zrmbwxvgmv7d37sdnlfn4lf3pxc7vgng3lhl18pkjry0v30h5ys";
+    sha256 = "05j7qcj7gb791k6ya2pwr7cq9yxgi0bjqiiwf9yq6pbai8r2brkz";
   };
 
   doCheck = ! stdenv.isDarwin;
diff --git a/pkgs/development/libraries/libimobiledevice/default.nix b/pkgs/development/libraries/libimobiledevice/default.nix
index b4bb3b47a35ee..a21d9bf7b5de4 100644
--- a/pkgs/development/libraries/libimobiledevice/default.nix
+++ b/pkgs/development/libraries/libimobiledevice/default.nix
@@ -4,7 +4,7 @@
 stdenv.mkDerivation rec {
   name = "libimobiledevice-1.0.6";
 
-  buildNativeInputs = [ python libplist.swig pkgconfig ];
+  nativeBuildInputs = [ python libplist.swig pkgconfig ];
   buildInputs = [ readline ];
   propagatedBuildInputs = [ usbmuxd glib gnutls libgcrypt libtasn1 libplist ];
 
diff --git a/pkgs/development/libraries/libktorrent/default.nix b/pkgs/development/libraries/libktorrent/default.nix
index 083fbf13c8176..a452cb7609e15 100644
--- a/pkgs/development/libraries/libktorrent/default.nix
+++ b/pkgs/development/libraries/libktorrent/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
     sha256 = "1b4ibkba27ivvjsh5s93xwlcgzvvwsgl6mcd8g96d1al05n2ccw9";
   };
 
-  buildNativeInputs = [ cmake automoc4 gettext ];
+  nativeBuildInputs = [ cmake automoc4 gettext ];
   buildInputs = [ kdelibs phonon gmp qca2 boost libgcrypt ];
 
   enableParallelBuilding = true;
diff --git a/pkgs/development/libraries/liblastfm/default.nix b/pkgs/development/libraries/liblastfm/default.nix
index 24b93221d11e9..b1e8342ca91b7 100644
--- a/pkgs/development/libraries/liblastfm/default.nix
+++ b/pkgs/development/libraries/liblastfm/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
 
   prefixKey = "--prefix ";
   propagatedBuildInputs = [ qt4 libsamplerate fftwSinglePrec ];
-  buildNativeInputs = [ ruby pkgconfig which ];
+  nativeBuildInputs = [ ruby pkgconfig which ];
 
   configureFlags = "--release";
 
diff --git a/pkgs/development/libraries/libmad/default.nix b/pkgs/development/libraries/libmad/default.nix
index 178e65d2506f9..6e2e2c949cca5 100644
--- a/pkgs/development/libraries/libmad/default.nix
+++ b/pkgs/development/libraries/libmad/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation {
 
   patches = [ ./001-mips_removal_h_constraint.patch ./pkgconfig.patch ];
 
-  buildNativeInputs = [ autoconf ];
+  nativeBuildInputs = [ autoconf ];
 
   # The -fforce-mem flag has been removed in GCC 4.3.
   preConfigure = ''
diff --git a/pkgs/development/libraries/libmms/default.nix b/pkgs/development/libraries/libmms/default.nix
index 8d24ddbb63007..0f6d220861c5c 100644
--- a/pkgs/development/libraries/libmms/default.nix
+++ b/pkgs/development/libraries/libmms/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ glib ];
 
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 
   meta = {
     homepage = http://libmms.sourceforge.net;
diff --git a/pkgs/development/libraries/libmng/default.nix b/pkgs/development/libraries/libmng/default.nix
index 5a73fd417f900..fcaf95672e18a 100644
--- a/pkgs/development/libraries/libmng/default.nix
+++ b/pkgs/development/libraries/libmng/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
 
   preConfigure = "unmaintained/autogen.sh";
 
-  buildNativeInputs = [ automake110x autoconf libtool ];
+  nativeBuildInputs = [ automake110x autoconf libtool ];
 
   propagatedBuildInputs = [ zlib libpng libjpeg lcms ];
 
diff --git a/pkgs/development/libraries/libogg/default.nix b/pkgs/development/libraries/libogg/default.nix
index e407b75c8bbe3..f3c2d3b766dfa 100644
--- a/pkgs/development/libraries/libogg/default.nix
+++ b/pkgs/development/libraries/libogg/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
     sha256 = "0jy79ffkl34vycnwfsj4svqsdg1lwy2l1rr49y8r4d44kh12a5r3";
   };
 
-  buildNativeInputs = [ xz ];
+  nativeBuildInputs = [ xz ];
 
   meta = {
     homepage = http://xiph.org/ogg/;
diff --git a/pkgs/development/libraries/libopensc-dnie/default.nix b/pkgs/development/libraries/libopensc-dnie/default.nix
index ad524c21ff10e..d229933111e88 100644
--- a/pkgs/development/libraries/libopensc-dnie/default.nix
+++ b/pkgs/development/libraries/libopensc-dnie/default.nix
@@ -7,11 +7,11 @@ assert opensc.name == "opensc-0.11.7";
 stdenv.mkDerivation rec {
   name = "libopensc-dnie-1.4.6-2";
   
-  src = if (stdenv.system == "i686-linux") then (fetchurl {
+  src = if stdenv.system == "i686-linux" then (fetchurl {
       url = http://www.dnielectronico.es/descargas/PKCS11_para_Sistemas_Unix/1.4.6.Ubuntu_Jaunty_32/Ubuntu_Jaunty_opensc-dnie_1.4.6-2_i386.deb.tar;
       sha256 = "1i6r9ahjr0rkcxjfzkg2rrib1rjsjd5raxswvvfiya98q8rlv39i";
     })
-    else if (stdenv.system == "x86_64-linux") then (fetchurl { url = http://www.dnielectronico.es/descargas/PKCS11_para_Sistemas_Unix/1.4.6.Ubuntu_Jaunty_64/Ubuntu_Jaunty_opensc-dnie_1.4.6-2_amd64.deb.tar;
+    else if stdenv.system == "x86_64-linux" then (fetchurl { url = http://www.dnielectronico.es/descargas/PKCS11_para_Sistemas_Unix/1.4.6.Ubuntu_Jaunty_64/Ubuntu_Jaunty_opensc-dnie_1.4.6-2_amd64.deb.tar;
       sha256 = "1py2bxavdcj0crhk1lwqzjgya5lvyhdfdbr4g04iysj56amxb7f9";
     })
     else throw "Architecture not supported";
diff --git a/pkgs/development/libraries/libpcap/default.nix b/pkgs/development/libraries/libpcap/default.nix
index 8f786469a5553..73a7cd2e4bb51 100644
--- a/pkgs/development/libraries/libpcap/default.nix
+++ b/pkgs/development/libraries/libpcap/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
     sha256 = "1gfy00zv6blplw3405q46khmjhdnp6ylblvygjjjk5skgvpscdd1";
   };
   
-  buildNativeInputs = [ flex bison ];
+  nativeBuildInputs = [ flex bison ];
   
   configureFlags = "--with-pcap=linux";
 
diff --git a/pkgs/development/libraries/libplist/default.nix b/pkgs/development/libraries/libplist/default.nix
index 816269599387e..95da6dfb7499c 100644
--- a/pkgs/development/libraries/libplist/default.nix
+++ b/pkgs/development/libraries/libplist/default.nix
@@ -3,7 +3,7 @@
 stdenv.mkDerivation rec {
   name = "libplist-1.3";
 
-  buildNativeInputs = [ cmake swig2 ];
+  nativeBuildInputs = [ cmake swig2 ];
 
   patches = [ ./swig.patch ];
 
diff --git a/pkgs/development/libraries/libpng/12.nix b/pkgs/development/libraries/libpng/12.nix
index ebdb9e756aaa9..031e2aa1a9140 100644
--- a/pkgs/development/libraries/libpng/12.nix
+++ b/pkgs/development/libraries/libpng/12.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
 
   propagatedBuildInputs = [ zlib ];
 
-  buildNativeInputs = [ xz ];
+  nativeBuildInputs = [ xz ];
 
   passthru = { inherit zlib; };
 
diff --git a/pkgs/development/libraries/librdf/rasqal.nix b/pkgs/development/libraries/librdf/rasqal.nix
index bcab7e03917f5..9b65487ccfb2e 100644
--- a/pkgs/development/libraries/librdf/rasqal.nix
+++ b/pkgs/development/libraries/librdf/rasqal.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
     sha256 = "1drjcy1k9g72iis0ghllzn7n0w03bahhrd2p5hs39anbm6mr0yk9";
   };
 
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 
   buildInputs = [ gmp pcre libxml2 ];
 
diff --git a/pkgs/development/libraries/librdf/redland.nix b/pkgs/development/libraries/librdf/redland.nix
index e825e1d852b20..47e25877be9f4 100644
--- a/pkgs/development/libraries/librdf/redland.nix
+++ b/pkgs/development/libraries/librdf/redland.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
     sha256 = "1i460q9gslb7l75hjwc6w2kp2wk7fgp8lr7phamg33c6j013y30k";
   };
 
-  buildNativeInputs = [ perl pkgconfig ];
+  nativeBuildInputs = [ perl pkgconfig ];
 
   buildInputs = [ openssl libxslt curl pcre libxml2 ]
     ++ stdenv.lib.optional withMysql mysql
diff --git a/pkgs/development/libraries/librsvg/default.nix b/pkgs/development/libraries/librsvg/default.nix
index 772bae24dabec..1ac47f890ab93 100644
--- a/pkgs/development/libraries/librsvg/default.nix
+++ b/pkgs/development/libraries/librsvg/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ libxml2 libgsf bzip2 libcroco gdk_pixbuf ]
     ++ stdenv.lib.optional enableIntrospection [gobjectIntrospection];
   propagatedBuildInputs = [ glib gtk ];
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 
   configureFlags = ["--enable-introspection=auto"];
 
diff --git a/pkgs/development/libraries/libsoup/default.nix b/pkgs/development/libraries/libsoup/default.nix
index e0c00d07044fe..3e829dc421a04 100644
--- a/pkgs/development/libraries/libsoup/default.nix
+++ b/pkgs/development/libraries/libsoup/default.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation {
     sha256 = "82c92f1f6f4cbfd501df783ed87e7de9410b4a12a3bb0b19c64722e185d2bbc9";
   };
 
-  buildNativeInputs = [ pkgconfig intltool python ];
+  nativeBuildInputs = [ pkgconfig intltool python ];
 
   propagatedBuildInputs = [ glib libxml2 ]
     ++ stdenv.lib.optionals gnomeSupport [ libgnome_keyring sqlite ];
diff --git a/pkgs/development/libraries/libssh/default.nix b/pkgs/development/libraries/libssh/default.nix
index f8621f3b78b2e..c2b812744c9a5 100644
--- a/pkgs/development/libraries/libssh/default.nix
+++ b/pkgs/development/libraries/libssh/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ zlib libgcrypt ];
 
-  buildNativeInputs = [ cmake ];
+  nativeBuildInputs = [ cmake ];
 
   cmakeFlags = "-DWITH_GCRYPT=ON";
 
diff --git a/pkgs/development/libraries/libtasn1/default.nix b/pkgs/development/libraries/libtasn1/default.nix
index f70f7d3480160..f5c07f47379f3 100644
--- a/pkgs/development/libraries/libtasn1/default.nix
+++ b/pkgs/development/libraries/libtasn1/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl }:
 
 stdenv.mkDerivation rec {
-  name = "libtasn1-2.12";
+  name = "libtasn1-2.13";
 
   src = fetchurl {
     url = "mirror://gnu/libtasn1/${name}.tar.gz";
-    sha256 = "0p8w38l04fgm82iqgl1abhb1ajp04v116bi6fd7lc3n80657l98f";
+    sha256 = "14asfhi35pwc67v7abbwim344h444237bjaqp92gwhhx7m44cvm5";
   };
 
   doCheck = true;
diff --git a/pkgs/development/libraries/libtheora/default.nix b/pkgs/development/libraries/libtheora/default.nix
index e846b213ee0f5..cb93674741735 100644
--- a/pkgs/development/libraries/libtheora/default.nix
+++ b/pkgs/development/libraries/libtheora/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation ({
   propagatedBuildInputs = [libogg libvorbis];
 
   crossAttrs = {
-    propagatedBuildInputs = [libogg.hostDrv tremor.hostDrv];
+    propagatedBuildInputs = [libogg.crossDrv tremor.crossDrv];
     configureFlags = "--disable-examples";
   };
 }
diff --git a/pkgs/development/libraries/libvirt/default.nix b/pkgs/development/libraries/libvirt/default.nix
index de6ef510e16d0..ce714fd59ffc5 100644
--- a/pkgs/development/libraries/libvirt/default.nix
+++ b/pkgs/development/libraries/libvirt/default.nix
@@ -3,14 +3,14 @@
 , libtasn1, ebtables, libgcrypt, yajl
 }:
 
-let version = "0.9.11"; in
+let version = "1.0.2"; in
 
 stdenv.mkDerivation {
   name = "libvirt-${version}";
 
   src = fetchurl {
     url = "http://libvirt.org/sources/libvirt-${version}.tar.gz";
-    sha256 = "0qk0fsc5rxwwjp7801vdanmw61p89xqiy6q279i0kqc3bx1zx66f";
+    sha256 = "0yf104r1377pg0kmx6sshmh8v5z0bdvv6266y5gbcn46yx92g34v";
   };
 
   buildInputs =
diff --git a/pkgs/development/libraries/libvisio/default.nix b/pkgs/development/libraries/libvisio/default.nix
index 99146cd02cc4f..77e7e0a56f64b 100644
--- a/pkgs/development/libraries/libvisio/default.nix
+++ b/pkgs/development/libraries/libvisio/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
     sha256 = "1iqkz280mi066bdccyxagkqm41i270nx01cacvgjq2pflgd3njd1";
   };
 
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
   buildInputs = [ boost libwpd libwpg ];
 
   configureFlags = "--disable-werror";
diff --git a/pkgs/development/libraries/libvorbis/default.nix b/pkgs/development/libraries/libvorbis/default.nix
index efb210d657629..b1277b87e6a7a 100644
--- a/pkgs/development/libraries/libvorbis/default.nix
+++ b/pkgs/development/libraries/libvorbis/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
     sha256 = "1gby6hapz9njx4l9g0pndyk4q83z5fgrgc30mfwfgx7bllspsk43";
   };
 
-  buildNativeInputs = [ xz ];
+  nativeBuildInputs = [ xz ];
   propagatedBuildInputs = [ libogg ];
 
   meta = {
diff --git a/pkgs/development/libraries/libwpd/0.8.nix b/pkgs/development/libraries/libwpd/0.8.nix
index ceaa0d36d4b5f..536db35fb4e9c 100644
--- a/pkgs/development/libraries/libwpd/0.8.nix
+++ b/pkgs/development/libraries/libwpd/0.8.nix
@@ -12,5 +12,5 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ glib libgsf libxml2 ];
 
-  buildNativeInputs = [ pkgconfig bzip2 ];
+  nativeBuildInputs = [ pkgconfig bzip2 ];
 }
diff --git a/pkgs/development/libraries/libwpd/default.nix b/pkgs/development/libraries/libwpd/default.nix
index d857b6e17ea41..1c56022de5800 100644
--- a/pkgs/development/libraries/libwpd/default.nix
+++ b/pkgs/development/libraries/libwpd/default.nix
@@ -10,5 +10,5 @@ stdenv.mkDerivation rec {
   
   buildInputs = [ glib libgsf libxml2 ];
 
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 }
diff --git a/pkgs/development/libraries/libwpg/default.nix b/pkgs/development/libraries/libwpg/default.nix
index d140b8b8a0cdf..a97b8fc2fd85e 100644
--- a/pkgs/development/libraries/libwpg/default.nix
+++ b/pkgs/development/libraries/libwpg/default.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = [ libwpd ];
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 
   meta = {
     homepage = http://libwpg.sourceforge.net;
diff --git a/pkgs/development/libraries/libxcrypt/default.nix b/pkgs/development/libraries/libxcrypt/default.nix
deleted file mode 100644
index 536d30992bbdb..0000000000000
--- a/pkgs/development/libraries/libxcrypt/default.nix
+++ /dev/null
@@ -1,17 +0,0 @@
-{stdenv, fetchurl}:
-
-# I could not build it in armv5tel-linux or the fuloon2f
-assert !stdenv.isArm;
-assert stdenv.system != "mips64el-linux";
-   
-stdenv.mkDerivation {
-  name = "libxcrypt-3.0.2";
-   
-  src = fetchurl {
-    url = ftp://ftp.suse.com/pub/people/kukuk/libxcrypt/libxcrypt-3.0.2.tar.bz2;
-    sha256 = "15l2xvhi3r3b40x4665c101ikylh5xsbpw03gnszypfjgn1jkcii";
-  };
-
-  patches = [ ./gcc46.patch ];
-
-}
diff --git a/pkgs/development/libraries/libxcrypt/gcc46.patch b/pkgs/development/libraries/libxcrypt/gcc46.patch
deleted file mode 100644
index 0664f96aa6888..0000000000000
--- a/pkgs/development/libraries/libxcrypt/gcc46.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-For gcc 4.6 to build this. Otherwise it says 's unused variable', and it's built
-with -Werror.
-
-diff --git a/src/cert.c b/src/cert.c
-index 28c7b11..34570a4 100644
---- a/src/cert.c
-+++ b/src/cert.c
-@@ -87,9 +87,7 @@ char *cp;
- 	int i,j,t;
- 
- 	for(i=0;i<8;i++){
--		int s;
--                  
--                s = scanf("%2x",&t);
-+                scanf("%2x",&t);
- 		if(feof(stdin))
- 		  good_bye();
- 		for(j=0; j<8 ; j++) {
diff --git a/pkgs/development/libraries/libxklavier/default.nix b/pkgs/development/libraries/libxklavier/default.nix
index b50399d4f1088..ac5c6146cbae8 100644
--- a/pkgs/development/libraries/libxklavier/default.nix
+++ b/pkgs/development/libraries/libxklavier/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
   # TODO: enable xmodmap support, needs xmodmap DB
   propagatedBuildInputs = [ libX11 libXi xkeyboard_config libxml2 libICE glib libxkbfile isocodes ];
 
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 
   configureFlags = ''
     --with-xkb-base=${xkeyboard_config}/etc/X11/xkb
diff --git a/pkgs/development/libraries/lirc/default.nix b/pkgs/development/libraries/lirc/default.nix
index 20ef82401e657..75f175a5b2da5 100644
--- a/pkgs/development/libraries/lirc/default.nix
+++ b/pkgs/development/libraries/lirc/default.nix
@@ -10,5 +10,9 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ alsaLib ];
 
-  configureFlags = "--with-driver=none --enable-sandboxed";
+  configureFlags = [
+    "--with-driver=devinput"
+    "--sysconfdir=$(out)/etc"
+    "--enable-sandboxed"
+  ];
 }
diff --git a/pkgs/development/libraries/mediastreamer/default.nix b/pkgs/development/libraries/mediastreamer/default.nix
index ebd6826bc9ed1..4aa78570b2ffc 100644
--- a/pkgs/development/libraries/mediastreamer/default.nix
+++ b/pkgs/development/libraries/mediastreamer/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
   };
 
 # TODO: make it load plugins from *_PLUGIN_PATH
-  buildNativeInputs = [pkgconfig intltool];
+  nativeBuildInputs = [pkgconfig intltool];
 
   propagatedBuildInputs = [alsaLib ffmpeg speex ortp pulseaudio xorg.libX11
     xorg.libXv xorg.libXext libv4l libtheora libvpx gsm ];
diff --git a/pkgs/development/libraries/mesa/default.nix b/pkgs/development/libraries/mesa/default.nix
index a5110d0b45ef5..374fd7ffbc9aa 100644
--- a/pkgs/development/libraries/mesa/default.nix
+++ b/pkgs/development/libraries/mesa/default.nix
@@ -33,7 +33,7 @@ stdenv.mkDerivation {
   buildInputs = [ expat libdrm libXxf86vm libXfixes libXdamage glproto dri2proto
     libxml2Python libX11 libXext libxcb libXt udev llvm ];
 
-  buildNativeInputs = [ pkgconfig python makedepend file flex bison automake autoconf libtool ];
+  nativeBuildInputs = [ pkgconfig python makedepend file flex bison ];
 
   enableParallelBuilding = true;
 
diff --git a/pkgs/development/libraries/mythes/default.nix b/pkgs/development/libraries/mythes/default.nix
index ff06f2a005068..8fc160ae11d55 100644
--- a/pkgs/development/libraries/mythes/default.nix
+++ b/pkgs/development/libraries/mythes/default.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = [ hunspell ];
-  buildNativeInputs = [ pkgconfig perl ];
+  nativeBuildInputs = [ pkgconfig perl ];
 
   meta = {
     homepage = http://hunspell.sourceforge.net/;
diff --git a/pkgs/development/libraries/ncurses/default.nix b/pkgs/development/libraries/ncurses/default.nix
index a6b9a69e6e1f1..569d7fe2a3287 100644
--- a/pkgs/development/libraries/ncurses/default.nix
+++ b/pkgs/development/libraries/ncurses/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation (rec {
     ${if unicode then "--enable-widec" else ""}${if cxx then "" else "--without-cxx-binding"}
   '';
 
-  selfBuildNativeInput = true;
+  selfNativeBuildInput = true;
 
   enableParallelBuilding = true;
 
diff --git a/pkgs/development/libraries/ntrack/default.nix b/pkgs/development/libraries/ntrack/default.nix
index 95bde495c0ef4..13ab00e41be63 100644
--- a/pkgs/development/libraries/ntrack/default.nix
+++ b/pkgs/development/libraries/ntrack/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ libnl qt4 ];
 
-  buildNativeInputs = [ pkgconfig python ];
+  nativeBuildInputs = [ pkgconfig python ];
 
   configureFlags = "--without-gobject CFLAGS=--std=gnu99";
 
diff --git a/pkgs/development/libraries/ogrepaged/default.nix b/pkgs/development/libraries/ogrepaged/default.nix
index 6b2b9c9e4a654..f508637dfefb2 100644
--- a/pkgs/development/libraries/ogrepaged/default.nix
+++ b/pkgs/development/libraries/ogrepaged/default.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = [ ois ogre libX11 boost ];
-  buildNativeInputs = [ cmake pkgconfig ];
+  nativeBuildInputs = [ cmake pkgconfig ];
 
   cmakeFlags = "-DPAGEDGEOMETRY_BUILD_SAMPLES=OFF";
 
diff --git a/pkgs/development/libraries/openbabel/default.nix b/pkgs/development/libraries/openbabel/default.nix
index 455dbceff23c6..e6df13eed34e4 100644
--- a/pkgs/development/libraries/openbabel/default.nix
+++ b/pkgs/development/libraries/openbabel/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
   # TODO : separate lib and apps
   buildInputs = [ zlib libxml2 eigen python cairo ];
 
-  buildNativeInputs = [ cmake pkgconfig ];
+  nativeBuildInputs = [ cmake pkgconfig ];
 
   meta = {
     platforms = stdenv.lib.platforms.all;
diff --git a/pkgs/development/libraries/opencv/default.nix b/pkgs/development/libraries/opencv/default.nix
index 207c14bdce05f..09a36247348d2 100644
--- a/pkgs/development/libraries/opencv/default.nix
+++ b/pkgs/development/libraries/opencv/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ gtk glib libjpeg libpng libtiff jasper ffmpeg xineLib gstreamer ];
 
-  buildNativeInputs = [ cmake pkgconfig ];
+  nativeBuildInputs = [ cmake pkgconfig ];
 
   enableParallelBuilding = true;
 
diff --git a/pkgs/development/libraries/openssl/darwin-arch.patch b/pkgs/development/libraries/openssl/darwin-arch.patch
index 5d5a3afdd1d8f..63db3efc0846e 100644
--- a/pkgs/development/libraries/openssl/darwin-arch.patch
+++ b/pkgs/development/libraries/openssl/darwin-arch.patch
@@ -1,20 +1,12 @@
-diff -ru openssl-1.0.0g-orig/Configure openssl-1.0.0g/Configure
---- openssl-1.0.0g-orig/Configure	2011-12-19 18:04:38.000000000 +0100
-+++ openssl-1.0.0g/Configure	2012-01-23 13:45:23.644170171 +0100
-@@ -549,11 +549,11 @@
- 
- ##### MacOS X (a.k.a. Rhapsody or Darwin) setup
- "rhapsody-ppc-cc","cc:-O3 -DB_ENDIAN::(unknown):MACOSX_RHAPSODY::BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${no_asm}::",
--"darwin-ppc-cc","cc:-arch ppc -O3 -DB_ENDIAN -Wa,-force_cpusubtype_ALL::-D_REENTRANT:MACOSX:-Wl,-search_paths_first%:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${ppc32_asm}:osx32:dlfcn:darwin-shared:-fPIC -fno-common:-arch ppc -dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
--"darwin64-ppc-cc","cc:-arch ppc64 -O3 -DB_ENDIAN::-D_REENTRANT:MACOSX:-Wl,-search_paths_first%:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${ppc64_asm}:osx64:dlfcn:darwin-shared:-fPIC -fno-common:-arch ppc64 -dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
--"darwin-i386-cc","cc:-arch i386 -O3 -fomit-frame-pointer -DL_ENDIAN::-D_REENTRANT:MACOSX:-Wl,-search_paths_first%:BN_LLONG RC4_INT RC4_CHUNK DES_UNROLL BF_PTR:${x86_asm}:macosx:dlfcn:darwin-shared:-fPIC -fno-common:-arch i386 -dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
--"debug-darwin-i386-cc","cc:-arch i386 -g3 -DL_ENDIAN::-D_REENTRANT:MACOSX:-Wl,-search_paths_first%:BN_LLONG RC4_INT RC4_CHUNK DES_UNROLL BF_PTR:${x86_asm}:macosx:dlfcn:darwin-shared:-fPIC -fno-common:-arch i386 -dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
--"darwin64-x86_64-cc","cc:-arch x86_64 -O3 -DL_ENDIAN -DMD32_REG_T=int -Wall::-D_REENTRANT:MACOSX:-Wl,-search_paths_first%:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL:".eval{my $asm=$x86_64_asm;$asm=~s/rc4\-[^:]+//;$asm}.":macosx:dlfcn:darwin-shared:-fPIC -fno-common:-arch x86_64 -dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
-+"darwin-ppc-cc","cc:-O3 -DB_ENDIAN -Wa,-force_cpusubtype_ALL::-D_REENTRANT:MACOSX:-Wl,-search_paths_first%:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${ppc32_asm}:osx32:dlfcn:darwin-shared:-fPIC -fno-common:-dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
-+"darwin64-ppc-cc","cc:-O3 -DB_ENDIAN::-D_REENTRANT:MACOSX:-Wl,-search_paths_first%:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${ppc64_asm}:osx64:dlfcn:darwin-shared:-fPIC -fno-common:-dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
-+"darwin-i386-cc","cc:-O3 -fomit-frame-pointer -DL_ENDIAN::-D_REENTRANT:MACOSX:-Wl,-search_paths_first%:BN_LLONG RC4_INT RC4_CHUNK DES_UNROLL BF_PTR:${x86_asm}:macosx:dlfcn:darwin-shared:-fPIC -fno-common:-dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
-+"debug-darwin-i386-cc","cc:-g3 -DL_ENDIAN::-D_REENTRANT:MACOSX:-Wl,-search_paths_first%:BN_LLONG RC4_INT RC4_CHUNK DES_UNROLL BF_PTR:${x86_asm}:macosx:dlfcn:darwin-shared:-fPIC -fno-common:-dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
-+"darwin64-x86_64-cc","cc:-O3 -DL_ENDIAN -DMD32_REG_T=int -Wall::-D_REENTRANT:MACOSX:-Wl,-search_paths_first%:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL:".eval{my $asm=$x86_64_asm;$asm=~s/rc4\-[^:]+//;$asm}.":macosx:dlfcn:darwin-shared:-fPIC -fno-common:-dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
+diff -ru -x '*~' openssl-1.0.1c-orig/Configure openssl-1.0.1c/Configure
+--- openssl-1.0.1c-orig/Configure	2012-03-14 23:20:40.000000000 +0100
++++ openssl-1.0.1c/Configure	2012-12-18 17:29:30.268090633 +0100
+@@ -579,7 +579,7 @@
+ "darwin64-ppc-cc","cc:-arch ppc64 -O3 -DB_ENDIAN::-D_REENTRANT:MACOSX:-Wl,-search_paths_first%:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${ppc64_asm}:osx64:dlfcn:darwin-shared:-fPIC -fno-common:-arch ppc64 -dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
+ "darwin-i386-cc","cc:-arch i386 -O3 -fomit-frame-pointer -DL_ENDIAN::-D_REENTRANT:MACOSX:-Wl,-search_paths_first%:BN_LLONG RC4_INT RC4_CHUNK DES_UNROLL BF_PTR:".eval{my $asm=$x86_asm;$asm=~s/cast\-586\.o//;$asm}.":macosx:dlfcn:darwin-shared:-fPIC -fno-common:-arch i386 -dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
+ "debug-darwin-i386-cc","cc:-arch i386 -g3 -DL_ENDIAN::-D_REENTRANT:MACOSX:-Wl,-search_paths_first%:BN_LLONG RC4_INT RC4_CHUNK DES_UNROLL BF_PTR:${x86_asm}:macosx:dlfcn:darwin-shared:-fPIC -fno-common:-arch i386 -dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
+-"darwin64-x86_64-cc","cc:-arch x86_64 -O3 -DL_ENDIAN -Wall::-D_REENTRANT:MACOSX:-Wl,-search_paths_first%:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL:".eval{my $asm=$x86_64_asm;$asm=~s/rc4\-[^:]+//;$asm}.":macosx:dlfcn:darwin-shared:-fPIC -fno-common:-arch x86_64 -dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
++"darwin64-x86_64-cc","cc:-O3 -DL_ENDIAN -Wall::-D_REENTRANT:MACOSX:-Wl,-search_paths_first%:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL:".eval{my $asm=$x86_64_asm;$asm=~s/rc4\-[^:]+//;$asm}.":macosx:dlfcn:darwin-shared:-fPIC -fno-common:-dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
  "debug-darwin-ppc-cc","cc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG -DB_ENDIAN -g -Wall -O::-D_REENTRANT:MACOSX::BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${ppc32_asm}:osx32:dlfcn:darwin-shared:-fPIC:-dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
- 
- ##### A/UX
+ # iPhoneOS/iOS
+ "iphoneos-cross","llvm-gcc:-O3 -isysroot \$(CROSS_TOP)/SDKs/\$(CROSS_SDK) -fomit-frame-pointer -fno-common::-D_REENTRANT:iOS:-Wl,-search_paths_first%:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${no_asm}:dlfcn:darwin-shared:-fPIC -fno-common:-dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
diff --git a/pkgs/development/libraries/openssl/default.nix b/pkgs/development/libraries/openssl/default.nix
index 48574a332c8dc..640b99df5473c 100644
--- a/pkgs/development/libraries/openssl/default.nix
+++ b/pkgs/development/libraries/openssl/default.nix
@@ -2,7 +2,7 @@
 , withCryptodev ? false, cryptodevHeaders }:
 
 let
-  name = "openssl-1.0.0i";
+  name = "openssl-1.0.1e";
 
   opensslCrossSystem = stdenv.lib.attrByPath [ "openssl" "system" ]
     (throw "openssl needs its platform name cross building" null)
@@ -30,7 +30,7 @@ let
         ]
 
     ++ stdenv.lib.optional stdenv.isDarwin ./darwin-arch.patch;
-  
+
 in
 
 stdenv.mkDerivation {
@@ -41,30 +41,33 @@ stdenv.mkDerivation {
       "http://www.openssl.org/source/${name}.tar.gz"
       "http://openssl.linux-mirror.org/source/${name}.tar.gz"
     ];
-    sha1 = "b7aa11cbd7d264c2b1f44e3d55b334fb33f7b674";
+    sha256 = "1qqskk39jh85fvdn3ycmdqjdf67c0b97dwmmbcysl4gzr3l1akzp";
   };
 
   patches = patchesCross false;
 
   buildInputs = stdenv.lib.optional withCryptodev cryptodevHeaders;
 
-  buildNativeInputs = [ perl ];
+  nativeBuildInputs = [ perl ];
 
   # On x86_64-darwin, "./config" misdetects the system as
   # "darwin-i386-cc".  So specify the system type explicitly.
   configureScript =
     if stdenv.system == "x86_64-darwin" then "./Configure darwin64-x86_64-cc" else "./config";
 
-  configureFlags = "shared --libdir=lib" +
+  configureFlags = "shared --libdir=lib --openssldir=etc/ssl" +
     stdenv.lib.optionalString withCryptodev " -DHAVE_CRYPTODEV -DUSE_CRYPTODEV_DIGESTS";
 
   makeFlags = "MANDIR=$(out)/share/man";
 
+  # Parallel building is broken in OpenSSL.
+  #enableParallelBuilding = true;
+
   postInstall =
     ''
       # If we're building dynamic libraries, then don't install static
       # libraries.
-      if [ -n "$(echo $out/lib/*.so)" ]; then
+      if [ -n "$(echo $out/lib/*.so $out/lib/*.dylib)" ]; then
           rm $out/lib/*.a
       fi
     ''; # */
diff --git a/pkgs/development/libraries/pango/default.nix b/pkgs/development/libraries/pango/default.nix
index 4d429bfd7fb14..80e50cfa8bcfe 100644
--- a/pkgs/development/libraries/pango/default.nix
+++ b/pkgs/development/libraries/pango/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = stdenv.lib.optional stdenv.isDarwin gettext;
 
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 
   propagatedBuildInputs = [ x11 glib cairo libpng harfbuzz ];
 
diff --git a/pkgs/development/libraries/pangomm/2.28.x.nix b/pkgs/development/libraries/pangomm/2.28.x.nix
index 5cd4744fed38b..7f4d14dfbacfa 100644
--- a/pkgs/development/libraries/pangomm/2.28.x.nix
+++ b/pkgs/development/libraries/pangomm/2.28.x.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
     sha256 = "10kcdpg080m393f1vz0km41kd3483fkyabprm59gvjwklxkcp3bp";
   };
 
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
   propagatedBuildInputs = [ pango glibmm cairomm libpng ];
 
   meta = {
diff --git a/pkgs/development/libraries/pcre/8.30.nix b/pkgs/development/libraries/pcre/8.30.nix
deleted file mode 100644
index 2f636492eb618..0000000000000
--- a/pkgs/development/libraries/pcre/8.30.nix
+++ /dev/null
@@ -1,38 +0,0 @@
-{ stdenv, fetchurl, unicodeSupport ? true, cplusplusSupport ? true }:
-
-stdenv.mkDerivation rec {
-  name = "pcre-8.30";
-
-  src = fetchurl {
-    url = "ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/${name}.tar.bz2";
-    sha256 = "c1113fd7db934e97ad8b3917d432e5b642e9eb9afd127eb797804937c965f4ac";
-  };
-
-  # The compiler on Darwin crashes with an internal error while building the
-  # C++ interface. Disabling optimizations on that platform remedies the
-  # problem. In case we ever update the Darwin GCC version, the exception for
-  # that platform ought to be removed.
-  configureFlags = ''
-    ${if unicodeSupport then "--enable-unicode-properties" else ""}
-    ${if !cplusplusSupport then "--disable-cpp" else ""}
-  '' + stdenv.lib.optionalString stdenv.isDarwin "CXXFLAGS=-O0";
-
-  doCheck = !stdenv.isCygwin;                   # XXX: test failure on Cygwin
-
-  meta = {
-    homepage = "http://www.pcre.org/";
-    description = "A library for Perl Compatible Regular Expressions";
-    license = "BSD-3";
-
-    longDescription = ''
-      The PCRE library is a set of functions that implement regular
-      expression pattern matching using the same syntax and semantics as
-      Perl 5. PCRE has its own native API, as well as a set of wrapper
-      functions that correspond to the POSIX regular expression API. The
-      PCRE library is free, even for building proprietary software.
-    '';
-
-    platforms = stdenv.lib.platforms.all;
-    maintainers = [ stdenv.lib.maintainers.simons ];
-  };
-}
diff --git a/pkgs/development/libraries/pcre/8.31.nix b/pkgs/development/libraries/pcre/8.31.nix
deleted file mode 100644
index 41315d9bb5d81..0000000000000
--- a/pkgs/development/libraries/pcre/8.31.nix
+++ /dev/null
@@ -1,38 +0,0 @@
-{ stdenv, fetchurl, unicodeSupport ? true, cplusplusSupport ? true }:
-
-stdenv.mkDerivation rec {
-  name = "pcre-8.31";
-
-  src = fetchurl {
-    url = "ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/${name}.tar.bz2";
-    sha256 = "0g4c0z4h30v8g8qg02zcbv7n67j5kz0ri9cfhgkpwg276ljs0y2p";
-  };
-
-  # The compiler on Darwin crashes with an internal error while building the
-  # C++ interface. Disabling optimizations on that platform remedies the
-  # problem. In case we ever update the Darwin GCC version, the exception for
-  # that platform ought to be removed.
-  configureFlags = ''
-    ${if unicodeSupport then "--enable-unicode-properties" else ""}
-    ${if !cplusplusSupport then "--disable-cpp" else ""}
-  '' + stdenv.lib.optionalString stdenv.isDarwin "CXXFLAGS=-O0";
-
-  doCheck = !stdenv.isCygwin;                   # XXX: test failure on Cygwin
-
-  meta = {
-    homepage = "http://www.pcre.org/";
-    description = "A library for Perl Compatible Regular Expressions";
-    license = "BSD-3";
-
-    longDescription = ''
-      The PCRE library is a set of functions that implement regular
-      expression pattern matching using the same syntax and semantics as
-      Perl 5. PCRE has its own native API, as well as a set of wrapper
-      functions that correspond to the POSIX regular expression API. The
-      PCRE library is free, even for building proprietary software.
-    '';
-
-    platforms = stdenv.lib.platforms.all;
-    maintainers = [ stdenv.lib.maintainers.simons ];
-  };
-}
diff --git a/pkgs/development/libraries/pcre/default.nix b/pkgs/development/libraries/pcre/default.nix
index edfe26740def2..e59c249348a82 100644
--- a/pkgs/development/libraries/pcre/default.nix
+++ b/pkgs/development/libraries/pcre/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, unicodeSupport ? true, cplusplusSupport ? true }:
 
 stdenv.mkDerivation rec {
-  name = "pcre-8.21";
+  name = "pcre-8.31";
 
   src = fetchurl {
     url = "ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/${name}.tar.bz2";
-    sha256 = "1qwrqldbwszbmr4cw4f0xmcl889cmmjbf58l9vxn89zw26fm1f54";
+    sha256 = "5778a02535473c7ee7838ea598c19f451e63cf5eec0bf0307a688301c9078c3c";
   };
 
   # The compiler on Darwin crashes with an internal error while building the
diff --git a/pkgs/development/libraries/pgen/default.nix b/pkgs/development/libraries/pgen/default.nix
index 91c9f16f5c872..53dc7a768ee3c 100644
--- a/pkgs/development/libraries/pgen/default.nix
+++ b/pkgs/development/libraries/pgen/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation ( rec {
   };
 
   buildInputs = [aterm toolbuslib cLibrary configSupport ptSupport ptableSupport errorSupport tideSupport sdfSupport sglr ascSupport asfSupport];
-  buildNativeInputs = [pkgconfig];
+  nativeBuildInputs = [pkgconfig];
 
   dontStrip = isMingw;
 } // ( if isMingw then { NIX_CFLAGS_COMPILE = "-O2 -Wl,--stack=0x2300000"; } else {} ) )
diff --git a/pkgs/development/libraries/phonon-backend-gstreamer/default.nix b/pkgs/development/libraries/phonon-backend-gstreamer/default.nix
index b2677eb1e7a52..24a261065ebdb 100644
--- a/pkgs/development/libraries/phonon-backend-gstreamer/default.nix
+++ b/pkgs/development/libraries/phonon-backend-gstreamer/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ phonon qt4 gstreamer gst_plugins_base ];
 
-  buildNativeInputs = [ cmake automoc4 pkgconfig ];
+  nativeBuildInputs = [ cmake automoc4 pkgconfig ];
 
   meta = {
     homepage = http://phonon.kde.org/;
diff --git a/pkgs/development/libraries/phonon-backend-vlc/default.nix b/pkgs/development/libraries/phonon-backend-vlc/default.nix
index faa88f8854f92..97e778cc1f58f 100644
--- a/pkgs/development/libraries/phonon-backend-vlc/default.nix
+++ b/pkgs/development/libraries/phonon-backend-vlc/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation {
     sha256 = "1233szd05ahaxyk1sjis374n90m40svfks2aq9jx3g3lxygzwmi2";
   };
 
-  buildNativeInputs = [ cmake automoc4 xz ];
+  nativeBuildInputs = [ cmake automoc4 xz ];
 
   buildInputs = [ qt4 vlc_ phonon ];
 
diff --git a/pkgs/development/libraries/phonon/default.nix b/pkgs/development/libraries/phonon/default.nix
index 2c70957746d27..bd74b9372764c 100644
--- a/pkgs/development/libraries/phonon/default.nix
+++ b/pkgs/development/libraries/phonon/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ qt4 pulseaudio ];
 
-  buildNativeInputs = [ cmake automoc4 ];
+  nativeBuildInputs = [ cmake automoc4 ];
 
   meta = {
     homepage = http://phonon.kde.org/;
diff --git a/pkgs/development/libraries/physfs/default.nix b/pkgs/development/libraries/physfs/default.nix
index fef902fec0356..501516e8a5b50 100644
--- a/pkgs/development/libraries/physfs/default.nix
+++ b/pkgs/development/libraries/physfs/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
     sha256 = "02dwy0vsn2dp31f15vxd3yxxr1rgy25ab7ncavyh73i290qnsadf";
   };
 
-  buildNativeInputs = [ cmake ];
+  nativeBuildInputs = [ cmake ];
 
   patchPhase = ''
     sed s,-Werror,, -i CMakeLists.txt
diff --git a/pkgs/development/libraries/plib/default.nix b/pkgs/development/libraries/plib/default.nix
index 679db72802c63..5e15a63735eea 100644
--- a/pkgs/development/libraries/plib/default.nix
+++ b/pkgs/development/libraries/plib/default.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
     sha256 = "0cha71mflpa10vh2l7ipyqk67dq2y0k5xbafwdks03fwdyzj4ns8";
   };
 
-  NIX_CFLAGS_COMPILE = if (enablePIC) then "-fPIC" else "";
+  NIX_CFLAGS_COMPILE = if enablePIC then "-fPIC" else "";
 
   propagatedBuildInputs = [
     mesa freeglut SDL
diff --git a/pkgs/development/libraries/podofo/default.nix b/pkgs/development/libraries/podofo/default.nix
index 44ae11a6317b4..6b79482c330ef 100644
--- a/pkgs/development/libraries/podofo/default.nix
+++ b/pkgs/development/libraries/podofo/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
     sha256 = "0icpxh1l1dpviq2zwy764dhg8y03zwyf4pgw4s7kb165nvh9v5kv";
   };
   propagatedBuildInputs = [ zlib freetype libjpeg libtiff fontconfig openssl libpng ];
-  buildNativeInputs = [ cmake ];
+  nativeBuildInputs = [ cmake ];
   buildInputs = [ lua5 stdenv.gcc.libc ];
   cmakeFlags = "-DPODOFO_BUILD_SHARED=ON -DPODOFO_BUILD_STATIC=OFF";
 
diff --git a/pkgs/development/libraries/polkit-qt-1/default.nix b/pkgs/development/libraries/polkit-qt-1/default.nix
index 0c1a0a79584b5..13bc992d0263b 100644
--- a/pkgs/development/libraries/polkit-qt-1/default.nix
+++ b/pkgs/development/libraries/polkit-qt-1/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
 
   patches = [ ./polkit-install.patch ];
 
-  buildNativeInputs = [ cmake automoc4 ];
+  nativeBuildInputs = [ cmake automoc4 ];
 
   propagatedBuildInputs = [ polkit glib qt4 ];
 
diff --git a/pkgs/development/libraries/poppler/default.nix b/pkgs/development/libraries/poppler/default.nix
index 7e10ca4b94e62..1558f23219d95 100644
--- a/pkgs/development/libraries/poppler/default.nix
+++ b/pkgs/development/libraries/poppler/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
     ++ stdenv.lib.optionals gtkSupport [ glib /*gtk3*/ ]
     ++ stdenv.lib.optional qt4Support qt4;
 
-  buildNativeInputs = [ pkgconfig cmake ];
+  nativeBuildInputs = [ pkgconfig cmake ];
 
   cmakeFlags = "-DENABLE_XPDF_HEADERS=ON -DENABLE_LIBCURL=ON -DENABLE_ZLIB=ON";
 
diff --git a/pkgs/development/libraries/ppl/default.nix b/pkgs/development/libraries/ppl/default.nix
index 8cad9022d911d..b24b4e06cb943 100644
--- a/pkgs/development/libraries/ppl/default.nix
+++ b/pkgs/development/libraries/ppl/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
     sha256 = "1sxviip4yk6gp453pid5scy1ba66dzdpr02i1416yk7lkv0x3yz3";
   };
 
-  buildNativeInputs = [ perl gnum4 ];
+  nativeBuildInputs = [ perl gnum4 ];
   propagatedBuildInputs = [ gmpxx ];
 
   configureFlags = "--disable-watchdog";
diff --git a/pkgs/development/libraries/prison/default.nix b/pkgs/development/libraries/prison/default.nix
index ca8ba46d7dcb8..7beb93eb4620d 100644
--- a/pkgs/development/libraries/prison/default.nix
+++ b/pkgs/development/libraries/prison/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ qt4 qrencode libdmtx ];
 
-  buildNativeInputs = [ cmake ];
+  nativeBuildInputs = [ cmake ];
 
   meta = {
     description = "Qt4 library for QR-codes";
diff --git a/pkgs/development/libraries/pt-support/default.nix b/pkgs/development/libraries/pt-support/default.nix
index c2264eebddc7a..063fdd7cc049f 100644
--- a/pkgs/development/libraries/pt-support/default.nix
+++ b/pkgs/development/libraries/pt-support/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation ( rec {
   };
 
   buildInputs = [aterm toolbuslib errorSupport];
-  buildNativeInputs = [pkgconfig];
+  nativeBuildInputs = [pkgconfig];
   
   dontStrip = isMingw;
 } // ( if isMingw then { NIX_CFLAGS_COMPILE = "-O2 -Wl,--stack=0x2300000"; } else {} ) )
diff --git a/pkgs/development/libraries/ptable-support/default.nix b/pkgs/development/libraries/ptable-support/default.nix
index c95a82d42876d..357d288c73207 100644
--- a/pkgs/development/libraries/ptable-support/default.nix
+++ b/pkgs/development/libraries/ptable-support/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = [aterm ptSupport];
-  buildNativeInputs = [pkgconfig];
+  nativeBuildInputs = [pkgconfig];
   
   dontStrip = isMingw;
 } 
diff --git a/pkgs/development/libraries/qca2/default.nix b/pkgs/development/libraries/qca2/default.nix
index 6af622c0a15b8..1da9ef193b5f7 100644
--- a/pkgs/development/libraries/qca2/default.nix
+++ b/pkgs/development/libraries/qca2/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
   
   buildInputs = [ qt4 ];
   
-  buildNativeInputs = [ which ];
+  nativeBuildInputs = [ which ];
 
   preBuild =
     ''
diff --git a/pkgs/development/libraries/qca2/ossl.nix b/pkgs/development/libraries/qca2/ossl.nix
index 1e0c583b7a5da..153d3ba574678 100644
--- a/pkgs/development/libraries/qca2/ossl.nix
+++ b/pkgs/development/libraries/qca2/ossl.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
     sha256 =  "ef2c0307e8834e1e7cb23b6fea1cc22486328a37186301a6c11161b1c93d834b";
   };
   buildInputs = [ qt4 qca2 openssl ];
-  buildNativeInputs = [ which ];
+  nativeBuildInputs = [ which ];
   dontAddPrefix = true;
   configureFlags="--no-separate-debug-info --with-qca=${qca2}
     --with-openssl-inc=${openssl}/include --with-openssl-lib=${openssl}/lib";
diff --git a/pkgs/development/libraries/qhull/default.nix b/pkgs/development/libraries/qhull/default.nix
index 6d15ce576ff8e..b81dbda15860a 100644
--- a/pkgs/development/libraries/qhull/default.nix
+++ b/pkgs/development/libraries/qhull/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
     sha256 = "127zpjp6sm8c101hz239k82lpxqcqf4ksdyfqc2py2sm22kclpm3";
   };
 
-  buildNativeInputs = [ cmake ];
+  nativeBuildInputs = [ cmake ];
 
   cmakeFlags = "-DMAN_INSTALL_DIR=share/man/man1 -DDOC_INSTALL_DIR=share/doc/qhull";
 
diff --git a/pkgs/development/libraries/qt-3/default.nix b/pkgs/development/libraries/qt-3/default.nix
index ba796259f7033..91eec5fcd3157 100644
--- a/pkgs/development/libraries/qt-3/default.nix
+++ b/pkgs/development/libraries/qt-3/default.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation {
     sha256 = "0jd4g3bwkgk2s4flbmgisyihm7cam964gzb3pawjlkhas01zghz8";
   };
 
-  buildNativeInputs = [ which ];
+  nativeBuildInputs = [ which ];
   propagatedBuildInputs = [x11 libXft libXrender zlib libjpeg libpng];
 
   configureFlags = "
diff --git a/pkgs/development/libraries/qt-4.x/4.8/default.nix b/pkgs/development/libraries/qt-4.x/4.8/default.nix
index 55be463473b5c..ab9cd43d63bc0 100644
--- a/pkgs/development/libraries/qt-4.x/4.8/default.nix
+++ b/pkgs/development/libraries/qt-4.x/4.8/default.nix
@@ -93,7 +93,7 @@ stdenv.mkDerivation rec {
       mysql postgresql sqlite libjpeg libmng libtiff icu ]
     ++ optionals gtkStyle [ gtk gdk_pixbuf ];
 
-  buildNativeInputs = [ perl pkgconfig which ];
+  nativeBuildInputs = [ perl pkgconfig which ];
 
   prefixKey = "-prefix ";
 
diff --git a/pkgs/development/libraries/rstore-support/default.nix b/pkgs/development/libraries/rstore-support/default.nix
index 95c6d0a0b52d9..c18f52e84d7cd 100644
--- a/pkgs/development/libraries/rstore-support/default.nix
+++ b/pkgs/development/libraries/rstore-support/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = [aterm toolbuslib];
-  buildNativeInputs = [pkgconfig];  
+  nativeBuildInputs = [pkgconfig];  
 
   dontStrip = isMingw;
 } 
diff --git a/pkgs/development/libraries/science/math/liblapack/default.nix b/pkgs/development/libraries/science/math/liblapack/default.nix
index 9f25011b76f87..029deecb93a72 100644
--- a/pkgs/development/libraries/science/math/liblapack/default.nix
+++ b/pkgs/development/libraries/science/math/liblapack/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation {
 
   propagatedBuildInputs = [ atlasMaybeShared ];
   buildInputs = [ gfortran cmake ];
-  buildNativeInputs = [ python ];
+  nativeBuildInputs = [ python ];
 
   cmakeFlags = [
     "-DUSE_OPTIMIZED_BLAS=ON"
diff --git a/pkgs/development/libraries/sdf-support/default.nix b/pkgs/development/libraries/sdf-support/default.nix
index 0604a099d3ce7..8095650b12ff4 100644
--- a/pkgs/development/libraries/sdf-support/default.nix
+++ b/pkgs/development/libraries/sdf-support/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
   patches = if isMingw then [./mingw.patch] else [];
 
   buildInputs = [aterm toolbuslib errorSupport ptSupport];
-  buildNativeInputs = [pkgconfig];  
+  nativeBuildInputs = [pkgconfig];  
 
   dontStrip = isMingw;
 } 
diff --git a/pkgs/development/libraries/sglr/default.nix b/pkgs/development/libraries/sglr/default.nix
index 449667c6b5278..f6c14eae464d7 100644
--- a/pkgs/development/libraries/sglr/default.nix
+++ b/pkgs/development/libraries/sglr/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = [aterm toolbuslib cLibrary configSupport ptSupport ptableSupport errorSupport];
-  buildNativeInputs = [pkgconfig];  
+  nativeBuildInputs = [pkgconfig];  
 
   dontStrip = isMingw;
 } 
diff --git a/pkgs/development/libraries/snappy/default.nix b/pkgs/development/libraries/snappy/default.nix
new file mode 100644
index 0000000000000..ff1bfa7d4eb3f
--- /dev/null
+++ b/pkgs/development/libraries/snappy/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  name = "snappy-1.1.0";
+  
+  src = fetchurl {
+    url = "http://snappy.googlecode.com/files/${name}.tar.gz";
+    sha256 = "0q31cx3zkw0apx1fy8z3xlh2lvivssvykqn0vxsgm4xvi32jpa0z";
+  };
+
+  # -DNDEBUG for speed
+  preConfigure = ''
+    configureFlagsArray=("CXXFLAGS=-DNDEBUG -O2")
+  '';
+
+  doCheck = true;
+
+  meta = {
+    homepage = http://code.google.com/p/snappy/;
+    license = "BSD";
+    description = "Compression/decompression library for very high speeds";
+  };
+}
diff --git a/pkgs/development/libraries/sofia-sip/default.nix b/pkgs/development/libraries/sofia-sip/default.nix
index 3ce49e8ffaff0..950d1302dad1c 100644
--- a/pkgs/development/libraries/sofia-sip/default.nix
+++ b/pkgs/development/libraries/sofia-sip/default.nix
@@ -9,5 +9,5 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = [ glib openssl ];
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 }
diff --git a/pkgs/development/libraries/soprano/default.nix b/pkgs/development/libraries/soprano/default.nix
index 7705ee1893d90..7a3d6eacde577 100644
--- a/pkgs/development/libraries/soprano/default.nix
+++ b/pkgs/development/libraries/soprano/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
   # We disable the Java backend, since we do not need them and they make the closure size much bigger
   buildInputs = [ qt4 clucene_core librdf_redland libiodbc ];
 
-  buildNativeInputs = [ cmake pkgconfig ];
+  nativeBuildInputs = [ cmake pkgconfig ];
 
   meta = {
     homepage = http://soprano.sourceforge.net/;
diff --git a/pkgs/development/libraries/soqt/default.nix b/pkgs/development/libraries/soqt/default.nix
index 60b148f870e58..80fbb53953a17 100644
--- a/pkgs/development/libraries/soqt/default.nix
+++ b/pkgs/development/libraries/soqt/default.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ coin3d qt4 ];
 
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 
   meta = {
     homepage = http://www.coin3d.org/;
diff --git a/pkgs/development/libraries/spice/default.nix b/pkgs/development/libraries/spice/default.nix
index fc2e5bb72c5f4..2bcb9e593b862 100644
--- a/pkgs/development/libraries/spice/default.nix
+++ b/pkgs/development/libraries/spice/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
                   libXrandr libXfixes libXrender libXext libXinerama
                   python pyparsing ];
 
-  buildNativeInputs = [ pkgconfig spice_protocol ];
+  nativeBuildInputs = [ pkgconfig spice_protocol ];
 
   NIX_CFLAGS_COMPILE = "-fno-stack-protector";
 
diff --git a/pkgs/development/libraries/sqlite/full.nix b/pkgs/development/libraries/sqlite/full.nix
index ccb960643bd05..c6ef448ea122a 100644
--- a/pkgs/development/libraries/sqlite/full.nix
+++ b/pkgs/development/libraries/sqlite/full.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation {
   };
 
   buildInputs = [ readline ncurses ];
-  buildNativeInputs = [ tcl ];
+  nativeBuildInputs = [ tcl ];
 
   doCheck = true;
   checkTarget = "test";
diff --git a/pkgs/development/libraries/strigi/default.nix b/pkgs/development/libraries/strigi/default.nix
index 6d7212f5c5c6b..465a5d80ae04c 100644
--- a/pkgs/development/libraries/strigi/default.nix
+++ b/pkgs/development/libraries/strigi/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
   buildInputs =
     [ zlib bzip2 stdenv.gcc.libc libxml2 qt4 exiv2 clucene_core fam dbus_tools ];
 
-  buildNativeInputs = [ cmake pkgconfig perl ];
+  nativeBuildInputs = [ cmake pkgconfig perl ];
 
   enableParallelBuilding = true;
 
diff --git a/pkgs/development/libraries/taglib-extras/default.nix b/pkgs/development/libraries/taglib-extras/default.nix
index de0c7ba2b7548..05fe67eb9d7b1 100644
--- a/pkgs/development/libraries/taglib-extras/default.nix
+++ b/pkgs/development/libraries/taglib-extras/default.nix
@@ -7,5 +7,5 @@ stdenv.mkDerivation rec {
     sha256 = "0cln49ws9svvvals5fzxjxlzqm0fzjfymn7yfp4jfcjz655nnm7y";
   };
   buildInputs = [ taglib ];
-  buildNativeInputs = [ cmake ];
+  nativeBuildInputs = [ cmake ];
 }
diff --git a/pkgs/development/libraries/taglib/default.nix b/pkgs/development/libraries/taglib/default.nix
index 8157ca269aa32..0842836ccec88 100644
--- a/pkgs/development/libraries/taglib/default.nix
+++ b/pkgs/development/libraries/taglib/default.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
   cmakeFlags = "-DWITH_ASF=ON -DWITH_MP4=ON";
 
   buildInputs = [zlib];
-  buildNativeInputs = [cmake];
+  nativeBuildInputs = [cmake];
 
   meta = {
     homepage = http://developer.kde.org/~wheeler/taglib.html;
diff --git a/pkgs/development/libraries/telepathy/farstream/default.nix b/pkgs/development/libraries/telepathy/farstream/default.nix
index a183737dc9b22..b6b96a2439f19 100644
--- a/pkgs/development/libraries/telepathy/farstream/default.nix
+++ b/pkgs/development/libraries/telepathy/farstream/default.nix
@@ -13,5 +13,5 @@ stdenv.mkDerivation rec {
   buildInputs = [ gst_plugins_base gst_python pygobject ];
 
   propagatedBuildInputs = [ dbus_glib farstream telepathy_glib gstreamer ];
-  buildNativeInputs = [ pkgconfig python libxslt];
+  nativeBuildInputs = [ pkgconfig python libxslt];
 }
diff --git a/pkgs/development/libraries/telepathy/qt/default.nix b/pkgs/development/libraries/telepathy/qt/default.nix
index 64067a61e3e1c..a4c90cd1c61f1 100644
--- a/pkgs/development/libraries/telepathy/qt/default.nix
+++ b/pkgs/development/libraries/telepathy/qt/default.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
     sha256 = "0rwyxjk6646r43mvsg01q7rfsah0ni05fa8gxzlx1zhj76db95yh";
   };
 
-  buildNativeInputs = [ cmake pkgconfig python libxslt ];
+  nativeBuildInputs = [ cmake pkgconfig python libxslt ];
   propagatedBuildInputs = [ qt4 dbus_glib telepathy_farstream telepathy_glib ];
   preBuild = ''
     NIX_CFLAGS_COMPILE+=" `pkg-config --cflags dbus-glib-1`"
diff --git a/pkgs/development/libraries/tide-support/default.nix b/pkgs/development/libraries/tide-support/default.nix
index a778535f362c8..d30d316c0dc0c 100644
--- a/pkgs/development/libraries/tide-support/default.nix
+++ b/pkgs/development/libraries/tide-support/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = [aterm toolbuslib];
-  buildNativeInputs = [pkgconfig];    
+  nativeBuildInputs = [pkgconfig];    
 
   dontStrip = isMingw;
 } 
diff --git a/pkgs/development/libraries/tokyo-tyrant/default.nix b/pkgs/development/libraries/tokyo-tyrant/default.nix
index 6331921331223..b623c7731423a 100644
--- a/pkgs/development/libraries/tokyo-tyrant/default.nix
+++ b/pkgs/development/libraries/tokyo-tyrant/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
     sha256 = "13xqcinhydqmh7231qlir6pymacjwcf98drybkhd9597kzxp1bs2";
   };
 
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
   buildInputs = [ tokyocabinet ];
 
   doCheck = false;                                # FIXME
diff --git a/pkgs/development/libraries/toolbuslib/default.nix b/pkgs/development/libraries/toolbuslib/default.nix
index 4d184b11abd4b..16680f0134c3f 100644
--- a/pkgs/development/libraries/toolbuslib/default.nix
+++ b/pkgs/development/libraries/toolbuslib/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
   patches = if isMingw then [./mingw.patch] else [];
   
   buildInputs = [aterm] ++ (if isMingw then [w32api] else []);
-  buildNativeInputs = [pkgconfig];
+  nativeBuildInputs = [pkgconfig];
   
   dontStrip = isMingw; 
 }  
diff --git a/pkgs/development/libraries/tremor/default.nix b/pkgs/development/libraries/tremor/default.nix
index 2770fadf00444..d55ea6166e8b2 100644
--- a/pkgs/development/libraries/tremor/default.nix
+++ b/pkgs/development/libraries/tremor/default.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
     sha256 = "161411cbefa1527da7a8fc087e78d8e21d19143d3a6eb42fb281e5026aad7568";
   };
 
-  buildNativeInputs = [ autoconf automake libtool pkgconfig ];
+  nativeBuildInputs = [ autoconf automake libtool pkgconfig ];
   propagatedBuildInputs = [ libogg ];
 
   preConfigure = ''
diff --git a/pkgs/development/libraries/v8/default.nix b/pkgs/development/libraries/v8/default.nix
index 1fd6179183fd4..1634be1363aec 100644
--- a/pkgs/development/libraries/v8/default.nix
+++ b/pkgs/development/libraries/v8/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
       ln -sv ${gyp}/bin/gyp build/gyp/gyp
     '';
 
-    buildNativeInputs = stdenv.lib.optional (system == "i686-linux") which;
+    nativeBuildInputs = stdenv.lib.optional (system == "i686-linux") which;
     buildInputs = [ readline python ];
 
     buildFlags = [
diff --git a/pkgs/development/libraries/vcdimager/default.nix b/pkgs/development/libraries/vcdimager/default.nix
index 6940f88ffbea1..58b9d2f25735a 100644
--- a/pkgs/development/libraries/vcdimager/default.nix
+++ b/pkgs/development/libraries/vcdimager/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation {
     sha256 = "1526jxynslg07i50v3c3afhc8swbd4si8y6s8m3h1wrz6mkplp87";
   };
 
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 
   buildInputs = [ libxml2 popt ];
 
diff --git a/pkgs/development/libraries/vxl/default.nix b/pkgs/development/libraries/vxl/default.nix
index 01ccb23b77cf8..2f169f3f25dd2 100644
--- a/pkgs/development/libraries/vxl/default.nix
+++ b/pkgs/development/libraries/vxl/default.nix
@@ -9,7 +9,10 @@ stdenv.mkDerivation {
 
   buildInputs = [ cmake unzip libtiff expat zlib libpng libjpeg ];
 
-  cmakeFlags = "-DBUILD_TESTING=OFF " + (if (stdenv.system == "x86_64-linux") then
+  # BUILD_OUL wants old linux headers for videodev.h, not available
+  # in stdenv linux headers
+  cmakeFlags = "-DBUILD_TESTING=OFF -DBUILD_OUL=OFF "
+    + (if stdenv.system == "x86_64-linux" then
       "-DCMAKE_CXX_FLAGS=-fPIC -DCMAKE_C_FLAGS=-fPIC"
     else
       "");
diff --git a/pkgs/development/libraries/wxGTK-2.8/default.nix b/pkgs/development/libraries/wxGTK-2.8/default.nix
index 919a458d248f9..a73638dc478ab 100644
--- a/pkgs/development/libraries/wxGTK-2.8/default.nix
+++ b/pkgs/development/libraries/wxGTK-2.8/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ gtk libXinerama libSM libXxf86vm xf86vidmodeproto gstreamer gst_plugins_base GConf ]
     ++ optional withMesa mesa;
 
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 
   configureFlags = [
     "--enable-gtk2"
diff --git a/pkgs/development/libraries/wxGTK-2.9/default.nix b/pkgs/development/libraries/wxGTK-2.9/default.nix
index 21a80d8951fbb..fca5a4a278e01 100644
--- a/pkgs/development/libraries/wxGTK-2.9/default.nix
+++ b/pkgs/development/libraries/wxGTK-2.9/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation {
   buildInputs = [ gtk libXinerama libSM libXxf86vm xf86vidmodeproto gstreamer gst_plugins_base GConf ]
     ++ optional withMesa mesa;
 
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 
   configureFlags = [
     "--enable-gtk2"
diff --git a/pkgs/development/libraries/xine-lib/default.nix b/pkgs/development/libraries/xine-lib/default.nix
index 4ae48a4c04e13..45c60acfa8984 100644
--- a/pkgs/development/libraries/xine-lib/default.nix
+++ b/pkgs/development/libraries/xine-lib/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
     sha256 = "1mjk686h1qzqj51h4xs4xvagfgnnhm8czbzzjvr5w034pr8n8rg1";
   };
 
-  buildNativeInputs = [ pkgconfig perl ];
+  nativeBuildInputs = [ pkgconfig perl ];
 
   buildInputs = [
     xorg.libX11 xorg.libXv xorg.libXinerama xorg.libxcb xorg.libXext
diff --git a/pkgs/development/libraries/zlib/default.nix b/pkgs/development/libraries/zlib/default.nix
index 5e1ddf8395165..ec47c35c15304 100644
--- a/pkgs/development/libraries/zlib/default.nix
+++ b/pkgs/development/libraries/zlib/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
   NIX_CFLAGS_COMPILE = "-static-libgcc";
 
   crossAttrs = {
-    dontStrip = if static then true else false;
+    dontStrip = static;
   } // stdenv.lib.optionalAttrs (stdenv.cross.libc == "msvcrt") {
     configurePhase=''
       installFlags="BINARY_PATH=$out/bin INCLUDE_PATH=$out/include LIBRARY_PATH=$out/lib"
diff --git a/pkgs/development/mobile/androidenv/build-app.nix b/pkgs/development/mobile/androidenv/build-app.nix
index 571cd2be62325..d4df64e79c061 100644
--- a/pkgs/development/mobile/androidenv/build-app.nix
+++ b/pkgs/development/mobile/androidenv/build-app.nix
@@ -6,7 +6,7 @@
 assert release -> keyStore != null && keyAlias != null && keyStorePassword != null && keyAliasPassword != null;
 
 let
-  platformName = if (stdenv.system == "i686-linux" || stdenv.system == "x86_64-linux") then "linux"
+  platformName = if stdenv.system == "i686-linux" || stdenv.system == "x86_64-linux" then "linux"
     else if stdenv.system == "x86_64-darwin" then "macosx"
     else throw "Platform: ${stdenv.system} is not supported!";
 
diff --git a/pkgs/development/perl-modules/Compress-Raw-Zlib/default.nix b/pkgs/development/perl-modules/Compress-Raw-Zlib/default.nix
index 9385981e2c370..70c2a294d6f25 100644
--- a/pkgs/development/perl-modules/Compress-Raw-Zlib/default.nix
+++ b/pkgs/development/perl-modules/Compress-Raw-Zlib/default.nix
@@ -21,7 +21,6 @@ buildPerlPackage rec {
   doCheck = !stdenv.isDarwin;
 
   meta = {
-    homepage = http://search.cpan.org/perldoc?CPAN::Meta::Spec;
     license = "perl5";
   };
 }
diff --git a/pkgs/development/perl-modules/generic/builder.sh b/pkgs/development/perl-modules/generic/builder.sh
index df2fe853b4af1..7c51bf1b59179 100644
--- a/pkgs/development/perl-modules/generic/builder.sh
+++ b/pkgs/development/perl-modules/generic/builder.sh
@@ -33,8 +33,8 @@ postFixup() {
     # dependencies in the user environment (since Perl modules don't
     # have something like an RPATH, so the only way to find the
     # dependencies is to have them in the PERL5LIB variable).
-    if test -e $out/nix-support/propagated-build-native-inputs; then
-        ln -s $out/nix-support/propagated-build-native-inputs $out/nix-support/propagated-user-env-packages
+    if test -e $out/nix-support/propagated-native-build-inputs; then
+        ln -s $out/nix-support/propagated-native-build-inputs $out/nix-support/propagated-user-env-packages
     fi
 }
 
diff --git a/pkgs/development/python-modules/generic/default.nix b/pkgs/development/python-modules/generic/default.nix
index 70bf92f0ae904..f72fbff1806a4 100644
--- a/pkgs/development/python-modules/generic/default.nix
+++ b/pkgs/development/python-modules/generic/default.nix
@@ -23,7 +23,7 @@
     ''
       easy_install --always-unzip --prefix="$out" .
     ''
-    
+
 , preConfigure ? "true"
 
 , buildPhase ? "true"
@@ -100,7 +100,16 @@ python.stdenv.mkDerivation (attrs // {
     ''
       wrapPythonPrograms
 
-      for inputsfile in propagated-build-inputs propagated-build-native-inputs; do
+      # If a user installs a Python package, she probably also wants its
+      # dependencies in the user environment (since Python modules don't
+      # have something like an RPATH, so the only way to find the
+      # dependencies is to have them in the PYTHONPATH variable).
+      if test -e $out/nix-support/propagated-build-inputs; then
+          ln -s $out/nix-support/propagated-build-inputs $out/nix-support/propagated-user-env-packages
+      fi
+
+      createBuildInputsPth build-inputs "$buildInputStrings"
+      for inputsfile in propagated-build-inputs propagated-native-build-inputs; do
         if test -e $out/nix-support/$inputsfile; then
             createBuildInputsPth $inputsfile "$(cat $out/nix-support/$inputsfile)"
         fi
diff --git a/pkgs/development/python-modules/generic/wrap.sh b/pkgs/development/python-modules/generic/wrap.sh
index d42be1469552b..6b02369927b77 100644
--- a/pkgs/development/python-modules/generic/wrap.sh
+++ b/pkgs/development/python-modules/generic/wrap.sh
@@ -37,7 +37,7 @@ _addToPythonPath() {
     pythonPathsSeen[$dir]=1
     addToSearchPath program_PYTHONPATH $dir/lib/@libPrefix@/site-packages
     addToSearchPath program_PATH $dir/bin
-    local prop="$dir/nix-support/propagated-build-native-inputs"
+    local prop="$dir/nix-support/propagated-native-build-inputs"
     if [ -e $prop ]; then
         local i
         for i in $(cat $prop); do
diff --git a/pkgs/development/python-modules/python-sip/default.nix b/pkgs/development/python-modules/python-sip/default.nix
index 34daf294358d4..7c1eca0274599 100644
--- a/pkgs/development/python-modules/python-sip/default.nix
+++ b/pkgs/development/python-modules/python-sip/default.nix
@@ -4,7 +4,10 @@ stdenv.mkDerivation rec {
   name = "sip-4.13.2";
   
   src = fetchurl {
-    url = "http://www.riverbankcomputing.co.uk/static/Downloads/sip4/${name}.tar.gz";
+    urls = [
+      "http://www.riverbankcomputing.co.uk/static/Downloads/sip4/${name}.tar.gz"
+      "http://pkgs.fedoraproject.org/repo/pkgs/sip/${name}.tar.gz/5a12ea8e8a09b879ed2b3817e30fbc84/${name}.tar.gz"
+    ];
     sha256 = "1gzff61bi22g6fkdg9iya4q2qfdkwxs19v4rhhf8x4bm7hszbhsb";
   };
   
diff --git a/pkgs/development/tools/analysis/valgrind/default.nix b/pkgs/development/tools/analysis/valgrind/default.nix
index c437d171aa913..e4f04623ebbd3 100644
--- a/pkgs/development/tools/analysis/valgrind/default.nix
+++ b/pkgs/development/tools/analysis/valgrind/default.nix
@@ -8,9 +8,11 @@ stdenv.mkDerivation (rec {
     sha256 = "1nsqk70ry3221sd62s4f0njcrncppszs4xxjcak13lxyfq2y0fs7";
   };
 
+  patches = [ ./glibc-2.17.patch ];
+
   # Perl is needed for `cg_annotate'.
   # GDB is needed to provide a sane default for `--db-command'.
-  buildNativeInputs = [ perl ];
+  nativeBuildInputs = [ perl ];
   buildInputs = stdenv.lib.optional (!stdenv.isDarwin) gdb;
 
   configureFlags =
diff --git a/pkgs/development/tools/analysis/valgrind/glibc-2.17.patch b/pkgs/development/tools/analysis/valgrind/glibc-2.17.patch
new file mode 100644
index 0000000000000..bee1abe71f1c6
--- /dev/null
+++ b/pkgs/development/tools/analysis/valgrind/glibc-2.17.patch
@@ -0,0 +1,78 @@
+commit 3781ac11ff374b3517011c1710ec517d52f25cd2
+Author: tom <tom@a5019735-40e9-0310-863c-91ae7b9d1cf9>
+Date:   Mon Jan 14 09:48:49 2013 +0000
+
+    Accept glibc 2.17 as valid.
+    
+    
+    git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13228 a5019735-40e9-0310-863c-91ae7b9d1cf9
+
+diff --git a/configure.in b/configure.in
+index e0fb12d..0f3b3df 100644
+--- a/configure.in
++++ b/configure.in
+@@ -906,6 +906,13 @@ case "${GLIBC_VERSION}" in
+ 	DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
+ 	DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
+ 	;;
++     2.17)
++	AC_MSG_RESULT(2.17 family)
++	AC_DEFINE([GLIBC_2_17], 1, [Define to 1 if you're using glibc 2.17.x])
++	DEFAULT_SUPP="glibc-2.X.supp ${DEFAULT_SUPP}"
++	DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
++	DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
++	;;
+      darwin)
+ 	AC_MSG_RESULT(Darwin)
+ 	AC_DEFINE([DARWIN_LIBC], 1, [Define to 1 if you're using Darwin])
+@@ -919,7 +926,7 @@ case "${GLIBC_VERSION}" in
+ 
+      *)
+ 	AC_MSG_RESULT([unsupported version ${GLIBC_VERSION}])
+-	AC_MSG_ERROR([Valgrind requires glibc version 2.2 - 2.16])
++	AC_MSG_ERROR([Valgrind requires glibc version 2.2 - 2.17])
+ 	AC_MSG_ERROR([or Darwin libc])
+ 	;;
+ esac
+diff -ur valgrind-3.8.1/config.h.in valgrind-3.8.1/config.h.in
+--- valgrind-3.8.1/config.h.in	2013-01-16 17:15:33.531018561 +0100
++++ valgrind-3.8.1/config.h.in	2013-01-16 17:19:21.000000000 +0100
+@@ -48,6 +48,9 @@
+ /* Define to 1 if you're using glibc 2.16.x */
+ #undef GLIBC_2_16
+ 
++/* Define to 1 if you're using glibc 2.17.x */
++#undef GLIBC_2_17
++
+ /* Define to 1 if you're using glibc 2.2.x */
+ #undef GLIBC_2_2
+ 
+diff -ur valgrind-3.8.1/configure valgrind-3.8.1/configure
+--- valgrind-3.8.1/configure	2013-01-16 17:15:33.563018480 +0100
++++ valgrind-3.8.1/configure	2013-01-16 17:19:21.373643238 +0100
+@@ -6610,6 +6610,16 @@
+ 	DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
+ 	DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
+ 	;;
++     2.17)
++	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: 2.17 family" >&5
++$as_echo "2.17 family" >&6; }
++
++$as_echo "#define GLIBC_2_17 1" >>confdefs.h
++
++	DEFAULT_SUPP="glibc-2.X.supp ${DEFAULT_SUPP}"
++	DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
++	DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
++	;;
+      darwin)
+ 	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: Darwin" >&5
+ $as_echo "Darwin" >&6; }
+@@ -6630,7 +6640,7 @@
+      *)
+ 	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported version ${GLIBC_VERSION}" >&5
+ $as_echo "unsupported version ${GLIBC_VERSION}" >&6; }
+-	as_fn_error "Valgrind requires glibc version 2.2 - 2.16" "$LINENO" 5
++	as_fn_error "Valgrind requires glibc version 2.2 - 2.17" "$LINENO" 5
+ 	as_fn_error "or Darwin libc" "$LINENO" 5
+ 	;;
+ esac
diff --git a/pkgs/development/tools/build-managers/cmake/setup-hook.sh b/pkgs/development/tools/build-managers/cmake/setup-hook.sh
index 32e0b76f608a4..0a47ee6aa990f 100755
--- a/pkgs/development/tools/build-managers/cmake/setup-hook.sh
+++ b/pkgs/development/tools/build-managers/cmake/setup-hook.sh
@@ -47,7 +47,7 @@ cmakeConfigurePhase() {
     eval "$postConfigure"
 }
 
-if [ -z "$dontUseCmakeConfigure" ]; then
+if [ -z "$dontUseCmakeConfigure" -a ! -v configurePhase ]; then
     configurePhase=cmakeConfigurePhase
 fi
 
diff --git a/pkgs/development/tools/documentation/doxygen/1.7.nix b/pkgs/development/tools/documentation/doxygen/1.7.nix
index 86f2e8cf2b2eb..f530ed70e37f9 100644
--- a/pkgs/development/tools/documentation/doxygen/1.7.nix
+++ b/pkgs/development/tools/documentation/doxygen/1.7.nix
@@ -47,6 +47,6 @@ stdenv.mkDerivation {
     '';
 
     maintainers = [stdenv.lib.maintainers.simons];
-    platforms = if (qt4 != null) then stdenv.lib.platforms.linux else stdenv.lib.platforms.unix;
+    platforms = if qt4 != null then stdenv.lib.platforms.linux else stdenv.lib.platforms.unix;
   };
 }
diff --git a/pkgs/development/tools/documentation/doxygen/default.nix b/pkgs/development/tools/documentation/doxygen/default.nix
index 07893987bbf80..047da44a7937f 100644
--- a/pkgs/development/tools/documentation/doxygen/default.nix
+++ b/pkgs/development/tools/documentation/doxygen/default.nix
@@ -47,6 +47,6 @@ stdenv.mkDerivation {
     '';
 
     maintainers = [stdenv.lib.maintainers.simons];
-    platforms = if (qt4 != null) then stdenv.lib.platforms.linux else stdenv.lib.platforms.unix;
+    platforms = if qt4 != null then stdenv.lib.platforms.linux else stdenv.lib.platforms.unix;
   };
 }
diff --git a/pkgs/development/tools/documentation/gnome-doc-utils/default.nix b/pkgs/development/tools/documentation/gnome-doc-utils/default.nix
index ad1be72657829..374002e8d6ca6 100644
--- a/pkgs/development/tools/documentation/gnome-doc-utils/default.nix
+++ b/pkgs/development/tools/documentation/gnome-doc-utils/default.nix
@@ -14,5 +14,5 @@ stdenv.mkDerivation {
   pythonPath = [ libxml2Python ];
   postInstall = "wrapPythonPrograms";
 
-  buildNativeInputs = [ pkgconfig intltool pythonPackages.wrapPython ];
+  nativeBuildInputs = [ pkgconfig intltool pythonPackages.wrapPython ];
 }
diff --git a/pkgs/development/tools/haskell/BNFC/default.nix b/pkgs/development/tools/haskell/BNFC/default.nix
index c6cbc4a53587a..3cb85b86acbdb 100644
--- a/pkgs/development/tools/haskell/BNFC/default.nix
+++ b/pkgs/development/tools/haskell/BNFC/default.nix
@@ -1,4 +1,4 @@
-{ cabal, mtl }:
+{ cabal, mtl, fetchurl }:
 
 cabal.mkDerivation (self: {
   pname = "BNFC";
@@ -7,6 +7,8 @@ cabal.mkDerivation (self: {
   isLibrary = true;
   isExecutable = true;
   buildDepends = [ mtl ];
+  patches = [ (fetchurl { url = "https://github.com/BNFC/bnfc/pull/3.patch"; sha256 = "103l04ylzswgxrmpv5zy6dd0jyr96z21mdkpgk1z4prvn8wjl624"; }) ];
+  patchFlags = "-p2";
   meta = {
     homepage = "http://bnfc.digitalgrammars.com/";
     description = "A compiler front-end generator";
diff --git a/pkgs/development/tools/misc/automake/automake-1.11.x.nix b/pkgs/development/tools/misc/automake/automake-1.11.x.nix
index 7c9d06baa5436..91c27deb8b825 100644
--- a/pkgs/development/tools/misc/automake/automake-1.11.x.nix
+++ b/pkgs/development/tools/misc/automake/automake-1.11.x.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchurl, perl, autoconf, makeWrapper, doCheck ? true}:
+{ stdenv, fetchurl, perl, autoconf, makeWrapper }:
 
 stdenv.mkDerivation rec {
   name = "automake-1.11.6";
@@ -19,8 +19,6 @@ stdenv.mkDerivation rec {
 
   buildInputs = [perl autoconf makeWrapper];
 
-  inherit doCheck;
-
   # Disable indented log output from Make, otherwise "make.test" will
   # fail.
   preCheck = "unset NIX_INDENT_MAKE";
diff --git a/pkgs/development/tools/misc/automake/automake-1.12.x.nix b/pkgs/development/tools/misc/automake/automake-1.12.x.nix
index e2db84d2fc348..bd609c4a40d3b 100644
--- a/pkgs/development/tools/misc/automake/automake-1.12.x.nix
+++ b/pkgs/development/tools/misc/automake/automake-1.12.x.nix
@@ -1,7 +1,7 @@
-{stdenv, fetchurl, perl, autoconf, makeWrapper, doCheck ? true}:
+{ stdenv, fetchurl, perl, autoconf, makeWrapper, doCheck ? false }:
 
 stdenv.mkDerivation rec {
-  name = "automake-1.12.2";
+  name = "automake-1.12.4";
 
   # TODO: Remove the `aclocal' wrapper when $ACLOCAL_PATH support is
   # available upstream; see
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "mirror://gnu/automake/${name}.tar.xz";
-    sha256 = "5fb56e918189b377a22368e19baaf70252bd85a9969ed5f8a8373f49e8faf07f";
+    sha256 = "0wppdm0wfizs6nmiwlkigcmh2pn33dywdkl7b407j3pvwn622vsi";
   };
 
   buildInputs = [perl autoconf makeWrapper];
diff --git a/pkgs/development/tools/misc/binutils/default.nix b/pkgs/development/tools/misc/binutils/default.nix
index 353cd9f40bce0..c3f9de4bc898d 100644
--- a/pkgs/development/tools/misc/binutils/default.nix
+++ b/pkgs/development/tools/misc/binutils/default.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl, noSysDirs, zlib, cross ? null, gold ? false, bison ? null, flex2535 ? null, bc ? null, dejagnu ? null }:
 
-let basename = "binutils-2.21.1a"; in
+let basename = "binutils-2.23.1"; in
 stdenv.mkDerivation rec {
   name = basename + stdenv.lib.optionalString (cross != null) "-${cross.config}";
 
   src = fetchurl {
     url = "mirror://gnu/binutils/${basename}.tar.bz2";
-    sha256 = "0m7nmd7gc9d9md43wbrv65hz6lbi2crqwryzpigv19ray1lzmv6d";
+    sha256 = "06bs5v5ndb4g5qx96d52lc818gkbskd1m0sz57314v887sqfbcia";
   };
 
   patches = [
@@ -14,6 +14,11 @@ stdenv.mkDerivation rec {
     # RUNPATH instead of RPATH on binaries.  This is important because
     # RUNPATH can be overriden using LD_LIBRARY_PATH at runtime.
     ./new-dtags.patch
+
+    # Since binutils 2.22, DT_NEEDED flags aren't copied for dynamic outputs.
+    # That requires upstream changes for things to work. So we can patch it to
+    # get the old behaviour by now.
+    ./dtneeded.patch
   ];
 
   buildInputs =
diff --git a/pkgs/development/tools/misc/binutils/dtneeded.patch b/pkgs/development/tools/misc/binutils/dtneeded.patch
new file mode 100644
index 0000000000000..3754ec569eecb
--- /dev/null
+++ b/pkgs/development/tools/misc/binutils/dtneeded.patch
@@ -0,0 +1,12 @@
+diff --git a/ld/ldmain.c b/ld/ldmain.c
+index 15f8ebf..f71241e 100644
+--- a/ld/ldmain.c
++++ b/ld/ldmain.c
+@@ -298,6 +298,7 @@ main (int argc, char **argv)
+   lang_init ();
+   ldemul_before_parse ();
+   lang_has_input_file = FALSE;
++  input_flags.add_DT_NEEDED_for_dynamic = TRUE;
+   parse_args (argc, argv);
+ 
+   if (config.hash_table_size != 0)
diff --git a/pkgs/development/tools/misc/cscope/default.nix b/pkgs/development/tools/misc/cscope/default.nix
index b9d2c10f5371c..3a83b1ba32516 100644
--- a/pkgs/development/tools/misc/cscope/default.nix
+++ b/pkgs/development/tools/misc/cscope/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
   configureFlags = "--with-ncurses=${ncurses}";
 
   buildInputs = [ ncurses ];
-  buildNativeInputs = [ pkgconfig emacs ];
+  nativeBuildInputs = [ pkgconfig emacs ];
 
   postInstall = ''
     # Install Emacs mode.
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
 
   crossAttrs = {
     postInstall = "";
-    propagatedBuildInputs = [ ncurses.hostDrv ];
+    propagatedBuildInputs = [ ncurses.crossDrv ];
   };
 
   meta = {
diff --git a/pkgs/development/tools/misc/elfutils/default.nix b/pkgs/development/tools/misc/elfutils/default.nix
index 61b4647552d55..5a1a19068a7e4 100644
--- a/pkgs/development/tools/misc/elfutils/default.nix
+++ b/pkgs/development/tools/misc/elfutils/default.nix
@@ -21,14 +21,14 @@ stdenv.mkDerivation rec {
 
   # We need bzip2 in NativeInputs because otherwise we can't unpack the src,
   # as the host-bzip2 will be in the path.
-  buildNativeInputs = [m4 bison flex gettext bzip2];
+  nativeBuildInputs = [m4 bison flex gettext bzip2];
   buildInputs = [zlib bzip2];
 
   crossAttrs = {
 
     /* Having bzip2 will harm, because anything using elfutils 
        as buildInput cross-building, will not be able to run 'bzip2' */
-    propagatedBuildInputs = [ zlib.hostDrv ];
+    propagatedBuildInputs = [ zlib.crossDrv ];
 
     # This program does not cross-build fine. So I only cross-build some parts
     # I need for the linux perf tool.
diff --git a/pkgs/development/tools/misc/gdb/default.nix b/pkgs/development/tools/misc/gdb/default.nix
index 43ec8dec9f58e..a9b3dec50923d 100644
--- a/pkgs/development/tools/misc/gdb/default.nix
+++ b/pkgs/development/tools/misc/gdb/default.nix
@@ -11,8 +11,8 @@ let
   basename = "gdb-7.5.1";
 
   # Whether (cross-)building for GNU/Hurd.  This is an approximation since
-  # having `stdenv ? cross' doesn't tell us if we're building `hostDrv' and
-  # `buildDrv'.
+  # having `stdenv ? cross' doesn't tell us if we're building `crossDrv' and
+  # `nativeDrv'.
   isGNU =
       stdenv.system == "i686-gnu"
       || (stdenv ? cross && stdenv.cross.config == "i586-pc-gnu");
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
 
   # I think python is not a native input, but I leave it
   # here while I will not need it cross building
-  buildNativeInputs = [ texinfo python ]
+  nativeBuildInputs = [ texinfo python ]
     ++ stdenv.lib.optional isGNU mig;
 
   buildInputs = [ ncurses readline gmp mpfr expat ]
@@ -51,8 +51,8 @@ stdenv.mkDerivation rec {
   crossAttrs = {
     # Do not add --with-python here to avoid cross building it.
     configureFlags =
-      '' --with-gmp=${gmp.hostDrv} --with-mpfr=${mpfr.hostDrv} --with-system-readline
-         --with-expat --with-libexpat-prefix=${expat.hostDrv} --without-python
+      '' --with-gmp=${gmp.crossDrv} --with-mpfr=${mpfr.crossDrv} --with-system-readline
+         --with-expat --with-libexpat-prefix=${expat.crossDrv} --without-python
       '' + stdenv.lib.optionalString (target != null)
          " --target=${target.config}";
   };
diff --git a/pkgs/development/tools/misc/gnum4/default.nix b/pkgs/development/tools/misc/gnum4/default.nix
index 1f026f12f523e..d1b0d0e376edc 100644
--- a/pkgs/development/tools/misc/gnum4/default.nix
+++ b/pkgs/development/tools/misc/gnum4/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation {
     && !stdenv.isSunOS;                    # XXX: `test-setlocale2.sh' fails
 
   # Upstream is aware of it; it may be in the next release.
-  patches = [ ./s_isdir.patch ./readlink-EINVAL.patch ];
+  patches = [ ./s_isdir.patch ./readlink-EINVAL.patch ./no-gets.patch ];
 
   meta = {
     homepage = http://www.gnu.org/software/m4/;
diff --git a/pkgs/development/tools/misc/gnum4/no-gets.patch b/pkgs/development/tools/misc/gnum4/no-gets.patch
new file mode 100644
index 0000000000000..456c08b56c34e
--- /dev/null
+++ b/pkgs/development/tools/misc/gnum4/no-gets.patch
@@ -0,0 +1,26 @@
+http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/sys-devel/m4/files/m4-1.4.16-no-gets.patch?revision=1.1
+
+https://bugs.gentoo.org/424978
+
+hack until m4 pulls a newer gnulib version
+
+From 66712c23388e93e5c518ebc8515140fa0c807348 Mon Sep 17 00:00:00 2001
+From: Eric Blake <eblake@redhat.com>
+Date: Thu, 29 Mar 2012 13:30:41 -0600
+Subject: [PATCH] stdio: don't assume gets any more
+
+Gnulib intentionally does not have a gets module, and now that C11
+and glibc have dropped it, we should be more proactive about warning
+any user on a platform that still has a declaration of this dangerous
+interface.
+
+--- a/lib/stdio.in.h
++++ b/lib/stdio.in.h
+@@ -125,7 +125,6 @@
+    so any use of gets warrants an unconditional warning.  Assume it is
+    always declared, since it is required by C89.  */
+ #undef gets
+-_GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
+ 
+ #if @GNULIB_FOPEN@
+ # if @REPLACE_FOPEN@
diff --git a/pkgs/development/tools/misc/libtool/libtool2.nix b/pkgs/development/tools/misc/libtool/libtool2.nix
index 403381af48514..4c3500c65a24c 100644
--- a/pkgs/development/tools/misc/libtool/libtool2.nix
+++ b/pkgs/development/tools/misc/libtool/libtool2.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation (rec {
     sha256 = "0649qfpzkswgcj9vqkkr9rn4nlcx80faxpyqscy2k1x9c94f93dk";
   };
 
-  buildNativeInputs = [ lzma m4 perl ];
+  nativeBuildInputs = [ lzma m4 perl ];
 
   # Don't fixup "#! /bin/sh" in Libtool, otherwise it will use the
   # "fixed" path in generated files!
diff --git a/pkgs/development/tools/misc/strace/default.nix b/pkgs/development/tools/misc/strace/default.nix
index 3589ffb5a0703..d5bb2b06e12c0 100644
--- a/pkgs/development/tools/misc/strace/default.nix
+++ b/pkgs/development/tools/misc/strace/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
     sha256 = "158iwk0pl2mfw93m1843xb7a2zb8p6lh0qim07rca6f1ff4dk764";
   };
 
-  buildNativeInputs = [ perl ];
+  nativeBuildInputs = [ perl ];
 
   meta = {
     homepage = http://strace.sourceforge.net/;
diff --git a/pkgs/development/tools/misc/texinfo/default.nix b/pkgs/development/tools/misc/texinfo/4.13a.nix
index 111f2d1420080..9a41d2963424a 100644
--- a/pkgs/development/tools/misc/texinfo/default.nix
+++ b/pkgs/development/tools/misc/texinfo/4.13a.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = [ ncurses ];
-  buildNativeInputs = [ lzma ];
+  nativeBuildInputs = [ lzma ];
 
   # Disabled because we don't have zdiff in the stdenv bootstrap.
   #doCheck = true;
diff --git a/pkgs/development/tools/misc/texinfo/5.0.nix b/pkgs/development/tools/misc/texinfo/5.0.nix
new file mode 100644
index 0000000000000..a4fb2e9b46880
--- /dev/null
+++ b/pkgs/development/tools/misc/texinfo/5.0.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchurl, ncurses, perl }:
+
+stdenv.mkDerivation rec {
+  name = "texinfo-5.0";
+
+  src = fetchurl {
+    url = "mirror://gnu/texinfo/${name}.tar.xz";
+    sha256 = "1p34f68h9ggfj6ckgj0p62qlj7pmz3ha3vc91kh4hr44pnwm1pla";
+  };
+
+  buildInputs = [ ncurses perl ];
+
+  doCheck = true;
+
+  meta = {
+    homepage = "http://www.gnu.org/software/texinfo/";
+    description = "GNU Texinfo, the GNU documentation system";
+    license = stdenv.lib.licenses.gpl3Plus;
+
+    longDescription = ''
+      Texinfo is the official documentation format of the GNU project.
+      It was invented by Richard Stallman and Bob Chassell many years
+      ago, loosely based on Brian Reid's Scribe and other formatting
+      languages of the time.  It is used by many non-GNU projects as
+      well.
+
+      Texinfo uses a single source file to produce output in a number
+      of formats, both online and printed (dvi, html, info, pdf, xml,
+      etc.).  This means that instead of writing different documents
+      for online information and another for a printed manual, you
+      need write only one document.  And when the work is revised, you
+      need revise only that one document.  The Texinfo system is
+      well-integrated with GNU Emacs.
+    '';
+  };
+}
diff --git a/pkgs/development/tools/misc/xxdiff/default.nix b/pkgs/development/tools/misc/xxdiff/default.nix
index 1a44cd4bcbf70..461c602a88668 100644
--- a/pkgs/development/tools/misc/xxdiff/default.nix
+++ b/pkgs/development/tools/misc/xxdiff/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation {
     sha256 = "7ae7d81becc25b1adabc9383bb5b9005dddb31510cdc404ce8a0d6ff6c3dc47e";
   };
 
-  buildNativeInputs = [ flex bison qt4 ];
+  nativeBuildInputs = [ flex bison qt4 ];
 
   buildInputs = [ qt4 ];
 
diff --git a/pkgs/development/tools/parsing/bison/bison-1.875.nix b/pkgs/development/tools/parsing/bison/bison-1.875.nix
deleted file mode 100644
index 3ee12a252cec6..0000000000000
--- a/pkgs/development/tools/parsing/bison/bison-1.875.nix
+++ /dev/null
@@ -1,13 +0,0 @@
-{stdenv, fetchurl, m4}:
-
-assert m4 != null;
-
-stdenv.mkDerivation {
-  name = "bison-1.875";
-  src = fetchurl {
-    url = mirror://gnu/bison/bison-1.875.tar.bz2;
-    md5 = "b7f8027b249ebd4dd0cc948943a71af0";
-  };
-  buildInputs = [m4];
-  passthru = { glrSupport = true; };
-}
diff --git a/pkgs/development/tools/parsing/bison/bison-2.3.nix b/pkgs/development/tools/parsing/bison/bison-2.3.nix
deleted file mode 100644
index fcf4ed1079591..0000000000000
--- a/pkgs/development/tools/parsing/bison/bison-2.3.nix
+++ /dev/null
@@ -1,38 +0,0 @@
-{stdenv, fetchurl, m4}:
-
-assert m4 != null;
-
-stdenv.mkDerivation {
-  name = "bison-2.3";
-  src = fetchurl {
-    url = mirror://gnu/bison/bison-2.3.tar.bz2;
-    md5 = "c18640c6ec31a169d351e3117ecce3ec";
-  };
-
-  buildNativeInputs = [m4];
-  propagatedBuildInputs = [m4];
-
-  meta = {
-    description = "GNU Bison, a Yacc-compatible parser generator";
-
-    longDescription = ''
-      Bison is a general-purpose parser generator that converts an
-      annotated context-free grammar into an LALR(1) or GLR parser for
-      that grammar.  Once you are proficient with Bison, you can use
-      it to develop a wide range of language parsers, from those used
-      in simple desk calculators to complex programming languages.
-
-      Bison is upward compatible with Yacc: all properly-written Yacc
-      grammars ought to work with Bison with no change.  Anyone
-      familiar with Yacc should be able to use Bison with little
-      trouble.  You need to be fluent in C or C++ programming in order
-      to use Bison.
-    '';
-
-    homepage = http://www.gnu.org/software/bison/;
-
-    license = "GPLv2+";
-  };
- 
-  passthru = { glrSupport = true; };
-}
diff --git a/pkgs/development/tools/parsing/bison/bison-2.4.nix b/pkgs/development/tools/parsing/bison/bison-2.4.nix
deleted file mode 100644
index a79a5e96381e6..0000000000000
--- a/pkgs/development/tools/parsing/bison/bison-2.4.nix
+++ /dev/null
@@ -1,40 +0,0 @@
-{stdenv, fetchurl, m4}:
-
-stdenv.mkDerivation rec {
-  name = "bison-2.4.3";
-
-  src = fetchurl {
-    url = "mirror://gnu/bison/${name}.tar.bz2";
-    sha256 = "019s3pdzggb71g7p7dgajhh53gh0h6nfl4yrzrs0jzsc37ph4lwk";
-  };
-
-  buildNativeInputs = [m4];
-
-  doCheck = true;
-
-  meta = {
-    description = "GNU Bison, a Yacc-compatible parser generator";
-
-    longDescription = ''
-      Bison is a general-purpose parser generator that converts an
-      annotated context-free grammar into an LALR(1) or GLR parser for
-      that grammar.  Once you are proficient with Bison, you can use
-      it to develop a wide range of language parsers, from those used
-      in simple desk calculators to complex programming languages.
-
-      Bison is upward compatible with Yacc: all properly-written Yacc
-      grammars ought to work with Bison with no change.  Anyone
-      familiar with Yacc should be able to use Bison with little
-      trouble.  You need to be fluent in C or C++ programming in order
-      to use Bison.
-    '';
-
-    homepage = http://www.gnu.org/software/bison/;
-
-    license = "GPLv3+";
-
-    maintainers = [ stdenv.lib.maintainers.ludo ];
-  };
-
-  passthru = { glrSupport = true; };
-}
diff --git a/pkgs/development/tools/parsing/bison/bison-2.5.nix b/pkgs/development/tools/parsing/bison/bison-2.5.nix
deleted file mode 100644
index ea50b85902044..0000000000000
--- a/pkgs/development/tools/parsing/bison/bison-2.5.nix
+++ /dev/null
@@ -1,44 +0,0 @@
-{ stdenv, fetchurl, m4, perl }:
-
-stdenv.mkDerivation rec {
-  name = "bison-2.5";
-
-  src = fetchurl {
-    url = "mirror://gnu/bison/${name}.tar.bz2";
-    sha256 = "1f1rai3v6k6xjii94964iq0alhc2hxwapqa363nfj8rbxvv0sdqa";
-  };
-
-  buildNativeInputs = [ m4 ]
-    ++ stdenv.lib.optional doCheck perl;
-  propagatedBuildInputs = [ m4 ];
-
-  M4 = "${m4}/bin/m4";
-
-  doCheck = true;
-
-  meta = {
-    description = "GNU Bison, a Yacc-compatible parser generator";
-
-    longDescription = ''
-      Bison is a general-purpose parser generator that converts an
-      annotated context-free grammar into an LALR(1) or GLR parser for
-      that grammar.  Once you are proficient with Bison, you can use
-      it to develop a wide range of language parsers, from those used
-      in simple desk calculators to complex programming languages.
-
-      Bison is upward compatible with Yacc: all properly-written Yacc
-      grammars ought to work with Bison with no change.  Anyone
-      familiar with Yacc should be able to use Bison with little
-      trouble.  You need to be fluent in C or C++ programming in order
-      to use Bison.
-    '';
-
-    homepage = http://www.gnu.org/software/bison/;
-
-    license = "GPLv3+";
-
-    maintainers = [ stdenv.lib.maintainers.ludo ];
-  };
-
-  passthru = { glrSupport = true; };
-}
diff --git a/pkgs/development/tools/parsing/bison/bison-2.6.nix b/pkgs/development/tools/parsing/bison/default.nix
index ea43d30410e3d..b397a22443a73 100644
--- a/pkgs/development/tools/parsing/bison/bison-2.6.nix
+++ b/pkgs/development/tools/parsing/bison/default.nix
@@ -1,14 +1,14 @@
 { stdenv, fetchurl, m4, perl }:
 
 stdenv.mkDerivation rec {
-  name = "bison-2.6.2";
+  name = "bison-2.6.5";
 
   src = fetchurl {
     url = "mirror://gnu/bison/${name}.tar.xz";
-    sha256 = "79503f80397c30ac81b62eca5ffeaccaed72fdfeddb76257efcf8c3ca24be03d";
+    sha256 = "8640d5b51aad462db6863711f333a9159836853e0b1e79fdef708c6efb5cd52b";
   };
 
-  buildNativeInputs = [ m4 ] ++ stdenv.lib.optional doCheck perl;
+  nativeBuildInputs = [ m4 ] ++ stdenv.lib.optional doCheck perl;
   propagatedBuildInputs = [ m4 ];
 
   doCheck = true;
diff --git a/pkgs/development/tools/parsing/flex/flex-2.5.35.nix b/pkgs/development/tools/parsing/flex/flex-2.5.35.nix
index 66ece227c9245..21180e7d185ef 100644
--- a/pkgs/development/tools/parsing/flex/flex-2.5.35.nix
+++ b/pkgs/development/tools/parsing/flex/flex-2.5.35.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation {
     sha256 = "0ysff249mwhq0053bw3hxh58djc0gy7vjan2z1krrf9n5d5vvv0b";
   };
   buildInputs = [yacc];
-  propagatedBuildNativeInputs = [m4];
+  propagatedNativeBuildInputs = [m4];
 
   crossAttrs = {
     preConfigure = ''
diff --git a/pkgs/development/tools/phantomjs/default.nix b/pkgs/development/tools/phantomjs/default.nix
index 33b99e12de554..5d9433cc5ca69 100644
--- a/pkgs/development/tools/phantomjs/default.nix
+++ b/pkgs/development/tools/phantomjs/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
             sha256 = "1m14czhi3b388didn0a881glsx8bnsg9gnxgj5lghr4l5mgqyrd7";
           };
 
-  buildNativeInputs = stdenv.lib.optional (stdenv.system == "x86_64-linux") upx;
+  nativeBuildInputs = stdenv.lib.optional (stdenv.system == "x86_64-linux") upx;
 
   buildPhase = stdenv.lib.optionalString (stdenv.system == "x86_64-linux") ''
     upx -d bin/phantomjs
diff --git a/pkgs/development/web/nodejs/build-node-package.nix b/pkgs/development/web/nodejs/build-node-package.nix
index 95d10db167f15..e90e9446846c6 100644
--- a/pkgs/development/web/nodejs/build-node-package.nix
+++ b/pkgs/development/web/nodejs/build-node-package.nix
@@ -30,7 +30,7 @@ stdenv.mkDerivation ({
     runHook postBuild
   '';
 
-  buildNativeInputs = neededNatives;
+  nativeBuildInputs = neededNatives;
 
   installPhase = ''
     runHook preInstall