mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-01-31 01:04:25 +00:00
nodejs_18: fix build with clang 16 mk2
Trying to backport the fixes from v8 caused crashes with npm when building other packages, so just build it with clang 15.
This commit is contained in:
parent
81d2db9460
commit
b034e4cbf1
@ -1,8 +1,20 @@
|
||||
{ callPackage, fetchpatch, openssl, python3, enableNpm ? true }:
|
||||
{ callPackage, lib, overrideCC, pkgs, buildPackages, fetchpatch, openssl, python3, enableNpm ? true }:
|
||||
|
||||
let
|
||||
# Clang 16+ cannot build Node v18 due to -Wenum-constexpr-conversion errors.
|
||||
# Use an older version of clang with the current libc++ for compatibility (e.g., with icu).
|
||||
ensureCompatibleCC = packages:
|
||||
if packages.stdenv.cc.isClang && lib.versionAtLeast (lib.getVersion packages.stdenv.cc.cc) "16"
|
||||
then overrideCC packages.llvmPackages_15.stdenv (packages.llvmPackages_15.stdenv.cc.override {
|
||||
inherit (packages.llvmPackages) libcxx;
|
||||
extraPackages = [ packages.llvmPackages.libcxxabi ];
|
||||
})
|
||||
else packages.stdenv;
|
||||
|
||||
buildNodejs = callPackage ./nodejs.nix {
|
||||
inherit openssl;
|
||||
stdenv = ensureCompatibleCC pkgs;
|
||||
buildPackages = buildPackages // { stdenv = ensureCompatibleCC buildPackages; };
|
||||
python = python3;
|
||||
};
|
||||
in
|
||||
|
Loading…
Reference in New Issue
Block a user