nixpkgs/pkgs/development/libraries/glibc/builder.sh
Eelco Dolstra e6744d0f89 * Merge diff between trunk/pkgs@1646 and branches/nixos-pkgs@2256;
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
2005-02-21 16:03:34 +00:00

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