summary refs log tree commit diff
path: root/pkgs/development/libraries
diff options
context:
space:
mode:
authorEelco Dolstra <eelco.dolstra@logicblox.com>2016-02-28 02:57:37 +0100
committerEelco Dolstra <eelco.dolstra@logicblox.com>2016-02-28 02:57:37 +0100
commitd5bb6a1f9c0c099738a37ce2e923cd71d85b5145 (patch)
treeeea5fe17f5e03cc377547879c122b1b69ea00198 /pkgs/development/libraries
parent69a337edae4d8d0dd6bd6e96468ba887509f3f0a (diff)
downloadnixpkgs-d5bb6a1f9c0c099738a37ce2e923cd71d85b5145.tar
nixpkgs-d5bb6a1f9c0c099738a37ce2e923cd71d85b5145.tar.gz
nixpkgs-d5bb6a1f9c0c099738a37ce2e923cd71d85b5145.tar.bz2
nixpkgs-d5bb6a1f9c0c099738a37ce2e923cd71d85b5145.tar.lz
nixpkgs-d5bb6a1f9c0c099738a37ce2e923cd71d85b5145.tar.xz
nixpkgs-d5bb6a1f9c0c099738a37ce2e923cd71d85b5145.tar.zst
nixpkgs-d5bb6a1f9c0c099738a37ce2e923cd71d85b5145.zip
glibc: Enable separate debug symbols
The importance of glibc makes it worthwhile to provide debug
symbols. However, this revealed an issue with separateDebugInfo: it
was indiscriminately adding --build-id to all ld invocations, while in
fact it should only do that for final links. Glibc also uses non-final
("relocatable") links, leading to subsequent failure to apply a build
ID ("Cannot create .note.gnu.build-id section, --build-id
ignored"). So now ld-wrapper.sh only passes --build-id for final
links.
Diffstat (limited to 'pkgs/development/libraries')
-rw-r--r--pkgs/development/libraries/glibc/builder.sh4
-rw-r--r--pkgs/development/libraries/glibc/default.nix19
2 files changed, 7 insertions, 16 deletions
diff --git a/pkgs/development/libraries/glibc/builder.sh b/pkgs/development/libraries/glibc/builder.sh
index d0684d6194d..d60b143a1ec 100644
--- a/pkgs/development/libraries/glibc/builder.sh
+++ b/pkgs/development/libraries/glibc/builder.sh
@@ -37,6 +37,10 @@ postInstall() {
 
     # Get rid of more unnecessary stuff.
     rm -rf $out/var $out/sbin/sln
+
+    for i in $out/lib/*.a; do
+        strip -S "$i"
+    done
 }
 
 genericBuild
diff --git a/pkgs/development/libraries/glibc/default.nix b/pkgs/development/libraries/glibc/default.nix
index 5e25c2dc8bc..2630cdb127f 100644
--- a/pkgs/development/libraries/glibc/default.nix
+++ b/pkgs/development/libraries/glibc/default.nix
@@ -2,7 +2,6 @@
 , installLocales ? true
 , profilingLibraries ? false
 , gccCross ? null
-, debugSymbols ? false
 , withGd ? false, gd ? null, libpng ? null
 }:
 
@@ -13,9 +12,7 @@ let
   cross = if gccCross != null then gccCross.target else null;
 in
   build cross ({
-    name = "glibc"
-      + lib.optionalString debugSymbols "-debug"
-      + lib.optionalString withGd "-gd";
+    name = "glibc" + lib.optionalString withGd "-gd";
 
     inherit lib stdenv fetchurl linuxHeaders installLocales
       profilingLibraries gccCross withGd gd libpng;
@@ -38,23 +35,13 @@ in
       fi
     '';
 
+    separateDebugInfo = true;
+
     meta.description = "The GNU C Library";
   }
 
   //
 
-  (if debugSymbols
-   then {
-     # Build with debugging symbols, but leave optimizations on and don't
-     # attempt to keep the build tree.
-     dontStrip = true;
-     dontCrossStrip = true;
-     NIX_STRIP_DEBUG = 0;
-   }
-   else {})
-
-  //
-
   (if cross != null
    then {
       preConfigure = ''