diff options
Diffstat (limited to 'nixpkgs/pkgs/development/compilers/swift/default.nix')
-rw-r--r-- | nixpkgs/pkgs/development/compilers/swift/default.nix | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/nixpkgs/pkgs/development/compilers/swift/default.nix b/nixpkgs/pkgs/development/compilers/swift/default.nix index 0cd1f704421..c4144532c58 100644 --- a/nixpkgs/pkgs/development/compilers/swift/default.nix +++ b/nixpkgs/pkgs/development/compilers/swift/default.nix @@ -2,6 +2,7 @@ , cmake , coreutils , glibc +, gccForLibs , which , perl , libedit @@ -121,7 +122,7 @@ let cmakeFlags = [ "-DGLIBC_INCLUDE_PATH=${stdenv.cc.libc.dev}/include" "-DC_INCLUDE_DIRS=${stdenv.lib.makeSearchPathOutput "dev" "include" devInputs}:${libxml2.dev}/include/libxml2" - "-DGCC_INSTALL_PREFIX=${clang.cc.gcc}" + "-DGCC_INSTALL_PREFIX=${gccForLibs}" ]; in @@ -182,6 +183,9 @@ stdenv.mkDerivation { ''; patchPhase = '' + # Glibc 2.31 fix + patch -p1 -i ${./patches/swift-llvm.patch} + # Just patch all the things for now, we can focus this later patchShebangs $SWIFT_SOURCE_ROOT @@ -196,7 +200,7 @@ stdenv.mkDerivation { substituteInPlace swift/stdlib/public/Platform/CMakeLists.txt \ --replace '/usr/include' "${stdenv.cc.libc.dev}/include" substituteInPlace swift/utils/build-script-impl \ - --replace '/usr/include/c++' "${clang.cc.gcc}/include/c++" + --replace '/usr/include/c++' "${gccForLibs}/include/c++" patch -p1 -d swift -i ${./patches/glibc-arch-headers.patch} patch -p1 -d swift -i ${./patches/0001-build-presets-linux-don-t-require-using-Ninja.patch} patch -p1 -d swift -i ${./patches/0002-build-presets-linux-allow-custom-install-prefix.patch} @@ -257,11 +261,11 @@ stdenv.mkDerivation { ''; buildPhase = '' - # gcc-6.4.0/include/c++/6.4.0/cstdlib:75:15: fatal error: 'stdlib.h' file not found - export NIX_CFLAGS_COMPILE="$( echo ${clang.default_cxx_stdlib_compile} ) $NIX_CFLAGS_COMPILE" + # explicitly include C++ headers to prevent errors where stdlib.h is not found from cstdlib + export NIX_CFLAGS_COMPILE="$(< ${clang}/nix-support/libcxx-cxxflags) $NIX_CFLAGS_COMPILE" # During the Swift build, a full local LLVM build is performed and the resulting clang is invoked. # This compiler is not using the Nix wrappers, so it needs some help to find things. - export NIX_LDFLAGS_BEFORE="-rpath ${clang.cc.gcc.lib}/lib -L${clang.cc.gcc.lib}/lib $NIX_LDFLAGS_BEFORE" + export NIX_LDFLAGS_BEFORE="-rpath ${gccForLibs.lib}/lib -L${gccForLibs.lib}/lib $NIX_LDFLAGS_BEFORE" # However, we want to use the wrapped compiler whenever possible. export CC="${clang}/bin/clang" |