nixpkgs/pkgs/development/libraries/glibc-2.5/builder.sh
Peter Simons 7534cbe4b8 Define "brokenRedHatKernel = true" in $NIXPKGS_CONFIG to build a system that
works on Red Hat Linux, i.e. that is based on glibc version 2.5.

Furthermore, this patch fixes a number of gcc 4.3.3 build errors in glibc 2.5
that occur on both x86 and x86_64. The older version of this library is still
useful for running Nix on a Red Hat host. Newer version of glibc fail to detect
the kernel's capabilities correctly (due to mad patches applied to the kernel
by Red Hat).

The individual changes are:

 * Re-activated glibc 2.5 in all-packages.nix.

 * Fix incomplete header search path in bootstrap tools.

   Gcc-wrapper sets "-B<prefix>" to tell the compiler about its installation
   root. Unfortunately, the setting doesn't add $gcc/lib/gcc/*/*/include-fixed
   to the search path. That directory is required, however, because it contains
   the system-specific "limits.h" file, and the glibc 2.5 builds tries to find
   that file via #include_next.

 * Support intrinsic functions like __signbit() or atof() correctly to avoid
   compile-time conflicts.

 * Switch to NPTL. Linuxthreads is no longer supported.

 * Added a meta attribute to glibc package.

 * Updated nixUnstable to version 0.13pre15614 from trunk. The previous version
   failed regression tests.

 * Fix more strict type checking in binutils since 2.18.50.0.3.

   Without this patch, the build failed on x86, saying:

     ../sysdeps/i386/fpu/ftestexcept.c: Assembler messages:
     ../sysdeps/i386/fpu/ftestexcept.c:33: Error: suffix or operands invalid for `fnstsw'

svn path=/nixpkgs/branches/stdenv-updates/; revision=16037
2009-06-24 20:10:51 +00:00

54 lines
1.1 KiB
Bash

# 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
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 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