diff --git a/pkgs/development/libraries/boehm-gc/default.nix b/pkgs/development/libraries/boehm-gc/default.nix index 513ae50298e2..34e26f547093 100644 --- a/pkgs/development/libraries/boehm-gc/default.nix +++ b/pkgs/development/libraries/boehm-gc/default.nix @@ -30,6 +30,21 @@ stdenv.mkDerivation (finalAttrs: { ++ lib.optional enableMmap "--enable-mmap" ++ lib.optional enableLargeConfig "--enable-large-config"; + # This stanza can be dropped when a release fixes this issue: + # https://github.com/ivmai/bdwgc/issues/376 + # The version is checked with == instead of versionAtLeast so we + # don't forget to disable the fix (and if the next release does + # not fix the problem the test failure will be a reminder to + # extend the set of versions requiring the workaround). + makeFlags = if (stdenv.hostPlatform.isPower64 && + finalAttrs.version == "8.2.2") + then [ + # do not use /proc primitives to track dirty bits; see: + # https://github.com/ivmai/bdwgc/issues/479#issuecomment-1279687537 + # https://github.com/ivmai/bdwgc/blob/54522af853de28f45195044dadfd795c4e5942aa/include/private/gcconfig.h#L741 + "CFLAGS_EXTRA=-DNO_SOFT_VDB" + ] else null; + # `gctest` fails under emulation on aarch64-darwin doCheck = !(stdenv.isDarwin && stdenv.isx86_64);