-
-
Notifications
You must be signed in to change notification settings - Fork 14.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
llvmPackages_11: start with 11.0.0rc2 #94204
Closed
Closed
Changes from all commits
Commits
Show all changes
7 commits
Select commit
Hold shift + click to select a range
5ec239d
llvmPackages_11: start with 11.0.0rc1
ggreif 6108531
Update pkgs/development/compilers/llvm/11/clang/default.nix
ggreif 603c94c
Update pkgs/development/compilers/llvm/11/compiler-rt.nix
ggreif f95b7d7
Update pkgs/development/compilers/llvm/11/llvm.nix
ggreif 3a7794f
get rid of unnecessary patch files
ggreif 5941dbb
Update pkgs/development/compilers/llvm/11/clang/purity.patch
ggreif 3524f4c
llvm_11: 11.0.0rc1 -> 11.0.0rc2
ggreif File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
{ runCommand, stdenv, llvm, lld, version }: | ||
|
||
let | ||
prefix = | ||
if stdenv.hostPlatform != stdenv.targetPlatform | ||
then "${stdenv.targetPlatform.config}-" | ||
else ""; | ||
in runCommand "llvm-binutils-${version}" { preferLocalBuild = true; } '' | ||
mkdir -p $out/bin | ||
for prog in ${lld}/bin/*; do | ||
ln -s $prog $out/bin/${prefix}$(basename $prog) | ||
done | ||
for prog in ${llvm}/bin/*; do | ||
ln -sf $prog $out/bin/${prefix}$(basename $prog) | ||
done | ||
|
||
ln -s ${llvm}/bin/llvm-ar $out/bin/${prefix}ar | ||
ln -s ${llvm}/bin/llvm-as $out/bin/${prefix}as | ||
ln -s ${llvm}/bin/llvm-dwp $out/bin/${prefix}dwp | ||
ln -s ${llvm}/bin/llvm-nm $out/bin/${prefix}nm | ||
ln -s ${llvm}/bin/llvm-objcopy $out/bin/${prefix}objcopy | ||
ln -s ${llvm}/bin/llvm-objdump $out/bin/${prefix}objdump | ||
ln -s ${llvm}/bin/llvm-ranlib $out/bin/${prefix}ranlib | ||
ln -s ${llvm}/bin/llvm-readelf $out/bin/${prefix}readelf | ||
ln -s ${llvm}/bin/llvm-size $out/bin/${prefix}size | ||
ln -s ${llvm}/bin/llvm-strip $out/bin/${prefix}strip | ||
|
||
ln -s ${lld}/bin/lld $out/bin/${prefix}ld | ||
'' |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,117 @@ | ||
{ stdenv, fetch, cmake, libxml2, llvm, version, clang-tools-extra_src, python3, lld | ||
, fixDarwinDylibNames | ||
, enableManpages ? false | ||
}: | ||
|
||
let | ||
self = stdenv.mkDerivation ({ | ||
pname = "clang"; | ||
inherit version; | ||
|
||
src = fetch "clang" "18rv5nxk04fgk4ziix7z4s2cargdpqgvqrk3lnp3wvd6yb5g5p98"; | ||
|
||
unpackPhase = '' | ||
unpackFile $src | ||
mv clang-${version}* clang | ||
sourceRoot=$PWD/clang | ||
unpackFile ${clang-tools-extra_src} | ||
mv clang-tools-extra-* $sourceRoot/tools/extra | ||
''; | ||
|
||
nativeBuildInputs = [ cmake python3 lld ] | ||
++ stdenv.lib.optional enableManpages python3.pkgs.sphinx; | ||
|
||
buildInputs = [ libxml2 llvm ] | ||
++ stdenv.lib.optional stdenv.isDarwin fixDarwinDylibNames; | ||
|
||
cmakeFlags = [ | ||
"-DCMAKE_CXX_FLAGS=-std=c++14" | ||
"-DCLANGD_BUILD_XPC=OFF" | ||
] ++ stdenv.lib.optionals enableManpages [ | ||
"-DCLANG_INCLUDE_DOCS=ON" | ||
"-DLLVM_ENABLE_SPHINX=ON" | ||
"-DSPHINX_OUTPUT_MAN=ON" | ||
"-DSPHINX_OUTPUT_HTML=OFF" | ||
"-DSPHINX_WARNINGS_AS_ERRORS=OFF" | ||
]; | ||
|
||
patches = [ | ||
./purity.patch | ||
# https://reviews.llvm.org/D51899 | ||
]; | ||
|
||
postPatch = '' | ||
sed -i -e 's/DriverArgs.hasArg(options::OPT_nostdlibinc)/true/' \ | ||
-e 's/Args.hasArg(options::OPT_nostdlibinc)/true/' \ | ||
lib/Driver/ToolChains/*.cpp | ||
|
||
# Patch for standalone doc building | ||
sed -i '1s,^,find_package(Sphinx REQUIRED)\n,' docs/CMakeLists.txt | ||
'' + stdenv.lib.optionalString stdenv.hostPlatform.isMusl '' | ||
sed -i -e 's/lgcc_s/lgcc_eh/' lib/Driver/ToolChains/*.cpp | ||
'' + stdenv.lib.optionalString stdenv.hostPlatform.isDarwin '' | ||
substituteInPlace tools/extra/clangd/CMakeLists.txt \ | ||
--replace "NOT HAVE_CXX_ATOMICS64_WITHOUT_LIB" FALSE | ||
''; | ||
|
||
outputs = [ "out" "lib" "python" ]; | ||
|
||
# Clang expects to find LLVMgold in its own prefix | ||
postInstall = '' | ||
if [ -e ${llvm}/lib/LLVMgold.so ]; then | ||
ln -sv ${llvm}/lib/LLVMgold.so $out/lib | ||
fi | ||
|
||
ln -sv $out/bin/clang $out/bin/cpp | ||
|
||
# Move libclang to 'lib' output | ||
moveToOutput "lib/libclang.*" "$lib" | ||
moveToOutput "lib/libclang-cpp.*" "$lib" | ||
substituteInPlace $out/lib/cmake/clang/ClangTargets-release.cmake \ | ||
--replace "\''${_IMPORT_PREFIX}/lib/libclang." "$lib/lib/libclang." \ | ||
--replace "\''${_IMPORT_PREFIX}/lib/libclang-cpp." "$lib/lib/libclang-cpp." | ||
|
||
mkdir -p $python/bin $python/share/clang/ | ||
mv $out/bin/{git-clang-format,scan-view} $python/bin | ||
if [ -e $out/bin/set-xcode-analyzer ]; then | ||
mv $out/bin/set-xcode-analyzer $python/bin | ||
fi | ||
mv $out/share/clang/*.py $python/share/clang | ||
rm $out/bin/c-index-test | ||
''; | ||
|
||
enableParallelBuilding = true; | ||
|
||
passthru = { | ||
isClang = true; | ||
inherit llvm; | ||
} // stdenv.lib.optionalAttrs (stdenv.targetPlatform.isLinux || (stdenv.cc.isGNU && stdenv.cc.cc ? gcc)) { | ||
gcc = if stdenv.cc.isGNU then stdenv.cc.cc else stdenv.cc.cc.gcc; | ||
}; | ||
|
||
meta = { | ||
description = "A c, c++, objective-c, and objective-c++ frontend for the llvm compiler"; | ||
homepage = "https://llvm.org/"; | ||
license = stdenv.lib.licenses.ncsa; | ||
platforms = stdenv.lib.platforms.all; | ||
}; | ||
} // stdenv.lib.optionalAttrs enableManpages { | ||
pname = "clang-manpages"; | ||
|
||
buildPhase = '' | ||
make docs-clang-man | ||
''; | ||
|
||
installPhase = '' | ||
mkdir -p $out/share/man/man1 | ||
# Manually install clang manpage | ||
cp docs/man/*.1 $out/share/man/man1/ | ||
''; | ||
|
||
outputs = [ "out" ]; | ||
|
||
doCheck = false; | ||
|
||
meta.description = "man page for Clang ${version}"; | ||
}); | ||
in self |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
From 4add81bba40dcec62c4ea4481be8e35ac53e89d8 Mon Sep 17 00:00:00 2001 | ||
From: Will Dietz <w@wdtz.org> | ||
Date: Thu, 18 May 2017 11:56:12 -0500 | ||
Subject: [PATCH] "purity" patch for 5.0 | ||
|
||
--- | ||
lib/Driver/ToolChains/Gnu.cpp | 7 ------- | ||
1 file changed, 7 deletions(-) | ||
|
||
diff --git a/lib/Driver/ToolChains/Gnu.cpp b/lib/Driver/ToolChains/Gnu.cpp | ||
index fe3c0191bb..c6a482bece 100644 | ||
--- a/lib/Driver/ToolChains/Gnu.cpp | ||
+++ b/lib/Driver/ToolChains/Gnu.cpp | ||
@@ -487,12 +487,6 @@ void tools::gnutools::Linker::ConstructJob(Compilation &C, const JobAction &JA, | ||
if (!IsStatic) { | ||
if (Args.hasArg(options::OPT_rdynamic)) | ||
CmdArgs.push_back("-export-dynamic"); | ||
- | ||
- if (!Args.hasArg(options::OPT_shared) && !IsStaticPIE) { | ||
- CmdArgs.push_back("-dynamic-linker"); | ||
- CmdArgs.push_back(Args.MakeArgString(Twine(D.DyldPrefix) + | ||
- ToolChain.getDynamicLinker(Args))); | ||
- } | ||
} | ||
|
||
CmdArgs.push_back("-o"); | ||
-- | ||
2.11.0 |
32 changes: 32 additions & 0 deletions
32
pkgs/development/compilers/llvm/11/compiler-rt-armv7l.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,32 @@ | ||
diff -ur compiler-rt-10.0.0.src/cmake/builtin-config-ix.cmake compiler-rt-10.0.0.src-patched/cmake/builtin-config-ix.cmake | ||
--- compiler-rt-10.0.0.src/cmake/builtin-config-ix.cmake 2020-03-24 00:01:02.000000000 +0900 | ||
+++ compiler-rt-10.0.0.src-patched/cmake/builtin-config-ix.cmake 2020-05-10 03:42:00.883450706 +0900 | ||
@@ -24,7 +24,7 @@ | ||
|
||
|
||
set(ARM64 aarch64) | ||
-set(ARM32 arm armhf armv6m armv7m armv7em armv7 armv7s armv7k) | ||
+set(ARM32 arm armhf armv6m armv7m armv7em armv7 armv7s armv7k armv7l) | ||
set(HEXAGON hexagon) | ||
set(X86 i386) | ||
set(X86_64 x86_64) | ||
diff -ur compiler-rt-10.0.0.src/lib/builtins/CMakeLists.txt compiler-rt-10.0.0.src-patched/lib/builtins/CMakeLists.txt | ||
--- compiler-rt-10.0.0.src/lib/builtins/CMakeLists.txt 2020-03-24 00:01:02.000000000 +0900 | ||
+++ compiler-rt-10.0.0.src-patched/lib/builtins/CMakeLists.txt 2020-05-10 03:44:49.468579650 +0900 | ||
@@ -474,6 +474,7 @@ | ||
set(armv7_SOURCES ${arm_SOURCES}) | ||
set(armv7s_SOURCES ${arm_SOURCES}) | ||
set(armv7k_SOURCES ${arm_SOURCES}) | ||
+set(armv7l_SOURCES ${arm_SOURCES}) | ||
set(arm64_SOURCES ${aarch64_SOURCES}) | ||
|
||
# macho_embedded archs | ||
@@ -595,7 +596,7 @@ | ||
foreach (arch ${BUILTIN_SUPPORTED_ARCH}) | ||
if (CAN_TARGET_${arch}) | ||
# For ARM archs, exclude any VFP builtins if VFP is not supported | ||
- if (${arch} MATCHES "^(arm|armhf|armv7|armv7s|armv7k|armv7m|armv7em)$") | ||
+ if (${arch} MATCHES "^(arm|armhf|armv7|armv7s|armv7k|armv7l|armv7m|armv7em)$") | ||
string(REPLACE ";" " " _TARGET_${arch}_CFLAGS "${TARGET_${arch}_CFLAGS}") | ||
check_compile_definition(__VFP_FP__ "${CMAKE_C_FLAGS} ${_TARGET_${arch}_CFLAGS}" COMPILER_RT_HAS_${arch}_VFP) | ||
if(NOT COMPILER_RT_HAS_${arch}_VFP) |
33 changes: 33 additions & 0 deletions
33
pkgs/development/compilers/llvm/11/compiler-rt-codesign.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
From 3dec5f3475a26aeb4678627795c4b67c6b7b4785 Mon Sep 17 00:00:00 2001 | ||
From: Will Dietz <w@wdtz.org> | ||
Date: Tue, 19 Sep 2017 13:13:06 -0500 | ||
Subject: [PATCH] remove codesign use on Apple, disable ios sim testing that | ||
needs it | ||
|
||
--- | ||
cmake/Modules/AddCompilerRT.cmake | 8 ------ | ||
test/asan/CMakeLists.txt | 52 --------------------------------------- | ||
test/tsan/CMakeLists.txt | 47 ----------------------------------- | ||
3 files changed, 107 deletions(-) | ||
|
||
diff --git a/cmake/Modules/AddCompilerRT.cmake b/cmake/Modules/AddCompilerRT.cmake | ||
index bc5fb9ff7..b64eb4246 100644 | ||
--- a/cmake/Modules/AddCompilerRT.cmake | ||
+++ b/cmake/Modules/AddCompilerRT.cmake | ||
@@ -210,14 +210,6 @@ function(add_compiler_rt_runtime name type) | ||
set_target_properties(${libname} PROPERTIES IMPORT_PREFIX "") | ||
set_target_properties(${libname} PROPERTIES IMPORT_SUFFIX ".lib") | ||
endif() | ||
- if(APPLE) | ||
- # Ad-hoc sign the dylibs | ||
- add_custom_command(TARGET ${libname} | ||
- POST_BUILD | ||
- COMMAND codesign --sign - $<TARGET_FILE:${libname}> | ||
- WORKING_DIRECTORY ${COMPILER_RT_LIBRARY_OUTPUT_DIR} | ||
- ) | ||
- endif() | ||
endif() | ||
install(TARGETS ${libname} | ||
ARCHIVE DESTINATION ${COMPILER_RT_LIBRARY_INSTALL_DIR} | ||
2.14.1 | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,85 @@ | ||
{ stdenv, version, fetch, cmake, python3, llvm, libcxxabi }: | ||
|
||
let | ||
|
||
useLLVM = stdenv.hostPlatform.useLLVM or false; | ||
bareMetal = stdenv.hostPlatform.parsed.kernel.name == "none"; | ||
inherit (stdenv.hostPlatform) isMusl; | ||
|
||
in | ||
|
||
stdenv.mkDerivation rec { | ||
pname = "compiler-rt"; | ||
inherit version; | ||
src = fetch pname "0qfgap6acxffm01hzk38pmzq8ac3isk90531dz0qf7fd5015jvvg"; | ||
|
||
nativeBuildInputs = [ cmake python3 llvm ]; | ||
buildInputs = stdenv.lib.optional stdenv.hostPlatform.isDarwin libcxxabi; | ||
|
||
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 | ||
]# ++ stdenv.lib.optional stdenv.hostPlatform.isMusl ./sanitizers-nongnu.patch | ||
++ stdenv.lib.optional stdenv.hostPlatform.isAarch32 ./compiler-rt-armv7l.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 | ||
# can build this. If we didn't do it, basically the entire nixpkgs on Darwin would have an unfree dependency and we'd | ||
# get no binary cache for the entire platform. If you really find yourself wanting the TSAN, make this controllable by | ||
# a flag and turn the flag off during the stdenv build. | ||
postPatch = stdenv.lib.optionalString (!stdenv.isDarwin) '' | ||
substituteInPlace cmake/builtin-config-ix.cmake \ | ||
--replace 'set(X86 i386)' 'set(X86 i386 i486 i586 i686)' | ||
'' + 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.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/crtbegin.o | ||
ln -s $out/lib/*/clang_rt.crtend-*.o $out/lib/crtend.o | ||
ln -s $out/lib/*/clang_rt.crtbegin_shared-*.o $out/lib/crtbeginS.o | ||
ln -s $out/lib/*/clang_rt.crtend_shared-*.o $out/lib/crtendS.o | ||
''; | ||
|
||
enableParallelBuilding = true; | ||
} |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Feel free to make a multi-line suggestion! (By dragging the
+
downwards, or adding a commit; as a reviewer you should have the rights.)There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Oops, I committed too soon. Should I touch it up?