7534cbe4b8
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
54 lines
1.1 KiB
Bash
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
|