e6744d0f89
this contains mostly Armijn's pure stdenv-linux. * After unpacking the statically linked GCC, patch all store paths to /nix/store/ffffffffffffffffffffffffffffffff. Ugly hack to prevent undeclared references but it works. * We don't need Glib's dynamic libraries in the first bootstrap stage; delete them. Actually the downloaded Glibc binary is only needed for building Glibc, since GCC needs a C compiler to build some programs in `configure'. So static linking is fine for that. Maybe it would be better to patch `configure' so that we don't need a pre-built Glibc at all. * Set the svn:executable property on `cp' and `patchelf'. * In Glibc, revert to LinuxThreads. Maybe NPTL will work, but TLS support is a problem. * Delete most Glibc patches; they're no longer needed since the branch updated it to 20050110. * Some cleanups. svn path=/nixpkgs/trunk/; revision=2258
62 lines
1.4 KiB
Bash
62 lines
1.4 KiB
Bash
# glibc cannot have itself in its rpath.
|
|
export NIX_NO_SELF_RPATH=1
|
|
export NIX_DONT_SET_RPATH=1
|
|
|
|
. $stdenv/setup
|
|
. $substitute
|
|
|
|
glibc=`cat $NIX_GCC/nix-support/orig-glibc`
|
|
echo $glibc
|
|
|
|
export LD_LIBRARY_PATH=$glibc/lib
|
|
|
|
# Explicitly tell glibc to use our pwd, not /bin/pwd.
|
|
export PWD_P=$(type -tP pwd)
|
|
|
|
|
|
preConfigure=preConfigure
|
|
preConfigure() {
|
|
|
|
# Use Linuxthreads instead of NPTL.
|
|
rm -rf nptl
|
|
|
|
for i in configure io/ftwtest-sh; do
|
|
substituteInPlace "$i" \
|
|
--replace "@PWD@" "pwd"
|
|
done
|
|
|
|
mkdir ../build
|
|
cd ../build
|
|
|
|
configureScript=../$sourceRoot/configure
|
|
# `--with-tls --without-__thread' enables support for TLS but
|
|
# causes it not to be used. Required if we don't want to barf on
|
|
# 2.4 kernels. Or something.
|
|
configureFlags="--enable-add-ons \
|
|
--with-headers=$kernelHeaders/include
|
|
--with-tls --without-__thread"
|
|
}
|
|
|
|
|
|
postConfigure=postConfigure
|
|
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=postInstall
|
|
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
|
|
}
|
|
|
|
|
|
genericBuild
|