diff options
author | a-n-n-a-l-e-e <150648636+a-n-n-a-l-e-e@users.noreply.github.com> | 2024-01-12 06:45:41 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-01-12 08:45:41 -0600 |
commit | 2ec46240ae10398d789e163d4745e6d6d4a99398 (patch) | |
tree | 65d8a0bec28d42635a23f279c576a7f5b02084e5 /pkgs/development/compilers/llvm | |
parent | f86d4d49b8bc6c4a6a1bf3c66960d07587facd92 (diff) | |
download | nixlib-2ec46240ae10398d789e163d4745e6d6d4a99398.tar nixlib-2ec46240ae10398d789e163d4745e6d6d4a99398.tar.gz nixlib-2ec46240ae10398d789e163d4745e6d6d4a99398.tar.bz2 nixlib-2ec46240ae10398d789e163d4745e6d6d4a99398.tar.lz nixlib-2ec46240ae10398d789e163d4745e6d6d4a99398.tar.xz nixlib-2ec46240ae10398d789e163d4745e6d6d4a99398.tar.zst nixlib-2ec46240ae10398d789e163d4745e6d6d4a99398.zip |
llvmPackages_{15,16,17,git}.libcxx: fix darwin link flags (#278945)
This change applies the upstream PR https://github.com/llvm/llvm-project/pull/77218 so the same link flags on darwin are used as when LIBCXX_CXX_ABI=libcxxabi. Specifically, this adds "-Wl,-force_symbols_not_weak_list,${CMAKE_CURRENT_SOURCE_DIR}/../lib/notweak.exp" which prevents libcxx from segfaulting on darwin
Diffstat (limited to 'pkgs/development/compilers/llvm')
4 files changed, 41 insertions, 3 deletions
diff --git a/pkgs/development/compilers/llvm/15/libcxx/default.nix b/pkgs/development/compilers/llvm/15/libcxx/default.nix index ed5f48e8c38f..be56770039d8 100644 --- a/pkgs/development/compilers/llvm/15/libcxx/default.nix +++ b/pkgs/development/compilers/llvm/15/libcxx/default.nix @@ -56,6 +56,14 @@ stdenv.mkDerivation rec { hash = "sha256-AaM9A6tQ4YAw7uDqCIV4VaiUyLZv+unwcOqbakwW9/k="; relative = "libcxx"; }) + # fix for https://github.com/NixOS/nixpkgs/issues/269548 + # https://github.com/llvm/llvm-project/pull/77218 + (fetchpatch { + name = "darwin-system-libcxxabi-link-flags.patch"; + url = "https://github.com/llvm/llvm-project/commit/c5b89b29ee6e3c444a355fd1cf733ce7ab2e316a.patch"; + hash = "sha256-LNoPg1KCoP8RWxU/AzHR52f4Dww24I9BGQJedMhFxyQ="; + relative = "libcxx"; + }) ] ++ lib.optionals stdenv.hostPlatform.isMusl [ ../../libcxx-0001-musl-hacks.patch ]; diff --git a/pkgs/development/compilers/llvm/16/libcxx/default.nix b/pkgs/development/compilers/llvm/16/libcxx/default.nix index 78cd632024cd..d6c8c57c1743 100644 --- a/pkgs/development/compilers/llvm/16/libcxx/default.nix +++ b/pkgs/development/compilers/llvm/16/libcxx/default.nix @@ -1,5 +1,5 @@ { lib, stdenv, llvm_meta -, monorepoSrc, runCommand +, monorepoSrc, runCommand, fetchpatch , cmake, ninja, python3, fixDarwinDylibNames, version , cxxabi ? if stdenv.hostPlatform.isFreeBSD then libcxxrt else libcxxabi , libcxxabi, libcxxrt, libunwind @@ -47,6 +47,14 @@ stdenv.mkDerivation rec { patches = [ ./gnu-install-dirs.patch + # fix for https://github.com/NixOS/nixpkgs/issues/269548 + # https://github.com/llvm/llvm-project/pull/77218 + (fetchpatch { + name = "darwin-system-libcxxabi-link-flags.patch"; + url = "https://github.com/llvm/llvm-project/commit/c5b89b29ee6e3c444a355fd1cf733ce7ab2e316a.patch"; + hash = "sha256-LNoPg1KCoP8RWxU/AzHR52f4Dww24I9BGQJedMhFxyQ="; + relative = "libcxx"; + }) ]; postPatch = '' diff --git a/pkgs/development/compilers/llvm/17/libcxx/default.nix b/pkgs/development/compilers/llvm/17/libcxx/default.nix index 7b9996641663..8a5272ea07af 100644 --- a/pkgs/development/compilers/llvm/17/libcxx/default.nix +++ b/pkgs/development/compilers/llvm/17/libcxx/default.nix @@ -1,5 +1,5 @@ { lib, stdenv, llvm_meta -, monorepoSrc, runCommand +, monorepoSrc, runCommand, fetchpatch , cmake, ninja, python3, fixDarwinDylibNames, version , cxxabi ? if stdenv.hostPlatform.isFreeBSD then libcxxrt else libcxxabi , libcxxabi, libcxxrt, libunwind @@ -45,6 +45,17 @@ stdenv.mkDerivation rec { chmod -R u+w . ''; + patches = [ + # fix for https://github.com/NixOS/nixpkgs/issues/269548 + # https://github.com/llvm/llvm-project/pull/77218 + (fetchpatch { + name = "darwin-system-libcxxabi-link-flags.patch"; + url = "https://github.com/llvm/llvm-project/commit/c5b89b29ee6e3c444a355fd1cf733ce7ab2e316a.patch"; + hash = "sha256-LNoPg1KCoP8RWxU/AzHR52f4Dww24I9BGQJedMhFxyQ="; + relative = "libcxx"; + }) + ]; + postPatch = '' cd ../runtimes ''; diff --git a/pkgs/development/compilers/llvm/git/libcxx/default.nix b/pkgs/development/compilers/llvm/git/libcxx/default.nix index 7b9996641663..8a5272ea07af 100644 --- a/pkgs/development/compilers/llvm/git/libcxx/default.nix +++ b/pkgs/development/compilers/llvm/git/libcxx/default.nix @@ -1,5 +1,5 @@ { lib, stdenv, llvm_meta -, monorepoSrc, runCommand +, monorepoSrc, runCommand, fetchpatch , cmake, ninja, python3, fixDarwinDylibNames, version , cxxabi ? if stdenv.hostPlatform.isFreeBSD then libcxxrt else libcxxabi , libcxxabi, libcxxrt, libunwind @@ -45,6 +45,17 @@ stdenv.mkDerivation rec { chmod -R u+w . ''; + patches = [ + # fix for https://github.com/NixOS/nixpkgs/issues/269548 + # https://github.com/llvm/llvm-project/pull/77218 + (fetchpatch { + name = "darwin-system-libcxxabi-link-flags.patch"; + url = "https://github.com/llvm/llvm-project/commit/c5b89b29ee6e3c444a355fd1cf733ce7ab2e316a.patch"; + hash = "sha256-LNoPg1KCoP8RWxU/AzHR52f4Dww24I9BGQJedMhFxyQ="; + relative = "libcxx"; + }) + ]; + postPatch = '' cd ../runtimes ''; |