diff options
Diffstat (limited to 'source/d/llvm')
-rw-r--r-- | source/d/llvm/clang.toolchains.i586.triple.diff | 8 | ||||
-rwxr-xr-x | source/d/llvm/llvm.SlackBuild | 34 | ||||
-rw-r--r-- | source/d/llvm/llvm.url | 44 | ||||
-rw-r--r-- | source/d/llvm/llvm.wrong.LLVM_LIBDIR_SUFFIX.patch | 11 | ||||
-rw-r--r-- | source/d/llvm/missing-runtime-modules/HandleFlags.cmake | 113 | ||||
-rw-r--r-- | source/d/llvm/missing-runtime-modules/WarningFlags.cmake | 77 |
6 files changed, 47 insertions, 240 deletions
diff --git a/source/d/llvm/clang.toolchains.i586.triple.diff b/source/d/llvm/clang.toolchains.i586.triple.diff index e51f3cd52..71497bf5f 100644 --- a/source/d/llvm/clang.toolchains.i586.triple.diff +++ b/source/d/llvm/clang.toolchains.i586.triple.diff @@ -1,10 +1,10 @@ ---- ./tools/clang/lib/Driver/ToolChains/Gnu.cpp.orig 2022-04-25 22:44:44.000000000 -0500 -+++ ./tools/clang/lib/Driver/ToolChains/Gnu.cpp 2022-04-28 13:34:46.834049926 -0500 -@@ -2107,6 +2107,7 @@ +--- ./tools/clang/lib/Driver/ToolChains/Gnu.cpp.orig 2024-03-06 13:59:35.328900971 -0600 ++++ ./tools/clang/lib/Driver/ToolChains/Gnu.cpp 2024-03-06 14:02:01.218892901 -0600 +@@ -2490,6 +2490,7 @@ static const char *const X86Triples[] = { "i586-linux-gnu", "i686-linux-gnu", "i686-pc-linux-gnu", "i386-redhat-linux6E", "i686-redhat-linux", "i386-redhat-linux", + "i586-slackware-linux", "i686-slackware-linux", - "i586-suse-linux", "i686-montavista-linux", "i686-gnu", + "i586-suse-linux", "i686-montavista-linux", }; diff --git a/source/d/llvm/llvm.SlackBuild b/source/d/llvm/llvm.SlackBuild index f285bf332..5ed30e9d1 100755 --- a/source/d/llvm/llvm.SlackBuild +++ b/source/d/llvm/llvm.SlackBuild @@ -3,7 +3,7 @@ # Slackware build script for llvm # Copyright 2008-2016 Heinz Wiesinger, Amsterdam, The Netherlands -# Copyright 2012, 2013, 2014, 2015, 2016, 2018, 2019, 2020, 2021, 2022, 2023 Patrick J. Volkerding, Sebeka, MN, USA +# Copyright 2012, 2013, 2014, 2015, 2016, 2018, 2019, 2020, 2021, 2022, 2023, 2024 Patrick J. Volkerding, Sebeka, MN, USA # All rights reserved. # # Redistribution and use of this script, with or without modification, is @@ -99,13 +99,6 @@ PY2=$(python -c 'from distutils.sysconfig import get_python_lib; print(get_pytho # Python3 short version: PY3=$(python3 -c 'from distutils.sysconfig import get_python_lib; print(get_python_lib())' | cut -f 2 -d n | cut -f 1 -d /) -# Sadly, glibc-2.30 exposed some sort of problem with clang and icecream. -# The symptom is a compile failure that says none of the types in -# <linux/types.h> are defined, even though they are. gcc/g++ seem unaffected. -# For now, not much choice other than to disable this. -# Don't use icecream: -#PATH=$(echo $PATH | sed "s|/usr/libexec/icecc/bin||g" | tr -s : | sed "s/^://g" | sed "s/:$//g") - rm -rf $PKG $BUILDDIR mkdir -p $TMP $PKG $BUILDDIR cd $BUILDDIR @@ -123,6 +116,10 @@ mv cmake-$VERSION.src cmake echo "Extracting $CWD/third-party-$VERSION.src.tar.xz..." tar xf $CWD/third-party-$VERSION.src.tar.xz || exit 1 mv third-party-$VERSION.src third-party +echo "Extracting $CWD/runtimes-$VERSION.src.tar.xz..." +tar xf $CWD/runtimes-$VERSION.src.tar.xz || exit 1 +mv runtimes-${VERSION}.src/cmake/Modules/* cmake/Modules || exit 1 +rm -r runtimes-${VERSION}.src rm -rf $PKGNAM-${VERSION}.src $PKGNAM-${VERSION} echo "Extracting $CWD/$PKGNAM-$VERSION.src.tar.xz..." @@ -182,9 +179,8 @@ if [ -f ./tools/lldb/source/Utility/CMakeLists.txt ]; then fi fi -# These files are not present for some reason, but they were found in a git -# pull of the entire project: -cp -a $CWD/missing-runtime-modules/*.cmake ../cmake/Modules/ +# Oops, the rc tag was left in with the 18.1.0 release: +zcat $CWD/llvm.wrong.LLVM_LIBDIR_SUFFIX.patch.gz | patch -p1 --verbose || exit 1 # These hackish links seem to be required... cd .. @@ -243,6 +239,7 @@ cd build -DCOMPILER_RT_BUILD_LIBFUZZER=OFF \ -DCLANG_DEFAULT_PIE_ON_LINUX=ON \ -DLIBCXX_ENABLE_ABI_LINKER_SCRIPT=ON \ + -DLIBCXXABI_USE_LLVM_UNWINDER=OFF \ $CLANGD \ .. || exit 1 @@ -288,12 +285,15 @@ python3 -m compileall "$PKG/usr/lib$LIBDIRSUFFIX/python${PY3}/site-packages/clan python3 -O -m compileall "$PKG/usr/lib$LIBDIRSUFFIX/python${PY3}/site-packages/clang" python -m compileall "$PKG/usr/lib$LIBDIRSUFFIX/python${PY2}/site-packages/lldb" python -O -m compileall "$PKG/usr/lib$LIBDIRSUFFIX/python${PY2}/site-packages/lldb" -python -m compileall "$PKG/usr/share/scan-view" -python -O -m compileall "$PKG/usr/share/scan-view" -python -m compileall "$PKG/usr/share/clang" -python -O -m compileall "$PKG/usr/share/clang" -python -m compileall "$PKG/usr/share/opt-viewer" -python -O -m compileall "$PKG/usr/share/opt-viewer" +python3 -m compileall "$PKG/usr/share/scan-view" +python3 -O -m compileall "$PKG/usr/share/scan-view" +python3 -m compileall "$PKG/usr/share/clang" +python3 -O -m compileall "$PKG/usr/share/clang" +python3 -m compileall "$PKG/usr/share/opt-viewer" +python3 -O -m compileall "$PKG/usr/share/opt-viewer" + +# Nevermind, we're not shipping this python2 crap: +rm -rf $PKG/usr/lib$LIBDIRSUFFIX/python${PY2} # Move man page directory: mv $PKG/usr/share/man $PKG/usr/ diff --git a/source/d/llvm/llvm.url b/source/d/llvm/llvm.url index 89a3e3aba..52c7d8076 100644 --- a/source/d/llvm/llvm.url +++ b/source/d/llvm/llvm.url @@ -1,29 +1,15 @@ -https://github.com/llvm/llvm-project/releases/download/llvmorg-17.0.6/llvm-17.0.6.src.tar.xz -https://github.com/llvm/llvm-project/releases/download/llvmorg-17.0.6/clang-17.0.6.src.tar.xz -https://github.com/llvm/llvm-project/releases/download/llvmorg-17.0.6/clang-tools-extra-17.0.6.src.tar.xz -https://github.com/llvm/llvm-project/releases/download/llvmorg-17.0.6/compiler-rt-17.0.6.src.tar.xz -https://github.com/llvm/llvm-project/releases/download/llvmorg-17.0.6/flang-17.0.6.src.tar.xz -https://github.com/llvm/llvm-project/releases/download/llvmorg-17.0.6/lldb-17.0.6.src.tar.xz -https://github.com/llvm/llvm-project/releases/download/llvmorg-17.0.6/openmp-17.0.6.src.tar.xz -https://github.com/llvm/llvm-project/releases/download/llvmorg-17.0.6/polly-17.0.6.src.tar.xz -https://github.com/llvm/llvm-project/releases/download/llvmorg-17.0.6/libcxx-17.0.6.src.tar.xz -https://github.com/llvm/llvm-project/releases/download/llvmorg-17.0.6/libcxxabi-17.0.6.src.tar.xz -https://github.com/llvm/llvm-project/releases/download/llvmorg-17.0.6/lld-17.0.6.src.tar.xz -https://github.com/llvm/llvm-project/releases/download/llvmorg-17.0.6/libunwind-17.0.6.src.tar.xz -https://github.com/llvm/llvm-project/releases/download/llvmorg-17.0.6/cmake-17.0.6.src.tar.xz -https://github.com/llvm/llvm-project/releases/download/llvmorg-17.0.6/third-party-17.0.6.src.tar.xz - -#http://llvm.org/releases/17.0.6/llvm-17.0.6.src.tar.xz -#http://llvm.org/releases/17.0.6/clang-17.0.6.src.tar.xz -#http://llvm.org/releases/17.0.6/clang-tools-extra-17.0.6.src.tar.xz -#http://llvm.org/releases/17.0.6/compiler-rt-17.0.6.src.tar.xz -#http://llvm.org/releases/17.0.6/flang-17.0.6.src.tar.xz -#http://llvm.org/releases/17.0.6/lldb-17.0.6.src.tar.xz -#http://llvm.org/releases/17.0.6/openmp-17.0.6.src.tar.xz -#http://llvm.org/releases/17.0.6/polly-17.0.6.src.tar.xz -#http://llvm.org/releases/17.0.6/libcxx-17.0.6.src.tar.xz -#http://llvm.org/releases/17.0.6/libcxxabi-17.0.6.src.tar.xz -#http://llvm.org/releases/17.0.6/lld-17.0.6.src.tar.xz -#http://llvm.org/releases/17.0.6/libunwind-17.0.6.src.tar.xz -#http://llvm.org/releases/17.0.6/cmake-17.0.6.src.tar.xz -#http://llvm.org/releases/17.0.6/third-party-17.0.6.src.tar.xz +https://github.com/llvm/llvm-project/releases/download/llvmorg-18.1.0/llvm-18.1.0.src.tar.xz +https://github.com/llvm/llvm-project/releases/download/llvmorg-18.1.0/clang-18.1.0.src.tar.xz +https://github.com/llvm/llvm-project/releases/download/llvmorg-18.1.0/clang-tools-extra-18.1.0.src.tar.xz +https://github.com/llvm/llvm-project/releases/download/llvmorg-18.1.0/compiler-rt-18.1.0.src.tar.xz +https://github.com/llvm/llvm-project/releases/download/llvmorg-18.1.0/flang-18.1.0.src.tar.xz +https://github.com/llvm/llvm-project/releases/download/llvmorg-18.1.0/lldb-18.1.0.src.tar.xz +https://github.com/llvm/llvm-project/releases/download/llvmorg-18.1.0/openmp-18.1.0.src.tar.xz +https://github.com/llvm/llvm-project/releases/download/llvmorg-18.1.0/polly-18.1.0.src.tar.xz +https://github.com/llvm/llvm-project/releases/download/llvmorg-18.1.0/libcxx-18.1.0.src.tar.xz +https://github.com/llvm/llvm-project/releases/download/llvmorg-18.1.0/libcxxabi-18.1.0.src.tar.xz +https://github.com/llvm/llvm-project/releases/download/llvmorg-18.1.0/lld-18.1.0.src.tar.xz +https://github.com/llvm/llvm-project/releases/download/llvmorg-18.1.0/libunwind-18.1.0.src.tar.xz +https://github.com/llvm/llvm-project/releases/download/llvmorg-18.1.0/cmake-18.1.0.src.tar.xz +https://github.com/llvm/llvm-project/releases/download/llvmorg-18.1.0/third-party-18.1.0.src.tar.xz +https://github.com/llvm/llvm-project/releases/download/llvmorg-18.1.0/runtimes-18.1.0.src.tar.xz diff --git a/source/d/llvm/llvm.wrong.LLVM_LIBDIR_SUFFIX.patch b/source/d/llvm/llvm.wrong.LLVM_LIBDIR_SUFFIX.patch new file mode 100644 index 000000000..68875b247 --- /dev/null +++ b/source/d/llvm/llvm.wrong.LLVM_LIBDIR_SUFFIX.patch @@ -0,0 +1,11 @@ +--- ./CMakeLists.txt.orig 2024-02-27 11:18:54.000000000 -0600 ++++ ./CMakeLists.txt 2024-03-06 17:58:39.012200994 -0600 +@@ -25,7 +25,7 @@ + set(LLVM_VERSION_PATCH 0) + endif() + if(NOT DEFINED LLVM_VERSION_SUFFIX) +- set(LLVM_VERSION_SUFFIX rc) ++ set(LLVM_VERSION_SUFFIX) + endif() + + if (NOT PACKAGE_VERSION) diff --git a/source/d/llvm/missing-runtime-modules/HandleFlags.cmake b/source/d/llvm/missing-runtime-modules/HandleFlags.cmake deleted file mode 100644 index 4a62b6716..000000000 --- a/source/d/llvm/missing-runtime-modules/HandleFlags.cmake +++ /dev/null @@ -1,113 +0,0 @@ - -include(CheckCXXCompilerFlag) - -unset(add_flag_if_supported) - -# Mangle the name of a compiler flag into a valid CMake identifier. -# Ex: --std=c++11 -> STD_EQ_CXX11 -macro(mangle_name str output) - string(STRIP "${str}" strippedStr) - string(REGEX REPLACE "^/" "" strippedStr "${strippedStr}") - string(REGEX REPLACE "^-+" "" strippedStr "${strippedStr}") - string(REGEX REPLACE "-+$" "" strippedStr "${strippedStr}") - string(REPLACE "-" "_" strippedStr "${strippedStr}") - string(REPLACE "=" "_EQ_" strippedStr "${strippedStr}") - string(REPLACE "+" "X" strippedStr "${strippedStr}") - string(TOUPPER "${strippedStr}" ${output}) -endmacro() - -# Remove a list of flags from all CMake variables that affect compile flags. -# This can be used to remove unwanted flags specified on the command line -# or added in other parts of LLVM's cmake configuration. -macro(remove_flags) - foreach(var ${ARGN}) - string(REPLACE "${var}" "" CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG}") - string(REPLACE "${var}" "" CMAKE_CXX_FLAGS_MINSIZEREL "${CMAKE_CXX_FLAGS_MINSIZEREL}") - string(REPLACE "${var}" "" CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE}") - string(REPLACE "${var}" "" CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO}") - string(REPLACE "${var}" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") - string(REPLACE "${var}" "" CMAKE_C_FLAGS "${CMAKE_C_FLAGS}") - string(REPLACE "${var}" "" CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS}") - string(REPLACE "${var}" "" CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS}") - string(REPLACE "${var}" "" CMAKE_SHARED_MODULE_FLAGS "${CMAKE_SHARED_MODULE_FLAGS}") - remove_definitions(${var}) - endforeach() -endmacro(remove_flags) - -macro(check_flag_supported flag) - mangle_name("${flag}" flagname) - check_cxx_compiler_flag("${flag}" "CXX_SUPPORTS_${flagname}_FLAG") -endmacro() - -macro(append_flags DEST) - foreach(value ${ARGN}) - list(APPEND ${DEST} ${value}) - list(APPEND ${DEST} ${value}) - endforeach() -endmacro() - -# If the specified 'condition' is true then append the specified list of flags to DEST -macro(append_flags_if condition DEST) - if (${condition}) - list(APPEND ${DEST} ${ARGN}) - endif() -endmacro() - -# Add each flag in the list specified by DEST if that flag is supported by the current compiler. -macro(append_flags_if_supported DEST) - foreach(flag ${ARGN}) - mangle_name("${flag}" flagname) - check_cxx_compiler_flag("${flag}" "CXX_SUPPORTS_${flagname}_FLAG") - append_flags_if(CXX_SUPPORTS_${flagname}_FLAG ${DEST} ${flag}) - endforeach() -endmacro() - -# Add a macro definition if condition is true. -macro(define_if condition def) - if (${condition}) - add_definitions(${def}) - endif() -endmacro() - -# Add a macro definition if condition is not true. -macro(define_if_not condition def) - if (NOT ${condition}) - add_definitions(${def}) - endif() -endmacro() - -# Add a macro definition to the __config_site file if the specified condition -# is 'true'. Note that '-D${def}' is not added. Instead it is expected that -# the build include the '__config_site' header. -macro(config_define_if condition def) - if (${condition}) - set(${def} ON) - endif() -endmacro() - -macro(config_define_if_not condition def) - if (NOT ${condition}) - set(${def} ON) - endif() -endmacro() - -macro(config_define value def) - set(${def} ${value}) -endmacro() - -# Turn a comma separated CMake list into a space separated string. -macro(split_list listname) - string(REPLACE ";" " " ${listname} "${${listname}}") -endmacro() - -# For each specified flag, add that compile flag to the provided target. -# The flags are added with the given visibility, i.e. PUBLIC|PRIVATE|INTERFACE. -function(target_add_compile_flags_if_supported target visibility) - foreach(flag ${ARGN}) - mangle_name("${flag}" flagname) - check_cxx_compiler_flag("${flag}" "CXX_SUPPORTS_${flagname}_FLAG") - if (CXX_SUPPORTS_${flagname}_FLAG) - target_compile_options(${target} ${visibility} ${flag}) - endif() - endforeach() -endfunction() diff --git a/source/d/llvm/missing-runtime-modules/WarningFlags.cmake b/source/d/llvm/missing-runtime-modules/WarningFlags.cmake deleted file mode 100644 index d06409841..000000000 --- a/source/d/llvm/missing-runtime-modules/WarningFlags.cmake +++ /dev/null @@ -1,77 +0,0 @@ -include(HandleFlags) - -# Warning flags =============================================================== -function(cxx_add_warning_flags target enable_werror enable_pedantic) - target_compile_definitions(${target} PUBLIC -D_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) - if (MSVC) - # -W4 is the cl.exe/clang-cl equivalent of -Wall. (In cl.exe and clang-cl, - # -Wall is equivalent to -Weverything in GCC style compiler drivers.) - target_add_compile_flags_if_supported(${target} PRIVATE -W4) - else() - target_add_compile_flags_if_supported(${target} PRIVATE -Wall) - endif() - # TODO: Should -Wconversion be enabled? - target_add_compile_flags_if_supported(${target} PRIVATE - -Wextra - -Wnewline-eof - -Wshadow - -Wwrite-strings - -Wno-unused-parameter - -Wno-long-long - -Werror=return-type - -Wextra-semi - -Wundef - -Wunused-template - -Wformat-nonliteral - ) - - if ("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang") - target_add_compile_flags_if_supported(${target} PRIVATE - -Wno-user-defined-literals - -Wno-covered-switch-default - -Wno-suggest-override - ) - if (LIBCXX_TARGETING_CLANG_CL) - target_add_compile_flags_if_supported(${target} PRIVATE - -Wno-c++98-compat - -Wno-c++98-compat-pedantic - -Wno-c++11-compat - -Wno-undef - -Wno-reserved-id-macro - -Wno-gnu-include-next - -Wno-gcc-compat # For ignoring "'diagnose_if' is a clang extension" warnings - -Wno-zero-as-null-pointer-constant # FIXME: Remove this and fix all occurrences. - -Wno-deprecated-dynamic-exception-spec # For auto_ptr - -Wno-sign-conversion - -Wno-old-style-cast - -Wno-deprecated # FIXME: Remove this and fix all occurrences. - -Wno-shift-sign-overflow # FIXME: Why do we need this with clang-cl but not clang? - -Wno-double-promotion # FIXME: remove me - ) - endif() - - elseif("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU") - - target_add_compile_flags_if_supported(${target} PRIVATE - -Wstrict-aliasing=2 - -Wstrict-overflow=4 - -Wno-attributes - -Wno-literal-suffix - -Wno-c++14-compat - -Wno-noexcept-type - -Wno-suggest-override - ) - - endif() - if (${enable_werror}) - target_add_compile_flags_if_supported(${target} PRIVATE -Werror) - target_add_compile_flags_if_supported(${target} PRIVATE -WX) - else() - # TODO(EricWF) Remove this. We shouldn't be suppressing errors when -Werror is - # added elsewhere. - target_add_compile_flags_if_supported(${target} PRIVATE -Wno-error) - endif() - if (${enable_pedantic}) - target_add_compile_flags_if_supported(${target} PRIVATE -pedantic) - endif() -endfunction() |