New package: llvm19-19.1.3

This commit is contained in:
Daniel Martinez 2024-07-29 08:58:45 -04:00 committed by classabbyamp
parent b46984a3a5
commit 8ec1c253c4
No known key found for this signature in database
GPG Key ID: 6BE0755918A4C7F5
57 changed files with 1659 additions and 33 deletions

View File

@ -987,14 +987,18 @@ libuchardet.so.0 uchardet-0.0.6_1
libgtksourceviewmm-3.0.so.0 gtksourceviewmm-3.2.0_1
libyajl.so.2 yajl-2.0.1_1
libconfuse.so.2 confuse-3.2.1_1
liblldb.so.19.1 liblldb19-19.1.0_1
liblldb.so.18.1 liblldb18-18.1.8_1
liblldb.so.17 liblldb17-17.0.6_3
libclang.so.19.1 libclang19-19.1.0_1
libclang.so.18.1 libclang18-18.1.8_1
libclang.so.17 libclang17-17.0.6_1
libclang-cpp.so.19.1 libclang-cpp19-19.1.0_1
libclang-cpp.so.18.1 libclang-cpp18-18.1.8_1
libclang-cpp.so.17 libclang-cpp17-17.0.6_1
libLLVM-17.so libllvm17-17.0.6_1
libLLVM.so.18.1 libllvm18-18.1.8_1
libLLVM.so.19.1 libllvm19-19.1.0_1
libLLVMSPIRVLib.so.18.1 SPIRV-LLVM-Translator-18.1.2_1
libomp.so.5 libomp-17.0.6_1
libomptarget.so.18.1 libomp-18.1.8_1

View File

@ -0,0 +1 @@
llvm19

View File

@ -0,0 +1 @@
llvm19

1
srcpkgs/clang-analyzer19 Symbolic link
View File

@ -0,0 +1 @@
llvm19

1
srcpkgs/clang-tools-extra19 Symbolic link
View File

@ -0,0 +1 @@
llvm19

1
srcpkgs/clang19 Symbolic link
View File

@ -0,0 +1 @@
llvm19

1
srcpkgs/clang19-devel Symbolic link
View File

@ -0,0 +1 @@
llvm19

1
srcpkgs/clang19-headers Symbolic link
View File

@ -0,0 +1 @@
llvm19

1
srcpkgs/compiler-rt19 Symbolic link
View File

@ -0,0 +1 @@
llvm19

1
srcpkgs/flang19 Symbolic link
View File

@ -0,0 +1 @@
llvm19

1
srcpkgs/flang19-devel Symbolic link
View File

@ -0,0 +1 @@
llvm19

1
srcpkgs/libclang-cpp19 Symbolic link
View File

@ -0,0 +1 @@
llvm19

1
srcpkgs/libclang19 Symbolic link
View File

@ -0,0 +1 @@
llvm19

1
srcpkgs/libclc19 Symbolic link
View File

@ -0,0 +1 @@
llvm19

View File

@ -1 +1 @@
llvm18
llvm19

View File

@ -1 +1 @@
llvm18
llvm19

View File

@ -1 +1 @@
llvm18
llvm19

View File

@ -1 +1 @@
llvm18
llvm19

1
srcpkgs/liblldb19 Symbolic link
View File

@ -0,0 +1 @@
llvm19

1
srcpkgs/libllvm19 Symbolic link
View File

@ -0,0 +1 @@
llvm19

1
srcpkgs/libomp19 Symbolic link
View File

@ -0,0 +1 @@
llvm19

1
srcpkgs/libomp19-devel Symbolic link
View File

@ -0,0 +1 @@
llvm19

1
srcpkgs/lld19 Symbolic link
View File

@ -0,0 +1 @@
llvm19

1
srcpkgs/lld19-devel Symbolic link
View File

@ -0,0 +1 @@
llvm19

View File

@ -1 +0,0 @@
llvm18

1
srcpkgs/lldb19 Symbolic link
View File

@ -0,0 +1 @@
llvm19

1
srcpkgs/lldb19-devel Symbolic link
View File

@ -0,0 +1 @@
llvm19

1
srcpkgs/llvm-bolt19 Symbolic link
View File

@ -0,0 +1 @@
llvm19

View File

@ -1 +1 @@
llvm18
llvm19

View File

@ -1 +1 @@
llvm18
llvm19

