gdc: match gcc version
Programs compiled with gdc (such as tumiki-fighters and torus-trooper) that depend on c++ libraries were failing with errors such as /nix/store/3fqi6nigj8dkbvjnw8y4dy59gkq8vsj4-binutils-2.38/bin/ld: /nix/store/36960p41h83cwkcs2vpzg8ni39w4sc5m-bulletml-0.0.6/lib/libbulletml.so: undefined reference to `std::__throw_bad_array_new_length()@GLIBCXX_3.4.29' because of the mismatch with the gcc version used to compile the libraries. This commit unpins the gcc version gdc is based on, so they are kept in sync. gdc9 was removed since no other package depends specifically on that version
This commit is contained in:
parent
8c6deb650a
commit
c6ea401438
2 changed files with 8 additions and 4 deletions
|
@ -3,6 +3,7 @@
|
||||||
, langAda ? false
|
, langAda ? false
|
||||||
, langObjC ? stdenv.targetPlatform.isDarwin
|
, langObjC ? stdenv.targetPlatform.isDarwin
|
||||||
, langObjCpp ? stdenv.targetPlatform.isDarwin
|
, langObjCpp ? stdenv.targetPlatform.isDarwin
|
||||||
|
, langD ? false
|
||||||
, langGo ? false
|
, langGo ? false
|
||||||
, reproducibleBuild ? true
|
, reproducibleBuild ? true
|
||||||
, profiledCompiler ? false
|
, profiledCompiler ? false
|
||||||
|
@ -71,6 +72,7 @@ let majorVersion = "11";
|
||||||
sha256 = ""; # TODO: uncomment and check hash when available.
|
sha256 = ""; # TODO: uncomment and check hash when available.
|
||||||
}) */
|
}) */
|
||||||
++ optional langAda ../gnat-cflags-11.patch
|
++ optional langAda ../gnat-cflags-11.patch
|
||||||
|
++ optional langD ../libphobos.patch
|
||||||
++ optional langFortran ../gfortran-driving.patch
|
++ optional langFortran ../gfortran-driving.patch
|
||||||
++ optional (targetPlatform.libc == "musl" && targetPlatform.isPower) ../ppc-musl.patch
|
++ optional (targetPlatform.libc == "musl" && targetPlatform.isPower) ../ppc-musl.patch
|
||||||
|
|
||||||
|
@ -220,6 +222,7 @@ stdenv.mkDerivation ({
|
||||||
enableShared
|
enableShared
|
||||||
|
|
||||||
langC
|
langC
|
||||||
|
langD
|
||||||
langCC
|
langCC
|
||||||
langFortran
|
langFortran
|
||||||
langAda
|
langAda
|
||||||
|
@ -260,14 +263,14 @@ stdenv.mkDerivation ({
|
||||||
|
|
||||||
inherit
|
inherit
|
||||||
(import ../common/extra-target-flags.nix {
|
(import ../common/extra-target-flags.nix {
|
||||||
inherit lib stdenv crossStageStatic libcCross threadsCross;
|
inherit lib stdenv crossStageStatic langD libcCross threadsCross;
|
||||||
})
|
})
|
||||||
EXTRA_FLAGS_FOR_TARGET
|
EXTRA_FLAGS_FOR_TARGET
|
||||||
EXTRA_LDFLAGS_FOR_TARGET
|
EXTRA_LDFLAGS_FOR_TARGET
|
||||||
;
|
;
|
||||||
|
|
||||||
passthru = {
|
passthru = {
|
||||||
inherit langC langCC langObjC langObjCpp langAda langFortran langGo version;
|
inherit langC langCC langObjC langObjCpp langAda langFortran langGo langD version;
|
||||||
isGNU = true;
|
isGNU = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -12976,8 +12976,9 @@ with pkgs;
|
||||||
gcc-arm-embedded-10 = callPackage ../development/compilers/gcc-arm-embedded/10 {};
|
gcc-arm-embedded-10 = callPackage ../development/compilers/gcc-arm-embedded/10 {};
|
||||||
gcc-arm-embedded = gcc-arm-embedded-10;
|
gcc-arm-embedded = gcc-arm-embedded-10;
|
||||||
|
|
||||||
gdc = gdc9;
|
# Has to match the default gcc so that there are no linking errors when
|
||||||
gdc9 = wrapCC (gcc9.cc.override {
|
# using C/C++ libraries in D packages
|
||||||
|
gdc = wrapCC (gcc.cc.override {
|
||||||
name = "gdc";
|
name = "gdc";
|
||||||
langCC = false;
|
langCC = false;
|
||||||
langC = false;
|
langC = false;
|
||||||
|
|
Loading…
Reference in a new issue