moving builder.sh hooks into nix
This commit is contained in:
parent
78f7933829
commit
0265285b96
@ -1,58 +0,0 @@
|
|||||||
# Glibc cannot have itself in its RPATH.
|
|
||||||
export NIX_NO_SELF_RPATH=1
|
|
||||||
|
|
||||||
source $stdenv/setup
|
|
||||||
|
|
||||||
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
|
|
||||||
|
|
||||||
# Apparently --bindir is not respected.
|
|
||||||
makeFlagsArray+=("bindir=$bin/bin" "sbindir=$bin/sbin" "rootsbindir=$bin/sbin")
|
|
||||||
}
|
|
||||||
|
|
||||||
postInstall() {
|
|
||||||
if test -n "$installLocales"; then
|
|
||||||
make -j${NIX_BUILD_CORES:-1} -l${NIX_BUILD_CORES:-1} localedata/install-locales
|
|
||||||
fi
|
|
||||||
|
|
||||||
test -f $out/etc/ld.so.cache && rm $out/etc/ld.so.cache
|
|
||||||
|
|
||||||
if test -n "$linuxHeaders"; then
|
|
||||||
# Include the Linux kernel headers in Glibc, except the `scsi'
|
|
||||||
# subdirectory, which Glibc provides itself.
|
|
||||||
(cd $dev/include && \
|
|
||||||
ln -sv $(ls -d $linuxHeaders/include/* | grep -v 'scsi$') .)
|
|
||||||
fi
|
|
||||||
|
|
||||||
# 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
|
|
||||||
|
|
||||||
# Get rid of more unnecessary stuff.
|
|
||||||
rm -rf $out/var $out/sbin/sln
|
|
||||||
|
|
||||||
for i in $out/lib/*.a; do
|
|
||||||
strip -S "$i"
|
|
||||||
done
|
|
||||||
# Put libraries for static linking in a separate output. Note
|
|
||||||
# that libc_nonshared.a and libpthread_nonshared.a are required
|
|
||||||
# for dynamically-linked applications.
|
|
||||||
mkdir -p $static/lib
|
|
||||||
mv $out/lib/*.a $static/lib
|
|
||||||
mv $static/lib/lib*_nonshared.a $out/lib
|
|
||||||
|
|
||||||
# Work around a Nix bug: hard links across outputs cause a build failure.
|
|
||||||
cp $bin/bin/getconf $bin/bin/getconf_
|
|
||||||
mv $bin/bin/getconf_ $bin/bin/getconf
|
|
||||||
}
|
|
||||||
|
|
||||||
genericBuild
|
|
@ -17,7 +17,21 @@ in
|
|||||||
inherit lib stdenv fetchurl linuxHeaders installLocales
|
inherit lib stdenv fetchurl linuxHeaders installLocales
|
||||||
profilingLibraries gccCross withGd gd libpng;
|
profilingLibraries gccCross withGd gd libpng;
|
||||||
|
|
||||||
builder = ./builder.sh;
|
NIX_NO_SELF_RPATH = true;
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
# Apparently --bindir is not respected.
|
||||||
|
makeFlagsArray+=("bindir=$bin/bin" "sbindir=$bin/sbin" "rootsbindir=$bin/sbin")
|
||||||
|
'';
|
||||||
|
|
||||||
# When building glibc from bootstrap-tools, we need libgcc_s at RPATH for
|
# When building glibc from bootstrap-tools, we need libgcc_s at RPATH for
|
||||||
# any program we run, because the gcc will have been placed at a new
|
# any program we run, because the gcc will have been placed at a new
|
||||||
@ -35,6 +49,44 @@ in
|
|||||||
fi
|
fi
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
postInstall = ''
|
||||||
|
if test -n "$installLocales"; then
|
||||||
|
make -j''${NIX_BUILD_CORES:-1} -l''${NIX_BUILD_CORES:-1} localedata/install-locales
|
||||||
|
fi
|
||||||
|
|
||||||
|
test -f $out/etc/ld.so.cache && rm $out/etc/ld.so.cache
|
||||||
|
|
||||||
|
if test -n "$linuxHeaders"; then
|
||||||
|
# Include the Linux kernel headers in Glibc, except the `scsi'
|
||||||
|
# subdirectory, which Glibc provides itself.
|
||||||
|
(cd $dev/include && \
|
||||||
|
ln -sv $(ls -d $linuxHeaders/include/* | grep -v scsi\$) .)
|
||||||
|
fi
|
||||||
|
|
||||||
|
# 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
|
||||||
|
|
||||||
|
# Get rid of more unnecessary stuff.
|
||||||
|
rm -rf $out/var $out/sbin/sln
|
||||||
|
|
||||||
|
for i in $out/lib/*.a; do
|
||||||
|
strip -S "$i"
|
||||||
|
done
|
||||||
|
# Put libraries for static linking in a separate output. Note
|
||||||
|
# that libc_nonshared.a and libpthread_nonshared.a are required
|
||||||
|
# for dynamically-linked applications.
|
||||||
|
mkdir -p $static/lib
|
||||||
|
mv $out/lib/*.a $static/lib
|
||||||
|
mv $static/lib/lib*_nonshared.a $out/lib
|
||||||
|
|
||||||
|
# Work around a Nix bug: hard links across outputs cause a build failure.
|
||||||
|
cp $bin/bin/getconf $bin/bin/getconf_
|
||||||
|
mv $bin/bin/getconf_ $bin/bin/getconf
|
||||||
|
'';
|
||||||
|
|
||||||
separateDebugInfo = true;
|
separateDebugInfo = true;
|
||||||
|
|
||||||
meta.description = "The GNU C Library";
|
meta.description = "The GNU C Library";
|
||||||
|
Loading…
x
Reference in New Issue
Block a user