View File

@ -1 +0,0 @@
llvm18

View File

@ -1 +0,0 @@
llvm18

View File

@ -47,8 +47,9 @@ conflicts="llvm17>=0 llvm15>=0"
lib32disabled=yes
python_version=3
build_options="clang clang_tools_extra lld mlir libclc polly lldb flang bolt openmp lto graphviz"
build_options_default="clang clang_tools_extra lld mlir libclc polly lldb openmp"
build_options="clang clang_tools_extra lld mlir libclc polly lldb flang bolt
openmp libcxx libunwind lto graphviz"
build_options_default="clang clang_tools_extra lld mlir libclc polly lldb openmp libcxx"
if [ "$XBPS_TARGET_WORDSIZE" = "64" ]; then
build_options_default+=" flang bolt"
@ -128,13 +129,14 @@ if [ "$build_option_openmp" ]; then
fi
# enable if runtime subpackages link to this version of llvm
if true; then
if [ "$build_option_libunwind" ]; then
subpackages+=" llvm-libunwind llvm-libunwind-devel "
_enabled_runtimes+=";libunwind"
fi
if [ "$build_option_libcxx" ]; then
subpackages+=" libcxx libcxx-devel libcxxabi libcxxabi-devel "
_enabled_runtimes+=";libcxxabi;libcxx"
fi
configure_args+=" -DLLVM_ENABLE_RUNTIMES=${_enabled_runtimes}"
@ -281,10 +283,21 @@ post_install() {
rm -rf ${DESTDIR}/usr/share/gdb
if [ "$build_option_libcxx" ]; then
# Install libcxxabi headers
vinstall ${wrksrc}/libcxxabi/include/__cxxabi_config.h 644 usr/include
vinstall ${wrksrc}/libcxxabi/include/cxxabi.h 644 usr/include
cmake -DCMAKE_INSTALL_PREFIX=${DESTDIR}/usr \
-P ${wrksrc}/${build_wrksrc}/runtimes-doc/libcxx/docs/cmake_install.cmake
LIBCXX_DOCS=usr/share/doc/LLVM/libcxx
vmkdir ${LIBCXX_DOCS}
vcopy ${wrksrc}/${build_wrksrc}/runtimes-doc/libcxx/docs/html ${LIBCXX_DOCS}
fi
if [ "$build_option_libunwind" ]; then
# Install libunwind headers
vinstall ${wrksrc}/libunwind/include/__libunwind_config.h 644 usr/include
vinstall ${wrksrc}/libunwind/include/libunwind.h 644 usr/include
@ -292,20 +305,16 @@ post_install() {
vinstall ${wrksrc}/libunwind/include/mach-o/compact_unwind_encoding.h \
644 usr/include/mach-o
# Install libcxx and libunwind docs
cmake -DCMAKE_INSTALL_PREFIX=${DESTDIR}/usr -P ${wrksrc}/${build_wrksrc}/runtimes-doc/libcxx/docs/cmake_install.cmake
cmake -DCMAKE_INSTALL_PREFIX=${DESTDIR}/usr -P ${wrksrc}/${build_wrksrc}/runtimes-doc/libunwind/docs/cmake_install.cmake
# Can this be disabled some other way?
rm -rf ${DESTDIR}/usr/lib64
LIBCXX_DOCS=usr/share/doc/LLVM/libcxx
vmkdir ${LIBCXX_DOCS}
vcopy ${wrksrc}/${build_wrksrc}/runtimes-doc/libcxx/docs/html ${LIBCXX_DOCS}
cmake -DCMAKE_INSTALL_PREFIX=${DESTDIR}/usr \
-P ${wrksrc}/${build_wrksrc}/runtimes-doc/libunwind/docs/cmake_install.cmake
LIBUNWIND_DOCS=usr/share/doc/LLVM/libunwind
vmkdir ${LIBUNWIND_DOCS}
vcopy ${wrksrc}/${build_wrksrc}/runtimes-doc/libunwind/docs/html ${LIBUNWIND_DOCS}
fi
# Can this be disabled some other way?
rm -rf ${DESTDIR}/usr/lib64
}
clang18_package() {

1
srcpkgs/llvm19-cross-tools Symbolic link
View File

@ -0,0 +1 @@
llvm19

1
srcpkgs/llvm19-devel Symbolic link
View File

@ -0,0 +1 @@
llvm19

1
srcpkgs/llvm19-doc Symbolic link
View File

@ -0,0 +1 @@
llvm19

View File

@ -0,0 +1,9 @@
#include <bits/wordsize.h>
#if __WORDSIZE == 32
#include "llvm-config-32.h"
#elif __WORDSIZE == 64
#include "llvm-config-64.h"
#else
#error "Unknown word size"
#endif

View File

@ -0,0 +1,13 @@
diff --git a/llvm/include/llvm/ADT/SmallVector.h b/llvm/include/llvm/ADT/SmallVector.h
index 2e6d2dc6ce90..be2cf6cc1fee 100644
--- a/llvm/include/llvm/ADT/SmallVector.h
+++ b/llvm/include/llvm/ADT/SmallVector.h
@@ -1163,7 +1163,7 @@ template <typename T> struct CalculateSmallVectorDefaultInlinedElements {
// happens on a 32-bit host and then fails due to sizeof(T) *increasing* on a
// 64-bit host, is expected to be very rare.
static_assert(
- sizeof(T) <= 256,
+ sizeof(T) <= 288,
"You are trying to use a default number of inlined elements for "
"`SmallVector<T>` but `sizeof(T)` is really big! Please use an "
"explicit number of inlined elements with `SmallVector<T, N>` to make "

View File

@ -0,0 +1,37 @@
From 2354350bcc890c13016d67f4c060b32cb1cd693c Mon Sep 17 00:00:00 2001
From: q66 <q66@chimera-linux.org>
Date: Sat, 4 Nov 2023 08:44:01 +0100
Subject: [PATCH 01/25] llvm: always set a larger stack size explicitly
---
llvm/lib/Support/Threading.cpp | 14 --------------
1 file changed, 14 deletions(-)
diff --git a/llvm/lib/Support/Threading.cpp b/llvm/lib/Support/Threading.cpp
index 7cc7ba44c..b91b8f4bb 100644
--- a/llvm/lib/Support/Threading.cpp
+++ b/llvm/lib/Support/Threading.cpp
@@ -77,21 +77,7 @@ unsigned llvm::ThreadPoolStrategy::compute_thread_count() const {
// keyword.
#include "llvm/Support/thread.h"
-#if defined(__APPLE__)
- // Darwin's default stack size for threads except the main one is only 512KB,
- // which is not enough for some/many normal LLVM compilations. This implements
- // the same interface as std::thread but requests the same stack size as the
- // main thread (8MB) before creation.
const std::optional<unsigned> llvm::thread::DefaultStackSize = 8 * 1024 * 1024;
-#elif defined(_AIX)
- // On AIX, the default pthread stack size limit is ~192k for 64-bit programs.
- // This limit is easily reached when doing link-time thinLTO. AIX library
- // developers have used 4MB, so we'll do the same.
-const std::optional<unsigned> llvm::thread::DefaultStackSize = 4 * 1024 * 1024;
-#else
-const std::optional<unsigned> llvm::thread::DefaultStackSize;
-#endif
-
#endif
--
2.42.0

View File

@ -0,0 +1,44 @@
From 352974169f0d2b5da3d5321f588f5e3b5941330e Mon Sep 17 00:00:00 2001
From: Andrea Brancaleoni <miwaxe@gmail.com>
Date: Tue, 8 Sep 2015 22:14:57 +0200
Subject: [PATCH 2/7] fix unwind chain inclusion
---
lib/Headers/unwind.h | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/lib/Headers/unwind.h b/lib/Headers/unwind.h
index 303d792..44e10cc 100644
--- a/clang/lib/Headers/unwind.h
+++ b/clang/lib/Headers/unwind.h
@@ -9,9 +9,6 @@
/* See "Data Definitions for libgcc_s" in the Linux Standard Base.*/
-#ifndef __CLANG_UNWIND_H
-#define __CLANG_UNWIND_H
-
#if defined(__APPLE__) && __has_include_next(<unwind.h>)
/* Darwin (from 11.x on) provide an unwind.h. If that's available,
* use it. libunwind wraps some of its definitions in #ifdef _GNU_SOURCE,
@@ -39,6 +36,9 @@
# endif
#else
+#ifndef __CLANG_UNWIND_H
+#define __CLANG_UNWIND_H
+
#include <stdint.h>
#ifdef __cplusplus
@@ -322,6 +322,7 @@ _Unwind_Ptr _Unwind_GetTextRelBase(struct _Unwind_Context *);
}
#endif
+#endif /* __CLANG_UNWIND_H */
+
#endif
-#endif /* __CLANG_UNWIND_H */
--
2.5.1

View File

@ -0,0 +1,13 @@
--- a/clang/lib/Driver/ToolChains/Linux.cpp
+++ b/clang/lib/Driver/ToolChains/Linux.cpp
@@ -504,10 +504,6 @@ std::string Linux::getDynamicLinker(const ArgList &Args) const {
Loader = "ld.so.1";
break;
case llvm::Triple::ppc64:
- LibDir = "lib64";
- Loader =
- (tools::ppc::hasPPCAbiArg(Args, "elfv2")) ? "ld64.so.2" : "ld64.so.1";
- break;
case llvm::Triple::ppc64le:
LibDir = "lib64";
Loader =

View File

@ -0,0 +1,37 @@
--- a/compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp
+++ b/compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp
@@ -74,6 +74,10 @@
# include <sys/utsname.h>
# endif
+#if SANITIZER_LINUX && defined(__powerpc__)
+#include <asm/ptrace.h>
+#endif
+
# if SANITIZER_LINUX && !SANITIZER_ANDROID
# include <sys/personality.h>
# endif
--- a/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cpp
+++ b/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cpp
@@ -94,7 +94,7 @@
# include <utime.h>
# include <sys/ptrace.h>
# if defined(__mips64) || defined(__aarch64__) || defined(__arm__) || \
- defined(__hexagon__) || defined(__loongarch__) ||SANITIZER_RISCV64
+ defined(__hexagon__) || defined(__powerpc__) || defined(__loongarch__) ||SANITIZER_RISCV64
# include <asm/ptrace.h>
# ifdef __arm__
typedef struct user_fpregs elf_fpregset_t;
--- a/compiler-rt/lib/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cpp
+++ b/compiler-rt/lib/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cpp
@@ -31,7 +31,7 @@
#include <sys/types.h> // for pid_t
#include <sys/uio.h> // for iovec
#include <elf.h> // for NT_PRSTATUS
-#if (defined(__aarch64__) || SANITIZER_RISCV64 || SANITIZER_LOONGARCH64) && \
- !SANITIZER_ANDROID
+#if (defined(__aarch64__) || defined(__powerpc__) ||SANITIZER_RISCV64 || SANITIZER_LOONGARCH64) && \
+ !SANITIZER_ANDROID
// GLIBC 2.20+ sys/user does not include asm/ptrace.h
# include <asm/ptrace.h>
#endif

View File

@ -0,0 +1,18 @@
commit 9af31d021e83dce4e98f06d8e732f4afb481cd08
Author: Daniel Martinez <danielmartinez@cock.li>
Date: Sat Aug 3 18:04:04 2024 -0400
disable lldb docs as they depend on some sphinx packages we don't have
diff --git a/lldb/CMakeLists.txt b/lldb/CMakeLists.txt
index 59cdc4593463..e7c2c38b50a9 100644
--- a/lldb/CMakeLists.txt
+++ b/lldb/CMakeLists.txt
@@ -124,7 +124,6 @@ add_subdirectory(utils/TableGen)
add_subdirectory(source)
add_subdirectory(tools)
-add_subdirectory(docs)
if (LLDB_ENABLE_PYTHON)
if(LLDB_BUILD_FRAMEWORK)

View File

@ -0,0 +1,28 @@
commit 92984acc52fb95566d9387948c2655507328438b
Author: Daniel Martinez <danielmartinez@cock.li>
Date: Wed Jul 31 21:14:52 2024 -0400
Allow flang-new binary to be specified for omp modules
This allows the path of the flang-new binary to be specified as a
cmake configuration.
This is useful when cross compiling, as flang-new may exist
on the build machine, which should be used instead of the host.
For example, by passing "-DFLANG_NEW_NATIVE_EXE=/usr/bin/flang-new",
that binary will be used instead of just built host compiler.
diff --git a/llvm/runtimes/CMakeLists.txt b/llvm/runtimes/CMakeLists.txt
index 42b1b86ebaad..41921aaeaeb2 100644
--- a/llvm/runtimes/CMakeLists.txt
+++ b/llvm/runtimes/CMakeLists.txt
@@ -498,7 +498,7 @@ if(build_runtimes)
if("openmp" IN_LIST LLVM_ENABLE_RUNTIMES)
if (${LLVM_TOOL_FLANG_BUILD})
message(STATUS "Configuring build of omp_lib.mod and omp_lib_kinds.mod via flang-new")
- set(LIBOMP_FORTRAN_MODULES_COMPILER "${CMAKE_BINARY_DIR}/bin/flang-new")
+ set(LIBOMP_FORTRAN_MODULES_COMPILER "${CMAKE_BINARY_DIR}/bin/flang-new" CACHE INTERNAL "")
set(LIBOMP_MODULES_INSTALL_PATH "${CMAKE_INSTALL_INCLUDEDIR}/flang")
# TODO: This is a workaround until flang becomes a first-class project
# in llvm/CMakeList.txt. Until then, this line ensures that flang-new is

View File

@ -0,0 +1,69 @@
commit 8a0c2301664e7178b2c48a8cfb2a10151bdde462
Author: Daniel Martinez <danielmartinez@cock.li>
Date: Wed Jul 31 14:28:29 2024 -0400
[flang][runtime] Use fallback bessel functions on musl
Fixes compilation on linux when using musl as the libc.
musl does not provide long double variants of the bessel functions.
diff --git a/flang/runtime/Float128Math/CMakeLists.txt b/flang/runtime/Float128Math/CMakeLists.txt
index a5f5bec1e7e4..b7d890df1f4a 100644
--- a/flang/runtime/Float128Math/CMakeLists.txt
+++ b/flang/runtime/Float128Math/CMakeLists.txt
@@ -108,6 +108,26 @@ elseif (HAVE_LDBL_MANT_DIG_113)
# We can use 'long double' versions from libc.
check_library_exists(m sinl "" FOUND_LIBM)
if (FOUND_LIBM)
+ check_cxx_source_compiles(
+ "#include <cmath>
+ int main() {
+ int n = 0;
+ long double x = 1;
+ long double Y0 = y0l(x);
+ long double Y1 = y1l(x);
+ long double Yn = ynl(n,x);
+ long double J0 = j0l(x);
+ long double J1 = j1l(x);
+ long double Jn = jnl(n,x);
+ return 0;
+ }
+ "
+ FOUND_LIBM_BESSEL)
+ if (FOUND_LIBM_BESSEL)
+ target_compile_definitions(FortranFloat128MathILib INTERFACE
+ HAS_LIBM_BESSEL
+ )
+ endif()
target_compile_definitions(FortranFloat128MathILib INTERFACE
HAS_LIBM
)
diff --git a/flang/runtime/Float128Math/math-entries.h b/flang/runtime/Float128Math/math-entries.h
index 13fdab264700..45ae40fdafa0 100644
--- a/flang/runtime/Float128Math/math-entries.h
+++ b/flang/runtime/Float128Math/math-entries.h
@@ -185,9 +185,11 @@ DEFINE_SIMPLE_ALIAS(Hypot, std::hypot)
DEFINE_SIMPLE_ALIAS(Ilogb, std::ilogb)
DEFINE_SIMPLE_ALIAS(Isinf, std::isinf)
DEFINE_SIMPLE_ALIAS(Isnan, std::isnan)
+#ifdef HAS_LIBM_BESSEL
DEFINE_SIMPLE_ALIAS(J0, j0l)
DEFINE_SIMPLE_ALIAS(J1, j1l)
DEFINE_SIMPLE_ALIAS(Jn, jnl)
+#endif
DEFINE_SIMPLE_ALIAS(Ldexp, std::ldexp)
DEFINE_SIMPLE_ALIAS(Lgamma, std::lgamma)
DEFINE_SIMPLE_ALIAS(Llround, std::llround)
@@ -204,9 +206,11 @@ DEFINE_SIMPLE_ALIAS(Tan, std::tan)
DEFINE_SIMPLE_ALIAS(Tanh, std::tanh)
DEFINE_SIMPLE_ALIAS(Tgamma, std::tgamma)
DEFINE_SIMPLE_ALIAS(Trunc, std::trunc)
+#ifdef HAS_LIBM_BESSEL
DEFINE_SIMPLE_ALIAS(Y0, y0l)
DEFINE_SIMPLE_ALIAS(Y1, y1l)
DEFINE_SIMPLE_ALIAS(Yn, ynl)
+#endif
// Use numeric_limits to produce infinity of the right type.
#define F128_RT_INFINITY \

View File

@ -0,0 +1,35 @@
See: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109180
Avoid the following undefined reference:
/usr/lib/gcc/armv7l-linux-gnueabihf/12.2.0/../../../../armv7l-linux-gnueabihf/bin/ld: projects/libcxx/src/CMakeFiles/cxx_shared.dir/locale.cpp.o: in function `std::__1::__time_get_c_storage<char>::__x() const [clone .localalias]':
locale.cpp:(.text._ZNKSt3__120__time_get_c_storageIcE3__xEv+0xb4): undefined reference to `std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::~basic_string()'
/usr/lib/gcc/armv7l-linux-gnueabihf/12.2.0/../../../../armv7l-linux-gnueabihf/bin/ld: projects/libcxx/src/CMakeFiles/cxx_shared.dir/locale.cpp.o: in function `std::__1::__time_get_c_storage<char>::__X() const [clone .localalias]':
diff --git a/libcxx/CMakeLists.txt b/libcxx/CMakeLists.txt
index b8ac536588d3..65e5a1365634 100644
--- a/libcxx/CMakeLists.txt
+++ b/libcxx/CMakeLists.txt
@@ -308,6 +308,8 @@ endif()
option(LIBCXX_HERMETIC_STATIC_LIBRARY
"Do not export any symbols from the static library." ${LIBCXX_HERMETIC_STATIC_LIBRARY_DEFAULT})
+option(LIBCXX_VOID_GCC_BUG_109180_WORKAROUND OFF)
+
#===============================================================================
# Check option configurations
#===============================================================================
diff --git a/libcxx/src/CMakeLists.txt b/libcxx/src/CMakeLists.txt
index 35b466527096..5b0efa171616 100644
--- a/libcxx/src/CMakeLists.txt
+++ b/libcxx/src/CMakeLists.txt
@@ -155,6 +155,10 @@ if (LIBCXX_GENERATE_COVERAGE AND NOT LIBCXX_COVERAGE_LIBRARY)
endif()
add_library_flags_if(LIBCXX_COVERAGE_LIBRARY "${LIBCXX_COVERAGE_LIBRARY}")
+if (LIBCXX_VOID_GCC_BUG_109180_WORKAROUND)
+ set_source_files_properties(string.cpp PROPERTIES COMPILE_FLAGS -fno-inline)
+endif()
+
if (APPLE AND LLVM_USE_SANITIZER)
if (("${LLVM_USE_SANITIZER}" STREQUAL "Address") OR
("${LLVM_USE_SANITIZER}" STREQUAL "Address;Undefined") OR

View File

@ -0,0 +1,26 @@
--- a/libcxx/include/locale
+++ b/libcxx/include/locale
@@ -742,7 +742,11 @@ __num_get_signed_integral(const char* __a, const char* __a_end,
__libcpp_remove_reference_t<decltype(errno)> __save_errno = errno;
errno = 0;
char* __p2;
+#if defined(__linux__) && !defined(__GLIBC__)
+ long long __ll = strtoll(__a, &__p2, __base);
+#else
long long __ll = strtoll_l(__a, &__p2, __base, _LIBCPP_GET_C_LOCALE);
+#endif
__libcpp_remove_reference_t<decltype(errno)> __current_errno = errno;
if (__current_errno == 0)
errno = __save_errno;
@@ -782,7 +786,11 @@ __num_get_unsigned_integral(const char* __a, const char* __a_end,
__libcpp_remove_reference_t<decltype(errno)> __save_errno = errno;
errno = 0;
char* __p2;
+#if defined(__linux__) && !defined(__GLIBC__)
+ unsigned long long __ll = strtoull(__a, &__p2, __base);
+#else
unsigned long long __ll = strtoull_l(__a, &__p2, __base, _LIBCPP_GET_C_LOCALE);
+#endif
__libcpp_remove_reference_t<decltype(errno)> __current_errno = errno;
if (__current_errno == 0)
errno = __save_errno;

View File

@ -0,0 +1,11 @@
--- a/libcxx/CMakeLists.txt
+++ b/libcxx/CMakeLists.txt
@@ -769,6 +769,8 @@ function(cxx_link_system_libraries target)
target_link_libraries(${target} PRIVATE atomic)
endif()
+#ssp target_link_libraries(${target} PRIVATE ssp_nonshared)
+
if (MINGW)
target_link_libraries(${target} PRIVATE "${MINGW_LIBRARIES}")
endif()

View File

@ -0,0 +1,25 @@
Also link to -ldl to prevent undefined references.
--- a/libcxxabi/src/CMakeLists.txt
+++ b/libcxxabi/src/CMakeLists.txt
@@ -73,6 +73,7 @@
endif()
add_library_flags_if(LIBCXXABI_HAS_C_LIB c)
+ add_library_flags_if(LIBCXXABI_HAS_C_LIB dl)
endif()
if (LIBCXXABI_USE_LLVM_UNWINDER)
--- a/libcxx/CMakeLists.txt
+++ b/libcxx/CMakeLists.txt
@@ -745,6 +745,10 @@
if (LIBCXX_HAS_PTHREAD_LIB)
target_compile_definitions(${target} PRIVATE -D_LIBCPP_LINK_PTHREAD_LIB)
endif()
+ if (LIBCXX_HAS_C_LIB)
+ target_link_libraries(${target} PRIVATE dl)
+ endif()
+
if (LIBCXX_HAS_RT_LIB)
target_compile_definitions(${target} PRIVATE -D_LIBCPP_LINK_RT_LIB)
endif()

View File

@ -0,0 +1,32 @@
From faca3fbd15d0c3108493c3c54cd93138e049ac43 Mon Sep 17 00:00:00 2001
From: Andrea Brancaleoni <miwaxe@gmail.com>
Date: Tue, 8 Sep 2015 22:03:02 +0200
Subject: [PATCH 3/3] musl
---
include/llvm/Analysis/TargetLibraryInfo.h | 9 +++++++++
lib/Support/DynamicLibrary.cpp | 2 +-
lib/Support/Unix/Signals.inc | 6 +++---
utils/unittest/googletest/src/gtest.cc | 1 +
5 files changed, 17 insertions(+), 6 deletions(-)
diff --git a/include/llvm/Analysis/TargetLibraryInfo.h b/include/llvm/Analysis/TargetLibraryInfo.h
index 34a8a1e3..1214ece5 100644
--- a/llvm/include/llvm/Analysis/TargetLibraryInfo.h
+++ b/llvm/include/llvm/Analysis/TargetLibraryInfo.h
@@ -18,6 +18,15 @@
#include "llvm/IR/PassManager.h"
#include "llvm/Pass.h"
+#undef fopen64
+#undef fseeko64
+#undef fstat64
+#undef fstatvfs64
+#undef ftello64
+#undef lstat64
+#undef stat64
+#undef tmpfile64
+
namespace llvm {
template <typename T> class ArrayRef;
class Triple;

View File

@ -0,0 +1,18 @@
This allows us to override the optimization level as not all platforms can
deal with -O3.
--- a/llvm/CMakeLists.txt
+++ b/llvm/CMakeLists.txt
@@ -918,6 +918,12 @@ if( MINGW AND NOT "${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang" )
llvm_replace_compiler_option(CMAKE_CXX_FLAGS_RELEASE "-O3" "-O2")
endif()
+set(VOID_CXX_OPT_FLAGS "" CACHE STRING "Optimization level to use")
+
+if (NOT VOID_CXX_OPT_FLAGS STREQUAL "")
+ llvm_replace_compiler_option(CMAKE_CXX_FLAGS_RELEASE "-O3" "${VOID_CXX_OPT_FLAGS}")
+endif()
+
# Put this before tblgen. Else we have a circular dependence.
add_subdirectory(lib/Demangle)
add_subdirectory(lib/Support)

View File

@ -0,0 +1,36 @@
From f3dbdd49c06bfafc1d6138094cf42889c14d38b6 Mon Sep 17 00:00:00 2001
From: Samuel Holland <samuel@sholland.org>
Date: Sun, 3 Nov 2019 10:57:27 -0600
Subject: [PATCH] [LLVM][PowerPC] Assume BigPIC if no PIC level is specified
---
llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp | 2 +-
llvm/lib/Target/PowerPC/PPCMCInstLower.cpp | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/lib/Target/PowerPC/PPCAsmPrinter.cpp b/lib/Target/PowerPC/PPCAsmPrinter.cpp
index cce21f32..87ca5f9b 100644
--- a/llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp
+++ b/llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp
@@ -520,7 +520,7 @@ void PPCAsmPrinter::EmitTlsCall(const MachineInstr *MI,
// Add 32768 offset to the symbol so we follow up the latest GOT/PLT ABI.
if (Kind == MCSymbolRefExpr::VK_PLT && Subtarget->isSecurePlt() &&
- M->getPICLevel() == PICLevel::BigPIC)
+ M->getPICLevel() != PICLevel::SmallPIC)
TlsRef = MCBinaryExpr::createAdd(
TlsRef, MCConstantExpr::create(32768, OutContext), OutContext);
const MachineOperand &MO = MI->getOperand(2);
diff --git a/lib/Target/PowerPC/PPCMCInstLower.cpp b/lib/Target/PowerPC/PPCMCInstLower.cpp
index 5cc180d7..a5b02565 100644
--- a/llvm/lib/Target/PowerPC/PPCMCInstLower.cpp
+++ b/llvm/lib/Target/PowerPC/PPCMCInstLower.cpp
@@ -117,7 +117,7 @@ static MCOperand GetSymbolRef(const MachineOperand &MO, const MCSymbol *Symbol,
const MCExpr *Expr = MCSymbolRefExpr::create(Symbol, RefKind, Ctx);
// If -msecure-plt -fPIC, add 32768 to symbol.
if (Subtarget->isSecurePlt() && TM.isPositionIndependent() &&
- M->getPICLevel() == PICLevel::BigPIC &&
+ M->getPICLevel() != PICLevel::SmallPIC &&
MO.getTargetFlags() == PPCII::MO_PLT)
Expr =
MCBinaryExpr::createAdd(Expr, MCConstantExpr::create(32768, Ctx), Ctx);

View File

@ -0,0 +1,24 @@
Fix failures in AllocationTests/MappedMemoryTest.* on aarch64:
Failing Tests (8):
LLVM-Unit :: Support/./SupportTests/AllocationTests/MappedMemoryTest.AllocAndRelease/3
LLVM-Unit :: Support/./SupportTests/AllocationTests/MappedMemoryTest.DuplicateNear/3
LLVM-Unit :: Support/./SupportTests/AllocationTests/MappedMemoryTest.EnabledWrite/3
LLVM-Unit :: Support/./SupportTests/AllocationTests/MappedMemoryTest.MultipleAllocAndRelease/3
LLVM-Unit :: Support/./SupportTests/AllocationTests/MappedMemoryTest.SuccessiveNear/3
LLVM-Unit :: Support/./SupportTests/AllocationTests/MappedMemoryTest.UnalignedNear/3
LLVM-Unit :: Support/./SupportTests/AllocationTests/MappedMemoryTest.ZeroNear/3
LLVM-Unit :: Support/./SupportTests/AllocationTests/MappedMemoryTest.ZeroSizeNear/3
Upstream-Issue: https://bugs.llvm.org/show_bug.cgi?id=14278#c10
--- a/llvm/lib/Support/Unix/Memory.inc
+++ b/llvm/lib/Support/Unix/Memory.inc
@@ -58,7 +58,7 @@ static int getPosixProtectionFlags(unsigned Flags) {
return PROT_READ | PROT_WRITE | PROT_EXEC;
case llvm::sys::Memory::MF_EXEC:
-#if defined(__FreeBSD__) || defined(__powerpc__)
+#if defined(__FreeBSD__) || defined(__powerpc__) || (defined(__linux__) && defined(__aarch64__))
// On PowerPC, having an executable page that has no read permission
// can have unintended consequences. The function InvalidateInstruction-
// Cache uses instructions dcbf and icbi, both of which are treated by

1111
srcpkgs/llvm19/template Normal file

File diff suppressed because it is too large Load Diff

3
srcpkgs/llvm19/update Normal file
View File

@ -0,0 +1,3 @@
site="https://github.com/llvm/llvm-project/releases"
pattern="llvmorg-\K(19)\.(\d+)\.+\d+(-rc\d+)?"
ignore="*-rc*"

1
srcpkgs/mlir19 Symbolic link
View File

@ -0,0 +1 @@
llvm19

1
srcpkgs/mlir19-devel Symbolic link
View File

@ -0,0 +1 @@
llvm19