mongodb: add avxSupport override

Starting with mongodb 5, the default build produces binaries that throw a trap
invalid opcode on machines without the avx cpu flag. While most modern cpus
support this flag, some recent lower end Intel CPUs (N5105) do not. Allow
mongodb to build without such flags.
This commit is contained in:
qubitnano 2024-03-27 18:08:12 -04:00
parent 1f3cfae3d5
commit 2e9c2a5c3c
3 changed files with 14 additions and 2 deletions

View File

@ -1,4 +1,7 @@
{ stdenv, callPackage, lib, sasl, boost, Security, CoreFoundation, cctools }:
{ stdenv, callPackage, lib, sasl, boost
, Security, CoreFoundation, cctools
, avxSupport ? stdenv.hostPlatform.avxSupport
}:
let
buildMongoDB = callPackage ./mongodb.nix {
@ -18,6 +21,7 @@ let
};
in
buildMongoDB {
inherit avxSupport;
version = variants.version;
sha256 = variants.sha256;
patches = [

View File

@ -1,4 +1,7 @@
{ stdenv, callPackage, lib, fetchpatch, sasl, boost, Security, CoreFoundation, cctools }:
{ stdenv, callPackage, lib, fetchpatch
, sasl, boost, Security, CoreFoundation, cctools
, avxSupport ? stdenv.hostPlatform.avxSupport
}:
let
buildMongoDB = callPackage ./mongodb.nix {
@ -6,6 +9,7 @@ let
};
in
buildMongoDB {
inherit avxSupport;
version = "6.0.15";
sha256 = "sha256-DX1wbrDx1/JrEHbzNaXC4Hqq7MrLqz+JZgG98beyVds=";
patches = [

View File

@ -29,6 +29,7 @@ with lib;
{ version, sha256, patches ? []
, license ? lib.licenses.sspl
, avxSupport ? stdenv.hostPlatform.avxSupport
}:
let
@ -114,6 +115,9 @@ in stdenv.mkDerivation rec {
# don't fail by default on i686
substituteInPlace src/mongo/db/storage/storage_options.h \
--replace 'engine("wiredTiger")' 'engine("mmapv1")'
'' + lib.optionalString (!avxSupport) ''
substituteInPlace SConstruct \
--replace-fail "default=['+sandybridge']," 'default=[],'
'';
env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.cc.isClang