summary refs log tree commit diff
path: root/pkgs/development/libraries/libgcrypt
diff options
context:
space:
mode:
authorDaiderd Jordan <daiderd@gmail.com>2017-08-05 15:20:13 +0200
committerDaiderd Jordan <daiderd@gmail.com>2017-08-05 15:20:13 +0200
commit07796ccb578e44b8545133bb7dc2a73537d94c59 (patch)
treed8b5c1d7a9d1df11559ce62d95d311f9713a00a8 /pkgs/development/libraries/libgcrypt
parenteb7312ca7d00cd4d8d424b8f79e1c37c1b4991bf (diff)
downloadnixpkgs-07796ccb578e44b8545133bb7dc2a73537d94c59.tar
nixpkgs-07796ccb578e44b8545133bb7dc2a73537d94c59.tar.gz
nixpkgs-07796ccb578e44b8545133bb7dc2a73537d94c59.tar.bz2
nixpkgs-07796ccb578e44b8545133bb7dc2a73537d94c59.tar.lz
nixpkgs-07796ccb578e44b8545133bb7dc2a73537d94c59.tar.xz
nixpkgs-07796ccb578e44b8545133bb7dc2a73537d94c59.tar.zst
nixpkgs-07796ccb578e44b8545133bb7dc2a73537d94c59.zip
libgcrypt: fix clang build
Fixes #27906

Because #pragma GCC optimize ("O0") doesn't work for clang and
NIX_CFLAGS_COMPILE bypasses the fixup done by the makefiles everything
gets compiled with -O2.
The build still uses optimisation for everything else.
Diffstat (limited to 'pkgs/development/libraries/libgcrypt')
-rw-r--r--pkgs/development/libraries/libgcrypt/default.nix12
1 files changed, 8 insertions, 4 deletions
diff --git a/pkgs/development/libraries/libgcrypt/default.nix b/pkgs/development/libraries/libgcrypt/default.nix
index ed742bee874..5bcb8c5fe98 100644
--- a/pkgs/development/libraries/libgcrypt/default.nix
+++ b/pkgs/development/libraries/libgcrypt/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, libgpgerror, enableCapabilities ? false, libcap }:
+{ stdenv, fetchurl, libgpgerror, enableCapabilities ? false, libcap }:
 
 assert enableCapabilities -> stdenv.isLinux;
 
@@ -14,9 +14,13 @@ stdenv.mkDerivation rec {
   outputs = [ "out" "dev" "info" ];
   outputBin = "dev";
 
-  buildInputs =
-    [ libgpgerror ]
-    ++ lib.optional enableCapabilities libcap;
+  # The CPU Jitter random number generator must not be compiled with
+  # optimizations and the optimize -O0 pragma only works for gcc.
+  # The build enables -O2 by default for everything else.
+  hardeningDisable = stdenv.lib.optional stdenv.cc.isClang "fortify";
+
+  buildInputs = [ libgpgerror ]
+    ++ stdenv.lib.optional enableCapabilities libcap;
 
   # Make sure libraries are correct for .pc and .la files
   # Also make sure includes are fixed for callers who don't use libgpgcrypt-config