diff options
author | a-n-n-a-l-e-e <150648636+a-n-n-a-l-e-e@users.noreply.github.com> | 2024-03-11 03:53:37 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-03-11 03:53:37 -0700 |
commit | ce789e7e35e7cf72f5424f35d1b8b3ffcedd9226 (patch) | |
tree | 96f7a1f5689c5866d9250f142402c2b67ec38ed7 /pkgs/applications | |
parent | b2211920487890748920fcc83f9b769494bfa2d6 (diff) |
llvmPackages_{12,13,14,15,16,17,git}.{libcxx,libcxxabi}: merge libcxxabi into libcxx (#292043)
- merge libcxxabi into libcxx for LLVM 12, 13, 14, 15, 16, 17, and git. - remove the link time workaround `-lc++ -lc++abi` from 58 packages as it is no longer required. - fixes https://github.com/NixOS/nixpkgs/issues/166205 - provides alternative fixes for. https://github.com/NixOS/nixpkgs/issues/269548 https://github.com/NixOS/nix/issues/9640 - pkgsCross.x86_64-freebsd builds work again This change can be represented in 3 stages 1. merge libcxxabi into libcxx -- files: pkgs/development/compilers/llvm/[12, git]/{libcxx, libcxxabi} 2. update stdenv to account for merge -- files: stdenv.{adapters, cc.wrapper, darwin} 3. remove all references to libcxxabi outside of llvm (about 58 packages modified) ### merging libcxxabi into libcxx - take the union of the libcxxabi and libcxx cmake flags - eliminate the libcxx-headers-only package - it was only needed to break libcxx <-> libcxxabi circular dependency - libcxx.cxxabi is removed. external cxxabi (freebsd) will symlink headers / libs into libcxx. - darwin will re-export the libcxxabi symbols into libcxx so linking `-lc++` is sufficient. - linux/freebsd `libc++.so` is a linker script `LINK(libc++.so.1, -lc++abi)` making `-lc++` sufficient. - libcxx/default.nix [12, 17] are identical except for patches and `LIBCXX_ADDITIONAL_LIBRARIES` (only used in 16+) - git/libcxx/defaul.nix does not link with -nostdlib when useLLVM is true so flag is removed. this is not much different than before as libcxxabi used -nostdlib where libcxx did not, so libc was linked in anyway. ### stdenv changes - darwin bootstrap, remove references to libcxxabi and cxxabi - cc-wrapper: remove c++ link workaround when libcxx.cxxabi doesn't exist (still exists for LLVM pre 12) - adapter: update overrideLibcxx to account for a pkgs.stdenv that only has libcxx ### 58 package updates - remove `NIX_LDFLAGS = "-l${stdenv.cc.libcxx.cxxabi.libName}` as no longer needed - swift, nodejs_v8 remove libcxxabi references in the clang override https://github.com/NixOS/nixpkgs/pull/292043
Diffstat (limited to 'pkgs/applications')
11 files changed, 6 insertions, 39 deletions
diff --git a/pkgs/applications/audio/nova-filters/default.nix b/pkgs/applications/audio/nova-filters/default.nix index 1c457c8a0e7b7..17d90c6d310b2 100644 --- a/pkgs/applications/audio/nova-filters/default.nix +++ b/pkgs/applications/audio/nova-filters/default.nix @@ -4,7 +4,6 @@ , scons , boost , ladspaH -, libcxxabi }: stdenv.mkDerivation (finalAttrs: { @@ -23,7 +22,7 @@ stdenv.mkDerivation (finalAttrs: { --replace "-fomit-frame-pointer -ffast-math -mfpmath=sse" "-I${boost.dev}/include -I${ladspaH}/include" \ --replace "env.has_key('cxx')" "True" \ --replace "env['cxx']" "'${stdenv.cc.targetPrefix}c++'" \ - --replace "-Wl,--strip-all" "${lib.optionalString stdenv.isDarwin "-L${libcxxabi}/lib"}" + --replace "-Wl,--strip-all" "" substituteInPlace filters.cpp \ --replace "LADSPA_HINT_SAMPLE_RATE, 0, 0.5" "LADSPA_HINT_SAMPLE_RATE, 0.0001, 0.5" diff --git a/pkgs/applications/editors/lapce/default.nix b/pkgs/applications/editors/lapce/default.nix index dce0ad1681066..299c5e06cbd53 100644 --- a/pkgs/applications/editors/lapce/default.nix +++ b/pkgs/applications/editors/lapce/default.nix @@ -75,10 +75,6 @@ rustPlatform.buildRustPackage rec { # This variable is read by build script, so that Lapce editor knows its version RELEASE_TAG_NAME = "v${version}"; - - } // lib.optionalAttrs stdenv.cc.isClang { - # Work around https://github.com/NixOS/nixpkgs/issues/166205. - NIX_LDFLAGS = "-l${stdenv.cc.libcxx.cxxabi.libName}"; }; postPatch = '' diff --git a/pkgs/applications/editors/neovim/neovide/default.nix b/pkgs/applications/editors/neovim/neovide/default.nix index db789c4babd3a..da50844aa7268 100644 --- a/pkgs/applications/editors/neovim/neovide/default.nix +++ b/pkgs/applications/editors/neovim/neovide/default.nix @@ -78,11 +78,6 @@ rustPlatform.buildRustPackage.override { stdenv = clangStdenv; } rec { darwin.apple_sdk.frameworks.AppKit ]; - env = lib.optionalAttrs stdenv.isDarwin { - # Work around https://github.com/NixOS/nixpkgs/issues/166205 - NIX_LDFLAGS = "-l${stdenv.cc.libcxx.cxxabi.libName}"; - }; - postFixup = let libPath = lib.makeLibraryPath ([ libglvnd diff --git a/pkgs/applications/misc/done/default.nix b/pkgs/applications/misc/done/default.nix index a52ebda619450..d6a5fa123a332 100644 --- a/pkgs/applications/misc/done/default.nix +++ b/pkgs/applications/misc/done/default.nix @@ -62,8 +62,6 @@ stdenv.mkDerivation rec { env = lib.optionalAttrs stdenv.isDarwin { GETTEXT_DIR = gettext; - # Work around https://github.com/NixOS/nixpkgs/issues/166205. - NIX_LDFLAGS = "-l${stdenv.cc.libcxx.cxxabi.libName}"; }; meta = with lib; { diff --git a/pkgs/applications/networking/browsers/firefox/common.nix b/pkgs/applications/networking/browsers/firefox/common.nix index 45823df01d99c..25a25e8f358d8 100644 --- a/pkgs/applications/networking/browsers/firefox/common.nix +++ b/pkgs/applications/networking/browsers/firefox/common.nix @@ -183,7 +183,7 @@ let # We only link c++ libs here, our compiler wrapper can find wasi libc and crt itself. wasiSysRoot = runCommand "wasi-sysroot" {} '' mkdir -p $out/lib/wasm32-wasi - for lib in ${pkgsCross.wasi32.llvmPackages.libcxx}/lib/* ${pkgsCross.wasi32.llvmPackages.libcxxabi}/lib/*; do + for lib in ${pkgsCross.wasi32.llvmPackages.libcxx}/lib/*; do ln -s $lib $out/lib/wasm32-wasi done ''; diff --git a/pkgs/applications/networking/instant-messengers/teamspeak/client.nix b/pkgs/applications/networking/instant-messengers/teamspeak/client.nix index a0c7b678d5a0d..45197d2d70866 100644 --- a/pkgs/applications/networking/instant-messengers/teamspeak/client.nix +++ b/pkgs/applications/networking/instant-messengers/teamspeak/client.nix @@ -13,7 +13,7 @@ let [ zlib glib libpng freetype xorg.libSM xorg.libICE xorg.libXrender openssl xorg.libXrandr xorg.libXfixes xorg.libXcursor xorg.libXinerama xorg.libxcb fontconfig xorg.libXext xorg.libX11 alsa-lib qtbase qtwebengine qtwebchannel qtsvg - qtwebsockets libpulseaudio quazip llvmPackages.libcxx llvmPackages.libcxxabi + qtwebsockets libpulseaudio quazip llvmPackages.libcxx ]; desktopItem = makeDesktopItem { diff --git a/pkgs/applications/networking/pjsip/default.nix b/pkgs/applications/networking/pjsip/default.nix index 1943a395bd7b7..2cf57b8b6c00b 100644 --- a/pkgs/applications/networking/pjsip/default.nix +++ b/pkgs/applications/networking/pjsip/default.nix @@ -35,10 +35,7 @@ stdenv.mkDerivation (finalAttrs: { ++ lib.optional stdenv.isLinux alsa-lib ++ lib.optionals stdenv.isDarwin [ AppKit CoreFoundation Security ]; - env = lib.optionalAttrs (stdenv.cc.libcxx != null) { - # work around https://github.com/NixOS/nixpkgs/issues/166205 - NIX_LDFLAGS = "-l${stdenv.cc.libcxx.cxxabi.libName}"; - } // lib.optionalAttrs stdenv.cc.isClang { + env = lib.optionalAttrs stdenv.cc.isClang { CXXFLAGS = "-std=c++11"; } // lib.optionalAttrs stdenv.isDarwin { NIX_CFLAGS_LINK = "-headerpad_max_install_names"; diff --git a/pkgs/applications/networking/remote/citrix-workspace/generic.nix b/pkgs/applications/networking/remote/citrix-workspace/generic.nix index bf14b0321943d..ccaf0361e2d8e 100644 --- a/pkgs/applications/networking/remote/citrix-workspace/generic.nix +++ b/pkgs/applications/networking/remote/citrix-workspace/generic.nix @@ -2,7 +2,7 @@ , file, atk, alsa-lib, cairo, fontconfig, gdk-pixbuf, glib, webkitgtk, gtk2-x11, gtk3 , heimdal, krb5, libsoup, libvorbis, speex, openssl, zlib, xorg, pango, gtk2 , gnome2, mesa, nss, nspr, gtk_engines, freetype, dconf, libpng12, libxml2 -, libjpeg, libredirect, tzdata, cacert, systemd, libcxxabi, libcxx, e2fsprogs, symlinkJoin +, libjpeg, libredirect, tzdata, cacert, systemd, libcxx, e2fsprogs, symlinkJoin , libpulseaudio, pcsclite, glib-networking, llvmPackages_12, opencv4 , libfaketime , libinput, libcap, libjson, libsecret, libcanberra-gtk3 @@ -84,7 +84,6 @@ stdenv.mkDerivation rec { libcap libcanberra-gtk3 libcxx - libcxxabi libinput libjpeg libjson diff --git a/pkgs/applications/office/espanso/default.nix b/pkgs/applications/office/espanso/default.nix index d4d0290277e11..16518734c6568 100644 --- a/pkgs/applications/office/espanso/default.nix +++ b/pkgs/applications/office/espanso/default.nix @@ -120,11 +120,6 @@ rustPlatform.buildRustPackage rec { --replace '"/usr/local/bin/espanso"' '"${placeholder "out"}/bin/espanso"' ''; - env = lib.optionalAttrs stdenv.cc.isClang { - # Work around https://github.com/NixOS/nixpkgs/issues/166205. - NIX_LDFLAGS = "-l${stdenv.cc.libcxx.cxxabi.libName}"; - }; - # Some tests require networking doCheck = false; diff --git a/pkgs/applications/science/logic/lean4/default.nix b/pkgs/applications/science/logic/lean4/default.nix index fbc41a67d73ba..dca55d969db4d 100644 --- a/pkgs/applications/science/logic/lean4/default.nix +++ b/pkgs/applications/science/logic/lean4/default.nix @@ -50,11 +50,6 @@ stdenv.mkDerivation (finalAttrs: { "-DINSTALL_LICENSE=OFF" ]; - # Work around https://github.com/NixOS/nixpkgs/issues/166205. - env = lib.optionalAttrs stdenv.cc.isClang { - NIX_LDFLAGS = "-l${stdenv.cc.libcxx.cxxabi.libName}"; - }; - passthru.tests = { version = testers.testVersion { package = finalAttrs.finalPackage; diff --git a/pkgs/applications/version-management/p4/default.nix b/pkgs/applications/version-management/p4/default.nix index 188c5bbe2206c..695e596e8c850 100644 --- a/pkgs/applications/version-management/p4/default.nix +++ b/pkgs/applications/version-management/p4/default.nix @@ -4,10 +4,7 @@ , lib , emptyDirectory , linkFarm -, symlinkJoin , jam -, libcxx -, libcxxabi , openssl , xcbuild , CoreServices @@ -33,10 +30,6 @@ let # cone-based Git sparse checkout, either.) { name = "contrib"; path = "${src}/contrib"; } ]; - libcxxUnified = symlinkJoin { - inherit (libcxx) name; - paths = [ libcxx libcxxabi ]; - }; in stdenv.mkDerivation rec { pname = "p4"; @@ -70,7 +63,7 @@ stdenv.mkDerivation rec { ++ lib.optionals stdenv.isDarwin [ "-sOSVER=1013" "-sMACOSX_SDK=${emptyDirectory}" - "-sLIBC++DIR=${libcxxUnified}/lib" + "-sLIBC++DIR=${lib.getLib stdenv.cc.libcxx}/lib" ]; CCFLAGS = |