diff options
Diffstat (limited to 'pkgs/development/compilers/llvm/6')
-rw-r--r-- | pkgs/development/compilers/llvm/6/clang/default.nix | 2 | ||||
-rw-r--r-- | pkgs/development/compilers/llvm/6/compiler-rt.nix | 51 | ||||
-rw-r--r-- | pkgs/development/compilers/llvm/6/default.nix | 10 | ||||
-rw-r--r-- | pkgs/development/compilers/llvm/6/libc++/default.nix | 2 | ||||
-rw-r--r-- | pkgs/development/compilers/llvm/6/libc++abi.nix | 4 | ||||
-rw-r--r-- | pkgs/development/compilers/llvm/6/lld.nix | 2 | ||||
-rw-r--r-- | pkgs/development/compilers/llvm/6/lldb.nix | 2 | ||||
-rw-r--r-- | pkgs/development/compilers/llvm/6/llvm.nix | 2 | ||||
-rw-r--r-- | pkgs/development/compilers/llvm/6/openmp.nix | 2 |
9 files changed, 63 insertions, 14 deletions
diff --git a/pkgs/development/compilers/llvm/6/clang/default.nix b/pkgs/development/compilers/llvm/6/clang/default.nix index 7139e15d1dc3..e2f7166354ae 100644 --- a/pkgs/development/compilers/llvm/6/clang/default.nix +++ b/pkgs/development/compilers/llvm/6/clang/default.nix @@ -83,7 +83,7 @@ let meta = { description = "A c, c++, objective-c, and objective-c++ frontend for the llvm compiler"; - homepage = "http://llvm.org/"; + homepage = "https://llvm.org/"; license = stdenv.lib.licenses.ncsa; platforms = stdenv.lib.platforms.all; }; diff --git a/pkgs/development/compilers/llvm/6/compiler-rt.nix b/pkgs/development/compilers/llvm/6/compiler-rt.nix index b3b6e86fc525..1bdba107d7dd 100644 --- a/pkgs/development/compilers/llvm/6/compiler-rt.nix +++ b/pkgs/development/compilers/llvm/6/compiler-rt.nix @@ -1,5 +1,13 @@ { stdenv, version, fetch, cmake, python3, llvm, libcxxabi }: -with stdenv.lib; + +let + + useLLVM = stdenv.hostPlatform.useLLVM or false; + bareMetal = stdenv.hostPlatform.parsed.kernel.name == "none"; + inherit (stdenv.hostPlatform) isMusl; + +in + stdenv.mkDerivation { pname = "compiler-rt"; inherit version; @@ -8,15 +16,38 @@ stdenv.mkDerivation { nativeBuildInputs = [ cmake python3 llvm ]; buildInputs = stdenv.lib.optional stdenv.hostPlatform.isDarwin libcxxabi; - configureFlags = [ + NIX_CFLAGS_COMPILE = [ + "-DSCUDO_DEFAULT_OPTIONS=DeleteSizeMismatch=0:DeallocationTypeMismatch=0" + ]; + + cmakeFlags = [ "-DCOMPILER_RT_DEFAULT_TARGET_ONLY=ON" + "-DCMAKE_C_COMPILER_TARGET=${stdenv.hostPlatform.config}" + "-DCMAKE_ASM_COMPILER_TARGET=${stdenv.hostPlatform.config}" + ] ++ stdenv.lib.optionals (useLLVM || bareMetal || isMusl) [ + "-DCOMPILER_RT_BUILD_SANITIZERS=OFF" + "-DCOMPILER_RT_BUILD_XRAY=OFF" + "-DCOMPILER_RT_BUILD_LIBFUZZER=OFF" + "-DCOMPILER_RT_BUILD_PROFILE=OFF" + ] ++ stdenv.lib.optionals (useLLVM || bareMetal) [ + "-DCMAKE_C_COMPILER_WORKS=ON" + "-DCMAKE_CXX_COMPILER_WORKS=ON" + "-DCOMPILER_RT_BAREMETAL_BUILD=ON" + "-DCMAKE_SIZEOF_VOID_P=${toString (stdenv.hostPlatform.parsed.cpu.bits / 8)}" + ] ++ stdenv.lib.optionals (useLLVM) [ + "-DCOMPILER_RT_BUILD_BUILTINS=ON" + "-DCMAKE_C_FLAGS=-nodefaultlibs" + #https://stackoverflow.com/questions/53633705/cmake-the-c-compiler-is-not-able-to-compile-a-simple-test-program + "-DCMAKE_TRY_COMPILE_TARGET_TYPE=STATIC_LIBRARY" + ] ++ stdenv.lib.optionals (bareMetal) [ + "-DCOMPILER_RT_OS_DIR=baremetal" ]; outputs = [ "out" "dev" ]; patches = [ ./compiler-rt-codesign.patch # Revert compiler-rt commit that makes codesign mandatory - ] ++ optional stdenv.hostPlatform.isMusl ./sanitizers-nongnu.patch; + ] ++ stdenv.lib.optional stdenv.hostPlatform.isMusl ./sanitizers-nongnu.patch; # TSAN requires XPC on Darwin, which we have no public/free source files for. We can depend on the Apple frameworks # to get it, but they're unfree. Since LLVM is rather central to the stdenv, we patch out TSAN support so that Hydra @@ -26,11 +57,23 @@ stdenv.mkDerivation { postPatch = stdenv.lib.optionalString stdenv.isDarwin '' substituteInPlace cmake/config-ix.cmake \ --replace 'set(COMPILER_RT_HAS_TSAN TRUE)' 'set(COMPILER_RT_HAS_TSAN FALSE)' + '' + stdenv.lib.optionalString (useLLVM) '' + substituteInPlace lib/builtins/int_util.c \ + --replace "#include <stdlib.h>" "" + substituteInPlace lib/builtins/clear_cache.c \ + --replace "#include <assert.h>" "" + substituteInPlace lib/builtins/cpu_model.c \ + --replace "#include <assert.h>" "" ''; # Hack around weird upsream RPATH bug - postInstall = stdenv.lib.optionalString stdenv.isDarwin '' + postInstall = stdenv.lib.optionalString (stdenv.hostPlatform.isDarwin || stdenv.hostPlatform.isWasm) '' ln -s "$out/lib"/*/* "$out/lib" + '' + stdenv.lib.optionalString (useLLVM) '' + ln -s $out/lib/*/clang_rt.crtbegin-*.o $out/lib/linux/crtbegin.o + ln -s $out/lib/*/clang_rt.crtend-*.o $out/lib/linux/crtend.o + ln -s $out/lib/*/clang_rt.crtbegin_shared-*.o $out/lib/linux/crtbeginS.o + ln -s $out/lib/*/clang_rt.crtend_shared-*.o $out/lib/linux/crtendS.o ''; enableParallelBuilding = true; diff --git a/pkgs/development/compilers/llvm/6/default.nix b/pkgs/development/compilers/llvm/6/default.nix index ba704f972c31..b544a4f6ba69 100644 --- a/pkgs/development/compilers/llvm/6/default.nix +++ b/pkgs/development/compilers/llvm/6/default.nix @@ -1,4 +1,4 @@ -{ lowPrio, newScope, pkgs, stdenv, cmake, libstdcxxHook +{ lowPrio, newScope, pkgs, stdenv, cmake, gcc, libstdcxxHook , libxml2, python3, isl, fetchurl, overrideCC, wrapCCWith , buildLlvmTools # tools, but from the previous stage, for cross , targetLlvmLibraries # libraries, but from the next stage, for cross @@ -7,6 +7,7 @@ let release_version = "6.0.1"; version = release_version; # differentiating these is important for rc's + targetConfig = stdenv.targetPlatform.config; fetch = name: sha256: fetchurl { url = "https://releases.llvm.org/${release_version}/${name}-${version}.src.tar.xz"; @@ -56,7 +57,12 @@ let extraPackages = [ targetLlvmLibraries.compiler-rt ]; - extraBuildCommands = mkExtraBuildCommands cc; + extraBuildCommands = '' + echo "-target ${targetConfig}" >> $out/nix-support/cc-cflags + echo "-B${gcc.cc}/lib/gcc/${targetConfig}/${gcc.version}" >> $out/nix-support/cc-cflags + echo "-L${gcc.cc}/lib/gcc/${targetConfig}/${gcc.version}" >> $out/nix-support/cc-ldflags + echo "-L${gcc.cc.lib}/${targetConfig}/lib" >> $out/nix-support/cc-ldflags + '' + mkExtraBuildCommands cc; }; libcxxClang = wrapCCWith rec { diff --git a/pkgs/development/compilers/llvm/6/libc++/default.nix b/pkgs/development/compilers/llvm/6/libc++/default.nix index 40f91c4d6aef..57f1431f4711 100644 --- a/pkgs/development/compilers/llvm/6/libc++/default.nix +++ b/pkgs/development/compilers/llvm/6/libc++/default.nix @@ -45,7 +45,7 @@ stdenv.mkDerivation { ]; meta = { - homepage = "http://libcxx.llvm.org/"; + homepage = "https://libcxx.llvm.org/"; description = "A new implementation of the C++ standard library, targeting C++11"; license = with stdenv.lib.licenses; [ ncsa mit ]; platforms = stdenv.lib.platforms.unix; diff --git a/pkgs/development/compilers/llvm/6/libc++abi.nix b/pkgs/development/compilers/llvm/6/libc++abi.nix index f8d0d2e0cee8..246bc6153e59 100644 --- a/pkgs/development/compilers/llvm/6/libc++abi.nix +++ b/pkgs/development/compilers/llvm/6/libc++abi.nix @@ -25,7 +25,7 @@ stdenv.mkDerivation { # this should be done in CMake, but having trouble figuring out # the magic combination of necessary CMake variables # if you fancy a try, take a look at - # http://www.cmake.org/Wiki/CMake_RPATH_handling + # https://gitlab.kitware.com/cmake/community/-/wikis/doc/cmake/RPATH-handling install_name_tool -id $out/$file $file done make install @@ -42,7 +42,7 @@ stdenv.mkDerivation { ''; meta = { - homepage = "http://libcxxabi.llvm.org/"; + homepage = "https://libcxxabi.llvm.org/"; description = "A new implementation of low level support for a standard C++ library"; license = with stdenv.lib.licenses; [ ncsa mit ]; maintainers = with stdenv.lib.maintainers; [ vlstill ]; diff --git a/pkgs/development/compilers/llvm/6/lld.nix b/pkgs/development/compilers/llvm/6/lld.nix index e00b71bc33e4..81b94df31194 100644 --- a/pkgs/development/compilers/llvm/6/lld.nix +++ b/pkgs/development/compilers/llvm/6/lld.nix @@ -26,7 +26,7 @@ stdenv.mkDerivation { meta = { description = "The LLVM Linker"; - homepage = "http://lld.llvm.org/"; + homepage = "https://lld.llvm.org/"; license = stdenv.lib.licenses.ncsa; platforms = stdenv.lib.platforms.all; }; diff --git a/pkgs/development/compilers/llvm/6/lldb.nix b/pkgs/development/compilers/llvm/6/lldb.nix index 0445dfed47f5..80e298eaf8c0 100644 --- a/pkgs/development/compilers/llvm/6/lldb.nix +++ b/pkgs/development/compilers/llvm/6/lldb.nix @@ -50,7 +50,7 @@ stdenv.mkDerivation { meta = with stdenv.lib; { description = "A next-generation high-performance debugger"; - homepage = "http://llvm.org/"; + homepage = "https://llvm.org/"; license = licenses.ncsa; platforms = platforms.all; }; diff --git a/pkgs/development/compilers/llvm/6/llvm.nix b/pkgs/development/compilers/llvm/6/llvm.nix index e1e40c8456d5..9f3b5e5ba0d0 100644 --- a/pkgs/development/compilers/llvm/6/llvm.nix +++ b/pkgs/development/compilers/llvm/6/llvm.nix @@ -149,7 +149,7 @@ stdenv.mkDerivation ({ meta = { description = "Collection of modular and reusable compiler and toolchain technologies"; - homepage = "http://llvm.org/"; + homepage = "https://llvm.org/"; license = stdenv.lib.licenses.ncsa; maintainers = with stdenv.lib.maintainers; [ lovek323 raskin dtzWill ]; platforms = stdenv.lib.platforms.all; diff --git a/pkgs/development/compilers/llvm/6/openmp.nix b/pkgs/development/compilers/llvm/6/openmp.nix index efc5553b1d66..c1a4480a5524 100644 --- a/pkgs/development/compilers/llvm/6/openmp.nix +++ b/pkgs/development/compilers/llvm/6/openmp.nix @@ -19,7 +19,7 @@ stdenv.mkDerivation { meta = { description = "Components required to build an executable OpenMP program"; - homepage = "http://openmp.llvm.org/"; + homepage = "https://openmp.llvm.org/"; license = stdenv.lib.licenses.mit; platforms = stdenv.lib.platforms.all; }; |