treefmt / nix fmt (pull_request) Successful in 4s
build_systems / prebuild-common-x86-64-v3 (pull_request) Successful in 24s
build_systems / build-portal-1 (pull_request) Successful in 20s
test ebook search / test-ebook-search (pull_request) Successful in 1m13s
build_systems / build-bob (pull_request) Successful in 54s
build_systems / build-brain (pull_request) Successful in 57s
build_systems / build-rhapsody-in-green (pull_request) Successful in 1m4s
build_systems / build-jeeves (pull_request) Successful in 1m30s
39 lines
1.2 KiB
Nix
39 lines
1.2 KiB
Nix
# Abseil accepted the upstream fix: https://github.com/abseil/abseil-cpp/pull/2071
|
|
# Keep this workaround until Electron, Deno's rusty_v8, and Signal's WebRTC
|
|
# update their bundled Abseil copies to include it.
|
|
{ prev }:
|
|
let
|
|
patchAbseilBmi2Include =
|
|
package:
|
|
package.overrideAttrs (old: {
|
|
# GCC and Clang require the public umbrella header for BMI2 intrinsics.
|
|
patches = (old.patches or [ ]) ++ [ ./bmi2-public-header.patch ];
|
|
});
|
|
|
|
electron43Unwrapped = patchAbseilBmi2Include prev.electron_43.unwrapped;
|
|
electron43 = prev.electron_43.override {
|
|
electron-unwrapped = electron43Unwrapped;
|
|
};
|
|
|
|
signalCallPackage =
|
|
path: args:
|
|
let
|
|
package = prev.callPackage path args;
|
|
in
|
|
if builtins.baseNameOf path == "webrtc.nix" then patchAbseilBmi2Include package else package;
|
|
in
|
|
prev.lib.optionalAttrs ((prev.stdenv.hostPlatform.gcc.arch or null) == "x86-64-v3") {
|
|
deno =
|
|
let
|
|
librusty_v8 = patchAbseilBmi2Include prev.deno.passthru.librusty_v8;
|
|
in
|
|
prev.deno.override { inherit librusty_v8; };
|
|
|
|
electron_43 = electron43;
|
|
|
|
signal-desktop = prev.signal-desktop.override {
|
|
electron_43 = electron43;
|
|
callPackage = signalCallPackage;
|
|
};
|
|
}
|