about summary refs log tree commit diff
path: root/pkgs/development/libraries/glibc/builder.sh
diff options
context:
space:
mode:
authorVladimír Čunát <vcunat@gmail.com>2016-06-23 09:25:10 +0200
committerVladimír Čunát <vcunat@gmail.com>2016-06-23 09:25:10 +0200
commitaa9a04883e34f6a7b89846e87654577d5b218f46 (patch)
tree5bc2d586532b76c0248a9e3280ec7e333ef6d893 /pkgs/development/libraries/glibc/builder.sh
parent21f9180d49d1d911668620f3d8897c1e1352672a (diff)
downloadnixlib-aa9a04883e34f6a7b89846e87654577d5b218f46.tar
nixlib-aa9a04883e34f6a7b89846e87654577d5b218f46.tar.gz
nixlib-aa9a04883e34f6a7b89846e87654577d5b218f46.tar.bz2
nixlib-aa9a04883e34f6a7b89846e87654577d5b218f46.tar.lz
nixlib-aa9a04883e34f6a7b89846e87654577d5b218f46.tar.xz
nixlib-aa9a04883e34f6a7b89846e87654577d5b218f46.tar.zst
nixlib-aa9a04883e34f6a7b89846e87654577d5b218f46.zip
Revert "Merge branch 'staging'" due to glibc
The main output started to retain dependency on bootstrap-tools; see
https://github.com/NixOS/nixpkgs/pull/15867#issuecomment-227949096

This reverts commit c05d8295988697adbb920a7b4a999ae3670c5504, reversing
changes made to f073df60d60444c30c49cb26d6b187a4100b41fe.
Diffstat (limited to 'pkgs/development/libraries/glibc/builder.sh')
-rw-r--r--pkgs/development/libraries/glibc/builder.sh58
1 files changed, 58 insertions, 0 deletions
diff --git a/pkgs/development/libraries/glibc/builder.sh b/pkgs/development/libraries/glibc/builder.sh
new file mode 100644
index 000000000000..85f27c7b3559
--- /dev/null
+++ b/pkgs/development/libraries/glibc/builder.sh
@@ -0,0 +1,58 @@
+# 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