@ -1,40 +1,63 @@
{ stdenv , fetchFromGitHub , fetchpatch , callPackage , gnat11 , zlib , llvm , lib
, backend ? " m c o d e " } :
{ stdenv
, fetchFromGitHub
, fetchpatch
, callPackage
, gnat
, zlib
, llvm
, lib
, backend ? " m c o d e "
} :
assert backend == " m c o d e " || backend == " l l v m " ;
stdenv . mkDerivation rec {
pname = " g h d l - ${ backend } " ;
version = " 1 . 0 . 0 " ;
version = " 2 . 0 . 0 " ;
src = fetchFromGitHub {
owner = " g h d l " ;
repo = " g h d l " ;
rev = " v ${ version } " ;
sha256 = " 1 g y h 0 x c k w b z g s l b p w 9 y r p j 4 g q s 9 f m 1 a 2 q p b z l 0 s h 1 4 3 f k 1 k w j l l y " ;
sha256 = " s h a 2 5 6 - B / G 3 F G R z Y y 4 Y 9 V N N B 8 y M 3 F o h i I j P J h Y S V b q s T N 3 c L 5 k = " ;
} ;
patches = [
# Allow compilation with GNAT 11, picked from master
# https://github.com/ghdl/ghdl/issues/2056
( fetchpatch {
name = " f i x - g n a t - 1 1 - c o m p i l a t i o n . p a t c h " ;
url = " h t t p s : / / g i t h u b . c o m / g h d l / g h d l / c o m m i t / 8 3 5 6 e a 3 b b 4 e 8 d 0 e 5 a d 8 6 3 8 c 3 d 5 0 9 1 4 b 6 4 f c 3 6 0 e c . p a t c h " ;
sha256 = " 0 4 p z n 8 g 7 x h a 8 0 0 0 w b j j m r y 6 h 1 g r f q y n 3 b j v j 4 7 h i 4 q w g l 2 1 w f j r a " ;
name = " f i x - b u i l d - g c c - 1 2 . p a t c h " ;
url = " h t t p s : / / g i t h u b . c o m / g h d l / g h d l / c o m m i t / f 8 b 8 7 6 9 7 e 8 b 8 9 3 b 6 2 9 3 e b b f c 3 4 6 7 0 c 3 2 b f b 4 9 3 9 7 . p a t c h " ;
hash = " s h a 2 5 6 - t V b M m 8 v e F k N P s 6 W F B H v a i c 5 J k p 1 n i y g 0 L f F u f a + h T / E = " ;
} )
] ;
LIBRARY_PATH = " ${ stdenv . cc . libc } / l i b " ;
buildInputs = [ gnat11 zlib ] ++ lib . optional ( backend == " l l v m " ) [ llvm ] ;
propagatedBuildInputs = lib . optionals ( backend == " l l v m " ) [ zlib ] ;
nativeBuildInputs = [
gnat
] ;
buildInputs = [
zlib
] ++ lib . optional ( backend == " l l v m " ) [
llvm
] ;
propagatedBuildInputs = [
] ++ lib . optionals ( backend == " l l v m " ) [
zlib
] ;
preConfigure = ''
# If llvm 7.0 works, 7.x releases should work too.
sed - i ' s/check_version 7.0/check_version 7/g ' configure
'' ;
configureFlags = [ " - - e n a b l e - s y n t h " ] ++ lib . optional ( backend == " l l v m " )
" - - w i t h - l l v m - c o n f i g = ${ llvm . dev } / b i n / l l v m - c o n f i g " ;
configureFlags = [
# See https://github.com/ghdl/ghdl/pull/2058
" - - d i s a b l e - w e r r o r "
" - - e n a b l e - s y n t h "
] ++ lib . optionals ( backend == " l l v m " ) [
" - - w i t h - l l v m - c o n f i g = ${ llvm . dev } / b i n / l l v m - c o n f i g "
] ;
hardeningDisable = [ " f o r m a t " ] ;