* [PR PATCH] [WIP] LLVM 15
@ 2022-11-28 15:30 tranzystorek-io
2022-11-28 15:32 ` tranzystorek-io
` (94 more replies)
0 siblings, 95 replies; 96+ messages in thread
From: tranzystorek-io @ 2022-11-28 15:30 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 379 bytes --]
There is a new pull request by tranzystorek-io against master on the void-packages repository
https://github.com/tranzystorek-io/void-packages llvm15
https://github.com/void-linux/void-packages/pull/40821
[WIP] LLVM 15
[ci skip]
TODO:
- [ ] Adjust patches marked as `.patch.skip`
A patch file from https://github.com/void-linux/void-packages/pull/40821.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-llvm15-40821.patch --]
[-- Type: text/x-diff, Size: 182741 bytes --]
From e5ba0c429eee4c172b49e5674bd11f88d3fa1d27 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sat, 5 Nov 2022 11:33:11 -0700
Subject: [PATCH 01/38] binutils: update to 2.39.
---
...e3f3bd6d460491f8c8d032a7fea88d5ec8ff.patch | 60 -----------------
.../fix-libcollector-without-java.patch | 53 +++++++++++++++
.../patches/ppc64-revert-gnu-attributes.patch | 66 +++++--------------
srcpkgs/binutils/template | 25 ++++---
4 files changed, 87 insertions(+), 117 deletions(-)
delete mode 100644 srcpkgs/binutils/patches/1767e3f3bd6d460491f8c8d032a7fea88d5ec8ff.patch
create mode 100644 srcpkgs/binutils/patches/fix-libcollector-without-java.patch
diff --git a/srcpkgs/binutils/patches/1767e3f3bd6d460491f8c8d032a7fea88d5ec8ff.patch b/srcpkgs/binutils/patches/1767e3f3bd6d460491f8c8d032a7fea88d5ec8ff.patch
deleted file mode 100644
index a55432d83cff..000000000000
--- a/srcpkgs/binutils/patches/1767e3f3bd6d460491f8c8d032a7fea88d5ec8ff.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-From 1767e3f3bd6d460491f8c8d032a7fea88d5ec8ff Mon Sep 17 00:00:00 2001
-From: "H.J. Lu" <hjl.tools@gmail.com>
-Date: Mon, 16 Nov 2020 06:37:53 -0800
-Subject: [PATCH] elf: Set rel_from_abs to 1 for __ehdr_start
-
-bfdlink.h has
-
- /* Symbol will be converted from absolute to section-relative. Set for
- symbols defined by a script from "dot" (also SEGMENT_START or ORIGIN)
- outside of an output section statement. */
- unsigned int rel_from_abs : 1;
-
-linker.c has
-
-.{* Return TRUE if the symbol described by a linker hash entry H
-. is going to be absolute. Linker-script defined symbols can be
-. converted from absolute to section-relative ones late in the
-. link. Use this macro to correctly determine whether the symbol
-. will actually end up absolute in output. *}
-.#define bfd_is_abs_symbol(H) \
-. (((H)->type == bfd_link_hash_defined \
-. || (H)->type == bfd_link_hash_defweak) \
-. && bfd_is_abs_section ((H)->u.def.section) \
-. && !(H)->rel_from_abs)
-.
-
-Set rel_from_abs to 1 for __ehdr_start which will be converted from
-absolute to section-relative in assign_file_positions_for_load_sections.
-
- PR ld/26869
- * ldelf.c (ldelf_before_allocation): Set rel_from_abs to 1 for
- __ehdr_start.
- * testsuite/ld-i386/i386.exp: Run pr26869.
- * testsuite/ld-i386/pr26869.d: New file.
- * testsuite/ld-i386/pr26869.s: Likewise.
-
-(cherry picked from commit cbd5b99cce073273f668b154d4514e8e7e7ccc51)
----
- ld/ChangeLog | 9 +++++++++
- ld/ldelf.c | 2 ++
- ld/testsuite/ld-i386/i386.exp | 1 +
- ld/testsuite/ld-i386/pr26869.d | 14 ++++++++++++++
- ld/testsuite/ld-i386/pr26869.s | 3 +++
- 5 files changed, 29 insertions(+)
- create mode 100644 ld/testsuite/ld-i386/pr26869.d
- create mode 100644 ld/testsuite/ld-i386/pr26869.s
-
-diff --git a/ld/ldelf.c b/ld/ldelf.c
-index bada3ade2d7..831d032fe56 100644
---- a/ld/ldelf.c
-+++ b/ld/ldelf.c
-@@ -1589,6 +1589,8 @@ ldelf_before_allocation (char *audit, char *depaudit,
- (char *) &ehdr_start->u + sizeof ehdr_start->u.def.next,
- sizeof ehdr_start_save_u);
- ehdr_start->type = bfd_link_hash_defined;
-+ /* It will be converted to section-relative later. */
-+ ehdr_start->rel_from_abs = 1;
- ehdr_start->u.def.section = bfd_abs_section_ptr;
- ehdr_start->u.def.value = 0;
- }
diff --git a/srcpkgs/binutils/patches/fix-libcollector-without-java.patch b/srcpkgs/binutils/patches/fix-libcollector-without-java.patch
new file mode 100644
index 000000000000..54384875f358
--- /dev/null
+++ b/srcpkgs/binutils/patches/fix-libcollector-without-java.patch
@@ -0,0 +1,53 @@
+From 49ddd814ac1071af7c4f45d5f8398b91862f2c7f Mon Sep 17 00:00:00 2001
+From: Vladimir Mezentsev <vladimir.mezentsev@oracle.com>
+Date: Wed, 17 Aug 2022 19:55:23 -0700
+Subject: [PATCH] gprofng: fix bug 29479 Collection fails when built without
+ java support
+
+gprofng/ChangeLog
+2022-08-17 Vladimir Mezentsev <vladimir.mezentsev@oracle.com>
+
+ PR gprofng/29479
+ * libcollector/collector.c: Add #if defined(GPROFNG_JAVA_PROFILING) for
+ java specific code.
+ * libcollector/unwind.c: Likewise.
+---
+ gprofng/libcollector/collector.c | 2 ++
+ gprofng/libcollector/unwind.c | 2 ++
+ 2 files changed, 4 insertions(+)
+
+diff --git a/gprofng/libcollector/collector.c b/gprofng/libcollector/collector.c
+index 93c9d3330de5..ceff2c1caccb 100644
+--- a/gprofng/libcollector/collector.c
++++ b/gprofng/libcollector/collector.c
+@@ -913,8 +913,10 @@ __collector_open_experiment (const char *exp, const char *params, sp_origin_t or
+ __collector_ext_unwind_key_init (1, NULL);
+
+ /* start java attach if suitable */
++#if defined(GPROFNG_JAVA_PROFILING)
+ if (exp_origin == SP_ORIGIN_DBX_ATTACH)
+ __collector_jprofile_start_attach ();
++#endif
+ start_sec_time = CALL_UTIL (time)(NULL);
+ __collector_start_time = collector_interface.getHiResTime ();
+ TprintfT (DBG_LT0, "\t__collector_open_experiment; resetting start_time\n");
+diff --git a/gprofng/libcollector/unwind.c b/gprofng/libcollector/unwind.c
+index 119243788020..f8e11823c81e 100644
+--- a/gprofng/libcollector/unwind.c
++++ b/gprofng/libcollector/unwind.c
+@@ -557,6 +557,7 @@ __collector_get_frame_info (hrtime_t ts, int mode, void *arg)
+ int size = max_frame_size;
+
+ #define MIN(a,b) ((a)<(b)?(a):(b))
++#if defined(GPROFNG_JAVA_PROFILING)
+ /* get Java info */
+ if (__collector_java_mode && __collector_java_asyncgetcalltrace_loaded && context && !pseudo_context)
+ {
+@@ -569,6 +570,7 @@ __collector_get_frame_info (hrtime_t ts, int mode, void *arg)
+ size -= sz;
+ }
+ }
++#endif
+
+ /* get native stack */
+ if (context)
diff --git a/srcpkgs/binutils/patches/ppc64-revert-gnu-attributes.patch b/srcpkgs/binutils/patches/ppc64-revert-gnu-attributes.patch
index 5de937f4fcce..1c208dd8955c 100644
--- a/srcpkgs/binutils/patches/ppc64-revert-gnu-attributes.patch
+++ b/srcpkgs/binutils/patches/ppc64-revert-gnu-attributes.patch
@@ -1,39 +1,24 @@
-From b1faf99f3e546df2cd302bb1ad36a2078224fe8b Mon Sep 17 00:00:00 2001
+From bbf05b742fde518fb97c789b043fe0d3aaf549f0 Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@dereferenced.org>
-Date: Fri, 30 Oct 2020 16:59:48 -0600
+Date: Tue, 21 Sep 2021 14:53:13 +0000
Subject: [PATCH] Revert "PR25882, .gnu.attributes are not checked for shared
libraries"
+This revert is needed to avoid wrongly tagging objects with the incompatible
+IBM long double ABI, which is not supported by musl and will result in
+linking errors if used.
+
This reverts commit a8acd6eeb6dc2cc5460ece90f90ebe36b56b20ba.
---
- bfd/ChangeLog | 6 ------
- bfd/elf32-tic6x.c | 3 ---
- ld/ChangeLog | 6 ------
- ld/ldlang.c | 9 ++++-----
- 4 files changed, 4 insertions(+), 20 deletions(-)
+ bfd/elf32-tic6x.c | 3 ---
+ ld/ldlang.c | 10 ++++------
+ 2 files changed, 4 insertions(+), 9 deletions(-)
-diff --git a/bfd/ChangeLog b/bfd/ChangeLog
-index 9fac12538a..b5461494e8 100644
---- a/bfd/ChangeLog
-+++ b/bfd/ChangeLog
-@@ -1422,12 +1422,6 @@
- accessing root.u.def of symbols. Also check root.u.def.section
- is non-NULL. Reverse tests so as to make the logic positive.
-
--2020-05-01 Alan Modra <amodra@gmail.com>
--
-- PR 25882
-- * elf32-tic6x.c (elf32_tic6x_merge_attributes): Don't transfer
-- Tag_ABI_PIC or Tag_ABI_PID from dynamic objects to the output.
--
- 2020-05-01 Alan Modra <amodra@gmail.com>
-
- PR 25882
diff --git a/bfd/elf32-tic6x.c b/bfd/elf32-tic6x.c
-index b8b916bfd3..91bb6a10b1 100644
+index 5754f3cb860..3ad1d612749 100644
--- a/bfd/elf32-tic6x.c
+++ b/bfd/elf32-tic6x.c
-@@ -3748,9 +3748,6 @@ elf32_tic6x_merge_attributes (bfd *ibfd, struct bfd_link_info *info)
+@@ -3735,9 +3735,6 @@ elf32_tic6x_merge_attributes (bfd *ibfd, struct bfd_link_info *info)
case Tag_ABI_PIC:
case Tag_ABI_PID:
@@ -43,36 +28,20 @@ index b8b916bfd3..91bb6a10b1 100644
if (out_attr[i].i > in_attr[i].i)
out_attr[i].i = in_attr[i].i;
break;
-diff --git a/ld/ChangeLog b/ld/ChangeLog
-index 4eec7d2977..b93452f70c 100644
---- a/ld/ChangeLog
-+++ b/ld/ChangeLog
-@@ -1319,12 +1319,6 @@
- * testsuite/ld-aarch64/farcall-group.d: New test driver.
- * testsuite/ld-aarch64/aarch64-elf.exp: Run the new test.
-
--2020-05-01 Alan Modra <amodra@gmail.com>
--
-- PR 25882
-- * ldlang.c (lang_check): Call bfd_merge_private_bfd_data for
-- shared libraries.
--
- 2020-05-01 Alan Modra <amodra@gmail.com>
-
- * po/BLD-POTFILES.in: Regenerate.
diff --git a/ld/ldlang.c b/ld/ldlang.c
-index 9977195074..173d8ec349 100644
+index 37b64c89ee1..f13beaef9d9 100644
--- a/ld/ldlang.c
+++ b/ld/ldlang.c
-@@ -6972,12 +6972,11 @@ lang_check (void)
+@@ -7071,13 +7071,11 @@ lang_check (void)
bfd_printable_name (input_bfd), input_bfd,
bfd_printable_name (link_info.output_bfd));
}
-
- /* If the input bfd has no contents, it shouldn't set the
- private data of the output bfd. */
-- else if ((input_bfd->flags & DYNAMIC) != 0
-- || bfd_count_sections (input_bfd) != 0)
+- else if (!file->flags.just_syms
+- && ((input_bfd->flags & DYNAMIC) != 0
+- || bfd_count_sections (input_bfd) != 0))
+ else if (bfd_count_sections (input_bfd))
{
+ /* If the input bfd has no contents, it shouldn't set the
@@ -82,5 +51,4 @@ index 9977195074..173d8ec349 100644
/* If we aren't supposed to warn about mismatched input
--
-2.29.2
-
+2.33.0
diff --git a/srcpkgs/binutils/template b/srcpkgs/binutils/template
index 6270f8618c87..c355a5fc8016 100644
--- a/srcpkgs/binutils/template
+++ b/srcpkgs/binutils/template
@@ -1,19 +1,20 @@
# Template file for 'binutils'
pkgname=binutils
-version=2.35.1
-revision=4
+version=2.39
+revision=1
bootstrap=yes
+hostmakedepends="pkgconf"
makedepends="zlib-devel"
short_desc="GNU binary utilities"
maintainer="Enno Boland <gottox@voidlinux.org>"
license="GPL-3.0-or-later"
homepage="http://www.gnu.org/software/binutils/"
distfiles="${GNU_SITE}/$pkgname/$pkgname-$version.tar.xz"
-checksum=3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
+checksum=645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
subpackages="binutils-doc"
if [ "$CHROOT_READY" ]; then
- hostmakedepends="flex perl texinfo"
+ hostmakedepends+=" flex perl texinfo"
makedepends+=" elfutils-devel"
checkdepends="bc"
depends="binutils-doc"
@@ -35,15 +36,21 @@ do_configure() {
local conf
if [ "$CHROOT_READY" ]; then
- conf+=" --with-debuginfod"
+ conf+=" --with-debuginfod --enable-shared"
else
- conf+=" --without-debuginfod --disable-install-libbfd"
+ conf+=" --without-debuginfod --disable-shared --disable-install-libbfd"
fi
if [ "$CROSS_BUILD" ]; then
# we don't want --with-sysroot=${XBPS_CROSS_BASE} like gnu-configure
conf+=" --host=${XBPS_CROSS_TRIPLET} --with-build-sysroot=${XBPS_CROSS_BASE}"
fi
+ # gprofng currently only supports x86 and aarch64 glibc.
+ case "$XBPS_TARGET_MACHINE" in
+ x86_64|i386|aarch64) conf+=" --enable-gprofng" ;;
+ *) conf+=" --disable-gprofng" ;;
+ esac
+
case "$XBPS_TARGET_MACHINE" in
ppc*)
conf+=" --enable-secureplt"
@@ -76,13 +83,14 @@ do_configure() {
--libdir=/usr/lib \
--mandir=/usr/share/man \
--infodir=/usr/share/info \
+ --sysconfdir=/etc \
--disable-werror \
- --disable-shared \
--disable-nls \
--enable-threads \
--enable-plugins \
--enable-relro \
--enable-gold \
+ --enable-new-dtags \
--enable-deterministic-archives \
--enable-64-bit-bfd \
--enable-ld=default \
@@ -142,7 +150,8 @@ binutils-devel_package() {
pkg_install() {
vmove usr/include
vmove "usr/lib/*.a"
- vmove "usr/lib/*.so"
+ vmove "usr/lib/libbfd.so"
+ vmove "usr/lib/libopcodes.so"
}
}
From 81d5d89982267cae868b4714bb2366d404091f3a Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sat, 5 Nov 2022 11:33:11 -0700
Subject: [PATCH 02/38] gdb: resolve conflict with binutils 2.39
---
srcpkgs/gdb/template | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/gdb/template b/srcpkgs/gdb/template
index 9c5f17ffc519..b666348fea19 100644
--- a/srcpkgs/gdb/template
+++ b/srcpkgs/gdb/template
@@ -1,7 +1,7 @@
# Template file for 'gdb'
pkgname=gdb
version=12.1
-revision=2
+revision=3
build_style=gnu-configure
pycompile_dirs="/usr/share/gdb/python"
configure_args="--disable-werror --disable-nls --with-system-readline
@@ -48,7 +48,8 @@ vopt_conflict debuginfod static
post_install() {
# resolve conflicts with binutils
- rm -r ${DESTDIR}/usr/{include,lib,share/info/bfd.info*}
+ rm -rf ${DESTDIR}/usr/{include,lib}
+ rm -rf ${DESTDIR}/usr/share/info/{bfd,ctf-spec}.info*
}
gdb-common_package() {
From be65d2c26a4ffd833d0953f864cf7b2eceb07283 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sat, 5 Nov 2022 11:33:11 -0700
Subject: [PATCH 03/38] gcc: update to 12.2.0.
---
common/shlibs | 10 +--
srcpkgs/gcc/files/gccgo-musl.patch | 71 +++------------
srcpkgs/gcc/files/libgnarl-musl.patch | 18 ++--
srcpkgs/gcc/files/libssp-musl.patch | 10 +--
srcpkgs/gcc/patches/libffi_gnulinux.patch | 11 ---
.../gcc/patches/libgcc-ibm128-no-tag.patch | 10 ++-
srcpkgs/gcc/patches/mips-sgidefs_h.patch | 2 +-
srcpkgs/gcc/template | 87 +++++++++----------
8 files changed, 80 insertions(+), 139 deletions(-)
delete mode 100644 srcpkgs/gcc/patches/libffi_gnulinux.patch
diff --git a/common/shlibs b/common/shlibs
index 3b103f479d5a..04cbade52468 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -60,7 +60,7 @@ libcc1plugin.so.0 gcc-6.2.1_1
libitm.so.1 libitm-4.7.3_1
liblto_plugin.so.0 gcc-4.7.3_1
libgcc_s.so.1 libgcc-4.4.0_1
-libgo.so.16 libgo-10.2.0_1
+libgo.so.21 libgo-12.2.0_1
libgccjit.so.0 libgccjit-10.2.1pre1_1
libperl.so.5.36 perl-5.36.0_1
libgmp.so.10 gmp-5.0.1_1
@@ -857,8 +857,8 @@ libgdkmm-2.4.so.1 gtkmm2-2.24.0_1
libgtkmm-2.4.so.1 gtkmm2-2.24.0_1
libquadmath.so.0 libquadmath-4.4.0_1
libgfortran.so.5 libgfortran-8.2.0_1
-libgnarl-10.so libada-10.2.0_1
-libgnat-10.so libada-10.2.0_1
+libgnarl-12.so libada-12.2.0_1
+libgnat-12.so libada-12.2.0_1
libwebp.so.7 libwebp-0.6.0_1
libwebpmux.so.3 libwebp-0.6.0_1
libwebpdemux.so.2 libwebp-0.5.0_1
@@ -1710,8 +1710,8 @@ libextractor.so.3 libextractor-1.1_1
libextractor_common.so.1 libextractor-1.1_1
libpano13.so.3 libpano13-2.9.19_1
libubsan.so.1 libsanitizer-8.2.0_1
-libtsan.so.0 libsanitizer-6.3.0_1
-libasan.so.6 libsanitizer-10.2.0_1
+libtsan.so.2 libsanitizer-12.2.0_1
+libasan.so.8 libsanitizer-12.2.0_1
liblsan.so.0 libsanitizer-6.3.0_1
libvtv.so.0 libvtv-6.3.0_1
libatomic.so.1 libatomic-4.9.0_1
diff --git a/srcpkgs/gcc/files/gccgo-musl.patch b/srcpkgs/gcc/files/gccgo-musl.patch
index 9762739615af..12ec68dd8aa3 100644
--- a/srcpkgs/gcc/files/gccgo-musl.patch
+++ b/srcpkgs/gcc/files/gccgo-musl.patch
@@ -53,17 +53,6 @@ URL: https://code.foxkit.us/adelie/packages/tree/master/system/gcc
p := sysMmap(addr, n, prot, flags, fd, off)
if uintptr(p) == _MAP_FAILED {
return nil, errno()
---- a/libgo/go/runtime/signal_gccgo.go
-+++ b/libgo/go/runtime/signal_gccgo.go
-@@ -111,7 +111,7 @@ func getsig(i uint32) uintptr {
- if sigaction(i, nil, &sa) < 0 {
- // On GNU/Linux glibc rejects attempts to call
- // sigaction with signal 32 (SIGCANCEL) or 33 (SIGSETXID).
-- if GOOS == "linux" && (i == 32 || i == 33) {
-+ if GOOS == "linux" && (i == 32 || i == 33 || i == 34) {
- return _SIG_DFL
- }
- throw("sigaction read failure")
--- a/libgo/go/syscall/errstr.go
+++ b/libgo/go/syscall/errstr.go
@@ -5,7 +5,6 @@
@@ -140,55 +129,6 @@ URL: https://code.foxkit.us/adelie/packages/tree/master/system/gcc
plwoff = &lwoff
}
n, err = splice(rfd, plroff, wfd, plwoff, len, flags)
---- a/libgo/mksigtab.sh
-+++ b/libgo/mksigtab.sh
-@@ -82,7 +82,7 @@ checksig _SIGPWR '{_SigNotify, "SIGPWR: power failure restart"}'
- checksig _SIGEMT '{_SigThrow, "SIGEMT: emulate instruction executed"}'
- checksig _SIGINFO '{_SigNotify, "SIGINFO: status request from keyboard"}'
- checksig _SIGTHR '{_SigNotify, "SIGTHR: reserved"}'
--checksig _SIGPOLL '{_SigNotify, "SIGPOLL: pollable event occurred"}'
-+#checksig _SIGPOLL '{_SigNotify, "SIGPOLL: pollable event occurred"}'
- checksig _SIGWAITING '{_SigNotify, "SIGWAITING: reserved signal no longer used by"}'
- checksig _SIGLWP '{_SigNotify, "SIGLWP: reserved signal no longer used by"}'
- checksig _SIGFREEZE '{_SigNotify, "SIGFREEZE: special signal used by CPR"}'
-@@ -95,10 +95,12 @@ checksig _SIGLOST ' {_SigNotify, "SIGLOST: resource lost (Sun); server died (G
-
- # Special handling of signals 32 and 33 on GNU/Linux systems,
- # because they are special to glibc.
-+# Signal 34 is additionally special to Linux systems with musl.
- if test "${GOOS}" = "linux"; then
-- SIGLIST=$SIGLIST"_32__33_"
-+ SIGLIST=$SIGLIST"_32__33__34_"
- echo ' 32: {_SigSetStack + _SigUnblock, "signal 32"}, /* SIGCANCEL; see issue 6997 */'
- echo ' 33: {_SigSetStack + _SigUnblock, "signal 33"}, /* SIGSETXID; see issues 3871, 9400, 12498 */'
-+ echo ' 34: {_SigSetStack + _SigUnblock, "signal 34"}, /* see issue 30062 */'
- fi
-
- if test "${GOOS}" = "aix"; then
---- a/libgo/runtime/go-signal.c 2020-07-23 08:35:19.004402840 +0200
-+++ b/libgo/runtime/go-signal.c 2020-08-09 21:35:54.352886232 +0200
-@@ -224,7 +224,11 @@
- #elif defined(__alpha__) && defined(__linux__)
- ret.sigpc = ((ucontext_t*)(context))->uc_mcontext.sc_pc;
- #elif defined(__PPC__) && defined(__linux__)
-- ret.sigpc = ((ucontext_t*)(context))->uc_mcontext.regs->nip;
-+ #ifdef __PPC64__
-+ ret.sigpc = ((ucontext_t*)(context))->uc_mcontext.gp_regs[32];
-+ #else
-+ ret.sigpc = ((ucontext_t*)(context))->uc_mcontext.gregs[32];
-+ #endif
- #elif defined(__PPC__) && defined(_AIX)
- ret.sigpc = ((ucontext_t*)(context))->uc_mcontext.jmp_context.iar;
- #elif defined(__aarch64__) && defined(__linux__)
-@@ -333,7 +337,7 @@
- runtime_printf("sp %X\n", m->sc_regs[30]);
- runtime_printf("pc %X\n", m->sc_pc);
- }
--#elif defined(__PPC__) && defined(__LITTLE_ENDIAN__) && defined(__linux__)
-+#elif defined(__PPC__) && defined(__LITTLE_ENDIAN__) && defined(__linux__) && defined(__GLIBC__)
- {
- mcontext_t *m = &((ucontext_t*)(context))->uc_mcontext;
- int i;
--- a/libgo/runtime/runtime.h
+++ b/libgo/runtime/runtime.h
@@ -500,10 +500,13 @@ int __go_setcontext(__go_context_t*);
@@ -220,3 +160,14 @@ URL: https://code.foxkit.us/adelie/packages/tree/master/system/gcc
#if defined(HAVE_SYS_UTSNAME_H)
#include <sys/utsname.h>
#endif
+--- a/libgo/go/runtime/os_linux.go
++++ b/libgo/go/runtime/os_linux.go
+@@ -365,7 +365,7 @@ func setThreadCPUProfiler(hz int32) {
+ var sevp _sigevent
+ sevp.sigev_notify = _SIGEV_THREAD_ID
+ sevp.sigev_signo = _SIGPROF
+- *((*int32)(unsafe.Pointer(&sevp._sigev_un))) = int32(mp.procid)
++ *((*int32)(unsafe.Pointer(&sevp.__sev_fields))) = int32(mp.procid)
+ ret := timer_create(_CLOCK_THREAD_CPUTIME_ID, &sevp, &timerid)
+ if ret != 0 {
+ // If we cannot create a timer for this M, leave profileTimerValid false
diff --git a/srcpkgs/gcc/files/libgnarl-musl.patch b/srcpkgs/gcc/files/libgnarl-musl.patch
index 99a734c42c90..91c95949e0e9 100644
--- a/srcpkgs/gcc/files/libgnarl-musl.patch
+++ b/srcpkgs/gcc/files/libgnarl-musl.patch
@@ -5,7 +5,7 @@ Reason: Patch libgnarl to not use function missing from musl.
diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-osinte__linux.ads gcc-8.2.0-new/gcc/ada/libgnarl/s-osinte__linux.ads
--- a/gcc/ada/libgnarl/s-osinte__linux.ads 2018-01-11 00:55:25.000000000 -0800
+++ b/gcc/ada/libgnarl/s-osinte__linux.ads 2018-11-01 16:16:23.372452951 -0700
-@@ -394,12 +394,6 @@ package System.OS_Interface is
+@@ -403,12 +403,6 @@ package System.OS_Interface is
PTHREAD_RWLOCK_PREFER_WRITER_NP : constant := 1;
PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP : constant := 2;
@@ -18,7 +18,7 @@ diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-osinte__linux.ads gcc-8.2.0-new/gcc/ada/l
function pthread_rwlock_init
(mutex : access pthread_rwlock_t;
attr : access pthread_rwlockattr_t) return int;
-@@ -464,11 +458,6 @@ package System.OS_Interface is
+@@ -470,11 +464,6 @@ package System.OS_Interface is
protocol : int) return int;
pragma Import (C, pthread_mutexattr_setprotocol);
@@ -33,7 +33,7 @@ diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-osinte__linux.ads gcc-8.2.0-new/gcc/ada/l
diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-taprop__linux.adb gcc-8.2.0-new/gcc/ada/libgnarl/s-taprop__linux.adb
--- a/gcc/ada/libgnarl/s-taprop__linux.adb 2018-01-11 00:55:25.000000000 -0800
+++ b/gcc/ada/libgnarl/s-taprop__linux.adb 2018-11-13 11:28:36.433964449 -0800
-@@ -202,9 +202,6 @@ package body System.Task_Primitives.Oper
+@@ -198,9 +198,6 @@ package body System.Task_Primitives.Oper
pragma Import
(C, GNAT_pthread_condattr_setup, "__gnat_pthread_condattr_setup");
@@ -43,7 +43,7 @@ diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-taprop__linux.adb gcc-8.2.0-new/gcc/ada/l
-- We do not have pragma Linker_Options ("-lcap"); here, because this
-- library is not present on many Linux systems. 'libcap' is the Linux
-- "capabilities" library, called by __gnat_has_cap_sys_nice.
-@@ -214,38 +211,6 @@ package body System.Task_Primitives.Oper
+@@ -210,38 +207,6 @@ package body System.Task_Primitives.Oper
-- Convert Ada priority to Linux priority. Priorities are 1 .. 99 on
-- GNU/Linux, so we map 0 .. 98 to 1 .. 99.
@@ -76,13 +76,13 @@ diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-taprop__linux.adb gcc-8.2.0-new/gcc/ada/l
- return Ceiling_Support;
- end Get_Ceiling_Support;
-
-- pragma Warnings (Off, "non-static call not allowed in preelaborated unit");
+- pragma Warnings (Off, "non-preelaborable call not allowed*");
- Ceiling_Support : constant Boolean := Get_Ceiling_Support;
-- pragma Warnings (On, "non-static call not allowed in preelaborated unit");
+- pragma Warnings (On, "non-preelaborable call not allowed*");
-- True if the locking policy is Ceiling_Locking, and the current process
-- has permission to use this policy. The process has permission if it is
-- running as 'root', or if the capability was set by the setcap command,
-@@ -348,7 +313,9 @@ package body System.Task_Primitives.Oper
+@@ -344,7 +309,9 @@ package body System.Task_Primitives.Oper
-- Init_Mutex --
----------------
@@ -92,7 +92,7 @@ diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-taprop__linux.adb gcc-8.2.0-new/gcc/ada/l
Mutex_Attr : aliased pthread_mutexattr_t;
Result, Result_2 : C.int;
-@@ -360,16 +327,7 @@ package body System.Task_Primitives.Oper
+@@ -356,16 +323,7 @@ package body System.Task_Primitives.Oper
return Result;
end if;
@@ -110,7 +110,7 @@ diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-taprop__linux.adb gcc-8.2.0-new/gcc/ada/l
Result := pthread_mutexattr_setprotocol
(Mutex_Attr'Access, PTHREAD_PRIO_INHERIT);
pragma Assert (Result = 0);
-@@ -409,11 +367,6 @@ package body System.Task_Primitives.Oper
+@@ -405,11 +363,6 @@ package body System.Task_Primitives.Oper
Result := pthread_rwlockattr_init (RWlock_Attr'Access);
pragma Assert (Result = 0);
diff --git a/srcpkgs/gcc/files/libssp-musl.patch b/srcpkgs/gcc/files/libssp-musl.patch
index b21a2c29e57c..99f248401a1c 100644
--- a/srcpkgs/gcc/files/libssp-musl.patch
+++ b/srcpkgs/gcc/files/libssp-musl.patch
@@ -2,9 +2,9 @@ First part taken from Alpine.
Second part added to prevent gccgo from thinking it can -fsplit-stack on musl.
---- a/gcc/gcc.c
-+++ b/gcc/gcc.c
-@@ -874,10 +874,15 @@ proper position among the other output files. */
+--- a/gcc/gcc.cc
++++ b/gcc/gcc.cc
+@@ -984,10 +984,15 @@ proper position among the other output f
#define LINK_GCC_C_SEQUENCE_SPEC "%G %{!nolibc:%L %G}"
#endif
@@ -22,10 +22,10 @@ Second part added to prevent gccgo from thinking it can -fsplit-stack on musl.
#else
#define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \
"|fstack-protector-strong|fstack-protector-explicit" \
-@@ -1155,7 +1160,7 @@ static const char *cc1_options =
+@@ -1280,7 +1285,7 @@ static const char *cc1_options =
%{-version:--version}\
%{-help=*:--help=%*}\
- %{!fsyntax-only:%{S:%W{o*}%{!o*:-o %b.s}}}\
+ %{!fsyntax-only:%{S:%W{o*}%{!o*:-o %w%b.s}}}\
- %{fsyntax-only:-o %j} %{-param*}\
+ %{fsyntax-only:-o %j} %{-param*} " NO_SSP_SPEC "\
%{coverage:-fprofile-arcs -ftest-coverage}\
diff --git a/srcpkgs/gcc/patches/libffi_gnulinux.patch b/srcpkgs/gcc/patches/libffi_gnulinux.patch
deleted file mode 100644
index 98245bd5be1a..000000000000
--- a/srcpkgs/gcc/patches/libffi_gnulinux.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/libffi/src/closures.c
-+++ b/libffi/src/closures.c
-@@ -34,7 +34,7 @@
- #include <ffi_common.h>
-
- #if !FFI_MMAP_EXEC_WRIT && !FFI_EXEC_TRAMPOLINE_TABLE
--# if __gnu_linux__ && !defined(__ANDROID__)
-+# if __linux__ && !defined(__ANDROID__)
- /* This macro indicates it may be forbidden to map anonymous memory
- with both write and execute permission. Code compiled when this
- option is defined will attempt to map such pages once, but if it
diff --git a/srcpkgs/gcc/patches/libgcc-ibm128-no-tag.patch b/srcpkgs/gcc/patches/libgcc-ibm128-no-tag.patch
index bdf5c75d917d..26d80356ad0d 100644
--- a/srcpkgs/gcc/patches/libgcc-ibm128-no-tag.patch
+++ b/srcpkgs/gcc/patches/libgcc-ibm128-no-tag.patch
@@ -29,10 +29,14 @@ diff --git a/libgcc/config/rs6000/t-linux b/libgcc/config/rs6000/t-linux
index 4f6d4c4..fa93bb6 100644
--- a/libgcc/config/rs6000/t-linux
+++ b/libgcc/config/rs6000/t-linux
-@@ -1,3 +1,3 @@
+@@ -1,6 +1,6 @@
SHLIB_MAPFILES += $(srcdir)/config/rs6000/libgcc-glibc.ver
--HOST_LIBGCC2_CFLAGS += -mlong-double-128 -mno-minimal-toc
-+HOST_LIBGCC2_CFLAGS += -mlong-double-128 -mno-gnu-attribute -mno-minimal-toc
+-HOST_LIBGCC2_CFLAGS += -mlong-double-128
++HOST_LIBGCC2_CFLAGS += -mlong-double-128 -mno-gnu-attribute
+
+ # This is a way of selecting -mcmodel=small for ppc64, which gives
+ # smaller and faster libgcc code. Directly specifying -mcmodel=small
+
--
2.24.0
diff --git a/srcpkgs/gcc/patches/mips-sgidefs_h.patch b/srcpkgs/gcc/patches/mips-sgidefs_h.patch
index dddfe10e8c06..cd0ae7a380df 100644
--- a/srcpkgs/gcc/patches/mips-sgidefs_h.patch
+++ b/srcpkgs/gcc/patches/mips-sgidefs_h.patch
@@ -3,7 +3,7 @@
@@ -42,7 +42,7 @@
#define _MIPS_SIM_NABI32 2
#define _MIPS_SIM_ABI64 3
- #elif !defined(__OpenBSD__)
+ #elif !defined(__OpenBSD__) && !defined(__FreeBSD__)
-# include <sgidefs.h>
+# include <asm/sgidefs.h>
#endif
diff --git a/srcpkgs/gcc/template b/srcpkgs/gcc/template
index ab3643de4f98..a20af7c0ef2e 100644
--- a/srcpkgs/gcc/template
+++ b/srcpkgs/gcc/template
@@ -3,18 +3,14 @@
# which use the version number.
pkgname=gcc
-# we are using a 10-stable git snapshot alpine is using in order
-# to get regression fixes not yet incorporate into a stable release
-# it should be possible to switch back to stable with 10.3 or 11
-version=10.2.1pre1
-revision=3
-_patchver="${version%pre*}"
-_minorver="${_patchver%.*}"
+version=12.2.0
+revision=1
+_minorver="${version%.*}"
_majorver="${_minorver%.*}"
-_gmp_version=6.2.0
+_gmp_version=6.2.1
_mpfr_version=4.1.0
-_mpc_version=1.1.0
-_isl_version=0.21
+_mpc_version=1.2.1
+_isl_version=0.24
create_wrksrc=yes
short_desc="GNU Compiler Collection"
maintainer="Enno Boland <gottox@voidlinux.org>"
@@ -22,16 +18,16 @@ homepage="http://gcc.gnu.org"
license="GFDL-1.2-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
# *-musl builders have issues fetching https://ftp.gnu.org/gnu/mpc/mpc-1.1.0.tar.gz
distfiles="
- https://dev.alpinelinux.org/~nenolod/gcc-${version/pre/_pre}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${version}/gcc-${version}.tar.xz
https://gmplib.org/download/gmp/gmp-${_gmp_version}.tar.xz
${GNU_SITE}/mpfr/mpfr-${_mpfr_version}.tar.xz
${GNU_SITE}/mpc/mpc-${_mpc_version}.tar.gz
${SOURCEFORGE_SITE}/libisl/isl-${_isl_version}.tar.bz2"
-checksum="772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 258e6cd51b3fbdfc185c716d55f82c08aff57df0c6fbd143cf6ed561267a1526
+checksum="e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
+ fd4829912cddd12f84181c3451cc752be224643e87fac497b69edddadc49b4f2
0c98a3f1732ff6ca4ea690552079da9c597872d30e96ec28414ee23c95558a7f
- 6985c538143c1208dcb1ac42cedad6ff52e267b47e5f970183a3e75125b43c2e
- d18ca11f8ad1a39ab6d03d3dcb3365ab416720fcb65b42d69f34f51bf0a0e859"
+ 17503d2c395dfcf106b622dc142683c1199431d095367c6aacba6eec30340459
+ fcf78dd9656c10eb8cf9fbd5f59a0b6b01386205fe1934b3b287a0a1898145c0"
nopie=yes
lib32disabled=yes
@@ -52,8 +48,11 @@ if [ "$CHROOT_READY" ]; then
hostmakedepends="tar texinfo perl flex"
else
_have_gccgo=no
+ # libzstd fails to link in bootstrap with glibc 2.36
+ # when zlib has been compiled with glibc 2.32.
+ LDFLAGS="-lzstd -pthread"
fi
-makedepends="zlib-devel"
+makedepends="zlib-devel libzstd-devel"
depends="binutils libgcc-devel-${version}_${revision}
libstdc++-devel-${version}_${revision} libssp-devel-${version}_${revision}"
checkdepends="dejagnu"
@@ -70,13 +69,13 @@ if [ "$build_option_gnatboot" ]; then
case "$XBPS_TARGET_MACHINE" in
x86_64)
_gnat_tarball="gnat-gpl-2017-x86_64-linux-bin.tar.gz"
- distfiles+=" http://mirrors.cdn.adacore.com/art/591c6d80c7a447af2deed1d7>$_gnat_tarball"
+ distfiles+=" https://community.download.adacore.com/v1/9682e2e1f2f232ce03fe21d77b14c37a0de5649b?filename=$_gnat_tarball>$_gnat_tarball"
checksum+=" b942bcac20dea39748b39f8b624d9619f60a8dee2e8195dbe3829c835b0956e6"
build_options_default="gnatboot"
;;
i686)
_gnat_tarball="gnat-gpl-2014-x86-linux-bin.tar.gz"
- distfiles+=" http://mirrors.cdn.adacore.com/art/564b3e9dc8e196b040fbe248>$_gnat_tarball"
+ distfiles+=" https://community.download.adacore.com/v1/c5e9e6fdff5cb77ed90cf8c62536653e27c0bed6?filename=$_gnat_tarball>$_gnat_tarball"
checksum+=" 3b693510f5d22a240abb3034934c1adbd80ccd6e4f61a4f491cc408fdfd9c042"
build_options_default="gnatboot"
;;
@@ -155,8 +154,8 @@ if [ "$CROSS_BUILD" ]; then
fi
post_extract() {
- mv gcc-${version/pre/_pre}/* gcc-${version/pre/_pre}/.??* .
- rmdir gcc-${version/pre/_pre}
+ mv gcc-${version}/* gcc-${version}/.??* .
+ rmdir gcc-${version}
mv gmp-${_gmp_version} gmp
mv mpfr-${_mpfr_version} mpfr
mv mpc-${_mpc_version} mpc
@@ -186,9 +185,9 @@ pre_configure() {
sed -i 's@\./fixinc\.sh@-c true@' gcc/Makefile.in
if [ "$XBPS_TARGET_LIBC" = musl ]; then
- patch -p1 -i ${FILESDIR}/libgnarl-musl.patch
- patch -p1 -i ${FILESDIR}/libssp-musl.patch
- patch -p1 -i ${FILESDIR}/gccgo-musl.patch
+ for p in ${FILESDIR}/*-musl.patch; do
+ patch -p1 -i $p
+ done
fi
}
do_configure() {
@@ -343,16 +342,16 @@ do_install() {
# Make version a symlink of major version to make all versions
# from the same series work automagically.
- mv ${DESTDIR}/usr/lib/gcc/${_triplet}/${_patchver} \
+ mv ${DESTDIR}/usr/lib/gcc/${_triplet}/${version} \
${DESTDIR}/usr/lib/gcc/${_triplet}/${_minorver}
ln -sfr ${DESTDIR}/usr/lib/gcc/${_triplet}/${_minorver} \
- ${DESTDIR}/usr/lib/gcc/${_triplet}/${_patchver}
+ ${DESTDIR}/usr/lib/gcc/${_triplet}/${version}
# Ditto for c++ headers.
- mv ${DESTDIR}/usr/include/c++/${_patchver} \
+ mv ${DESTDIR}/usr/include/c++/${version} \
${DESTDIR}/usr/include/c++/${_minorver}
ln -sfr ${DESTDIR}/usr/include/c++/${_minorver} \
- ${DESTDIR}/usr/include/c++/${_patchver}
+ ${DESTDIR}/usr/include/c++/${version}
# cc symlink
ln -sfr ${DESTDIR}/usr/bin/gcc ${DESTDIR}/usr/bin/cc
@@ -361,7 +360,7 @@ do_install() {
# lto plugin symlink
vmkdir usr/lib/bfd-plugins
- ln -sfr ${DESTDIR}/usr/lib/gcc/${_triplet}/${_patchver}/liblto_plugin.so \
+ ln -sfr ${DESTDIR}/usr/lib/gcc/${_triplet}/${version}/liblto_plugin.so \
${DESTDIR}/usr/lib/bfd-plugins
# Remove "fixed" header
@@ -372,13 +371,9 @@ do_install() {
rm -f ${DESTDIR}/usr/lib/libffi*
rm -f ${DESTDIR}/usr/share/man/man3/ffi*
- # Remove all python scripts in libdir.
- rm -f ${DESTDIR}/usr/lib/*.py
-
- # Remove more python stuff.
- if [ -d ${DESTDIR}/usr/share/gcc-${_patchver}/python ]; then
- rm -rf ${DESTDIR}/usr/share/gcc-${_patchver}/python
- fi
+ # Move libstdc++ gdb helpers to location where gdb can autoload them
+ mkdir -p ${DESTDIR}/usr/share/gdb/auto-load/usr/lib
+ mv ${DESTDIR}/usr/lib/*.py ${DESTDIR}/usr/share/gdb/auto-load/usr/lib
# Install c89 and c99 wrappers and its manpages, from NetBSD.
for f in c89 c99; do
@@ -397,7 +392,7 @@ gcc-ada_package() {
depends="gcc>=${_minorver} libada-devel>=${_minorver}"
short_desc+=" - Ada compiler frontend"
pkg_install() {
- for f in gnat{,bind,chop,clean,find,kr,link,ls,make,name,prep,xref}; do
+ for f in gnat{,bind,chop,clean,kr,link,ls,make,name,prep}; do
vmove usr/bin/${f}
done
}
@@ -450,7 +445,7 @@ gcc-fortran_package() {
if [ "$CROSS_BUILD" ]; then
# A number of OMP modules are not built when cross
# compiling gcc. Copy them from the cross compiler.
- local src="/usr/lib/gcc/${_triplet}/${_patchver}/finclude"
+ local src="/usr/lib/gcc/${_triplet}/${version}/finclude"
local dst="usr/lib/gcc/${_triplet}/${_minorver}/finclude"
for f in omp_lib.f90 omp_lib.h omp_lib.mod omp_lib_kinds.mod \
openacc.f90 openacc.mod openacc_kinds.mod openacc_lib.h; do
@@ -517,7 +512,7 @@ libgfortran_package() {
short_desc+=" - Fortran library"
pkg_install() {
vmove "usr/lib/libgfortran.so*"
- vlicense ${wrksrc}/COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
+ vlicense COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
}
}
@@ -538,7 +533,7 @@ libgo_package() {
nostrip=yes
pkg_install() {
vmove "usr/lib/libgo.so*"
- vlicense ${wrksrc}/COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
+ vlicense COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
}
}
@@ -554,7 +549,7 @@ libobjc_package() {
short_desc+=" - Objective-C library"
pkg_install() {
vmove "usr/lib/libobjc.so*"
- vlicense ${wrksrc}/COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
+ vlicense COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
}
}
@@ -573,7 +568,7 @@ libquadmath_package() {
short_desc+=" - quadmath library"
pkg_install() {
vmove "usr/lib/libquadmath.so*"
- vlicense ${wrksrc}/COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
+ vlicense COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
}
}
@@ -615,7 +610,7 @@ libgcc_package() {
noverifyrdeps=yes
pkg_install() {
vmove "usr/lib/libgcc_s.so*"
- vlicense ${wrksrc}/COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
+ vlicense COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
}
}
@@ -646,7 +641,7 @@ libgomp_package() {
short_desc+=" - OpenMP v4.0 library"
pkg_install() {
vmove "usr/lib/libgomp*.so.*"
- vlicense ${wrksrc}/COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
+ vlicense COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
}
}
@@ -701,7 +696,7 @@ libssp_package() {
short_desc+=" - SSP (StackSmashingProtection) library"
pkg_install() {
vmove "usr/lib/libssp.so*"
- vlicense ${wrksrc}/COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
+ vlicense COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
}
}
@@ -718,7 +713,9 @@ libstdc++-devel_package() {
libstdc++_package() {
short_desc+=" - Standard C++ Library"
pkg_install() {
+ vmove usr/share/gdb
+ vmove usr/share/gcc-${version}/python
vmove "usr/lib/libstdc++.so*"
- vlicense ${wrksrc}/COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
+ vlicense COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
}
}
From f78405a9bfc5d3741acf926ac4c6ad8b2a5c16b1 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sat, 5 Nov 2022 11:33:11 -0700
Subject: [PATCH 04/38] libtool: rebuild for gcc 12
---
srcpkgs/libtool/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/libtool/template b/srcpkgs/libtool/template
index fc5c53a9c3e9..aebad9294eef 100644
--- a/srcpkgs/libtool/template
+++ b/srcpkgs/libtool/template
@@ -1,7 +1,7 @@
# Template file for 'libtool'
pkgname=libtool
version=2.4.7
-revision=1
+revision=2
build_style=gnu-configure
hostmakedepends="texinfo perl automake help2man xz"
depends="tar sed"
From 7696c7a61490e29fa1fb969b1a001ac986df2bd6 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sat, 5 Nov 2022 11:33:12 -0700
Subject: [PATCH 05/38] libiberty-devel: update to 20220713.
---
srcpkgs/libiberty-devel/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/libiberty-devel/template b/srcpkgs/libiberty-devel/template
index 7e01bbb851fd..d9618e3806ba 100644
--- a/srcpkgs/libiberty-devel/template
+++ b/srcpkgs/libiberty-devel/template
@@ -1,6 +1,6 @@
# Template file for 'libiberty-devel'
pkgname=libiberty-devel
-version=20210106
+version=20220713
revision=1
build_wrksrc=libiberty
build_style=gnu-configure
@@ -10,7 +10,7 @@ maintainer="Orphaned <orphan@voidlinux.org>"
license="GPL-3.0-or-later"
homepage="http://gcc.gnu.org/"
distfiles="http://deb.debian.org/debian/pool/main/libi/libiberty/libiberty_${version}.orig.tar.xz"
-checksum=9df153d69914c0f5a9145e0abbb248e72feebab6777c712a30f1c3b8c19047d4
+checksum=b59050f48c8a0f9c9e6fba5d17c7a4f11d1329de0c0dca7331b767a6d2bbe8d9
conflicts="binutils-devel<=2.35.1_3"
CFLAGS="-fPIC"
From 9855e78e1000d7a3dbd9e216edaf9a1804f8397a Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sat, 5 Nov 2022 11:33:12 -0700
Subject: [PATCH 06/38] glibc: update to 2.36.
---
common/shlibs | 60 ++--
...e-hash-style-both-for-building-glibc.patch | 51 ++++
.../glibc/patches/glibc-c-utf8-locale.patch | 286 ------------------
srcpkgs/glibc/template | 66 ++--
4 files changed, 109 insertions(+), 354 deletions(-)
create mode 100644 srcpkgs/glibc/patches/0001-Revert-Do-not-use-hash-style-both-for-building-glibc.patch
delete mode 100644 srcpkgs/glibc/patches/glibc-c-utf8-locale.patch
diff --git a/common/shlibs b/common/shlibs
index 04cbade52468..a8c3a244f9ac 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -17,38 +17,38 @@
# one (order top->bottom) is preferred over the next ones.
#
libc.so musl-1.1.24_7
-libc.so.6 glibc-2.32_1
-libm.so.6 glibc-2.32_1
-libpthread.so.0 glibc-2.32_1
-librt.so.1 glibc-2.32_1
-libdl.so.2 glibc-2.32_1
-ld-linux-x86-64.so.2 glibc-2.32_1 x86_64
-ld-linux.so.2 glibc-2.32_1 i686
-ld-linux.so.3 glibc-2.32_1 armv5tel
-ld-linux-aarch64.so.1 glibc-2.32_1 aarch64
-ld64.so.2 glibc-2.32_1 ppc64
-ld.so.1 glibc-2.32_1 mips
-ld.so.1 glibc-2.32_1 ppc
-ld-linux-armhf.so.3 glibc-2.32_1
-libresolv.so.2 glibc-2.32_1
-libanl.so.1 glibc-2.32_1
-libthread_db.so.1 glibc-2.32_1
-libutil.so.1 glibc-2.32_1
-libnsl.so.1 glibc-2.32_1
-libnss_db.so.2 glibc-2.32_1
-libnss_files.so.2 glibc-2.32_1
-libnss_compat.so.2 glibc-2.32_1
-libnss_dns.so.2 glibc-2.32_1
-libnss_hesiod.so.2 glibc-2.32_1
-libcrypt.so.1 glibc-2.32_1
-libBrokenLocale.so.1 glibc-2.32_1
+libc.so.6 glibc-2.36_1
+libm.so.6 glibc-2.36_1
+libpthread.so.0 glibc-2.36_1
+librt.so.1 glibc-2.36_1
+libdl.so.2 glibc-2.36_1
+ld-linux-x86-64.so.2 glibc-2.36_1 x86_64
+ld-linux.so.2 glibc-2.36_1 i686
+ld-linux.so.3 glibc-2.36_1 armv5tel
+ld-linux-aarch64.so.1 glibc-2.36_1 aarch64
+ld64.so.2 glibc-2.36_1 ppc64
+ld.so.1 glibc-2.36_1 mips
+ld.so.1 glibc-2.36_1 ppc
+ld-linux-armhf.so.3 glibc-2.36_1
+libresolv.so.2 glibc-2.36_1
+libanl.so.1 glibc-2.36_1
+libthread_db.so.1 glibc-2.36_1
+libutil.so.1 glibc-2.36_1
+libnsl.so.1 glibc-2.36_1
+libnss_db.so.2 glibc-2.36_1
+libnss_files.so.2 glibc-2.36_1
+libnss_compat.so.2 glibc-2.36_1
+libnss_dns.so.2 glibc-2.36_1
+libnss_hesiod.so.2 glibc-2.36_1
+libcrypt.so.1 glibc-2.36_1
+libBrokenLocale.so.1 glibc-2.36_1
libSimGearCore.so.2020.3.13 simgear-2020.3.13_1
libSimGearScene.so.2020.3.13 simgear-2020.3.13_1
-libmemusage.so glibc-2.32_1
-libSegFault.so glibc-2.32_1
-libpcprofile.so glibc-2.32_1
-libcidn.so.1 glibc-2.32_1
-libmvec.so.1 glibc-2.32_1
+libmemusage.so glibc-2.36_1
+libSegFault.so glibc-2.36_1
+libpcprofile.so glibc-2.36_1
+libcidn.so.1 glibc-2.36_1
+libmvec.so.1 glibc-2.36_1
libcddgmp.so.0 cddlib-0.94m_1
libcdd.so.0 cddlib-0.94m_1
libz.so.1 zlib-1.2.3_1
diff --git a/srcpkgs/glibc/patches/0001-Revert-Do-not-use-hash-style-both-for-building-glibc.patch b/srcpkgs/glibc/patches/0001-Revert-Do-not-use-hash-style-both-for-building-glibc.patch
new file mode 100644
index 000000000000..9c5553e92609
--- /dev/null
+++ b/srcpkgs/glibc/patches/0001-Revert-Do-not-use-hash-style-both-for-building-glibc.patch
@@ -0,0 +1,51 @@
+Temporary workaround for EAC bug.
+
+See: https://sourceware.org/bugzilla/show_bug.cgi?id=29456
+
+From 8e90e2cc5e57d7ca3a40602d278e9642a8b66716 Mon Sep 17 00:00:00 2001
+From: oreo639 <oreo6391@gmail.com>
+Date: Tue, 13 Sep 2022 14:30:35 -0700
+Subject: [PATCH] Revert "Do not use --hash-style=both for building glibc
+ shared objects"
+
+This reverts commit e47de5cb2d4dbecb58f569ed241e8e95c568f03c.
+---
+ Makeconfig | 9 +++++++++
+ Makerules | 7 +++++++
+ 5 files changed, 61 insertions(+)
+
+diff --git a/Makeconfig b/Makeconfig
+index ba70321af1..e2131d4389 100644
+--- a/Makeconfig
++++ b/Makeconfig
+@@ -371,6 +371,13 @@ dt-relr-ldflag =
+ no-dt-relr-ldflag =
+ endif
+
++# For the time being we unconditionally use 'both'. At some time we
++# should declare statically linked code as 'out of luck' and compile
++# with --hash-style=gnu only.
++hashstyle-LDFLAGS = -Wl,--hash-style=both
++LDFLAGS.so += $(hashstyle-LDFLAGS)
++LDFLAGS-rtld += $(hashstyle-LDFLAGS)
++
+ ifeq (no,$(build-pie-default))
+ pie-default = $(no-pie-ccflag)
+ else # build-pie-default
+diff --git a/Makerules b/Makerules
+index d1e139d03c..44134e37ce 100644
+--- a/Makerules
++++ b/Makerules
+@@ -558,6 +558,9 @@ $(common-objpfx)shlib.lds: $(common-objpfx)config.make $(..)Makerules
+ -Wl,--verbose 2>/dev/null | \
+ sed > $@T \
+ -e '/^=========/,/^=========/!d;/^=========/d' \
++ -e 's/^.*\.gnu\.hash[ ]*:.*$$/ .note.ABI-tag : { *(.note.ABI-tag) } &/' \
++ -e '/^[ ]*\.hash[ ]*:.*$$/{h;d;}' \
++ -e '/DATA_SEGMENT_ALIGN/{H;g}' \
+ -e 's/^.*\*(\.dynbss).*$$/& \
+ PROVIDE(__start___libc_freeres_ptrs = .); \
+ *(__libc_freeres_ptrs) \
+--
+2.37.3
+
diff --git a/srcpkgs/glibc/patches/glibc-c-utf8-locale.patch b/srcpkgs/glibc/patches/glibc-c-utf8-locale.patch
deleted file mode 100644
index 7215e1558b62..000000000000
--- a/srcpkgs/glibc/patches/glibc-c-utf8-locale.patch
+++ /dev/null
@@ -1,286 +0,0 @@
-Short description: Add C.UTF-8 support.
-Author(s): Fedora glibc team <glibc@lists.fedoraproject.org>
-Origin: PATCH
-Upstream status: not-submitted
-
-This patch needs to upstream as part of Carlos O'Donell
-<carlos@redhat.com>'s work on enabling upstream C.UTF-8 support. This
-work is currently blocked on cleaning up the test results to prove that
-full code-point sorting is working as intended.
-
-Note that this patch does not provide full code-point sorting as
-expected.
-
-This patch needs to upstream as soon as possible since it would be nice
-to have this in F29 and fixed.
-
-From 2eda7b462b415105f5a05c1323372d4e39d46439 Mon Sep 17 00:00:00 2001
-From: Mike FABIAN <mfabian@redhat.com>
-Date: Mon, 10 Aug 2015 15:58:12 +0200
-Subject: [PATCH] Add a C.UTF-8 locale
-
----
- localedata/SUPPORTED | 1 +
- localedata/locales/C | 238 +++++++++++++++++++++++++++++++++++++++++++++++++++
- 2 files changed, 239 insertions(+)
- create mode 100644 localedata/locales/C
-
-diff --git a/localedata/SUPPORTED b/localedata/SUPPORTED
-index 8ca023e..2a78391 100644
---- a/localedata/SUPPORTED
-+++ b/localedata/SUPPORTED
-@@ -1,6 +1,7 @@
- # This file names the currently supported and somewhat tested locales.
- # If you have any additions please file a glibc bug report.
- SUPPORTED-LOCALES=\
-+C.UTF-8/UTF-8 \
- aa_DJ.UTF-8/UTF-8 \
- aa_DJ/ISO-8859-1 \
- aa_ER/UTF-8 \
-diff --git a/localedata/locales/C b/localedata/locales/C
-new file mode 100644
-index 0000000..fdf460e
---- /dev/null
-+++ b/localedata/locales/C
-@@ -0,0 +1,238 @@
-+escape_char /
-+comment_char %
-+% Locale for C locale in UTF-8
-+
-+LC_IDENTIFICATION
-+title "C locale"
-+source ""
-+address ""
-+contact ""
-+email "mfabian@redhat.com"
-+tel ""
-+fax ""
-+language "C"
-+territory ""
-+revision "1.0"
-+date "2015-08-10"
-+%
-+category "i18n:2012";LC_IDENTIFICATION
-+category "i18n:2012";LC_CTYPE
-+category "i18n:2012";LC_COLLATE
-+category "i18n:2012";LC_TIME
-+category "i18n:2012";LC_NUMERIC
-+category "i18n:2012";LC_MONETARY
-+category "i18n:2012";LC_MESSAGES
-+category "i18n:2012";LC_PAPER
-+category "i18n:2012";LC_NAME
-+category "i18n:2012";LC_ADDRESS
-+category "i18n:2012";LC_TELEPHONE
-+category "i18n:2012";LC_MEASUREMENT
-+END LC_IDENTIFICATION
-+
-+LC_CTYPE
-+copy "i18n"
-+
-+translit_start
-+include "translit_combining";""
-+translit_end
-+
-+END LC_CTYPE
-+
-+LC_COLLATE
-+order_start forward
-+<U0000>
-+..
-+<UFFFF>
-+<U10000>
-+..
-+<U1FFFF>
-+<U20000>
-+..
-+<U2FFFF>
-+<UE0000>
-+..
-+<UEFFFF>
-+<UF0000>
-+..
-+<UFFFFF>
-+<U100000>
-+..
-+<U10FFFF>
-+UNDEFINED
-+order_end
-+END LC_COLLATE
-+
-+LC_MONETARY
-+% This is the 14652 i18n fdcc-set definition for
-+% the LC_MONETARY category
-+% (except for the int_curr_symbol and currency_symbol, they are empty in
-+% the 14652 i18n fdcc-set definition and also empty in
-+% glibc/locale/C-monetary.c. But localedef complains in that case).
-+%
-+% Using "USD" for int_curr_symbol. But maybe "XXX" would be better?
-+% XXX is "No currency" (https://en.wikipedia.org/wiki/ISO_4217)
-+int_curr_symbol "<U0055><U0053><U0044><U0020>"
-+% Using "$" for currency_symbol. But maybe <U00A4> would be better?
-+% U+00A4 is the "generic currency symbol"
-+% (https://en.wikipedia.org/wiki/Currency_sign_%28typography%29)
-+currency_symbol "<U0024>"
-+mon_decimal_point "<U002E>"
-+mon_thousands_sep ""
-+mon_grouping -1
-+positive_sign ""
-+negative_sign "<U002D>"
-+int_frac_digits -1
-+frac_digits -1
-+p_cs_precedes -1
-+int_p_sep_by_space -1
-+p_sep_by_space -1
-+n_cs_precedes -1
-+int_n_sep_by_space -1
-+n_sep_by_space -1
-+p_sign_posn -1
-+n_sign_posn -1
-+%
-+END LC_MONETARY
-+
-+LC_NUMERIC
-+% This is the POSIX Locale definition for
-+% the LC_NUMERIC category.
-+%
-+decimal_point "<U002E>"
-+thousands_sep ""
-+grouping -1
-+END LC_NUMERIC
-+
-+LC_TIME
-+% This is the POSIX Locale definition for
-+% the LC_TIME category.
-+%
-+% Abbreviated weekday names (%a)
-+abday "<U0053><U0075><U006E>";"<U004D><U006F><U006E>";/
-+ "<U0054><U0075><U0065>";"<U0057><U0065><U0064>";/
-+ "<U0054><U0068><U0075>";"<U0046><U0072><U0069>";/
-+ "<U0053><U0061><U0074>"
-+
-+% Full weekday names (%A)
-+day "<U0053><U0075><U006E><U0064><U0061><U0079>";/
-+ "<U004D><U006F><U006E><U0064><U0061><U0079>";/
-+ "<U0054><U0075><U0065><U0073><U0064><U0061><U0079>";/
-+ "<U0057><U0065><U0064><U006E><U0065><U0073><U0064><U0061><U0079>";/
-+ "<U0054><U0068><U0075><U0072><U0073><U0064><U0061><U0079>";/
-+ "<U0046><U0072><U0069><U0064><U0061><U0079>";/
-+ "<U0053><U0061><U0074><U0075><U0072><U0064><U0061><U0079>"
-+
-+% Abbreviated month names (%b)
-+abmon "<U004A><U0061><U006E>";"<U0046><U0065><U0062>";/
-+ "<U004D><U0061><U0072>";"<U0041><U0070><U0072>";/
-+ "<U004D><U0061><U0079>";"<U004A><U0075><U006E>";/
-+ "<U004A><U0075><U006C>";"<U0041><U0075><U0067>";/
-+ "<U0053><U0065><U0070>";"<U004F><U0063><U0074>";/
-+ "<U004E><U006F><U0076>";"<U0044><U0065><U0063>"
-+
-+% Full month names (%B)
-+mon "<U004A><U0061><U006E><U0075><U0061><U0072><U0079>";/
-+ "<U0046><U0065><U0062><U0072><U0075><U0061><U0072><U0079>";/
-+ "<U004D><U0061><U0072><U0063><U0068>";/
-+ "<U0041><U0070><U0072><U0069><U006C>";/
-+ "<U004D><U0061><U0079>";/
-+ "<U004A><U0075><U006E><U0065>";/
-+ "<U004A><U0075><U006C><U0079>";/
-+ "<U0041><U0075><U0067><U0075><U0073><U0074>";/
-+ "<U0053><U0065><U0070><U0074><U0065><U006D><U0062><U0065><U0072>";/
-+ "<U004F><U0063><U0074><U006F><U0062><U0065><U0072>";/
-+ "<U004E><U006F><U0076><U0065><U006D><U0062><U0065><U0072>";/
-+ "<U0044><U0065><U0063><U0065><U006D><U0062><U0065><U0072>"
-+
-+% Week description, consists of three fields:
-+% 1. Number of days in a week.
-+% 2. Gregorian date that is a first weekday (19971130 for Sunday, 19971201 for Monday).
-+% 3. The weekday number to be contained in the first week of the year.
-+%
-+% ISO 8601 conforming applications should use the values 7, 19971201 (a
-+% Monday), and 4 (Thursday), respectively.
-+week 7;19971201;4
-+first_weekday 1
-+first_workday 1
-+
-+% Appropriate date and time representation (%c)
-+% "%a %b %e %H:%M:%S %Y"
-+d_t_fmt "<U0025><U0061><U0020><U0025><U0062><U0020><U0025><U0065><U0020><U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053><U0020><U0025><U0059>"
-+
-+% Appropriate date representation (%x)
-+% "%m/%d/%y"
-+d_fmt "<U0025><U006D><U002F><U0025><U0064><U002F><U0025><U0079>"
-+
-+% Appropriate time representation (%X)
-+% "%H:%M:%S"
-+t_fmt "<U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053>"
-+
-+% Appropriate AM/PM time representation (%r)
-+% "%I:%M:%S %p"
-+t_fmt_ampm "<U0025><U0049><U003A><U0025><U004D><U003A><U0025><U0053><U0020><U0025><U0070>"
-+
-+% Equivalent of AM/PM (%p) "AM"/"PM"
-+%
-+am_pm "<U0041><U004D>";"<U0050><U004D>"
-+
-+% Appropriate date representation (date(1)) "%a %b %e %H:%M:%S %Z %Y"
-+date_fmt "<U0025><U0061><U0020><U0025><U0062><U0020><U0025><U0065><U0020><U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053><U0020><U0025><U005A><U0020><U0025><U0059>"
-+END LC_TIME
-+
-+LC_MESSAGES
-+% This is the POSIX Locale definition for
-+% the LC_NUMERIC category.
-+%
-+yesexpr "<U005E><U005B><U0079><U0059><U005D>"
-+noexpr "<U005E><U005B><U006E><U004E><U005D>"
-+yesstr "<U0059><U0065><U0073>"
-+nostr "<U004E><U006F>"
-+END LC_MESSAGES
-+
-+LC_PAPER
-+% This is the ISO/IEC 14652 "i18n" definition for
-+% the LC_PAPER category.
-+% (A4 paper, this is also used in the built in C/POSIX
-+% locale in glibc/locale/C-paper.c)
-+height 297
-+width 210
-+END LC_PAPER
-+
-+LC_NAME
-+% This is the ISO/IEC 14652 "i18n" definition for
-+% the LC_NAME category.
-+% "%p%t%g%t%m%t%f"
-+% (also used in the built in C/POSIX locale in glibc/locale/C-name.c)
-+name_fmt "<U0025><U0070><U0025><U0074><U0025><U0067><U0025><U0074>/
-+<U0025><U006D><U0025><U0074><U0025><U0066>"
-+END LC_NAME
-+
-+LC_ADDRESS
-+% This is the ISO/IEC 14652 "i18n" definition for
-+% the LC_ADDRESS category.
-+% "%a%N%f%N%d%N%b%N%s %h %e %r%N%C-%z %T%N%c%N"
-+% (also used in the built in C/POSIX locale in glibc/locale/C-address.c)
-+postal_fmt "<U0025><U0061><U0025><U004E><U0025><U0066><U0025><U004E>/
-+<U0025><U0064><U0025><U004E><U0025><U0062><U0025><U004E><U0025><U0073>/
-+<U0020><U0025><U0068><U0020><U0025><U0065><U0020><U0025><U0072><U0025>/
-+<U004E><U0025><U0043><U002D><U0025><U007A><U0020><U0025><U0054><U0025>/
-+<U004E><U0025><U0063><U0025><U004E>"
-+END LC_ADDRESS
-+
-+LC_TELEPHONE
-+% This is the ISO/IEC 14652 "i18n" definition for
-+% the LC_TELEPHONE category.
-+% "+%c %a %l"
-+tel_int_fmt "<U002B><U0025><U0063><U0020><U0025><U0061><U0020><U0025>/
-+<U006C>"
-+% (also used in the built in C/POSIX locale in glibc/locale/C-telephone.c)
-+END LC_TELEPHONE
-+
-+LC_MEASUREMENT
-+% This is the ISO/IEC 14652 "i18n" definition for
-+% the LC_MEASUREMENT category.
-+% (same as in the built in C/POSIX locale in glibc/locale/C-measurement.c)
-+%metric
-+measurement 1
-+END LC_MEASUREMENT
-+
---
-2.4.3
-
diff --git a/srcpkgs/glibc/template b/srcpkgs/glibc/template
index c62a4d2aedf1..6cd4c0980cbb 100644
--- a/srcpkgs/glibc/template
+++ b/srcpkgs/glibc/template
@@ -1,14 +1,16 @@
# Template file for 'glibc'
pkgname=glibc
-version=2.32
-revision=2
+version=2.36
+revision=1
+_patchver="72-g0f90d6204d"
+wrksrc="glibc-${version}-${_patchver}"
bootstrap=yes
short_desc="GNU C library"
maintainer="Enno Boland <gottox@voidlinux.org>"
license="GPL-2.0-or-later, LGPL-2.1-or-later, BSD-3-Clause"
homepage="http://www.gnu.org/software/libc"
-distfiles="${GNU_SITE}/glibc/glibc-${version}.tar.xz"
-checksum=1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+distfiles="https://vasilek.cz/paste/glibc-${version}-${_patchver}.tar.xz"
+checksum=656200722d5ba968b4888a2d2950719d72c86290fd0479f61897d25b7db2cb57
# Do not strip these files, objcopy errors out.
nostrip_files="
XBS5_ILP32_OFFBIG
@@ -20,27 +22,28 @@ nostrip_files="
POSIX_V6_LP64_OFF64
POSIX_V7_LP64_OFF64
XBS5_LP64_OFF64
- ld-${version}.so
- libdl-${version}.so
- libanl-${version}.so
- libcidn-${version}.so
- libresolv-${version}.so
- libcrypt-${version}.so
- libpthread-${version}.so
- libm-${version}.so
- libutil-${version}.so
- libthread_db-1.0.so
- librt-${version}.so
- libnsl-${version}.so
- libc-${version}.so
- libBrokenLocale-${version}.so
- libnss_compat-${version}.so
- libnss_db-${version}.so
- libnss_dns-${version}.so
- libnss_files-${version}.so
- libnss_hesiod-${version}.so
- libnss_nisplus-${version}.so
- libnss_nis-${version}.so"
+ ld-linux-x86-64.so.2
+ ld-linux.so.2
+ ld-linux.so.3
+ ld-linux-aarch64.so.1
+ ld64.so.2
+ ld.so.1
+ ld-linux-armhf.so.3
+ libresolv.so.2
+ libcrypt.so.1
+ libm.so.6
+ libthread_db.so.1
+ libnsl.so.1
+ libc.so.6
+ libc_malloc_debug.so.0
+ libmemusage.so
+ libmvec.so.1
+ libBrokenLocale.so.1
+ libnss_compat.so.2
+ libnss_db.so.2
+ libnss_dns.so.2
+ libnss_files.so.2
+ libnss_hesiod.so.2"
conf_files="
/etc/rpc
@@ -54,7 +57,6 @@ lib32files="/usr/lib/gconv/gconv-modules"
lib32symlinks="ld-linux.so.2"
# There's no point in building this for musl.
archs="~*-musl"
-nopie=yes
do_configure() {
mkdir build
@@ -163,18 +165,6 @@ do_install() {
rm -f ${DESTDIR}/usr/bin/z{dump,ic}
mv ${DESTDIR}/usr/sbin/* ${DESTDIR}/usr/bin
-
- # Create xbps.d(5) arch override file for 32-bit architectures
- # 32-bit userlands may be used with 64-bit kernels and then
- # xbps will report an incorrect architecture by default
- case "$XBPS_TARGET_MACHINE" in
- i686|ppc|ppcle|armv*)
- vmkdir usr/share/xbps.d
- echo "architecture=${XBPS_TARGET_MACHINE}" > \
- ${DESTDIR}/usr/share/xbps.d/arch-32bit.conf
- ;;
- *) ;;
- esac
}
glibc-devel_package() {
From 770f60dde3ebf8bffa023494050a5e39d9aa7e10 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sat, 5 Nov 2022 11:33:12 -0700
Subject: [PATCH 07/38] musl: add support for SIGEV_THREAD_ID timers
https://git.musl-libc.org/cgit/musl/commit/?id=7c71792e87691451f2a6b76348e83ad1889f1dcb
---
...d-support-for-SIGEV_THREAD_ID-timers.patch | 74 +++++++++++++++++++
srcpkgs/musl/template | 2 +-
2 files changed, 75 insertions(+), 1 deletion(-)
create mode 100644 srcpkgs/musl/patches/add-support-for-SIGEV_THREAD_ID-timers.patch
diff --git a/srcpkgs/musl/patches/add-support-for-SIGEV_THREAD_ID-timers.patch b/srcpkgs/musl/patches/add-support-for-SIGEV_THREAD_ID-timers.patch
new file mode 100644
index 000000000000..e20dff5ba0d4
--- /dev/null
+++ b/srcpkgs/musl/patches/add-support-for-SIGEV_THREAD_ID-timers.patch
@@ -0,0 +1,74 @@
+From 7c71792e87691451f2a6b76348e83ad1889f1dcb Mon Sep 17 00:00:00 2001
+From: James Y Knight <jyknight@google.com>
+Date: Sun, 30 Jun 2019 21:55:20 -0400
+Subject: [PATCH] add support for SIGEV_THREAD_ID timers
+
+This is like SIGEV_SIGNAL, but targeted to a particular thread's
+tid, rather than the process.
+---
+ include/signal.h | 16 +++++++++++++---
+ src/time/timer_create.c | 8 ++++++--
+ 2 files changed, 19 insertions(+), 5 deletions(-)
+
+diff --git a/include/signal.h b/include/signal.h
+index fbdf667b2..9ed929e4f 100644
+--- a/include/signal.h
++++ b/include/signal.h
+@@ -180,14 +180,24 @@ struct sigevent {
+ union sigval sigev_value;
+ int sigev_signo;
+ int sigev_notify;
+- void (*sigev_notify_function)(union sigval);
+- pthread_attr_t *sigev_notify_attributes;
+- char __pad[56-3*sizeof(long)];
++ union {
++ char __pad[64 - 2*sizeof(int) - sizeof(union sigval)];
++ pid_t sigev_notify_thread_id;
++ struct {
++ void (*sigev_notify_function)(union sigval);
++ pthread_attr_t *sigev_notify_attributes;
++ } __sev_thread;
++ } __sev_fields;
+ };
+
++#define sigev_notify_thread_id __sev_fields.sigev_notify_thread_id
++#define sigev_notify_function __sev_fields.__sev_thread.sigev_notify_function
++#define sigev_notify_attributes __sev_fields.__sev_thread.sigev_notify_attributes
++
+ #define SIGEV_SIGNAL 0
+ #define SIGEV_NONE 1
+ #define SIGEV_THREAD 2
++#define SIGEV_THREAD_ID 4
+
+ int __libc_current_sigrtmin(void);
+ int __libc_current_sigrtmax(void);
+diff --git a/src/time/timer_create.c b/src/time/timer_create.c
+index 5ddfda278..4bef23905 100644
+--- a/src/time/timer_create.c
++++ b/src/time/timer_create.c
+@@ -71,11 +71,15 @@ int timer_create(clockid_t clk, struct sigevent *restrict evp, timer_t *restrict
+ switch (evp ? evp->sigev_notify : SIGEV_SIGNAL) {
+ case SIGEV_NONE:
+ case SIGEV_SIGNAL:
++ case SIGEV_THREAD_ID:
+ if (evp) {
+ ksev.sigev_value = evp->sigev_value;
+ ksev.sigev_signo = evp->sigev_signo;
+ ksev.sigev_notify = evp->sigev_notify;
+- ksev.sigev_tid = 0;
++ if (evp->sigev_notify == SIGEV_THREAD_ID)
++ ksev.sigev_tid = evp->sigev_notify_thread_id;
++ else
++ ksev.sigev_tid = 0;
+ ksevp = &ksev;
+ }
+ if (syscall(SYS_timer_create, clk, ksevp, &timerid) < 0)
+@@ -107,7 +111,7 @@ int timer_create(clockid_t clk, struct sigevent *restrict evp, timer_t *restrict
+
+ ksev.sigev_value.sival_ptr = 0;
+ ksev.sigev_signo = SIGTIMER;
+- ksev.sigev_notify = 4; /* SIGEV_THREAD_ID */
++ ksev.sigev_notify = SIGEV_THREAD_ID;
+ ksev.sigev_tid = td->tid;
+ if (syscall(SYS_timer_create, clk, &ksev, &timerid) < 0)
+ timerid = -1;
diff --git a/srcpkgs/musl/template b/srcpkgs/musl/template
index 34e6ed4fba6e..afb33cd868b5 100644
--- a/srcpkgs/musl/template
+++ b/srcpkgs/musl/template
@@ -2,7 +2,7 @@
pkgname=musl
reverts="1.2.0_1"
version=1.1.24
-revision=11
+revision=12
archs="*-musl"
bootstrap=yes
build_style=gnu-configure
From 11beec7338edb9fa4a8fec22ac75934959708acb Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sat, 5 Nov 2022 11:33:12 -0700
Subject: [PATCH 08/38] gcc-multilib: update to 12.2.0.
---
srcpkgs/gcc-multilib/template | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/srcpkgs/gcc-multilib/template b/srcpkgs/gcc-multilib/template
index f28eb237c287..ba9bafcadfd6 100644
--- a/srcpkgs/gcc-multilib/template
+++ b/srcpkgs/gcc-multilib/template
@@ -3,15 +3,15 @@ archs="x86_64"
_triplet="x86_64-unknown-linux-gnu"
pkgname=gcc-multilib
-version=10.2.1pre1
+version=12.2.0
revision=1
_majorver="${version%.*}"
short_desc="GNU Compiler Collection (multilib files)"
maintainer="Orphaned <orphan@voidlinux.org>"
homepage="http://gcc.gnu.org"
license="GFDL-1.2-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
-distfiles="https://dev.alpinelinux.org/~nenolod/gcc-${version/pre/_pre}.tar.xz"
-checksum=772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+distfiles="${GNU_SITE}/gcc/gcc-${version}/gcc-${version}.tar.xz"
+checksum=e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
hostmakedepends="perl flex tar zip unzip"
makedepends="zlib-devel libmpc-devel isl15-devel libfl-devel
@@ -70,7 +70,7 @@ do_build() {
make ${makejobs}
}
do_install() {
- local _pc_triplet=x86_64-pc-linux-gnu _version=${version%pre1}
+ local _pc_triplet=x86_64-pc-linux-gnu
# Install to a tempdir and then only copy relevant files.
cd ${wrksrc}
make DESTDIR=${wrksrc}/${pkgname}-build install
@@ -80,9 +80,9 @@ do_install() {
vmkdir usr/include/c++/${_majorver}/${_triplet}
vmkdir usr/lib/gcc/${_triplet}/${_majorver}
- cp -a ${wrksrc}/${pkgname}-build/usr/lib/gcc/${_pc_triplet}/${_version}/32 \
+ cp -a ${wrksrc}/${pkgname}-build/usr/lib/gcc/${_pc_triplet}/${version}/32 \
${DESTDIR}/usr/lib/gcc/${_triplet}/${_majorver}/
- cp -a ${wrksrc}/${pkgname}-build/usr/include/c++/${_version}/${_pc_triplet}/32 \
+ cp -a ${wrksrc}/${pkgname}-build/usr/include/c++/${version}/${_pc_triplet}/32 \
${DESTDIR}/usr/include/c++/${_majorver}/${_triplet}
vinstall ${wrksrc}/host-${_pc_triplet}/gcc/specs 644 usr/lib/gcc/${_triplet}/${_majorver}
From ad22a84884214075dcd980e4092b0ee2ab611f07 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sat, 5 Nov 2022 11:33:12 -0700
Subject: [PATCH 09/38] libgccjit: update to 12.2.0.
---
srcpkgs/libgccjit/files/libgccjit-musl.patch | 63 --------------------
srcpkgs/libgccjit/template | 24 +++-----
2 files changed, 9 insertions(+), 78 deletions(-)
delete mode 100644 srcpkgs/libgccjit/files/libgccjit-musl.patch
diff --git a/srcpkgs/libgccjit/files/libgccjit-musl.patch b/srcpkgs/libgccjit/files/libgccjit-musl.patch
deleted file mode 100644
index d2ed16928c82..000000000000
--- a/srcpkgs/libgccjit/files/libgccjit-musl.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-diff --git a/gcc/jit/jit-playback.c b/gcc/jit/jit-playback.c
-index 5bccf591a..35f5e35ef 100644
---- a/gcc/jit/jit-playback.c
-+++ b/gcc/jit/jit-playback.c
-@@ -18,6 +18,8 @@ You should have received a copy of the GNU General Public License
- along with GCC; see the file COPYING3. If not see
- <http://www.gnu.org/licenses/>. */
-
-+#include <pthread.h>
-+
- #include "config.h"
- #include "system.h"
- #include "coretypes.h"
-@@ -41,8 +43,6 @@ along with GCC; see the file COPYING3. If not see
- #include "diagnostic.h"
- #include "stmt.h"
-
--#include <pthread.h>
--
- #include "jit-playback.h"
- #include "jit-result.h"
- #include "jit-builtins.h"
-diff --git a/gcc/jit/jit-recording.c b/gcc/jit/jit-recording.c
-index a237d574f..5785e3269 100644
---- a/gcc/jit/jit-recording.c
-+++ b/gcc/jit/jit-recording.c
-@@ -18,6 +18,8 @@ You should have received a copy of the GNU General Public License
- along with GCC; see the file COPYING3. If not see
- <http://www.gnu.org/licenses/>. */
-
-+#include <pthread.h>
-+
- #include "config.h"
- #include "system.h"
- #include "coretypes.h"
-@@ -25,8 +27,6 @@ along with GCC; see the file COPYING3. If not see
- #include "pretty-print.h"
- #include "toplev.h"
-
--#include <pthread.h>
--
- #include "jit-builtins.h"
- #include "jit-recording.h"
- #include "jit-playback.h"
-diff --git a/gcc/jit/libgccjit.c b/gcc/jit/libgccjit.c
-index f9c33c63c..75f21d275 100644
---- a/gcc/jit/libgccjit.c
-+++ b/gcc/jit/libgccjit.c
-@@ -18,13 +18,13 @@ You should have received a copy of the GNU General Public License
- along with GCC; see the file COPYING3. If not see
- <http://www.gnu.org/licenses/>. */
-
-+#include <pthread.h>
- #include "config.h"
- #include "system.h"
- #include "coretypes.h"
- #include "timevar.h"
- #include "typed-splay-tree.h"
- #include "cppbuiltin.h"
--#include <pthread.h>
-
- #include "libgccjit.h"
- #include "jit-recording.h"
diff --git a/srcpkgs/libgccjit/template b/srcpkgs/libgccjit/template
index 0b37c3ee9f8b..fde1affd54b7 100644
--- a/srcpkgs/libgccjit/template
+++ b/srcpkgs/libgccjit/template
@@ -3,18 +3,12 @@
# which use the version number.
pkgname=libgccjit
-# we are using a 10-stable git snapshot alpine is using in order
-# to get regression fixes not yet incorporate into a stable release
-# it should be possible to switch back to stable with 10.3 or 11
-version=10.2.1pre1
+version=12.2.0
revision=1
-_patchver="${version%pre*}"
-_minorver="${_patchver%.*}"
-_majorver="${_minorver%.*}"
-_gmp_version=6.2.0
+_gmp_version=6.2.1
_mpfr_version=4.1.0
-_mpc_version=1.1.0
-_isl_version=0.21
+_mpc_version=1.2.1
+_isl_version=0.24
create_wrksrc=yes
short_desc="Just-In-Time Compilation library for GCC"
maintainer="Lane Biocini <lane@mailbox.org>"
@@ -22,16 +16,16 @@ homepage="https://gcc.gnu.org"
license="GFDL-1.2-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
# *-musl builders have issues fetching https://ftp.gnu.org/gnu/mpc/mpc-1.1.0.tar.gz
distfiles="
- https://dev.alpinelinux.org/~nenolod/gcc-${version/pre/_pre}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${version}/gcc-${version}.tar.xz
https://gmplib.org/download/gmp/gmp-${_gmp_version}.tar.xz
${GNU_SITE}/mpfr/mpfr-${_mpfr_version}.tar.xz
${GNU_SITE}/mpc/mpc-${_mpc_version}.tar.gz
${SOURCEFORGE_SITE}/libisl/isl-${_isl_version}.tar.bz2"
-checksum="772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 258e6cd51b3fbdfc185c716d55f82c08aff57df0c6fbd143cf6ed561267a1526
+checksum="e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
+ fd4829912cddd12f84181c3451cc752be224643e87fac497b69edddadc49b4f2
0c98a3f1732ff6ca4ea690552079da9c597872d30e96ec28414ee23c95558a7f
- 6985c538143c1208dcb1ac42cedad6ff52e267b47e5f970183a3e75125b43c2e
- d18ca11f8ad1a39ab6d03d3dcb3365ab416720fcb65b42d69f34f51bf0a0e859"
+ 17503d2c395dfcf106b622dc142683c1199431d095367c6aacba6eec30340459
+ fcf78dd9656c10eb8cf9fbd5f59a0b6b01386205fe1934b3b287a0a1898145c0"
nopie=yes
lib32disabled=yes
makedepends="zlib-devel"
From 7ff00ea06f2f5d6a9502cc372fa05b746db850da Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sat, 5 Nov 2022 11:33:12 -0700
Subject: [PATCH 10/38] build-style/void-cross: Update flags for gcc12 and
glibc 2.36
gcov can't be built without libc:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100289
Remove -no-pie from build. glibc 2.35 and newer uses -static-pie by default:
https://sourceware.org/pipermail/glibc-cvs/2021q4/075916.html
---
common/build-style/void-cross.sh | 19 +++++++++++++++++++
1 file changed, 19 insertions(+)
diff --git a/common/build-style/void-cross.sh b/common/build-style/void-cross.sh
index 92f03f8130f5..f7e02dbc48cb 100644
--- a/common/build-style/void-cross.sh
+++ b/common/build-style/void-cross.sh
@@ -53,6 +53,7 @@ _void_cross_build_binutils() {
--sbindir=/usr/bin \
--libdir=/usr/lib \
--libexecdir=/usr/lib \
+ --sysconfdir=/etc \
--target=${tgt} \
--with-sysroot=/usr/${tgt} \
--disable-nls \
@@ -60,7 +61,9 @@ _void_cross_build_binutils() {
--disable-multilib \
--disable-werror \
--disable-gold \
+ --disable-gprofng \
--enable-relro \
+ --enable-new-dtags \
--enable-plugins \
--enable-64-bit-bfd \
--enable-deterministic-archives \
@@ -91,6 +94,9 @@ _void_cross_build_bootstrap_gcc() {
# Do not run fixincludes
sed -i 's@./fixinc.sh@-c true@' Makefile.in
+ # Do not use system headers to determine clocale implementation
+ sed -i 's/#if (__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 3)) && !defined(__UCLIBC__)/#if 1/g' libstdc++-v3/configure
+
for f in ${XBPS_SRCPKGDIR}/gcc/patches/*.patch; do
_void_cross_apply_patch "$f"
done
@@ -132,6 +138,7 @@ _void_cross_build_bootstrap_gcc() {
--disable-libssp \
--disable-libitm \
--disable-libatomic \
+ --disable-gcov \
--disable-threads \
--disable-sjlj-exceptions \
--enable-languages=c \
@@ -381,6 +388,7 @@ _void_cross_build_gcc() {
extra_args+=" --disable-gnu-unique-object"
extra_args+=" libat_cv_have_ifunc=no"
else
+ extra_args+=" --enable-clocale=gnu"
extra_args+=" --enable-gnu-unique-object"
fi
@@ -460,6 +468,14 @@ do_build() {
local binutils_ver linux_ver gcc_ver libc_ver libucontext_ver
local tgt=${sourcepkg/cross-}
+ export CFLAGS="${CFLAGS/-D_FORTIFY_SOURCE=2/}"
+ export CXXFLAGS="${CXXFLAGS/-D_FORTIFY_SOURCE=2/}"
+
+ # Disable explicit -fno-PIE, gcc/binutils/libc will figure this out itself.
+ export CFLAGS="${CFLAGS//-fno-PIE/}"
+ export CXXFLAGS="${CXXFLAGS//-fno-PIE/}"
+ export LDFLAGS="${LDFLAGS//-no-pie/}"
+
_void_cross_test_ver binutils
_void_cross_test_ver linux
_void_cross_test_ver gcc
@@ -625,6 +641,9 @@ do_install() {
# then remove it because it conflicts with libquadmath package
rm -rf ${DESTDIR}/${sysroot}/usr/lib/libquadmath.*
+ # Remove libdep linker plugin because it conflicts with system binutils
+ rm -f ${DESTDIR}/usr/lib/bfd-plugins/libdep*
+
# Remove leftover symlinks
rm -f ${DESTDIR}/usr/lib${XBPS_TARGET_WORDSIZE}
rm -f ${DESTDIR}/lib*
From 77b2a535a46e8a9407a117945bd457b1ad283b66 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sat, 5 Nov 2022 11:33:12 -0700
Subject: [PATCH 11/38] qemu: remove broken patch
The necessary patch has been imported into musl so no need
to cast the sigevent struct to a more glibc-like one.
---
.../musl-fix-sigevent-and-sigval_t.patch | 27 -------------------
1 file changed, 27 deletions(-)
delete mode 100644 srcpkgs/qemu/patches/musl-fix-sigevent-and-sigval_t.patch
diff --git a/srcpkgs/qemu/patches/musl-fix-sigevent-and-sigval_t.patch b/srcpkgs/qemu/patches/musl-fix-sigevent-and-sigval_t.patch
deleted file mode 100644
index 4b4f1117c15f..000000000000
--- a/srcpkgs/qemu/patches/musl-fix-sigevent-and-sigval_t.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-Note: Remove this patch with musl 1.2.2
-
---- a/linux-user/syscall.c
-+++ b/linux-user/syscall.c
-@@ -5020,10 +5020,21 @@
- #ifndef HAVE_SIGEV_NOTIFY_THREAD_ID
- #define sigev_notify_thread_id _sigev_un._tid
- #endif
-
--static inline abi_long target_to_host_sigevent(struct sigevent *host_sevp,
-+struct host_sigevent {
-+ union sigval sigev_value;
-+ int sigev_signo;
-+ int sigev_notify;
-+ union {
-+ char _pad[64 - sizeof(int) * 2 - sizeof(union sigval)];
-+ int _tid;
-+ } _sigev_un;
-+};
-+
-+static inline abi_long target_to_host_sigevent(struct sigevent *sevp,
- abi_ulong target_addr)
- {
-+ struct host_sigevent *host_sevp = (struct host_sigevent *) sevp;
- struct target_sigevent *target_sevp;
-
- if (!lock_user_struct(VERIFY_READ, target_sevp, target_addr, 1)) {
From 9a9e753ca2cd251c70363b53274d837e929e3bde Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sat, 19 Nov 2022 13:26:24 -0800
Subject: [PATCH 12/38] mk-configure: rebuild for gcc 12
---
srcpkgs/mk-configure/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/mk-configure/template b/srcpkgs/mk-configure/template
index 9d12f11a9799..c50d8adf213f 100644
--- a/srcpkgs/mk-configure/template
+++ b/srcpkgs/mk-configure/template
@@ -1,7 +1,7 @@
# Template file for 'mk-configure'
pkgname=mk-configure
version=0.37.0
-revision=1
+revision=2
build_style=gnu-makefile
make_cmd=bmake
make_install_args="MANDIR=/usr/share/man"
From 1ea203ef862d50b551b10f6cec417fd2b1920a96 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:28 -0800
Subject: [PATCH 13/38] cross-aarch64-linux-gnu: update to gcc 12.2.0.
---
srcpkgs/cross-aarch64-linux-gnu/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-aarch64-linux-gnu/template b/srcpkgs/cross-aarch64-linux-gnu/template
index 18de21aa3ccd..9e6fb75c198d 100644
--- a/srcpkgs/cross-aarch64-linux-gnu/template
+++ b/srcpkgs/cross-aarch64-linux-gnu/template
@@ -1,15 +1,16 @@
# Template file for 'cross-aarch64-linux-gnu'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
-_glibc_version=2.32
+_binutils_version=2.39
+_gcc_version=12.2.0
+_glibc_version=2.36
_linux_version=5.10.4
pkgname=cross-aarch64-linux-gnu
-version=0.34
+version=0.35
revision=1
build_style=void-cross
configure_args="--with-arch=armv8-a"
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Leah Neukirchen <leah@vuxu.org>"
@@ -17,12 +18,12 @@ license="GPL-2.0-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
+ 1c959fea240906226062cb4b1e7ebce71a9f0e3c0836c09e7e3423d434fcfe75
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
From ae9cedc5cd53be0897020c8e0b416d258baf296d Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:28 -0800
Subject: [PATCH 14/38] cross-aarch64-linux-musl: update to gcc 12.2.0.
---
srcpkgs/cross-aarch64-linux-musl/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-aarch64-linux-musl/template b/srcpkgs/cross-aarch64-linux-musl/template
index bb6a770afb79..ba14c96bccea 100644
--- a/srcpkgs/cross-aarch64-linux-musl/template
+++ b/srcpkgs/cross-aarch64-linux-musl/template
@@ -1,29 +1,30 @@
# Template file for 'cross-aarch64-linux-musl'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.2.0
_musl_version=1.1.24
_linux_version=5.10.4
_libucontext_version=1.0
pkgname=cross-aarch64-linux-musl
-version=0.34
-revision=4
+version=0.35
+revision=1
build_style=void-cross
configure_args="--with-arch=armv8-a"
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
-homepage="https://www.voidlinux.org/"
license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
+homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz
https://github.com/kaniini/libucontext/archive/libucontext-${_libucontext_version}.tar.gz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec
23714e99a87f6dea82e8a073c526325161dd65462459820b16a6162be91955bb"
From b7d7795d1734d78b0c11086ca4e45aab9bb25e58 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:28 -0800
Subject: [PATCH 15/38] cross-arm-linux-gnueabi: update to gcc 12.2.0.
---
srcpkgs/cross-arm-linux-gnueabi/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-arm-linux-gnueabi/template b/srcpkgs/cross-arm-linux-gnueabi/template
index a3aba72aa93a..5c774e16f430 100644
--- a/srcpkgs/cross-arm-linux-gnueabi/template
+++ b/srcpkgs/cross-arm-linux-gnueabi/template
@@ -1,15 +1,16 @@
# Template file for 'cross-arm-linux-gnueabi'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
-_glibc_version=2.32
+_binutils_version=2.39
+_gcc_version=12.2.0
+_glibc_version=2.36
_linux_version=5.10.4
pkgname=cross-arm-linux-gnueabi
-version=0.34
+version=0.35
revision=1
build_style=void-cross
configure_args="--with-arch=armv5te --with-float=soft"
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
@@ -17,12 +18,12 @@ license="GPL-2.0-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
+ 1c959fea240906226062cb4b1e7ebce71a9f0e3c0836c09e7e3423d434fcfe75
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
From f74cb38e2cafdbe2084b0360fa686555714c1682 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:28 -0800
Subject: [PATCH 16/38] cross-arm-linux-gnueabihf: update to gcc 12.2.0.
---
srcpkgs/cross-arm-linux-gnueabihf/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-arm-linux-gnueabihf/template b/srcpkgs/cross-arm-linux-gnueabihf/template
index d9ab86cf2ecc..d6298ab639a4 100644
--- a/srcpkgs/cross-arm-linux-gnueabihf/template
+++ b/srcpkgs/cross-arm-linux-gnueabihf/template
@@ -1,15 +1,16 @@
# Template file for 'cross-arm-linux-gnueabihf'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
-_glibc_version=2.32
+_binutils_version=2.39
+_gcc_version=12.2.0
+_glibc_version=2.36
_linux_version=5.10.4
pkgname=cross-arm-linux-gnueabihf
-version=0.34
+version=0.35
revision=1
build_style=void-cross
configure_args="--with-arch=armv6 --with-fpu=vfp --with-float=hard"
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
@@ -17,12 +18,12 @@ license="GPL-2.0-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
+ 1c959fea240906226062cb4b1e7ebce71a9f0e3c0836c09e7e3423d434fcfe75
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
From 3f597d1589a2d2b34acca03cfcd9ac60c06cd087 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:28 -0800
Subject: [PATCH 17/38] cross-arm-linux-musleabi: update to gcc 12.2.0.
---
srcpkgs/cross-arm-linux-musleabi/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-arm-linux-musleabi/template b/srcpkgs/cross-arm-linux-musleabi/template
index 6692d891e1bd..24df78e8fd8e 100644
--- a/srcpkgs/cross-arm-linux-musleabi/template
+++ b/srcpkgs/cross-arm-linux-musleabi/template
@@ -1,29 +1,30 @@
# Template file for 'cross-arm-linux-musleabi'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.2.0
_musl_version=1.1.24
_linux_version=5.10.4
_libucontext_version=1.0
pkgname=cross-arm-linux-musleabi
-version=0.34
-revision=4
+version=0.35
+revision=1
build_style=void-cross
configure_args="--with-arch=armv5te --with-float=soft"
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
-homepage="https://www.voidlinux.org/"
license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
+homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz
https://github.com/kaniini/libucontext/archive/libucontext-${_libucontext_version}.tar.gz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec
23714e99a87f6dea82e8a073c526325161dd65462459820b16a6162be91955bb"
From d0dd25f19018a96d07c0dab125b2cede3dee44a2 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:28 -0800
Subject: [PATCH 18/38] cross-arm-linux-musleabihf: update to gcc 12.2.0.
---
srcpkgs/cross-arm-linux-musleabihf/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-arm-linux-musleabihf/template b/srcpkgs/cross-arm-linux-musleabihf/template
index bb62bd5ebc55..8093700f909c 100644
--- a/srcpkgs/cross-arm-linux-musleabihf/template
+++ b/srcpkgs/cross-arm-linux-musleabihf/template
@@ -1,29 +1,30 @@
# Template file for 'cross-arm-linux-musleabihf'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.2.0
_musl_version=1.1.24
_linux_version=5.10.4
_libucontext_version=1.0
pkgname=cross-arm-linux-musleabihf
-version=0.34
-revision=4
+version=0.35
+revision=1
build_style=void-cross
configure_args="--with-arch=armv6 --with-fpu=vfp --with-float=hard"
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
-homepage="https://www.voidlinux.org/"
license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
+homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz
https://github.com/kaniini/libucontext/archive/libucontext-${_libucontext_version}.tar.gz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec
23714e99a87f6dea82e8a073c526325161dd65462459820b16a6162be91955bb"
From 292796b9ad78f3ab74340c2d4648d9e452e9da36 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:28 -0800
Subject: [PATCH 19/38] cross-armv7l-linux-gnueabihf: update to gcc 12.2.0.
---
srcpkgs/cross-armv7l-linux-gnueabihf/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-armv7l-linux-gnueabihf/template b/srcpkgs/cross-armv7l-linux-gnueabihf/template
index 30c89b6294ef..92665326428b 100644
--- a/srcpkgs/cross-armv7l-linux-gnueabihf/template
+++ b/srcpkgs/cross-armv7l-linux-gnueabihf/template
@@ -1,15 +1,16 @@
# Template file for 'cross-armv7l-linux-gnueabihf'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
-_glibc_version=2.32
+_binutils_version=2.39
+_gcc_version=12.2.0
+_glibc_version=2.36
_linux_version=5.10.4
pkgname=cross-armv7l-linux-gnueabihf
-version=0.34
+version=0.35
revision=1
build_style=void-cross
configure_args="--with-arch=armv7-a --with-fpu=vfpv3 --with-float=hard"
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
@@ -17,12 +18,12 @@ license="GPL-2.0-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
+ 1c959fea240906226062cb4b1e7ebce71a9f0e3c0836c09e7e3423d434fcfe75
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
From 2b958036b9400c0392c75b79eee1535a4ebf736a Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:28 -0800
Subject: [PATCH 20/38] cross-armv7l-linux-musleabihf: update to gcc 12.2.0.
---
.../cross-armv7l-linux-musleabihf/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-armv7l-linux-musleabihf/template b/srcpkgs/cross-armv7l-linux-musleabihf/template
index 0a588cdf1a58..e5af2c9ccbf2 100644
--- a/srcpkgs/cross-armv7l-linux-musleabihf/template
+++ b/srcpkgs/cross-armv7l-linux-musleabihf/template
@@ -1,29 +1,30 @@
# Template file for 'cross-armv7l-linux-musleabihf'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.2.0
_musl_version=1.1.24
_linux_version=5.10.4
_libucontext_version=1.0
pkgname=cross-armv7l-linux-musleabihf
-version=0.34
-revision=4
+version=0.35
+revision=1
build_style=void-cross
configure_args="--with-arch=armv7-a --with-fpu=vfpv3 --with-float=hard"
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
-homepage="https://www.voidlinux.org/"
license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
+homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz
https://github.com/kaniini/libucontext/archive/libucontext-${_libucontext_version}.tar.gz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec
23714e99a87f6dea82e8a073c526325161dd65462459820b16a6162be91955bb"
From a9fd69432974c26bd50148126b4501522eae4e52 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:29 -0800
Subject: [PATCH 21/38] cross-i686-linux-musl: update to gcc 12.2.0.
---
srcpkgs/cross-i686-linux-musl/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-i686-linux-musl/template b/srcpkgs/cross-i686-linux-musl/template
index 8be16a230d8d..d624bb7a3254 100644
--- a/srcpkgs/cross-i686-linux-musl/template
+++ b/srcpkgs/cross-i686-linux-musl/template
@@ -1,28 +1,29 @@
# Template file for 'cross-i686-linux-musl'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.2.0
_musl_version=1.1.24
_linux_version=5.10.4
_libucontext_version=1.0
pkgname=cross-i686-linux-musl
-version=0.34
-revision=4
+version=0.35
+revision=1
build_style=void-cross
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
-homepage="https://www.voidlinux.org/"
license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
+homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz
https://github.com/kaniini/libucontext/archive/libucontext-${_libucontext_version}.tar.gz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec
23714e99a87f6dea82e8a073c526325161dd65462459820b16a6162be91955bb"
From 5b89e37cf1ff5555791485708790ff643af50496 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:29 -0800
Subject: [PATCH 22/38] cross-i686-pc-linux-gnu: update to gcc 12.2.0.
---
srcpkgs/cross-i686-pc-linux-gnu/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-i686-pc-linux-gnu/template b/srcpkgs/cross-i686-pc-linux-gnu/template
index 263a43f7a7b8..6a9e54db807a 100644
--- a/srcpkgs/cross-i686-pc-linux-gnu/template
+++ b/srcpkgs/cross-i686-pc-linux-gnu/template
@@ -1,14 +1,15 @@
# Template file for 'cross-i686-pc-linux-gnu'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
-_glibc_version=2.32
+_binutils_version=2.39
+_gcc_version=12.2.0
+_glibc_version=2.36
_linux_version=5.10.4
pkgname=cross-i686-pc-linux-gnu
-version=0.34
+version=0.35
revision=1
build_style=void-cross
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
@@ -16,12 +17,12 @@ license="GPL-2.0-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
+ 1c959fea240906226062cb4b1e7ebce71a9f0e3c0836c09e7e3423d434fcfe75
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
From 4409a7c315cfe87aa2c8bb6369718bd79001c6c0 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:29 -0800
Subject: [PATCH 23/38] cross-mips-linux-musl: update to gcc 12.2.0.
---
srcpkgs/cross-mips-linux-musl/template | 21 +++++++++++----------
1 file changed, 11 insertions(+), 10 deletions(-)
diff --git a/srcpkgs/cross-mips-linux-musl/template b/srcpkgs/cross-mips-linux-musl/template
index 9b5d5819b1a0..67a5c413396c 100644
--- a/srcpkgs/cross-mips-linux-musl/template
+++ b/srcpkgs/cross-mips-linux-musl/template
@@ -1,28 +1,29 @@
# Template file for 'cross-mips-linux-musl'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.2.0
_musl_version=1.1.24
_linux_version=5.10.4
pkgname=cross-mips-linux-musl
-version=0.34
-revision=3
+version=0.35
+revision=1
build_style=void-cross
configure_args="--with-arch=mips32r2 --with-float=soft
--with-linker-hash-style=sysv"
hostmakedepends="texinfo tar gcc-objc flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
-homepage="https://www.voidlinux.org/"
license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
+homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
- https://www.musl-libc.org/releases/musl-${_musl_version}.tar.gz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
+ https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
From 9061cc66cc68209648cd202eff6b0f156e3a7036 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:29 -0800
Subject: [PATCH 24/38] cross-mips-linux-muslhf: update to gcc 12.2.0.
---
srcpkgs/cross-mips-linux-muslhf/template | 21 +++++++++++----------
1 file changed, 11 insertions(+), 10 deletions(-)
diff --git a/srcpkgs/cross-mips-linux-muslhf/template b/srcpkgs/cross-mips-linux-muslhf/template
index d7590af9ec03..bdf8600ce95b 100644
--- a/srcpkgs/cross-mips-linux-muslhf/template
+++ b/srcpkgs/cross-mips-linux-muslhf/template
@@ -1,28 +1,29 @@
# Template file for 'cross-mips-linux-muslhf'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.2.0
_musl_version=1.1.24
_linux_version=5.10.4
pkgname=cross-mips-linux-muslhf
-version=0.34
-revision=3
+version=0.35
+revision=1
build_style=void-cross
configure_args="--with-arch=mips32r2 --with-float=hard
--with-linker-hash-style=sysv"
hostmakedepends="texinfo tar gcc-objc flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="hipperson0 <hipperson0@gmail.com>"
-homepage="https://www.voidlinux.org/"
license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
+homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
- https://www.musl-libc.org/releases/musl-${_musl_version}.tar.gz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
+ https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
From 482c0ae63504d080e6cc79abca741c805faa2d1e Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:29 -0800
Subject: [PATCH 25/38] cross-mipsel-linux-musl: update to gcc 12.2.0.
---
srcpkgs/cross-mipsel-linux-musl/template | 21 +++++++++++----------
1 file changed, 11 insertions(+), 10 deletions(-)
diff --git a/srcpkgs/cross-mipsel-linux-musl/template b/srcpkgs/cross-mipsel-linux-musl/template
index 1acba7016dbc..de49387d517b 100644
--- a/srcpkgs/cross-mipsel-linux-musl/template
+++ b/srcpkgs/cross-mipsel-linux-musl/template
@@ -1,28 +1,29 @@
# Template file for 'cross-mipsel-linux-musl'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.2.0
_musl_version=1.1.24
_linux_version=5.10.4
pkgname=cross-mipsel-linux-musl
-version=0.34
-revision=3
+version=0.35
+revision=1
build_style=void-cross
configure_args="--with-arch=mips32r2 --with-float=soft
--with-linker-hash-style=sysv"
hostmakedepends="texinfo tar gcc-objc flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
-homepage="https://www.voidlinux.org/"
license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
+homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
- https://www.musl-libc.org/releases/musl-${_musl_version}.tar.gz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
+ https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
From 8015afdd5dd53530a92134d725e91d9e001a80c8 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:29 -0800
Subject: [PATCH 26/38] cross-mipsel-linux-muslhf: update to gcc 12.2.0.
---
srcpkgs/cross-mipsel-linux-muslhf/template | 21 +++++++++++----------
1 file changed, 11 insertions(+), 10 deletions(-)
diff --git a/srcpkgs/cross-mipsel-linux-muslhf/template b/srcpkgs/cross-mipsel-linux-muslhf/template
index e4a55f028bc4..b27ce6475a38 100644
--- a/srcpkgs/cross-mipsel-linux-muslhf/template
+++ b/srcpkgs/cross-mipsel-linux-muslhf/template
@@ -1,28 +1,29 @@
# Template file for 'cross-mipsel-linux-muslhf'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.2.0
_musl_version=1.1.24
_linux_version=5.10.4
pkgname=cross-mipsel-linux-muslhf
-version=0.34
-revision=3
+version=0.35
+revision=1
build_style=void-cross
configure_args="--with-arch=mips32r2 --with-float=hard
--with-linker-hash-style=sysv"
hostmakedepends="texinfo tar gcc-objc flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
-homepage="https://www.voidlinux.org/"
license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
+homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
- https://www.musl-libc.org/releases/musl-${_musl_version}.tar.gz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
+ https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
From 73dfcd258e4c742d7c946c4a824534e39709db37 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:29 -0800
Subject: [PATCH 27/38] cross-powerpc-linux-gnu: update to gcc 12.2.0.
---
srcpkgs/cross-powerpc-linux-gnu/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-powerpc-linux-gnu/template b/srcpkgs/cross-powerpc-linux-gnu/template
index b97a21d0d72e..79579e093b12 100644
--- a/srcpkgs/cross-powerpc-linux-gnu/template
+++ b/srcpkgs/cross-powerpc-linux-gnu/template
@@ -1,15 +1,16 @@
# Template file for 'cross-powerpc-linux-gnu'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
-_glibc_version=2.32
+_binutils_version=2.39
+_gcc_version=12.2.0
+_glibc_version=2.36
_linux_version=5.10.4
pkgname=cross-powerpc-linux-gnu
-version=0.34
+version=0.35
revision=1
build_style=void-cross
configure_args="--enable-secureplt --disable-vtable-verify"
hostmakedepends="texinfo tar gcc-objc flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Thomas Batten <stenstorpmc@gmail.com>"
@@ -17,12 +18,12 @@ license="GPL-2.0-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
+ 1c959fea240906226062cb4b1e7ebce71a9f0e3c0836c09e7e3423d434fcfe75
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
From a581478dfed8deb8b232230fb317817089fb03b6 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:29 -0800
Subject: [PATCH 28/38] cross-powerpc-linux-musl: update to gcc 12.2.0.
---
srcpkgs/cross-powerpc-linux-musl/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-powerpc-linux-musl/template b/srcpkgs/cross-powerpc-linux-musl/template
index f9b22f0610d3..9bb6acd359b6 100644
--- a/srcpkgs/cross-powerpc-linux-musl/template
+++ b/srcpkgs/cross-powerpc-linux-musl/template
@@ -1,28 +1,29 @@
# Template file for 'cross-powerpc-linux-musl'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.2.0
_musl_version=1.1.24
_linux_version=5.10.4
pkgname=cross-powerpc-linux-musl
-version=0.34
-revision=3
+version=0.35
+revision=1
build_style=void-cross
configure_args="--enable-secureplt --disable-vtable-verify
--disable-decimal-float"
hostmakedepends="texinfo tar gcc-objc flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Thomas Batten <stenstorpmc@gmail.com>"
-homepage="https://www.voidlinux.org/"
license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
+homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
From 977b8367682b2ef40b43dcb630c74b0a28dbec1f Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:29 -0800
Subject: [PATCH 29/38] cross-powerpc64-linux-gnu: update to gcc 12.2.0.
---
srcpkgs/cross-powerpc64-linux-gnu/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-powerpc64-linux-gnu/template b/srcpkgs/cross-powerpc64-linux-gnu/template
index 35cfcaa6f02e..2d153d00add6 100644
--- a/srcpkgs/cross-powerpc64-linux-gnu/template
+++ b/srcpkgs/cross-powerpc64-linux-gnu/template
@@ -1,16 +1,17 @@
# Template file for 'cross-powerpc64-linux-gnu'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
-_glibc_version=2.32
+_binutils_version=2.39
+_gcc_version=12.2.0
+_glibc_version=2.36
_linux_version=5.10.4
pkgname=cross-powerpc64-linux-gnu
-version=0.34
+version=0.35
revision=1
build_style=void-cross
configure_args="--enable-secureplt --disable-vtable-verify --with-abi=elfv2
--enable-targets=powerpc-linux"
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
@@ -18,12 +19,12 @@ license="GPL-2.0-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
+ 1c959fea240906226062cb4b1e7ebce71a9f0e3c0836c09e7e3423d434fcfe75
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
From a63b09295b4713dcc2cf95a3c4ce1acebe75aa57 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:29 -0800
Subject: [PATCH 30/38] cross-powerpc64-linux-musl: update to gcc 12.2.0.
---
srcpkgs/cross-powerpc64-linux-musl/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-powerpc64-linux-musl/template b/srcpkgs/cross-powerpc64-linux-musl/template
index 016f18776a6d..e0848fe0bff7 100644
--- a/srcpkgs/cross-powerpc64-linux-musl/template
+++ b/srcpkgs/cross-powerpc64-linux-musl/template
@@ -1,30 +1,31 @@
# Template file for 'cross-powerpc64-linux-musl'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.2.0
_musl_version=1.1.24
_linux_version=5.10.4
_libucontext_version=1.0
pkgname=cross-powerpc64-linux-musl
-version=0.34
-revision=4
+version=0.35
+revision=1
build_style=void-cross
configure_args="--enable-secureplt --disable-vtable-verify
--disable-decimal-float --with-abi=elfv2 --enable-targets=powerpc-linux"
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
-homepage="https://www.voidlinux.org/"
license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
+homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz
https://github.com/kaniini/libucontext/archive/libucontext-${_libucontext_version}.tar.gz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec
23714e99a87f6dea82e8a073c526325161dd65462459820b16a6162be91955bb"
From c2c90a0e0aa42c3b15e58cd8101d640dc0ded473 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:29 -0800
Subject: [PATCH 31/38] cross-powerpc64le-linux-gnu: update to gcc 12.2.0.
---
srcpkgs/cross-powerpc64le-linux-gnu/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-powerpc64le-linux-gnu/template b/srcpkgs/cross-powerpc64le-linux-gnu/template
index 463d7e92d20d..8d8e010e15c0 100644
--- a/srcpkgs/cross-powerpc64le-linux-gnu/template
+++ b/srcpkgs/cross-powerpc64le-linux-gnu/template
@@ -1,16 +1,17 @@
# Template file for 'cross-powerpc64le-linux-gnu'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
-_glibc_version=2.32
+_binutils_version=2.39
+_gcc_version=12.2.0
+_glibc_version=2.36
_linux_version=5.10.4
pkgname=cross-powerpc64le-linux-gnu
-version=0.34
+version=0.35
revision=1
build_style=void-cross
configure_args="--enable-secureplt --disable-vtable-verify --with-abi=elfv2
--enable-targets=powerpcle-linux"
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
@@ -18,12 +19,12 @@ license="GPL-2.0-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
+ 1c959fea240906226062cb4b1e7ebce71a9f0e3c0836c09e7e3423d434fcfe75
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
From 1d5d902c896defdd83ac497ee6070a03904a895a Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:29 -0800
Subject: [PATCH 32/38] cross-powerpc64le-linux-musl: update to gcc 12.2.0.
---
srcpkgs/cross-powerpc64le-linux-musl/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-powerpc64le-linux-musl/template b/srcpkgs/cross-powerpc64le-linux-musl/template
index c17a3cccfe29..0915e524545f 100644
--- a/srcpkgs/cross-powerpc64le-linux-musl/template
+++ b/srcpkgs/cross-powerpc64le-linux-musl/template
@@ -1,30 +1,31 @@
# Template file for 'cross-powerpc64le-linux-musl'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.2.0
_musl_version=1.1.24
_linux_version=5.10.4
_libucontext_version=1.0
pkgname=cross-powerpc64le-linux-musl
-version=0.34
-revision=4
+version=0.35
+revision=1
build_style=void-cross
configure_args="--enable-secureplt --disable-vtable-verify
--disable-decimal-float --with-abi=elfv2 --enable-targets=powerpcle-linux"
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
-homepage="https://www.voidlinux.org/"
license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
+homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz
https://github.com/kaniini/libucontext/archive/libucontext-${_libucontext_version}.tar.gz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec
23714e99a87f6dea82e8a073c526325161dd65462459820b16a6162be91955bb"
From 4d00ac12b97a0d7b82bff2d3d120ae8cc8819af4 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:29 -0800
Subject: [PATCH 33/38] cross-powerpcle-linux-gnu: update to gcc 12.2.0.
---
srcpkgs/cross-powerpcle-linux-gnu/template | 21 ++++++++++++---------
1 file changed, 12 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-powerpcle-linux-gnu/template b/srcpkgs/cross-powerpcle-linux-gnu/template
index 9aede3c465ce..687be8a44c6c 100644
--- a/srcpkgs/cross-powerpcle-linux-gnu/template
+++ b/srcpkgs/cross-powerpcle-linux-gnu/template
@@ -1,15 +1,16 @@
# Template file for 'cross-powerpcle-linux-gnu'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
-_glibc_version=2.32
+_binutils_version=2.39
+_gcc_version=12.2.0
+_glibc_version=2.36
_linux_version=5.10.4
pkgname=cross-powerpcle-linux-gnu
-version=0.34
+version=0.35
revision=1
build_style=void-cross
configure_args="--enable-secureplt --disable-vtable-verify"
hostmakedepends="texinfo tar gcc-objc flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
@@ -17,12 +18,12 @@ license="GPL-2.0-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
+ 1c959fea240906226062cb4b1e7ebce71a9f0e3c0836c09e7e3423d434fcfe75
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
@@ -35,6 +36,8 @@ if [ "$XBPS_TARGET_MACHINE" = "ppcle" ]; then
broken="Can't build crosstoolchain to itself"
fi
+broken="glibc uses big-endian specific instructions on 32-bit powerpc"
+
cross-powerpcle-linux-gnu-libc_package() {
short_desc+=" - glibc files"
nostrip=yes
From 7232ddf3f88c13b000db906690d6bedce1cacd12 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:29 -0800
Subject: [PATCH 34/38] cross-powerpcle-linux-musl: update to gcc 12.2.0.
---
srcpkgs/cross-powerpcle-linux-musl/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-powerpcle-linux-musl/template b/srcpkgs/cross-powerpcle-linux-musl/template
index 045cfda987fe..bb984b9c42eb 100644
--- a/srcpkgs/cross-powerpcle-linux-musl/template
+++ b/srcpkgs/cross-powerpcle-linux-musl/template
@@ -1,28 +1,29 @@
# Template file for 'cross-powerpcle-linux-musl'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.2.0
_musl_version=1.1.24
_linux_version=5.10.4
pkgname=cross-powerpcle-linux-musl
-version=0.34
-revision=3
+version=0.35
+revision=1
build_style=void-cross
configure_args="--enable-secureplt --disable-vtable-verify
--disable-decimal-float"
hostmakedepends="texinfo tar gcc-objc flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
-homepage="https://www.voidlinux.org/"
license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
+homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
From 406ed5c38d06ada806c0572801b6dd78b131de9a Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:30 -0800
Subject: [PATCH 35/38] cross-x86_64-linux-gnu: update to gcc 12.2.0.
---
srcpkgs/cross-x86_64-linux-gnu/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-x86_64-linux-gnu/template b/srcpkgs/cross-x86_64-linux-gnu/template
index 8918f3c22a1c..930aaf2a508b 100644
--- a/srcpkgs/cross-x86_64-linux-gnu/template
+++ b/srcpkgs/cross-x86_64-linux-gnu/template
@@ -1,14 +1,15 @@
# Template file for 'cross-x86_64-linux-gnu'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
-_glibc_version=2.32
+_binutils_version=2.39
+_gcc_version=12.2.0
+_glibc_version=2.36
_linux_version=5.10.4
pkgname=cross-x86_64-linux-gnu
-version=0.34
+version=0.35
revision=1
build_style=void-cross
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
@@ -16,12 +17,12 @@ license="GPL-2.0-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
+ 1c959fea240906226062cb4b1e7ebce71a9f0e3c0836c09e7e3423d434fcfe75
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
From 114feb859f3031bfab8356c2a8dc3d70e614bf81 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:30 -0800
Subject: [PATCH 36/38] cross-x86_64-linux-musl: update to gcc 12.2.0.
---
srcpkgs/cross-x86_64-linux-musl/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-x86_64-linux-musl/template b/srcpkgs/cross-x86_64-linux-musl/template
index a941e7e02f6f..ac5b1c46ab82 100644
--- a/srcpkgs/cross-x86_64-linux-musl/template
+++ b/srcpkgs/cross-x86_64-linux-musl/template
@@ -1,28 +1,29 @@
# Template file for 'cross-x86_64-linux-musl'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.2.0
_musl_version=1.1.24
_linux_version=5.10.4
_libucontext_version=1.0
pkgname=cross-x86_64-linux-musl
-version=0.34
-revision=3
+version=0.35
+revision=1
build_style=void-cross
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
-homepage="https://www.voidlinux.org/"
license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
+homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz
https://github.com/kaniini/libucontext/archive/libucontext-${_libucontext_version}.tar.gz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec
23714e99a87f6dea82e8a073c526325161dd65462459820b16a6162be91955bb"
From 7bef45aaabc94ae6649833bfaf9f13ad58705fb3 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Fri, 18 Nov 2022 02:01:19 -0800
Subject: [PATCH 37/38] cross-vpkg-dummy: update to 0.39.
---
srcpkgs/cross-vpkg-dummy/template | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/srcpkgs/cross-vpkg-dummy/template b/srcpkgs/cross-vpkg-dummy/template
index d83e38dc63ac..aeafb749dd5f 100644
--- a/srcpkgs/cross-vpkg-dummy/template
+++ b/srcpkgs/cross-vpkg-dummy/template
@@ -1,6 +1,6 @@
# Template file for 'cross-vpkg-dummy'
pkgname=cross-vpkg-dummy
-version=0.38
+version=0.39
revision=1
build_style=meta
short_desc="Dummy meta-pkg for cross building packages with xbps-src"
@@ -54,8 +54,8 @@ conflicts="
gcc-objc++>=0"
shlib_provides="
libgcc_s.so.1
- libgnat-10.so
- libgnarl-10.so
+ libgnat-12.so
+ libgnarl-12.so
libstdc++.so.6
libgfortran.so.5"
From 32525df162b4142a42daa64cccfff65f2af221a2 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Sun, 27 Nov 2022 22:59:45 +0100
Subject: [PATCH 38/38] llvm: update to 15.0.5
---
common/shlibs | 4 +
srcpkgs/clang | 2 +-
srcpkgs/clang-analyzer | 2 +-
srcpkgs/clang-tools-extra | 2 +-
srcpkgs/libclang | 2 +-
srcpkgs/libclang-cpp | 2 +-
srcpkgs/libcxx | 2 +-
srcpkgs/libcxx-devel | 2 +-
srcpkgs/libcxxabi | 2 +-
srcpkgs/libcxxabi-devel | 2 +-
srcpkgs/libllvm15 | 1 +
srcpkgs/libomp | 2 +-
srcpkgs/libomp-devel | 2 +-
srcpkgs/lld | 2 +-
srcpkgs/lld-devel | 2 +-
srcpkgs/lldb | 2 +-
srcpkgs/lldb-devel | 2 +-
srcpkgs/llvm-libunwind | 2 +-
srcpkgs/llvm-libunwind-devel | 2 +-
srcpkgs/llvm/template | 6 +-
.../llvm15/files/llvm-Config-llvm-config.h | 9 +
...clang-001-fix-unwind-chain-inclusion.patch | 44 ++
.../patches/clang-002-add-musl-triples.patch | 110 +++++
.../clang-003-ppc64-dynamic-linker-path.patch | 13 +
.../patches/clang-004-ppc64-musl-elfv2.patch | 48 ++
.../compiler-rt-sanitizer-ppc64-musl.patch | 35 ++
.../compiler-rt-xray-ppc64-musl.patch.skip | 62 +++
srcpkgs/llvm15/patches/libcxx-musl.patch | 26 ++
srcpkgs/llvm15/patches/libcxx-ppc.patch | 22 +
.../llvm15/patches/libcxx-ssp-nonshared.patch | 11 +
srcpkgs/llvm15/patches/libcxxabi-dl.patch | 25 +
.../llvm15/patches/libunwind-ppc32.patch.skip | 63 +++
srcpkgs/llvm15/patches/lldb-musl.patch | 40 ++
srcpkgs/llvm15/patches/llvm-001-musl.patch | 57 +++
.../patches/llvm-002-musl-ppc64-elfv2.patch | 30 ++
.../patches/llvm-003-ppc-secureplt.patch | 11 +
.../patches/llvm-004-override-opt.patch | 18 +
.../llvm15/patches/llvm-005-ppc-bigpic.patch | 36 ++
.../patches/llvm-006-aarch64-mf_exec.patch | 25 +
srcpkgs/llvm15/template | 433 ++++++++++++++++++
srcpkgs/llvm15/update | 3 +
41 files changed, 1146 insertions(+), 20 deletions(-)
create mode 120000 srcpkgs/libllvm15
create mode 100644 srcpkgs/llvm15/files/llvm-Config-llvm-config.h
create mode 100644 srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch
create mode 100644 srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch
create mode 100644 srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch
create mode 100644 srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch
create mode 100644 srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch
create mode 100644 srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip
create mode 100644 srcpkgs/llvm15/patches/libcxx-musl.patch
create mode 100644 srcpkgs/llvm15/patches/libcxx-ppc.patch
create mode 100644 srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch
create mode 100644 srcpkgs/llvm15/patches/libcxxabi-dl.patch
create mode 100644 srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip
create mode 100644 srcpkgs/llvm15/patches/lldb-musl.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-001-musl.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-004-override-opt.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch
create mode 100644 srcpkgs/llvm15/template
create mode 100644 srcpkgs/llvm15/update
diff --git a/common/shlibs b/common/shlibs
index a8c3a244f9ac..461e5da63191 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -985,10 +985,14 @@ 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.12 lldb-12.0.0_1
+liblldb.so.15 lldb-15.0.5_1
libclang.so.12 libclang-12.0.0_1
+libclang.so.15 libclang-15.0.5_1
libclang-cpp.so.12 libclang-cpp-12.0.0_1
+libclang-cpp.so.15 libclang-cpp-15.0.5_1
libLLVM-11.so libllvm11-11.0.0_1
libLLVM-12.so libllvm12-12.0.0_1
+libLLVM-15.so libllvm15-15.0.5_1
libisofs.so.6 libisofs-0.6.24_1
libmpack.so.0 libmpack-1.0.5_1
libGeoIP.so.1 libgeoip-1.4.8_1
diff --git a/srcpkgs/clang b/srcpkgs/clang
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/clang
+++ b/srcpkgs/clang
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/clang-analyzer b/srcpkgs/clang-analyzer
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/clang-analyzer
+++ b/srcpkgs/clang-analyzer
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/clang-tools-extra b/srcpkgs/clang-tools-extra
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/clang-tools-extra
+++ b/srcpkgs/clang-tools-extra
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libclang b/srcpkgs/libclang
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libclang
+++ b/srcpkgs/libclang
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libclang-cpp b/srcpkgs/libclang-cpp
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libclang-cpp
+++ b/srcpkgs/libclang-cpp
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxx b/srcpkgs/libcxx
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxx
+++ b/srcpkgs/libcxx
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxx-devel b/srcpkgs/libcxx-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxx-devel
+++ b/srcpkgs/libcxx-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxxabi b/srcpkgs/libcxxabi
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxxabi
+++ b/srcpkgs/libcxxabi
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxxabi-devel b/srcpkgs/libcxxabi-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxxabi-devel
+++ b/srcpkgs/libcxxabi-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libllvm15 b/srcpkgs/libllvm15
new file mode 120000
index 000000000000..ad57a969b9f9
--- /dev/null
+++ b/srcpkgs/libllvm15
@@ -0,0 +1 @@
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libomp b/srcpkgs/libomp
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libomp
+++ b/srcpkgs/libomp
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libomp-devel b/srcpkgs/libomp-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libomp-devel
+++ b/srcpkgs/libomp-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lld b/srcpkgs/lld
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lld
+++ b/srcpkgs/lld
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lld-devel b/srcpkgs/lld-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lld-devel
+++ b/srcpkgs/lld-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lldb b/srcpkgs/lldb
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lldb
+++ b/srcpkgs/lldb
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lldb-devel b/srcpkgs/lldb-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lldb-devel
+++ b/srcpkgs/lldb-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm-libunwind b/srcpkgs/llvm-libunwind
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/llvm-libunwind
+++ b/srcpkgs/llvm-libunwind
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm-libunwind-devel b/srcpkgs/llvm-libunwind-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/llvm-libunwind-devel
+++ b/srcpkgs/llvm-libunwind-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm/template b/srcpkgs/llvm/template
index a92db6f94f9f..d14430090161 100644
--- a/srcpkgs/llvm/template
+++ b/srcpkgs/llvm/template
@@ -1,10 +1,10 @@
# Template file for 'llvm'
pkgname=llvm
-version=12.0.0
+version=15.0.0
revision=1
build_style=meta
-depends="llvm12"
-replaces="llvm11>=0 llvm10>=0 llvm9>=0 llvm8>=0 llvm7>=0 llvm6.0>=0 llvm3.9>=0"
+depends="llvm15"
+replaces="llvm12>=0 llvm11>=0 llvm10>=0 llvm9>=0 llvm8>=0 llvm7>=0 llvm6.0>=0 llvm3.9>=0"
short_desc="LLVM meta package"
maintainer="Enno Boland <gottox@voidlinux.org>"
license="Public Domain"
diff --git a/srcpkgs/llvm15/files/llvm-Config-llvm-config.h b/srcpkgs/llvm15/files/llvm-Config-llvm-config.h
new file mode 100644
index 000000000000..2fa08c9be696
--- /dev/null
+++ b/srcpkgs/llvm15/files/llvm-Config-llvm-config.h
@@ -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
diff --git a/srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch b/srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch
new file mode 100644
index 000000000000..e4eaa7783e7a
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch
@@ -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
diff --git a/srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch b/srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch
new file mode 100644
index 000000000000..25688d40dbc2
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch
@@ -0,0 +1,110 @@
+--- a/clang/lib/Driver/ToolChains/Gnu.cpp
++++ b/clang/lib/Driver/ToolChains/Gnu.cpp
+@@ -2086,7 +2086,8 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
+ static const char *const ARMHFTriples[] = {"arm-linux-gnueabihf",
+ "armv7hl-redhat-linux-gnueabi",
+ "armv6hl-suse-linux-gnueabi",
+- "armv7hl-suse-linux-gnueabi"};
++ "armv7hl-suse-linux-gnueabi",
++ "armv7l-linux-gnueabihf"};
+ static const char *const ARMebLibDirs[] = {"/lib"};
+ static const char *const ARMebTriples[] = {"armeb-linux-gnueabi",
+ "armeb-linux-androideabi"};
+@@ -2153,8 +2154,7 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
+ "powerpc64-suse-linux", "powerpc-montavista-linuxspe"};
+ static const char *const PPCLELibDirs[] = {"/lib32", "/lib"};
+ static const char *const PPCLETriples[] = {"powerpcle-linux-gnu",
+- "powerpcle-unknown-linux-gnu",
+- "powerpcle-linux-musl"};
++ "powerpcle-unknown-linux-gnu"};
+
+ static const char *const PPC64LibDirs[] = {"/lib64", "/lib"};
+ static const char *const PPC64Triples[] = {
+@@ -2235,6 +2235,87 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
+ return;
+ }
+
++ if (TargetTriple.isMusl()) {
++ static const char *const AArch64MuslTriples[] = {"aarch64-linux-musl"};
++ static const char *const ARMHFMuslTriples[] = {
++ "arm-linux-musleabihf", "armv7l-linux-musleabihf"
++ };
++ static const char *const ARMMuslTriples[] = {"arm-linux-musleabi"};
++ static const char *const X86_64MuslTriples[] = {"x86_64-linux-musl"};
++ static const char *const X86MuslTriples[] = {"i686-linux-musl"};
++ static const char *const MIPSMuslTriples[] = {
++ "mips-linux-musl", "mipsel-linux-musl",
++ "mipsel-linux-muslhf", "mips-linux-muslhf"
++ };
++ static const char *const PPCMuslTriples[] = {"powerpc-linux-musl"};
++ static const char *const PPCLEMuslTriples[] = {"powerpcle-linux-musl"};
++ static const char *const PPC64MuslTriples[] = {"powerpc64-linux-musl"};
++ static const char *const PPC64LEMuslTriples[] = {"powerpc64le-linux-musl"};
++
++ switch (TargetTriple.getArch()) {
++ case llvm::Triple::aarch64:
++ LibDirs.append(begin(AArch64LibDirs), end(AArch64LibDirs));
++ TripleAliases.append(begin(AArch64MuslTriples), end(AArch64MuslTriples));
++ BiarchLibDirs.append(begin(AArch64LibDirs), end(AArch64LibDirs));
++ BiarchTripleAliases.append(begin(AArch64MuslTriples), end(AArch64MuslTriples));
++ break;
++ case llvm::Triple::arm:
++ LibDirs.append(begin(ARMLibDirs), end(ARMLibDirs));
++ if (TargetTriple.getEnvironment() == llvm::Triple::MuslEABIHF) {
++ TripleAliases.append(begin(ARMHFMuslTriples), end(ARMHFMuslTriples));
++ } else {
++ TripleAliases.append(begin(ARMMuslTriples), end(ARMMuslTriples));
++ }
++ break;
++ case llvm::Triple::x86_64:
++ LibDirs.append(begin(X86_64LibDirs), end(X86_64LibDirs));
++ TripleAliases.append(begin(X86_64MuslTriples), end(X86_64MuslTriples));
++ BiarchLibDirs.append(begin(X86LibDirs), end(X86LibDirs));
++ BiarchTripleAliases.append(begin(X86MuslTriples), end(X86MuslTriples));
++ break;
++ case llvm::Triple::x86:
++ LibDirs.append(begin(X86LibDirs), end(X86LibDirs));
++ TripleAliases.append(begin(X86MuslTriples), end(X86MuslTriples));
++ BiarchLibDirs.append(begin(X86_64LibDirs), end(X86_64LibDirs));
++ BiarchTripleAliases.append(begin(X86_64MuslTriples), end(X86_64MuslTriples));
++ break;
++ case llvm::Triple::mips:
++ LibDirs.append(begin(MIPSLibDirs), end(MIPSLibDirs));
++ TripleAliases.append(begin(MIPSMuslTriples), end(MIPSMuslTriples));
++ break;
++ case llvm::Triple::ppc:
++ LibDirs.append(begin(PPCLibDirs), end(PPCLibDirs));
++ TripleAliases.append(begin(PPCMuslTriples), end(PPCMuslTriples));
++ BiarchLibDirs.append(begin(PPC64LibDirs), end(PPC64LibDirs));
++ BiarchTripleAliases.append(begin(PPC64MuslTriples), end(PPC64MuslTriples));
++ break;
++ case llvm::Triple::ppcle:
++ LibDirs.append(begin(PPCLELibDirs), end(PPCLELibDirs));
++ TripleAliases.append(begin(PPCLEMuslTriples), end(PPCLEMuslTriples));
++ BiarchLibDirs.append(begin(PPC64LELibDirs), end(PPC64LELibDirs));
++ BiarchTripleAliases.append(begin(PPC64LEMuslTriples), end(PPC64LEMuslTriples));
++ break;
++ case llvm::Triple::ppc64:
++ LibDirs.append(begin(PPC64LibDirs), end(PPC64LibDirs));
++ TripleAliases.append(begin(PPC64MuslTriples), end(PPC64MuslTriples));
++ BiarchLibDirs.append(begin(PPCLibDirs), end(PPCLibDirs));
++ BiarchTripleAliases.append(begin(PPCMuslTriples), end(PPCMuslTriples));
++ break;
++ case llvm::Triple::ppc64le:
++ LibDirs.append(begin(PPC64LELibDirs), end(PPC64LELibDirs));
++ TripleAliases.append(begin(PPC64LEMuslTriples), end(PPC64LEMuslTriples));
++ BiarchLibDirs.append(begin(PPCLELibDirs), end(PPCLELibDirs));
++ BiarchTripleAliases.append(begin(PPCLEMuslTriples), end(PPCLEMuslTriples));
++ break;
++ default:
++ break;
++ }
++ TripleAliases.push_back(TargetTriple.str());
++ if (TargetTriple.str() != BiarchTriple.str())
++ BiarchTripleAliases.push_back(BiarchTriple.str());
++ return;
++ }
++
+ // Android targets should not use GNU/Linux tools or libraries.
+ if (TargetTriple.isAndroid()) {
+ static const char *const AArch64AndroidTriples[] = {
diff --git a/srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch b/srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch
new file mode 100644
index 000000000000..4ad6412d1e6c
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch
@@ -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 =
diff --git a/srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch b/srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch
new file mode 100644
index 000000000000..21fc8003c5f1
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch
@@ -0,0 +1,48 @@
+--- a/clang/lib/Basic/Targets/PPC.h
++++ b/clang/lib/Basic/Targets/PPC.h
+@@ -415,11 +415,10 @@ public:
+ LongDoubleFormat = &llvm::APFloat::IEEEdouble();
+ } else if ((Triple.getArch() == llvm::Triple::ppc64le)) {
+ DataLayout = "e-m:e-i64:64-n32:64";
+- ABI = "elfv2";
+ } else {
+ DataLayout = "E-m:e-i64:64-n32:64";
+- ABI = "elfv1";
+ }
++ ABI = "elfv2";
+
+ if (Triple.isOSFreeBSD() || Triple.isOSOpenBSD() || Triple.isMusl()) {
+ LongDoubleWidth = LongDoubleAlign = 64;
+--- a/clang/lib/CodeGen/TargetInfo.cpp
++++ b/clang/lib/CodeGen/TargetInfo.cpp
+@@ -10927,9 +10927,9 @@ const TargetCodeGenInfo &CodeGenModule::getTargetCodeGenInfo() {
+ return SetCGInfo(new AIXTargetCodeGenInfo(Types, /*Is64Bit*/ true));
+
+ if (Triple.isOSBinFormatELF()) {
+- PPC64_SVR4_ABIInfo::ABIKind Kind = PPC64_SVR4_ABIInfo::ELFv1;
+- if (getTarget().getABI() == "elfv2")
+- Kind = PPC64_SVR4_ABIInfo::ELFv2;
++ PPC64_SVR4_ABIInfo::ABIKind Kind = PPC64_SVR4_ABIInfo::ELFv2;
++ if (getTarget().getABI() == "elfv1")
++ Kind = PPC64_SVR4_ABIInfo::ELFv1;
+ bool IsSoftFloat = CodeGenOpts.FloatABI == "soft";
+
+ return SetCGInfo(
+--- a/clang/lib/Driver/ToolChains/Clang.cpp
++++ b/clang/lib/Driver/ToolChains/Clang.cpp
+@@ -1920,14 +1920,7 @@ void Clang::AddPPCTargetArgs(const ArgList &Args,
+ const llvm::Triple &T = getToolChain().getTriple();
+ if (T.isOSBinFormatELF()) {
+ switch (getToolChain().getArch()) {
+- case llvm::Triple::ppc64: {
+- if ((T.isOSFreeBSD() && T.getOSMajorVersion() >= 13) ||
+- T.isOSOpenBSD() || T.isMusl())
+- ABIName = "elfv2";
+- else
+- ABIName = "elfv1";
+- break;
+- }
++ case llvm::Triple::ppc64:
+ case llvm::Triple::ppc64le:
+ ABIName = "elfv2";
+ break;
diff --git a/srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch b/srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch
new file mode 100644
index 000000000000..360cfc1ba7f1
--- /dev/null
+++ b/srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch
@@ -0,0 +1,35 @@
+--- 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__) || SANITIZER_RISCV64
++ defined(__hexagon__) || defined(__powerpc__) || 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_ANDROID
++#if (defined(__aarch64__) || defined(__powerpc__) || SANITIZER_RISCV64) && !SANITIZER_ANDROID
+ // GLIBC 2.20+ sys/user does not include asm/ptrace.h
+ # include <asm/ptrace.h>
+ #endif
diff --git a/srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip b/srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip
new file mode 100644
index 000000000000..d0b61c80c897
--- /dev/null
+++ b/srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip
@@ -0,0 +1,62 @@
+--- a/compiler-rt/lib/xray/xray_powerpc64.inc
++++ b/compiler-rt/lib/xray/xray_powerpc64.inc
+@@ -12,7 +12,13 @@
+
+ #include <cstdint>
+ #include <mutex>
++#ifdef __GLIBC__
+ #include <sys/platform/ppc.h>
++#else
++#include <cctype>
++#include <cstring>
++#include <cstdlib>
++#endif
+
+ #include "xray_defs.h"
+
+@@ -20,13 +26,45 @@ namespace __xray {
+
+ ALWAYS_INLINE uint64_t readTSC(uint8_t &CPU) XRAY_NEVER_INSTRUMENT {
+ CPU = 0;
++#ifdef __GLIBC__
+ return __ppc_get_timebase();
++#else
++ return __builtin_ppc_get_timebase();
++#endif
+ }
+
+ inline uint64_t getTSCFrequency() XRAY_NEVER_INSTRUMENT {
+ static std::mutex M;
+ std::lock_guard<std::mutex> Guard(M);
++#ifdef __GLIBC__
+ return __ppc_get_timebase_freq();
++#else
++ /* FIXME: a less dirty implementation? */
++ static uint64_t base;
++ if (!base) {
++ FILE *f = fopen("/proc/cpuinfo", "rb");
++ if (f) {
++ ssize_t nr;
++ /* virtually always big enough to hold the line */
++ char buf[512];
++ while (fgets(buf, sizeof(buf), f)) {
++ char *ret = strstr(buf, "timebase");
++ if (!ret) {
++ continue;
++ }
++ ret += sizeof("timebase") - 1;
++ ret = strchr(ret, ':');
++ if (!ret) {
++ continue;
++ }
++ base = strtoul(ret + 1, nullptr, 10);
++ break;
++ }
++ fclose(f);
++ }
++ }
++ return base;
++#endif
+ }
+
+ inline bool probeRequiredCPUFeatures() XRAY_NEVER_INSTRUMENT {
diff --git a/srcpkgs/llvm15/patches/libcxx-musl.patch b/srcpkgs/llvm15/patches/libcxx-musl.patch
new file mode 100644
index 000000000000..bbd31ffc2cb1
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxx-musl.patch
@@ -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,
+ typename remove_reference<decltype(errno)>::type __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
+ typename remove_reference<decltype(errno)>::type __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,
+ typename remove_reference<decltype(errno)>::type __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
+ typename remove_reference<decltype(errno)>::type __current_errno = errno;
+ if (__current_errno == 0)
+ errno = __save_errno;
diff --git a/srcpkgs/llvm15/patches/libcxx-ppc.patch b/srcpkgs/llvm15/patches/libcxx-ppc.patch
new file mode 100644
index 000000000000..7a92f8004e1c
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxx-ppc.patch
@@ -0,0 +1,22 @@
+This ensures `is_iec559` is defined correctly under all long double ABIs,
+including musl and its 64-bit long double. Also, `__ppc__` or `__ppc64__`
+is not defined on gcc.
+
+--- a/libcxx/include/limits
++++ b/libcxx/include/limits
+@@ -426,8 +426,14 @@ protected:
+ _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type signaling_NaN() _NOEXCEPT {return __builtin_nansl("");}
+ _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type denorm_min() _NOEXCEPT {return __LDBL_DENORM_MIN__;}
+
+-#if (defined(__ppc__) || defined(__ppc64__))
++#if defined(__powerpc__) || defined(__powerpc64__)
++#if (__LDBL_MAX_EXP__ > __DBL_MAX_EXP__) || (__LDBL_MANT_DIG__ == __DBL_MANT_DIG__)
++ /* IEEE 754 quadruple or double precision */
++ static _LIBCPP_CONSTEXPR const bool is_iec559 = true;
++#else
++ /* 128-bit IBM double-double */
+ static _LIBCPP_CONSTEXPR const bool is_iec559 = false;
++#endif
+ #else
+ static _LIBCPP_CONSTEXPR const bool is_iec559 = true;
+ #endif
diff --git a/srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch b/srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch
new file mode 100644
index 000000000000..70292beb2fcd
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch
@@ -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()
diff --git a/srcpkgs/llvm15/patches/libcxxabi-dl.patch b/srcpkgs/llvm15/patches/libcxxabi-dl.patch
new file mode 100644
index 000000000000..3a15f9db8c98
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxxabi-dl.patch
@@ -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 @@
+ target_link_libraries(${target} PRIVATE m)
+ endif()
+
++ if (LIBCXX_HAS_C_LIB)
++ target_link_libraries(${target} PRIVATE dl)
++ endif()
++
+ if (LIBCXX_HAS_RT_LIB)
+ target_link_libraries(${target} PRIVATE rt)
+ endif()
diff --git a/srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip b/srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip
new file mode 100644
index 000000000000..74aa7576ecf9
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip
@@ -0,0 +1,63 @@
+This fixes build at least with gcc9 which does not define `__ppc__`.
+
+--- a/libunwind/include/__libunwind_config.h
++++ b/libunwind/include/__libunwind_config.h
+@@ -49,7 +49,7 @@
+ # define _LIBUNWIND_CONTEXT_SIZE 167
+ # define _LIBUNWIND_CURSOR_SIZE 179
+ # define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_PPC64
+-# elif defined(__ppc__)
++# elif defined(__powerpc__)
+ # define _LIBUNWIND_TARGET_PPC 1
+ # define _LIBUNWIND_CONTEXT_SIZE 117
+ # define _LIBUNWIND_CURSOR_SIZE 124
+--- a/libunwind/src/UnwindRegistersRestore.S
++++ b/libunwind/src/UnwindRegistersRestore.S
+@@ -392,7 +392,7 @@ Lnovec:
+ PPC64_LR(3)
+ bctr
+
+-#elif defined(__ppc__)
++#elif defined(__powerpc__)
+
+ DEFINE_LIBUNWIND_FUNCTION(_ZN9libunwind13Registers_ppc6jumptoEv)
+ //
+--- a/libunwind/src/UnwindRegistersSave.S
++++ b/libunwind/src/UnwindRegistersSave.S
+@@ -554,7 +554,7 @@ DEFINE_LIBUNWIND_FUNCTION(__unw_getcontext)
+ blr
+
+
+-#elif defined(__ppc__)
++#elif defined(__powerpc__)
+
+ //
+ // extern int unw_getcontext(unw_context_t* thread_state)
+--- a/libunwind/src/config.h
++++ b/libunwind/src/config.h
+@@ -95,12 +95,12 @@
+ #define _LIBUNWIND_BUILD_SJLJ_APIS
+ #endif
+
+-#if defined(__i386__) || defined(__x86_64__) || defined(__ppc__) || defined(__ppc64__) || defined(__powerpc64__)
++#if defined(__i386__) || defined(__x86_64__) || defined(__powerpc__) || defined(__powerpc64__)
+ #define _LIBUNWIND_SUPPORT_FRAME_APIS
+ #endif
+
+ #if defined(__i386__) || defined(__x86_64__) || \
+- defined(__ppc__) || defined(__ppc64__) || defined(__powerpc64__) || \
++ defined(__powerpc__) || defined(__powerpc64__) || \
+ (!defined(__APPLE__) && defined(__arm__)) || \
+ (defined(__arm64__) || defined(__aarch64__)) || \
+ defined(__mips__)
+--- a/libunwind/src/libunwind.cpp
++++ b/libunwind/src/libunwind.cpp
+@@ -42,7 +42,7 @@ _LIBUNWIND_HIDDEN int __unw_init_local(unw_cursor_t *cursor,
+ # define REGISTER_KIND Registers_x86_64
+ #elif defined(__powerpc64__)
+ # define REGISTER_KIND Registers_ppc64
+-#elif defined(__ppc__)
++#elif defined(__powerpc__)
+ # define REGISTER_KIND Registers_ppc
+ #elif defined(__aarch64__)
+ # define REGISTER_KIND Registers_arm64
diff --git a/srcpkgs/llvm15/patches/lldb-musl.patch b/srcpkgs/llvm15/patches/lldb-musl.patch
new file mode 100644
index 000000000000..026c5e1e61ba
--- /dev/null
+++ b/srcpkgs/llvm15/patches/lldb-musl.patch
@@ -0,0 +1,40 @@
+--- a/lldb/source/Plugins/Process/Linux/Procfs.h
++++ b/lldb/source/Plugins/Process/Linux/Procfs.h
+@@ -10,6 +10,7 @@
+ // sys/procfs.h on Android/Linux for all supported architectures.
+
+ #include <sys/ptrace.h>
++#include <asm/ptrace.h>
+
+ #include "lldb/lldb-types.h"
+
+@@ -17,23 +18,13 @@
+
+ #include <vector>
+
+-#ifdef __ANDROID__
+-#if defined(__arm64__) || defined(__aarch64__)
+-typedef unsigned long elf_greg_t;
+-typedef elf_greg_t
+- elf_gregset_t[(sizeof(struct user_pt_regs) / sizeof(elf_greg_t))];
+-typedef struct user_fpsimd_state elf_fpregset_t;
+-#ifndef NT_FPREGSET
+-#define NT_FPREGSET NT_PRFPREG
+-#endif // NT_FPREGSET
+-#elif defined(__mips__)
+-#ifndef NT_FPREGSET
+-#define NT_FPREGSET NT_PRFPREG
+-#endif // NT_FPREGSET
+-#endif
+-#else // __ANDROID__
++#if !defined(__GLIBC__) && defined(__powerpc__)
++#define pt_regs musl_pt_regs
++#include <sys/procfs.h>
++#undef pt_regs
++#else
+ #include <sys/procfs.h>
+-#endif // __ANDROID__
++#endif
+
+ namespace lldb_private {
+ namespace process_linux {
diff --git a/srcpkgs/llvm15/patches/llvm-001-musl.patch b/srcpkgs/llvm15/patches/llvm-001-musl.patch
new file mode 100644
index 000000000000..f2a3f8d62813
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-001-musl.patch
@@ -0,0 +1,57 @@
+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;
+diff --git a/lib/Support/Unix/DynamicLibrary.inc b/lib/Support/Unix/DynamicLibrary.inc
+index a2a37996..2f86c470 100644
+--- a/llvm/lib/Support/Unix/DynamicLibrary.inc
++++ b/llvm/lib/Support/Unix/DynamicLibrary.inc
+@@ -102,7 +102,7 @@ static void *DoSearch(const char* SymbolName) {
+
+ // This macro returns the address of a well-known, explicit symbol
+ #define EXPLICIT_SYMBOL(SYM) \
+- if (!strcmp(SymbolName, #SYM)) return &SYM
++ if (!strcmp(SymbolName, #SYM)) return (void *)&SYM
+
+ // Under glibc we have a weird situation. The stderr/out/in symbols are both
+ // macros and global variables because of standards requirements. So, we
+diff --git a/utils/unittest/googletest/src/gtest.cc b/utils/unittest/googletest/src/gtest.cc
+index d882ab2e..f1fb12d0 100644
+--- a/llvm/utils/unittest/googletest/src/gtest.cc
++++ b/llvm/utils/unittest/googletest/src/gtest.cc
+@@ -128,6 +128,7 @@
+
+ #if GTEST_CAN_STREAM_RESULTS_
+ # include <arpa/inet.h> // NOLINT
++# include <sys/socket.h> // NOLINT
+ # include <netdb.h> // NOLINT
+ # include <sys/socket.h> // NOLINT
+ # include <sys/types.h> // NOLINT
diff --git a/srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch b/srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch
new file mode 100644
index 000000000000..0071d964bd37
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch
@@ -0,0 +1,30 @@
+This patches LLVM to use ELFv2 on ppc64 unconditionally unless overridden. We
+need this because unlike most distros we use ELFv2 for both glibc and musl
+on big endian ppc64.
+
+diff --git a/lib/Target/PowerPC/PPCTargetMachine.cpp b/lib/Target/PowerPC/PPCTargetMachine.cpp
+index 0634833e..b7cbc2e7 100644
+--- a/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp
++++ b/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp
+@@ -222,9 +222,8 @@ static PPCTargetMachine::PPCABI computeTargetABI(const Triple &TT,
+
+ switch (TT.getArch()) {
+ case Triple::ppc64le:
+- return PPCTargetMachine::PPC_ABI_ELFv2;
+ case Triple::ppc64:
+- return PPCTargetMachine::PPC_ABI_ELFv1;
++ return PPCTargetMachine::PPC_ABI_ELFv2;
+ default:
+ return PPCTargetMachine::PPC_ABI_UNKNOWN;
+ }
+diff --git a/test/CodeGen/PowerPC/ppc64-elf-abi.ll b/test/CodeGen/PowerPC/ppc64-elf-abi.ll
+index 8b1cf6b5..296a2afa 100644
+--- a/llvm/test/CodeGen/PowerPC/ppc64-elf-abi.ll
++++ b/llvm/test/CodeGen/PowerPC/ppc64-elf-abi.ll
+@@ -1,4 +1,5 @@
+-; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv1
++; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv2
++; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-musl < %s | FileCheck %s -check-prefix=CHECK-ELFv2
+ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu -target-abi elfv1 < %s | FileCheck %s -check-prefix=CHECK-ELFv1
+ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu -target-abi elfv2 < %s | FileCheck %s -check-prefix=CHECK-ELFv2
+ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv2
diff --git a/srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch b/srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch
new file mode 100644
index 000000000000..b5d15974375d
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch
@@ -0,0 +1,11 @@
+--- a/llvm/lib/Target/PowerPC/PPCSubtarget.cpp
++++ b/llvm/lib/Target/PowerPC/PPCSubtarget.cpp
+@@ -165,7 +165,7 @@ void PPCSubtarget::initSubtargetFeatures(StringRef CPU, StringRef FS) {
+
+ if ((TargetTriple.isOSFreeBSD() && TargetTriple.getOSMajorVersion() >= 13) ||
+ TargetTriple.isOSNetBSD() || TargetTriple.isOSOpenBSD() ||
+- TargetTriple.isMusl())
++ isTargetLinux())
+ SecurePlt = true;
+
+ if (HasSPE && IsPPC64)
diff --git a/srcpkgs/llvm15/patches/llvm-004-override-opt.patch b/srcpkgs/llvm15/patches/llvm-004-override-opt.patch
new file mode 100644
index 000000000000..51d0e4b31b32
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-004-override-opt.patch
@@ -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)
diff --git a/srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch b/srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch
new file mode 100644
index 000000000000..d332687b9d92
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch
@@ -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);
diff --git a/srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch b/srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch
new file mode 100644
index 000000000000..a00abd216665
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch
@@ -0,0 +1,25 @@
+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__) || defined (__ppc__) || \
+- defined(_POWER) || defined(_ARCH_PPC))
++ defined(_POWER) || defined(_ARCH_PPC) || (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
diff --git a/srcpkgs/llvm15/template b/srcpkgs/llvm15/template
new file mode 100644
index 000000000000..d80c629c4778
--- /dev/null
+++ b/srcpkgs/llvm15/template
@@ -0,0 +1,433 @@
+# Template file for 'llvm15'
+pkgname=llvm15
+version=15.0.5
+revision=1
+build_wrksrc=llvm
+build_style=cmake
+configure_args="
+ -DCMAKE_BUILD_TYPE=Release -Wno-dev
+ -DENABLE_LINKER_BUILD_ID=YES
+ -DLLDB_USE_SYSTEM_SIX=YES
+ -DLIBCXX_CXX_ABI=libcxxabi
+ -DLIBCXX_ENABLE_STATIC_ABI_LIBRARY=YES
+ -DLIBCXXABI_USE_LLVM_UNWINDER=YES
+ -DLIBCXXABI_ENABLE_STATIC_UNWINDER=YES
+ -DLIBOMP_ENABLE_SHARED=YES
+ -DLIBOMP_INSTALL_ALIASES=NO
+ -DLLVM_INCLUDE_DOCS=YES
+ -DLLVM_BUILD_DOCS=YES
+ -DLLVM_ENABLE_SPHINX=YES
+ -DSPHINX_WARNINGS_AS_ERRORS=NO
+ -DLLVM_INSTALL_UTILS=YES
+ -DLLVM_BUILD_LLVM_DYLIB=YES
+ -DLLVM_LINK_LLVM_DYLIB=YES
+ -DLLVM_ENABLE_RTTI=YES
+ -DLLVM_ENABLE_FFI=YES
+ -DLLVM_BINUTILS_INCDIR=/usr/include"
+hostmakedepends="perl python3 zlib-devel libffi-devel swig python3-Sphinx
+ python3-recommonmark python3-sphinx-automodapi"
+makedepends="python3-devel zlib-devel elfutils-devel libffi-devel libedit-devel
+ libxml2-devel binutils-devel libatomic-devel"
+depends="libllvm15>=${version}_${revision}"
+short_desc="Low Level Virtual Machine"
+maintainer="Orphaned <orphan@voidlinux.org>"
+license="Apache-2.0"
+homepage="https://www.llvm.org"
+distfiles="https://github.com/llvm/llvm-project/releases/download/llvmorg-${version}/llvm-project-${version}.src.tar.xz"
+checksum=9c4278a6b8884eb7f4ae7dfe3c8e5445019824885e47cfdf1392563c47316fd6
+lib32disabled=yes
+python_version=3
+
+if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
+ configure_args+=" -DLIBCXX_HAS_MUSL_LIBC=YES"
+ makedepends+=" libexecinfo-devel"
+ depends+=" libexecinfo-devel"
+fi
+
+# "operand out of range" assembler failures
+case "$XBPS_TARGET_MACHINE" in
+ ppc64*) ;;
+ ppc*) configure_args+=" -DCLANG_ENABLE_CLANGD=OFF" ;;
+esac
+
+_enabled_projects="clang;clang-tools-extra;compiler-rt;libcxx;libcxxabi;libunwind;lld"
+
+_lldb_enable=yes
+_libomp_enable=no
+
+case "$XBPS_TARGET_MACHINE" in
+ ppc64le*) ;;
+ ppc*|i686*) _lldb_enable=no ;;
+esac
+
+case "$XBPS_TARGET_MACHINE" in
+ x86_64*|aarch64*|ppc64*) _libomp_enable=yes;;
+esac
+
+subpackages="clang-tools-extra"
+
+# must go before clang
+if [ "$_libomp_enable" = "yes" ]; then
+ _enabled_projects+=";openmp"
+ subpackages+=" libomp libomp-devel"
+ # because of cmake nonsense referencing libomptarget.so.*
+ depends+=" libomp>=${version}_${revision}"
+fi
+
+subpackages+=" clang clang-analyzer libclang libclang-cpp
+ llvm-libunwind llvm-libunwind-devel libcxx libcxx-devel
+ libcxxabi libcxxabi-devel libllvm15"
+
+if [ "$_lldb_enable" = "yes" ]; then
+ # XXX fails to cross compile due to python
+ _enabled_projects+=";lldb"
+ subpackages+=" lldb lldb-devel"
+fi
+
+subpackages+=" lld lld-devel"
+
+configure_args+=" -DLLVM_ENABLE_PROJECTS=${_enabled_projects}"
+
+post_patch() {
+ if [ "$_lldb_enable" = "yes" ]; then
+ if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
+ vsed -i 's|__ptrace_request|int|g' \
+ ${wrksrc}/lldb/source/Plugins/Process/Linux/NativeProcessLinux.cpp
+ fi
+ # disable docs for lldb as they fail to generate
+ vsed -i '/add_subdirectory(docs)/d' \
+ ${wrksrc}/lldb/CMakeLists.txt
+ fi
+
+ # update config.guess for better platform detection
+ cp $XBPS_COMMONDIR/environment/configure/automake/config.guess \
+ ${wrksrc}/llvm/cmake
+
+ # fix linker failures on some archs
+ vsed -i 's,check_library_exists(gcc_s .*,set(LIBCXXABI_HAS_GCC_S_LIB ON),' \
+ ${wrksrc}/libcxxabi/cmake/config-ix.cmake
+ vsed -i 's,check_library_exists(gcc .*,set(LIBCXXABI_HAS_GCC_LIB ON),' \
+ ${wrksrc}/libcxxabi/cmake/config-ix.cmake
+
+ # need libssp_nonshared on some musl platforms (because of nodefaultlibs)
+ case "$XBPS_TARGET_MACHINE" in
+ ppc64*) ;;
+ ppc*-musl|i686-musl|mips*-musl)
+ vsed -i 's,^# Setup flags.$,add_library_flags(ssp_nonshared),' \
+ ${wrksrc}/libunwind/src/CMakeLists.txt
+ vsed -i 's,^# Setup flags.$,add_library_flags(ssp_nonshared),' \
+ ${wrksrc}/libcxxabi/src/CMakeLists.txt
+ vsed -i 's,#ssp,,' ${wrksrc}/libcxx/CMakeLists.txt
+ ;;
+ esac
+
+ case "$XBPS_TARGET_MACHINE" in
+ x86_64-musl) # some sanitizer currently only on x86_64 stuff needs backtrace
+ vsed -i 's,# Set common link flags.,list(APPEND SANITIZER_COMMON_LINK_LIBS execinfo),' \
+ ${wrksrc}/compiler-rt/CMakeLists.txt
+ ;;
+ arm*-musl|i686-musl) # sanitizer code is broken since it duplicates some libc bits
+ vsed -i 's/set(COMPILER_RT_HAS_SANITIZER_COMMON TRUE)/set(COMPILER_RT_HAS_SANITIZER_COMMON FALSE)/' \
+ ${wrksrc}/compiler-rt/cmake/config-ix.cmake
+ ;;
+ esac
+}
+
+pre_configure() {
+ local triplet
+
+ # Vastly reduce size of debugging symbols:
+ CFLAGS=${CFLAGS/ -g/ -g1}
+ CXXFLAGS=${CXXFLAGS/ -g/ -g1}
+
+ # since gcc9, the build likes to blow up for ppc32 apparently because
+ # of clang being too large for a 24-bit relative call to the PLT, so
+ # optimize for size instead
+ case "$XBPS_TARGET_MACHINE" in
+ ppc64*) ;;
+ mips*-musl|ppc*) configure_args+=" -DVOID_CXX_OPT_FLAGS=-Os" ;;
+ esac
+
+ if [ "$CROSS_BUILD" ]; then
+ msg_normal "Building host tblgen\n"
+ mkdir -p build/HOST
+ cd build/HOST
+ CC="$BUILD_CC" CXX="$BUILD_CXX" CFLAGS="$BUILD_CFLAGS" \
+ CXXFLAGS="$BUILD_CXXFLAGS" LDFLAGS="$BUILD_LDFLAGS" \
+ cmake ../.. -DCMAKE_BUILD_TYPE=Release \
+ -DLLVM_ENABLE_PROJECTS=${_enabled_projects}
+ make ${makejobs} -C utils/TableGen
+ make ${makejobs} -C tools/clang/utils/TableGen
+ [ "$_lldb_enable" = "yes" ] && make ${makejobs} -C tools/lldb/utils/TableGen
+ configure_args+=" -DLLVM_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/llvm-tblgen"
+ configure_args+=" -DCLANG_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/clang-tblgen"
+ [ "$_lldb_enable" = "yes" ] && configure_args+=" -DLLDB_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/lldb-tblgen"
+ cd ../..
+ fi
+
+ case "$XBPS_TARGET_MACHINE" in
+ i686*) _arch="X86";;
+ x86_64*) _arch="X86";;
+ armv5*) _arch="Armv5te";;
+ armv6*) _arch="Armv6";;
+ armv7*) _arch="Armv7";;
+ aarch64*) _arch="AArch64";;
+ mips*) _arch="Mips";;
+ ppc*) _arch="PowerPC";;
+ riscv64*) _arch="RISCV64";;
+ esac
+
+ triplet=${XBPS_CROSS_TRIPLET:-$XBPS_TRIPLET}
+
+ configure_args+=" -DLLVM_TARGET_ARCH=${_arch}"
+ configure_args+=" -DLLVM_HOST_TRIPLE=${triplet}"
+ configure_args+=" -DLLVM_DEFAULT_TARGET_TRIPLE=${triplet}"
+}
+
+do_install() {
+ cd build
+ cmake -DCMAKE_INSTALL_PREFIX=${DESTDIR}/usr -P cmake_install.cmake
+
+ # Required for multilib.
+ if [ "$XBPS_TARGET_MACHINE" = "x86_64" ]; then
+ for _header in llvm-config; do
+ mv ${DESTDIR}/usr/include/llvm/Config/${_header}{,-64}.h
+ vinstall ${FILESDIR}/llvm-Config-${_header}.h 644 \
+ usr/include/llvm/Config ${_header}.h
+ done
+ fi
+
+ # Remove llvm-config-host in cross builds.
+ if [ "$CROSS_BUILD" ]; then
+ rm -f ${DESTDIR}/usr/bin/llvm-config-host
+ fi
+
+ # Install libcxxabi headers
+ vinstall ${wrksrc}/libcxxabi/include/__cxxabi_config.h 644 usr/include
+ vinstall ${wrksrc}/libcxxabi/include/cxxabi.h 644 usr/include
+
+ # Install libunwind headers
+ vinstall ${wrksrc}/libunwind/include/__libunwind_config.h 644 usr/include
+ vinstall ${wrksrc}/libunwind/include/libunwind.h 644 usr/include
+ vinstall ${wrksrc}/libunwind/include/unwind.h 644 usr/include
+ vinstall ${wrksrc}/libunwind/include/mach-o/compact_unwind_encoding.h \
+ 644 usr/include/mach-o
+}
+
+clang-analyzer_package() {
+ pycompile_dirs="usr/share/scan-view"
+ depends="clang-${version}_${revision} python3 perl"
+ short_desc+=" - A source code analysis framework"
+ homepage="https://clang-analyzer.llvm.org/"
+ pkg_install() {
+ vmove usr/share/man/man1/scan-build.1
+ vmove "/usr/bin/scan-*"
+ vmove "/usr/share/scan-*"
+ vmove "/usr/libexec/*analyzer"
+ }
+}
+
+clang-tools-extra_package() {
+ lib32disabled=yes
+ depends="clang-${version}_${revision} python3"
+ short_desc+=" - Extra Clang tools"
+ homepage="https://clang.llvm.org/extra/"
+ pkg_install() {
+ vmove usr/include/clang-tidy
+ vmove usr/bin/clang-apply-replacements
+ vmove usr/bin/clang-doc
+ vmove usr/bin/clang-include-fixer
+ vmove usr/bin/clang-query
+ vmove usr/bin/clang-rename
+ vmove usr/bin/clang-reorder-fields
+ vmove usr/bin/clang-tidy
+ vmove usr/bin/clangd
+ vmove usr/bin/diagtool
+ vmove usr/bin/find-all-symbols
+ vmove usr/bin/hmaptool
+ vmove usr/bin/modularize
+ vmove usr/bin/pp-trace
+ vmove usr/bin/sancov
+ vmove "usr/lib/libclangApplyReplacements*"
+ vmove "usr/lib/libclangDoc*"
+ vmove "usr/lib/libclangIncludeFixer*"
+ vmove "usr/lib/libclangReorderFields*"
+ vmove "usr/lib/libclangQuery*"
+ vmove "usr/lib/libclangTidy*"
+ vmove "usr/share/clang/*include-fixer*"
+ vmove "usr/share/clang/*rename*"
+ vmove "usr/share/clang/*tidy*"
+ vmove usr/share/doc/LLVM/clang-tools
+ vmove usr/share/man/man1/extraclangtools.1
+ vmove usr/share/man/man1/diagtool.1
+ }
+}
+
+clang_package() {
+ lib32disabled=yes
+ depends="libstdc++-devel libgcc-devel binutils ${XBPS_TARGET_LIBC}-devel
+ libclang-${version}_${revision}"
+ short_desc+=" - C language family frontend"
+ homepage="https://clang.llvm.org/"
+ pkg_install() {
+ vmove usr/include/clang
+ vmove usr/include/clang-c
+ vmove "usr/bin/*clang*"
+ vmove usr/bin/c-index-test
+ vmove usr/lib/clang
+ vmove usr/lib/cmake/clang
+ vmove "usr/lib/libclang*.a"
+ vmove "usr/lib/libclang*.so"
+ vmove usr/share/clang
+ vmove usr/share/doc/LLVM/clang
+ vmove usr/share/man/man1/clang.1
+ }
+}
+
+libclang_package() {
+ short_desc+=" - C frontend runtime library"
+ pkg_install() {
+ vmove "usr/lib/libclang.so.*"
+ }
+}
+
+libclang-cpp_package() {
+ short_desc+=" - C frontend runtime library (C++ interface)"
+ pkg_install() {
+ vmove "usr/lib/libclang-cpp.so.*"
+ }
+}
+
+lld_package() {
+ lib32disabled=yes
+ short_desc+=" - linker"
+ homepage="https://lld.llvm.org"
+ pkg_install() {
+ vmove usr/bin/lld*
+ vmove usr/bin/wasm-ld
+ vmove usr/bin/ld.lld*
+ vmove usr/bin/ld64.lld*
+ vmove usr/share/doc/LLVM/lld
+ }
+}
+
+lld-devel_package() {
+ lib32disabled=yes
+ short_desc+=" - linker - development files"
+ homepage="https://lld.llvm.org"
+ depends="lld>=${version}_${revision}"
+ pkg_install() {
+ vmove usr/include/lld
+ vmove usr/lib/cmake/lld
+ vmove "usr/lib/liblld*a"
+ }
+}
+
+lldb_package() {
+ lib32disabled=yes
+ depends+=" python3-six"
+ short_desc+=" - LLDB debugger"
+ homepage="https://lldb.llvm.org/"
+ pkg_install() {
+ vmove usr/bin/*lldb*
+ vmove usr/lib/liblldb*so.*
+ vmove /usr/lib/python*
+ }
+}
+
+lldb-devel_package() {
+ lib32disabled=yes
+ depends="lldb>=${version}_${revision}"
+ short_desc+=" - LLDB debugger - development files"
+ pkg_install() {
+ vmove usr/include/lldb
+ vmove "usr/lib/liblldb*.so"
+ }
+}
+
+llvm-libunwind_package() {
+ short_desc+=" - libunwind"
+ pkg_install() {
+ vmove "usr/lib/${XBPS_TRIPLET}/libunwind.so.*"
+ }
+}
+
+llvm-libunwind-devel_package() {
+ short_desc+=" - libunwind - development files"
+ depends="llvm-libunwind>=${version}_${revision}"
+ conflicts="libunwind-devel>=0"
+ pkg_install() {
+ vmove "usr/lib/${XBPS_TRIPLET}/libunwind.so"
+ vmove "usr/lib/${XBPS_TRIPLET}/libunwind.a"
+ vmove "usr/include/*unwind*"
+ vmove usr/include/mach-o
+ vmove usr/share/doc/LLVM/libunwind
+ }
+}
+
+libcxxabi_package() {
+ short_desc+=" - low level support for libc++"
+ pkg_install() {
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++abi.so.*"
+ }
+}
+
+libcxxabi-devel_package() {
+ short_desc+=" - low level support for libc++ - development files"
+ depends="libcxxabi>=${version}_${revision}"
+ pkg_install() {
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++abi.so"
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++abi.a"
+ vmove "usr/include/*cxxabi*"
+ }
+}
+
+libcxx_package() {
+ short_desc+=" - C++ standard library"
+ pkg_install() {
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++.so.*"
+ }
+}
+
+libcxx-devel_package() {
+ short_desc+=" - C++ standard library - development files"
+ depends="libcxx>=${version}_${revision}"
+ pkg_install() {
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++.so"
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++.a"
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++experimental.a"
+ vmove usr/include/c++
+ vmove usr/share/doc/LLVM/libcxx
+ }
+}
+
+libomp_package() {
+ short_desc+=" - Clang OpenMP support library"
+ pkg_install() {
+ vmove usr/lib/libomp.so
+ vmove usr/lib/libompd.so
+ vmove "usr/lib/libomptarget.rtl.*.so"
+ vmove usr/lib/libarcher.so
+ vmove "usr/lib/libomp*.so.*"
+ }
+}
+
+libomp-devel_package() {
+ short_desc+=" - Clang OpenMP support library - development files"
+ depends="libomp>=${version}_${revision}"
+ pkg_install() {
+ vmove "usr/lib/libomp*.so"
+ vmove "usr/lib/libarcher*"
+ vmove "usr/include/omp*.h"
+ vmove "usr/lib/clang/${version}/include/omp*.h"
+ vmove usr/share/doc/LLVM/openmp
+ vmove usr/share/man/man1/llvmopenmp.1
+ }
+}
+
+libllvm15_package() {
+ short_desc+=" - runtime library"
+ pkg_install() {
+ vmove "usr/lib/libLLVM-*.so*"
+ }
+}
diff --git a/srcpkgs/llvm15/update b/srcpkgs/llvm15/update
new file mode 100644
index 000000000000..e95cf26b3586
--- /dev/null
+++ b/srcpkgs/llvm15/update
@@ -0,0 +1,3 @@
+site="https://github.com/llvm/llvm-project/releases"
+pattern="llvmorg-\K(\d+.){2}\d+(-rc\d+)?"
+ignore="*-rc*"
^ permalink raw reply [flat|nested] 96+ messages in thread
* Re: [WIP] LLVM 15
2022-11-28 15:30 [PR PATCH] [WIP] LLVM 15 tranzystorek-io
@ 2022-11-28 15:32 ` tranzystorek-io
2022-11-28 16:36 ` dkwo
` (93 subsequent siblings)
94 siblings, 0 replies; 96+ messages in thread
From: tranzystorek-io @ 2022-11-28 15:32 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 183 bytes --]
New comment by tranzystorek-io on void-packages repository
https://github.com/void-linux/void-packages/pull/40821#issuecomment-1329304996
Comment:
For now working on top of #34902
^ permalink raw reply [flat|nested] 96+ messages in thread
* Re: [WIP] LLVM 15
2022-11-28 15:30 [PR PATCH] [WIP] LLVM 15 tranzystorek-io
2022-11-28 15:32 ` tranzystorek-io
@ 2022-11-28 16:36 ` dkwo
2022-11-28 19:13 ` [PR PATCH] [Updated] " tranzystorek-io
` (92 subsequent siblings)
94 siblings, 0 replies; 96+ messages in thread
From: dkwo @ 2022-11-28 16:36 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 318 bytes --]
New comment by dkwo on void-packages repository
https://github.com/void-linux/void-packages/pull/40821#issuecomment-1329396063
Comment:
You may want to look at the previous PR (for 14) for inspiration, as well as chimera and alpine for patches.
Some stuff will need rebuild (e.g. mesa), and maybe update zig to 10.
^ permalink raw reply [flat|nested] 96+ messages in thread
* Re: [PR PATCH] [Updated] [WIP] LLVM 15
2022-11-28 15:30 [PR PATCH] [WIP] LLVM 15 tranzystorek-io
2022-11-28 15:32 ` tranzystorek-io
2022-11-28 16:36 ` dkwo
@ 2022-11-28 19:13 ` tranzystorek-io
2022-11-28 23:49 ` tranzystorek-io
` (91 subsequent siblings)
94 siblings, 0 replies; 96+ messages in thread
From: tranzystorek-io @ 2022-11-28 19:13 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 384 bytes --]
There is an updated pull request by tranzystorek-io against master on the void-packages repository
https://github.com/tranzystorek-io/void-packages llvm15
https://github.com/void-linux/void-packages/pull/40821
[WIP] LLVM 15
[ci skip]
TODO:
- [ ] Adjust patches marked as `.patch.skip`
A patch file from https://github.com/void-linux/void-packages/pull/40821.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-llvm15-40821.patch --]
[-- Type: text/x-diff, Size: 183360 bytes --]
From 647d83b69f6f9ec362d5dc43171ef63cc18946f7 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sat, 5 Nov 2022 11:33:11 -0700
Subject: [PATCH 01/38] binutils: update to 2.39.
---
...e3f3bd6d460491f8c8d032a7fea88d5ec8ff.patch | 60 -----------------
.../fix-libcollector-without-java.patch | 53 +++++++++++++++
.../patches/ppc64-revert-gnu-attributes.patch | 66 +++++--------------
srcpkgs/binutils/template | 25 ++++---
4 files changed, 87 insertions(+), 117 deletions(-)
delete mode 100644 srcpkgs/binutils/patches/1767e3f3bd6d460491f8c8d032a7fea88d5ec8ff.patch
create mode 100644 srcpkgs/binutils/patches/fix-libcollector-without-java.patch
diff --git a/srcpkgs/binutils/patches/1767e3f3bd6d460491f8c8d032a7fea88d5ec8ff.patch b/srcpkgs/binutils/patches/1767e3f3bd6d460491f8c8d032a7fea88d5ec8ff.patch
deleted file mode 100644
index a55432d83cff..000000000000
--- a/srcpkgs/binutils/patches/1767e3f3bd6d460491f8c8d032a7fea88d5ec8ff.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-From 1767e3f3bd6d460491f8c8d032a7fea88d5ec8ff Mon Sep 17 00:00:00 2001
-From: "H.J. Lu" <hjl.tools@gmail.com>
-Date: Mon, 16 Nov 2020 06:37:53 -0800
-Subject: [PATCH] elf: Set rel_from_abs to 1 for __ehdr_start
-
-bfdlink.h has
-
- /* Symbol will be converted from absolute to section-relative. Set for
- symbols defined by a script from "dot" (also SEGMENT_START or ORIGIN)
- outside of an output section statement. */
- unsigned int rel_from_abs : 1;
-
-linker.c has
-
-.{* Return TRUE if the symbol described by a linker hash entry H
-. is going to be absolute. Linker-script defined symbols can be
-. converted from absolute to section-relative ones late in the
-. link. Use this macro to correctly determine whether the symbol
-. will actually end up absolute in output. *}
-.#define bfd_is_abs_symbol(H) \
-. (((H)->type == bfd_link_hash_defined \
-. || (H)->type == bfd_link_hash_defweak) \
-. && bfd_is_abs_section ((H)->u.def.section) \
-. && !(H)->rel_from_abs)
-.
-
-Set rel_from_abs to 1 for __ehdr_start which will be converted from
-absolute to section-relative in assign_file_positions_for_load_sections.
-
- PR ld/26869
- * ldelf.c (ldelf_before_allocation): Set rel_from_abs to 1 for
- __ehdr_start.
- * testsuite/ld-i386/i386.exp: Run pr26869.
- * testsuite/ld-i386/pr26869.d: New file.
- * testsuite/ld-i386/pr26869.s: Likewise.
-
-(cherry picked from commit cbd5b99cce073273f668b154d4514e8e7e7ccc51)
----
- ld/ChangeLog | 9 +++++++++
- ld/ldelf.c | 2 ++
- ld/testsuite/ld-i386/i386.exp | 1 +
- ld/testsuite/ld-i386/pr26869.d | 14 ++++++++++++++
- ld/testsuite/ld-i386/pr26869.s | 3 +++
- 5 files changed, 29 insertions(+)
- create mode 100644 ld/testsuite/ld-i386/pr26869.d
- create mode 100644 ld/testsuite/ld-i386/pr26869.s
-
-diff --git a/ld/ldelf.c b/ld/ldelf.c
-index bada3ade2d7..831d032fe56 100644
---- a/ld/ldelf.c
-+++ b/ld/ldelf.c
-@@ -1589,6 +1589,8 @@ ldelf_before_allocation (char *audit, char *depaudit,
- (char *) &ehdr_start->u + sizeof ehdr_start->u.def.next,
- sizeof ehdr_start_save_u);
- ehdr_start->type = bfd_link_hash_defined;
-+ /* It will be converted to section-relative later. */
-+ ehdr_start->rel_from_abs = 1;
- ehdr_start->u.def.section = bfd_abs_section_ptr;
- ehdr_start->u.def.value = 0;
- }
diff --git a/srcpkgs/binutils/patches/fix-libcollector-without-java.patch b/srcpkgs/binutils/patches/fix-libcollector-without-java.patch
new file mode 100644
index 000000000000..54384875f358
--- /dev/null
+++ b/srcpkgs/binutils/patches/fix-libcollector-without-java.patch
@@ -0,0 +1,53 @@
+From 49ddd814ac1071af7c4f45d5f8398b91862f2c7f Mon Sep 17 00:00:00 2001
+From: Vladimir Mezentsev <vladimir.mezentsev@oracle.com>
+Date: Wed, 17 Aug 2022 19:55:23 -0700
+Subject: [PATCH] gprofng: fix bug 29479 Collection fails when built without
+ java support
+
+gprofng/ChangeLog
+2022-08-17 Vladimir Mezentsev <vladimir.mezentsev@oracle.com>
+
+ PR gprofng/29479
+ * libcollector/collector.c: Add #if defined(GPROFNG_JAVA_PROFILING) for
+ java specific code.
+ * libcollector/unwind.c: Likewise.
+---
+ gprofng/libcollector/collector.c | 2 ++
+ gprofng/libcollector/unwind.c | 2 ++
+ 2 files changed, 4 insertions(+)
+
+diff --git a/gprofng/libcollector/collector.c b/gprofng/libcollector/collector.c
+index 93c9d3330de5..ceff2c1caccb 100644
+--- a/gprofng/libcollector/collector.c
++++ b/gprofng/libcollector/collector.c
+@@ -913,8 +913,10 @@ __collector_open_experiment (const char *exp, const char *params, sp_origin_t or
+ __collector_ext_unwind_key_init (1, NULL);
+
+ /* start java attach if suitable */
++#if defined(GPROFNG_JAVA_PROFILING)
+ if (exp_origin == SP_ORIGIN_DBX_ATTACH)
+ __collector_jprofile_start_attach ();
++#endif
+ start_sec_time = CALL_UTIL (time)(NULL);
+ __collector_start_time = collector_interface.getHiResTime ();
+ TprintfT (DBG_LT0, "\t__collector_open_experiment; resetting start_time\n");
+diff --git a/gprofng/libcollector/unwind.c b/gprofng/libcollector/unwind.c
+index 119243788020..f8e11823c81e 100644
+--- a/gprofng/libcollector/unwind.c
++++ b/gprofng/libcollector/unwind.c
+@@ -557,6 +557,7 @@ __collector_get_frame_info (hrtime_t ts, int mode, void *arg)
+ int size = max_frame_size;
+
+ #define MIN(a,b) ((a)<(b)?(a):(b))
++#if defined(GPROFNG_JAVA_PROFILING)
+ /* get Java info */
+ if (__collector_java_mode && __collector_java_asyncgetcalltrace_loaded && context && !pseudo_context)
+ {
+@@ -569,6 +570,7 @@ __collector_get_frame_info (hrtime_t ts, int mode, void *arg)
+ size -= sz;
+ }
+ }
++#endif
+
+ /* get native stack */
+ if (context)
diff --git a/srcpkgs/binutils/patches/ppc64-revert-gnu-attributes.patch b/srcpkgs/binutils/patches/ppc64-revert-gnu-attributes.patch
index 5de937f4fcce..1c208dd8955c 100644
--- a/srcpkgs/binutils/patches/ppc64-revert-gnu-attributes.patch
+++ b/srcpkgs/binutils/patches/ppc64-revert-gnu-attributes.patch
@@ -1,39 +1,24 @@
-From b1faf99f3e546df2cd302bb1ad36a2078224fe8b Mon Sep 17 00:00:00 2001
+From bbf05b742fde518fb97c789b043fe0d3aaf549f0 Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@dereferenced.org>
-Date: Fri, 30 Oct 2020 16:59:48 -0600
+Date: Tue, 21 Sep 2021 14:53:13 +0000
Subject: [PATCH] Revert "PR25882, .gnu.attributes are not checked for shared
libraries"
+This revert is needed to avoid wrongly tagging objects with the incompatible
+IBM long double ABI, which is not supported by musl and will result in
+linking errors if used.
+
This reverts commit a8acd6eeb6dc2cc5460ece90f90ebe36b56b20ba.
---
- bfd/ChangeLog | 6 ------
- bfd/elf32-tic6x.c | 3 ---
- ld/ChangeLog | 6 ------
- ld/ldlang.c | 9 ++++-----
- 4 files changed, 4 insertions(+), 20 deletions(-)
+ bfd/elf32-tic6x.c | 3 ---
+ ld/ldlang.c | 10 ++++------
+ 2 files changed, 4 insertions(+), 9 deletions(-)
-diff --git a/bfd/ChangeLog b/bfd/ChangeLog
-index 9fac12538a..b5461494e8 100644
---- a/bfd/ChangeLog
-+++ b/bfd/ChangeLog
-@@ -1422,12 +1422,6 @@
- accessing root.u.def of symbols. Also check root.u.def.section
- is non-NULL. Reverse tests so as to make the logic positive.
-
--2020-05-01 Alan Modra <amodra@gmail.com>
--
-- PR 25882
-- * elf32-tic6x.c (elf32_tic6x_merge_attributes): Don't transfer
-- Tag_ABI_PIC or Tag_ABI_PID from dynamic objects to the output.
--
- 2020-05-01 Alan Modra <amodra@gmail.com>
-
- PR 25882
diff --git a/bfd/elf32-tic6x.c b/bfd/elf32-tic6x.c
-index b8b916bfd3..91bb6a10b1 100644
+index 5754f3cb860..3ad1d612749 100644
--- a/bfd/elf32-tic6x.c
+++ b/bfd/elf32-tic6x.c
-@@ -3748,9 +3748,6 @@ elf32_tic6x_merge_attributes (bfd *ibfd, struct bfd_link_info *info)
+@@ -3735,9 +3735,6 @@ elf32_tic6x_merge_attributes (bfd *ibfd, struct bfd_link_info *info)
case Tag_ABI_PIC:
case Tag_ABI_PID:
@@ -43,36 +28,20 @@ index b8b916bfd3..91bb6a10b1 100644
if (out_attr[i].i > in_attr[i].i)
out_attr[i].i = in_attr[i].i;
break;
-diff --git a/ld/ChangeLog b/ld/ChangeLog
-index 4eec7d2977..b93452f70c 100644
---- a/ld/ChangeLog
-+++ b/ld/ChangeLog
-@@ -1319,12 +1319,6 @@
- * testsuite/ld-aarch64/farcall-group.d: New test driver.
- * testsuite/ld-aarch64/aarch64-elf.exp: Run the new test.
-
--2020-05-01 Alan Modra <amodra@gmail.com>
--
-- PR 25882
-- * ldlang.c (lang_check): Call bfd_merge_private_bfd_data for
-- shared libraries.
--
- 2020-05-01 Alan Modra <amodra@gmail.com>
-
- * po/BLD-POTFILES.in: Regenerate.
diff --git a/ld/ldlang.c b/ld/ldlang.c
-index 9977195074..173d8ec349 100644
+index 37b64c89ee1..f13beaef9d9 100644
--- a/ld/ldlang.c
+++ b/ld/ldlang.c
-@@ -6972,12 +6972,11 @@ lang_check (void)
+@@ -7071,13 +7071,11 @@ lang_check (void)
bfd_printable_name (input_bfd), input_bfd,
bfd_printable_name (link_info.output_bfd));
}
-
- /* If the input bfd has no contents, it shouldn't set the
- private data of the output bfd. */
-- else if ((input_bfd->flags & DYNAMIC) != 0
-- || bfd_count_sections (input_bfd) != 0)
+- else if (!file->flags.just_syms
+- && ((input_bfd->flags & DYNAMIC) != 0
+- || bfd_count_sections (input_bfd) != 0))
+ else if (bfd_count_sections (input_bfd))
{
+ /* If the input bfd has no contents, it shouldn't set the
@@ -82,5 +51,4 @@ index 9977195074..173d8ec349 100644
/* If we aren't supposed to warn about mismatched input
--
-2.29.2
-
+2.33.0
diff --git a/srcpkgs/binutils/template b/srcpkgs/binutils/template
index 6270f8618c87..c355a5fc8016 100644
--- a/srcpkgs/binutils/template
+++ b/srcpkgs/binutils/template
@@ -1,19 +1,20 @@
# Template file for 'binutils'
pkgname=binutils
-version=2.35.1
-revision=4
+version=2.39
+revision=1
bootstrap=yes
+hostmakedepends="pkgconf"
makedepends="zlib-devel"
short_desc="GNU binary utilities"
maintainer="Enno Boland <gottox@voidlinux.org>"
license="GPL-3.0-or-later"
homepage="http://www.gnu.org/software/binutils/"
distfiles="${GNU_SITE}/$pkgname/$pkgname-$version.tar.xz"
-checksum=3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
+checksum=645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
subpackages="binutils-doc"
if [ "$CHROOT_READY" ]; then
- hostmakedepends="flex perl texinfo"
+ hostmakedepends+=" flex perl texinfo"
makedepends+=" elfutils-devel"
checkdepends="bc"
depends="binutils-doc"
@@ -35,15 +36,21 @@ do_configure() {
local conf
if [ "$CHROOT_READY" ]; then
- conf+=" --with-debuginfod"
+ conf+=" --with-debuginfod --enable-shared"
else
- conf+=" --without-debuginfod --disable-install-libbfd"
+ conf+=" --without-debuginfod --disable-shared --disable-install-libbfd"
fi
if [ "$CROSS_BUILD" ]; then
# we don't want --with-sysroot=${XBPS_CROSS_BASE} like gnu-configure
conf+=" --host=${XBPS_CROSS_TRIPLET} --with-build-sysroot=${XBPS_CROSS_BASE}"
fi
+ # gprofng currently only supports x86 and aarch64 glibc.
+ case "$XBPS_TARGET_MACHINE" in
+ x86_64|i386|aarch64) conf+=" --enable-gprofng" ;;
+ *) conf+=" --disable-gprofng" ;;
+ esac
+
case "$XBPS_TARGET_MACHINE" in
ppc*)
conf+=" --enable-secureplt"
@@ -76,13 +83,14 @@ do_configure() {
--libdir=/usr/lib \
--mandir=/usr/share/man \
--infodir=/usr/share/info \
+ --sysconfdir=/etc \
--disable-werror \
- --disable-shared \
--disable-nls \
--enable-threads \
--enable-plugins \
--enable-relro \
--enable-gold \
+ --enable-new-dtags \
--enable-deterministic-archives \
--enable-64-bit-bfd \
--enable-ld=default \
@@ -142,7 +150,8 @@ binutils-devel_package() {
pkg_install() {
vmove usr/include
vmove "usr/lib/*.a"
- vmove "usr/lib/*.so"
+ vmove "usr/lib/libbfd.so"
+ vmove "usr/lib/libopcodes.so"
}
}
From acebba575df5e434b0b4aa52835b2c1c977970b8 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sat, 5 Nov 2022 11:33:11 -0700
Subject: [PATCH 02/38] gdb: resolve conflict with binutils 2.39
---
srcpkgs/gdb/template | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/gdb/template b/srcpkgs/gdb/template
index 9c5f17ffc519..b666348fea19 100644
--- a/srcpkgs/gdb/template
+++ b/srcpkgs/gdb/template
@@ -1,7 +1,7 @@
# Template file for 'gdb'
pkgname=gdb
version=12.1
-revision=2
+revision=3
build_style=gnu-configure
pycompile_dirs="/usr/share/gdb/python"
configure_args="--disable-werror --disable-nls --with-system-readline
@@ -48,7 +48,8 @@ vopt_conflict debuginfod static
post_install() {
# resolve conflicts with binutils
- rm -r ${DESTDIR}/usr/{include,lib,share/info/bfd.info*}
+ rm -rf ${DESTDIR}/usr/{include,lib}
+ rm -rf ${DESTDIR}/usr/share/info/{bfd,ctf-spec}.info*
}
gdb-common_package() {
From cec0e7bc58b966f36f3510220644199a943c430f Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sat, 5 Nov 2022 11:33:11 -0700
Subject: [PATCH 03/38] gcc: update to 12.2.0.
---
common/shlibs | 10 +--
srcpkgs/gcc/files/gccgo-musl.patch | 71 +++------------
srcpkgs/gcc/files/libgnarl-musl.patch | 18 ++--
srcpkgs/gcc/files/libssp-musl.patch | 10 +--
.../gcc/patches/force-override-clocale.patch | 21 +++++
srcpkgs/gcc/patches/libffi_gnulinux.patch | 11 ---
.../gcc/patches/libgcc-ibm128-no-tag.patch | 10 ++-
srcpkgs/gcc/patches/mips-sgidefs_h.patch | 2 +-
srcpkgs/gcc/template | 87 +++++++++----------
9 files changed, 101 insertions(+), 139 deletions(-)
create mode 100644 srcpkgs/gcc/patches/force-override-clocale.patch
delete mode 100644 srcpkgs/gcc/patches/libffi_gnulinux.patch
diff --git a/common/shlibs b/common/shlibs
index fc5bb4dda7e6..4bb4c7ab1e3b 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -60,7 +60,7 @@ libcc1plugin.so.0 gcc-6.2.1_1
libitm.so.1 libitm-4.7.3_1
liblto_plugin.so.0 gcc-4.7.3_1
libgcc_s.so.1 libgcc-4.4.0_1
-libgo.so.16 libgo-10.2.0_1
+libgo.so.21 libgo-12.2.0_1
libgccjit.so.0 libgccjit-10.2.1pre1_1
libperl.so.5.36 perl-5.36.0_1
libgmp.so.10 gmp-5.0.1_1
@@ -857,8 +857,8 @@ libgdkmm-2.4.so.1 gtkmm2-2.24.0_1
libgtkmm-2.4.so.1 gtkmm2-2.24.0_1
libquadmath.so.0 libquadmath-4.4.0_1
libgfortran.so.5 libgfortran-8.2.0_1
-libgnarl-10.so libada-10.2.0_1
-libgnat-10.so libada-10.2.0_1
+libgnarl-12.so libada-12.2.0_1
+libgnat-12.so libada-12.2.0_1
libwebp.so.7 libwebp-0.6.0_1
libwebpmux.so.3 libwebp-0.6.0_1
libwebpdemux.so.2 libwebp-0.5.0_1
@@ -1710,8 +1710,8 @@ libextractor.so.3 libextractor-1.1_1
libextractor_common.so.1 libextractor-1.1_1
libpano13.so.3 libpano13-2.9.19_1
libubsan.so.1 libsanitizer-8.2.0_1
-libtsan.so.0 libsanitizer-6.3.0_1
-libasan.so.6 libsanitizer-10.2.0_1
+libtsan.so.2 libsanitizer-12.2.0_1
+libasan.so.8 libsanitizer-12.2.0_1
liblsan.so.0 libsanitizer-6.3.0_1
libvtv.so.0 libvtv-6.3.0_1
libatomic.so.1 libatomic-4.9.0_1
diff --git a/srcpkgs/gcc/files/gccgo-musl.patch b/srcpkgs/gcc/files/gccgo-musl.patch
index 9762739615af..12ec68dd8aa3 100644
--- a/srcpkgs/gcc/files/gccgo-musl.patch
+++ b/srcpkgs/gcc/files/gccgo-musl.patch
@@ -53,17 +53,6 @@ URL: https://code.foxkit.us/adelie/packages/tree/master/system/gcc
p := sysMmap(addr, n, prot, flags, fd, off)
if uintptr(p) == _MAP_FAILED {
return nil, errno()
---- a/libgo/go/runtime/signal_gccgo.go
-+++ b/libgo/go/runtime/signal_gccgo.go
-@@ -111,7 +111,7 @@ func getsig(i uint32) uintptr {
- if sigaction(i, nil, &sa) < 0 {
- // On GNU/Linux glibc rejects attempts to call
- // sigaction with signal 32 (SIGCANCEL) or 33 (SIGSETXID).
-- if GOOS == "linux" && (i == 32 || i == 33) {
-+ if GOOS == "linux" && (i == 32 || i == 33 || i == 34) {
- return _SIG_DFL
- }
- throw("sigaction read failure")
--- a/libgo/go/syscall/errstr.go
+++ b/libgo/go/syscall/errstr.go
@@ -5,7 +5,6 @@
@@ -140,55 +129,6 @@ URL: https://code.foxkit.us/adelie/packages/tree/master/system/gcc
plwoff = &lwoff
}
n, err = splice(rfd, plroff, wfd, plwoff, len, flags)
---- a/libgo/mksigtab.sh
-+++ b/libgo/mksigtab.sh
-@@ -82,7 +82,7 @@ checksig _SIGPWR '{_SigNotify, "SIGPWR: power failure restart"}'
- checksig _SIGEMT '{_SigThrow, "SIGEMT: emulate instruction executed"}'
- checksig _SIGINFO '{_SigNotify, "SIGINFO: status request from keyboard"}'
- checksig _SIGTHR '{_SigNotify, "SIGTHR: reserved"}'
--checksig _SIGPOLL '{_SigNotify, "SIGPOLL: pollable event occurred"}'
-+#checksig _SIGPOLL '{_SigNotify, "SIGPOLL: pollable event occurred"}'
- checksig _SIGWAITING '{_SigNotify, "SIGWAITING: reserved signal no longer used by"}'
- checksig _SIGLWP '{_SigNotify, "SIGLWP: reserved signal no longer used by"}'
- checksig _SIGFREEZE '{_SigNotify, "SIGFREEZE: special signal used by CPR"}'
-@@ -95,10 +95,12 @@ checksig _SIGLOST ' {_SigNotify, "SIGLOST: resource lost (Sun); server died (G
-
- # Special handling of signals 32 and 33 on GNU/Linux systems,
- # because they are special to glibc.
-+# Signal 34 is additionally special to Linux systems with musl.
- if test "${GOOS}" = "linux"; then
-- SIGLIST=$SIGLIST"_32__33_"
-+ SIGLIST=$SIGLIST"_32__33__34_"
- echo ' 32: {_SigSetStack + _SigUnblock, "signal 32"}, /* SIGCANCEL; see issue 6997 */'
- echo ' 33: {_SigSetStack + _SigUnblock, "signal 33"}, /* SIGSETXID; see issues 3871, 9400, 12498 */'
-+ echo ' 34: {_SigSetStack + _SigUnblock, "signal 34"}, /* see issue 30062 */'
- fi
-
- if test "${GOOS}" = "aix"; then
---- a/libgo/runtime/go-signal.c 2020-07-23 08:35:19.004402840 +0200
-+++ b/libgo/runtime/go-signal.c 2020-08-09 21:35:54.352886232 +0200
-@@ -224,7 +224,11 @@
- #elif defined(__alpha__) && defined(__linux__)
- ret.sigpc = ((ucontext_t*)(context))->uc_mcontext.sc_pc;
- #elif defined(__PPC__) && defined(__linux__)
-- ret.sigpc = ((ucontext_t*)(context))->uc_mcontext.regs->nip;
-+ #ifdef __PPC64__
-+ ret.sigpc = ((ucontext_t*)(context))->uc_mcontext.gp_regs[32];
-+ #else
-+ ret.sigpc = ((ucontext_t*)(context))->uc_mcontext.gregs[32];
-+ #endif
- #elif defined(__PPC__) && defined(_AIX)
- ret.sigpc = ((ucontext_t*)(context))->uc_mcontext.jmp_context.iar;
- #elif defined(__aarch64__) && defined(__linux__)
-@@ -333,7 +337,7 @@
- runtime_printf("sp %X\n", m->sc_regs[30]);
- runtime_printf("pc %X\n", m->sc_pc);
- }
--#elif defined(__PPC__) && defined(__LITTLE_ENDIAN__) && defined(__linux__)
-+#elif defined(__PPC__) && defined(__LITTLE_ENDIAN__) && defined(__linux__) && defined(__GLIBC__)
- {
- mcontext_t *m = &((ucontext_t*)(context))->uc_mcontext;
- int i;
--- a/libgo/runtime/runtime.h
+++ b/libgo/runtime/runtime.h
@@ -500,10 +500,13 @@ int __go_setcontext(__go_context_t*);
@@ -220,3 +160,14 @@ URL: https://code.foxkit.us/adelie/packages/tree/master/system/gcc
#if defined(HAVE_SYS_UTSNAME_H)
#include <sys/utsname.h>
#endif
+--- a/libgo/go/runtime/os_linux.go
++++ b/libgo/go/runtime/os_linux.go
+@@ -365,7 +365,7 @@ func setThreadCPUProfiler(hz int32) {
+ var sevp _sigevent
+ sevp.sigev_notify = _SIGEV_THREAD_ID
+ sevp.sigev_signo = _SIGPROF
+- *((*int32)(unsafe.Pointer(&sevp._sigev_un))) = int32(mp.procid)
++ *((*int32)(unsafe.Pointer(&sevp.__sev_fields))) = int32(mp.procid)
+ ret := timer_create(_CLOCK_THREAD_CPUTIME_ID, &sevp, &timerid)
+ if ret != 0 {
+ // If we cannot create a timer for this M, leave profileTimerValid false
diff --git a/srcpkgs/gcc/files/libgnarl-musl.patch b/srcpkgs/gcc/files/libgnarl-musl.patch
index 99a734c42c90..91c95949e0e9 100644
--- a/srcpkgs/gcc/files/libgnarl-musl.patch
+++ b/srcpkgs/gcc/files/libgnarl-musl.patch
@@ -5,7 +5,7 @@ Reason: Patch libgnarl to not use function missing from musl.
diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-osinte__linux.ads gcc-8.2.0-new/gcc/ada/libgnarl/s-osinte__linux.ads
--- a/gcc/ada/libgnarl/s-osinte__linux.ads 2018-01-11 00:55:25.000000000 -0800
+++ b/gcc/ada/libgnarl/s-osinte__linux.ads 2018-11-01 16:16:23.372452951 -0700
-@@ -394,12 +394,6 @@ package System.OS_Interface is
+@@ -403,12 +403,6 @@ package System.OS_Interface is
PTHREAD_RWLOCK_PREFER_WRITER_NP : constant := 1;
PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP : constant := 2;
@@ -18,7 +18,7 @@ diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-osinte__linux.ads gcc-8.2.0-new/gcc/ada/l
function pthread_rwlock_init
(mutex : access pthread_rwlock_t;
attr : access pthread_rwlockattr_t) return int;
-@@ -464,11 +458,6 @@ package System.OS_Interface is
+@@ -470,11 +464,6 @@ package System.OS_Interface is
protocol : int) return int;
pragma Import (C, pthread_mutexattr_setprotocol);
@@ -33,7 +33,7 @@ diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-osinte__linux.ads gcc-8.2.0-new/gcc/ada/l
diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-taprop__linux.adb gcc-8.2.0-new/gcc/ada/libgnarl/s-taprop__linux.adb
--- a/gcc/ada/libgnarl/s-taprop__linux.adb 2018-01-11 00:55:25.000000000 -0800
+++ b/gcc/ada/libgnarl/s-taprop__linux.adb 2018-11-13 11:28:36.433964449 -0800
-@@ -202,9 +202,6 @@ package body System.Task_Primitives.Oper
+@@ -198,9 +198,6 @@ package body System.Task_Primitives.Oper
pragma Import
(C, GNAT_pthread_condattr_setup, "__gnat_pthread_condattr_setup");
@@ -43,7 +43,7 @@ diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-taprop__linux.adb gcc-8.2.0-new/gcc/ada/l
-- We do not have pragma Linker_Options ("-lcap"); here, because this
-- library is not present on many Linux systems. 'libcap' is the Linux
-- "capabilities" library, called by __gnat_has_cap_sys_nice.
-@@ -214,38 +211,6 @@ package body System.Task_Primitives.Oper
+@@ -210,38 +207,6 @@ package body System.Task_Primitives.Oper
-- Convert Ada priority to Linux priority. Priorities are 1 .. 99 on
-- GNU/Linux, so we map 0 .. 98 to 1 .. 99.
@@ -76,13 +76,13 @@ diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-taprop__linux.adb gcc-8.2.0-new/gcc/ada/l
- return Ceiling_Support;
- end Get_Ceiling_Support;
-
-- pragma Warnings (Off, "non-static call not allowed in preelaborated unit");
+- pragma Warnings (Off, "non-preelaborable call not allowed*");
- Ceiling_Support : constant Boolean := Get_Ceiling_Support;
-- pragma Warnings (On, "non-static call not allowed in preelaborated unit");
+- pragma Warnings (On, "non-preelaborable call not allowed*");
-- True if the locking policy is Ceiling_Locking, and the current process
-- has permission to use this policy. The process has permission if it is
-- running as 'root', or if the capability was set by the setcap command,
-@@ -348,7 +313,9 @@ package body System.Task_Primitives.Oper
+@@ -344,7 +309,9 @@ package body System.Task_Primitives.Oper
-- Init_Mutex --
----------------
@@ -92,7 +92,7 @@ diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-taprop__linux.adb gcc-8.2.0-new/gcc/ada/l
Mutex_Attr : aliased pthread_mutexattr_t;
Result, Result_2 : C.int;
-@@ -360,16 +327,7 @@ package body System.Task_Primitives.Oper
+@@ -356,16 +323,7 @@ package body System.Task_Primitives.Oper
return Result;
end if;
@@ -110,7 +110,7 @@ diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-taprop__linux.adb gcc-8.2.0-new/gcc/ada/l
Result := pthread_mutexattr_setprotocol
(Mutex_Attr'Access, PTHREAD_PRIO_INHERIT);
pragma Assert (Result = 0);
-@@ -409,11 +367,6 @@ package body System.Task_Primitives.Oper
+@@ -405,11 +363,6 @@ package body System.Task_Primitives.Oper
Result := pthread_rwlockattr_init (RWlock_Attr'Access);
pragma Assert (Result = 0);
diff --git a/srcpkgs/gcc/files/libssp-musl.patch b/srcpkgs/gcc/files/libssp-musl.patch
index b21a2c29e57c..99f248401a1c 100644
--- a/srcpkgs/gcc/files/libssp-musl.patch
+++ b/srcpkgs/gcc/files/libssp-musl.patch
@@ -2,9 +2,9 @@ First part taken from Alpine.
Second part added to prevent gccgo from thinking it can -fsplit-stack on musl.
---- a/gcc/gcc.c
-+++ b/gcc/gcc.c
-@@ -874,10 +874,15 @@ proper position among the other output files. */
+--- a/gcc/gcc.cc
++++ b/gcc/gcc.cc
+@@ -984,10 +984,15 @@ proper position among the other output f
#define LINK_GCC_C_SEQUENCE_SPEC "%G %{!nolibc:%L %G}"
#endif
@@ -22,10 +22,10 @@ Second part added to prevent gccgo from thinking it can -fsplit-stack on musl.
#else
#define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \
"|fstack-protector-strong|fstack-protector-explicit" \
-@@ -1155,7 +1160,7 @@ static const char *cc1_options =
+@@ -1280,7 +1285,7 @@ static const char *cc1_options =
%{-version:--version}\
%{-help=*:--help=%*}\
- %{!fsyntax-only:%{S:%W{o*}%{!o*:-o %b.s}}}\
+ %{!fsyntax-only:%{S:%W{o*}%{!o*:-o %w%b.s}}}\
- %{fsyntax-only:-o %j} %{-param*}\
+ %{fsyntax-only:-o %j} %{-param*} " NO_SSP_SPEC "\
%{coverage:-fprofile-arcs -ftest-coverage}\
diff --git a/srcpkgs/gcc/patches/force-override-clocale.patch b/srcpkgs/gcc/patches/force-override-clocale.patch
new file mode 100644
index 000000000000..8af8a7150dd9
--- /dev/null
+++ b/srcpkgs/gcc/patches/force-override-clocale.patch
@@ -0,0 +1,21 @@
+This is necessary when building a gnu cross compiler for a musl target.
+Otherwise, even if clocale manually is set to gnu, it will be reset to generic
+when the test is performed using AC_EGREP_CPP().
+--- a/libstdc++-v3/configure
++++ b/libstdc++-v3/configure
+@@ -16493,6 +16493,7 @@ fi
+
+ # Sanity check model, and test for special functionality.
+ if test $enable_clocale_flag = gnu; then
++ if test $enable_clocale = auto; then
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h. */
+
+@@ -16509,6 +16510,7 @@ else
+ enable_clocale_flag=generic
+ fi
+ rm -f conftest*
++ fi
+
+
+ # Set it to scream when it hurts.
diff --git a/srcpkgs/gcc/patches/libffi_gnulinux.patch b/srcpkgs/gcc/patches/libffi_gnulinux.patch
deleted file mode 100644
index 98245bd5be1a..000000000000
--- a/srcpkgs/gcc/patches/libffi_gnulinux.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/libffi/src/closures.c
-+++ b/libffi/src/closures.c
-@@ -34,7 +34,7 @@
- #include <ffi_common.h>
-
- #if !FFI_MMAP_EXEC_WRIT && !FFI_EXEC_TRAMPOLINE_TABLE
--# if __gnu_linux__ && !defined(__ANDROID__)
-+# if __linux__ && !defined(__ANDROID__)
- /* This macro indicates it may be forbidden to map anonymous memory
- with both write and execute permission. Code compiled when this
- option is defined will attempt to map such pages once, but if it
diff --git a/srcpkgs/gcc/patches/libgcc-ibm128-no-tag.patch b/srcpkgs/gcc/patches/libgcc-ibm128-no-tag.patch
index bdf5c75d917d..26d80356ad0d 100644
--- a/srcpkgs/gcc/patches/libgcc-ibm128-no-tag.patch
+++ b/srcpkgs/gcc/patches/libgcc-ibm128-no-tag.patch
@@ -29,10 +29,14 @@ diff --git a/libgcc/config/rs6000/t-linux b/libgcc/config/rs6000/t-linux
index 4f6d4c4..fa93bb6 100644
--- a/libgcc/config/rs6000/t-linux
+++ b/libgcc/config/rs6000/t-linux
-@@ -1,3 +1,3 @@
+@@ -1,6 +1,6 @@
SHLIB_MAPFILES += $(srcdir)/config/rs6000/libgcc-glibc.ver
--HOST_LIBGCC2_CFLAGS += -mlong-double-128 -mno-minimal-toc
-+HOST_LIBGCC2_CFLAGS += -mlong-double-128 -mno-gnu-attribute -mno-minimal-toc
+-HOST_LIBGCC2_CFLAGS += -mlong-double-128
++HOST_LIBGCC2_CFLAGS += -mlong-double-128 -mno-gnu-attribute
+
+ # This is a way of selecting -mcmodel=small for ppc64, which gives
+ # smaller and faster libgcc code. Directly specifying -mcmodel=small
+
--
2.24.0
diff --git a/srcpkgs/gcc/patches/mips-sgidefs_h.patch b/srcpkgs/gcc/patches/mips-sgidefs_h.patch
index dddfe10e8c06..cd0ae7a380df 100644
--- a/srcpkgs/gcc/patches/mips-sgidefs_h.patch
+++ b/srcpkgs/gcc/patches/mips-sgidefs_h.patch
@@ -3,7 +3,7 @@
@@ -42,7 +42,7 @@
#define _MIPS_SIM_NABI32 2
#define _MIPS_SIM_ABI64 3
- #elif !defined(__OpenBSD__)
+ #elif !defined(__OpenBSD__) && !defined(__FreeBSD__)
-# include <sgidefs.h>
+# include <asm/sgidefs.h>
#endif
diff --git a/srcpkgs/gcc/template b/srcpkgs/gcc/template
index ab3643de4f98..a20af7c0ef2e 100644
--- a/srcpkgs/gcc/template
+++ b/srcpkgs/gcc/template
@@ -3,18 +3,14 @@
# which use the version number.
pkgname=gcc
-# we are using a 10-stable git snapshot alpine is using in order
-# to get regression fixes not yet incorporate into a stable release
-# it should be possible to switch back to stable with 10.3 or 11
-version=10.2.1pre1
-revision=3
-_patchver="${version%pre*}"
-_minorver="${_patchver%.*}"
+version=12.2.0
+revision=1
+_minorver="${version%.*}"
_majorver="${_minorver%.*}"
-_gmp_version=6.2.0
+_gmp_version=6.2.1
_mpfr_version=4.1.0
-_mpc_version=1.1.0
-_isl_version=0.21
+_mpc_version=1.2.1
+_isl_version=0.24
create_wrksrc=yes
short_desc="GNU Compiler Collection"
maintainer="Enno Boland <gottox@voidlinux.org>"
@@ -22,16 +18,16 @@ homepage="http://gcc.gnu.org"
license="GFDL-1.2-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
# *-musl builders have issues fetching https://ftp.gnu.org/gnu/mpc/mpc-1.1.0.tar.gz
distfiles="
- https://dev.alpinelinux.org/~nenolod/gcc-${version/pre/_pre}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${version}/gcc-${version}.tar.xz
https://gmplib.org/download/gmp/gmp-${_gmp_version}.tar.xz
${GNU_SITE}/mpfr/mpfr-${_mpfr_version}.tar.xz
${GNU_SITE}/mpc/mpc-${_mpc_version}.tar.gz
${SOURCEFORGE_SITE}/libisl/isl-${_isl_version}.tar.bz2"
-checksum="772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 258e6cd51b3fbdfc185c716d55f82c08aff57df0c6fbd143cf6ed561267a1526
+checksum="e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
+ fd4829912cddd12f84181c3451cc752be224643e87fac497b69edddadc49b4f2
0c98a3f1732ff6ca4ea690552079da9c597872d30e96ec28414ee23c95558a7f
- 6985c538143c1208dcb1ac42cedad6ff52e267b47e5f970183a3e75125b43c2e
- d18ca11f8ad1a39ab6d03d3dcb3365ab416720fcb65b42d69f34f51bf0a0e859"
+ 17503d2c395dfcf106b622dc142683c1199431d095367c6aacba6eec30340459
+ fcf78dd9656c10eb8cf9fbd5f59a0b6b01386205fe1934b3b287a0a1898145c0"
nopie=yes
lib32disabled=yes
@@ -52,8 +48,11 @@ if [ "$CHROOT_READY" ]; then
hostmakedepends="tar texinfo perl flex"
else
_have_gccgo=no
+ # libzstd fails to link in bootstrap with glibc 2.36
+ # when zlib has been compiled with glibc 2.32.
+ LDFLAGS="-lzstd -pthread"
fi
-makedepends="zlib-devel"
+makedepends="zlib-devel libzstd-devel"
depends="binutils libgcc-devel-${version}_${revision}
libstdc++-devel-${version}_${revision} libssp-devel-${version}_${revision}"
checkdepends="dejagnu"
@@ -70,13 +69,13 @@ if [ "$build_option_gnatboot" ]; then
case "$XBPS_TARGET_MACHINE" in
x86_64)
_gnat_tarball="gnat-gpl-2017-x86_64-linux-bin.tar.gz"
- distfiles+=" http://mirrors.cdn.adacore.com/art/591c6d80c7a447af2deed1d7>$_gnat_tarball"
+ distfiles+=" https://community.download.adacore.com/v1/9682e2e1f2f232ce03fe21d77b14c37a0de5649b?filename=$_gnat_tarball>$_gnat_tarball"
checksum+=" b942bcac20dea39748b39f8b624d9619f60a8dee2e8195dbe3829c835b0956e6"
build_options_default="gnatboot"
;;
i686)
_gnat_tarball="gnat-gpl-2014-x86-linux-bin.tar.gz"
- distfiles+=" http://mirrors.cdn.adacore.com/art/564b3e9dc8e196b040fbe248>$_gnat_tarball"
+ distfiles+=" https://community.download.adacore.com/v1/c5e9e6fdff5cb77ed90cf8c62536653e27c0bed6?filename=$_gnat_tarball>$_gnat_tarball"
checksum+=" 3b693510f5d22a240abb3034934c1adbd80ccd6e4f61a4f491cc408fdfd9c042"
build_options_default="gnatboot"
;;
@@ -155,8 +154,8 @@ if [ "$CROSS_BUILD" ]; then
fi
post_extract() {
- mv gcc-${version/pre/_pre}/* gcc-${version/pre/_pre}/.??* .
- rmdir gcc-${version/pre/_pre}
+ mv gcc-${version}/* gcc-${version}/.??* .
+ rmdir gcc-${version}
mv gmp-${_gmp_version} gmp
mv mpfr-${_mpfr_version} mpfr
mv mpc-${_mpc_version} mpc
@@ -186,9 +185,9 @@ pre_configure() {
sed -i 's@\./fixinc\.sh@-c true@' gcc/Makefile.in
if [ "$XBPS_TARGET_LIBC" = musl ]; then
- patch -p1 -i ${FILESDIR}/libgnarl-musl.patch
- patch -p1 -i ${FILESDIR}/libssp-musl.patch
- patch -p1 -i ${FILESDIR}/gccgo-musl.patch
+ for p in ${FILESDIR}/*-musl.patch; do
+ patch -p1 -i $p
+ done
fi
}
do_configure() {
@@ -343,16 +342,16 @@ do_install() {
# Make version a symlink of major version to make all versions
# from the same series work automagically.
- mv ${DESTDIR}/usr/lib/gcc/${_triplet}/${_patchver} \
+ mv ${DESTDIR}/usr/lib/gcc/${_triplet}/${version} \
${DESTDIR}/usr/lib/gcc/${_triplet}/${_minorver}
ln -sfr ${DESTDIR}/usr/lib/gcc/${_triplet}/${_minorver} \
- ${DESTDIR}/usr/lib/gcc/${_triplet}/${_patchver}
+ ${DESTDIR}/usr/lib/gcc/${_triplet}/${version}
# Ditto for c++ headers.
- mv ${DESTDIR}/usr/include/c++/${_patchver} \
+ mv ${DESTDIR}/usr/include/c++/${version} \
${DESTDIR}/usr/include/c++/${_minorver}
ln -sfr ${DESTDIR}/usr/include/c++/${_minorver} \
- ${DESTDIR}/usr/include/c++/${_patchver}
+ ${DESTDIR}/usr/include/c++/${version}
# cc symlink
ln -sfr ${DESTDIR}/usr/bin/gcc ${DESTDIR}/usr/bin/cc
@@ -361,7 +360,7 @@ do_install() {
# lto plugin symlink
vmkdir usr/lib/bfd-plugins
- ln -sfr ${DESTDIR}/usr/lib/gcc/${_triplet}/${_patchver}/liblto_plugin.so \
+ ln -sfr ${DESTDIR}/usr/lib/gcc/${_triplet}/${version}/liblto_plugin.so \
${DESTDIR}/usr/lib/bfd-plugins
# Remove "fixed" header
@@ -372,13 +371,9 @@ do_install() {
rm -f ${DESTDIR}/usr/lib/libffi*
rm -f ${DESTDIR}/usr/share/man/man3/ffi*
- # Remove all python scripts in libdir.
- rm -f ${DESTDIR}/usr/lib/*.py
-
- # Remove more python stuff.
- if [ -d ${DESTDIR}/usr/share/gcc-${_patchver}/python ]; then
- rm -rf ${DESTDIR}/usr/share/gcc-${_patchver}/python
- fi
+ # Move libstdc++ gdb helpers to location where gdb can autoload them
+ mkdir -p ${DESTDIR}/usr/share/gdb/auto-load/usr/lib
+ mv ${DESTDIR}/usr/lib/*.py ${DESTDIR}/usr/share/gdb/auto-load/usr/lib
# Install c89 and c99 wrappers and its manpages, from NetBSD.
for f in c89 c99; do
@@ -397,7 +392,7 @@ gcc-ada_package() {
depends="gcc>=${_minorver} libada-devel>=${_minorver}"
short_desc+=" - Ada compiler frontend"
pkg_install() {
- for f in gnat{,bind,chop,clean,find,kr,link,ls,make,name,prep,xref}; do
+ for f in gnat{,bind,chop,clean,kr,link,ls,make,name,prep}; do
vmove usr/bin/${f}
done
}
@@ -450,7 +445,7 @@ gcc-fortran_package() {
if [ "$CROSS_BUILD" ]; then
# A number of OMP modules are not built when cross
# compiling gcc. Copy them from the cross compiler.
- local src="/usr/lib/gcc/${_triplet}/${_patchver}/finclude"
+ local src="/usr/lib/gcc/${_triplet}/${version}/finclude"
local dst="usr/lib/gcc/${_triplet}/${_minorver}/finclude"
for f in omp_lib.f90 omp_lib.h omp_lib.mod omp_lib_kinds.mod \
openacc.f90 openacc.mod openacc_kinds.mod openacc_lib.h; do
@@ -517,7 +512,7 @@ libgfortran_package() {
short_desc+=" - Fortran library"
pkg_install() {
vmove "usr/lib/libgfortran.so*"
- vlicense ${wrksrc}/COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
+ vlicense COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
}
}
@@ -538,7 +533,7 @@ libgo_package() {
nostrip=yes
pkg_install() {
vmove "usr/lib/libgo.so*"
- vlicense ${wrksrc}/COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
+ vlicense COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
}
}
@@ -554,7 +549,7 @@ libobjc_package() {
short_desc+=" - Objective-C library"
pkg_install() {
vmove "usr/lib/libobjc.so*"
- vlicense ${wrksrc}/COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
+ vlicense COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
}
}
@@ -573,7 +568,7 @@ libquadmath_package() {
short_desc+=" - quadmath library"
pkg_install() {
vmove "usr/lib/libquadmath.so*"
- vlicense ${wrksrc}/COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
+ vlicense COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
}
}
@@ -615,7 +610,7 @@ libgcc_package() {
noverifyrdeps=yes
pkg_install() {
vmove "usr/lib/libgcc_s.so*"
- vlicense ${wrksrc}/COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
+ vlicense COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
}
}
@@ -646,7 +641,7 @@ libgomp_package() {
short_desc+=" - OpenMP v4.0 library"
pkg_install() {
vmove "usr/lib/libgomp*.so.*"
- vlicense ${wrksrc}/COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
+ vlicense COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
}
}
@@ -701,7 +696,7 @@ libssp_package() {
short_desc+=" - SSP (StackSmashingProtection) library"
pkg_install() {
vmove "usr/lib/libssp.so*"
- vlicense ${wrksrc}/COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
+ vlicense COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
}
}
@@ -718,7 +713,9 @@ libstdc++-devel_package() {
libstdc++_package() {
short_desc+=" - Standard C++ Library"
pkg_install() {
+ vmove usr/share/gdb
+ vmove usr/share/gcc-${version}/python
vmove "usr/lib/libstdc++.so*"
- vlicense ${wrksrc}/COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
+ vlicense COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
}
}
From 906dec0220945f28007248e2412f4b7b97eda875 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sat, 5 Nov 2022 11:33:11 -0700
Subject: [PATCH 04/38] libtool: rebuild for gcc 12
---
srcpkgs/libtool/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/libtool/template b/srcpkgs/libtool/template
index fc5c53a9c3e9..aebad9294eef 100644
--- a/srcpkgs/libtool/template
+++ b/srcpkgs/libtool/template
@@ -1,7 +1,7 @@
# Template file for 'libtool'
pkgname=libtool
version=2.4.7
-revision=1
+revision=2
build_style=gnu-configure
hostmakedepends="texinfo perl automake help2man xz"
depends="tar sed"
From 892953565784a92ca842ced10998afe26edaa4e4 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sat, 5 Nov 2022 11:33:12 -0700
Subject: [PATCH 05/38] libiberty-devel: update to 20220713.
---
srcpkgs/libiberty-devel/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/libiberty-devel/template b/srcpkgs/libiberty-devel/template
index 7e01bbb851fd..d9618e3806ba 100644
--- a/srcpkgs/libiberty-devel/template
+++ b/srcpkgs/libiberty-devel/template
@@ -1,6 +1,6 @@
# Template file for 'libiberty-devel'
pkgname=libiberty-devel
-version=20210106
+version=20220713
revision=1
build_wrksrc=libiberty
build_style=gnu-configure
@@ -10,7 +10,7 @@ maintainer="Orphaned <orphan@voidlinux.org>"
license="GPL-3.0-or-later"
homepage="http://gcc.gnu.org/"
distfiles="http://deb.debian.org/debian/pool/main/libi/libiberty/libiberty_${version}.orig.tar.xz"
-checksum=9df153d69914c0f5a9145e0abbb248e72feebab6777c712a30f1c3b8c19047d4
+checksum=b59050f48c8a0f9c9e6fba5d17c7a4f11d1329de0c0dca7331b767a6d2bbe8d9
conflicts="binutils-devel<=2.35.1_3"
CFLAGS="-fPIC"
From 590dbfefeaaad3d19e0537d55859734f4605f0b2 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sat, 5 Nov 2022 11:33:12 -0700
Subject: [PATCH 06/38] glibc: update to 2.36.
---
common/shlibs | 60 ++--
...e-hash-style-both-for-building-glibc.patch | 51 ++++
.../glibc/patches/glibc-c-utf8-locale.patch | 286 ------------------
srcpkgs/glibc/template | 66 ++--
4 files changed, 109 insertions(+), 354 deletions(-)
create mode 100644 srcpkgs/glibc/patches/0001-Revert-Do-not-use-hash-style-both-for-building-glibc.patch
delete mode 100644 srcpkgs/glibc/patches/glibc-c-utf8-locale.patch
diff --git a/common/shlibs b/common/shlibs
index 4bb4c7ab1e3b..5a0ad39c8da8 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -17,38 +17,38 @@
# one (order top->bottom) is preferred over the next ones.
#
libc.so musl-1.1.24_7
-libc.so.6 glibc-2.32_1
-libm.so.6 glibc-2.32_1
-libpthread.so.0 glibc-2.32_1
-librt.so.1 glibc-2.32_1
-libdl.so.2 glibc-2.32_1
-ld-linux-x86-64.so.2 glibc-2.32_1 x86_64
-ld-linux.so.2 glibc-2.32_1 i686
-ld-linux.so.3 glibc-2.32_1 armv5tel
-ld-linux-aarch64.so.1 glibc-2.32_1 aarch64
-ld64.so.2 glibc-2.32_1 ppc64
-ld.so.1 glibc-2.32_1 mips
-ld.so.1 glibc-2.32_1 ppc
-ld-linux-armhf.so.3 glibc-2.32_1
-libresolv.so.2 glibc-2.32_1
-libanl.so.1 glibc-2.32_1
-libthread_db.so.1 glibc-2.32_1
-libutil.so.1 glibc-2.32_1
-libnsl.so.1 glibc-2.32_1
-libnss_db.so.2 glibc-2.32_1
-libnss_files.so.2 glibc-2.32_1
-libnss_compat.so.2 glibc-2.32_1
-libnss_dns.so.2 glibc-2.32_1
-libnss_hesiod.so.2 glibc-2.32_1
-libcrypt.so.1 glibc-2.32_1
-libBrokenLocale.so.1 glibc-2.32_1
+libc.so.6 glibc-2.36_1
+libm.so.6 glibc-2.36_1
+libpthread.so.0 glibc-2.36_1
+librt.so.1 glibc-2.36_1
+libdl.so.2 glibc-2.36_1
+ld-linux-x86-64.so.2 glibc-2.36_1 x86_64
+ld-linux.so.2 glibc-2.36_1 i686
+ld-linux.so.3 glibc-2.36_1 armv5tel
+ld-linux-aarch64.so.1 glibc-2.36_1 aarch64
+ld64.so.2 glibc-2.36_1 ppc64
+ld.so.1 glibc-2.36_1 mips
+ld.so.1 glibc-2.36_1 ppc
+ld-linux-armhf.so.3 glibc-2.36_1
+libresolv.so.2 glibc-2.36_1
+libanl.so.1 glibc-2.36_1
+libthread_db.so.1 glibc-2.36_1
+libutil.so.1 glibc-2.36_1
+libnsl.so.1 glibc-2.36_1
+libnss_db.so.2 glibc-2.36_1
+libnss_files.so.2 glibc-2.36_1
+libnss_compat.so.2 glibc-2.36_1
+libnss_dns.so.2 glibc-2.36_1
+libnss_hesiod.so.2 glibc-2.36_1
+libcrypt.so.1 glibc-2.36_1
+libBrokenLocale.so.1 glibc-2.36_1
libSimGearCore.so.2020.3.13 simgear-2020.3.13_1
libSimGearScene.so.2020.3.13 simgear-2020.3.13_1
-libmemusage.so glibc-2.32_1
-libSegFault.so glibc-2.32_1
-libpcprofile.so glibc-2.32_1
-libcidn.so.1 glibc-2.32_1
-libmvec.so.1 glibc-2.32_1
+libmemusage.so glibc-2.36_1
+libSegFault.so glibc-2.36_1
+libpcprofile.so glibc-2.36_1
+libcidn.so.1 glibc-2.36_1
+libmvec.so.1 glibc-2.36_1
libcddgmp.so.0 cddlib-0.94m_1
libcdd.so.0 cddlib-0.94m_1
libz.so.1 zlib-1.2.3_1
diff --git a/srcpkgs/glibc/patches/0001-Revert-Do-not-use-hash-style-both-for-building-glibc.patch b/srcpkgs/glibc/patches/0001-Revert-Do-not-use-hash-style-both-for-building-glibc.patch
new file mode 100644
index 000000000000..9c5553e92609
--- /dev/null
+++ b/srcpkgs/glibc/patches/0001-Revert-Do-not-use-hash-style-both-for-building-glibc.patch
@@ -0,0 +1,51 @@
+Temporary workaround for EAC bug.
+
+See: https://sourceware.org/bugzilla/show_bug.cgi?id=29456
+
+From 8e90e2cc5e57d7ca3a40602d278e9642a8b66716 Mon Sep 17 00:00:00 2001
+From: oreo639 <oreo6391@gmail.com>
+Date: Tue, 13 Sep 2022 14:30:35 -0700
+Subject: [PATCH] Revert "Do not use --hash-style=both for building glibc
+ shared objects"
+
+This reverts commit e47de5cb2d4dbecb58f569ed241e8e95c568f03c.
+---
+ Makeconfig | 9 +++++++++
+ Makerules | 7 +++++++
+ 5 files changed, 61 insertions(+)
+
+diff --git a/Makeconfig b/Makeconfig
+index ba70321af1..e2131d4389 100644
+--- a/Makeconfig
++++ b/Makeconfig
+@@ -371,6 +371,13 @@ dt-relr-ldflag =
+ no-dt-relr-ldflag =
+ endif
+
++# For the time being we unconditionally use 'both'. At some time we
++# should declare statically linked code as 'out of luck' and compile
++# with --hash-style=gnu only.
++hashstyle-LDFLAGS = -Wl,--hash-style=both
++LDFLAGS.so += $(hashstyle-LDFLAGS)
++LDFLAGS-rtld += $(hashstyle-LDFLAGS)
++
+ ifeq (no,$(build-pie-default))
+ pie-default = $(no-pie-ccflag)
+ else # build-pie-default
+diff --git a/Makerules b/Makerules
+index d1e139d03c..44134e37ce 100644
+--- a/Makerules
++++ b/Makerules
+@@ -558,6 +558,9 @@ $(common-objpfx)shlib.lds: $(common-objpfx)config.make $(..)Makerules
+ -Wl,--verbose 2>/dev/null | \
+ sed > $@T \
+ -e '/^=========/,/^=========/!d;/^=========/d' \
++ -e 's/^.*\.gnu\.hash[ ]*:.*$$/ .note.ABI-tag : { *(.note.ABI-tag) } &/' \
++ -e '/^[ ]*\.hash[ ]*:.*$$/{h;d;}' \
++ -e '/DATA_SEGMENT_ALIGN/{H;g}' \
+ -e 's/^.*\*(\.dynbss).*$$/& \
+ PROVIDE(__start___libc_freeres_ptrs = .); \
+ *(__libc_freeres_ptrs) \
+--
+2.37.3
+
diff --git a/srcpkgs/glibc/patches/glibc-c-utf8-locale.patch b/srcpkgs/glibc/patches/glibc-c-utf8-locale.patch
deleted file mode 100644
index 7215e1558b62..000000000000
--- a/srcpkgs/glibc/patches/glibc-c-utf8-locale.patch
+++ /dev/null
@@ -1,286 +0,0 @@
-Short description: Add C.UTF-8 support.
-Author(s): Fedora glibc team <glibc@lists.fedoraproject.org>
-Origin: PATCH
-Upstream status: not-submitted
-
-This patch needs to upstream as part of Carlos O'Donell
-<carlos@redhat.com>'s work on enabling upstream C.UTF-8 support. This
-work is currently blocked on cleaning up the test results to prove that
-full code-point sorting is working as intended.
-
-Note that this patch does not provide full code-point sorting as
-expected.
-
-This patch needs to upstream as soon as possible since it would be nice
-to have this in F29 and fixed.
-
-From 2eda7b462b415105f5a05c1323372d4e39d46439 Mon Sep 17 00:00:00 2001
-From: Mike FABIAN <mfabian@redhat.com>
-Date: Mon, 10 Aug 2015 15:58:12 +0200
-Subject: [PATCH] Add a C.UTF-8 locale
-
----
- localedata/SUPPORTED | 1 +
- localedata/locales/C | 238 +++++++++++++++++++++++++++++++++++++++++++++++++++
- 2 files changed, 239 insertions(+)
- create mode 100644 localedata/locales/C
-
-diff --git a/localedata/SUPPORTED b/localedata/SUPPORTED
-index 8ca023e..2a78391 100644
---- a/localedata/SUPPORTED
-+++ b/localedata/SUPPORTED
-@@ -1,6 +1,7 @@
- # This file names the currently supported and somewhat tested locales.
- # If you have any additions please file a glibc bug report.
- SUPPORTED-LOCALES=\
-+C.UTF-8/UTF-8 \
- aa_DJ.UTF-8/UTF-8 \
- aa_DJ/ISO-8859-1 \
- aa_ER/UTF-8 \
-diff --git a/localedata/locales/C b/localedata/locales/C
-new file mode 100644
-index 0000000..fdf460e
---- /dev/null
-+++ b/localedata/locales/C
-@@ -0,0 +1,238 @@
-+escape_char /
-+comment_char %
-+% Locale for C locale in UTF-8
-+
-+LC_IDENTIFICATION
-+title "C locale"
-+source ""
-+address ""
-+contact ""
-+email "mfabian@redhat.com"
-+tel ""
-+fax ""
-+language "C"
-+territory ""
-+revision "1.0"
-+date "2015-08-10"
-+%
-+category "i18n:2012";LC_IDENTIFICATION
-+category "i18n:2012";LC_CTYPE
-+category "i18n:2012";LC_COLLATE
-+category "i18n:2012";LC_TIME
-+category "i18n:2012";LC_NUMERIC
-+category "i18n:2012";LC_MONETARY
-+category "i18n:2012";LC_MESSAGES
-+category "i18n:2012";LC_PAPER
-+category "i18n:2012";LC_NAME
-+category "i18n:2012";LC_ADDRESS
-+category "i18n:2012";LC_TELEPHONE
-+category "i18n:2012";LC_MEASUREMENT
-+END LC_IDENTIFICATION
-+
-+LC_CTYPE
-+copy "i18n"
-+
-+translit_start
-+include "translit_combining";""
-+translit_end
-+
-+END LC_CTYPE
-+
-+LC_COLLATE
-+order_start forward
-+<U0000>
-+..
-+<UFFFF>
-+<U10000>
-+..
-+<U1FFFF>
-+<U20000>
-+..
-+<U2FFFF>
-+<UE0000>
-+..
-+<UEFFFF>
-+<UF0000>
-+..
-+<UFFFFF>
-+<U100000>
-+..
-+<U10FFFF>
-+UNDEFINED
-+order_end
-+END LC_COLLATE
-+
-+LC_MONETARY
-+% This is the 14652 i18n fdcc-set definition for
-+% the LC_MONETARY category
-+% (except for the int_curr_symbol and currency_symbol, they are empty in
-+% the 14652 i18n fdcc-set definition and also empty in
-+% glibc/locale/C-monetary.c. But localedef complains in that case).
-+%
-+% Using "USD" for int_curr_symbol. But maybe "XXX" would be better?
-+% XXX is "No currency" (https://en.wikipedia.org/wiki/ISO_4217)
-+int_curr_symbol "<U0055><U0053><U0044><U0020>"
-+% Using "$" for currency_symbol. But maybe <U00A4> would be better?
-+% U+00A4 is the "generic currency symbol"
-+% (https://en.wikipedia.org/wiki/Currency_sign_%28typography%29)
-+currency_symbol "<U0024>"
-+mon_decimal_point "<U002E>"
-+mon_thousands_sep ""
-+mon_grouping -1
-+positive_sign ""
-+negative_sign "<U002D>"
-+int_frac_digits -1
-+frac_digits -1
-+p_cs_precedes -1
-+int_p_sep_by_space -1
-+p_sep_by_space -1
-+n_cs_precedes -1
-+int_n_sep_by_space -1
-+n_sep_by_space -1
-+p_sign_posn -1
-+n_sign_posn -1
-+%
-+END LC_MONETARY
-+
-+LC_NUMERIC
-+% This is the POSIX Locale definition for
-+% the LC_NUMERIC category.
-+%
-+decimal_point "<U002E>"
-+thousands_sep ""
-+grouping -1
-+END LC_NUMERIC
-+
-+LC_TIME
-+% This is the POSIX Locale definition for
-+% the LC_TIME category.
-+%
-+% Abbreviated weekday names (%a)
-+abday "<U0053><U0075><U006E>";"<U004D><U006F><U006E>";/
-+ "<U0054><U0075><U0065>";"<U0057><U0065><U0064>";/
-+ "<U0054><U0068><U0075>";"<U0046><U0072><U0069>";/
-+ "<U0053><U0061><U0074>"
-+
-+% Full weekday names (%A)
-+day "<U0053><U0075><U006E><U0064><U0061><U0079>";/
-+ "<U004D><U006F><U006E><U0064><U0061><U0079>";/
-+ "<U0054><U0075><U0065><U0073><U0064><U0061><U0079>";/
-+ "<U0057><U0065><U0064><U006E><U0065><U0073><U0064><U0061><U0079>";/
-+ "<U0054><U0068><U0075><U0072><U0073><U0064><U0061><U0079>";/
-+ "<U0046><U0072><U0069><U0064><U0061><U0079>";/
-+ "<U0053><U0061><U0074><U0075><U0072><U0064><U0061><U0079>"
-+
-+% Abbreviated month names (%b)
-+abmon "<U004A><U0061><U006E>";"<U0046><U0065><U0062>";/
-+ "<U004D><U0061><U0072>";"<U0041><U0070><U0072>";/
-+ "<U004D><U0061><U0079>";"<U004A><U0075><U006E>";/
-+ "<U004A><U0075><U006C>";"<U0041><U0075><U0067>";/
-+ "<U0053><U0065><U0070>";"<U004F><U0063><U0074>";/
-+ "<U004E><U006F><U0076>";"<U0044><U0065><U0063>"
-+
-+% Full month names (%B)
-+mon "<U004A><U0061><U006E><U0075><U0061><U0072><U0079>";/
-+ "<U0046><U0065><U0062><U0072><U0075><U0061><U0072><U0079>";/
-+ "<U004D><U0061><U0072><U0063><U0068>";/
-+ "<U0041><U0070><U0072><U0069><U006C>";/
-+ "<U004D><U0061><U0079>";/
-+ "<U004A><U0075><U006E><U0065>";/
-+ "<U004A><U0075><U006C><U0079>";/
-+ "<U0041><U0075><U0067><U0075><U0073><U0074>";/
-+ "<U0053><U0065><U0070><U0074><U0065><U006D><U0062><U0065><U0072>";/
-+ "<U004F><U0063><U0074><U006F><U0062><U0065><U0072>";/
-+ "<U004E><U006F><U0076><U0065><U006D><U0062><U0065><U0072>";/
-+ "<U0044><U0065><U0063><U0065><U006D><U0062><U0065><U0072>"
-+
-+% Week description, consists of three fields:
-+% 1. Number of days in a week.
-+% 2. Gregorian date that is a first weekday (19971130 for Sunday, 19971201 for Monday).
-+% 3. The weekday number to be contained in the first week of the year.
-+%
-+% ISO 8601 conforming applications should use the values 7, 19971201 (a
-+% Monday), and 4 (Thursday), respectively.
-+week 7;19971201;4
-+first_weekday 1
-+first_workday 1
-+
-+% Appropriate date and time representation (%c)
-+% "%a %b %e %H:%M:%S %Y"
-+d_t_fmt "<U0025><U0061><U0020><U0025><U0062><U0020><U0025><U0065><U0020><U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053><U0020><U0025><U0059>"
-+
-+% Appropriate date representation (%x)
-+% "%m/%d/%y"
-+d_fmt "<U0025><U006D><U002F><U0025><U0064><U002F><U0025><U0079>"
-+
-+% Appropriate time representation (%X)
-+% "%H:%M:%S"
-+t_fmt "<U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053>"
-+
-+% Appropriate AM/PM time representation (%r)
-+% "%I:%M:%S %p"
-+t_fmt_ampm "<U0025><U0049><U003A><U0025><U004D><U003A><U0025><U0053><U0020><U0025><U0070>"
-+
-+% Equivalent of AM/PM (%p) "AM"/"PM"
-+%
-+am_pm "<U0041><U004D>";"<U0050><U004D>"
-+
-+% Appropriate date representation (date(1)) "%a %b %e %H:%M:%S %Z %Y"
-+date_fmt "<U0025><U0061><U0020><U0025><U0062><U0020><U0025><U0065><U0020><U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053><U0020><U0025><U005A><U0020><U0025><U0059>"
-+END LC_TIME
-+
-+LC_MESSAGES
-+% This is the POSIX Locale definition for
-+% the LC_NUMERIC category.
-+%
-+yesexpr "<U005E><U005B><U0079><U0059><U005D>"
-+noexpr "<U005E><U005B><U006E><U004E><U005D>"
-+yesstr "<U0059><U0065><U0073>"
-+nostr "<U004E><U006F>"
-+END LC_MESSAGES
-+
-+LC_PAPER
-+% This is the ISO/IEC 14652 "i18n" definition for
-+% the LC_PAPER category.
-+% (A4 paper, this is also used in the built in C/POSIX
-+% locale in glibc/locale/C-paper.c)
-+height 297
-+width 210
-+END LC_PAPER
-+
-+LC_NAME
-+% This is the ISO/IEC 14652 "i18n" definition for
-+% the LC_NAME category.
-+% "%p%t%g%t%m%t%f"
-+% (also used in the built in C/POSIX locale in glibc/locale/C-name.c)
-+name_fmt "<U0025><U0070><U0025><U0074><U0025><U0067><U0025><U0074>/
-+<U0025><U006D><U0025><U0074><U0025><U0066>"
-+END LC_NAME
-+
-+LC_ADDRESS
-+% This is the ISO/IEC 14652 "i18n" definition for
-+% the LC_ADDRESS category.
-+% "%a%N%f%N%d%N%b%N%s %h %e %r%N%C-%z %T%N%c%N"
-+% (also used in the built in C/POSIX locale in glibc/locale/C-address.c)
-+postal_fmt "<U0025><U0061><U0025><U004E><U0025><U0066><U0025><U004E>/
-+<U0025><U0064><U0025><U004E><U0025><U0062><U0025><U004E><U0025><U0073>/
-+<U0020><U0025><U0068><U0020><U0025><U0065><U0020><U0025><U0072><U0025>/
-+<U004E><U0025><U0043><U002D><U0025><U007A><U0020><U0025><U0054><U0025>/
-+<U004E><U0025><U0063><U0025><U004E>"
-+END LC_ADDRESS
-+
-+LC_TELEPHONE
-+% This is the ISO/IEC 14652 "i18n" definition for
-+% the LC_TELEPHONE category.
-+% "+%c %a %l"
-+tel_int_fmt "<U002B><U0025><U0063><U0020><U0025><U0061><U0020><U0025>/
-+<U006C>"
-+% (also used in the built in C/POSIX locale in glibc/locale/C-telephone.c)
-+END LC_TELEPHONE
-+
-+LC_MEASUREMENT
-+% This is the ISO/IEC 14652 "i18n" definition for
-+% the LC_MEASUREMENT category.
-+% (same as in the built in C/POSIX locale in glibc/locale/C-measurement.c)
-+%metric
-+measurement 1
-+END LC_MEASUREMENT
-+
---
-2.4.3
-
diff --git a/srcpkgs/glibc/template b/srcpkgs/glibc/template
index c62a4d2aedf1..6cd4c0980cbb 100644
--- a/srcpkgs/glibc/template
+++ b/srcpkgs/glibc/template
@@ -1,14 +1,16 @@
# Template file for 'glibc'
pkgname=glibc
-version=2.32
-revision=2
+version=2.36
+revision=1
+_patchver="72-g0f90d6204d"
+wrksrc="glibc-${version}-${_patchver}"
bootstrap=yes
short_desc="GNU C library"
maintainer="Enno Boland <gottox@voidlinux.org>"
license="GPL-2.0-or-later, LGPL-2.1-or-later, BSD-3-Clause"
homepage="http://www.gnu.org/software/libc"
-distfiles="${GNU_SITE}/glibc/glibc-${version}.tar.xz"
-checksum=1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+distfiles="https://vasilek.cz/paste/glibc-${version}-${_patchver}.tar.xz"
+checksum=656200722d5ba968b4888a2d2950719d72c86290fd0479f61897d25b7db2cb57
# Do not strip these files, objcopy errors out.
nostrip_files="
XBS5_ILP32_OFFBIG
@@ -20,27 +22,28 @@ nostrip_files="
POSIX_V6_LP64_OFF64
POSIX_V7_LP64_OFF64
XBS5_LP64_OFF64
- ld-${version}.so
- libdl-${version}.so
- libanl-${version}.so
- libcidn-${version}.so
- libresolv-${version}.so
- libcrypt-${version}.so
- libpthread-${version}.so
- libm-${version}.so
- libutil-${version}.so
- libthread_db-1.0.so
- librt-${version}.so
- libnsl-${version}.so
- libc-${version}.so
- libBrokenLocale-${version}.so
- libnss_compat-${version}.so
- libnss_db-${version}.so
- libnss_dns-${version}.so
- libnss_files-${version}.so
- libnss_hesiod-${version}.so
- libnss_nisplus-${version}.so
- libnss_nis-${version}.so"
+ ld-linux-x86-64.so.2
+ ld-linux.so.2
+ ld-linux.so.3
+ ld-linux-aarch64.so.1
+ ld64.so.2
+ ld.so.1
+ ld-linux-armhf.so.3
+ libresolv.so.2
+ libcrypt.so.1
+ libm.so.6
+ libthread_db.so.1
+ libnsl.so.1
+ libc.so.6
+ libc_malloc_debug.so.0
+ libmemusage.so
+ libmvec.so.1
+ libBrokenLocale.so.1
+ libnss_compat.so.2
+ libnss_db.so.2
+ libnss_dns.so.2
+ libnss_files.so.2
+ libnss_hesiod.so.2"
conf_files="
/etc/rpc
@@ -54,7 +57,6 @@ lib32files="/usr/lib/gconv/gconv-modules"
lib32symlinks="ld-linux.so.2"
# There's no point in building this for musl.
archs="~*-musl"
-nopie=yes
do_configure() {
mkdir build
@@ -163,18 +165,6 @@ do_install() {
rm -f ${DESTDIR}/usr/bin/z{dump,ic}
mv ${DESTDIR}/usr/sbin/* ${DESTDIR}/usr/bin
-
- # Create xbps.d(5) arch override file for 32-bit architectures
- # 32-bit userlands may be used with 64-bit kernels and then
- # xbps will report an incorrect architecture by default
- case "$XBPS_TARGET_MACHINE" in
- i686|ppc|ppcle|armv*)
- vmkdir usr/share/xbps.d
- echo "architecture=${XBPS_TARGET_MACHINE}" > \
- ${DESTDIR}/usr/share/xbps.d/arch-32bit.conf
- ;;
- *) ;;
- esac
}
glibc-devel_package() {
From b9816445eb6c3dcd183f542225a25a47df85bd66 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sat, 5 Nov 2022 11:33:12 -0700
Subject: [PATCH 07/38] musl: add support for SIGEV_THREAD_ID timers
https://git.musl-libc.org/cgit/musl/commit/?id=7c71792e87691451f2a6b76348e83ad1889f1dcb
---
...d-support-for-SIGEV_THREAD_ID-timers.patch | 74 +++++++++++++++++++
srcpkgs/musl/template | 2 +-
2 files changed, 75 insertions(+), 1 deletion(-)
create mode 100644 srcpkgs/musl/patches/add-support-for-SIGEV_THREAD_ID-timers.patch
diff --git a/srcpkgs/musl/patches/add-support-for-SIGEV_THREAD_ID-timers.patch b/srcpkgs/musl/patches/add-support-for-SIGEV_THREAD_ID-timers.patch
new file mode 100644
index 000000000000..e20dff5ba0d4
--- /dev/null
+++ b/srcpkgs/musl/patches/add-support-for-SIGEV_THREAD_ID-timers.patch
@@ -0,0 +1,74 @@
+From 7c71792e87691451f2a6b76348e83ad1889f1dcb Mon Sep 17 00:00:00 2001
+From: James Y Knight <jyknight@google.com>
+Date: Sun, 30 Jun 2019 21:55:20 -0400
+Subject: [PATCH] add support for SIGEV_THREAD_ID timers
+
+This is like SIGEV_SIGNAL, but targeted to a particular thread's
+tid, rather than the process.
+---
+ include/signal.h | 16 +++++++++++++---
+ src/time/timer_create.c | 8 ++++++--
+ 2 files changed, 19 insertions(+), 5 deletions(-)
+
+diff --git a/include/signal.h b/include/signal.h
+index fbdf667b2..9ed929e4f 100644
+--- a/include/signal.h
++++ b/include/signal.h
+@@ -180,14 +180,24 @@ struct sigevent {
+ union sigval sigev_value;
+ int sigev_signo;
+ int sigev_notify;
+- void (*sigev_notify_function)(union sigval);
+- pthread_attr_t *sigev_notify_attributes;
+- char __pad[56-3*sizeof(long)];
++ union {
++ char __pad[64 - 2*sizeof(int) - sizeof(union sigval)];
++ pid_t sigev_notify_thread_id;
++ struct {
++ void (*sigev_notify_function)(union sigval);
++ pthread_attr_t *sigev_notify_attributes;
++ } __sev_thread;
++ } __sev_fields;
+ };
+
++#define sigev_notify_thread_id __sev_fields.sigev_notify_thread_id
++#define sigev_notify_function __sev_fields.__sev_thread.sigev_notify_function
++#define sigev_notify_attributes __sev_fields.__sev_thread.sigev_notify_attributes
++
+ #define SIGEV_SIGNAL 0
+ #define SIGEV_NONE 1
+ #define SIGEV_THREAD 2
++#define SIGEV_THREAD_ID 4
+
+ int __libc_current_sigrtmin(void);
+ int __libc_current_sigrtmax(void);
+diff --git a/src/time/timer_create.c b/src/time/timer_create.c
+index 5ddfda278..4bef23905 100644
+--- a/src/time/timer_create.c
++++ b/src/time/timer_create.c
+@@ -71,11 +71,15 @@ int timer_create(clockid_t clk, struct sigevent *restrict evp, timer_t *restrict
+ switch (evp ? evp->sigev_notify : SIGEV_SIGNAL) {
+ case SIGEV_NONE:
+ case SIGEV_SIGNAL:
++ case SIGEV_THREAD_ID:
+ if (evp) {
+ ksev.sigev_value = evp->sigev_value;
+ ksev.sigev_signo = evp->sigev_signo;
+ ksev.sigev_notify = evp->sigev_notify;
+- ksev.sigev_tid = 0;
++ if (evp->sigev_notify == SIGEV_THREAD_ID)
++ ksev.sigev_tid = evp->sigev_notify_thread_id;
++ else
++ ksev.sigev_tid = 0;
+ ksevp = &ksev;
+ }
+ if (syscall(SYS_timer_create, clk, ksevp, &timerid) < 0)
+@@ -107,7 +111,7 @@ int timer_create(clockid_t clk, struct sigevent *restrict evp, timer_t *restrict
+
+ ksev.sigev_value.sival_ptr = 0;
+ ksev.sigev_signo = SIGTIMER;
+- ksev.sigev_notify = 4; /* SIGEV_THREAD_ID */
++ ksev.sigev_notify = SIGEV_THREAD_ID;
+ ksev.sigev_tid = td->tid;
+ if (syscall(SYS_timer_create, clk, &ksev, &timerid) < 0)
+ timerid = -1;
diff --git a/srcpkgs/musl/template b/srcpkgs/musl/template
index 34e6ed4fba6e..afb33cd868b5 100644
--- a/srcpkgs/musl/template
+++ b/srcpkgs/musl/template
@@ -2,7 +2,7 @@
pkgname=musl
reverts="1.2.0_1"
version=1.1.24
-revision=11
+revision=12
archs="*-musl"
bootstrap=yes
build_style=gnu-configure
From 920aa4a5a0b569b2d15713cf8e3f9d21f1347fce Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sat, 5 Nov 2022 11:33:12 -0700
Subject: [PATCH 08/38] gcc-multilib: update to 12.2.0.
---
srcpkgs/gcc-multilib/template | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/srcpkgs/gcc-multilib/template b/srcpkgs/gcc-multilib/template
index f28eb237c287..ba9bafcadfd6 100644
--- a/srcpkgs/gcc-multilib/template
+++ b/srcpkgs/gcc-multilib/template
@@ -3,15 +3,15 @@ archs="x86_64"
_triplet="x86_64-unknown-linux-gnu"
pkgname=gcc-multilib
-version=10.2.1pre1
+version=12.2.0
revision=1
_majorver="${version%.*}"
short_desc="GNU Compiler Collection (multilib files)"
maintainer="Orphaned <orphan@voidlinux.org>"
homepage="http://gcc.gnu.org"
license="GFDL-1.2-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
-distfiles="https://dev.alpinelinux.org/~nenolod/gcc-${version/pre/_pre}.tar.xz"
-checksum=772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+distfiles="${GNU_SITE}/gcc/gcc-${version}/gcc-${version}.tar.xz"
+checksum=e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
hostmakedepends="perl flex tar zip unzip"
makedepends="zlib-devel libmpc-devel isl15-devel libfl-devel
@@ -70,7 +70,7 @@ do_build() {
make ${makejobs}
}
do_install() {
- local _pc_triplet=x86_64-pc-linux-gnu _version=${version%pre1}
+ local _pc_triplet=x86_64-pc-linux-gnu
# Install to a tempdir and then only copy relevant files.
cd ${wrksrc}
make DESTDIR=${wrksrc}/${pkgname}-build install
@@ -80,9 +80,9 @@ do_install() {
vmkdir usr/include/c++/${_majorver}/${_triplet}
vmkdir usr/lib/gcc/${_triplet}/${_majorver}
- cp -a ${wrksrc}/${pkgname}-build/usr/lib/gcc/${_pc_triplet}/${_version}/32 \
+ cp -a ${wrksrc}/${pkgname}-build/usr/lib/gcc/${_pc_triplet}/${version}/32 \
${DESTDIR}/usr/lib/gcc/${_triplet}/${_majorver}/
- cp -a ${wrksrc}/${pkgname}-build/usr/include/c++/${_version}/${_pc_triplet}/32 \
+ cp -a ${wrksrc}/${pkgname}-build/usr/include/c++/${version}/${_pc_triplet}/32 \
${DESTDIR}/usr/include/c++/${_majorver}/${_triplet}
vinstall ${wrksrc}/host-${_pc_triplet}/gcc/specs 644 usr/lib/gcc/${_triplet}/${_majorver}
From 464128d261beb122facfc27c9101b80131dec11f Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sat, 5 Nov 2022 11:33:12 -0700
Subject: [PATCH 09/38] libgccjit: update to 12.2.0.
---
srcpkgs/libgccjit/files/libgccjit-musl.patch | 63 --------------------
srcpkgs/libgccjit/template | 24 +++-----
2 files changed, 9 insertions(+), 78 deletions(-)
delete mode 100644 srcpkgs/libgccjit/files/libgccjit-musl.patch
diff --git a/srcpkgs/libgccjit/files/libgccjit-musl.patch b/srcpkgs/libgccjit/files/libgccjit-musl.patch
deleted file mode 100644
index d2ed16928c82..000000000000
--- a/srcpkgs/libgccjit/files/libgccjit-musl.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-diff --git a/gcc/jit/jit-playback.c b/gcc/jit/jit-playback.c
-index 5bccf591a..35f5e35ef 100644
---- a/gcc/jit/jit-playback.c
-+++ b/gcc/jit/jit-playback.c
-@@ -18,6 +18,8 @@ You should have received a copy of the GNU General Public License
- along with GCC; see the file COPYING3. If not see
- <http://www.gnu.org/licenses/>. */
-
-+#include <pthread.h>
-+
- #include "config.h"
- #include "system.h"
- #include "coretypes.h"
-@@ -41,8 +43,6 @@ along with GCC; see the file COPYING3. If not see
- #include "diagnostic.h"
- #include "stmt.h"
-
--#include <pthread.h>
--
- #include "jit-playback.h"
- #include "jit-result.h"
- #include "jit-builtins.h"
-diff --git a/gcc/jit/jit-recording.c b/gcc/jit/jit-recording.c
-index a237d574f..5785e3269 100644
---- a/gcc/jit/jit-recording.c
-+++ b/gcc/jit/jit-recording.c
-@@ -18,6 +18,8 @@ You should have received a copy of the GNU General Public License
- along with GCC; see the file COPYING3. If not see
- <http://www.gnu.org/licenses/>. */
-
-+#include <pthread.h>
-+
- #include "config.h"
- #include "system.h"
- #include "coretypes.h"
-@@ -25,8 +27,6 @@ along with GCC; see the file COPYING3. If not see
- #include "pretty-print.h"
- #include "toplev.h"
-
--#include <pthread.h>
--
- #include "jit-builtins.h"
- #include "jit-recording.h"
- #include "jit-playback.h"
-diff --git a/gcc/jit/libgccjit.c b/gcc/jit/libgccjit.c
-index f9c33c63c..75f21d275 100644
---- a/gcc/jit/libgccjit.c
-+++ b/gcc/jit/libgccjit.c
-@@ -18,13 +18,13 @@ You should have received a copy of the GNU General Public License
- along with GCC; see the file COPYING3. If not see
- <http://www.gnu.org/licenses/>. */
-
-+#include <pthread.h>
- #include "config.h"
- #include "system.h"
- #include "coretypes.h"
- #include "timevar.h"
- #include "typed-splay-tree.h"
- #include "cppbuiltin.h"
--#include <pthread.h>
-
- #include "libgccjit.h"
- #include "jit-recording.h"
diff --git a/srcpkgs/libgccjit/template b/srcpkgs/libgccjit/template
index 0b37c3ee9f8b..fde1affd54b7 100644
--- a/srcpkgs/libgccjit/template
+++ b/srcpkgs/libgccjit/template
@@ -3,18 +3,12 @@
# which use the version number.
pkgname=libgccjit
-# we are using a 10-stable git snapshot alpine is using in order
-# to get regression fixes not yet incorporate into a stable release
-# it should be possible to switch back to stable with 10.3 or 11
-version=10.2.1pre1
+version=12.2.0
revision=1
-_patchver="${version%pre*}"
-_minorver="${_patchver%.*}"
-_majorver="${_minorver%.*}"
-_gmp_version=6.2.0
+_gmp_version=6.2.1
_mpfr_version=4.1.0
-_mpc_version=1.1.0
-_isl_version=0.21
+_mpc_version=1.2.1
+_isl_version=0.24
create_wrksrc=yes
short_desc="Just-In-Time Compilation library for GCC"
maintainer="Lane Biocini <lane@mailbox.org>"
@@ -22,16 +16,16 @@ homepage="https://gcc.gnu.org"
license="GFDL-1.2-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
# *-musl builders have issues fetching https://ftp.gnu.org/gnu/mpc/mpc-1.1.0.tar.gz
distfiles="
- https://dev.alpinelinux.org/~nenolod/gcc-${version/pre/_pre}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${version}/gcc-${version}.tar.xz
https://gmplib.org/download/gmp/gmp-${_gmp_version}.tar.xz
${GNU_SITE}/mpfr/mpfr-${_mpfr_version}.tar.xz
${GNU_SITE}/mpc/mpc-${_mpc_version}.tar.gz
${SOURCEFORGE_SITE}/libisl/isl-${_isl_version}.tar.bz2"
-checksum="772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 258e6cd51b3fbdfc185c716d55f82c08aff57df0c6fbd143cf6ed561267a1526
+checksum="e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
+ fd4829912cddd12f84181c3451cc752be224643e87fac497b69edddadc49b4f2
0c98a3f1732ff6ca4ea690552079da9c597872d30e96ec28414ee23c95558a7f
- 6985c538143c1208dcb1ac42cedad6ff52e267b47e5f970183a3e75125b43c2e
- d18ca11f8ad1a39ab6d03d3dcb3365ab416720fcb65b42d69f34f51bf0a0e859"
+ 17503d2c395dfcf106b622dc142683c1199431d095367c6aacba6eec30340459
+ fcf78dd9656c10eb8cf9fbd5f59a0b6b01386205fe1934b3b287a0a1898145c0"
nopie=yes
lib32disabled=yes
makedepends="zlib-devel"
From d2111a01301bcd175047a4d6f231451dfa86480b Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sat, 5 Nov 2022 11:33:12 -0700
Subject: [PATCH 10/38] build-style/void-cross: Update flags for gcc12 and
glibc 2.36
gcov can't be built without libc:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100289
Remove -no-pie from build. glibc 2.35 and newer uses -static-pie by default:
https://sourceware.org/pipermail/glibc-cvs/2021q4/075916.html
---
common/build-style/void-cross.sh | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
diff --git a/common/build-style/void-cross.sh b/common/build-style/void-cross.sh
index 92f03f8130f5..4804193d8395 100644
--- a/common/build-style/void-cross.sh
+++ b/common/build-style/void-cross.sh
@@ -53,6 +53,7 @@ _void_cross_build_binutils() {
--sbindir=/usr/bin \
--libdir=/usr/lib \
--libexecdir=/usr/lib \
+ --sysconfdir=/etc \
--target=${tgt} \
--with-sysroot=/usr/${tgt} \
--disable-nls \
@@ -60,7 +61,9 @@ _void_cross_build_binutils() {
--disable-multilib \
--disable-werror \
--disable-gold \
+ --disable-gprofng \
--enable-relro \
+ --enable-new-dtags \
--enable-plugins \
--enable-64-bit-bfd \
--enable-deterministic-archives \
@@ -132,6 +135,7 @@ _void_cross_build_bootstrap_gcc() {
--disable-libssp \
--disable-libitm \
--disable-libatomic \
+ --disable-gcov \
--disable-threads \
--disable-sjlj-exceptions \
--enable-languages=c \
@@ -381,6 +385,7 @@ _void_cross_build_gcc() {
extra_args+=" --disable-gnu-unique-object"
extra_args+=" libat_cv_have_ifunc=no"
else
+ extra_args+=" --enable-clocale=gnu"
extra_args+=" --enable-gnu-unique-object"
fi
@@ -460,6 +465,14 @@ do_build() {
local binutils_ver linux_ver gcc_ver libc_ver libucontext_ver
local tgt=${sourcepkg/cross-}
+ export CFLAGS="${CFLAGS/-D_FORTIFY_SOURCE=2/}"
+ export CXXFLAGS="${CXXFLAGS/-D_FORTIFY_SOURCE=2/}"
+
+ # Disable explicit -fno-PIE, gcc/binutils/libc will figure this out itself.
+ export CFLAGS="${CFLAGS//-fno-PIE/}"
+ export CXXFLAGS="${CXXFLAGS//-fno-PIE/}"
+ export LDFLAGS="${LDFLAGS//-no-pie/}"
+
_void_cross_test_ver binutils
_void_cross_test_ver linux
_void_cross_test_ver gcc
@@ -625,6 +638,9 @@ do_install() {
# then remove it because it conflicts with libquadmath package
rm -rf ${DESTDIR}/${sysroot}/usr/lib/libquadmath.*
+ # Remove libdep linker plugin because it conflicts with system binutils
+ rm -f ${DESTDIR}/usr/lib/bfd-plugins/libdep*
+
# Remove leftover symlinks
rm -f ${DESTDIR}/usr/lib${XBPS_TARGET_WORDSIZE}
rm -f ${DESTDIR}/lib*
From e8f3909c069ebf243062eca5f603227083ae6a28 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sat, 5 Nov 2022 11:33:12 -0700
Subject: [PATCH 11/38] qemu: remove broken patch
The necessary patch has been imported into musl so no need
to cast the sigevent struct to a more glibc-like one.
---
.../musl-fix-sigevent-and-sigval_t.patch | 27 -------------------
1 file changed, 27 deletions(-)
delete mode 100644 srcpkgs/qemu/patches/musl-fix-sigevent-and-sigval_t.patch
diff --git a/srcpkgs/qemu/patches/musl-fix-sigevent-and-sigval_t.patch b/srcpkgs/qemu/patches/musl-fix-sigevent-and-sigval_t.patch
deleted file mode 100644
index 4b4f1117c15f..000000000000
--- a/srcpkgs/qemu/patches/musl-fix-sigevent-and-sigval_t.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-Note: Remove this patch with musl 1.2.2
-
---- a/linux-user/syscall.c
-+++ b/linux-user/syscall.c
-@@ -5020,10 +5020,21 @@
- #ifndef HAVE_SIGEV_NOTIFY_THREAD_ID
- #define sigev_notify_thread_id _sigev_un._tid
- #endif
-
--static inline abi_long target_to_host_sigevent(struct sigevent *host_sevp,
-+struct host_sigevent {
-+ union sigval sigev_value;
-+ int sigev_signo;
-+ int sigev_notify;
-+ union {
-+ char _pad[64 - sizeof(int) * 2 - sizeof(union sigval)];
-+ int _tid;
-+ } _sigev_un;
-+};
-+
-+static inline abi_long target_to_host_sigevent(struct sigevent *sevp,
- abi_ulong target_addr)
- {
-+ struct host_sigevent *host_sevp = (struct host_sigevent *) sevp;
- struct target_sigevent *target_sevp;
-
- if (!lock_user_struct(VERIFY_READ, target_sevp, target_addr, 1)) {
From 9f9d2f243653f51f22679e0eb67284fc579168f2 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sat, 19 Nov 2022 13:26:24 -0800
Subject: [PATCH 12/38] mk-configure: rebuild for gcc 12
---
srcpkgs/mk-configure/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/mk-configure/template b/srcpkgs/mk-configure/template
index 9d12f11a9799..c50d8adf213f 100644
--- a/srcpkgs/mk-configure/template
+++ b/srcpkgs/mk-configure/template
@@ -1,7 +1,7 @@
# Template file for 'mk-configure'
pkgname=mk-configure
version=0.37.0
-revision=1
+revision=2
build_style=gnu-makefile
make_cmd=bmake
make_install_args="MANDIR=/usr/share/man"
From 1f225a67fca3a48b4a57f5b9f9e800b8b05e981c Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:28 -0800
Subject: [PATCH 13/38] cross-aarch64-linux-gnu: update to gcc 12.2.0.
---
srcpkgs/cross-aarch64-linux-gnu/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-aarch64-linux-gnu/template b/srcpkgs/cross-aarch64-linux-gnu/template
index 18de21aa3ccd..9e6fb75c198d 100644
--- a/srcpkgs/cross-aarch64-linux-gnu/template
+++ b/srcpkgs/cross-aarch64-linux-gnu/template
@@ -1,15 +1,16 @@
# Template file for 'cross-aarch64-linux-gnu'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
-_glibc_version=2.32
+_binutils_version=2.39
+_gcc_version=12.2.0
+_glibc_version=2.36
_linux_version=5.10.4
pkgname=cross-aarch64-linux-gnu
-version=0.34
+version=0.35
revision=1
build_style=void-cross
configure_args="--with-arch=armv8-a"
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Leah Neukirchen <leah@vuxu.org>"
@@ -17,12 +18,12 @@ license="GPL-2.0-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
+ 1c959fea240906226062cb4b1e7ebce71a9f0e3c0836c09e7e3423d434fcfe75
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
From 1cdf0999fcf4b7e23fa3fbe9aa0e8c06a7f97fe0 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:28 -0800
Subject: [PATCH 14/38] cross-aarch64-linux-musl: update to gcc 12.2.0.
---
srcpkgs/cross-aarch64-linux-musl/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-aarch64-linux-musl/template b/srcpkgs/cross-aarch64-linux-musl/template
index bb6a770afb79..ba14c96bccea 100644
--- a/srcpkgs/cross-aarch64-linux-musl/template
+++ b/srcpkgs/cross-aarch64-linux-musl/template
@@ -1,29 +1,30 @@
# Template file for 'cross-aarch64-linux-musl'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.2.0
_musl_version=1.1.24
_linux_version=5.10.4
_libucontext_version=1.0
pkgname=cross-aarch64-linux-musl
-version=0.34
-revision=4
+version=0.35
+revision=1
build_style=void-cross
configure_args="--with-arch=armv8-a"
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
-homepage="https://www.voidlinux.org/"
license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
+homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz
https://github.com/kaniini/libucontext/archive/libucontext-${_libucontext_version}.tar.gz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec
23714e99a87f6dea82e8a073c526325161dd65462459820b16a6162be91955bb"
From ca8b9d79a1da7f01abe2117d75713e8031afce88 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:28 -0800
Subject: [PATCH 15/38] cross-arm-linux-gnueabi: update to gcc 12.2.0.
---
srcpkgs/cross-arm-linux-gnueabi/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-arm-linux-gnueabi/template b/srcpkgs/cross-arm-linux-gnueabi/template
index a3aba72aa93a..5c774e16f430 100644
--- a/srcpkgs/cross-arm-linux-gnueabi/template
+++ b/srcpkgs/cross-arm-linux-gnueabi/template
@@ -1,15 +1,16 @@
# Template file for 'cross-arm-linux-gnueabi'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
-_glibc_version=2.32
+_binutils_version=2.39
+_gcc_version=12.2.0
+_glibc_version=2.36
_linux_version=5.10.4
pkgname=cross-arm-linux-gnueabi
-version=0.34
+version=0.35
revision=1
build_style=void-cross
configure_args="--with-arch=armv5te --with-float=soft"
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
@@ -17,12 +18,12 @@ license="GPL-2.0-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
+ 1c959fea240906226062cb4b1e7ebce71a9f0e3c0836c09e7e3423d434fcfe75
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
From 9ef922ff0b1519c1e8ce02719d5adc5ddb2b5ef1 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:28 -0800
Subject: [PATCH 16/38] cross-arm-linux-gnueabihf: update to gcc 12.2.0.
---
srcpkgs/cross-arm-linux-gnueabihf/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-arm-linux-gnueabihf/template b/srcpkgs/cross-arm-linux-gnueabihf/template
index d9ab86cf2ecc..d6298ab639a4 100644
--- a/srcpkgs/cross-arm-linux-gnueabihf/template
+++ b/srcpkgs/cross-arm-linux-gnueabihf/template
@@ -1,15 +1,16 @@
# Template file for 'cross-arm-linux-gnueabihf'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
-_glibc_version=2.32
+_binutils_version=2.39
+_gcc_version=12.2.0
+_glibc_version=2.36
_linux_version=5.10.4
pkgname=cross-arm-linux-gnueabihf
-version=0.34
+version=0.35
revision=1
build_style=void-cross
configure_args="--with-arch=armv6 --with-fpu=vfp --with-float=hard"
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
@@ -17,12 +18,12 @@ license="GPL-2.0-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
+ 1c959fea240906226062cb4b1e7ebce71a9f0e3c0836c09e7e3423d434fcfe75
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
From 45351c2aa37fca8379dec3ac7686b469c77b8715 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:28 -0800
Subject: [PATCH 17/38] cross-arm-linux-musleabi: update to gcc 12.2.0.
---
srcpkgs/cross-arm-linux-musleabi/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-arm-linux-musleabi/template b/srcpkgs/cross-arm-linux-musleabi/template
index 6692d891e1bd..24df78e8fd8e 100644
--- a/srcpkgs/cross-arm-linux-musleabi/template
+++ b/srcpkgs/cross-arm-linux-musleabi/template
@@ -1,29 +1,30 @@
# Template file for 'cross-arm-linux-musleabi'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.2.0
_musl_version=1.1.24
_linux_version=5.10.4
_libucontext_version=1.0
pkgname=cross-arm-linux-musleabi
-version=0.34
-revision=4
+version=0.35
+revision=1
build_style=void-cross
configure_args="--with-arch=armv5te --with-float=soft"
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
-homepage="https://www.voidlinux.org/"
license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
+homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz
https://github.com/kaniini/libucontext/archive/libucontext-${_libucontext_version}.tar.gz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec
23714e99a87f6dea82e8a073c526325161dd65462459820b16a6162be91955bb"
From 3b1c1b95b00ff68f759bd9f22aa5fb0364be40fe Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:28 -0800
Subject: [PATCH 18/38] cross-arm-linux-musleabihf: update to gcc 12.2.0.
---
srcpkgs/cross-arm-linux-musleabihf/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-arm-linux-musleabihf/template b/srcpkgs/cross-arm-linux-musleabihf/template
index bb62bd5ebc55..8093700f909c 100644
--- a/srcpkgs/cross-arm-linux-musleabihf/template
+++ b/srcpkgs/cross-arm-linux-musleabihf/template
@@ -1,29 +1,30 @@
# Template file for 'cross-arm-linux-musleabihf'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.2.0
_musl_version=1.1.24
_linux_version=5.10.4
_libucontext_version=1.0
pkgname=cross-arm-linux-musleabihf
-version=0.34
-revision=4
+version=0.35
+revision=1
build_style=void-cross
configure_args="--with-arch=armv6 --with-fpu=vfp --with-float=hard"
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
-homepage="https://www.voidlinux.org/"
license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
+homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz
https://github.com/kaniini/libucontext/archive/libucontext-${_libucontext_version}.tar.gz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec
23714e99a87f6dea82e8a073c526325161dd65462459820b16a6162be91955bb"
From ce4a1fbd98429f760ac93098de59dcddd9603e23 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:28 -0800
Subject: [PATCH 19/38] cross-armv7l-linux-gnueabihf: update to gcc 12.2.0.
---
srcpkgs/cross-armv7l-linux-gnueabihf/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-armv7l-linux-gnueabihf/template b/srcpkgs/cross-armv7l-linux-gnueabihf/template
index 30c89b6294ef..92665326428b 100644
--- a/srcpkgs/cross-armv7l-linux-gnueabihf/template
+++ b/srcpkgs/cross-armv7l-linux-gnueabihf/template
@@ -1,15 +1,16 @@
# Template file for 'cross-armv7l-linux-gnueabihf'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
-_glibc_version=2.32
+_binutils_version=2.39
+_gcc_version=12.2.0
+_glibc_version=2.36
_linux_version=5.10.4
pkgname=cross-armv7l-linux-gnueabihf
-version=0.34
+version=0.35
revision=1
build_style=void-cross
configure_args="--with-arch=armv7-a --with-fpu=vfpv3 --with-float=hard"
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
@@ -17,12 +18,12 @@ license="GPL-2.0-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
+ 1c959fea240906226062cb4b1e7ebce71a9f0e3c0836c09e7e3423d434fcfe75
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
From 6d32b6d5756f9ff9f087ec990b9dea5381a46573 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:28 -0800
Subject: [PATCH 20/38] cross-armv7l-linux-musleabihf: update to gcc 12.2.0.
---
.../cross-armv7l-linux-musleabihf/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-armv7l-linux-musleabihf/template b/srcpkgs/cross-armv7l-linux-musleabihf/template
index 0a588cdf1a58..e5af2c9ccbf2 100644
--- a/srcpkgs/cross-armv7l-linux-musleabihf/template
+++ b/srcpkgs/cross-armv7l-linux-musleabihf/template
@@ -1,29 +1,30 @@
# Template file for 'cross-armv7l-linux-musleabihf'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.2.0
_musl_version=1.1.24
_linux_version=5.10.4
_libucontext_version=1.0
pkgname=cross-armv7l-linux-musleabihf
-version=0.34
-revision=4
+version=0.35
+revision=1
build_style=void-cross
configure_args="--with-arch=armv7-a --with-fpu=vfpv3 --with-float=hard"
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
-homepage="https://www.voidlinux.org/"
license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
+homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz
https://github.com/kaniini/libucontext/archive/libucontext-${_libucontext_version}.tar.gz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec
23714e99a87f6dea82e8a073c526325161dd65462459820b16a6162be91955bb"
From b2677d37db332907d29338fc27a5327cc7b8fabf Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:29 -0800
Subject: [PATCH 21/38] cross-i686-linux-musl: update to gcc 12.2.0.
---
srcpkgs/cross-i686-linux-musl/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-i686-linux-musl/template b/srcpkgs/cross-i686-linux-musl/template
index 8be16a230d8d..d624bb7a3254 100644
--- a/srcpkgs/cross-i686-linux-musl/template
+++ b/srcpkgs/cross-i686-linux-musl/template
@@ -1,28 +1,29 @@
# Template file for 'cross-i686-linux-musl'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.2.0
_musl_version=1.1.24
_linux_version=5.10.4
_libucontext_version=1.0
pkgname=cross-i686-linux-musl
-version=0.34
-revision=4
+version=0.35
+revision=1
build_style=void-cross
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
-homepage="https://www.voidlinux.org/"
license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
+homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz
https://github.com/kaniini/libucontext/archive/libucontext-${_libucontext_version}.tar.gz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec
23714e99a87f6dea82e8a073c526325161dd65462459820b16a6162be91955bb"
From ea358c8ff6e24e0b3e2ceb5546d75028a2e39c10 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:29 -0800
Subject: [PATCH 22/38] cross-i686-pc-linux-gnu: update to gcc 12.2.0.
---
srcpkgs/cross-i686-pc-linux-gnu/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-i686-pc-linux-gnu/template b/srcpkgs/cross-i686-pc-linux-gnu/template
index 263a43f7a7b8..6a9e54db807a 100644
--- a/srcpkgs/cross-i686-pc-linux-gnu/template
+++ b/srcpkgs/cross-i686-pc-linux-gnu/template
@@ -1,14 +1,15 @@
# Template file for 'cross-i686-pc-linux-gnu'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
-_glibc_version=2.32
+_binutils_version=2.39
+_gcc_version=12.2.0
+_glibc_version=2.36
_linux_version=5.10.4
pkgname=cross-i686-pc-linux-gnu
-version=0.34
+version=0.35
revision=1
build_style=void-cross
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
@@ -16,12 +17,12 @@ license="GPL-2.0-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
+ 1c959fea240906226062cb4b1e7ebce71a9f0e3c0836c09e7e3423d434fcfe75
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
From 900ee24e5da6c2acfd2a79b0ab57f17a542f040a Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:29 -0800
Subject: [PATCH 23/38] cross-mips-linux-musl: update to gcc 12.2.0.
---
srcpkgs/cross-mips-linux-musl/template | 21 +++++++++++----------
1 file changed, 11 insertions(+), 10 deletions(-)
diff --git a/srcpkgs/cross-mips-linux-musl/template b/srcpkgs/cross-mips-linux-musl/template
index 9b5d5819b1a0..67a5c413396c 100644
--- a/srcpkgs/cross-mips-linux-musl/template
+++ b/srcpkgs/cross-mips-linux-musl/template
@@ -1,28 +1,29 @@
# Template file for 'cross-mips-linux-musl'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.2.0
_musl_version=1.1.24
_linux_version=5.10.4
pkgname=cross-mips-linux-musl
-version=0.34
-revision=3
+version=0.35
+revision=1
build_style=void-cross
configure_args="--with-arch=mips32r2 --with-float=soft
--with-linker-hash-style=sysv"
hostmakedepends="texinfo tar gcc-objc flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
-homepage="https://www.voidlinux.org/"
license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
+homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
- https://www.musl-libc.org/releases/musl-${_musl_version}.tar.gz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
+ https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
From 5ce512b851838655752f4219f6b5bc9fc708b109 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:29 -0800
Subject: [PATCH 24/38] cross-mips-linux-muslhf: update to gcc 12.2.0.
---
srcpkgs/cross-mips-linux-muslhf/template | 21 +++++++++++----------
1 file changed, 11 insertions(+), 10 deletions(-)
diff --git a/srcpkgs/cross-mips-linux-muslhf/template b/srcpkgs/cross-mips-linux-muslhf/template
index d7590af9ec03..bdf8600ce95b 100644
--- a/srcpkgs/cross-mips-linux-muslhf/template
+++ b/srcpkgs/cross-mips-linux-muslhf/template
@@ -1,28 +1,29 @@
# Template file for 'cross-mips-linux-muslhf'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.2.0
_musl_version=1.1.24
_linux_version=5.10.4
pkgname=cross-mips-linux-muslhf
-version=0.34
-revision=3
+version=0.35
+revision=1
build_style=void-cross
configure_args="--with-arch=mips32r2 --with-float=hard
--with-linker-hash-style=sysv"
hostmakedepends="texinfo tar gcc-objc flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="hipperson0 <hipperson0@gmail.com>"
-homepage="https://www.voidlinux.org/"
license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
+homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
- https://www.musl-libc.org/releases/musl-${_musl_version}.tar.gz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
+ https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
From 8e6f1071b3cb18ba927e56ad9f8dd5cf109a10dc Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:29 -0800
Subject: [PATCH 25/38] cross-mipsel-linux-musl: update to gcc 12.2.0.
---
srcpkgs/cross-mipsel-linux-musl/template | 21 +++++++++++----------
1 file changed, 11 insertions(+), 10 deletions(-)
diff --git a/srcpkgs/cross-mipsel-linux-musl/template b/srcpkgs/cross-mipsel-linux-musl/template
index 1acba7016dbc..de49387d517b 100644
--- a/srcpkgs/cross-mipsel-linux-musl/template
+++ b/srcpkgs/cross-mipsel-linux-musl/template
@@ -1,28 +1,29 @@
# Template file for 'cross-mipsel-linux-musl'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.2.0
_musl_version=1.1.24
_linux_version=5.10.4
pkgname=cross-mipsel-linux-musl
-version=0.34
-revision=3
+version=0.35
+revision=1
build_style=void-cross
configure_args="--with-arch=mips32r2 --with-float=soft
--with-linker-hash-style=sysv"
hostmakedepends="texinfo tar gcc-objc flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
-homepage="https://www.voidlinux.org/"
license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
+homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
- https://www.musl-libc.org/releases/musl-${_musl_version}.tar.gz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
+ https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
From ff75e733c9a5c1ef71c8154af3ac88b668ed5ab3 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:29 -0800
Subject: [PATCH 26/38] cross-mipsel-linux-muslhf: update to gcc 12.2.0.
---
srcpkgs/cross-mipsel-linux-muslhf/template | 21 +++++++++++----------
1 file changed, 11 insertions(+), 10 deletions(-)
diff --git a/srcpkgs/cross-mipsel-linux-muslhf/template b/srcpkgs/cross-mipsel-linux-muslhf/template
index e4a55f028bc4..b27ce6475a38 100644
--- a/srcpkgs/cross-mipsel-linux-muslhf/template
+++ b/srcpkgs/cross-mipsel-linux-muslhf/template
@@ -1,28 +1,29 @@
# Template file for 'cross-mipsel-linux-muslhf'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.2.0
_musl_version=1.1.24
_linux_version=5.10.4
pkgname=cross-mipsel-linux-muslhf
-version=0.34
-revision=3
+version=0.35
+revision=1
build_style=void-cross
configure_args="--with-arch=mips32r2 --with-float=hard
--with-linker-hash-style=sysv"
hostmakedepends="texinfo tar gcc-objc flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
-homepage="https://www.voidlinux.org/"
license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
+homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
- https://www.musl-libc.org/releases/musl-${_musl_version}.tar.gz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
+ https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
From 390ef0702c07d956c0f3a5b099d6f7f7f20334d9 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:29 -0800
Subject: [PATCH 27/38] cross-powerpc-linux-gnu: update to gcc 12.2.0.
---
srcpkgs/cross-powerpc-linux-gnu/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-powerpc-linux-gnu/template b/srcpkgs/cross-powerpc-linux-gnu/template
index b97a21d0d72e..79579e093b12 100644
--- a/srcpkgs/cross-powerpc-linux-gnu/template
+++ b/srcpkgs/cross-powerpc-linux-gnu/template
@@ -1,15 +1,16 @@
# Template file for 'cross-powerpc-linux-gnu'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
-_glibc_version=2.32
+_binutils_version=2.39
+_gcc_version=12.2.0
+_glibc_version=2.36
_linux_version=5.10.4
pkgname=cross-powerpc-linux-gnu
-version=0.34
+version=0.35
revision=1
build_style=void-cross
configure_args="--enable-secureplt --disable-vtable-verify"
hostmakedepends="texinfo tar gcc-objc flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Thomas Batten <stenstorpmc@gmail.com>"
@@ -17,12 +18,12 @@ license="GPL-2.0-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
+ 1c959fea240906226062cb4b1e7ebce71a9f0e3c0836c09e7e3423d434fcfe75
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
From 0235008194054ee1f34994ca5aa7155c66633107 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:29 -0800
Subject: [PATCH 28/38] cross-powerpc-linux-musl: update to gcc 12.2.0.
---
srcpkgs/cross-powerpc-linux-musl/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-powerpc-linux-musl/template b/srcpkgs/cross-powerpc-linux-musl/template
index f9b22f0610d3..9bb6acd359b6 100644
--- a/srcpkgs/cross-powerpc-linux-musl/template
+++ b/srcpkgs/cross-powerpc-linux-musl/template
@@ -1,28 +1,29 @@
# Template file for 'cross-powerpc-linux-musl'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.2.0
_musl_version=1.1.24
_linux_version=5.10.4
pkgname=cross-powerpc-linux-musl
-version=0.34
-revision=3
+version=0.35
+revision=1
build_style=void-cross
configure_args="--enable-secureplt --disable-vtable-verify
--disable-decimal-float"
hostmakedepends="texinfo tar gcc-objc flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Thomas Batten <stenstorpmc@gmail.com>"
-homepage="https://www.voidlinux.org/"
license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
+homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
From 68f4ae156d99cbcb9b8f3ab02d0f3a6b6fba64a7 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:29 -0800
Subject: [PATCH 29/38] cross-powerpc64-linux-gnu: update to gcc 12.2.0.
---
srcpkgs/cross-powerpc64-linux-gnu/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-powerpc64-linux-gnu/template b/srcpkgs/cross-powerpc64-linux-gnu/template
index 35cfcaa6f02e..2d153d00add6 100644
--- a/srcpkgs/cross-powerpc64-linux-gnu/template
+++ b/srcpkgs/cross-powerpc64-linux-gnu/template
@@ -1,16 +1,17 @@
# Template file for 'cross-powerpc64-linux-gnu'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
-_glibc_version=2.32
+_binutils_version=2.39
+_gcc_version=12.2.0
+_glibc_version=2.36
_linux_version=5.10.4
pkgname=cross-powerpc64-linux-gnu
-version=0.34
+version=0.35
revision=1
build_style=void-cross
configure_args="--enable-secureplt --disable-vtable-verify --with-abi=elfv2
--enable-targets=powerpc-linux"
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
@@ -18,12 +19,12 @@ license="GPL-2.0-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
+ 1c959fea240906226062cb4b1e7ebce71a9f0e3c0836c09e7e3423d434fcfe75
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
From f4d106c37e463679e3fcbac31ef54b3e599ec8f7 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:29 -0800
Subject: [PATCH 30/38] cross-powerpc64-linux-musl: update to gcc 12.2.0.
---
srcpkgs/cross-powerpc64-linux-musl/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-powerpc64-linux-musl/template b/srcpkgs/cross-powerpc64-linux-musl/template
index 016f18776a6d..e0848fe0bff7 100644
--- a/srcpkgs/cross-powerpc64-linux-musl/template
+++ b/srcpkgs/cross-powerpc64-linux-musl/template
@@ -1,30 +1,31 @@
# Template file for 'cross-powerpc64-linux-musl'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.2.0
_musl_version=1.1.24
_linux_version=5.10.4
_libucontext_version=1.0
pkgname=cross-powerpc64-linux-musl
-version=0.34
-revision=4
+version=0.35
+revision=1
build_style=void-cross
configure_args="--enable-secureplt --disable-vtable-verify
--disable-decimal-float --with-abi=elfv2 --enable-targets=powerpc-linux"
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
-homepage="https://www.voidlinux.org/"
license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
+homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz
https://github.com/kaniini/libucontext/archive/libucontext-${_libucontext_version}.tar.gz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec
23714e99a87f6dea82e8a073c526325161dd65462459820b16a6162be91955bb"
From 18d74fbff80c9ccb019ef640a2666b81295cd2d1 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:29 -0800
Subject: [PATCH 31/38] cross-powerpc64le-linux-gnu: update to gcc 12.2.0.
---
srcpkgs/cross-powerpc64le-linux-gnu/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-powerpc64le-linux-gnu/template b/srcpkgs/cross-powerpc64le-linux-gnu/template
index 463d7e92d20d..8d8e010e15c0 100644
--- a/srcpkgs/cross-powerpc64le-linux-gnu/template
+++ b/srcpkgs/cross-powerpc64le-linux-gnu/template
@@ -1,16 +1,17 @@
# Template file for 'cross-powerpc64le-linux-gnu'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
-_glibc_version=2.32
+_binutils_version=2.39
+_gcc_version=12.2.0
+_glibc_version=2.36
_linux_version=5.10.4
pkgname=cross-powerpc64le-linux-gnu
-version=0.34
+version=0.35
revision=1
build_style=void-cross
configure_args="--enable-secureplt --disable-vtable-verify --with-abi=elfv2
--enable-targets=powerpcle-linux"
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
@@ -18,12 +19,12 @@ license="GPL-2.0-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
+ 1c959fea240906226062cb4b1e7ebce71a9f0e3c0836c09e7e3423d434fcfe75
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
From 1c314320c695c9c8ea2fa9787f9633dfc4ebd59c Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:29 -0800
Subject: [PATCH 32/38] cross-powerpc64le-linux-musl: update to gcc 12.2.0.
---
srcpkgs/cross-powerpc64le-linux-musl/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-powerpc64le-linux-musl/template b/srcpkgs/cross-powerpc64le-linux-musl/template
index c17a3cccfe29..0915e524545f 100644
--- a/srcpkgs/cross-powerpc64le-linux-musl/template
+++ b/srcpkgs/cross-powerpc64le-linux-musl/template
@@ -1,30 +1,31 @@
# Template file for 'cross-powerpc64le-linux-musl'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.2.0
_musl_version=1.1.24
_linux_version=5.10.4
_libucontext_version=1.0
pkgname=cross-powerpc64le-linux-musl
-version=0.34
-revision=4
+version=0.35
+revision=1
build_style=void-cross
configure_args="--enable-secureplt --disable-vtable-verify
--disable-decimal-float --with-abi=elfv2 --enable-targets=powerpcle-linux"
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
-homepage="https://www.voidlinux.org/"
license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
+homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz
https://github.com/kaniini/libucontext/archive/libucontext-${_libucontext_version}.tar.gz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec
23714e99a87f6dea82e8a073c526325161dd65462459820b16a6162be91955bb"
From 6c1d6955226f3d0c28ae4e7bd1d691c92a899ef6 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:29 -0800
Subject: [PATCH 33/38] cross-powerpcle-linux-gnu: update to gcc 12.2.0.
---
srcpkgs/cross-powerpcle-linux-gnu/template | 21 ++++++++++++---------
1 file changed, 12 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-powerpcle-linux-gnu/template b/srcpkgs/cross-powerpcle-linux-gnu/template
index 9aede3c465ce..687be8a44c6c 100644
--- a/srcpkgs/cross-powerpcle-linux-gnu/template
+++ b/srcpkgs/cross-powerpcle-linux-gnu/template
@@ -1,15 +1,16 @@
# Template file for 'cross-powerpcle-linux-gnu'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
-_glibc_version=2.32
+_binutils_version=2.39
+_gcc_version=12.2.0
+_glibc_version=2.36
_linux_version=5.10.4
pkgname=cross-powerpcle-linux-gnu
-version=0.34
+version=0.35
revision=1
build_style=void-cross
configure_args="--enable-secureplt --disable-vtable-verify"
hostmakedepends="texinfo tar gcc-objc flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
@@ -17,12 +18,12 @@ license="GPL-2.0-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
+ 1c959fea240906226062cb4b1e7ebce71a9f0e3c0836c09e7e3423d434fcfe75
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
@@ -35,6 +36,8 @@ if [ "$XBPS_TARGET_MACHINE" = "ppcle" ]; then
broken="Can't build crosstoolchain to itself"
fi
+broken="glibc uses big-endian specific instructions on 32-bit powerpc"
+
cross-powerpcle-linux-gnu-libc_package() {
short_desc+=" - glibc files"
nostrip=yes
From 80ff9901db83f0a736a1d56d9eff85a150412024 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:29 -0800
Subject: [PATCH 34/38] cross-powerpcle-linux-musl: update to gcc 12.2.0.
---
srcpkgs/cross-powerpcle-linux-musl/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-powerpcle-linux-musl/template b/srcpkgs/cross-powerpcle-linux-musl/template
index 045cfda987fe..bb984b9c42eb 100644
--- a/srcpkgs/cross-powerpcle-linux-musl/template
+++ b/srcpkgs/cross-powerpcle-linux-musl/template
@@ -1,28 +1,29 @@
# Template file for 'cross-powerpcle-linux-musl'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.2.0
_musl_version=1.1.24
_linux_version=5.10.4
pkgname=cross-powerpcle-linux-musl
-version=0.34
-revision=3
+version=0.35
+revision=1
build_style=void-cross
configure_args="--enable-secureplt --disable-vtable-verify
--disable-decimal-float"
hostmakedepends="texinfo tar gcc-objc flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
-homepage="https://www.voidlinux.org/"
license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
+homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
From caec1366d46bfb0cc0b73646d754f52e66e4d38a Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:30 -0800
Subject: [PATCH 35/38] cross-x86_64-linux-gnu: update to gcc 12.2.0.
---
srcpkgs/cross-x86_64-linux-gnu/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-x86_64-linux-gnu/template b/srcpkgs/cross-x86_64-linux-gnu/template
index 8918f3c22a1c..930aaf2a508b 100644
--- a/srcpkgs/cross-x86_64-linux-gnu/template
+++ b/srcpkgs/cross-x86_64-linux-gnu/template
@@ -1,14 +1,15 @@
# Template file for 'cross-x86_64-linux-gnu'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
-_glibc_version=2.32
+_binutils_version=2.39
+_gcc_version=12.2.0
+_glibc_version=2.36
_linux_version=5.10.4
pkgname=cross-x86_64-linux-gnu
-version=0.34
+version=0.35
revision=1
build_style=void-cross
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
@@ -16,12 +17,12 @@ license="GPL-2.0-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
+ 1c959fea240906226062cb4b1e7ebce71a9f0e3c0836c09e7e3423d434fcfe75
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
From 6e16dba261f6106666bf28319030b23a3dcc486e Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:30 -0800
Subject: [PATCH 36/38] cross-x86_64-linux-musl: update to gcc 12.2.0.
---
srcpkgs/cross-x86_64-linux-musl/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-x86_64-linux-musl/template b/srcpkgs/cross-x86_64-linux-musl/template
index a941e7e02f6f..ac5b1c46ab82 100644
--- a/srcpkgs/cross-x86_64-linux-musl/template
+++ b/srcpkgs/cross-x86_64-linux-musl/template
@@ -1,28 +1,29 @@
# Template file for 'cross-x86_64-linux-musl'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.2.0
_musl_version=1.1.24
_linux_version=5.10.4
_libucontext_version=1.0
pkgname=cross-x86_64-linux-musl
-version=0.34
-revision=3
+version=0.35
+revision=1
build_style=void-cross
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
-homepage="https://www.voidlinux.org/"
license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
+homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz
https://github.com/kaniini/libucontext/archive/libucontext-${_libucontext_version}.tar.gz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec
23714e99a87f6dea82e8a073c526325161dd65462459820b16a6162be91955bb"
From 5796bae0f4899492bce8b5e04bb4cf0ee01a31f8 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Fri, 18 Nov 2022 02:01:19 -0800
Subject: [PATCH 37/38] cross-vpkg-dummy: update to 0.39.
---
srcpkgs/cross-vpkg-dummy/template | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/srcpkgs/cross-vpkg-dummy/template b/srcpkgs/cross-vpkg-dummy/template
index d83e38dc63ac..aeafb749dd5f 100644
--- a/srcpkgs/cross-vpkg-dummy/template
+++ b/srcpkgs/cross-vpkg-dummy/template
@@ -1,6 +1,6 @@
# Template file for 'cross-vpkg-dummy'
pkgname=cross-vpkg-dummy
-version=0.38
+version=0.39
revision=1
build_style=meta
short_desc="Dummy meta-pkg for cross building packages with xbps-src"
@@ -54,8 +54,8 @@ conflicts="
gcc-objc++>=0"
shlib_provides="
libgcc_s.so.1
- libgnat-10.so
- libgnarl-10.so
+ libgnat-12.so
+ libgnarl-12.so
libstdc++.so.6
libgfortran.so.5"
From 838269d4eb60aec325fc19e4a4f8f8fb795983de Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Sun, 27 Nov 2022 22:59:45 +0100
Subject: [PATCH 38/38] llvm: update to 15.0.5
---
common/shlibs | 4 +
srcpkgs/clang | 2 +-
srcpkgs/clang-analyzer | 2 +-
srcpkgs/clang-tools-extra | 2 +-
srcpkgs/libclang | 2 +-
srcpkgs/libclang-cpp | 2 +-
srcpkgs/libcxx | 2 +-
srcpkgs/libcxx-devel | 2 +-
srcpkgs/libcxxabi | 2 +-
srcpkgs/libcxxabi-devel | 2 +-
srcpkgs/libllvm15 | 1 +
srcpkgs/libomp | 2 +-
srcpkgs/libomp-devel | 2 +-
srcpkgs/lld | 2 +-
srcpkgs/lld-devel | 2 +-
srcpkgs/lldb | 2 +-
srcpkgs/lldb-devel | 2 +-
srcpkgs/llvm-libunwind | 2 +-
srcpkgs/llvm-libunwind-devel | 2 +-
srcpkgs/llvm/template | 6 +-
.../llvm15/files/llvm-Config-llvm-config.h | 9 +
...clang-001-fix-unwind-chain-inclusion.patch | 44 ++
.../patches/clang-002-add-musl-triples.patch | 110 +++++
.../clang-003-ppc64-dynamic-linker-path.patch | 13 +
.../patches/clang-004-ppc64-musl-elfv2.patch | 48 ++
.../compiler-rt-sanitizer-ppc64-musl.patch | 35 ++
.../compiler-rt-xray-ppc64-musl.patch.skip | 62 +++
srcpkgs/llvm15/patches/libcxx-musl.patch | 26 ++
srcpkgs/llvm15/patches/libcxx-ppc.patch | 22 +
.../llvm15/patches/libcxx-ssp-nonshared.patch | 11 +
srcpkgs/llvm15/patches/libcxxabi-dl.patch | 25 +
.../llvm15/patches/libunwind-ppc32.patch.skip | 63 +++
srcpkgs/llvm15/patches/lldb-musl.patch | 40 ++
srcpkgs/llvm15/patches/llvm-001-musl.patch | 57 +++
.../patches/llvm-002-musl-ppc64-elfv2.patch | 30 ++
.../patches/llvm-003-ppc-secureplt.patch | 11 +
.../patches/llvm-004-override-opt.patch | 18 +
.../llvm15/patches/llvm-005-ppc-bigpic.patch | 36 ++
.../patches/llvm-006-aarch64-mf_exec.patch | 25 +
srcpkgs/llvm15/template | 433 ++++++++++++++++++
srcpkgs/llvm15/update | 3 +
41 files changed, 1146 insertions(+), 20 deletions(-)
create mode 120000 srcpkgs/libllvm15
create mode 100644 srcpkgs/llvm15/files/llvm-Config-llvm-config.h
create mode 100644 srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch
create mode 100644 srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch
create mode 100644 srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch
create mode 100644 srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch
create mode 100644 srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch
create mode 100644 srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip
create mode 100644 srcpkgs/llvm15/patches/libcxx-musl.patch
create mode 100644 srcpkgs/llvm15/patches/libcxx-ppc.patch
create mode 100644 srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch
create mode 100644 srcpkgs/llvm15/patches/libcxxabi-dl.patch
create mode 100644 srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip
create mode 100644 srcpkgs/llvm15/patches/lldb-musl.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-001-musl.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-004-override-opt.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch
create mode 100644 srcpkgs/llvm15/template
create mode 100644 srcpkgs/llvm15/update
diff --git a/common/shlibs b/common/shlibs
index 5a0ad39c8da8..11d906c699cf 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -985,10 +985,14 @@ 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.12 lldb-12.0.0_1
+liblldb.so.15 lldb-15.0.5_1
libclang.so.12 libclang-12.0.0_1
+libclang.so.15 libclang-15.0.5_1
libclang-cpp.so.12 libclang-cpp-12.0.0_1
+libclang-cpp.so.15 libclang-cpp-15.0.5_1
libLLVM-11.so libllvm11-11.0.0_1
libLLVM-12.so libllvm12-12.0.0_1
+libLLVM-15.so libllvm15-15.0.5_1
libisofs.so.6 libisofs-0.6.24_1
libmpack.so.0 libmpack-1.0.5_1
libGeoIP.so.1 libgeoip-1.4.8_1
diff --git a/srcpkgs/clang b/srcpkgs/clang
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/clang
+++ b/srcpkgs/clang
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/clang-analyzer b/srcpkgs/clang-analyzer
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/clang-analyzer
+++ b/srcpkgs/clang-analyzer
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/clang-tools-extra b/srcpkgs/clang-tools-extra
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/clang-tools-extra
+++ b/srcpkgs/clang-tools-extra
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libclang b/srcpkgs/libclang
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libclang
+++ b/srcpkgs/libclang
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libclang-cpp b/srcpkgs/libclang-cpp
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libclang-cpp
+++ b/srcpkgs/libclang-cpp
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxx b/srcpkgs/libcxx
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxx
+++ b/srcpkgs/libcxx
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxx-devel b/srcpkgs/libcxx-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxx-devel
+++ b/srcpkgs/libcxx-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxxabi b/srcpkgs/libcxxabi
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxxabi
+++ b/srcpkgs/libcxxabi
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxxabi-devel b/srcpkgs/libcxxabi-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxxabi-devel
+++ b/srcpkgs/libcxxabi-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libllvm15 b/srcpkgs/libllvm15
new file mode 120000
index 000000000000..ad57a969b9f9
--- /dev/null
+++ b/srcpkgs/libllvm15
@@ -0,0 +1 @@
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libomp b/srcpkgs/libomp
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libomp
+++ b/srcpkgs/libomp
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libomp-devel b/srcpkgs/libomp-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libomp-devel
+++ b/srcpkgs/libomp-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lld b/srcpkgs/lld
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lld
+++ b/srcpkgs/lld
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lld-devel b/srcpkgs/lld-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lld-devel
+++ b/srcpkgs/lld-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lldb b/srcpkgs/lldb
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lldb
+++ b/srcpkgs/lldb
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lldb-devel b/srcpkgs/lldb-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lldb-devel
+++ b/srcpkgs/lldb-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm-libunwind b/srcpkgs/llvm-libunwind
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/llvm-libunwind
+++ b/srcpkgs/llvm-libunwind
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm-libunwind-devel b/srcpkgs/llvm-libunwind-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/llvm-libunwind-devel
+++ b/srcpkgs/llvm-libunwind-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm/template b/srcpkgs/llvm/template
index a92db6f94f9f..d14430090161 100644
--- a/srcpkgs/llvm/template
+++ b/srcpkgs/llvm/template
@@ -1,10 +1,10 @@
# Template file for 'llvm'
pkgname=llvm
-version=12.0.0
+version=15.0.0
revision=1
build_style=meta
-depends="llvm12"
-replaces="llvm11>=0 llvm10>=0 llvm9>=0 llvm8>=0 llvm7>=0 llvm6.0>=0 llvm3.9>=0"
+depends="llvm15"
+replaces="llvm12>=0 llvm11>=0 llvm10>=0 llvm9>=0 llvm8>=0 llvm7>=0 llvm6.0>=0 llvm3.9>=0"
short_desc="LLVM meta package"
maintainer="Enno Boland <gottox@voidlinux.org>"
license="Public Domain"
diff --git a/srcpkgs/llvm15/files/llvm-Config-llvm-config.h b/srcpkgs/llvm15/files/llvm-Config-llvm-config.h
new file mode 100644
index 000000000000..2fa08c9be696
--- /dev/null
+++ b/srcpkgs/llvm15/files/llvm-Config-llvm-config.h
@@ -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
diff --git a/srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch b/srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch
new file mode 100644
index 000000000000..e4eaa7783e7a
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch
@@ -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
diff --git a/srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch b/srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch
new file mode 100644
index 000000000000..25688d40dbc2
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch
@@ -0,0 +1,110 @@
+--- a/clang/lib/Driver/ToolChains/Gnu.cpp
++++ b/clang/lib/Driver/ToolChains/Gnu.cpp
+@@ -2086,7 +2086,8 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
+ static const char *const ARMHFTriples[] = {"arm-linux-gnueabihf",
+ "armv7hl-redhat-linux-gnueabi",
+ "armv6hl-suse-linux-gnueabi",
+- "armv7hl-suse-linux-gnueabi"};
++ "armv7hl-suse-linux-gnueabi",
++ "armv7l-linux-gnueabihf"};
+ static const char *const ARMebLibDirs[] = {"/lib"};
+ static const char *const ARMebTriples[] = {"armeb-linux-gnueabi",
+ "armeb-linux-androideabi"};
+@@ -2153,8 +2154,7 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
+ "powerpc64-suse-linux", "powerpc-montavista-linuxspe"};
+ static const char *const PPCLELibDirs[] = {"/lib32", "/lib"};
+ static const char *const PPCLETriples[] = {"powerpcle-linux-gnu",
+- "powerpcle-unknown-linux-gnu",
+- "powerpcle-linux-musl"};
++ "powerpcle-unknown-linux-gnu"};
+
+ static const char *const PPC64LibDirs[] = {"/lib64", "/lib"};
+ static const char *const PPC64Triples[] = {
+@@ -2235,6 +2235,87 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
+ return;
+ }
+
++ if (TargetTriple.isMusl()) {
++ static const char *const AArch64MuslTriples[] = {"aarch64-linux-musl"};
++ static const char *const ARMHFMuslTriples[] = {
++ "arm-linux-musleabihf", "armv7l-linux-musleabihf"
++ };
++ static const char *const ARMMuslTriples[] = {"arm-linux-musleabi"};
++ static const char *const X86_64MuslTriples[] = {"x86_64-linux-musl"};
++ static const char *const X86MuslTriples[] = {"i686-linux-musl"};
++ static const char *const MIPSMuslTriples[] = {
++ "mips-linux-musl", "mipsel-linux-musl",
++ "mipsel-linux-muslhf", "mips-linux-muslhf"
++ };
++ static const char *const PPCMuslTriples[] = {"powerpc-linux-musl"};
++ static const char *const PPCLEMuslTriples[] = {"powerpcle-linux-musl"};
++ static const char *const PPC64MuslTriples[] = {"powerpc64-linux-musl"};
++ static const char *const PPC64LEMuslTriples[] = {"powerpc64le-linux-musl"};
++
++ switch (TargetTriple.getArch()) {
++ case llvm::Triple::aarch64:
++ LibDirs.append(begin(AArch64LibDirs), end(AArch64LibDirs));
++ TripleAliases.append(begin(AArch64MuslTriples), end(AArch64MuslTriples));
++ BiarchLibDirs.append(begin(AArch64LibDirs), end(AArch64LibDirs));
++ BiarchTripleAliases.append(begin(AArch64MuslTriples), end(AArch64MuslTriples));
++ break;
++ case llvm::Triple::arm:
++ LibDirs.append(begin(ARMLibDirs), end(ARMLibDirs));
++ if (TargetTriple.getEnvironment() == llvm::Triple::MuslEABIHF) {
++ TripleAliases.append(begin(ARMHFMuslTriples), end(ARMHFMuslTriples));
++ } else {
++ TripleAliases.append(begin(ARMMuslTriples), end(ARMMuslTriples));
++ }
++ break;
++ case llvm::Triple::x86_64:
++ LibDirs.append(begin(X86_64LibDirs), end(X86_64LibDirs));
++ TripleAliases.append(begin(X86_64MuslTriples), end(X86_64MuslTriples));
++ BiarchLibDirs.append(begin(X86LibDirs), end(X86LibDirs));
++ BiarchTripleAliases.append(begin(X86MuslTriples), end(X86MuslTriples));
++ break;
++ case llvm::Triple::x86:
++ LibDirs.append(begin(X86LibDirs), end(X86LibDirs));
++ TripleAliases.append(begin(X86MuslTriples), end(X86MuslTriples));
++ BiarchLibDirs.append(begin(X86_64LibDirs), end(X86_64LibDirs));
++ BiarchTripleAliases.append(begin(X86_64MuslTriples), end(X86_64MuslTriples));
++ break;
++ case llvm::Triple::mips:
++ LibDirs.append(begin(MIPSLibDirs), end(MIPSLibDirs));
++ TripleAliases.append(begin(MIPSMuslTriples), end(MIPSMuslTriples));
++ break;
++ case llvm::Triple::ppc:
++ LibDirs.append(begin(PPCLibDirs), end(PPCLibDirs));
++ TripleAliases.append(begin(PPCMuslTriples), end(PPCMuslTriples));
++ BiarchLibDirs.append(begin(PPC64LibDirs), end(PPC64LibDirs));
++ BiarchTripleAliases.append(begin(PPC64MuslTriples), end(PPC64MuslTriples));
++ break;
++ case llvm::Triple::ppcle:
++ LibDirs.append(begin(PPCLELibDirs), end(PPCLELibDirs));
++ TripleAliases.append(begin(PPCLEMuslTriples), end(PPCLEMuslTriples));
++ BiarchLibDirs.append(begin(PPC64LELibDirs), end(PPC64LELibDirs));
++ BiarchTripleAliases.append(begin(PPC64LEMuslTriples), end(PPC64LEMuslTriples));
++ break;
++ case llvm::Triple::ppc64:
++ LibDirs.append(begin(PPC64LibDirs), end(PPC64LibDirs));
++ TripleAliases.append(begin(PPC64MuslTriples), end(PPC64MuslTriples));
++ BiarchLibDirs.append(begin(PPCLibDirs), end(PPCLibDirs));
++ BiarchTripleAliases.append(begin(PPCMuslTriples), end(PPCMuslTriples));
++ break;
++ case llvm::Triple::ppc64le:
++ LibDirs.append(begin(PPC64LELibDirs), end(PPC64LELibDirs));
++ TripleAliases.append(begin(PPC64LEMuslTriples), end(PPC64LEMuslTriples));
++ BiarchLibDirs.append(begin(PPCLELibDirs), end(PPCLELibDirs));
++ BiarchTripleAliases.append(begin(PPCLEMuslTriples), end(PPCLEMuslTriples));
++ break;
++ default:
++ break;
++ }
++ TripleAliases.push_back(TargetTriple.str());
++ if (TargetTriple.str() != BiarchTriple.str())
++ BiarchTripleAliases.push_back(BiarchTriple.str());
++ return;
++ }
++
+ // Android targets should not use GNU/Linux tools or libraries.
+ if (TargetTriple.isAndroid()) {
+ static const char *const AArch64AndroidTriples[] = {
diff --git a/srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch b/srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch
new file mode 100644
index 000000000000..4ad6412d1e6c
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch
@@ -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 =
diff --git a/srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch b/srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch
new file mode 100644
index 000000000000..21fc8003c5f1
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch
@@ -0,0 +1,48 @@
+--- a/clang/lib/Basic/Targets/PPC.h
++++ b/clang/lib/Basic/Targets/PPC.h
+@@ -415,11 +415,10 @@ public:
+ LongDoubleFormat = &llvm::APFloat::IEEEdouble();
+ } else if ((Triple.getArch() == llvm::Triple::ppc64le)) {
+ DataLayout = "e-m:e-i64:64-n32:64";
+- ABI = "elfv2";
+ } else {
+ DataLayout = "E-m:e-i64:64-n32:64";
+- ABI = "elfv1";
+ }
++ ABI = "elfv2";
+
+ if (Triple.isOSFreeBSD() || Triple.isOSOpenBSD() || Triple.isMusl()) {
+ LongDoubleWidth = LongDoubleAlign = 64;
+--- a/clang/lib/CodeGen/TargetInfo.cpp
++++ b/clang/lib/CodeGen/TargetInfo.cpp
+@@ -10927,9 +10927,9 @@ const TargetCodeGenInfo &CodeGenModule::getTargetCodeGenInfo() {
+ return SetCGInfo(new AIXTargetCodeGenInfo(Types, /*Is64Bit*/ true));
+
+ if (Triple.isOSBinFormatELF()) {
+- PPC64_SVR4_ABIInfo::ABIKind Kind = PPC64_SVR4_ABIInfo::ELFv1;
+- if (getTarget().getABI() == "elfv2")
+- Kind = PPC64_SVR4_ABIInfo::ELFv2;
++ PPC64_SVR4_ABIInfo::ABIKind Kind = PPC64_SVR4_ABIInfo::ELFv2;
++ if (getTarget().getABI() == "elfv1")
++ Kind = PPC64_SVR4_ABIInfo::ELFv1;
+ bool IsSoftFloat = CodeGenOpts.FloatABI == "soft";
+
+ return SetCGInfo(
+--- a/clang/lib/Driver/ToolChains/Clang.cpp
++++ b/clang/lib/Driver/ToolChains/Clang.cpp
+@@ -1920,14 +1920,7 @@ void Clang::AddPPCTargetArgs(const ArgList &Args,
+ const llvm::Triple &T = getToolChain().getTriple();
+ if (T.isOSBinFormatELF()) {
+ switch (getToolChain().getArch()) {
+- case llvm::Triple::ppc64: {
+- if ((T.isOSFreeBSD() && T.getOSMajorVersion() >= 13) ||
+- T.isOSOpenBSD() || T.isMusl())
+- ABIName = "elfv2";
+- else
+- ABIName = "elfv1";
+- break;
+- }
++ case llvm::Triple::ppc64:
+ case llvm::Triple::ppc64le:
+ ABIName = "elfv2";
+ break;
diff --git a/srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch b/srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch
new file mode 100644
index 000000000000..360cfc1ba7f1
--- /dev/null
+++ b/srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch
@@ -0,0 +1,35 @@
+--- 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__) || SANITIZER_RISCV64
++ defined(__hexagon__) || defined(__powerpc__) || 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_ANDROID
++#if (defined(__aarch64__) || defined(__powerpc__) || SANITIZER_RISCV64) && !SANITIZER_ANDROID
+ // GLIBC 2.20+ sys/user does not include asm/ptrace.h
+ # include <asm/ptrace.h>
+ #endif
diff --git a/srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip b/srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip
new file mode 100644
index 000000000000..d0b61c80c897
--- /dev/null
+++ b/srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip
@@ -0,0 +1,62 @@
+--- a/compiler-rt/lib/xray/xray_powerpc64.inc
++++ b/compiler-rt/lib/xray/xray_powerpc64.inc
+@@ -12,7 +12,13 @@
+
+ #include <cstdint>
+ #include <mutex>
++#ifdef __GLIBC__
+ #include <sys/platform/ppc.h>
++#else
++#include <cctype>
++#include <cstring>
++#include <cstdlib>
++#endif
+
+ #include "xray_defs.h"
+
+@@ -20,13 +26,45 @@ namespace __xray {
+
+ ALWAYS_INLINE uint64_t readTSC(uint8_t &CPU) XRAY_NEVER_INSTRUMENT {
+ CPU = 0;
++#ifdef __GLIBC__
+ return __ppc_get_timebase();
++#else
++ return __builtin_ppc_get_timebase();
++#endif
+ }
+
+ inline uint64_t getTSCFrequency() XRAY_NEVER_INSTRUMENT {
+ static std::mutex M;
+ std::lock_guard<std::mutex> Guard(M);
++#ifdef __GLIBC__
+ return __ppc_get_timebase_freq();
++#else
++ /* FIXME: a less dirty implementation? */
++ static uint64_t base;
++ if (!base) {
++ FILE *f = fopen("/proc/cpuinfo", "rb");
++ if (f) {
++ ssize_t nr;
++ /* virtually always big enough to hold the line */
++ char buf[512];
++ while (fgets(buf, sizeof(buf), f)) {
++ char *ret = strstr(buf, "timebase");
++ if (!ret) {
++ continue;
++ }
++ ret += sizeof("timebase") - 1;
++ ret = strchr(ret, ':');
++ if (!ret) {
++ continue;
++ }
++ base = strtoul(ret + 1, nullptr, 10);
++ break;
++ }
++ fclose(f);
++ }
++ }
++ return base;
++#endif
+ }
+
+ inline bool probeRequiredCPUFeatures() XRAY_NEVER_INSTRUMENT {
diff --git a/srcpkgs/llvm15/patches/libcxx-musl.patch b/srcpkgs/llvm15/patches/libcxx-musl.patch
new file mode 100644
index 000000000000..bbd31ffc2cb1
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxx-musl.patch
@@ -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,
+ typename remove_reference<decltype(errno)>::type __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
+ typename remove_reference<decltype(errno)>::type __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,
+ typename remove_reference<decltype(errno)>::type __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
+ typename remove_reference<decltype(errno)>::type __current_errno = errno;
+ if (__current_errno == 0)
+ errno = __save_errno;
diff --git a/srcpkgs/llvm15/patches/libcxx-ppc.patch b/srcpkgs/llvm15/patches/libcxx-ppc.patch
new file mode 100644
index 000000000000..7a92f8004e1c
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxx-ppc.patch
@@ -0,0 +1,22 @@
+This ensures `is_iec559` is defined correctly under all long double ABIs,
+including musl and its 64-bit long double. Also, `__ppc__` or `__ppc64__`
+is not defined on gcc.
+
+--- a/libcxx/include/limits
++++ b/libcxx/include/limits
+@@ -426,8 +426,14 @@ protected:
+ _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type signaling_NaN() _NOEXCEPT {return __builtin_nansl("");}
+ _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type denorm_min() _NOEXCEPT {return __LDBL_DENORM_MIN__;}
+
+-#if (defined(__ppc__) || defined(__ppc64__))
++#if defined(__powerpc__) || defined(__powerpc64__)
++#if (__LDBL_MAX_EXP__ > __DBL_MAX_EXP__) || (__LDBL_MANT_DIG__ == __DBL_MANT_DIG__)
++ /* IEEE 754 quadruple or double precision */
++ static _LIBCPP_CONSTEXPR const bool is_iec559 = true;
++#else
++ /* 128-bit IBM double-double */
+ static _LIBCPP_CONSTEXPR const bool is_iec559 = false;
++#endif
+ #else
+ static _LIBCPP_CONSTEXPR const bool is_iec559 = true;
+ #endif
diff --git a/srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch b/srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch
new file mode 100644
index 000000000000..70292beb2fcd
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch
@@ -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()
diff --git a/srcpkgs/llvm15/patches/libcxxabi-dl.patch b/srcpkgs/llvm15/patches/libcxxabi-dl.patch
new file mode 100644
index 000000000000..3a15f9db8c98
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxxabi-dl.patch
@@ -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 @@
+ target_link_libraries(${target} PRIVATE m)
+ endif()
+
++ if (LIBCXX_HAS_C_LIB)
++ target_link_libraries(${target} PRIVATE dl)
++ endif()
++
+ if (LIBCXX_HAS_RT_LIB)
+ target_link_libraries(${target} PRIVATE rt)
+ endif()
diff --git a/srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip b/srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip
new file mode 100644
index 000000000000..74aa7576ecf9
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip
@@ -0,0 +1,63 @@
+This fixes build at least with gcc9 which does not define `__ppc__`.
+
+--- a/libunwind/include/__libunwind_config.h
++++ b/libunwind/include/__libunwind_config.h
+@@ -49,7 +49,7 @@
+ # define _LIBUNWIND_CONTEXT_SIZE 167
+ # define _LIBUNWIND_CURSOR_SIZE 179
+ # define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_PPC64
+-# elif defined(__ppc__)
++# elif defined(__powerpc__)
+ # define _LIBUNWIND_TARGET_PPC 1
+ # define _LIBUNWIND_CONTEXT_SIZE 117
+ # define _LIBUNWIND_CURSOR_SIZE 124
+--- a/libunwind/src/UnwindRegistersRestore.S
++++ b/libunwind/src/UnwindRegistersRestore.S
+@@ -392,7 +392,7 @@ Lnovec:
+ PPC64_LR(3)
+ bctr
+
+-#elif defined(__ppc__)
++#elif defined(__powerpc__)
+
+ DEFINE_LIBUNWIND_FUNCTION(_ZN9libunwind13Registers_ppc6jumptoEv)
+ //
+--- a/libunwind/src/UnwindRegistersSave.S
++++ b/libunwind/src/UnwindRegistersSave.S
+@@ -554,7 +554,7 @@ DEFINE_LIBUNWIND_FUNCTION(__unw_getcontext)
+ blr
+
+
+-#elif defined(__ppc__)
++#elif defined(__powerpc__)
+
+ //
+ // extern int unw_getcontext(unw_context_t* thread_state)
+--- a/libunwind/src/config.h
++++ b/libunwind/src/config.h
+@@ -95,12 +95,12 @@
+ #define _LIBUNWIND_BUILD_SJLJ_APIS
+ #endif
+
+-#if defined(__i386__) || defined(__x86_64__) || defined(__ppc__) || defined(__ppc64__) || defined(__powerpc64__)
++#if defined(__i386__) || defined(__x86_64__) || defined(__powerpc__) || defined(__powerpc64__)
+ #define _LIBUNWIND_SUPPORT_FRAME_APIS
+ #endif
+
+ #if defined(__i386__) || defined(__x86_64__) || \
+- defined(__ppc__) || defined(__ppc64__) || defined(__powerpc64__) || \
++ defined(__powerpc__) || defined(__powerpc64__) || \
+ (!defined(__APPLE__) && defined(__arm__)) || \
+ (defined(__arm64__) || defined(__aarch64__)) || \
+ defined(__mips__)
+--- a/libunwind/src/libunwind.cpp
++++ b/libunwind/src/libunwind.cpp
+@@ -42,7 +42,7 @@ _LIBUNWIND_HIDDEN int __unw_init_local(unw_cursor_t *cursor,
+ # define REGISTER_KIND Registers_x86_64
+ #elif defined(__powerpc64__)
+ # define REGISTER_KIND Registers_ppc64
+-#elif defined(__ppc__)
++#elif defined(__powerpc__)
+ # define REGISTER_KIND Registers_ppc
+ #elif defined(__aarch64__)
+ # define REGISTER_KIND Registers_arm64
diff --git a/srcpkgs/llvm15/patches/lldb-musl.patch b/srcpkgs/llvm15/patches/lldb-musl.patch
new file mode 100644
index 000000000000..026c5e1e61ba
--- /dev/null
+++ b/srcpkgs/llvm15/patches/lldb-musl.patch
@@ -0,0 +1,40 @@
+--- a/lldb/source/Plugins/Process/Linux/Procfs.h
++++ b/lldb/source/Plugins/Process/Linux/Procfs.h
+@@ -10,6 +10,7 @@
+ // sys/procfs.h on Android/Linux for all supported architectures.
+
+ #include <sys/ptrace.h>
++#include <asm/ptrace.h>
+
+ #include "lldb/lldb-types.h"
+
+@@ -17,23 +18,13 @@
+
+ #include <vector>
+
+-#ifdef __ANDROID__
+-#if defined(__arm64__) || defined(__aarch64__)
+-typedef unsigned long elf_greg_t;
+-typedef elf_greg_t
+- elf_gregset_t[(sizeof(struct user_pt_regs) / sizeof(elf_greg_t))];
+-typedef struct user_fpsimd_state elf_fpregset_t;
+-#ifndef NT_FPREGSET
+-#define NT_FPREGSET NT_PRFPREG
+-#endif // NT_FPREGSET
+-#elif defined(__mips__)
+-#ifndef NT_FPREGSET
+-#define NT_FPREGSET NT_PRFPREG
+-#endif // NT_FPREGSET
+-#endif
+-#else // __ANDROID__
++#if !defined(__GLIBC__) && defined(__powerpc__)
++#define pt_regs musl_pt_regs
++#include <sys/procfs.h>
++#undef pt_regs
++#else
+ #include <sys/procfs.h>
+-#endif // __ANDROID__
++#endif
+
+ namespace lldb_private {
+ namespace process_linux {
diff --git a/srcpkgs/llvm15/patches/llvm-001-musl.patch b/srcpkgs/llvm15/patches/llvm-001-musl.patch
new file mode 100644
index 000000000000..f2a3f8d62813
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-001-musl.patch
@@ -0,0 +1,57 @@
+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;
+diff --git a/lib/Support/Unix/DynamicLibrary.inc b/lib/Support/Unix/DynamicLibrary.inc
+index a2a37996..2f86c470 100644
+--- a/llvm/lib/Support/Unix/DynamicLibrary.inc
++++ b/llvm/lib/Support/Unix/DynamicLibrary.inc
+@@ -102,7 +102,7 @@ static void *DoSearch(const char* SymbolName) {
+
+ // This macro returns the address of a well-known, explicit symbol
+ #define EXPLICIT_SYMBOL(SYM) \
+- if (!strcmp(SymbolName, #SYM)) return &SYM
++ if (!strcmp(SymbolName, #SYM)) return (void *)&SYM
+
+ // Under glibc we have a weird situation. The stderr/out/in symbols are both
+ // macros and global variables because of standards requirements. So, we
+diff --git a/utils/unittest/googletest/src/gtest.cc b/utils/unittest/googletest/src/gtest.cc
+index d882ab2e..f1fb12d0 100644
+--- a/llvm/utils/unittest/googletest/src/gtest.cc
++++ b/llvm/utils/unittest/googletest/src/gtest.cc
+@@ -128,6 +128,7 @@
+
+ #if GTEST_CAN_STREAM_RESULTS_
+ # include <arpa/inet.h> // NOLINT
++# include <sys/socket.h> // NOLINT
+ # include <netdb.h> // NOLINT
+ # include <sys/socket.h> // NOLINT
+ # include <sys/types.h> // NOLINT
diff --git a/srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch b/srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch
new file mode 100644
index 000000000000..0071d964bd37
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch
@@ -0,0 +1,30 @@
+This patches LLVM to use ELFv2 on ppc64 unconditionally unless overridden. We
+need this because unlike most distros we use ELFv2 for both glibc and musl
+on big endian ppc64.
+
+diff --git a/lib/Target/PowerPC/PPCTargetMachine.cpp b/lib/Target/PowerPC/PPCTargetMachine.cpp
+index 0634833e..b7cbc2e7 100644
+--- a/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp
++++ b/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp
+@@ -222,9 +222,8 @@ static PPCTargetMachine::PPCABI computeTargetABI(const Triple &TT,
+
+ switch (TT.getArch()) {
+ case Triple::ppc64le:
+- return PPCTargetMachine::PPC_ABI_ELFv2;
+ case Triple::ppc64:
+- return PPCTargetMachine::PPC_ABI_ELFv1;
++ return PPCTargetMachine::PPC_ABI_ELFv2;
+ default:
+ return PPCTargetMachine::PPC_ABI_UNKNOWN;
+ }
+diff --git a/test/CodeGen/PowerPC/ppc64-elf-abi.ll b/test/CodeGen/PowerPC/ppc64-elf-abi.ll
+index 8b1cf6b5..296a2afa 100644
+--- a/llvm/test/CodeGen/PowerPC/ppc64-elf-abi.ll
++++ b/llvm/test/CodeGen/PowerPC/ppc64-elf-abi.ll
+@@ -1,4 +1,5 @@
+-; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv1
++; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv2
++; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-musl < %s | FileCheck %s -check-prefix=CHECK-ELFv2
+ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu -target-abi elfv1 < %s | FileCheck %s -check-prefix=CHECK-ELFv1
+ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu -target-abi elfv2 < %s | FileCheck %s -check-prefix=CHECK-ELFv2
+ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv2
diff --git a/srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch b/srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch
new file mode 100644
index 000000000000..b5d15974375d
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch
@@ -0,0 +1,11 @@
+--- a/llvm/lib/Target/PowerPC/PPCSubtarget.cpp
++++ b/llvm/lib/Target/PowerPC/PPCSubtarget.cpp
+@@ -165,7 +165,7 @@ void PPCSubtarget::initSubtargetFeatures(StringRef CPU, StringRef FS) {
+
+ if ((TargetTriple.isOSFreeBSD() && TargetTriple.getOSMajorVersion() >= 13) ||
+ TargetTriple.isOSNetBSD() || TargetTriple.isOSOpenBSD() ||
+- TargetTriple.isMusl())
++ isTargetLinux())
+ SecurePlt = true;
+
+ if (HasSPE && IsPPC64)
diff --git a/srcpkgs/llvm15/patches/llvm-004-override-opt.patch b/srcpkgs/llvm15/patches/llvm-004-override-opt.patch
new file mode 100644
index 000000000000..51d0e4b31b32
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-004-override-opt.patch
@@ -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)
diff --git a/srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch b/srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch
new file mode 100644
index 000000000000..d332687b9d92
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch
@@ -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);
diff --git a/srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch b/srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch
new file mode 100644
index 000000000000..a00abd216665
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch
@@ -0,0 +1,25 @@
+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__) || defined (__ppc__) || \
+- defined(_POWER) || defined(_ARCH_PPC))
++ defined(_POWER) || defined(_ARCH_PPC) || (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
diff --git a/srcpkgs/llvm15/template b/srcpkgs/llvm15/template
new file mode 100644
index 000000000000..d80c629c4778
--- /dev/null
+++ b/srcpkgs/llvm15/template
@@ -0,0 +1,433 @@
+# Template file for 'llvm15'
+pkgname=llvm15
+version=15.0.5
+revision=1
+build_wrksrc=llvm
+build_style=cmake
+configure_args="
+ -DCMAKE_BUILD_TYPE=Release -Wno-dev
+ -DENABLE_LINKER_BUILD_ID=YES
+ -DLLDB_USE_SYSTEM_SIX=YES
+ -DLIBCXX_CXX_ABI=libcxxabi
+ -DLIBCXX_ENABLE_STATIC_ABI_LIBRARY=YES
+ -DLIBCXXABI_USE_LLVM_UNWINDER=YES
+ -DLIBCXXABI_ENABLE_STATIC_UNWINDER=YES
+ -DLIBOMP_ENABLE_SHARED=YES
+ -DLIBOMP_INSTALL_ALIASES=NO
+ -DLLVM_INCLUDE_DOCS=YES
+ -DLLVM_BUILD_DOCS=YES
+ -DLLVM_ENABLE_SPHINX=YES
+ -DSPHINX_WARNINGS_AS_ERRORS=NO
+ -DLLVM_INSTALL_UTILS=YES
+ -DLLVM_BUILD_LLVM_DYLIB=YES
+ -DLLVM_LINK_LLVM_DYLIB=YES
+ -DLLVM_ENABLE_RTTI=YES
+ -DLLVM_ENABLE_FFI=YES
+ -DLLVM_BINUTILS_INCDIR=/usr/include"
+hostmakedepends="perl python3 zlib-devel libffi-devel swig python3-Sphinx
+ python3-recommonmark python3-sphinx-automodapi"
+makedepends="python3-devel zlib-devel elfutils-devel libffi-devel libedit-devel
+ libxml2-devel binutils-devel libatomic-devel"
+depends="libllvm15>=${version}_${revision}"
+short_desc="Low Level Virtual Machine"
+maintainer="Orphaned <orphan@voidlinux.org>"
+license="Apache-2.0"
+homepage="https://www.llvm.org"
+distfiles="https://github.com/llvm/llvm-project/releases/download/llvmorg-${version}/llvm-project-${version}.src.tar.xz"
+checksum=9c4278a6b8884eb7f4ae7dfe3c8e5445019824885e47cfdf1392563c47316fd6
+lib32disabled=yes
+python_version=3
+
+if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
+ configure_args+=" -DLIBCXX_HAS_MUSL_LIBC=YES"
+ makedepends+=" libexecinfo-devel"
+ depends+=" libexecinfo-devel"
+fi
+
+# "operand out of range" assembler failures
+case "$XBPS_TARGET_MACHINE" in
+ ppc64*) ;;
+ ppc*) configure_args+=" -DCLANG_ENABLE_CLANGD=OFF" ;;
+esac
+
+_enabled_projects="clang;clang-tools-extra;compiler-rt;libcxx;libcxxabi;libunwind;lld"
+
+_lldb_enable=yes
+_libomp_enable=no
+
+case "$XBPS_TARGET_MACHINE" in
+ ppc64le*) ;;
+ ppc*|i686*) _lldb_enable=no ;;
+esac
+
+case "$XBPS_TARGET_MACHINE" in
+ x86_64*|aarch64*|ppc64*) _libomp_enable=yes;;
+esac
+
+subpackages="clang-tools-extra"
+
+# must go before clang
+if [ "$_libomp_enable" = "yes" ]; then
+ _enabled_projects+=";openmp"
+ subpackages+=" libomp libomp-devel"
+ # because of cmake nonsense referencing libomptarget.so.*
+ depends+=" libomp>=${version}_${revision}"
+fi
+
+subpackages+=" clang clang-analyzer libclang libclang-cpp
+ llvm-libunwind llvm-libunwind-devel libcxx libcxx-devel
+ libcxxabi libcxxabi-devel libllvm15"
+
+if [ "$_lldb_enable" = "yes" ]; then
+ # XXX fails to cross compile due to python
+ _enabled_projects+=";lldb"
+ subpackages+=" lldb lldb-devel"
+fi
+
+subpackages+=" lld lld-devel"
+
+configure_args+=" -DLLVM_ENABLE_PROJECTS=${_enabled_projects}"
+
+post_patch() {
+ if [ "$_lldb_enable" = "yes" ]; then
+ if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
+ vsed -i 's|__ptrace_request|int|g' \
+ ${wrksrc}/lldb/source/Plugins/Process/Linux/NativeProcessLinux.cpp
+ fi
+ # disable docs for lldb as they fail to generate
+ vsed -i '/add_subdirectory(docs)/d' \
+ ${wrksrc}/lldb/CMakeLists.txt
+ fi
+
+ # update config.guess for better platform detection
+ cp $XBPS_COMMONDIR/environment/configure/automake/config.guess \
+ ${wrksrc}/llvm/cmake
+
+ # fix linker failures on some archs
+ vsed -i 's,check_library_exists(gcc_s .*,set(LIBCXXABI_HAS_GCC_S_LIB ON),' \
+ ${wrksrc}/libcxxabi/cmake/config-ix.cmake
+ vsed -i 's,check_library_exists(gcc .*,set(LIBCXXABI_HAS_GCC_LIB ON),' \
+ ${wrksrc}/libcxxabi/cmake/config-ix.cmake
+
+ # need libssp_nonshared on some musl platforms (because of nodefaultlibs)
+ case "$XBPS_TARGET_MACHINE" in
+ ppc64*) ;;
+ ppc*-musl|i686-musl|mips*-musl)
+ vsed -i 's,^# Setup flags.$,add_library_flags(ssp_nonshared),' \
+ ${wrksrc}/libunwind/src/CMakeLists.txt
+ vsed -i 's,^# Setup flags.$,add_library_flags(ssp_nonshared),' \
+ ${wrksrc}/libcxxabi/src/CMakeLists.txt
+ vsed -i 's,#ssp,,' ${wrksrc}/libcxx/CMakeLists.txt
+ ;;
+ esac
+
+ case "$XBPS_TARGET_MACHINE" in
+ x86_64-musl) # some sanitizer currently only on x86_64 stuff needs backtrace
+ vsed -i 's,# Set common link flags.,list(APPEND SANITIZER_COMMON_LINK_LIBS execinfo),' \
+ ${wrksrc}/compiler-rt/CMakeLists.txt
+ ;;
+ arm*-musl|i686-musl) # sanitizer code is broken since it duplicates some libc bits
+ vsed -i 's/set(COMPILER_RT_HAS_SANITIZER_COMMON TRUE)/set(COMPILER_RT_HAS_SANITIZER_COMMON FALSE)/' \
+ ${wrksrc}/compiler-rt/cmake/config-ix.cmake
+ ;;
+ esac
+}
+
+pre_configure() {
+ local triplet
+
+ # Vastly reduce size of debugging symbols:
+ CFLAGS=${CFLAGS/ -g/ -g1}
+ CXXFLAGS=${CXXFLAGS/ -g/ -g1}
+
+ # since gcc9, the build likes to blow up for ppc32 apparently because
+ # of clang being too large for a 24-bit relative call to the PLT, so
+ # optimize for size instead
+ case "$XBPS_TARGET_MACHINE" in
+ ppc64*) ;;
+ mips*-musl|ppc*) configure_args+=" -DVOID_CXX_OPT_FLAGS=-Os" ;;
+ esac
+
+ if [ "$CROSS_BUILD" ]; then
+ msg_normal "Building host tblgen\n"
+ mkdir -p build/HOST
+ cd build/HOST
+ CC="$BUILD_CC" CXX="$BUILD_CXX" CFLAGS="$BUILD_CFLAGS" \
+ CXXFLAGS="$BUILD_CXXFLAGS" LDFLAGS="$BUILD_LDFLAGS" \
+ cmake ../.. -DCMAKE_BUILD_TYPE=Release \
+ -DLLVM_ENABLE_PROJECTS=${_enabled_projects}
+ make ${makejobs} -C utils/TableGen
+ make ${makejobs} -C tools/clang/utils/TableGen
+ [ "$_lldb_enable" = "yes" ] && make ${makejobs} -C tools/lldb/utils/TableGen
+ configure_args+=" -DLLVM_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/llvm-tblgen"
+ configure_args+=" -DCLANG_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/clang-tblgen"
+ [ "$_lldb_enable" = "yes" ] && configure_args+=" -DLLDB_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/lldb-tblgen"
+ cd ../..
+ fi
+
+ case "$XBPS_TARGET_MACHINE" in
+ i686*) _arch="X86";;
+ x86_64*) _arch="X86";;
+ armv5*) _arch="Armv5te";;
+ armv6*) _arch="Armv6";;
+ armv7*) _arch="Armv7";;
+ aarch64*) _arch="AArch64";;
+ mips*) _arch="Mips";;
+ ppc*) _arch="PowerPC";;
+ riscv64*) _arch="RISCV64";;
+ esac
+
+ triplet=${XBPS_CROSS_TRIPLET:-$XBPS_TRIPLET}
+
+ configure_args+=" -DLLVM_TARGET_ARCH=${_arch}"
+ configure_args+=" -DLLVM_HOST_TRIPLE=${triplet}"
+ configure_args+=" -DLLVM_DEFAULT_TARGET_TRIPLE=${triplet}"
+}
+
+do_install() {
+ cd build
+ cmake -DCMAKE_INSTALL_PREFIX=${DESTDIR}/usr -P cmake_install.cmake
+
+ # Required for multilib.
+ if [ "$XBPS_TARGET_MACHINE" = "x86_64" ]; then
+ for _header in llvm-config; do
+ mv ${DESTDIR}/usr/include/llvm/Config/${_header}{,-64}.h
+ vinstall ${FILESDIR}/llvm-Config-${_header}.h 644 \
+ usr/include/llvm/Config ${_header}.h
+ done
+ fi
+
+ # Remove llvm-config-host in cross builds.
+ if [ "$CROSS_BUILD" ]; then
+ rm -f ${DESTDIR}/usr/bin/llvm-config-host
+ fi
+
+ # Install libcxxabi headers
+ vinstall ${wrksrc}/libcxxabi/include/__cxxabi_config.h 644 usr/include
+ vinstall ${wrksrc}/libcxxabi/include/cxxabi.h 644 usr/include
+
+ # Install libunwind headers
+ vinstall ${wrksrc}/libunwind/include/__libunwind_config.h 644 usr/include
+ vinstall ${wrksrc}/libunwind/include/libunwind.h 644 usr/include
+ vinstall ${wrksrc}/libunwind/include/unwind.h 644 usr/include
+ vinstall ${wrksrc}/libunwind/include/mach-o/compact_unwind_encoding.h \
+ 644 usr/include/mach-o
+}
+
+clang-analyzer_package() {
+ pycompile_dirs="usr/share/scan-view"
+ depends="clang-${version}_${revision} python3 perl"
+ short_desc+=" - A source code analysis framework"
+ homepage="https://clang-analyzer.llvm.org/"
+ pkg_install() {
+ vmove usr/share/man/man1/scan-build.1
+ vmove "/usr/bin/scan-*"
+ vmove "/usr/share/scan-*"
+ vmove "/usr/libexec/*analyzer"
+ }
+}
+
+clang-tools-extra_package() {
+ lib32disabled=yes
+ depends="clang-${version}_${revision} python3"
+ short_desc+=" - Extra Clang tools"
+ homepage="https://clang.llvm.org/extra/"
+ pkg_install() {
+ vmove usr/include/clang-tidy
+ vmove usr/bin/clang-apply-replacements
+ vmove usr/bin/clang-doc
+ vmove usr/bin/clang-include-fixer
+ vmove usr/bin/clang-query
+ vmove usr/bin/clang-rename
+ vmove usr/bin/clang-reorder-fields
+ vmove usr/bin/clang-tidy
+ vmove usr/bin/clangd
+ vmove usr/bin/diagtool
+ vmove usr/bin/find-all-symbols
+ vmove usr/bin/hmaptool
+ vmove usr/bin/modularize
+ vmove usr/bin/pp-trace
+ vmove usr/bin/sancov
+ vmove "usr/lib/libclangApplyReplacements*"
+ vmove "usr/lib/libclangDoc*"
+ vmove "usr/lib/libclangIncludeFixer*"
+ vmove "usr/lib/libclangReorderFields*"
+ vmove "usr/lib/libclangQuery*"
+ vmove "usr/lib/libclangTidy*"
+ vmove "usr/share/clang/*include-fixer*"
+ vmove "usr/share/clang/*rename*"
+ vmove "usr/share/clang/*tidy*"
+ vmove usr/share/doc/LLVM/clang-tools
+ vmove usr/share/man/man1/extraclangtools.1
+ vmove usr/share/man/man1/diagtool.1
+ }
+}
+
+clang_package() {
+ lib32disabled=yes
+ depends="libstdc++-devel libgcc-devel binutils ${XBPS_TARGET_LIBC}-devel
+ libclang-${version}_${revision}"
+ short_desc+=" - C language family frontend"
+ homepage="https://clang.llvm.org/"
+ pkg_install() {
+ vmove usr/include/clang
+ vmove usr/include/clang-c
+ vmove "usr/bin/*clang*"
+ vmove usr/bin/c-index-test
+ vmove usr/lib/clang
+ vmove usr/lib/cmake/clang
+ vmove "usr/lib/libclang*.a"
+ vmove "usr/lib/libclang*.so"
+ vmove usr/share/clang
+ vmove usr/share/doc/LLVM/clang
+ vmove usr/share/man/man1/clang.1
+ }
+}
+
+libclang_package() {
+ short_desc+=" - C frontend runtime library"
+ pkg_install() {
+ vmove "usr/lib/libclang.so.*"
+ }
+}
+
+libclang-cpp_package() {
+ short_desc+=" - C frontend runtime library (C++ interface)"
+ pkg_install() {
+ vmove "usr/lib/libclang-cpp.so.*"
+ }
+}
+
+lld_package() {
+ lib32disabled=yes
+ short_desc+=" - linker"
+ homepage="https://lld.llvm.org"
+ pkg_install() {
+ vmove usr/bin/lld*
+ vmove usr/bin/wasm-ld
+ vmove usr/bin/ld.lld*
+ vmove usr/bin/ld64.lld*
+ vmove usr/share/doc/LLVM/lld
+ }
+}
+
+lld-devel_package() {
+ lib32disabled=yes
+ short_desc+=" - linker - development files"
+ homepage="https://lld.llvm.org"
+ depends="lld>=${version}_${revision}"
+ pkg_install() {
+ vmove usr/include/lld
+ vmove usr/lib/cmake/lld
+ vmove "usr/lib/liblld*a"
+ }
+}
+
+lldb_package() {
+ lib32disabled=yes
+ depends+=" python3-six"
+ short_desc+=" - LLDB debugger"
+ homepage="https://lldb.llvm.org/"
+ pkg_install() {
+ vmove usr/bin/*lldb*
+ vmove usr/lib/liblldb*so.*
+ vmove /usr/lib/python*
+ }
+}
+
+lldb-devel_package() {
+ lib32disabled=yes
+ depends="lldb>=${version}_${revision}"
+ short_desc+=" - LLDB debugger - development files"
+ pkg_install() {
+ vmove usr/include/lldb
+ vmove "usr/lib/liblldb*.so"
+ }
+}
+
+llvm-libunwind_package() {
+ short_desc+=" - libunwind"
+ pkg_install() {
+ vmove "usr/lib/${XBPS_TRIPLET}/libunwind.so.*"
+ }
+}
+
+llvm-libunwind-devel_package() {
+ short_desc+=" - libunwind - development files"
+ depends="llvm-libunwind>=${version}_${revision}"
+ conflicts="libunwind-devel>=0"
+ pkg_install() {
+ vmove "usr/lib/${XBPS_TRIPLET}/libunwind.so"
+ vmove "usr/lib/${XBPS_TRIPLET}/libunwind.a"
+ vmove "usr/include/*unwind*"
+ vmove usr/include/mach-o
+ vmove usr/share/doc/LLVM/libunwind
+ }
+}
+
+libcxxabi_package() {
+ short_desc+=" - low level support for libc++"
+ pkg_install() {
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++abi.so.*"
+ }
+}
+
+libcxxabi-devel_package() {
+ short_desc+=" - low level support for libc++ - development files"
+ depends="libcxxabi>=${version}_${revision}"
+ pkg_install() {
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++abi.so"
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++abi.a"
+ vmove "usr/include/*cxxabi*"
+ }
+}
+
+libcxx_package() {
+ short_desc+=" - C++ standard library"
+ pkg_install() {
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++.so.*"
+ }
+}
+
+libcxx-devel_package() {
+ short_desc+=" - C++ standard library - development files"
+ depends="libcxx>=${version}_${revision}"
+ pkg_install() {
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++.so"
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++.a"
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++experimental.a"
+ vmove usr/include/c++
+ vmove usr/share/doc/LLVM/libcxx
+ }
+}
+
+libomp_package() {
+ short_desc+=" - Clang OpenMP support library"
+ pkg_install() {
+ vmove usr/lib/libomp.so
+ vmove usr/lib/libompd.so
+ vmove "usr/lib/libomptarget.rtl.*.so"
+ vmove usr/lib/libarcher.so
+ vmove "usr/lib/libomp*.so.*"
+ }
+}
+
+libomp-devel_package() {
+ short_desc+=" - Clang OpenMP support library - development files"
+ depends="libomp>=${version}_${revision}"
+ pkg_install() {
+ vmove "usr/lib/libomp*.so"
+ vmove "usr/lib/libarcher*"
+ vmove "usr/include/omp*.h"
+ vmove "usr/lib/clang/${version}/include/omp*.h"
+ vmove usr/share/doc/LLVM/openmp
+ vmove usr/share/man/man1/llvmopenmp.1
+ }
+}
+
+libllvm15_package() {
+ short_desc+=" - runtime library"
+ pkg_install() {
+ vmove "usr/lib/libLLVM-*.so*"
+ }
+}
diff --git a/srcpkgs/llvm15/update b/srcpkgs/llvm15/update
new file mode 100644
index 000000000000..e95cf26b3586
--- /dev/null
+++ b/srcpkgs/llvm15/update
@@ -0,0 +1,3 @@
+site="https://github.com/llvm/llvm-project/releases"
+pattern="llvmorg-\K(\d+.){2}\d+(-rc\d+)?"
+ignore="*-rc*"
^ permalink raw reply [flat|nested] 96+ messages in thread
* Re: [PR PATCH] [Updated] [WIP] LLVM 15
2022-11-28 15:30 [PR PATCH] [WIP] LLVM 15 tranzystorek-io
` (2 preceding siblings ...)
2022-11-28 19:13 ` [PR PATCH] [Updated] " tranzystorek-io
@ 2022-11-28 23:49 ` tranzystorek-io
2022-11-29 0:31 ` tranzystorek-io
` (90 subsequent siblings)
94 siblings, 0 replies; 96+ messages in thread
From: tranzystorek-io @ 2022-11-28 23:49 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 384 bytes --]
There is an updated pull request by tranzystorek-io against master on the void-packages repository
https://github.com/tranzystorek-io/void-packages llvm15
https://github.com/void-linux/void-packages/pull/40821
[WIP] LLVM 15
[ci skip]
TODO:
- [ ] Adjust patches marked as `.patch.skip`
A patch file from https://github.com/void-linux/void-packages/pull/40821.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-llvm15-40821.patch --]
[-- Type: text/x-diff, Size: 183396 bytes --]
From 647d83b69f6f9ec362d5dc43171ef63cc18946f7 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sat, 5 Nov 2022 11:33:11 -0700
Subject: [PATCH 01/38] binutils: update to 2.39.
---
...e3f3bd6d460491f8c8d032a7fea88d5ec8ff.patch | 60 -----------------
.../fix-libcollector-without-java.patch | 53 +++++++++++++++
.../patches/ppc64-revert-gnu-attributes.patch | 66 +++++--------------
srcpkgs/binutils/template | 25 ++++---
4 files changed, 87 insertions(+), 117 deletions(-)
delete mode 100644 srcpkgs/binutils/patches/1767e3f3bd6d460491f8c8d032a7fea88d5ec8ff.patch
create mode 100644 srcpkgs/binutils/patches/fix-libcollector-without-java.patch
diff --git a/srcpkgs/binutils/patches/1767e3f3bd6d460491f8c8d032a7fea88d5ec8ff.patch b/srcpkgs/binutils/patches/1767e3f3bd6d460491f8c8d032a7fea88d5ec8ff.patch
deleted file mode 100644
index a55432d83cff..000000000000
--- a/srcpkgs/binutils/patches/1767e3f3bd6d460491f8c8d032a7fea88d5ec8ff.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-From 1767e3f3bd6d460491f8c8d032a7fea88d5ec8ff Mon Sep 17 00:00:00 2001
-From: "H.J. Lu" <hjl.tools@gmail.com>
-Date: Mon, 16 Nov 2020 06:37:53 -0800
-Subject: [PATCH] elf: Set rel_from_abs to 1 for __ehdr_start
-
-bfdlink.h has
-
- /* Symbol will be converted from absolute to section-relative. Set for
- symbols defined by a script from "dot" (also SEGMENT_START or ORIGIN)
- outside of an output section statement. */
- unsigned int rel_from_abs : 1;
-
-linker.c has
-
-.{* Return TRUE if the symbol described by a linker hash entry H
-. is going to be absolute. Linker-script defined symbols can be
-. converted from absolute to section-relative ones late in the
-. link. Use this macro to correctly determine whether the symbol
-. will actually end up absolute in output. *}
-.#define bfd_is_abs_symbol(H) \
-. (((H)->type == bfd_link_hash_defined \
-. || (H)->type == bfd_link_hash_defweak) \
-. && bfd_is_abs_section ((H)->u.def.section) \
-. && !(H)->rel_from_abs)
-.
-
-Set rel_from_abs to 1 for __ehdr_start which will be converted from
-absolute to section-relative in assign_file_positions_for_load_sections.
-
- PR ld/26869
- * ldelf.c (ldelf_before_allocation): Set rel_from_abs to 1 for
- __ehdr_start.
- * testsuite/ld-i386/i386.exp: Run pr26869.
- * testsuite/ld-i386/pr26869.d: New file.
- * testsuite/ld-i386/pr26869.s: Likewise.
-
-(cherry picked from commit cbd5b99cce073273f668b154d4514e8e7e7ccc51)
----
- ld/ChangeLog | 9 +++++++++
- ld/ldelf.c | 2 ++
- ld/testsuite/ld-i386/i386.exp | 1 +
- ld/testsuite/ld-i386/pr26869.d | 14 ++++++++++++++
- ld/testsuite/ld-i386/pr26869.s | 3 +++
- 5 files changed, 29 insertions(+)
- create mode 100644 ld/testsuite/ld-i386/pr26869.d
- create mode 100644 ld/testsuite/ld-i386/pr26869.s
-
-diff --git a/ld/ldelf.c b/ld/ldelf.c
-index bada3ade2d7..831d032fe56 100644
---- a/ld/ldelf.c
-+++ b/ld/ldelf.c
-@@ -1589,6 +1589,8 @@ ldelf_before_allocation (char *audit, char *depaudit,
- (char *) &ehdr_start->u + sizeof ehdr_start->u.def.next,
- sizeof ehdr_start_save_u);
- ehdr_start->type = bfd_link_hash_defined;
-+ /* It will be converted to section-relative later. */
-+ ehdr_start->rel_from_abs = 1;
- ehdr_start->u.def.section = bfd_abs_section_ptr;
- ehdr_start->u.def.value = 0;
- }
diff --git a/srcpkgs/binutils/patches/fix-libcollector-without-java.patch b/srcpkgs/binutils/patches/fix-libcollector-without-java.patch
new file mode 100644
index 000000000000..54384875f358
--- /dev/null
+++ b/srcpkgs/binutils/patches/fix-libcollector-without-java.patch
@@ -0,0 +1,53 @@
+From 49ddd814ac1071af7c4f45d5f8398b91862f2c7f Mon Sep 17 00:00:00 2001
+From: Vladimir Mezentsev <vladimir.mezentsev@oracle.com>
+Date: Wed, 17 Aug 2022 19:55:23 -0700
+Subject: [PATCH] gprofng: fix bug 29479 Collection fails when built without
+ java support
+
+gprofng/ChangeLog
+2022-08-17 Vladimir Mezentsev <vladimir.mezentsev@oracle.com>
+
+ PR gprofng/29479
+ * libcollector/collector.c: Add #if defined(GPROFNG_JAVA_PROFILING) for
+ java specific code.
+ * libcollector/unwind.c: Likewise.
+---
+ gprofng/libcollector/collector.c | 2 ++
+ gprofng/libcollector/unwind.c | 2 ++
+ 2 files changed, 4 insertions(+)
+
+diff --git a/gprofng/libcollector/collector.c b/gprofng/libcollector/collector.c
+index 93c9d3330de5..ceff2c1caccb 100644
+--- a/gprofng/libcollector/collector.c
++++ b/gprofng/libcollector/collector.c
+@@ -913,8 +913,10 @@ __collector_open_experiment (const char *exp, const char *params, sp_origin_t or
+ __collector_ext_unwind_key_init (1, NULL);
+
+ /* start java attach if suitable */
++#if defined(GPROFNG_JAVA_PROFILING)
+ if (exp_origin == SP_ORIGIN_DBX_ATTACH)
+ __collector_jprofile_start_attach ();
++#endif
+ start_sec_time = CALL_UTIL (time)(NULL);
+ __collector_start_time = collector_interface.getHiResTime ();
+ TprintfT (DBG_LT0, "\t__collector_open_experiment; resetting start_time\n");
+diff --git a/gprofng/libcollector/unwind.c b/gprofng/libcollector/unwind.c
+index 119243788020..f8e11823c81e 100644
+--- a/gprofng/libcollector/unwind.c
++++ b/gprofng/libcollector/unwind.c
+@@ -557,6 +557,7 @@ __collector_get_frame_info (hrtime_t ts, int mode, void *arg)
+ int size = max_frame_size;
+
+ #define MIN(a,b) ((a)<(b)?(a):(b))
++#if defined(GPROFNG_JAVA_PROFILING)
+ /* get Java info */
+ if (__collector_java_mode && __collector_java_asyncgetcalltrace_loaded && context && !pseudo_context)
+ {
+@@ -569,6 +570,7 @@ __collector_get_frame_info (hrtime_t ts, int mode, void *arg)
+ size -= sz;
+ }
+ }
++#endif
+
+ /* get native stack */
+ if (context)
diff --git a/srcpkgs/binutils/patches/ppc64-revert-gnu-attributes.patch b/srcpkgs/binutils/patches/ppc64-revert-gnu-attributes.patch
index 5de937f4fcce..1c208dd8955c 100644
--- a/srcpkgs/binutils/patches/ppc64-revert-gnu-attributes.patch
+++ b/srcpkgs/binutils/patches/ppc64-revert-gnu-attributes.patch
@@ -1,39 +1,24 @@
-From b1faf99f3e546df2cd302bb1ad36a2078224fe8b Mon Sep 17 00:00:00 2001
+From bbf05b742fde518fb97c789b043fe0d3aaf549f0 Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@dereferenced.org>
-Date: Fri, 30 Oct 2020 16:59:48 -0600
+Date: Tue, 21 Sep 2021 14:53:13 +0000
Subject: [PATCH] Revert "PR25882, .gnu.attributes are not checked for shared
libraries"
+This revert is needed to avoid wrongly tagging objects with the incompatible
+IBM long double ABI, which is not supported by musl and will result in
+linking errors if used.
+
This reverts commit a8acd6eeb6dc2cc5460ece90f90ebe36b56b20ba.
---
- bfd/ChangeLog | 6 ------
- bfd/elf32-tic6x.c | 3 ---
- ld/ChangeLog | 6 ------
- ld/ldlang.c | 9 ++++-----
- 4 files changed, 4 insertions(+), 20 deletions(-)
+ bfd/elf32-tic6x.c | 3 ---
+ ld/ldlang.c | 10 ++++------
+ 2 files changed, 4 insertions(+), 9 deletions(-)
-diff --git a/bfd/ChangeLog b/bfd/ChangeLog
-index 9fac12538a..b5461494e8 100644
---- a/bfd/ChangeLog
-+++ b/bfd/ChangeLog
-@@ -1422,12 +1422,6 @@
- accessing root.u.def of symbols. Also check root.u.def.section
- is non-NULL. Reverse tests so as to make the logic positive.
-
--2020-05-01 Alan Modra <amodra@gmail.com>
--
-- PR 25882
-- * elf32-tic6x.c (elf32_tic6x_merge_attributes): Don't transfer
-- Tag_ABI_PIC or Tag_ABI_PID from dynamic objects to the output.
--
- 2020-05-01 Alan Modra <amodra@gmail.com>
-
- PR 25882
diff --git a/bfd/elf32-tic6x.c b/bfd/elf32-tic6x.c
-index b8b916bfd3..91bb6a10b1 100644
+index 5754f3cb860..3ad1d612749 100644
--- a/bfd/elf32-tic6x.c
+++ b/bfd/elf32-tic6x.c
-@@ -3748,9 +3748,6 @@ elf32_tic6x_merge_attributes (bfd *ibfd, struct bfd_link_info *info)
+@@ -3735,9 +3735,6 @@ elf32_tic6x_merge_attributes (bfd *ibfd, struct bfd_link_info *info)
case Tag_ABI_PIC:
case Tag_ABI_PID:
@@ -43,36 +28,20 @@ index b8b916bfd3..91bb6a10b1 100644
if (out_attr[i].i > in_attr[i].i)
out_attr[i].i = in_attr[i].i;
break;
-diff --git a/ld/ChangeLog b/ld/ChangeLog
-index 4eec7d2977..b93452f70c 100644
---- a/ld/ChangeLog
-+++ b/ld/ChangeLog
-@@ -1319,12 +1319,6 @@
- * testsuite/ld-aarch64/farcall-group.d: New test driver.
- * testsuite/ld-aarch64/aarch64-elf.exp: Run the new test.
-
--2020-05-01 Alan Modra <amodra@gmail.com>
--
-- PR 25882
-- * ldlang.c (lang_check): Call bfd_merge_private_bfd_data for
-- shared libraries.
--
- 2020-05-01 Alan Modra <amodra@gmail.com>
-
- * po/BLD-POTFILES.in: Regenerate.
diff --git a/ld/ldlang.c b/ld/ldlang.c
-index 9977195074..173d8ec349 100644
+index 37b64c89ee1..f13beaef9d9 100644
--- a/ld/ldlang.c
+++ b/ld/ldlang.c
-@@ -6972,12 +6972,11 @@ lang_check (void)
+@@ -7071,13 +7071,11 @@ lang_check (void)
bfd_printable_name (input_bfd), input_bfd,
bfd_printable_name (link_info.output_bfd));
}
-
- /* If the input bfd has no contents, it shouldn't set the
- private data of the output bfd. */
-- else if ((input_bfd->flags & DYNAMIC) != 0
-- || bfd_count_sections (input_bfd) != 0)
+- else if (!file->flags.just_syms
+- && ((input_bfd->flags & DYNAMIC) != 0
+- || bfd_count_sections (input_bfd) != 0))
+ else if (bfd_count_sections (input_bfd))
{
+ /* If the input bfd has no contents, it shouldn't set the
@@ -82,5 +51,4 @@ index 9977195074..173d8ec349 100644
/* If we aren't supposed to warn about mismatched input
--
-2.29.2
-
+2.33.0
diff --git a/srcpkgs/binutils/template b/srcpkgs/binutils/template
index 6270f8618c87..c355a5fc8016 100644
--- a/srcpkgs/binutils/template
+++ b/srcpkgs/binutils/template
@@ -1,19 +1,20 @@
# Template file for 'binutils'
pkgname=binutils
-version=2.35.1
-revision=4
+version=2.39
+revision=1
bootstrap=yes
+hostmakedepends="pkgconf"
makedepends="zlib-devel"
short_desc="GNU binary utilities"
maintainer="Enno Boland <gottox@voidlinux.org>"
license="GPL-3.0-or-later"
homepage="http://www.gnu.org/software/binutils/"
distfiles="${GNU_SITE}/$pkgname/$pkgname-$version.tar.xz"
-checksum=3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
+checksum=645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
subpackages="binutils-doc"
if [ "$CHROOT_READY" ]; then
- hostmakedepends="flex perl texinfo"
+ hostmakedepends+=" flex perl texinfo"
makedepends+=" elfutils-devel"
checkdepends="bc"
depends="binutils-doc"
@@ -35,15 +36,21 @@ do_configure() {
local conf
if [ "$CHROOT_READY" ]; then
- conf+=" --with-debuginfod"
+ conf+=" --with-debuginfod --enable-shared"
else
- conf+=" --without-debuginfod --disable-install-libbfd"
+ conf+=" --without-debuginfod --disable-shared --disable-install-libbfd"
fi
if [ "$CROSS_BUILD" ]; then
# we don't want --with-sysroot=${XBPS_CROSS_BASE} like gnu-configure
conf+=" --host=${XBPS_CROSS_TRIPLET} --with-build-sysroot=${XBPS_CROSS_BASE}"
fi
+ # gprofng currently only supports x86 and aarch64 glibc.
+ case "$XBPS_TARGET_MACHINE" in
+ x86_64|i386|aarch64) conf+=" --enable-gprofng" ;;
+ *) conf+=" --disable-gprofng" ;;
+ esac
+
case "$XBPS_TARGET_MACHINE" in
ppc*)
conf+=" --enable-secureplt"
@@ -76,13 +83,14 @@ do_configure() {
--libdir=/usr/lib \
--mandir=/usr/share/man \
--infodir=/usr/share/info \
+ --sysconfdir=/etc \
--disable-werror \
- --disable-shared \
--disable-nls \
--enable-threads \
--enable-plugins \
--enable-relro \
--enable-gold \
+ --enable-new-dtags \
--enable-deterministic-archives \
--enable-64-bit-bfd \
--enable-ld=default \
@@ -142,7 +150,8 @@ binutils-devel_package() {
pkg_install() {
vmove usr/include
vmove "usr/lib/*.a"
- vmove "usr/lib/*.so"
+ vmove "usr/lib/libbfd.so"
+ vmove "usr/lib/libopcodes.so"
}
}
From acebba575df5e434b0b4aa52835b2c1c977970b8 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sat, 5 Nov 2022 11:33:11 -0700
Subject: [PATCH 02/38] gdb: resolve conflict with binutils 2.39
---
srcpkgs/gdb/template | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/gdb/template b/srcpkgs/gdb/template
index 9c5f17ffc519..b666348fea19 100644
--- a/srcpkgs/gdb/template
+++ b/srcpkgs/gdb/template
@@ -1,7 +1,7 @@
# Template file for 'gdb'
pkgname=gdb
version=12.1
-revision=2
+revision=3
build_style=gnu-configure
pycompile_dirs="/usr/share/gdb/python"
configure_args="--disable-werror --disable-nls --with-system-readline
@@ -48,7 +48,8 @@ vopt_conflict debuginfod static
post_install() {
# resolve conflicts with binutils
- rm -r ${DESTDIR}/usr/{include,lib,share/info/bfd.info*}
+ rm -rf ${DESTDIR}/usr/{include,lib}
+ rm -rf ${DESTDIR}/usr/share/info/{bfd,ctf-spec}.info*
}
gdb-common_package() {
From cec0e7bc58b966f36f3510220644199a943c430f Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sat, 5 Nov 2022 11:33:11 -0700
Subject: [PATCH 03/38] gcc: update to 12.2.0.
---
common/shlibs | 10 +--
srcpkgs/gcc/files/gccgo-musl.patch | 71 +++------------
srcpkgs/gcc/files/libgnarl-musl.patch | 18 ++--
srcpkgs/gcc/files/libssp-musl.patch | 10 +--
.../gcc/patches/force-override-clocale.patch | 21 +++++
srcpkgs/gcc/patches/libffi_gnulinux.patch | 11 ---
.../gcc/patches/libgcc-ibm128-no-tag.patch | 10 ++-
srcpkgs/gcc/patches/mips-sgidefs_h.patch | 2 +-
srcpkgs/gcc/template | 87 +++++++++----------
9 files changed, 101 insertions(+), 139 deletions(-)
create mode 100644 srcpkgs/gcc/patches/force-override-clocale.patch
delete mode 100644 srcpkgs/gcc/patches/libffi_gnulinux.patch
diff --git a/common/shlibs b/common/shlibs
index fc5bb4dda7e6..4bb4c7ab1e3b 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -60,7 +60,7 @@ libcc1plugin.so.0 gcc-6.2.1_1
libitm.so.1 libitm-4.7.3_1
liblto_plugin.so.0 gcc-4.7.3_1
libgcc_s.so.1 libgcc-4.4.0_1
-libgo.so.16 libgo-10.2.0_1
+libgo.so.21 libgo-12.2.0_1
libgccjit.so.0 libgccjit-10.2.1pre1_1
libperl.so.5.36 perl-5.36.0_1
libgmp.so.10 gmp-5.0.1_1
@@ -857,8 +857,8 @@ libgdkmm-2.4.so.1 gtkmm2-2.24.0_1
libgtkmm-2.4.so.1 gtkmm2-2.24.0_1
libquadmath.so.0 libquadmath-4.4.0_1
libgfortran.so.5 libgfortran-8.2.0_1
-libgnarl-10.so libada-10.2.0_1
-libgnat-10.so libada-10.2.0_1
+libgnarl-12.so libada-12.2.0_1
+libgnat-12.so libada-12.2.0_1
libwebp.so.7 libwebp-0.6.0_1
libwebpmux.so.3 libwebp-0.6.0_1
libwebpdemux.so.2 libwebp-0.5.0_1
@@ -1710,8 +1710,8 @@ libextractor.so.3 libextractor-1.1_1
libextractor_common.so.1 libextractor-1.1_1
libpano13.so.3 libpano13-2.9.19_1
libubsan.so.1 libsanitizer-8.2.0_1
-libtsan.so.0 libsanitizer-6.3.0_1
-libasan.so.6 libsanitizer-10.2.0_1
+libtsan.so.2 libsanitizer-12.2.0_1
+libasan.so.8 libsanitizer-12.2.0_1
liblsan.so.0 libsanitizer-6.3.0_1
libvtv.so.0 libvtv-6.3.0_1
libatomic.so.1 libatomic-4.9.0_1
diff --git a/srcpkgs/gcc/files/gccgo-musl.patch b/srcpkgs/gcc/files/gccgo-musl.patch
index 9762739615af..12ec68dd8aa3 100644
--- a/srcpkgs/gcc/files/gccgo-musl.patch
+++ b/srcpkgs/gcc/files/gccgo-musl.patch
@@ -53,17 +53,6 @@ URL: https://code.foxkit.us/adelie/packages/tree/master/system/gcc
p := sysMmap(addr, n, prot, flags, fd, off)
if uintptr(p) == _MAP_FAILED {
return nil, errno()
---- a/libgo/go/runtime/signal_gccgo.go
-+++ b/libgo/go/runtime/signal_gccgo.go
-@@ -111,7 +111,7 @@ func getsig(i uint32) uintptr {
- if sigaction(i, nil, &sa) < 0 {
- // On GNU/Linux glibc rejects attempts to call
- // sigaction with signal 32 (SIGCANCEL) or 33 (SIGSETXID).
-- if GOOS == "linux" && (i == 32 || i == 33) {
-+ if GOOS == "linux" && (i == 32 || i == 33 || i == 34) {
- return _SIG_DFL
- }
- throw("sigaction read failure")
--- a/libgo/go/syscall/errstr.go
+++ b/libgo/go/syscall/errstr.go
@@ -5,7 +5,6 @@
@@ -140,55 +129,6 @@ URL: https://code.foxkit.us/adelie/packages/tree/master/system/gcc
plwoff = &lwoff
}
n, err = splice(rfd, plroff, wfd, plwoff, len, flags)
---- a/libgo/mksigtab.sh
-+++ b/libgo/mksigtab.sh
-@@ -82,7 +82,7 @@ checksig _SIGPWR '{_SigNotify, "SIGPWR: power failure restart"}'
- checksig _SIGEMT '{_SigThrow, "SIGEMT: emulate instruction executed"}'
- checksig _SIGINFO '{_SigNotify, "SIGINFO: status request from keyboard"}'
- checksig _SIGTHR '{_SigNotify, "SIGTHR: reserved"}'
--checksig _SIGPOLL '{_SigNotify, "SIGPOLL: pollable event occurred"}'
-+#checksig _SIGPOLL '{_SigNotify, "SIGPOLL: pollable event occurred"}'
- checksig _SIGWAITING '{_SigNotify, "SIGWAITING: reserved signal no longer used by"}'
- checksig _SIGLWP '{_SigNotify, "SIGLWP: reserved signal no longer used by"}'
- checksig _SIGFREEZE '{_SigNotify, "SIGFREEZE: special signal used by CPR"}'
-@@ -95,10 +95,12 @@ checksig _SIGLOST ' {_SigNotify, "SIGLOST: resource lost (Sun); server died (G
-
- # Special handling of signals 32 and 33 on GNU/Linux systems,
- # because they are special to glibc.
-+# Signal 34 is additionally special to Linux systems with musl.
- if test "${GOOS}" = "linux"; then
-- SIGLIST=$SIGLIST"_32__33_"
-+ SIGLIST=$SIGLIST"_32__33__34_"
- echo ' 32: {_SigSetStack + _SigUnblock, "signal 32"}, /* SIGCANCEL; see issue 6997 */'
- echo ' 33: {_SigSetStack + _SigUnblock, "signal 33"}, /* SIGSETXID; see issues 3871, 9400, 12498 */'
-+ echo ' 34: {_SigSetStack + _SigUnblock, "signal 34"}, /* see issue 30062 */'
- fi
-
- if test "${GOOS}" = "aix"; then
---- a/libgo/runtime/go-signal.c 2020-07-23 08:35:19.004402840 +0200
-+++ b/libgo/runtime/go-signal.c 2020-08-09 21:35:54.352886232 +0200
-@@ -224,7 +224,11 @@
- #elif defined(__alpha__) && defined(__linux__)
- ret.sigpc = ((ucontext_t*)(context))->uc_mcontext.sc_pc;
- #elif defined(__PPC__) && defined(__linux__)
-- ret.sigpc = ((ucontext_t*)(context))->uc_mcontext.regs->nip;
-+ #ifdef __PPC64__
-+ ret.sigpc = ((ucontext_t*)(context))->uc_mcontext.gp_regs[32];
-+ #else
-+ ret.sigpc = ((ucontext_t*)(context))->uc_mcontext.gregs[32];
-+ #endif
- #elif defined(__PPC__) && defined(_AIX)
- ret.sigpc = ((ucontext_t*)(context))->uc_mcontext.jmp_context.iar;
- #elif defined(__aarch64__) && defined(__linux__)
-@@ -333,7 +337,7 @@
- runtime_printf("sp %X\n", m->sc_regs[30]);
- runtime_printf("pc %X\n", m->sc_pc);
- }
--#elif defined(__PPC__) && defined(__LITTLE_ENDIAN__) && defined(__linux__)
-+#elif defined(__PPC__) && defined(__LITTLE_ENDIAN__) && defined(__linux__) && defined(__GLIBC__)
- {
- mcontext_t *m = &((ucontext_t*)(context))->uc_mcontext;
- int i;
--- a/libgo/runtime/runtime.h
+++ b/libgo/runtime/runtime.h
@@ -500,10 +500,13 @@ int __go_setcontext(__go_context_t*);
@@ -220,3 +160,14 @@ URL: https://code.foxkit.us/adelie/packages/tree/master/system/gcc
#if defined(HAVE_SYS_UTSNAME_H)
#include <sys/utsname.h>
#endif
+--- a/libgo/go/runtime/os_linux.go
++++ b/libgo/go/runtime/os_linux.go
+@@ -365,7 +365,7 @@ func setThreadCPUProfiler(hz int32) {
+ var sevp _sigevent
+ sevp.sigev_notify = _SIGEV_THREAD_ID
+ sevp.sigev_signo = _SIGPROF
+- *((*int32)(unsafe.Pointer(&sevp._sigev_un))) = int32(mp.procid)
++ *((*int32)(unsafe.Pointer(&sevp.__sev_fields))) = int32(mp.procid)
+ ret := timer_create(_CLOCK_THREAD_CPUTIME_ID, &sevp, &timerid)
+ if ret != 0 {
+ // If we cannot create a timer for this M, leave profileTimerValid false
diff --git a/srcpkgs/gcc/files/libgnarl-musl.patch b/srcpkgs/gcc/files/libgnarl-musl.patch
index 99a734c42c90..91c95949e0e9 100644
--- a/srcpkgs/gcc/files/libgnarl-musl.patch
+++ b/srcpkgs/gcc/files/libgnarl-musl.patch
@@ -5,7 +5,7 @@ Reason: Patch libgnarl to not use function missing from musl.
diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-osinte__linux.ads gcc-8.2.0-new/gcc/ada/libgnarl/s-osinte__linux.ads
--- a/gcc/ada/libgnarl/s-osinte__linux.ads 2018-01-11 00:55:25.000000000 -0800
+++ b/gcc/ada/libgnarl/s-osinte__linux.ads 2018-11-01 16:16:23.372452951 -0700
-@@ -394,12 +394,6 @@ package System.OS_Interface is
+@@ -403,12 +403,6 @@ package System.OS_Interface is
PTHREAD_RWLOCK_PREFER_WRITER_NP : constant := 1;
PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP : constant := 2;
@@ -18,7 +18,7 @@ diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-osinte__linux.ads gcc-8.2.0-new/gcc/ada/l
function pthread_rwlock_init
(mutex : access pthread_rwlock_t;
attr : access pthread_rwlockattr_t) return int;
-@@ -464,11 +458,6 @@ package System.OS_Interface is
+@@ -470,11 +464,6 @@ package System.OS_Interface is
protocol : int) return int;
pragma Import (C, pthread_mutexattr_setprotocol);
@@ -33,7 +33,7 @@ diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-osinte__linux.ads gcc-8.2.0-new/gcc/ada/l
diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-taprop__linux.adb gcc-8.2.0-new/gcc/ada/libgnarl/s-taprop__linux.adb
--- a/gcc/ada/libgnarl/s-taprop__linux.adb 2018-01-11 00:55:25.000000000 -0800
+++ b/gcc/ada/libgnarl/s-taprop__linux.adb 2018-11-13 11:28:36.433964449 -0800
-@@ -202,9 +202,6 @@ package body System.Task_Primitives.Oper
+@@ -198,9 +198,6 @@ package body System.Task_Primitives.Oper
pragma Import
(C, GNAT_pthread_condattr_setup, "__gnat_pthread_condattr_setup");
@@ -43,7 +43,7 @@ diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-taprop__linux.adb gcc-8.2.0-new/gcc/ada/l
-- We do not have pragma Linker_Options ("-lcap"); here, because this
-- library is not present on many Linux systems. 'libcap' is the Linux
-- "capabilities" library, called by __gnat_has_cap_sys_nice.
-@@ -214,38 +211,6 @@ package body System.Task_Primitives.Oper
+@@ -210,38 +207,6 @@ package body System.Task_Primitives.Oper
-- Convert Ada priority to Linux priority. Priorities are 1 .. 99 on
-- GNU/Linux, so we map 0 .. 98 to 1 .. 99.
@@ -76,13 +76,13 @@ diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-taprop__linux.adb gcc-8.2.0-new/gcc/ada/l
- return Ceiling_Support;
- end Get_Ceiling_Support;
-
-- pragma Warnings (Off, "non-static call not allowed in preelaborated unit");
+- pragma Warnings (Off, "non-preelaborable call not allowed*");
- Ceiling_Support : constant Boolean := Get_Ceiling_Support;
-- pragma Warnings (On, "non-static call not allowed in preelaborated unit");
+- pragma Warnings (On, "non-preelaborable call not allowed*");
-- True if the locking policy is Ceiling_Locking, and the current process
-- has permission to use this policy. The process has permission if it is
-- running as 'root', or if the capability was set by the setcap command,
-@@ -348,7 +313,9 @@ package body System.Task_Primitives.Oper
+@@ -344,7 +309,9 @@ package body System.Task_Primitives.Oper
-- Init_Mutex --
----------------
@@ -92,7 +92,7 @@ diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-taprop__linux.adb gcc-8.2.0-new/gcc/ada/l
Mutex_Attr : aliased pthread_mutexattr_t;
Result, Result_2 : C.int;
-@@ -360,16 +327,7 @@ package body System.Task_Primitives.Oper
+@@ -356,16 +323,7 @@ package body System.Task_Primitives.Oper
return Result;
end if;
@@ -110,7 +110,7 @@ diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-taprop__linux.adb gcc-8.2.0-new/gcc/ada/l
Result := pthread_mutexattr_setprotocol
(Mutex_Attr'Access, PTHREAD_PRIO_INHERIT);
pragma Assert (Result = 0);
-@@ -409,11 +367,6 @@ package body System.Task_Primitives.Oper
+@@ -405,11 +363,6 @@ package body System.Task_Primitives.Oper
Result := pthread_rwlockattr_init (RWlock_Attr'Access);
pragma Assert (Result = 0);
diff --git a/srcpkgs/gcc/files/libssp-musl.patch b/srcpkgs/gcc/files/libssp-musl.patch
index b21a2c29e57c..99f248401a1c 100644
--- a/srcpkgs/gcc/files/libssp-musl.patch
+++ b/srcpkgs/gcc/files/libssp-musl.patch
@@ -2,9 +2,9 @@ First part taken from Alpine.
Second part added to prevent gccgo from thinking it can -fsplit-stack on musl.
---- a/gcc/gcc.c
-+++ b/gcc/gcc.c
-@@ -874,10 +874,15 @@ proper position among the other output files. */
+--- a/gcc/gcc.cc
++++ b/gcc/gcc.cc
+@@ -984,10 +984,15 @@ proper position among the other output f
#define LINK_GCC_C_SEQUENCE_SPEC "%G %{!nolibc:%L %G}"
#endif
@@ -22,10 +22,10 @@ Second part added to prevent gccgo from thinking it can -fsplit-stack on musl.
#else
#define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \
"|fstack-protector-strong|fstack-protector-explicit" \
-@@ -1155,7 +1160,7 @@ static const char *cc1_options =
+@@ -1280,7 +1285,7 @@ static const char *cc1_options =
%{-version:--version}\
%{-help=*:--help=%*}\
- %{!fsyntax-only:%{S:%W{o*}%{!o*:-o %b.s}}}\
+ %{!fsyntax-only:%{S:%W{o*}%{!o*:-o %w%b.s}}}\
- %{fsyntax-only:-o %j} %{-param*}\
+ %{fsyntax-only:-o %j} %{-param*} " NO_SSP_SPEC "\
%{coverage:-fprofile-arcs -ftest-coverage}\
diff --git a/srcpkgs/gcc/patches/force-override-clocale.patch b/srcpkgs/gcc/patches/force-override-clocale.patch
new file mode 100644
index 000000000000..8af8a7150dd9
--- /dev/null
+++ b/srcpkgs/gcc/patches/force-override-clocale.patch
@@ -0,0 +1,21 @@
+This is necessary when building a gnu cross compiler for a musl target.
+Otherwise, even if clocale manually is set to gnu, it will be reset to generic
+when the test is performed using AC_EGREP_CPP().
+--- a/libstdc++-v3/configure
++++ b/libstdc++-v3/configure
+@@ -16493,6 +16493,7 @@ fi
+
+ # Sanity check model, and test for special functionality.
+ if test $enable_clocale_flag = gnu; then
++ if test $enable_clocale = auto; then
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h. */
+
+@@ -16509,6 +16510,7 @@ else
+ enable_clocale_flag=generic
+ fi
+ rm -f conftest*
++ fi
+
+
+ # Set it to scream when it hurts.
diff --git a/srcpkgs/gcc/patches/libffi_gnulinux.patch b/srcpkgs/gcc/patches/libffi_gnulinux.patch
deleted file mode 100644
index 98245bd5be1a..000000000000
--- a/srcpkgs/gcc/patches/libffi_gnulinux.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/libffi/src/closures.c
-+++ b/libffi/src/closures.c
-@@ -34,7 +34,7 @@
- #include <ffi_common.h>
-
- #if !FFI_MMAP_EXEC_WRIT && !FFI_EXEC_TRAMPOLINE_TABLE
--# if __gnu_linux__ && !defined(__ANDROID__)
-+# if __linux__ && !defined(__ANDROID__)
- /* This macro indicates it may be forbidden to map anonymous memory
- with both write and execute permission. Code compiled when this
- option is defined will attempt to map such pages once, but if it
diff --git a/srcpkgs/gcc/patches/libgcc-ibm128-no-tag.patch b/srcpkgs/gcc/patches/libgcc-ibm128-no-tag.patch
index bdf5c75d917d..26d80356ad0d 100644
--- a/srcpkgs/gcc/patches/libgcc-ibm128-no-tag.patch
+++ b/srcpkgs/gcc/patches/libgcc-ibm128-no-tag.patch
@@ -29,10 +29,14 @@ diff --git a/libgcc/config/rs6000/t-linux b/libgcc/config/rs6000/t-linux
index 4f6d4c4..fa93bb6 100644
--- a/libgcc/config/rs6000/t-linux
+++ b/libgcc/config/rs6000/t-linux
-@@ -1,3 +1,3 @@
+@@ -1,6 +1,6 @@
SHLIB_MAPFILES += $(srcdir)/config/rs6000/libgcc-glibc.ver
--HOST_LIBGCC2_CFLAGS += -mlong-double-128 -mno-minimal-toc
-+HOST_LIBGCC2_CFLAGS += -mlong-double-128 -mno-gnu-attribute -mno-minimal-toc
+-HOST_LIBGCC2_CFLAGS += -mlong-double-128
++HOST_LIBGCC2_CFLAGS += -mlong-double-128 -mno-gnu-attribute
+
+ # This is a way of selecting -mcmodel=small for ppc64, which gives
+ # smaller and faster libgcc code. Directly specifying -mcmodel=small
+
--
2.24.0
diff --git a/srcpkgs/gcc/patches/mips-sgidefs_h.patch b/srcpkgs/gcc/patches/mips-sgidefs_h.patch
index dddfe10e8c06..cd0ae7a380df 100644
--- a/srcpkgs/gcc/patches/mips-sgidefs_h.patch
+++ b/srcpkgs/gcc/patches/mips-sgidefs_h.patch
@@ -3,7 +3,7 @@
@@ -42,7 +42,7 @@
#define _MIPS_SIM_NABI32 2
#define _MIPS_SIM_ABI64 3
- #elif !defined(__OpenBSD__)
+ #elif !defined(__OpenBSD__) && !defined(__FreeBSD__)
-# include <sgidefs.h>
+# include <asm/sgidefs.h>
#endif
diff --git a/srcpkgs/gcc/template b/srcpkgs/gcc/template
index ab3643de4f98..a20af7c0ef2e 100644
--- a/srcpkgs/gcc/template
+++ b/srcpkgs/gcc/template
@@ -3,18 +3,14 @@
# which use the version number.
pkgname=gcc
-# we are using a 10-stable git snapshot alpine is using in order
-# to get regression fixes not yet incorporate into a stable release
-# it should be possible to switch back to stable with 10.3 or 11
-version=10.2.1pre1
-revision=3
-_patchver="${version%pre*}"
-_minorver="${_patchver%.*}"
+version=12.2.0
+revision=1
+_minorver="${version%.*}"
_majorver="${_minorver%.*}"
-_gmp_version=6.2.0
+_gmp_version=6.2.1
_mpfr_version=4.1.0
-_mpc_version=1.1.0
-_isl_version=0.21
+_mpc_version=1.2.1
+_isl_version=0.24
create_wrksrc=yes
short_desc="GNU Compiler Collection"
maintainer="Enno Boland <gottox@voidlinux.org>"
@@ -22,16 +18,16 @@ homepage="http://gcc.gnu.org"
license="GFDL-1.2-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
# *-musl builders have issues fetching https://ftp.gnu.org/gnu/mpc/mpc-1.1.0.tar.gz
distfiles="
- https://dev.alpinelinux.org/~nenolod/gcc-${version/pre/_pre}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${version}/gcc-${version}.tar.xz
https://gmplib.org/download/gmp/gmp-${_gmp_version}.tar.xz
${GNU_SITE}/mpfr/mpfr-${_mpfr_version}.tar.xz
${GNU_SITE}/mpc/mpc-${_mpc_version}.tar.gz
${SOURCEFORGE_SITE}/libisl/isl-${_isl_version}.tar.bz2"
-checksum="772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 258e6cd51b3fbdfc185c716d55f82c08aff57df0c6fbd143cf6ed561267a1526
+checksum="e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
+ fd4829912cddd12f84181c3451cc752be224643e87fac497b69edddadc49b4f2
0c98a3f1732ff6ca4ea690552079da9c597872d30e96ec28414ee23c95558a7f
- 6985c538143c1208dcb1ac42cedad6ff52e267b47e5f970183a3e75125b43c2e
- d18ca11f8ad1a39ab6d03d3dcb3365ab416720fcb65b42d69f34f51bf0a0e859"
+ 17503d2c395dfcf106b622dc142683c1199431d095367c6aacba6eec30340459
+ fcf78dd9656c10eb8cf9fbd5f59a0b6b01386205fe1934b3b287a0a1898145c0"
nopie=yes
lib32disabled=yes
@@ -52,8 +48,11 @@ if [ "$CHROOT_READY" ]; then
hostmakedepends="tar texinfo perl flex"
else
_have_gccgo=no
+ # libzstd fails to link in bootstrap with glibc 2.36
+ # when zlib has been compiled with glibc 2.32.
+ LDFLAGS="-lzstd -pthread"
fi
-makedepends="zlib-devel"
+makedepends="zlib-devel libzstd-devel"
depends="binutils libgcc-devel-${version}_${revision}
libstdc++-devel-${version}_${revision} libssp-devel-${version}_${revision}"
checkdepends="dejagnu"
@@ -70,13 +69,13 @@ if [ "$build_option_gnatboot" ]; then
case "$XBPS_TARGET_MACHINE" in
x86_64)
_gnat_tarball="gnat-gpl-2017-x86_64-linux-bin.tar.gz"
- distfiles+=" http://mirrors.cdn.adacore.com/art/591c6d80c7a447af2deed1d7>$_gnat_tarball"
+ distfiles+=" https://community.download.adacore.com/v1/9682e2e1f2f232ce03fe21d77b14c37a0de5649b?filename=$_gnat_tarball>$_gnat_tarball"
checksum+=" b942bcac20dea39748b39f8b624d9619f60a8dee2e8195dbe3829c835b0956e6"
build_options_default="gnatboot"
;;
i686)
_gnat_tarball="gnat-gpl-2014-x86-linux-bin.tar.gz"
- distfiles+=" http://mirrors.cdn.adacore.com/art/564b3e9dc8e196b040fbe248>$_gnat_tarball"
+ distfiles+=" https://community.download.adacore.com/v1/c5e9e6fdff5cb77ed90cf8c62536653e27c0bed6?filename=$_gnat_tarball>$_gnat_tarball"
checksum+=" 3b693510f5d22a240abb3034934c1adbd80ccd6e4f61a4f491cc408fdfd9c042"
build_options_default="gnatboot"
;;
@@ -155,8 +154,8 @@ if [ "$CROSS_BUILD" ]; then
fi
post_extract() {
- mv gcc-${version/pre/_pre}/* gcc-${version/pre/_pre}/.??* .
- rmdir gcc-${version/pre/_pre}
+ mv gcc-${version}/* gcc-${version}/.??* .
+ rmdir gcc-${version}
mv gmp-${_gmp_version} gmp
mv mpfr-${_mpfr_version} mpfr
mv mpc-${_mpc_version} mpc
@@ -186,9 +185,9 @@ pre_configure() {
sed -i 's@\./fixinc\.sh@-c true@' gcc/Makefile.in
if [ "$XBPS_TARGET_LIBC" = musl ]; then
- patch -p1 -i ${FILESDIR}/libgnarl-musl.patch
- patch -p1 -i ${FILESDIR}/libssp-musl.patch
- patch -p1 -i ${FILESDIR}/gccgo-musl.patch
+ for p in ${FILESDIR}/*-musl.patch; do
+ patch -p1 -i $p
+ done
fi
}
do_configure() {
@@ -343,16 +342,16 @@ do_install() {
# Make version a symlink of major version to make all versions
# from the same series work automagically.
- mv ${DESTDIR}/usr/lib/gcc/${_triplet}/${_patchver} \
+ mv ${DESTDIR}/usr/lib/gcc/${_triplet}/${version} \
${DESTDIR}/usr/lib/gcc/${_triplet}/${_minorver}
ln -sfr ${DESTDIR}/usr/lib/gcc/${_triplet}/${_minorver} \
- ${DESTDIR}/usr/lib/gcc/${_triplet}/${_patchver}
+ ${DESTDIR}/usr/lib/gcc/${_triplet}/${version}
# Ditto for c++ headers.
- mv ${DESTDIR}/usr/include/c++/${_patchver} \
+ mv ${DESTDIR}/usr/include/c++/${version} \
${DESTDIR}/usr/include/c++/${_minorver}
ln -sfr ${DESTDIR}/usr/include/c++/${_minorver} \
- ${DESTDIR}/usr/include/c++/${_patchver}
+ ${DESTDIR}/usr/include/c++/${version}
# cc symlink
ln -sfr ${DESTDIR}/usr/bin/gcc ${DESTDIR}/usr/bin/cc
@@ -361,7 +360,7 @@ do_install() {
# lto plugin symlink
vmkdir usr/lib/bfd-plugins
- ln -sfr ${DESTDIR}/usr/lib/gcc/${_triplet}/${_patchver}/liblto_plugin.so \
+ ln -sfr ${DESTDIR}/usr/lib/gcc/${_triplet}/${version}/liblto_plugin.so \
${DESTDIR}/usr/lib/bfd-plugins
# Remove "fixed" header
@@ -372,13 +371,9 @@ do_install() {
rm -f ${DESTDIR}/usr/lib/libffi*
rm -f ${DESTDIR}/usr/share/man/man3/ffi*
- # Remove all python scripts in libdir.
- rm -f ${DESTDIR}/usr/lib/*.py
-
- # Remove more python stuff.
- if [ -d ${DESTDIR}/usr/share/gcc-${_patchver}/python ]; then
- rm -rf ${DESTDIR}/usr/share/gcc-${_patchver}/python
- fi
+ # Move libstdc++ gdb helpers to location where gdb can autoload them
+ mkdir -p ${DESTDIR}/usr/share/gdb/auto-load/usr/lib
+ mv ${DESTDIR}/usr/lib/*.py ${DESTDIR}/usr/share/gdb/auto-load/usr/lib
# Install c89 and c99 wrappers and its manpages, from NetBSD.
for f in c89 c99; do
@@ -397,7 +392,7 @@ gcc-ada_package() {
depends="gcc>=${_minorver} libada-devel>=${_minorver}"
short_desc+=" - Ada compiler frontend"
pkg_install() {
- for f in gnat{,bind,chop,clean,find,kr,link,ls,make,name,prep,xref}; do
+ for f in gnat{,bind,chop,clean,kr,link,ls,make,name,prep}; do
vmove usr/bin/${f}
done
}
@@ -450,7 +445,7 @@ gcc-fortran_package() {
if [ "$CROSS_BUILD" ]; then
# A number of OMP modules are not built when cross
# compiling gcc. Copy them from the cross compiler.
- local src="/usr/lib/gcc/${_triplet}/${_patchver}/finclude"
+ local src="/usr/lib/gcc/${_triplet}/${version}/finclude"
local dst="usr/lib/gcc/${_triplet}/${_minorver}/finclude"
for f in omp_lib.f90 omp_lib.h omp_lib.mod omp_lib_kinds.mod \
openacc.f90 openacc.mod openacc_kinds.mod openacc_lib.h; do
@@ -517,7 +512,7 @@ libgfortran_package() {
short_desc+=" - Fortran library"
pkg_install() {
vmove "usr/lib/libgfortran.so*"
- vlicense ${wrksrc}/COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
+ vlicense COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
}
}
@@ -538,7 +533,7 @@ libgo_package() {
nostrip=yes
pkg_install() {
vmove "usr/lib/libgo.so*"
- vlicense ${wrksrc}/COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
+ vlicense COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
}
}
@@ -554,7 +549,7 @@ libobjc_package() {
short_desc+=" - Objective-C library"
pkg_install() {
vmove "usr/lib/libobjc.so*"
- vlicense ${wrksrc}/COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
+ vlicense COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
}
}
@@ -573,7 +568,7 @@ libquadmath_package() {
short_desc+=" - quadmath library"
pkg_install() {
vmove "usr/lib/libquadmath.so*"
- vlicense ${wrksrc}/COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
+ vlicense COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
}
}
@@ -615,7 +610,7 @@ libgcc_package() {
noverifyrdeps=yes
pkg_install() {
vmove "usr/lib/libgcc_s.so*"
- vlicense ${wrksrc}/COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
+ vlicense COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
}
}
@@ -646,7 +641,7 @@ libgomp_package() {
short_desc+=" - OpenMP v4.0 library"
pkg_install() {
vmove "usr/lib/libgomp*.so.*"
- vlicense ${wrksrc}/COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
+ vlicense COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
}
}
@@ -701,7 +696,7 @@ libssp_package() {
short_desc+=" - SSP (StackSmashingProtection) library"
pkg_install() {
vmove "usr/lib/libssp.so*"
- vlicense ${wrksrc}/COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
+ vlicense COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
}
}
@@ -718,7 +713,9 @@ libstdc++-devel_package() {
libstdc++_package() {
short_desc+=" - Standard C++ Library"
pkg_install() {
+ vmove usr/share/gdb
+ vmove usr/share/gcc-${version}/python
vmove "usr/lib/libstdc++.so*"
- vlicense ${wrksrc}/COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
+ vlicense COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
}
}
From 906dec0220945f28007248e2412f4b7b97eda875 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sat, 5 Nov 2022 11:33:11 -0700
Subject: [PATCH 04/38] libtool: rebuild for gcc 12
---
srcpkgs/libtool/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/libtool/template b/srcpkgs/libtool/template
index fc5c53a9c3e9..aebad9294eef 100644
--- a/srcpkgs/libtool/template
+++ b/srcpkgs/libtool/template
@@ -1,7 +1,7 @@
# Template file for 'libtool'
pkgname=libtool
version=2.4.7
-revision=1
+revision=2
build_style=gnu-configure
hostmakedepends="texinfo perl automake help2man xz"
depends="tar sed"
From 892953565784a92ca842ced10998afe26edaa4e4 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sat, 5 Nov 2022 11:33:12 -0700
Subject: [PATCH 05/38] libiberty-devel: update to 20220713.
---
srcpkgs/libiberty-devel/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/libiberty-devel/template b/srcpkgs/libiberty-devel/template
index 7e01bbb851fd..d9618e3806ba 100644
--- a/srcpkgs/libiberty-devel/template
+++ b/srcpkgs/libiberty-devel/template
@@ -1,6 +1,6 @@
# Template file for 'libiberty-devel'
pkgname=libiberty-devel
-version=20210106
+version=20220713
revision=1
build_wrksrc=libiberty
build_style=gnu-configure
@@ -10,7 +10,7 @@ maintainer="Orphaned <orphan@voidlinux.org>"
license="GPL-3.0-or-later"
homepage="http://gcc.gnu.org/"
distfiles="http://deb.debian.org/debian/pool/main/libi/libiberty/libiberty_${version}.orig.tar.xz"
-checksum=9df153d69914c0f5a9145e0abbb248e72feebab6777c712a30f1c3b8c19047d4
+checksum=b59050f48c8a0f9c9e6fba5d17c7a4f11d1329de0c0dca7331b767a6d2bbe8d9
conflicts="binutils-devel<=2.35.1_3"
CFLAGS="-fPIC"
From 590dbfefeaaad3d19e0537d55859734f4605f0b2 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sat, 5 Nov 2022 11:33:12 -0700
Subject: [PATCH 06/38] glibc: update to 2.36.
---
common/shlibs | 60 ++--
...e-hash-style-both-for-building-glibc.patch | 51 ++++
.../glibc/patches/glibc-c-utf8-locale.patch | 286 ------------------
srcpkgs/glibc/template | 66 ++--
4 files changed, 109 insertions(+), 354 deletions(-)
create mode 100644 srcpkgs/glibc/patches/0001-Revert-Do-not-use-hash-style-both-for-building-glibc.patch
delete mode 100644 srcpkgs/glibc/patches/glibc-c-utf8-locale.patch
diff --git a/common/shlibs b/common/shlibs
index 4bb4c7ab1e3b..5a0ad39c8da8 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -17,38 +17,38 @@
# one (order top->bottom) is preferred over the next ones.
#
libc.so musl-1.1.24_7
-libc.so.6 glibc-2.32_1
-libm.so.6 glibc-2.32_1
-libpthread.so.0 glibc-2.32_1
-librt.so.1 glibc-2.32_1
-libdl.so.2 glibc-2.32_1
-ld-linux-x86-64.so.2 glibc-2.32_1 x86_64
-ld-linux.so.2 glibc-2.32_1 i686
-ld-linux.so.3 glibc-2.32_1 armv5tel
-ld-linux-aarch64.so.1 glibc-2.32_1 aarch64
-ld64.so.2 glibc-2.32_1 ppc64
-ld.so.1 glibc-2.32_1 mips
-ld.so.1 glibc-2.32_1 ppc
-ld-linux-armhf.so.3 glibc-2.32_1
-libresolv.so.2 glibc-2.32_1
-libanl.so.1 glibc-2.32_1
-libthread_db.so.1 glibc-2.32_1
-libutil.so.1 glibc-2.32_1
-libnsl.so.1 glibc-2.32_1
-libnss_db.so.2 glibc-2.32_1
-libnss_files.so.2 glibc-2.32_1
-libnss_compat.so.2 glibc-2.32_1
-libnss_dns.so.2 glibc-2.32_1
-libnss_hesiod.so.2 glibc-2.32_1
-libcrypt.so.1 glibc-2.32_1
-libBrokenLocale.so.1 glibc-2.32_1
+libc.so.6 glibc-2.36_1
+libm.so.6 glibc-2.36_1
+libpthread.so.0 glibc-2.36_1
+librt.so.1 glibc-2.36_1
+libdl.so.2 glibc-2.36_1
+ld-linux-x86-64.so.2 glibc-2.36_1 x86_64
+ld-linux.so.2 glibc-2.36_1 i686
+ld-linux.so.3 glibc-2.36_1 armv5tel
+ld-linux-aarch64.so.1 glibc-2.36_1 aarch64
+ld64.so.2 glibc-2.36_1 ppc64
+ld.so.1 glibc-2.36_1 mips
+ld.so.1 glibc-2.36_1 ppc
+ld-linux-armhf.so.3 glibc-2.36_1
+libresolv.so.2 glibc-2.36_1
+libanl.so.1 glibc-2.36_1
+libthread_db.so.1 glibc-2.36_1
+libutil.so.1 glibc-2.36_1
+libnsl.so.1 glibc-2.36_1
+libnss_db.so.2 glibc-2.36_1
+libnss_files.so.2 glibc-2.36_1
+libnss_compat.so.2 glibc-2.36_1
+libnss_dns.so.2 glibc-2.36_1
+libnss_hesiod.so.2 glibc-2.36_1
+libcrypt.so.1 glibc-2.36_1
+libBrokenLocale.so.1 glibc-2.36_1
libSimGearCore.so.2020.3.13 simgear-2020.3.13_1
libSimGearScene.so.2020.3.13 simgear-2020.3.13_1
-libmemusage.so glibc-2.32_1
-libSegFault.so glibc-2.32_1
-libpcprofile.so glibc-2.32_1
-libcidn.so.1 glibc-2.32_1
-libmvec.so.1 glibc-2.32_1
+libmemusage.so glibc-2.36_1
+libSegFault.so glibc-2.36_1
+libpcprofile.so glibc-2.36_1
+libcidn.so.1 glibc-2.36_1
+libmvec.so.1 glibc-2.36_1
libcddgmp.so.0 cddlib-0.94m_1
libcdd.so.0 cddlib-0.94m_1
libz.so.1 zlib-1.2.3_1
diff --git a/srcpkgs/glibc/patches/0001-Revert-Do-not-use-hash-style-both-for-building-glibc.patch b/srcpkgs/glibc/patches/0001-Revert-Do-not-use-hash-style-both-for-building-glibc.patch
new file mode 100644
index 000000000000..9c5553e92609
--- /dev/null
+++ b/srcpkgs/glibc/patches/0001-Revert-Do-not-use-hash-style-both-for-building-glibc.patch
@@ -0,0 +1,51 @@
+Temporary workaround for EAC bug.
+
+See: https://sourceware.org/bugzilla/show_bug.cgi?id=29456
+
+From 8e90e2cc5e57d7ca3a40602d278e9642a8b66716 Mon Sep 17 00:00:00 2001
+From: oreo639 <oreo6391@gmail.com>
+Date: Tue, 13 Sep 2022 14:30:35 -0700
+Subject: [PATCH] Revert "Do not use --hash-style=both for building glibc
+ shared objects"
+
+This reverts commit e47de5cb2d4dbecb58f569ed241e8e95c568f03c.
+---
+ Makeconfig | 9 +++++++++
+ Makerules | 7 +++++++
+ 5 files changed, 61 insertions(+)
+
+diff --git a/Makeconfig b/Makeconfig
+index ba70321af1..e2131d4389 100644
+--- a/Makeconfig
++++ b/Makeconfig
+@@ -371,6 +371,13 @@ dt-relr-ldflag =
+ no-dt-relr-ldflag =
+ endif
+
++# For the time being we unconditionally use 'both'. At some time we
++# should declare statically linked code as 'out of luck' and compile
++# with --hash-style=gnu only.
++hashstyle-LDFLAGS = -Wl,--hash-style=both
++LDFLAGS.so += $(hashstyle-LDFLAGS)
++LDFLAGS-rtld += $(hashstyle-LDFLAGS)
++
+ ifeq (no,$(build-pie-default))
+ pie-default = $(no-pie-ccflag)
+ else # build-pie-default
+diff --git a/Makerules b/Makerules
+index d1e139d03c..44134e37ce 100644
+--- a/Makerules
++++ b/Makerules
+@@ -558,6 +558,9 @@ $(common-objpfx)shlib.lds: $(common-objpfx)config.make $(..)Makerules
+ -Wl,--verbose 2>/dev/null | \
+ sed > $@T \
+ -e '/^=========/,/^=========/!d;/^=========/d' \
++ -e 's/^.*\.gnu\.hash[ ]*:.*$$/ .note.ABI-tag : { *(.note.ABI-tag) } &/' \
++ -e '/^[ ]*\.hash[ ]*:.*$$/{h;d;}' \
++ -e '/DATA_SEGMENT_ALIGN/{H;g}' \
+ -e 's/^.*\*(\.dynbss).*$$/& \
+ PROVIDE(__start___libc_freeres_ptrs = .); \
+ *(__libc_freeres_ptrs) \
+--
+2.37.3
+
diff --git a/srcpkgs/glibc/patches/glibc-c-utf8-locale.patch b/srcpkgs/glibc/patches/glibc-c-utf8-locale.patch
deleted file mode 100644
index 7215e1558b62..000000000000
--- a/srcpkgs/glibc/patches/glibc-c-utf8-locale.patch
+++ /dev/null
@@ -1,286 +0,0 @@
-Short description: Add C.UTF-8 support.
-Author(s): Fedora glibc team <glibc@lists.fedoraproject.org>
-Origin: PATCH
-Upstream status: not-submitted
-
-This patch needs to upstream as part of Carlos O'Donell
-<carlos@redhat.com>'s work on enabling upstream C.UTF-8 support. This
-work is currently blocked on cleaning up the test results to prove that
-full code-point sorting is working as intended.
-
-Note that this patch does not provide full code-point sorting as
-expected.
-
-This patch needs to upstream as soon as possible since it would be nice
-to have this in F29 and fixed.
-
-From 2eda7b462b415105f5a05c1323372d4e39d46439 Mon Sep 17 00:00:00 2001
-From: Mike FABIAN <mfabian@redhat.com>
-Date: Mon, 10 Aug 2015 15:58:12 +0200
-Subject: [PATCH] Add a C.UTF-8 locale
-
----
- localedata/SUPPORTED | 1 +
- localedata/locales/C | 238 +++++++++++++++++++++++++++++++++++++++++++++++++++
- 2 files changed, 239 insertions(+)
- create mode 100644 localedata/locales/C
-
-diff --git a/localedata/SUPPORTED b/localedata/SUPPORTED
-index 8ca023e..2a78391 100644
---- a/localedata/SUPPORTED
-+++ b/localedata/SUPPORTED
-@@ -1,6 +1,7 @@
- # This file names the currently supported and somewhat tested locales.
- # If you have any additions please file a glibc bug report.
- SUPPORTED-LOCALES=\
-+C.UTF-8/UTF-8 \
- aa_DJ.UTF-8/UTF-8 \
- aa_DJ/ISO-8859-1 \
- aa_ER/UTF-8 \
-diff --git a/localedata/locales/C b/localedata/locales/C
-new file mode 100644
-index 0000000..fdf460e
---- /dev/null
-+++ b/localedata/locales/C
-@@ -0,0 +1,238 @@
-+escape_char /
-+comment_char %
-+% Locale for C locale in UTF-8
-+
-+LC_IDENTIFICATION
-+title "C locale"
-+source ""
-+address ""
-+contact ""
-+email "mfabian@redhat.com"
-+tel ""
-+fax ""
-+language "C"
-+territory ""
-+revision "1.0"
-+date "2015-08-10"
-+%
-+category "i18n:2012";LC_IDENTIFICATION
-+category "i18n:2012";LC_CTYPE
-+category "i18n:2012";LC_COLLATE
-+category "i18n:2012";LC_TIME
-+category "i18n:2012";LC_NUMERIC
-+category "i18n:2012";LC_MONETARY
-+category "i18n:2012";LC_MESSAGES
-+category "i18n:2012";LC_PAPER
-+category "i18n:2012";LC_NAME
-+category "i18n:2012";LC_ADDRESS
-+category "i18n:2012";LC_TELEPHONE
-+category "i18n:2012";LC_MEASUREMENT
-+END LC_IDENTIFICATION
-+
-+LC_CTYPE
-+copy "i18n"
-+
-+translit_start
-+include "translit_combining";""
-+translit_end
-+
-+END LC_CTYPE
-+
-+LC_COLLATE
-+order_start forward
-+<U0000>
-+..
-+<UFFFF>
-+<U10000>
-+..
-+<U1FFFF>
-+<U20000>
-+..
-+<U2FFFF>
-+<UE0000>
-+..
-+<UEFFFF>
-+<UF0000>
-+..
-+<UFFFFF>
-+<U100000>
-+..
-+<U10FFFF>
-+UNDEFINED
-+order_end
-+END LC_COLLATE
-+
-+LC_MONETARY
-+% This is the 14652 i18n fdcc-set definition for
-+% the LC_MONETARY category
-+% (except for the int_curr_symbol and currency_symbol, they are empty in
-+% the 14652 i18n fdcc-set definition and also empty in
-+% glibc/locale/C-monetary.c. But localedef complains in that case).
-+%
-+% Using "USD" for int_curr_symbol. But maybe "XXX" would be better?
-+% XXX is "No currency" (https://en.wikipedia.org/wiki/ISO_4217)
-+int_curr_symbol "<U0055><U0053><U0044><U0020>"
-+% Using "$" for currency_symbol. But maybe <U00A4> would be better?
-+% U+00A4 is the "generic currency symbol"
-+% (https://en.wikipedia.org/wiki/Currency_sign_%28typography%29)
-+currency_symbol "<U0024>"
-+mon_decimal_point "<U002E>"
-+mon_thousands_sep ""
-+mon_grouping -1
-+positive_sign ""
-+negative_sign "<U002D>"
-+int_frac_digits -1
-+frac_digits -1
-+p_cs_precedes -1
-+int_p_sep_by_space -1
-+p_sep_by_space -1
-+n_cs_precedes -1
-+int_n_sep_by_space -1
-+n_sep_by_space -1
-+p_sign_posn -1
-+n_sign_posn -1
-+%
-+END LC_MONETARY
-+
-+LC_NUMERIC
-+% This is the POSIX Locale definition for
-+% the LC_NUMERIC category.
-+%
-+decimal_point "<U002E>"
-+thousands_sep ""
-+grouping -1
-+END LC_NUMERIC
-+
-+LC_TIME
-+% This is the POSIX Locale definition for
-+% the LC_TIME category.
-+%
-+% Abbreviated weekday names (%a)
-+abday "<U0053><U0075><U006E>";"<U004D><U006F><U006E>";/
-+ "<U0054><U0075><U0065>";"<U0057><U0065><U0064>";/
-+ "<U0054><U0068><U0075>";"<U0046><U0072><U0069>";/
-+ "<U0053><U0061><U0074>"
-+
-+% Full weekday names (%A)
-+day "<U0053><U0075><U006E><U0064><U0061><U0079>";/
-+ "<U004D><U006F><U006E><U0064><U0061><U0079>";/
-+ "<U0054><U0075><U0065><U0073><U0064><U0061><U0079>";/
-+ "<U0057><U0065><U0064><U006E><U0065><U0073><U0064><U0061><U0079>";/
-+ "<U0054><U0068><U0075><U0072><U0073><U0064><U0061><U0079>";/
-+ "<U0046><U0072><U0069><U0064><U0061><U0079>";/
-+ "<U0053><U0061><U0074><U0075><U0072><U0064><U0061><U0079>"
-+
-+% Abbreviated month names (%b)
-+abmon "<U004A><U0061><U006E>";"<U0046><U0065><U0062>";/
-+ "<U004D><U0061><U0072>";"<U0041><U0070><U0072>";/
-+ "<U004D><U0061><U0079>";"<U004A><U0075><U006E>";/
-+ "<U004A><U0075><U006C>";"<U0041><U0075><U0067>";/
-+ "<U0053><U0065><U0070>";"<U004F><U0063><U0074>";/
-+ "<U004E><U006F><U0076>";"<U0044><U0065><U0063>"
-+
-+% Full month names (%B)
-+mon "<U004A><U0061><U006E><U0075><U0061><U0072><U0079>";/
-+ "<U0046><U0065><U0062><U0072><U0075><U0061><U0072><U0079>";/
-+ "<U004D><U0061><U0072><U0063><U0068>";/
-+ "<U0041><U0070><U0072><U0069><U006C>";/
-+ "<U004D><U0061><U0079>";/
-+ "<U004A><U0075><U006E><U0065>";/
-+ "<U004A><U0075><U006C><U0079>";/
-+ "<U0041><U0075><U0067><U0075><U0073><U0074>";/
-+ "<U0053><U0065><U0070><U0074><U0065><U006D><U0062><U0065><U0072>";/
-+ "<U004F><U0063><U0074><U006F><U0062><U0065><U0072>";/
-+ "<U004E><U006F><U0076><U0065><U006D><U0062><U0065><U0072>";/
-+ "<U0044><U0065><U0063><U0065><U006D><U0062><U0065><U0072>"
-+
-+% Week description, consists of three fields:
-+% 1. Number of days in a week.
-+% 2. Gregorian date that is a first weekday (19971130 for Sunday, 19971201 for Monday).
-+% 3. The weekday number to be contained in the first week of the year.
-+%
-+% ISO 8601 conforming applications should use the values 7, 19971201 (a
-+% Monday), and 4 (Thursday), respectively.
-+week 7;19971201;4
-+first_weekday 1
-+first_workday 1
-+
-+% Appropriate date and time representation (%c)
-+% "%a %b %e %H:%M:%S %Y"
-+d_t_fmt "<U0025><U0061><U0020><U0025><U0062><U0020><U0025><U0065><U0020><U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053><U0020><U0025><U0059>"
-+
-+% Appropriate date representation (%x)
-+% "%m/%d/%y"
-+d_fmt "<U0025><U006D><U002F><U0025><U0064><U002F><U0025><U0079>"
-+
-+% Appropriate time representation (%X)
-+% "%H:%M:%S"
-+t_fmt "<U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053>"
-+
-+% Appropriate AM/PM time representation (%r)
-+% "%I:%M:%S %p"
-+t_fmt_ampm "<U0025><U0049><U003A><U0025><U004D><U003A><U0025><U0053><U0020><U0025><U0070>"
-+
-+% Equivalent of AM/PM (%p) "AM"/"PM"
-+%
-+am_pm "<U0041><U004D>";"<U0050><U004D>"
-+
-+% Appropriate date representation (date(1)) "%a %b %e %H:%M:%S %Z %Y"
-+date_fmt "<U0025><U0061><U0020><U0025><U0062><U0020><U0025><U0065><U0020><U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053><U0020><U0025><U005A><U0020><U0025><U0059>"
-+END LC_TIME
-+
-+LC_MESSAGES
-+% This is the POSIX Locale definition for
-+% the LC_NUMERIC category.
-+%
-+yesexpr "<U005E><U005B><U0079><U0059><U005D>"
-+noexpr "<U005E><U005B><U006E><U004E><U005D>"
-+yesstr "<U0059><U0065><U0073>"
-+nostr "<U004E><U006F>"
-+END LC_MESSAGES
-+
-+LC_PAPER
-+% This is the ISO/IEC 14652 "i18n" definition for
-+% the LC_PAPER category.
-+% (A4 paper, this is also used in the built in C/POSIX
-+% locale in glibc/locale/C-paper.c)
-+height 297
-+width 210
-+END LC_PAPER
-+
-+LC_NAME
-+% This is the ISO/IEC 14652 "i18n" definition for
-+% the LC_NAME category.
-+% "%p%t%g%t%m%t%f"
-+% (also used in the built in C/POSIX locale in glibc/locale/C-name.c)
-+name_fmt "<U0025><U0070><U0025><U0074><U0025><U0067><U0025><U0074>/
-+<U0025><U006D><U0025><U0074><U0025><U0066>"
-+END LC_NAME
-+
-+LC_ADDRESS
-+% This is the ISO/IEC 14652 "i18n" definition for
-+% the LC_ADDRESS category.
-+% "%a%N%f%N%d%N%b%N%s %h %e %r%N%C-%z %T%N%c%N"
-+% (also used in the built in C/POSIX locale in glibc/locale/C-address.c)
-+postal_fmt "<U0025><U0061><U0025><U004E><U0025><U0066><U0025><U004E>/
-+<U0025><U0064><U0025><U004E><U0025><U0062><U0025><U004E><U0025><U0073>/
-+<U0020><U0025><U0068><U0020><U0025><U0065><U0020><U0025><U0072><U0025>/
-+<U004E><U0025><U0043><U002D><U0025><U007A><U0020><U0025><U0054><U0025>/
-+<U004E><U0025><U0063><U0025><U004E>"
-+END LC_ADDRESS
-+
-+LC_TELEPHONE
-+% This is the ISO/IEC 14652 "i18n" definition for
-+% the LC_TELEPHONE category.
-+% "+%c %a %l"
-+tel_int_fmt "<U002B><U0025><U0063><U0020><U0025><U0061><U0020><U0025>/
-+<U006C>"
-+% (also used in the built in C/POSIX locale in glibc/locale/C-telephone.c)
-+END LC_TELEPHONE
-+
-+LC_MEASUREMENT
-+% This is the ISO/IEC 14652 "i18n" definition for
-+% the LC_MEASUREMENT category.
-+% (same as in the built in C/POSIX locale in glibc/locale/C-measurement.c)
-+%metric
-+measurement 1
-+END LC_MEASUREMENT
-+
---
-2.4.3
-
diff --git a/srcpkgs/glibc/template b/srcpkgs/glibc/template
index c62a4d2aedf1..6cd4c0980cbb 100644
--- a/srcpkgs/glibc/template
+++ b/srcpkgs/glibc/template
@@ -1,14 +1,16 @@
# Template file for 'glibc'
pkgname=glibc
-version=2.32
-revision=2
+version=2.36
+revision=1
+_patchver="72-g0f90d6204d"
+wrksrc="glibc-${version}-${_patchver}"
bootstrap=yes
short_desc="GNU C library"
maintainer="Enno Boland <gottox@voidlinux.org>"
license="GPL-2.0-or-later, LGPL-2.1-or-later, BSD-3-Clause"
homepage="http://www.gnu.org/software/libc"
-distfiles="${GNU_SITE}/glibc/glibc-${version}.tar.xz"
-checksum=1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+distfiles="https://vasilek.cz/paste/glibc-${version}-${_patchver}.tar.xz"
+checksum=656200722d5ba968b4888a2d2950719d72c86290fd0479f61897d25b7db2cb57
# Do not strip these files, objcopy errors out.
nostrip_files="
XBS5_ILP32_OFFBIG
@@ -20,27 +22,28 @@ nostrip_files="
POSIX_V6_LP64_OFF64
POSIX_V7_LP64_OFF64
XBS5_LP64_OFF64
- ld-${version}.so
- libdl-${version}.so
- libanl-${version}.so
- libcidn-${version}.so
- libresolv-${version}.so
- libcrypt-${version}.so
- libpthread-${version}.so
- libm-${version}.so
- libutil-${version}.so
- libthread_db-1.0.so
- librt-${version}.so
- libnsl-${version}.so
- libc-${version}.so
- libBrokenLocale-${version}.so
- libnss_compat-${version}.so
- libnss_db-${version}.so
- libnss_dns-${version}.so
- libnss_files-${version}.so
- libnss_hesiod-${version}.so
- libnss_nisplus-${version}.so
- libnss_nis-${version}.so"
+ ld-linux-x86-64.so.2
+ ld-linux.so.2
+ ld-linux.so.3
+ ld-linux-aarch64.so.1
+ ld64.so.2
+ ld.so.1
+ ld-linux-armhf.so.3
+ libresolv.so.2
+ libcrypt.so.1
+ libm.so.6
+ libthread_db.so.1
+ libnsl.so.1
+ libc.so.6
+ libc_malloc_debug.so.0
+ libmemusage.so
+ libmvec.so.1
+ libBrokenLocale.so.1
+ libnss_compat.so.2
+ libnss_db.so.2
+ libnss_dns.so.2
+ libnss_files.so.2
+ libnss_hesiod.so.2"
conf_files="
/etc/rpc
@@ -54,7 +57,6 @@ lib32files="/usr/lib/gconv/gconv-modules"
lib32symlinks="ld-linux.so.2"
# There's no point in building this for musl.
archs="~*-musl"
-nopie=yes
do_configure() {
mkdir build
@@ -163,18 +165,6 @@ do_install() {
rm -f ${DESTDIR}/usr/bin/z{dump,ic}
mv ${DESTDIR}/usr/sbin/* ${DESTDIR}/usr/bin
-
- # Create xbps.d(5) arch override file for 32-bit architectures
- # 32-bit userlands may be used with 64-bit kernels and then
- # xbps will report an incorrect architecture by default
- case "$XBPS_TARGET_MACHINE" in
- i686|ppc|ppcle|armv*)
- vmkdir usr/share/xbps.d
- echo "architecture=${XBPS_TARGET_MACHINE}" > \
- ${DESTDIR}/usr/share/xbps.d/arch-32bit.conf
- ;;
- *) ;;
- esac
}
glibc-devel_package() {
From b9816445eb6c3dcd183f542225a25a47df85bd66 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sat, 5 Nov 2022 11:33:12 -0700
Subject: [PATCH 07/38] musl: add support for SIGEV_THREAD_ID timers
https://git.musl-libc.org/cgit/musl/commit/?id=7c71792e87691451f2a6b76348e83ad1889f1dcb
---
...d-support-for-SIGEV_THREAD_ID-timers.patch | 74 +++++++++++++++++++
srcpkgs/musl/template | 2 +-
2 files changed, 75 insertions(+), 1 deletion(-)
create mode 100644 srcpkgs/musl/patches/add-support-for-SIGEV_THREAD_ID-timers.patch
diff --git a/srcpkgs/musl/patches/add-support-for-SIGEV_THREAD_ID-timers.patch b/srcpkgs/musl/patches/add-support-for-SIGEV_THREAD_ID-timers.patch
new file mode 100644
index 000000000000..e20dff5ba0d4
--- /dev/null
+++ b/srcpkgs/musl/patches/add-support-for-SIGEV_THREAD_ID-timers.patch
@@ -0,0 +1,74 @@
+From 7c71792e87691451f2a6b76348e83ad1889f1dcb Mon Sep 17 00:00:00 2001
+From: James Y Knight <jyknight@google.com>
+Date: Sun, 30 Jun 2019 21:55:20 -0400
+Subject: [PATCH] add support for SIGEV_THREAD_ID timers
+
+This is like SIGEV_SIGNAL, but targeted to a particular thread's
+tid, rather than the process.
+---
+ include/signal.h | 16 +++++++++++++---
+ src/time/timer_create.c | 8 ++++++--
+ 2 files changed, 19 insertions(+), 5 deletions(-)
+
+diff --git a/include/signal.h b/include/signal.h
+index fbdf667b2..9ed929e4f 100644
+--- a/include/signal.h
++++ b/include/signal.h
+@@ -180,14 +180,24 @@ struct sigevent {
+ union sigval sigev_value;
+ int sigev_signo;
+ int sigev_notify;
+- void (*sigev_notify_function)(union sigval);
+- pthread_attr_t *sigev_notify_attributes;
+- char __pad[56-3*sizeof(long)];
++ union {
++ char __pad[64 - 2*sizeof(int) - sizeof(union sigval)];
++ pid_t sigev_notify_thread_id;
++ struct {
++ void (*sigev_notify_function)(union sigval);
++ pthread_attr_t *sigev_notify_attributes;
++ } __sev_thread;
++ } __sev_fields;
+ };
+
++#define sigev_notify_thread_id __sev_fields.sigev_notify_thread_id
++#define sigev_notify_function __sev_fields.__sev_thread.sigev_notify_function
++#define sigev_notify_attributes __sev_fields.__sev_thread.sigev_notify_attributes
++
+ #define SIGEV_SIGNAL 0
+ #define SIGEV_NONE 1
+ #define SIGEV_THREAD 2
++#define SIGEV_THREAD_ID 4
+
+ int __libc_current_sigrtmin(void);
+ int __libc_current_sigrtmax(void);
+diff --git a/src/time/timer_create.c b/src/time/timer_create.c
+index 5ddfda278..4bef23905 100644
+--- a/src/time/timer_create.c
++++ b/src/time/timer_create.c
+@@ -71,11 +71,15 @@ int timer_create(clockid_t clk, struct sigevent *restrict evp, timer_t *restrict
+ switch (evp ? evp->sigev_notify : SIGEV_SIGNAL) {
+ case SIGEV_NONE:
+ case SIGEV_SIGNAL:
++ case SIGEV_THREAD_ID:
+ if (evp) {
+ ksev.sigev_value = evp->sigev_value;
+ ksev.sigev_signo = evp->sigev_signo;
+ ksev.sigev_notify = evp->sigev_notify;
+- ksev.sigev_tid = 0;
++ if (evp->sigev_notify == SIGEV_THREAD_ID)
++ ksev.sigev_tid = evp->sigev_notify_thread_id;
++ else
++ ksev.sigev_tid = 0;
+ ksevp = &ksev;
+ }
+ if (syscall(SYS_timer_create, clk, ksevp, &timerid) < 0)
+@@ -107,7 +111,7 @@ int timer_create(clockid_t clk, struct sigevent *restrict evp, timer_t *restrict
+
+ ksev.sigev_value.sival_ptr = 0;
+ ksev.sigev_signo = SIGTIMER;
+- ksev.sigev_notify = 4; /* SIGEV_THREAD_ID */
++ ksev.sigev_notify = SIGEV_THREAD_ID;
+ ksev.sigev_tid = td->tid;
+ if (syscall(SYS_timer_create, clk, &ksev, &timerid) < 0)
+ timerid = -1;
diff --git a/srcpkgs/musl/template b/srcpkgs/musl/template
index 34e6ed4fba6e..afb33cd868b5 100644
--- a/srcpkgs/musl/template
+++ b/srcpkgs/musl/template
@@ -2,7 +2,7 @@
pkgname=musl
reverts="1.2.0_1"
version=1.1.24
-revision=11
+revision=12
archs="*-musl"
bootstrap=yes
build_style=gnu-configure
From 920aa4a5a0b569b2d15713cf8e3f9d21f1347fce Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sat, 5 Nov 2022 11:33:12 -0700
Subject: [PATCH 08/38] gcc-multilib: update to 12.2.0.
---
srcpkgs/gcc-multilib/template | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/srcpkgs/gcc-multilib/template b/srcpkgs/gcc-multilib/template
index f28eb237c287..ba9bafcadfd6 100644
--- a/srcpkgs/gcc-multilib/template
+++ b/srcpkgs/gcc-multilib/template
@@ -3,15 +3,15 @@ archs="x86_64"
_triplet="x86_64-unknown-linux-gnu"
pkgname=gcc-multilib
-version=10.2.1pre1
+version=12.2.0
revision=1
_majorver="${version%.*}"
short_desc="GNU Compiler Collection (multilib files)"
maintainer="Orphaned <orphan@voidlinux.org>"
homepage="http://gcc.gnu.org"
license="GFDL-1.2-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
-distfiles="https://dev.alpinelinux.org/~nenolod/gcc-${version/pre/_pre}.tar.xz"
-checksum=772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+distfiles="${GNU_SITE}/gcc/gcc-${version}/gcc-${version}.tar.xz"
+checksum=e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
hostmakedepends="perl flex tar zip unzip"
makedepends="zlib-devel libmpc-devel isl15-devel libfl-devel
@@ -70,7 +70,7 @@ do_build() {
make ${makejobs}
}
do_install() {
- local _pc_triplet=x86_64-pc-linux-gnu _version=${version%pre1}
+ local _pc_triplet=x86_64-pc-linux-gnu
# Install to a tempdir and then only copy relevant files.
cd ${wrksrc}
make DESTDIR=${wrksrc}/${pkgname}-build install
@@ -80,9 +80,9 @@ do_install() {
vmkdir usr/include/c++/${_majorver}/${_triplet}
vmkdir usr/lib/gcc/${_triplet}/${_majorver}
- cp -a ${wrksrc}/${pkgname}-build/usr/lib/gcc/${_pc_triplet}/${_version}/32 \
+ cp -a ${wrksrc}/${pkgname}-build/usr/lib/gcc/${_pc_triplet}/${version}/32 \
${DESTDIR}/usr/lib/gcc/${_triplet}/${_majorver}/
- cp -a ${wrksrc}/${pkgname}-build/usr/include/c++/${_version}/${_pc_triplet}/32 \
+ cp -a ${wrksrc}/${pkgname}-build/usr/include/c++/${version}/${_pc_triplet}/32 \
${DESTDIR}/usr/include/c++/${_majorver}/${_triplet}
vinstall ${wrksrc}/host-${_pc_triplet}/gcc/specs 644 usr/lib/gcc/${_triplet}/${_majorver}
From 464128d261beb122facfc27c9101b80131dec11f Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sat, 5 Nov 2022 11:33:12 -0700
Subject: [PATCH 09/38] libgccjit: update to 12.2.0.
---
srcpkgs/libgccjit/files/libgccjit-musl.patch | 63 --------------------
srcpkgs/libgccjit/template | 24 +++-----
2 files changed, 9 insertions(+), 78 deletions(-)
delete mode 100644 srcpkgs/libgccjit/files/libgccjit-musl.patch
diff --git a/srcpkgs/libgccjit/files/libgccjit-musl.patch b/srcpkgs/libgccjit/files/libgccjit-musl.patch
deleted file mode 100644
index d2ed16928c82..000000000000
--- a/srcpkgs/libgccjit/files/libgccjit-musl.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-diff --git a/gcc/jit/jit-playback.c b/gcc/jit/jit-playback.c
-index 5bccf591a..35f5e35ef 100644
---- a/gcc/jit/jit-playback.c
-+++ b/gcc/jit/jit-playback.c
-@@ -18,6 +18,8 @@ You should have received a copy of the GNU General Public License
- along with GCC; see the file COPYING3. If not see
- <http://www.gnu.org/licenses/>. */
-
-+#include <pthread.h>
-+
- #include "config.h"
- #include "system.h"
- #include "coretypes.h"
-@@ -41,8 +43,6 @@ along with GCC; see the file COPYING3. If not see
- #include "diagnostic.h"
- #include "stmt.h"
-
--#include <pthread.h>
--
- #include "jit-playback.h"
- #include "jit-result.h"
- #include "jit-builtins.h"
-diff --git a/gcc/jit/jit-recording.c b/gcc/jit/jit-recording.c
-index a237d574f..5785e3269 100644
---- a/gcc/jit/jit-recording.c
-+++ b/gcc/jit/jit-recording.c
-@@ -18,6 +18,8 @@ You should have received a copy of the GNU General Public License
- along with GCC; see the file COPYING3. If not see
- <http://www.gnu.org/licenses/>. */
-
-+#include <pthread.h>
-+
- #include "config.h"
- #include "system.h"
- #include "coretypes.h"
-@@ -25,8 +27,6 @@ along with GCC; see the file COPYING3. If not see
- #include "pretty-print.h"
- #include "toplev.h"
-
--#include <pthread.h>
--
- #include "jit-builtins.h"
- #include "jit-recording.h"
- #include "jit-playback.h"
-diff --git a/gcc/jit/libgccjit.c b/gcc/jit/libgccjit.c
-index f9c33c63c..75f21d275 100644
---- a/gcc/jit/libgccjit.c
-+++ b/gcc/jit/libgccjit.c
-@@ -18,13 +18,13 @@ You should have received a copy of the GNU General Public License
- along with GCC; see the file COPYING3. If not see
- <http://www.gnu.org/licenses/>. */
-
-+#include <pthread.h>
- #include "config.h"
- #include "system.h"
- #include "coretypes.h"
- #include "timevar.h"
- #include "typed-splay-tree.h"
- #include "cppbuiltin.h"
--#include <pthread.h>
-
- #include "libgccjit.h"
- #include "jit-recording.h"
diff --git a/srcpkgs/libgccjit/template b/srcpkgs/libgccjit/template
index 0b37c3ee9f8b..fde1affd54b7 100644
--- a/srcpkgs/libgccjit/template
+++ b/srcpkgs/libgccjit/template
@@ -3,18 +3,12 @@
# which use the version number.
pkgname=libgccjit
-# we are using a 10-stable git snapshot alpine is using in order
-# to get regression fixes not yet incorporate into a stable release
-# it should be possible to switch back to stable with 10.3 or 11
-version=10.2.1pre1
+version=12.2.0
revision=1
-_patchver="${version%pre*}"
-_minorver="${_patchver%.*}"
-_majorver="${_minorver%.*}"
-_gmp_version=6.2.0
+_gmp_version=6.2.1
_mpfr_version=4.1.0
-_mpc_version=1.1.0
-_isl_version=0.21
+_mpc_version=1.2.1
+_isl_version=0.24
create_wrksrc=yes
short_desc="Just-In-Time Compilation library for GCC"
maintainer="Lane Biocini <lane@mailbox.org>"
@@ -22,16 +16,16 @@ homepage="https://gcc.gnu.org"
license="GFDL-1.2-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
# *-musl builders have issues fetching https://ftp.gnu.org/gnu/mpc/mpc-1.1.0.tar.gz
distfiles="
- https://dev.alpinelinux.org/~nenolod/gcc-${version/pre/_pre}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${version}/gcc-${version}.tar.xz
https://gmplib.org/download/gmp/gmp-${_gmp_version}.tar.xz
${GNU_SITE}/mpfr/mpfr-${_mpfr_version}.tar.xz
${GNU_SITE}/mpc/mpc-${_mpc_version}.tar.gz
${SOURCEFORGE_SITE}/libisl/isl-${_isl_version}.tar.bz2"
-checksum="772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 258e6cd51b3fbdfc185c716d55f82c08aff57df0c6fbd143cf6ed561267a1526
+checksum="e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
+ fd4829912cddd12f84181c3451cc752be224643e87fac497b69edddadc49b4f2
0c98a3f1732ff6ca4ea690552079da9c597872d30e96ec28414ee23c95558a7f
- 6985c538143c1208dcb1ac42cedad6ff52e267b47e5f970183a3e75125b43c2e
- d18ca11f8ad1a39ab6d03d3dcb3365ab416720fcb65b42d69f34f51bf0a0e859"
+ 17503d2c395dfcf106b622dc142683c1199431d095367c6aacba6eec30340459
+ fcf78dd9656c10eb8cf9fbd5f59a0b6b01386205fe1934b3b287a0a1898145c0"
nopie=yes
lib32disabled=yes
makedepends="zlib-devel"
From d2111a01301bcd175047a4d6f231451dfa86480b Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sat, 5 Nov 2022 11:33:12 -0700
Subject: [PATCH 10/38] build-style/void-cross: Update flags for gcc12 and
glibc 2.36
gcov can't be built without libc:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100289
Remove -no-pie from build. glibc 2.35 and newer uses -static-pie by default:
https://sourceware.org/pipermail/glibc-cvs/2021q4/075916.html
---
common/build-style/void-cross.sh | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
diff --git a/common/build-style/void-cross.sh b/common/build-style/void-cross.sh
index 92f03f8130f5..4804193d8395 100644
--- a/common/build-style/void-cross.sh
+++ b/common/build-style/void-cross.sh
@@ -53,6 +53,7 @@ _void_cross_build_binutils() {
--sbindir=/usr/bin \
--libdir=/usr/lib \
--libexecdir=/usr/lib \
+ --sysconfdir=/etc \
--target=${tgt} \
--with-sysroot=/usr/${tgt} \
--disable-nls \
@@ -60,7 +61,9 @@ _void_cross_build_binutils() {
--disable-multilib \
--disable-werror \
--disable-gold \
+ --disable-gprofng \
--enable-relro \
+ --enable-new-dtags \
--enable-plugins \
--enable-64-bit-bfd \
--enable-deterministic-archives \
@@ -132,6 +135,7 @@ _void_cross_build_bootstrap_gcc() {
--disable-libssp \
--disable-libitm \
--disable-libatomic \
+ --disable-gcov \
--disable-threads \
--disable-sjlj-exceptions \
--enable-languages=c \
@@ -381,6 +385,7 @@ _void_cross_build_gcc() {
extra_args+=" --disable-gnu-unique-object"
extra_args+=" libat_cv_have_ifunc=no"
else
+ extra_args+=" --enable-clocale=gnu"
extra_args+=" --enable-gnu-unique-object"
fi
@@ -460,6 +465,14 @@ do_build() {
local binutils_ver linux_ver gcc_ver libc_ver libucontext_ver
local tgt=${sourcepkg/cross-}
+ export CFLAGS="${CFLAGS/-D_FORTIFY_SOURCE=2/}"
+ export CXXFLAGS="${CXXFLAGS/-D_FORTIFY_SOURCE=2/}"
+
+ # Disable explicit -fno-PIE, gcc/binutils/libc will figure this out itself.
+ export CFLAGS="${CFLAGS//-fno-PIE/}"
+ export CXXFLAGS="${CXXFLAGS//-fno-PIE/}"
+ export LDFLAGS="${LDFLAGS//-no-pie/}"
+
_void_cross_test_ver binutils
_void_cross_test_ver linux
_void_cross_test_ver gcc
@@ -625,6 +638,9 @@ do_install() {
# then remove it because it conflicts with libquadmath package
rm -rf ${DESTDIR}/${sysroot}/usr/lib/libquadmath.*
+ # Remove libdep linker plugin because it conflicts with system binutils
+ rm -f ${DESTDIR}/usr/lib/bfd-plugins/libdep*
+
# Remove leftover symlinks
rm -f ${DESTDIR}/usr/lib${XBPS_TARGET_WORDSIZE}
rm -f ${DESTDIR}/lib*
From e8f3909c069ebf243062eca5f603227083ae6a28 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sat, 5 Nov 2022 11:33:12 -0700
Subject: [PATCH 11/38] qemu: remove broken patch
The necessary patch has been imported into musl so no need
to cast the sigevent struct to a more glibc-like one.
---
.../musl-fix-sigevent-and-sigval_t.patch | 27 -------------------
1 file changed, 27 deletions(-)
delete mode 100644 srcpkgs/qemu/patches/musl-fix-sigevent-and-sigval_t.patch
diff --git a/srcpkgs/qemu/patches/musl-fix-sigevent-and-sigval_t.patch b/srcpkgs/qemu/patches/musl-fix-sigevent-and-sigval_t.patch
deleted file mode 100644
index 4b4f1117c15f..000000000000
--- a/srcpkgs/qemu/patches/musl-fix-sigevent-and-sigval_t.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-Note: Remove this patch with musl 1.2.2
-
---- a/linux-user/syscall.c
-+++ b/linux-user/syscall.c
-@@ -5020,10 +5020,21 @@
- #ifndef HAVE_SIGEV_NOTIFY_THREAD_ID
- #define sigev_notify_thread_id _sigev_un._tid
- #endif
-
--static inline abi_long target_to_host_sigevent(struct sigevent *host_sevp,
-+struct host_sigevent {
-+ union sigval sigev_value;
-+ int sigev_signo;
-+ int sigev_notify;
-+ union {
-+ char _pad[64 - sizeof(int) * 2 - sizeof(union sigval)];
-+ int _tid;
-+ } _sigev_un;
-+};
-+
-+static inline abi_long target_to_host_sigevent(struct sigevent *sevp,
- abi_ulong target_addr)
- {
-+ struct host_sigevent *host_sevp = (struct host_sigevent *) sevp;
- struct target_sigevent *target_sevp;
-
- if (!lock_user_struct(VERIFY_READ, target_sevp, target_addr, 1)) {
From 9f9d2f243653f51f22679e0eb67284fc579168f2 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sat, 19 Nov 2022 13:26:24 -0800
Subject: [PATCH 12/38] mk-configure: rebuild for gcc 12
---
srcpkgs/mk-configure/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/mk-configure/template b/srcpkgs/mk-configure/template
index 9d12f11a9799..c50d8adf213f 100644
--- a/srcpkgs/mk-configure/template
+++ b/srcpkgs/mk-configure/template
@@ -1,7 +1,7 @@
# Template file for 'mk-configure'
pkgname=mk-configure
version=0.37.0
-revision=1
+revision=2
build_style=gnu-makefile
make_cmd=bmake
make_install_args="MANDIR=/usr/share/man"
From 1f225a67fca3a48b4a57f5b9f9e800b8b05e981c Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:28 -0800
Subject: [PATCH 13/38] cross-aarch64-linux-gnu: update to gcc 12.2.0.
---
srcpkgs/cross-aarch64-linux-gnu/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-aarch64-linux-gnu/template b/srcpkgs/cross-aarch64-linux-gnu/template
index 18de21aa3ccd..9e6fb75c198d 100644
--- a/srcpkgs/cross-aarch64-linux-gnu/template
+++ b/srcpkgs/cross-aarch64-linux-gnu/template
@@ -1,15 +1,16 @@
# Template file for 'cross-aarch64-linux-gnu'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
-_glibc_version=2.32
+_binutils_version=2.39
+_gcc_version=12.2.0
+_glibc_version=2.36
_linux_version=5.10.4
pkgname=cross-aarch64-linux-gnu
-version=0.34
+version=0.35
revision=1
build_style=void-cross
configure_args="--with-arch=armv8-a"
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Leah Neukirchen <leah@vuxu.org>"
@@ -17,12 +18,12 @@ license="GPL-2.0-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
+ 1c959fea240906226062cb4b1e7ebce71a9f0e3c0836c09e7e3423d434fcfe75
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
From 1cdf0999fcf4b7e23fa3fbe9aa0e8c06a7f97fe0 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:28 -0800
Subject: [PATCH 14/38] cross-aarch64-linux-musl: update to gcc 12.2.0.
---
srcpkgs/cross-aarch64-linux-musl/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-aarch64-linux-musl/template b/srcpkgs/cross-aarch64-linux-musl/template
index bb6a770afb79..ba14c96bccea 100644
--- a/srcpkgs/cross-aarch64-linux-musl/template
+++ b/srcpkgs/cross-aarch64-linux-musl/template
@@ -1,29 +1,30 @@
# Template file for 'cross-aarch64-linux-musl'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.2.0
_musl_version=1.1.24
_linux_version=5.10.4
_libucontext_version=1.0
pkgname=cross-aarch64-linux-musl
-version=0.34
-revision=4
+version=0.35
+revision=1
build_style=void-cross
configure_args="--with-arch=armv8-a"
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
-homepage="https://www.voidlinux.org/"
license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
+homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz
https://github.com/kaniini/libucontext/archive/libucontext-${_libucontext_version}.tar.gz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec
23714e99a87f6dea82e8a073c526325161dd65462459820b16a6162be91955bb"
From ca8b9d79a1da7f01abe2117d75713e8031afce88 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:28 -0800
Subject: [PATCH 15/38] cross-arm-linux-gnueabi: update to gcc 12.2.0.
---
srcpkgs/cross-arm-linux-gnueabi/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-arm-linux-gnueabi/template b/srcpkgs/cross-arm-linux-gnueabi/template
index a3aba72aa93a..5c774e16f430 100644
--- a/srcpkgs/cross-arm-linux-gnueabi/template
+++ b/srcpkgs/cross-arm-linux-gnueabi/template
@@ -1,15 +1,16 @@
# Template file for 'cross-arm-linux-gnueabi'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
-_glibc_version=2.32
+_binutils_version=2.39
+_gcc_version=12.2.0
+_glibc_version=2.36
_linux_version=5.10.4
pkgname=cross-arm-linux-gnueabi
-version=0.34
+version=0.35
revision=1
build_style=void-cross
configure_args="--with-arch=armv5te --with-float=soft"
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
@@ -17,12 +18,12 @@ license="GPL-2.0-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
+ 1c959fea240906226062cb4b1e7ebce71a9f0e3c0836c09e7e3423d434fcfe75
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
From 9ef922ff0b1519c1e8ce02719d5adc5ddb2b5ef1 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:28 -0800
Subject: [PATCH 16/38] cross-arm-linux-gnueabihf: update to gcc 12.2.0.
---
srcpkgs/cross-arm-linux-gnueabihf/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-arm-linux-gnueabihf/template b/srcpkgs/cross-arm-linux-gnueabihf/template
index d9ab86cf2ecc..d6298ab639a4 100644
--- a/srcpkgs/cross-arm-linux-gnueabihf/template
+++ b/srcpkgs/cross-arm-linux-gnueabihf/template
@@ -1,15 +1,16 @@
# Template file for 'cross-arm-linux-gnueabihf'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
-_glibc_version=2.32
+_binutils_version=2.39
+_gcc_version=12.2.0
+_glibc_version=2.36
_linux_version=5.10.4
pkgname=cross-arm-linux-gnueabihf
-version=0.34
+version=0.35
revision=1
build_style=void-cross
configure_args="--with-arch=armv6 --with-fpu=vfp --with-float=hard"
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
@@ -17,12 +18,12 @@ license="GPL-2.0-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
+ 1c959fea240906226062cb4b1e7ebce71a9f0e3c0836c09e7e3423d434fcfe75
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
From 45351c2aa37fca8379dec3ac7686b469c77b8715 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:28 -0800
Subject: [PATCH 17/38] cross-arm-linux-musleabi: update to gcc 12.2.0.
---
srcpkgs/cross-arm-linux-musleabi/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-arm-linux-musleabi/template b/srcpkgs/cross-arm-linux-musleabi/template
index 6692d891e1bd..24df78e8fd8e 100644
--- a/srcpkgs/cross-arm-linux-musleabi/template
+++ b/srcpkgs/cross-arm-linux-musleabi/template
@@ -1,29 +1,30 @@
# Template file for 'cross-arm-linux-musleabi'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.2.0
_musl_version=1.1.24
_linux_version=5.10.4
_libucontext_version=1.0
pkgname=cross-arm-linux-musleabi
-version=0.34
-revision=4
+version=0.35
+revision=1
build_style=void-cross
configure_args="--with-arch=armv5te --with-float=soft"
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
-homepage="https://www.voidlinux.org/"
license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
+homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz
https://github.com/kaniini/libucontext/archive/libucontext-${_libucontext_version}.tar.gz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec
23714e99a87f6dea82e8a073c526325161dd65462459820b16a6162be91955bb"
From 3b1c1b95b00ff68f759bd9f22aa5fb0364be40fe Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:28 -0800
Subject: [PATCH 18/38] cross-arm-linux-musleabihf: update to gcc 12.2.0.
---
srcpkgs/cross-arm-linux-musleabihf/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-arm-linux-musleabihf/template b/srcpkgs/cross-arm-linux-musleabihf/template
index bb62bd5ebc55..8093700f909c 100644
--- a/srcpkgs/cross-arm-linux-musleabihf/template
+++ b/srcpkgs/cross-arm-linux-musleabihf/template
@@ -1,29 +1,30 @@
# Template file for 'cross-arm-linux-musleabihf'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.2.0
_musl_version=1.1.24
_linux_version=5.10.4
_libucontext_version=1.0
pkgname=cross-arm-linux-musleabihf
-version=0.34
-revision=4
+version=0.35
+revision=1
build_style=void-cross
configure_args="--with-arch=armv6 --with-fpu=vfp --with-float=hard"
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
-homepage="https://www.voidlinux.org/"
license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
+homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz
https://github.com/kaniini/libucontext/archive/libucontext-${_libucontext_version}.tar.gz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec
23714e99a87f6dea82e8a073c526325161dd65462459820b16a6162be91955bb"
From ce4a1fbd98429f760ac93098de59dcddd9603e23 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:28 -0800
Subject: [PATCH 19/38] cross-armv7l-linux-gnueabihf: update to gcc 12.2.0.
---
srcpkgs/cross-armv7l-linux-gnueabihf/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-armv7l-linux-gnueabihf/template b/srcpkgs/cross-armv7l-linux-gnueabihf/template
index 30c89b6294ef..92665326428b 100644
--- a/srcpkgs/cross-armv7l-linux-gnueabihf/template
+++ b/srcpkgs/cross-armv7l-linux-gnueabihf/template
@@ -1,15 +1,16 @@
# Template file for 'cross-armv7l-linux-gnueabihf'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
-_glibc_version=2.32
+_binutils_version=2.39
+_gcc_version=12.2.0
+_glibc_version=2.36
_linux_version=5.10.4
pkgname=cross-armv7l-linux-gnueabihf
-version=0.34
+version=0.35
revision=1
build_style=void-cross
configure_args="--with-arch=armv7-a --with-fpu=vfpv3 --with-float=hard"
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
@@ -17,12 +18,12 @@ license="GPL-2.0-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
+ 1c959fea240906226062cb4b1e7ebce71a9f0e3c0836c09e7e3423d434fcfe75
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
From 6d32b6d5756f9ff9f087ec990b9dea5381a46573 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:28 -0800
Subject: [PATCH 20/38] cross-armv7l-linux-musleabihf: update to gcc 12.2.0.
---
.../cross-armv7l-linux-musleabihf/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-armv7l-linux-musleabihf/template b/srcpkgs/cross-armv7l-linux-musleabihf/template
index 0a588cdf1a58..e5af2c9ccbf2 100644
--- a/srcpkgs/cross-armv7l-linux-musleabihf/template
+++ b/srcpkgs/cross-armv7l-linux-musleabihf/template
@@ -1,29 +1,30 @@
# Template file for 'cross-armv7l-linux-musleabihf'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.2.0
_musl_version=1.1.24
_linux_version=5.10.4
_libucontext_version=1.0
pkgname=cross-armv7l-linux-musleabihf
-version=0.34
-revision=4
+version=0.35
+revision=1
build_style=void-cross
configure_args="--with-arch=armv7-a --with-fpu=vfpv3 --with-float=hard"
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
-homepage="https://www.voidlinux.org/"
license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
+homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz
https://github.com/kaniini/libucontext/archive/libucontext-${_libucontext_version}.tar.gz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec
23714e99a87f6dea82e8a073c526325161dd65462459820b16a6162be91955bb"
From b2677d37db332907d29338fc27a5327cc7b8fabf Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:29 -0800
Subject: [PATCH 21/38] cross-i686-linux-musl: update to gcc 12.2.0.
---
srcpkgs/cross-i686-linux-musl/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-i686-linux-musl/template b/srcpkgs/cross-i686-linux-musl/template
index 8be16a230d8d..d624bb7a3254 100644
--- a/srcpkgs/cross-i686-linux-musl/template
+++ b/srcpkgs/cross-i686-linux-musl/template
@@ -1,28 +1,29 @@
# Template file for 'cross-i686-linux-musl'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.2.0
_musl_version=1.1.24
_linux_version=5.10.4
_libucontext_version=1.0
pkgname=cross-i686-linux-musl
-version=0.34
-revision=4
+version=0.35
+revision=1
build_style=void-cross
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
-homepage="https://www.voidlinux.org/"
license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
+homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz
https://github.com/kaniini/libucontext/archive/libucontext-${_libucontext_version}.tar.gz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec
23714e99a87f6dea82e8a073c526325161dd65462459820b16a6162be91955bb"
From ea358c8ff6e24e0b3e2ceb5546d75028a2e39c10 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:29 -0800
Subject: [PATCH 22/38] cross-i686-pc-linux-gnu: update to gcc 12.2.0.
---
srcpkgs/cross-i686-pc-linux-gnu/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-i686-pc-linux-gnu/template b/srcpkgs/cross-i686-pc-linux-gnu/template
index 263a43f7a7b8..6a9e54db807a 100644
--- a/srcpkgs/cross-i686-pc-linux-gnu/template
+++ b/srcpkgs/cross-i686-pc-linux-gnu/template
@@ -1,14 +1,15 @@
# Template file for 'cross-i686-pc-linux-gnu'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
-_glibc_version=2.32
+_binutils_version=2.39
+_gcc_version=12.2.0
+_glibc_version=2.36
_linux_version=5.10.4
pkgname=cross-i686-pc-linux-gnu
-version=0.34
+version=0.35
revision=1
build_style=void-cross
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
@@ -16,12 +17,12 @@ license="GPL-2.0-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
+ 1c959fea240906226062cb4b1e7ebce71a9f0e3c0836c09e7e3423d434fcfe75
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
From 900ee24e5da6c2acfd2a79b0ab57f17a542f040a Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:29 -0800
Subject: [PATCH 23/38] cross-mips-linux-musl: update to gcc 12.2.0.
---
srcpkgs/cross-mips-linux-musl/template | 21 +++++++++++----------
1 file changed, 11 insertions(+), 10 deletions(-)
diff --git a/srcpkgs/cross-mips-linux-musl/template b/srcpkgs/cross-mips-linux-musl/template
index 9b5d5819b1a0..67a5c413396c 100644
--- a/srcpkgs/cross-mips-linux-musl/template
+++ b/srcpkgs/cross-mips-linux-musl/template
@@ -1,28 +1,29 @@
# Template file for 'cross-mips-linux-musl'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.2.0
_musl_version=1.1.24
_linux_version=5.10.4
pkgname=cross-mips-linux-musl
-version=0.34
-revision=3
+version=0.35
+revision=1
build_style=void-cross
configure_args="--with-arch=mips32r2 --with-float=soft
--with-linker-hash-style=sysv"
hostmakedepends="texinfo tar gcc-objc flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
-homepage="https://www.voidlinux.org/"
license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
+homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
- https://www.musl-libc.org/releases/musl-${_musl_version}.tar.gz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
+ https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
From 5ce512b851838655752f4219f6b5bc9fc708b109 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:29 -0800
Subject: [PATCH 24/38] cross-mips-linux-muslhf: update to gcc 12.2.0.
---
srcpkgs/cross-mips-linux-muslhf/template | 21 +++++++++++----------
1 file changed, 11 insertions(+), 10 deletions(-)
diff --git a/srcpkgs/cross-mips-linux-muslhf/template b/srcpkgs/cross-mips-linux-muslhf/template
index d7590af9ec03..bdf8600ce95b 100644
--- a/srcpkgs/cross-mips-linux-muslhf/template
+++ b/srcpkgs/cross-mips-linux-muslhf/template
@@ -1,28 +1,29 @@
# Template file for 'cross-mips-linux-muslhf'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.2.0
_musl_version=1.1.24
_linux_version=5.10.4
pkgname=cross-mips-linux-muslhf
-version=0.34
-revision=3
+version=0.35
+revision=1
build_style=void-cross
configure_args="--with-arch=mips32r2 --with-float=hard
--with-linker-hash-style=sysv"
hostmakedepends="texinfo tar gcc-objc flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="hipperson0 <hipperson0@gmail.com>"
-homepage="https://www.voidlinux.org/"
license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
+homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
- https://www.musl-libc.org/releases/musl-${_musl_version}.tar.gz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
+ https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
From 8e6f1071b3cb18ba927e56ad9f8dd5cf109a10dc Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:29 -0800
Subject: [PATCH 25/38] cross-mipsel-linux-musl: update to gcc 12.2.0.
---
srcpkgs/cross-mipsel-linux-musl/template | 21 +++++++++++----------
1 file changed, 11 insertions(+), 10 deletions(-)
diff --git a/srcpkgs/cross-mipsel-linux-musl/template b/srcpkgs/cross-mipsel-linux-musl/template
index 1acba7016dbc..de49387d517b 100644
--- a/srcpkgs/cross-mipsel-linux-musl/template
+++ b/srcpkgs/cross-mipsel-linux-musl/template
@@ -1,28 +1,29 @@
# Template file for 'cross-mipsel-linux-musl'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.2.0
_musl_version=1.1.24
_linux_version=5.10.4
pkgname=cross-mipsel-linux-musl
-version=0.34
-revision=3
+version=0.35
+revision=1
build_style=void-cross
configure_args="--with-arch=mips32r2 --with-float=soft
--with-linker-hash-style=sysv"
hostmakedepends="texinfo tar gcc-objc flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
-homepage="https://www.voidlinux.org/"
license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
+homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
- https://www.musl-libc.org/releases/musl-${_musl_version}.tar.gz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
+ https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
From ff75e733c9a5c1ef71c8154af3ac88b668ed5ab3 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:29 -0800
Subject: [PATCH 26/38] cross-mipsel-linux-muslhf: update to gcc 12.2.0.
---
srcpkgs/cross-mipsel-linux-muslhf/template | 21 +++++++++++----------
1 file changed, 11 insertions(+), 10 deletions(-)
diff --git a/srcpkgs/cross-mipsel-linux-muslhf/template b/srcpkgs/cross-mipsel-linux-muslhf/template
index e4a55f028bc4..b27ce6475a38 100644
--- a/srcpkgs/cross-mipsel-linux-muslhf/template
+++ b/srcpkgs/cross-mipsel-linux-muslhf/template
@@ -1,28 +1,29 @@
# Template file for 'cross-mipsel-linux-muslhf'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.2.0
_musl_version=1.1.24
_linux_version=5.10.4
pkgname=cross-mipsel-linux-muslhf
-version=0.34
-revision=3
+version=0.35
+revision=1
build_style=void-cross
configure_args="--with-arch=mips32r2 --with-float=hard
--with-linker-hash-style=sysv"
hostmakedepends="texinfo tar gcc-objc flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
-homepage="https://www.voidlinux.org/"
license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
+homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
- https://www.musl-libc.org/releases/musl-${_musl_version}.tar.gz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
+ https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
From 390ef0702c07d956c0f3a5b099d6f7f7f20334d9 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:29 -0800
Subject: [PATCH 27/38] cross-powerpc-linux-gnu: update to gcc 12.2.0.
---
srcpkgs/cross-powerpc-linux-gnu/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-powerpc-linux-gnu/template b/srcpkgs/cross-powerpc-linux-gnu/template
index b97a21d0d72e..79579e093b12 100644
--- a/srcpkgs/cross-powerpc-linux-gnu/template
+++ b/srcpkgs/cross-powerpc-linux-gnu/template
@@ -1,15 +1,16 @@
# Template file for 'cross-powerpc-linux-gnu'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
-_glibc_version=2.32
+_binutils_version=2.39
+_gcc_version=12.2.0
+_glibc_version=2.36
_linux_version=5.10.4
pkgname=cross-powerpc-linux-gnu
-version=0.34
+version=0.35
revision=1
build_style=void-cross
configure_args="--enable-secureplt --disable-vtable-verify"
hostmakedepends="texinfo tar gcc-objc flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Thomas Batten <stenstorpmc@gmail.com>"
@@ -17,12 +18,12 @@ license="GPL-2.0-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
+ 1c959fea240906226062cb4b1e7ebce71a9f0e3c0836c09e7e3423d434fcfe75
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
From 0235008194054ee1f34994ca5aa7155c66633107 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:29 -0800
Subject: [PATCH 28/38] cross-powerpc-linux-musl: update to gcc 12.2.0.
---
srcpkgs/cross-powerpc-linux-musl/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-powerpc-linux-musl/template b/srcpkgs/cross-powerpc-linux-musl/template
index f9b22f0610d3..9bb6acd359b6 100644
--- a/srcpkgs/cross-powerpc-linux-musl/template
+++ b/srcpkgs/cross-powerpc-linux-musl/template
@@ -1,28 +1,29 @@
# Template file for 'cross-powerpc-linux-musl'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.2.0
_musl_version=1.1.24
_linux_version=5.10.4
pkgname=cross-powerpc-linux-musl
-version=0.34
-revision=3
+version=0.35
+revision=1
build_style=void-cross
configure_args="--enable-secureplt --disable-vtable-verify
--disable-decimal-float"
hostmakedepends="texinfo tar gcc-objc flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Thomas Batten <stenstorpmc@gmail.com>"
-homepage="https://www.voidlinux.org/"
license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
+homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
From 68f4ae156d99cbcb9b8f3ab02d0f3a6b6fba64a7 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:29 -0800
Subject: [PATCH 29/38] cross-powerpc64-linux-gnu: update to gcc 12.2.0.
---
srcpkgs/cross-powerpc64-linux-gnu/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-powerpc64-linux-gnu/template b/srcpkgs/cross-powerpc64-linux-gnu/template
index 35cfcaa6f02e..2d153d00add6 100644
--- a/srcpkgs/cross-powerpc64-linux-gnu/template
+++ b/srcpkgs/cross-powerpc64-linux-gnu/template
@@ -1,16 +1,17 @@
# Template file for 'cross-powerpc64-linux-gnu'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
-_glibc_version=2.32
+_binutils_version=2.39
+_gcc_version=12.2.0
+_glibc_version=2.36
_linux_version=5.10.4
pkgname=cross-powerpc64-linux-gnu
-version=0.34
+version=0.35
revision=1
build_style=void-cross
configure_args="--enable-secureplt --disable-vtable-verify --with-abi=elfv2
--enable-targets=powerpc-linux"
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
@@ -18,12 +19,12 @@ license="GPL-2.0-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
+ 1c959fea240906226062cb4b1e7ebce71a9f0e3c0836c09e7e3423d434fcfe75
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
From f4d106c37e463679e3fcbac31ef54b3e599ec8f7 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:29 -0800
Subject: [PATCH 30/38] cross-powerpc64-linux-musl: update to gcc 12.2.0.
---
srcpkgs/cross-powerpc64-linux-musl/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-powerpc64-linux-musl/template b/srcpkgs/cross-powerpc64-linux-musl/template
index 016f18776a6d..e0848fe0bff7 100644
--- a/srcpkgs/cross-powerpc64-linux-musl/template
+++ b/srcpkgs/cross-powerpc64-linux-musl/template
@@ -1,30 +1,31 @@
# Template file for 'cross-powerpc64-linux-musl'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.2.0
_musl_version=1.1.24
_linux_version=5.10.4
_libucontext_version=1.0
pkgname=cross-powerpc64-linux-musl
-version=0.34
-revision=4
+version=0.35
+revision=1
build_style=void-cross
configure_args="--enable-secureplt --disable-vtable-verify
--disable-decimal-float --with-abi=elfv2 --enable-targets=powerpc-linux"
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
-homepage="https://www.voidlinux.org/"
license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
+homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz
https://github.com/kaniini/libucontext/archive/libucontext-${_libucontext_version}.tar.gz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec
23714e99a87f6dea82e8a073c526325161dd65462459820b16a6162be91955bb"
From 18d74fbff80c9ccb019ef640a2666b81295cd2d1 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:29 -0800
Subject: [PATCH 31/38] cross-powerpc64le-linux-gnu: update to gcc 12.2.0.
---
srcpkgs/cross-powerpc64le-linux-gnu/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-powerpc64le-linux-gnu/template b/srcpkgs/cross-powerpc64le-linux-gnu/template
index 463d7e92d20d..8d8e010e15c0 100644
--- a/srcpkgs/cross-powerpc64le-linux-gnu/template
+++ b/srcpkgs/cross-powerpc64le-linux-gnu/template
@@ -1,16 +1,17 @@
# Template file for 'cross-powerpc64le-linux-gnu'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
-_glibc_version=2.32
+_binutils_version=2.39
+_gcc_version=12.2.0
+_glibc_version=2.36
_linux_version=5.10.4
pkgname=cross-powerpc64le-linux-gnu
-version=0.34
+version=0.35
revision=1
build_style=void-cross
configure_args="--enable-secureplt --disable-vtable-verify --with-abi=elfv2
--enable-targets=powerpcle-linux"
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
@@ -18,12 +19,12 @@ license="GPL-2.0-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
+ 1c959fea240906226062cb4b1e7ebce71a9f0e3c0836c09e7e3423d434fcfe75
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
From 1c314320c695c9c8ea2fa9787f9633dfc4ebd59c Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:29 -0800
Subject: [PATCH 32/38] cross-powerpc64le-linux-musl: update to gcc 12.2.0.
---
srcpkgs/cross-powerpc64le-linux-musl/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-powerpc64le-linux-musl/template b/srcpkgs/cross-powerpc64le-linux-musl/template
index c17a3cccfe29..0915e524545f 100644
--- a/srcpkgs/cross-powerpc64le-linux-musl/template
+++ b/srcpkgs/cross-powerpc64le-linux-musl/template
@@ -1,30 +1,31 @@
# Template file for 'cross-powerpc64le-linux-musl'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.2.0
_musl_version=1.1.24
_linux_version=5.10.4
_libucontext_version=1.0
pkgname=cross-powerpc64le-linux-musl
-version=0.34
-revision=4
+version=0.35
+revision=1
build_style=void-cross
configure_args="--enable-secureplt --disable-vtable-verify
--disable-decimal-float --with-abi=elfv2 --enable-targets=powerpcle-linux"
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
-homepage="https://www.voidlinux.org/"
license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
+homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz
https://github.com/kaniini/libucontext/archive/libucontext-${_libucontext_version}.tar.gz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec
23714e99a87f6dea82e8a073c526325161dd65462459820b16a6162be91955bb"
From 6c1d6955226f3d0c28ae4e7bd1d691c92a899ef6 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:29 -0800
Subject: [PATCH 33/38] cross-powerpcle-linux-gnu: update to gcc 12.2.0.
---
srcpkgs/cross-powerpcle-linux-gnu/template | 21 ++++++++++++---------
1 file changed, 12 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-powerpcle-linux-gnu/template b/srcpkgs/cross-powerpcle-linux-gnu/template
index 9aede3c465ce..687be8a44c6c 100644
--- a/srcpkgs/cross-powerpcle-linux-gnu/template
+++ b/srcpkgs/cross-powerpcle-linux-gnu/template
@@ -1,15 +1,16 @@
# Template file for 'cross-powerpcle-linux-gnu'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
-_glibc_version=2.32
+_binutils_version=2.39
+_gcc_version=12.2.0
+_glibc_version=2.36
_linux_version=5.10.4
pkgname=cross-powerpcle-linux-gnu
-version=0.34
+version=0.35
revision=1
build_style=void-cross
configure_args="--enable-secureplt --disable-vtable-verify"
hostmakedepends="texinfo tar gcc-objc flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
@@ -17,12 +18,12 @@ license="GPL-2.0-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
+ 1c959fea240906226062cb4b1e7ebce71a9f0e3c0836c09e7e3423d434fcfe75
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
@@ -35,6 +36,8 @@ if [ "$XBPS_TARGET_MACHINE" = "ppcle" ]; then
broken="Can't build crosstoolchain to itself"
fi
+broken="glibc uses big-endian specific instructions on 32-bit powerpc"
+
cross-powerpcle-linux-gnu-libc_package() {
short_desc+=" - glibc files"
nostrip=yes
From 80ff9901db83f0a736a1d56d9eff85a150412024 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:29 -0800
Subject: [PATCH 34/38] cross-powerpcle-linux-musl: update to gcc 12.2.0.
---
srcpkgs/cross-powerpcle-linux-musl/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-powerpcle-linux-musl/template b/srcpkgs/cross-powerpcle-linux-musl/template
index 045cfda987fe..bb984b9c42eb 100644
--- a/srcpkgs/cross-powerpcle-linux-musl/template
+++ b/srcpkgs/cross-powerpcle-linux-musl/template
@@ -1,28 +1,29 @@
# Template file for 'cross-powerpcle-linux-musl'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.2.0
_musl_version=1.1.24
_linux_version=5.10.4
pkgname=cross-powerpcle-linux-musl
-version=0.34
-revision=3
+version=0.35
+revision=1
build_style=void-cross
configure_args="--enable-secureplt --disable-vtable-verify
--disable-decimal-float"
hostmakedepends="texinfo tar gcc-objc flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
-homepage="https://www.voidlinux.org/"
license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
+homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
From caec1366d46bfb0cc0b73646d754f52e66e4d38a Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:30 -0800
Subject: [PATCH 35/38] cross-x86_64-linux-gnu: update to gcc 12.2.0.
---
srcpkgs/cross-x86_64-linux-gnu/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-x86_64-linux-gnu/template b/srcpkgs/cross-x86_64-linux-gnu/template
index 8918f3c22a1c..930aaf2a508b 100644
--- a/srcpkgs/cross-x86_64-linux-gnu/template
+++ b/srcpkgs/cross-x86_64-linux-gnu/template
@@ -1,14 +1,15 @@
# Template file for 'cross-x86_64-linux-gnu'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
-_glibc_version=2.32
+_binutils_version=2.39
+_gcc_version=12.2.0
+_glibc_version=2.36
_linux_version=5.10.4
pkgname=cross-x86_64-linux-gnu
-version=0.34
+version=0.35
revision=1
build_style=void-cross
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
@@ -16,12 +17,12 @@ license="GPL-2.0-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
+ 1c959fea240906226062cb4b1e7ebce71a9f0e3c0836c09e7e3423d434fcfe75
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
From 6e16dba261f6106666bf28319030b23a3dcc486e Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:30 -0800
Subject: [PATCH 36/38] cross-x86_64-linux-musl: update to gcc 12.2.0.
---
srcpkgs/cross-x86_64-linux-musl/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-x86_64-linux-musl/template b/srcpkgs/cross-x86_64-linux-musl/template
index a941e7e02f6f..ac5b1c46ab82 100644
--- a/srcpkgs/cross-x86_64-linux-musl/template
+++ b/srcpkgs/cross-x86_64-linux-musl/template
@@ -1,28 +1,29 @@
# Template file for 'cross-x86_64-linux-musl'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.2.0
_musl_version=1.1.24
_linux_version=5.10.4
_libucontext_version=1.0
pkgname=cross-x86_64-linux-musl
-version=0.34
-revision=3
+version=0.35
+revision=1
build_style=void-cross
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
-homepage="https://www.voidlinux.org/"
license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
+homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz
https://github.com/kaniini/libucontext/archive/libucontext-${_libucontext_version}.tar.gz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec
23714e99a87f6dea82e8a073c526325161dd65462459820b16a6162be91955bb"
From 5796bae0f4899492bce8b5e04bb4cf0ee01a31f8 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Fri, 18 Nov 2022 02:01:19 -0800
Subject: [PATCH 37/38] cross-vpkg-dummy: update to 0.39.
---
srcpkgs/cross-vpkg-dummy/template | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/srcpkgs/cross-vpkg-dummy/template b/srcpkgs/cross-vpkg-dummy/template
index d83e38dc63ac..aeafb749dd5f 100644
--- a/srcpkgs/cross-vpkg-dummy/template
+++ b/srcpkgs/cross-vpkg-dummy/template
@@ -1,6 +1,6 @@
# Template file for 'cross-vpkg-dummy'
pkgname=cross-vpkg-dummy
-version=0.38
+version=0.39
revision=1
build_style=meta
short_desc="Dummy meta-pkg for cross building packages with xbps-src"
@@ -54,8 +54,8 @@ conflicts="
gcc-objc++>=0"
shlib_provides="
libgcc_s.so.1
- libgnat-10.so
- libgnarl-10.so
+ libgnat-12.so
+ libgnarl-12.so
libstdc++.so.6
libgfortran.so.5"
From 5d8ffd97de012561ebfc5eda19a3d7e3f0c5e23c Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Sun, 27 Nov 2022 22:59:45 +0100
Subject: [PATCH 38/38] llvm: update to 15.0.5
---
common/shlibs | 7 +-
srcpkgs/clang | 2 +-
srcpkgs/clang-analyzer | 2 +-
srcpkgs/clang-tools-extra | 2 +-
srcpkgs/libclang | 2 +-
srcpkgs/libclang-cpp | 2 +-
srcpkgs/libcxx | 2 +-
srcpkgs/libcxx-devel | 2 +-
srcpkgs/libcxxabi | 2 +-
srcpkgs/libcxxabi-devel | 2 +-
srcpkgs/libllvm15 | 1 +
srcpkgs/libomp | 2 +-
srcpkgs/libomp-devel | 2 +-
srcpkgs/lld | 2 +-
srcpkgs/lld-devel | 2 +-
srcpkgs/lldb | 2 +-
srcpkgs/lldb-devel | 2 +-
srcpkgs/llvm-libunwind | 2 +-
srcpkgs/llvm-libunwind-devel | 2 +-
srcpkgs/llvm/template | 6 +-
.../llvm15/files/llvm-Config-llvm-config.h | 9 +
...clang-001-fix-unwind-chain-inclusion.patch | 44 ++
.../patches/clang-002-add-musl-triples.patch | 110 +++++
.../clang-003-ppc64-dynamic-linker-path.patch | 13 +
.../patches/clang-004-ppc64-musl-elfv2.patch | 48 ++
.../compiler-rt-sanitizer-ppc64-musl.patch | 35 ++
.../compiler-rt-xray-ppc64-musl.patch.skip | 62 +++
srcpkgs/llvm15/patches/libcxx-musl.patch | 26 ++
srcpkgs/llvm15/patches/libcxx-ppc.patch | 22 +
.../llvm15/patches/libcxx-ssp-nonshared.patch | 11 +
srcpkgs/llvm15/patches/libcxxabi-dl.patch | 25 +
.../llvm15/patches/libunwind-ppc32.patch.skip | 63 +++
srcpkgs/llvm15/patches/lldb-musl.patch | 40 ++
srcpkgs/llvm15/patches/llvm-001-musl.patch | 57 +++
.../patches/llvm-002-musl-ppc64-elfv2.patch | 30 ++
.../patches/llvm-003-ppc-secureplt.patch | 11 +
.../patches/llvm-004-override-opt.patch | 18 +
.../llvm15/patches/llvm-005-ppc-bigpic.patch | 36 ++
.../patches/llvm-006-aarch64-mf_exec.patch | 25 +
srcpkgs/llvm15/template | 433 ++++++++++++++++++
srcpkgs/llvm15/update | 3 +
41 files changed, 1146 insertions(+), 23 deletions(-)
create mode 120000 srcpkgs/libllvm15
create mode 100644 srcpkgs/llvm15/files/llvm-Config-llvm-config.h
create mode 100644 srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch
create mode 100644 srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch
create mode 100644 srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch
create mode 100644 srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch
create mode 100644 srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch
create mode 100644 srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip
create mode 100644 srcpkgs/llvm15/patches/libcxx-musl.patch
create mode 100644 srcpkgs/llvm15/patches/libcxx-ppc.patch
create mode 100644 srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch
create mode 100644 srcpkgs/llvm15/patches/libcxxabi-dl.patch
create mode 100644 srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip
create mode 100644 srcpkgs/llvm15/patches/lldb-musl.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-001-musl.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-004-override-opt.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch
create mode 100644 srcpkgs/llvm15/template
create mode 100644 srcpkgs/llvm15/update
diff --git a/common/shlibs b/common/shlibs
index 5a0ad39c8da8..0ae10484b362 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -984,11 +984,12 @@ 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.12 lldb-12.0.0_1
-libclang.so.12 libclang-12.0.0_1
-libclang-cpp.so.12 libclang-cpp-12.0.0_1
+liblldb.so.15 lldb-15.0.5_1
+libclang.so.15 libclang-15.0.5_1
+libclang-cpp.so.15 libclang-cpp-15.0.5_1
libLLVM-11.so libllvm11-11.0.0_1
libLLVM-12.so libllvm12-12.0.0_1
+libLLVM-15.so libllvm15-15.0.5_1
libisofs.so.6 libisofs-0.6.24_1
libmpack.so.0 libmpack-1.0.5_1
libGeoIP.so.1 libgeoip-1.4.8_1
diff --git a/srcpkgs/clang b/srcpkgs/clang
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/clang
+++ b/srcpkgs/clang
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/clang-analyzer b/srcpkgs/clang-analyzer
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/clang-analyzer
+++ b/srcpkgs/clang-analyzer
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/clang-tools-extra b/srcpkgs/clang-tools-extra
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/clang-tools-extra
+++ b/srcpkgs/clang-tools-extra
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libclang b/srcpkgs/libclang
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libclang
+++ b/srcpkgs/libclang
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libclang-cpp b/srcpkgs/libclang-cpp
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libclang-cpp
+++ b/srcpkgs/libclang-cpp
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxx b/srcpkgs/libcxx
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxx
+++ b/srcpkgs/libcxx
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxx-devel b/srcpkgs/libcxx-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxx-devel
+++ b/srcpkgs/libcxx-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxxabi b/srcpkgs/libcxxabi
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxxabi
+++ b/srcpkgs/libcxxabi
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxxabi-devel b/srcpkgs/libcxxabi-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxxabi-devel
+++ b/srcpkgs/libcxxabi-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libllvm15 b/srcpkgs/libllvm15
new file mode 120000
index 000000000000..ad57a969b9f9
--- /dev/null
+++ b/srcpkgs/libllvm15
@@ -0,0 +1 @@
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libomp b/srcpkgs/libomp
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libomp
+++ b/srcpkgs/libomp
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libomp-devel b/srcpkgs/libomp-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libomp-devel
+++ b/srcpkgs/libomp-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lld b/srcpkgs/lld
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lld
+++ b/srcpkgs/lld
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lld-devel b/srcpkgs/lld-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lld-devel
+++ b/srcpkgs/lld-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lldb b/srcpkgs/lldb
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lldb
+++ b/srcpkgs/lldb
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lldb-devel b/srcpkgs/lldb-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lldb-devel
+++ b/srcpkgs/lldb-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm-libunwind b/srcpkgs/llvm-libunwind
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/llvm-libunwind
+++ b/srcpkgs/llvm-libunwind
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm-libunwind-devel b/srcpkgs/llvm-libunwind-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/llvm-libunwind-devel
+++ b/srcpkgs/llvm-libunwind-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm/template b/srcpkgs/llvm/template
index a92db6f94f9f..d14430090161 100644
--- a/srcpkgs/llvm/template
+++ b/srcpkgs/llvm/template
@@ -1,10 +1,10 @@
# Template file for 'llvm'
pkgname=llvm
-version=12.0.0
+version=15.0.0
revision=1
build_style=meta
-depends="llvm12"
-replaces="llvm11>=0 llvm10>=0 llvm9>=0 llvm8>=0 llvm7>=0 llvm6.0>=0 llvm3.9>=0"
+depends="llvm15"
+replaces="llvm12>=0 llvm11>=0 llvm10>=0 llvm9>=0 llvm8>=0 llvm7>=0 llvm6.0>=0 llvm3.9>=0"
short_desc="LLVM meta package"
maintainer="Enno Boland <gottox@voidlinux.org>"
license="Public Domain"
diff --git a/srcpkgs/llvm15/files/llvm-Config-llvm-config.h b/srcpkgs/llvm15/files/llvm-Config-llvm-config.h
new file mode 100644
index 000000000000..2fa08c9be696
--- /dev/null
+++ b/srcpkgs/llvm15/files/llvm-Config-llvm-config.h
@@ -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
diff --git a/srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch b/srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch
new file mode 100644
index 000000000000..e4eaa7783e7a
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch
@@ -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
diff --git a/srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch b/srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch
new file mode 100644
index 000000000000..25688d40dbc2
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch
@@ -0,0 +1,110 @@
+--- a/clang/lib/Driver/ToolChains/Gnu.cpp
++++ b/clang/lib/Driver/ToolChains/Gnu.cpp
+@@ -2086,7 +2086,8 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
+ static const char *const ARMHFTriples[] = {"arm-linux-gnueabihf",
+ "armv7hl-redhat-linux-gnueabi",
+ "armv6hl-suse-linux-gnueabi",
+- "armv7hl-suse-linux-gnueabi"};
++ "armv7hl-suse-linux-gnueabi",
++ "armv7l-linux-gnueabihf"};
+ static const char *const ARMebLibDirs[] = {"/lib"};
+ static const char *const ARMebTriples[] = {"armeb-linux-gnueabi",
+ "armeb-linux-androideabi"};
+@@ -2153,8 +2154,7 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
+ "powerpc64-suse-linux", "powerpc-montavista-linuxspe"};
+ static const char *const PPCLELibDirs[] = {"/lib32", "/lib"};
+ static const char *const PPCLETriples[] = {"powerpcle-linux-gnu",
+- "powerpcle-unknown-linux-gnu",
+- "powerpcle-linux-musl"};
++ "powerpcle-unknown-linux-gnu"};
+
+ static const char *const PPC64LibDirs[] = {"/lib64", "/lib"};
+ static const char *const PPC64Triples[] = {
+@@ -2235,6 +2235,87 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
+ return;
+ }
+
++ if (TargetTriple.isMusl()) {
++ static const char *const AArch64MuslTriples[] = {"aarch64-linux-musl"};
++ static const char *const ARMHFMuslTriples[] = {
++ "arm-linux-musleabihf", "armv7l-linux-musleabihf"
++ };
++ static const char *const ARMMuslTriples[] = {"arm-linux-musleabi"};
++ static const char *const X86_64MuslTriples[] = {"x86_64-linux-musl"};
++ static const char *const X86MuslTriples[] = {"i686-linux-musl"};
++ static const char *const MIPSMuslTriples[] = {
++ "mips-linux-musl", "mipsel-linux-musl",
++ "mipsel-linux-muslhf", "mips-linux-muslhf"
++ };
++ static const char *const PPCMuslTriples[] = {"powerpc-linux-musl"};
++ static const char *const PPCLEMuslTriples[] = {"powerpcle-linux-musl"};
++ static const char *const PPC64MuslTriples[] = {"powerpc64-linux-musl"};
++ static const char *const PPC64LEMuslTriples[] = {"powerpc64le-linux-musl"};
++
++ switch (TargetTriple.getArch()) {
++ case llvm::Triple::aarch64:
++ LibDirs.append(begin(AArch64LibDirs), end(AArch64LibDirs));
++ TripleAliases.append(begin(AArch64MuslTriples), end(AArch64MuslTriples));
++ BiarchLibDirs.append(begin(AArch64LibDirs), end(AArch64LibDirs));
++ BiarchTripleAliases.append(begin(AArch64MuslTriples), end(AArch64MuslTriples));
++ break;
++ case llvm::Triple::arm:
++ LibDirs.append(begin(ARMLibDirs), end(ARMLibDirs));
++ if (TargetTriple.getEnvironment() == llvm::Triple::MuslEABIHF) {
++ TripleAliases.append(begin(ARMHFMuslTriples), end(ARMHFMuslTriples));
++ } else {
++ TripleAliases.append(begin(ARMMuslTriples), end(ARMMuslTriples));
++ }
++ break;
++ case llvm::Triple::x86_64:
++ LibDirs.append(begin(X86_64LibDirs), end(X86_64LibDirs));
++ TripleAliases.append(begin(X86_64MuslTriples), end(X86_64MuslTriples));
++ BiarchLibDirs.append(begin(X86LibDirs), end(X86LibDirs));
++ BiarchTripleAliases.append(begin(X86MuslTriples), end(X86MuslTriples));
++ break;
++ case llvm::Triple::x86:
++ LibDirs.append(begin(X86LibDirs), end(X86LibDirs));
++ TripleAliases.append(begin(X86MuslTriples), end(X86MuslTriples));
++ BiarchLibDirs.append(begin(X86_64LibDirs), end(X86_64LibDirs));
++ BiarchTripleAliases.append(begin(X86_64MuslTriples), end(X86_64MuslTriples));
++ break;
++ case llvm::Triple::mips:
++ LibDirs.append(begin(MIPSLibDirs), end(MIPSLibDirs));
++ TripleAliases.append(begin(MIPSMuslTriples), end(MIPSMuslTriples));
++ break;
++ case llvm::Triple::ppc:
++ LibDirs.append(begin(PPCLibDirs), end(PPCLibDirs));
++ TripleAliases.append(begin(PPCMuslTriples), end(PPCMuslTriples));
++ BiarchLibDirs.append(begin(PPC64LibDirs), end(PPC64LibDirs));
++ BiarchTripleAliases.append(begin(PPC64MuslTriples), end(PPC64MuslTriples));
++ break;
++ case llvm::Triple::ppcle:
++ LibDirs.append(begin(PPCLELibDirs), end(PPCLELibDirs));
++ TripleAliases.append(begin(PPCLEMuslTriples), end(PPCLEMuslTriples));
++ BiarchLibDirs.append(begin(PPC64LELibDirs), end(PPC64LELibDirs));
++ BiarchTripleAliases.append(begin(PPC64LEMuslTriples), end(PPC64LEMuslTriples));
++ break;
++ case llvm::Triple::ppc64:
++ LibDirs.append(begin(PPC64LibDirs), end(PPC64LibDirs));
++ TripleAliases.append(begin(PPC64MuslTriples), end(PPC64MuslTriples));
++ BiarchLibDirs.append(begin(PPCLibDirs), end(PPCLibDirs));
++ BiarchTripleAliases.append(begin(PPCMuslTriples), end(PPCMuslTriples));
++ break;
++ case llvm::Triple::ppc64le:
++ LibDirs.append(begin(PPC64LELibDirs), end(PPC64LELibDirs));
++ TripleAliases.append(begin(PPC64LEMuslTriples), end(PPC64LEMuslTriples));
++ BiarchLibDirs.append(begin(PPCLELibDirs), end(PPCLELibDirs));
++ BiarchTripleAliases.append(begin(PPCLEMuslTriples), end(PPCLEMuslTriples));
++ break;
++ default:
++ break;
++ }
++ TripleAliases.push_back(TargetTriple.str());
++ if (TargetTriple.str() != BiarchTriple.str())
++ BiarchTripleAliases.push_back(BiarchTriple.str());
++ return;
++ }
++
+ // Android targets should not use GNU/Linux tools or libraries.
+ if (TargetTriple.isAndroid()) {
+ static const char *const AArch64AndroidTriples[] = {
diff --git a/srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch b/srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch
new file mode 100644
index 000000000000..4ad6412d1e6c
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch
@@ -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 =
diff --git a/srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch b/srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch
new file mode 100644
index 000000000000..21fc8003c5f1
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch
@@ -0,0 +1,48 @@
+--- a/clang/lib/Basic/Targets/PPC.h
++++ b/clang/lib/Basic/Targets/PPC.h
+@@ -415,11 +415,10 @@ public:
+ LongDoubleFormat = &llvm::APFloat::IEEEdouble();
+ } else if ((Triple.getArch() == llvm::Triple::ppc64le)) {
+ DataLayout = "e-m:e-i64:64-n32:64";
+- ABI = "elfv2";
+ } else {
+ DataLayout = "E-m:e-i64:64-n32:64";
+- ABI = "elfv1";
+ }
++ ABI = "elfv2";
+
+ if (Triple.isOSFreeBSD() || Triple.isOSOpenBSD() || Triple.isMusl()) {
+ LongDoubleWidth = LongDoubleAlign = 64;
+--- a/clang/lib/CodeGen/TargetInfo.cpp
++++ b/clang/lib/CodeGen/TargetInfo.cpp
+@@ -10927,9 +10927,9 @@ const TargetCodeGenInfo &CodeGenModule::getTargetCodeGenInfo() {
+ return SetCGInfo(new AIXTargetCodeGenInfo(Types, /*Is64Bit*/ true));
+
+ if (Triple.isOSBinFormatELF()) {
+- PPC64_SVR4_ABIInfo::ABIKind Kind = PPC64_SVR4_ABIInfo::ELFv1;
+- if (getTarget().getABI() == "elfv2")
+- Kind = PPC64_SVR4_ABIInfo::ELFv2;
++ PPC64_SVR4_ABIInfo::ABIKind Kind = PPC64_SVR4_ABIInfo::ELFv2;
++ if (getTarget().getABI() == "elfv1")
++ Kind = PPC64_SVR4_ABIInfo::ELFv1;
+ bool IsSoftFloat = CodeGenOpts.FloatABI == "soft";
+
+ return SetCGInfo(
+--- a/clang/lib/Driver/ToolChains/Clang.cpp
++++ b/clang/lib/Driver/ToolChains/Clang.cpp
+@@ -1920,14 +1920,7 @@ void Clang::AddPPCTargetArgs(const ArgList &Args,
+ const llvm::Triple &T = getToolChain().getTriple();
+ if (T.isOSBinFormatELF()) {
+ switch (getToolChain().getArch()) {
+- case llvm::Triple::ppc64: {
+- if ((T.isOSFreeBSD() && T.getOSMajorVersion() >= 13) ||
+- T.isOSOpenBSD() || T.isMusl())
+- ABIName = "elfv2";
+- else
+- ABIName = "elfv1";
+- break;
+- }
++ case llvm::Triple::ppc64:
+ case llvm::Triple::ppc64le:
+ ABIName = "elfv2";
+ break;
diff --git a/srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch b/srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch
new file mode 100644
index 000000000000..360cfc1ba7f1
--- /dev/null
+++ b/srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch
@@ -0,0 +1,35 @@
+--- 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__) || SANITIZER_RISCV64
++ defined(__hexagon__) || defined(__powerpc__) || 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_ANDROID
++#if (defined(__aarch64__) || defined(__powerpc__) || SANITIZER_RISCV64) && !SANITIZER_ANDROID
+ // GLIBC 2.20+ sys/user does not include asm/ptrace.h
+ # include <asm/ptrace.h>
+ #endif
diff --git a/srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip b/srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip
new file mode 100644
index 000000000000..d0b61c80c897
--- /dev/null
+++ b/srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip
@@ -0,0 +1,62 @@
+--- a/compiler-rt/lib/xray/xray_powerpc64.inc
++++ b/compiler-rt/lib/xray/xray_powerpc64.inc
+@@ -12,7 +12,13 @@
+
+ #include <cstdint>
+ #include <mutex>
++#ifdef __GLIBC__
+ #include <sys/platform/ppc.h>
++#else
++#include <cctype>
++#include <cstring>
++#include <cstdlib>
++#endif
+
+ #include "xray_defs.h"
+
+@@ -20,13 +26,45 @@ namespace __xray {
+
+ ALWAYS_INLINE uint64_t readTSC(uint8_t &CPU) XRAY_NEVER_INSTRUMENT {
+ CPU = 0;
++#ifdef __GLIBC__
+ return __ppc_get_timebase();
++#else
++ return __builtin_ppc_get_timebase();
++#endif
+ }
+
+ inline uint64_t getTSCFrequency() XRAY_NEVER_INSTRUMENT {
+ static std::mutex M;
+ std::lock_guard<std::mutex> Guard(M);
++#ifdef __GLIBC__
+ return __ppc_get_timebase_freq();
++#else
++ /* FIXME: a less dirty implementation? */
++ static uint64_t base;
++ if (!base) {
++ FILE *f = fopen("/proc/cpuinfo", "rb");
++ if (f) {
++ ssize_t nr;
++ /* virtually always big enough to hold the line */
++ char buf[512];
++ while (fgets(buf, sizeof(buf), f)) {
++ char *ret = strstr(buf, "timebase");
++ if (!ret) {
++ continue;
++ }
++ ret += sizeof("timebase") - 1;
++ ret = strchr(ret, ':');
++ if (!ret) {
++ continue;
++ }
++ base = strtoul(ret + 1, nullptr, 10);
++ break;
++ }
++ fclose(f);
++ }
++ }
++ return base;
++#endif
+ }
+
+ inline bool probeRequiredCPUFeatures() XRAY_NEVER_INSTRUMENT {
diff --git a/srcpkgs/llvm15/patches/libcxx-musl.patch b/srcpkgs/llvm15/patches/libcxx-musl.patch
new file mode 100644
index 000000000000..bbd31ffc2cb1
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxx-musl.patch
@@ -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,
+ typename remove_reference<decltype(errno)>::type __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
+ typename remove_reference<decltype(errno)>::type __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,
+ typename remove_reference<decltype(errno)>::type __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
+ typename remove_reference<decltype(errno)>::type __current_errno = errno;
+ if (__current_errno == 0)
+ errno = __save_errno;
diff --git a/srcpkgs/llvm15/patches/libcxx-ppc.patch b/srcpkgs/llvm15/patches/libcxx-ppc.patch
new file mode 100644
index 000000000000..7a92f8004e1c
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxx-ppc.patch
@@ -0,0 +1,22 @@
+This ensures `is_iec559` is defined correctly under all long double ABIs,
+including musl and its 64-bit long double. Also, `__ppc__` or `__ppc64__`
+is not defined on gcc.
+
+--- a/libcxx/include/limits
++++ b/libcxx/include/limits
+@@ -426,8 +426,14 @@ protected:
+ _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type signaling_NaN() _NOEXCEPT {return __builtin_nansl("");}
+ _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type denorm_min() _NOEXCEPT {return __LDBL_DENORM_MIN__;}
+
+-#if (defined(__ppc__) || defined(__ppc64__))
++#if defined(__powerpc__) || defined(__powerpc64__)
++#if (__LDBL_MAX_EXP__ > __DBL_MAX_EXP__) || (__LDBL_MANT_DIG__ == __DBL_MANT_DIG__)
++ /* IEEE 754 quadruple or double precision */
++ static _LIBCPP_CONSTEXPR const bool is_iec559 = true;
++#else
++ /* 128-bit IBM double-double */
+ static _LIBCPP_CONSTEXPR const bool is_iec559 = false;
++#endif
+ #else
+ static _LIBCPP_CONSTEXPR const bool is_iec559 = true;
+ #endif
diff --git a/srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch b/srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch
new file mode 100644
index 000000000000..70292beb2fcd
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch
@@ -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()
diff --git a/srcpkgs/llvm15/patches/libcxxabi-dl.patch b/srcpkgs/llvm15/patches/libcxxabi-dl.patch
new file mode 100644
index 000000000000..3a15f9db8c98
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxxabi-dl.patch
@@ -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 @@
+ target_link_libraries(${target} PRIVATE m)
+ endif()
+
++ if (LIBCXX_HAS_C_LIB)
++ target_link_libraries(${target} PRIVATE dl)
++ endif()
++
+ if (LIBCXX_HAS_RT_LIB)
+ target_link_libraries(${target} PRIVATE rt)
+ endif()
diff --git a/srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip b/srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip
new file mode 100644
index 000000000000..74aa7576ecf9
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip
@@ -0,0 +1,63 @@
+This fixes build at least with gcc9 which does not define `__ppc__`.
+
+--- a/libunwind/include/__libunwind_config.h
++++ b/libunwind/include/__libunwind_config.h
+@@ -49,7 +49,7 @@
+ # define _LIBUNWIND_CONTEXT_SIZE 167
+ # define _LIBUNWIND_CURSOR_SIZE 179
+ # define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_PPC64
+-# elif defined(__ppc__)
++# elif defined(__powerpc__)
+ # define _LIBUNWIND_TARGET_PPC 1
+ # define _LIBUNWIND_CONTEXT_SIZE 117
+ # define _LIBUNWIND_CURSOR_SIZE 124
+--- a/libunwind/src/UnwindRegistersRestore.S
++++ b/libunwind/src/UnwindRegistersRestore.S
+@@ -392,7 +392,7 @@ Lnovec:
+ PPC64_LR(3)
+ bctr
+
+-#elif defined(__ppc__)
++#elif defined(__powerpc__)
+
+ DEFINE_LIBUNWIND_FUNCTION(_ZN9libunwind13Registers_ppc6jumptoEv)
+ //
+--- a/libunwind/src/UnwindRegistersSave.S
++++ b/libunwind/src/UnwindRegistersSave.S
+@@ -554,7 +554,7 @@ DEFINE_LIBUNWIND_FUNCTION(__unw_getcontext)
+ blr
+
+
+-#elif defined(__ppc__)
++#elif defined(__powerpc__)
+
+ //
+ // extern int unw_getcontext(unw_context_t* thread_state)
+--- a/libunwind/src/config.h
++++ b/libunwind/src/config.h
+@@ -95,12 +95,12 @@
+ #define _LIBUNWIND_BUILD_SJLJ_APIS
+ #endif
+
+-#if defined(__i386__) || defined(__x86_64__) || defined(__ppc__) || defined(__ppc64__) || defined(__powerpc64__)
++#if defined(__i386__) || defined(__x86_64__) || defined(__powerpc__) || defined(__powerpc64__)
+ #define _LIBUNWIND_SUPPORT_FRAME_APIS
+ #endif
+
+ #if defined(__i386__) || defined(__x86_64__) || \
+- defined(__ppc__) || defined(__ppc64__) || defined(__powerpc64__) || \
++ defined(__powerpc__) || defined(__powerpc64__) || \
+ (!defined(__APPLE__) && defined(__arm__)) || \
+ (defined(__arm64__) || defined(__aarch64__)) || \
+ defined(__mips__)
+--- a/libunwind/src/libunwind.cpp
++++ b/libunwind/src/libunwind.cpp
+@@ -42,7 +42,7 @@ _LIBUNWIND_HIDDEN int __unw_init_local(unw_cursor_t *cursor,
+ # define REGISTER_KIND Registers_x86_64
+ #elif defined(__powerpc64__)
+ # define REGISTER_KIND Registers_ppc64
+-#elif defined(__ppc__)
++#elif defined(__powerpc__)
+ # define REGISTER_KIND Registers_ppc
+ #elif defined(__aarch64__)
+ # define REGISTER_KIND Registers_arm64
diff --git a/srcpkgs/llvm15/patches/lldb-musl.patch b/srcpkgs/llvm15/patches/lldb-musl.patch
new file mode 100644
index 000000000000..026c5e1e61ba
--- /dev/null
+++ b/srcpkgs/llvm15/patches/lldb-musl.patch
@@ -0,0 +1,40 @@
+--- a/lldb/source/Plugins/Process/Linux/Procfs.h
++++ b/lldb/source/Plugins/Process/Linux/Procfs.h
+@@ -10,6 +10,7 @@
+ // sys/procfs.h on Android/Linux for all supported architectures.
+
+ #include <sys/ptrace.h>
++#include <asm/ptrace.h>
+
+ #include "lldb/lldb-types.h"
+
+@@ -17,23 +18,13 @@
+
+ #include <vector>
+
+-#ifdef __ANDROID__
+-#if defined(__arm64__) || defined(__aarch64__)
+-typedef unsigned long elf_greg_t;
+-typedef elf_greg_t
+- elf_gregset_t[(sizeof(struct user_pt_regs) / sizeof(elf_greg_t))];
+-typedef struct user_fpsimd_state elf_fpregset_t;
+-#ifndef NT_FPREGSET
+-#define NT_FPREGSET NT_PRFPREG
+-#endif // NT_FPREGSET
+-#elif defined(__mips__)
+-#ifndef NT_FPREGSET
+-#define NT_FPREGSET NT_PRFPREG
+-#endif // NT_FPREGSET
+-#endif
+-#else // __ANDROID__
++#if !defined(__GLIBC__) && defined(__powerpc__)
++#define pt_regs musl_pt_regs
++#include <sys/procfs.h>
++#undef pt_regs
++#else
+ #include <sys/procfs.h>
+-#endif // __ANDROID__
++#endif
+
+ namespace lldb_private {
+ namespace process_linux {
diff --git a/srcpkgs/llvm15/patches/llvm-001-musl.patch b/srcpkgs/llvm15/patches/llvm-001-musl.patch
new file mode 100644
index 000000000000..f2a3f8d62813
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-001-musl.patch
@@ -0,0 +1,57 @@
+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;
+diff --git a/lib/Support/Unix/DynamicLibrary.inc b/lib/Support/Unix/DynamicLibrary.inc
+index a2a37996..2f86c470 100644
+--- a/llvm/lib/Support/Unix/DynamicLibrary.inc
++++ b/llvm/lib/Support/Unix/DynamicLibrary.inc
+@@ -102,7 +102,7 @@ static void *DoSearch(const char* SymbolName) {
+
+ // This macro returns the address of a well-known, explicit symbol
+ #define EXPLICIT_SYMBOL(SYM) \
+- if (!strcmp(SymbolName, #SYM)) return &SYM
++ if (!strcmp(SymbolName, #SYM)) return (void *)&SYM
+
+ // Under glibc we have a weird situation. The stderr/out/in symbols are both
+ // macros and global variables because of standards requirements. So, we
+diff --git a/utils/unittest/googletest/src/gtest.cc b/utils/unittest/googletest/src/gtest.cc
+index d882ab2e..f1fb12d0 100644
+--- a/llvm/utils/unittest/googletest/src/gtest.cc
++++ b/llvm/utils/unittest/googletest/src/gtest.cc
+@@ -128,6 +128,7 @@
+
+ #if GTEST_CAN_STREAM_RESULTS_
+ # include <arpa/inet.h> // NOLINT
++# include <sys/socket.h> // NOLINT
+ # include <netdb.h> // NOLINT
+ # include <sys/socket.h> // NOLINT
+ # include <sys/types.h> // NOLINT
diff --git a/srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch b/srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch
new file mode 100644
index 000000000000..0071d964bd37
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch
@@ -0,0 +1,30 @@
+This patches LLVM to use ELFv2 on ppc64 unconditionally unless overridden. We
+need this because unlike most distros we use ELFv2 for both glibc and musl
+on big endian ppc64.
+
+diff --git a/lib/Target/PowerPC/PPCTargetMachine.cpp b/lib/Target/PowerPC/PPCTargetMachine.cpp
+index 0634833e..b7cbc2e7 100644
+--- a/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp
++++ b/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp
+@@ -222,9 +222,8 @@ static PPCTargetMachine::PPCABI computeTargetABI(const Triple &TT,
+
+ switch (TT.getArch()) {
+ case Triple::ppc64le:
+- return PPCTargetMachine::PPC_ABI_ELFv2;
+ case Triple::ppc64:
+- return PPCTargetMachine::PPC_ABI_ELFv1;
++ return PPCTargetMachine::PPC_ABI_ELFv2;
+ default:
+ return PPCTargetMachine::PPC_ABI_UNKNOWN;
+ }
+diff --git a/test/CodeGen/PowerPC/ppc64-elf-abi.ll b/test/CodeGen/PowerPC/ppc64-elf-abi.ll
+index 8b1cf6b5..296a2afa 100644
+--- a/llvm/test/CodeGen/PowerPC/ppc64-elf-abi.ll
++++ b/llvm/test/CodeGen/PowerPC/ppc64-elf-abi.ll
+@@ -1,4 +1,5 @@
+-; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv1
++; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv2
++; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-musl < %s | FileCheck %s -check-prefix=CHECK-ELFv2
+ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu -target-abi elfv1 < %s | FileCheck %s -check-prefix=CHECK-ELFv1
+ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu -target-abi elfv2 < %s | FileCheck %s -check-prefix=CHECK-ELFv2
+ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv2
diff --git a/srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch b/srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch
new file mode 100644
index 000000000000..b5d15974375d
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch
@@ -0,0 +1,11 @@
+--- a/llvm/lib/Target/PowerPC/PPCSubtarget.cpp
++++ b/llvm/lib/Target/PowerPC/PPCSubtarget.cpp
+@@ -165,7 +165,7 @@ void PPCSubtarget::initSubtargetFeatures(StringRef CPU, StringRef FS) {
+
+ if ((TargetTriple.isOSFreeBSD() && TargetTriple.getOSMajorVersion() >= 13) ||
+ TargetTriple.isOSNetBSD() || TargetTriple.isOSOpenBSD() ||
+- TargetTriple.isMusl())
++ isTargetLinux())
+ SecurePlt = true;
+
+ if (HasSPE && IsPPC64)
diff --git a/srcpkgs/llvm15/patches/llvm-004-override-opt.patch b/srcpkgs/llvm15/patches/llvm-004-override-opt.patch
new file mode 100644
index 000000000000..51d0e4b31b32
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-004-override-opt.patch
@@ -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)
diff --git a/srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch b/srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch
new file mode 100644
index 000000000000..d332687b9d92
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch
@@ -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);
diff --git a/srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch b/srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch
new file mode 100644
index 000000000000..a00abd216665
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch
@@ -0,0 +1,25 @@
+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__) || defined (__ppc__) || \
+- defined(_POWER) || defined(_ARCH_PPC))
++ defined(_POWER) || defined(_ARCH_PPC) || (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
diff --git a/srcpkgs/llvm15/template b/srcpkgs/llvm15/template
new file mode 100644
index 000000000000..d80c629c4778
--- /dev/null
+++ b/srcpkgs/llvm15/template
@@ -0,0 +1,433 @@
+# Template file for 'llvm15'
+pkgname=llvm15
+version=15.0.5
+revision=1
+build_wrksrc=llvm
+build_style=cmake
+configure_args="
+ -DCMAKE_BUILD_TYPE=Release -Wno-dev
+ -DENABLE_LINKER_BUILD_ID=YES
+ -DLLDB_USE_SYSTEM_SIX=YES
+ -DLIBCXX_CXX_ABI=libcxxabi
+ -DLIBCXX_ENABLE_STATIC_ABI_LIBRARY=YES
+ -DLIBCXXABI_USE_LLVM_UNWINDER=YES
+ -DLIBCXXABI_ENABLE_STATIC_UNWINDER=YES
+ -DLIBOMP_ENABLE_SHARED=YES
+ -DLIBOMP_INSTALL_ALIASES=NO
+ -DLLVM_INCLUDE_DOCS=YES
+ -DLLVM_BUILD_DOCS=YES
+ -DLLVM_ENABLE_SPHINX=YES
+ -DSPHINX_WARNINGS_AS_ERRORS=NO
+ -DLLVM_INSTALL_UTILS=YES
+ -DLLVM_BUILD_LLVM_DYLIB=YES
+ -DLLVM_LINK_LLVM_DYLIB=YES
+ -DLLVM_ENABLE_RTTI=YES
+ -DLLVM_ENABLE_FFI=YES
+ -DLLVM_BINUTILS_INCDIR=/usr/include"
+hostmakedepends="perl python3 zlib-devel libffi-devel swig python3-Sphinx
+ python3-recommonmark python3-sphinx-automodapi"
+makedepends="python3-devel zlib-devel elfutils-devel libffi-devel libedit-devel
+ libxml2-devel binutils-devel libatomic-devel"
+depends="libllvm15>=${version}_${revision}"
+short_desc="Low Level Virtual Machine"
+maintainer="Orphaned <orphan@voidlinux.org>"
+license="Apache-2.0"
+homepage="https://www.llvm.org"
+distfiles="https://github.com/llvm/llvm-project/releases/download/llvmorg-${version}/llvm-project-${version}.src.tar.xz"
+checksum=9c4278a6b8884eb7f4ae7dfe3c8e5445019824885e47cfdf1392563c47316fd6
+lib32disabled=yes
+python_version=3
+
+if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
+ configure_args+=" -DLIBCXX_HAS_MUSL_LIBC=YES"
+ makedepends+=" libexecinfo-devel"
+ depends+=" libexecinfo-devel"
+fi
+
+# "operand out of range" assembler failures
+case "$XBPS_TARGET_MACHINE" in
+ ppc64*) ;;
+ ppc*) configure_args+=" -DCLANG_ENABLE_CLANGD=OFF" ;;
+esac
+
+_enabled_projects="clang;clang-tools-extra;compiler-rt;libcxx;libcxxabi;libunwind;lld"
+
+_lldb_enable=yes
+_libomp_enable=no
+
+case "$XBPS_TARGET_MACHINE" in
+ ppc64le*) ;;
+ ppc*|i686*) _lldb_enable=no ;;
+esac
+
+case "$XBPS_TARGET_MACHINE" in
+ x86_64*|aarch64*|ppc64*) _libomp_enable=yes;;
+esac
+
+subpackages="clang-tools-extra"
+
+# must go before clang
+if [ "$_libomp_enable" = "yes" ]; then
+ _enabled_projects+=";openmp"
+ subpackages+=" libomp libomp-devel"
+ # because of cmake nonsense referencing libomptarget.so.*
+ depends+=" libomp>=${version}_${revision}"
+fi
+
+subpackages+=" clang clang-analyzer libclang libclang-cpp
+ llvm-libunwind llvm-libunwind-devel libcxx libcxx-devel
+ libcxxabi libcxxabi-devel libllvm15"
+
+if [ "$_lldb_enable" = "yes" ]; then
+ # XXX fails to cross compile due to python
+ _enabled_projects+=";lldb"
+ subpackages+=" lldb lldb-devel"
+fi
+
+subpackages+=" lld lld-devel"
+
+configure_args+=" -DLLVM_ENABLE_PROJECTS=${_enabled_projects}"
+
+post_patch() {
+ if [ "$_lldb_enable" = "yes" ]; then
+ if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
+ vsed -i 's|__ptrace_request|int|g' \
+ ${wrksrc}/lldb/source/Plugins/Process/Linux/NativeProcessLinux.cpp
+ fi
+ # disable docs for lldb as they fail to generate
+ vsed -i '/add_subdirectory(docs)/d' \
+ ${wrksrc}/lldb/CMakeLists.txt
+ fi
+
+ # update config.guess for better platform detection
+ cp $XBPS_COMMONDIR/environment/configure/automake/config.guess \
+ ${wrksrc}/llvm/cmake
+
+ # fix linker failures on some archs
+ vsed -i 's,check_library_exists(gcc_s .*,set(LIBCXXABI_HAS_GCC_S_LIB ON),' \
+ ${wrksrc}/libcxxabi/cmake/config-ix.cmake
+ vsed -i 's,check_library_exists(gcc .*,set(LIBCXXABI_HAS_GCC_LIB ON),' \
+ ${wrksrc}/libcxxabi/cmake/config-ix.cmake
+
+ # need libssp_nonshared on some musl platforms (because of nodefaultlibs)
+ case "$XBPS_TARGET_MACHINE" in
+ ppc64*) ;;
+ ppc*-musl|i686-musl|mips*-musl)
+ vsed -i 's,^# Setup flags.$,add_library_flags(ssp_nonshared),' \
+ ${wrksrc}/libunwind/src/CMakeLists.txt
+ vsed -i 's,^# Setup flags.$,add_library_flags(ssp_nonshared),' \
+ ${wrksrc}/libcxxabi/src/CMakeLists.txt
+ vsed -i 's,#ssp,,' ${wrksrc}/libcxx/CMakeLists.txt
+ ;;
+ esac
+
+ case "$XBPS_TARGET_MACHINE" in
+ x86_64-musl) # some sanitizer currently only on x86_64 stuff needs backtrace
+ vsed -i 's,# Set common link flags.,list(APPEND SANITIZER_COMMON_LINK_LIBS execinfo),' \
+ ${wrksrc}/compiler-rt/CMakeLists.txt
+ ;;
+ arm*-musl|i686-musl) # sanitizer code is broken since it duplicates some libc bits
+ vsed -i 's/set(COMPILER_RT_HAS_SANITIZER_COMMON TRUE)/set(COMPILER_RT_HAS_SANITIZER_COMMON FALSE)/' \
+ ${wrksrc}/compiler-rt/cmake/config-ix.cmake
+ ;;
+ esac
+}
+
+pre_configure() {
+ local triplet
+
+ # Vastly reduce size of debugging symbols:
+ CFLAGS=${CFLAGS/ -g/ -g1}
+ CXXFLAGS=${CXXFLAGS/ -g/ -g1}
+
+ # since gcc9, the build likes to blow up for ppc32 apparently because
+ # of clang being too large for a 24-bit relative call to the PLT, so
+ # optimize for size instead
+ case "$XBPS_TARGET_MACHINE" in
+ ppc64*) ;;
+ mips*-musl|ppc*) configure_args+=" -DVOID_CXX_OPT_FLAGS=-Os" ;;
+ esac
+
+ if [ "$CROSS_BUILD" ]; then
+ msg_normal "Building host tblgen\n"
+ mkdir -p build/HOST
+ cd build/HOST
+ CC="$BUILD_CC" CXX="$BUILD_CXX" CFLAGS="$BUILD_CFLAGS" \
+ CXXFLAGS="$BUILD_CXXFLAGS" LDFLAGS="$BUILD_LDFLAGS" \
+ cmake ../.. -DCMAKE_BUILD_TYPE=Release \
+ -DLLVM_ENABLE_PROJECTS=${_enabled_projects}
+ make ${makejobs} -C utils/TableGen
+ make ${makejobs} -C tools/clang/utils/TableGen
+ [ "$_lldb_enable" = "yes" ] && make ${makejobs} -C tools/lldb/utils/TableGen
+ configure_args+=" -DLLVM_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/llvm-tblgen"
+ configure_args+=" -DCLANG_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/clang-tblgen"
+ [ "$_lldb_enable" = "yes" ] && configure_args+=" -DLLDB_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/lldb-tblgen"
+ cd ../..
+ fi
+
+ case "$XBPS_TARGET_MACHINE" in
+ i686*) _arch="X86";;
+ x86_64*) _arch="X86";;
+ armv5*) _arch="Armv5te";;
+ armv6*) _arch="Armv6";;
+ armv7*) _arch="Armv7";;
+ aarch64*) _arch="AArch64";;
+ mips*) _arch="Mips";;
+ ppc*) _arch="PowerPC";;
+ riscv64*) _arch="RISCV64";;
+ esac
+
+ triplet=${XBPS_CROSS_TRIPLET:-$XBPS_TRIPLET}
+
+ configure_args+=" -DLLVM_TARGET_ARCH=${_arch}"
+ configure_args+=" -DLLVM_HOST_TRIPLE=${triplet}"
+ configure_args+=" -DLLVM_DEFAULT_TARGET_TRIPLE=${triplet}"
+}
+
+do_install() {
+ cd build
+ cmake -DCMAKE_INSTALL_PREFIX=${DESTDIR}/usr -P cmake_install.cmake
+
+ # Required for multilib.
+ if [ "$XBPS_TARGET_MACHINE" = "x86_64" ]; then
+ for _header in llvm-config; do
+ mv ${DESTDIR}/usr/include/llvm/Config/${_header}{,-64}.h
+ vinstall ${FILESDIR}/llvm-Config-${_header}.h 644 \
+ usr/include/llvm/Config ${_header}.h
+ done
+ fi
+
+ # Remove llvm-config-host in cross builds.
+ if [ "$CROSS_BUILD" ]; then
+ rm -f ${DESTDIR}/usr/bin/llvm-config-host
+ fi
+
+ # Install libcxxabi headers
+ vinstall ${wrksrc}/libcxxabi/include/__cxxabi_config.h 644 usr/include
+ vinstall ${wrksrc}/libcxxabi/include/cxxabi.h 644 usr/include
+
+ # Install libunwind headers
+ vinstall ${wrksrc}/libunwind/include/__libunwind_config.h 644 usr/include
+ vinstall ${wrksrc}/libunwind/include/libunwind.h 644 usr/include
+ vinstall ${wrksrc}/libunwind/include/unwind.h 644 usr/include
+ vinstall ${wrksrc}/libunwind/include/mach-o/compact_unwind_encoding.h \
+ 644 usr/include/mach-o
+}
+
+clang-analyzer_package() {
+ pycompile_dirs="usr/share/scan-view"
+ depends="clang-${version}_${revision} python3 perl"
+ short_desc+=" - A source code analysis framework"
+ homepage="https://clang-analyzer.llvm.org/"
+ pkg_install() {
+ vmove usr/share/man/man1/scan-build.1
+ vmove "/usr/bin/scan-*"
+ vmove "/usr/share/scan-*"
+ vmove "/usr/libexec/*analyzer"
+ }
+}
+
+clang-tools-extra_package() {
+ lib32disabled=yes
+ depends="clang-${version}_${revision} python3"
+ short_desc+=" - Extra Clang tools"
+ homepage="https://clang.llvm.org/extra/"
+ pkg_install() {
+ vmove usr/include/clang-tidy
+ vmove usr/bin/clang-apply-replacements
+ vmove usr/bin/clang-doc
+ vmove usr/bin/clang-include-fixer
+ vmove usr/bin/clang-query
+ vmove usr/bin/clang-rename
+ vmove usr/bin/clang-reorder-fields
+ vmove usr/bin/clang-tidy
+ vmove usr/bin/clangd
+ vmove usr/bin/diagtool
+ vmove usr/bin/find-all-symbols
+ vmove usr/bin/hmaptool
+ vmove usr/bin/modularize
+ vmove usr/bin/pp-trace
+ vmove usr/bin/sancov
+ vmove "usr/lib/libclangApplyReplacements*"
+ vmove "usr/lib/libclangDoc*"
+ vmove "usr/lib/libclangIncludeFixer*"
+ vmove "usr/lib/libclangReorderFields*"
+ vmove "usr/lib/libclangQuery*"
+ vmove "usr/lib/libclangTidy*"
+ vmove "usr/share/clang/*include-fixer*"
+ vmove "usr/share/clang/*rename*"
+ vmove "usr/share/clang/*tidy*"
+ vmove usr/share/doc/LLVM/clang-tools
+ vmove usr/share/man/man1/extraclangtools.1
+ vmove usr/share/man/man1/diagtool.1
+ }
+}
+
+clang_package() {
+ lib32disabled=yes
+ depends="libstdc++-devel libgcc-devel binutils ${XBPS_TARGET_LIBC}-devel
+ libclang-${version}_${revision}"
+ short_desc+=" - C language family frontend"
+ homepage="https://clang.llvm.org/"
+ pkg_install() {
+ vmove usr/include/clang
+ vmove usr/include/clang-c
+ vmove "usr/bin/*clang*"
+ vmove usr/bin/c-index-test
+ vmove usr/lib/clang
+ vmove usr/lib/cmake/clang
+ vmove "usr/lib/libclang*.a"
+ vmove "usr/lib/libclang*.so"
+ vmove usr/share/clang
+ vmove usr/share/doc/LLVM/clang
+ vmove usr/share/man/man1/clang.1
+ }
+}
+
+libclang_package() {
+ short_desc+=" - C frontend runtime library"
+ pkg_install() {
+ vmove "usr/lib/libclang.so.*"
+ }
+}
+
+libclang-cpp_package() {
+ short_desc+=" - C frontend runtime library (C++ interface)"
+ pkg_install() {
+ vmove "usr/lib/libclang-cpp.so.*"
+ }
+}
+
+lld_package() {
+ lib32disabled=yes
+ short_desc+=" - linker"
+ homepage="https://lld.llvm.org"
+ pkg_install() {
+ vmove usr/bin/lld*
+ vmove usr/bin/wasm-ld
+ vmove usr/bin/ld.lld*
+ vmove usr/bin/ld64.lld*
+ vmove usr/share/doc/LLVM/lld
+ }
+}
+
+lld-devel_package() {
+ lib32disabled=yes
+ short_desc+=" - linker - development files"
+ homepage="https://lld.llvm.org"
+ depends="lld>=${version}_${revision}"
+ pkg_install() {
+ vmove usr/include/lld
+ vmove usr/lib/cmake/lld
+ vmove "usr/lib/liblld*a"
+ }
+}
+
+lldb_package() {
+ lib32disabled=yes
+ depends+=" python3-six"
+ short_desc+=" - LLDB debugger"
+ homepage="https://lldb.llvm.org/"
+ pkg_install() {
+ vmove usr/bin/*lldb*
+ vmove usr/lib/liblldb*so.*
+ vmove /usr/lib/python*
+ }
+}
+
+lldb-devel_package() {
+ lib32disabled=yes
+ depends="lldb>=${version}_${revision}"
+ short_desc+=" - LLDB debugger - development files"
+ pkg_install() {
+ vmove usr/include/lldb
+ vmove "usr/lib/liblldb*.so"
+ }
+}
+
+llvm-libunwind_package() {
+ short_desc+=" - libunwind"
+ pkg_install() {
+ vmove "usr/lib/${XBPS_TRIPLET}/libunwind.so.*"
+ }
+}
+
+llvm-libunwind-devel_package() {
+ short_desc+=" - libunwind - development files"
+ depends="llvm-libunwind>=${version}_${revision}"
+ conflicts="libunwind-devel>=0"
+ pkg_install() {
+ vmove "usr/lib/${XBPS_TRIPLET}/libunwind.so"
+ vmove "usr/lib/${XBPS_TRIPLET}/libunwind.a"
+ vmove "usr/include/*unwind*"
+ vmove usr/include/mach-o
+ vmove usr/share/doc/LLVM/libunwind
+ }
+}
+
+libcxxabi_package() {
+ short_desc+=" - low level support for libc++"
+ pkg_install() {
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++abi.so.*"
+ }
+}
+
+libcxxabi-devel_package() {
+ short_desc+=" - low level support for libc++ - development files"
+ depends="libcxxabi>=${version}_${revision}"
+ pkg_install() {
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++abi.so"
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++abi.a"
+ vmove "usr/include/*cxxabi*"
+ }
+}
+
+libcxx_package() {
+ short_desc+=" - C++ standard library"
+ pkg_install() {
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++.so.*"
+ }
+}
+
+libcxx-devel_package() {
+ short_desc+=" - C++ standard library - development files"
+ depends="libcxx>=${version}_${revision}"
+ pkg_install() {
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++.so"
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++.a"
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++experimental.a"
+ vmove usr/include/c++
+ vmove usr/share/doc/LLVM/libcxx
+ }
+}
+
+libomp_package() {
+ short_desc+=" - Clang OpenMP support library"
+ pkg_install() {
+ vmove usr/lib/libomp.so
+ vmove usr/lib/libompd.so
+ vmove "usr/lib/libomptarget.rtl.*.so"
+ vmove usr/lib/libarcher.so
+ vmove "usr/lib/libomp*.so.*"
+ }
+}
+
+libomp-devel_package() {
+ short_desc+=" - Clang OpenMP support library - development files"
+ depends="libomp>=${version}_${revision}"
+ pkg_install() {
+ vmove "usr/lib/libomp*.so"
+ vmove "usr/lib/libarcher*"
+ vmove "usr/include/omp*.h"
+ vmove "usr/lib/clang/${version}/include/omp*.h"
+ vmove usr/share/doc/LLVM/openmp
+ vmove usr/share/man/man1/llvmopenmp.1
+ }
+}
+
+libllvm15_package() {
+ short_desc+=" - runtime library"
+ pkg_install() {
+ vmove "usr/lib/libLLVM-*.so*"
+ }
+}
diff --git a/srcpkgs/llvm15/update b/srcpkgs/llvm15/update
new file mode 100644
index 000000000000..e95cf26b3586
--- /dev/null
+++ b/srcpkgs/llvm15/update
@@ -0,0 +1,3 @@
+site="https://github.com/llvm/llvm-project/releases"
+pattern="llvmorg-\K(\d+.){2}\d+(-rc\d+)?"
+ignore="*-rc*"
^ permalink raw reply [flat|nested] 96+ messages in thread
* Re: [PR PATCH] [Updated] [WIP] LLVM 15
2022-11-28 15:30 [PR PATCH] [WIP] LLVM 15 tranzystorek-io
` (3 preceding siblings ...)
2022-11-28 23:49 ` tranzystorek-io
@ 2022-11-29 0:31 ` tranzystorek-io
2022-12-05 8:05 ` tranzystorek-io
` (89 subsequent siblings)
94 siblings, 0 replies; 96+ messages in thread
From: tranzystorek-io @ 2022-11-29 0:31 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 384 bytes --]
There is an updated pull request by tranzystorek-io against master on the void-packages repository
https://github.com/tranzystorek-io/void-packages llvm15
https://github.com/void-linux/void-packages/pull/40821
[WIP] LLVM 15
[ci skip]
TODO:
- [ ] Adjust patches marked as `.patch.skip`
A patch file from https://github.com/void-linux/void-packages/pull/40821.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-llvm15-40821.patch --]
[-- Type: text/x-diff, Size: 183423 bytes --]
From 647d83b69f6f9ec362d5dc43171ef63cc18946f7 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sat, 5 Nov 2022 11:33:11 -0700
Subject: [PATCH 01/38] binutils: update to 2.39.
---
...e3f3bd6d460491f8c8d032a7fea88d5ec8ff.patch | 60 -----------------
.../fix-libcollector-without-java.patch | 53 +++++++++++++++
.../patches/ppc64-revert-gnu-attributes.patch | 66 +++++--------------
srcpkgs/binutils/template | 25 ++++---
4 files changed, 87 insertions(+), 117 deletions(-)
delete mode 100644 srcpkgs/binutils/patches/1767e3f3bd6d460491f8c8d032a7fea88d5ec8ff.patch
create mode 100644 srcpkgs/binutils/patches/fix-libcollector-without-java.patch
diff --git a/srcpkgs/binutils/patches/1767e3f3bd6d460491f8c8d032a7fea88d5ec8ff.patch b/srcpkgs/binutils/patches/1767e3f3bd6d460491f8c8d032a7fea88d5ec8ff.patch
deleted file mode 100644
index a55432d83cff..000000000000
--- a/srcpkgs/binutils/patches/1767e3f3bd6d460491f8c8d032a7fea88d5ec8ff.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-From 1767e3f3bd6d460491f8c8d032a7fea88d5ec8ff Mon Sep 17 00:00:00 2001
-From: "H.J. Lu" <hjl.tools@gmail.com>
-Date: Mon, 16 Nov 2020 06:37:53 -0800
-Subject: [PATCH] elf: Set rel_from_abs to 1 for __ehdr_start
-
-bfdlink.h has
-
- /* Symbol will be converted from absolute to section-relative. Set for
- symbols defined by a script from "dot" (also SEGMENT_START or ORIGIN)
- outside of an output section statement. */
- unsigned int rel_from_abs : 1;
-
-linker.c has
-
-.{* Return TRUE if the symbol described by a linker hash entry H
-. is going to be absolute. Linker-script defined symbols can be
-. converted from absolute to section-relative ones late in the
-. link. Use this macro to correctly determine whether the symbol
-. will actually end up absolute in output. *}
-.#define bfd_is_abs_symbol(H) \
-. (((H)->type == bfd_link_hash_defined \
-. || (H)->type == bfd_link_hash_defweak) \
-. && bfd_is_abs_section ((H)->u.def.section) \
-. && !(H)->rel_from_abs)
-.
-
-Set rel_from_abs to 1 for __ehdr_start which will be converted from
-absolute to section-relative in assign_file_positions_for_load_sections.
-
- PR ld/26869
- * ldelf.c (ldelf_before_allocation): Set rel_from_abs to 1 for
- __ehdr_start.
- * testsuite/ld-i386/i386.exp: Run pr26869.
- * testsuite/ld-i386/pr26869.d: New file.
- * testsuite/ld-i386/pr26869.s: Likewise.
-
-(cherry picked from commit cbd5b99cce073273f668b154d4514e8e7e7ccc51)
----
- ld/ChangeLog | 9 +++++++++
- ld/ldelf.c | 2 ++
- ld/testsuite/ld-i386/i386.exp | 1 +
- ld/testsuite/ld-i386/pr26869.d | 14 ++++++++++++++
- ld/testsuite/ld-i386/pr26869.s | 3 +++
- 5 files changed, 29 insertions(+)
- create mode 100644 ld/testsuite/ld-i386/pr26869.d
- create mode 100644 ld/testsuite/ld-i386/pr26869.s
-
-diff --git a/ld/ldelf.c b/ld/ldelf.c
-index bada3ade2d7..831d032fe56 100644
---- a/ld/ldelf.c
-+++ b/ld/ldelf.c
-@@ -1589,6 +1589,8 @@ ldelf_before_allocation (char *audit, char *depaudit,
- (char *) &ehdr_start->u + sizeof ehdr_start->u.def.next,
- sizeof ehdr_start_save_u);
- ehdr_start->type = bfd_link_hash_defined;
-+ /* It will be converted to section-relative later. */
-+ ehdr_start->rel_from_abs = 1;
- ehdr_start->u.def.section = bfd_abs_section_ptr;
- ehdr_start->u.def.value = 0;
- }
diff --git a/srcpkgs/binutils/patches/fix-libcollector-without-java.patch b/srcpkgs/binutils/patches/fix-libcollector-without-java.patch
new file mode 100644
index 000000000000..54384875f358
--- /dev/null
+++ b/srcpkgs/binutils/patches/fix-libcollector-without-java.patch
@@ -0,0 +1,53 @@
+From 49ddd814ac1071af7c4f45d5f8398b91862f2c7f Mon Sep 17 00:00:00 2001
+From: Vladimir Mezentsev <vladimir.mezentsev@oracle.com>
+Date: Wed, 17 Aug 2022 19:55:23 -0700
+Subject: [PATCH] gprofng: fix bug 29479 Collection fails when built without
+ java support
+
+gprofng/ChangeLog
+2022-08-17 Vladimir Mezentsev <vladimir.mezentsev@oracle.com>
+
+ PR gprofng/29479
+ * libcollector/collector.c: Add #if defined(GPROFNG_JAVA_PROFILING) for
+ java specific code.
+ * libcollector/unwind.c: Likewise.
+---
+ gprofng/libcollector/collector.c | 2 ++
+ gprofng/libcollector/unwind.c | 2 ++
+ 2 files changed, 4 insertions(+)
+
+diff --git a/gprofng/libcollector/collector.c b/gprofng/libcollector/collector.c
+index 93c9d3330de5..ceff2c1caccb 100644
+--- a/gprofng/libcollector/collector.c
++++ b/gprofng/libcollector/collector.c
+@@ -913,8 +913,10 @@ __collector_open_experiment (const char *exp, const char *params, sp_origin_t or
+ __collector_ext_unwind_key_init (1, NULL);
+
+ /* start java attach if suitable */
++#if defined(GPROFNG_JAVA_PROFILING)
+ if (exp_origin == SP_ORIGIN_DBX_ATTACH)
+ __collector_jprofile_start_attach ();
++#endif
+ start_sec_time = CALL_UTIL (time)(NULL);
+ __collector_start_time = collector_interface.getHiResTime ();
+ TprintfT (DBG_LT0, "\t__collector_open_experiment; resetting start_time\n");
+diff --git a/gprofng/libcollector/unwind.c b/gprofng/libcollector/unwind.c
+index 119243788020..f8e11823c81e 100644
+--- a/gprofng/libcollector/unwind.c
++++ b/gprofng/libcollector/unwind.c
+@@ -557,6 +557,7 @@ __collector_get_frame_info (hrtime_t ts, int mode, void *arg)
+ int size = max_frame_size;
+
+ #define MIN(a,b) ((a)<(b)?(a):(b))
++#if defined(GPROFNG_JAVA_PROFILING)
+ /* get Java info */
+ if (__collector_java_mode && __collector_java_asyncgetcalltrace_loaded && context && !pseudo_context)
+ {
+@@ -569,6 +570,7 @@ __collector_get_frame_info (hrtime_t ts, int mode, void *arg)
+ size -= sz;
+ }
+ }
++#endif
+
+ /* get native stack */
+ if (context)
diff --git a/srcpkgs/binutils/patches/ppc64-revert-gnu-attributes.patch b/srcpkgs/binutils/patches/ppc64-revert-gnu-attributes.patch
index 5de937f4fcce..1c208dd8955c 100644
--- a/srcpkgs/binutils/patches/ppc64-revert-gnu-attributes.patch
+++ b/srcpkgs/binutils/patches/ppc64-revert-gnu-attributes.patch
@@ -1,39 +1,24 @@
-From b1faf99f3e546df2cd302bb1ad36a2078224fe8b Mon Sep 17 00:00:00 2001
+From bbf05b742fde518fb97c789b043fe0d3aaf549f0 Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@dereferenced.org>
-Date: Fri, 30 Oct 2020 16:59:48 -0600
+Date: Tue, 21 Sep 2021 14:53:13 +0000
Subject: [PATCH] Revert "PR25882, .gnu.attributes are not checked for shared
libraries"
+This revert is needed to avoid wrongly tagging objects with the incompatible
+IBM long double ABI, which is not supported by musl and will result in
+linking errors if used.
+
This reverts commit a8acd6eeb6dc2cc5460ece90f90ebe36b56b20ba.
---
- bfd/ChangeLog | 6 ------
- bfd/elf32-tic6x.c | 3 ---
- ld/ChangeLog | 6 ------
- ld/ldlang.c | 9 ++++-----
- 4 files changed, 4 insertions(+), 20 deletions(-)
+ bfd/elf32-tic6x.c | 3 ---
+ ld/ldlang.c | 10 ++++------
+ 2 files changed, 4 insertions(+), 9 deletions(-)
-diff --git a/bfd/ChangeLog b/bfd/ChangeLog
-index 9fac12538a..b5461494e8 100644
---- a/bfd/ChangeLog
-+++ b/bfd/ChangeLog
-@@ -1422,12 +1422,6 @@
- accessing root.u.def of symbols. Also check root.u.def.section
- is non-NULL. Reverse tests so as to make the logic positive.
-
--2020-05-01 Alan Modra <amodra@gmail.com>
--
-- PR 25882
-- * elf32-tic6x.c (elf32_tic6x_merge_attributes): Don't transfer
-- Tag_ABI_PIC or Tag_ABI_PID from dynamic objects to the output.
--
- 2020-05-01 Alan Modra <amodra@gmail.com>
-
- PR 25882
diff --git a/bfd/elf32-tic6x.c b/bfd/elf32-tic6x.c
-index b8b916bfd3..91bb6a10b1 100644
+index 5754f3cb860..3ad1d612749 100644
--- a/bfd/elf32-tic6x.c
+++ b/bfd/elf32-tic6x.c
-@@ -3748,9 +3748,6 @@ elf32_tic6x_merge_attributes (bfd *ibfd, struct bfd_link_info *info)
+@@ -3735,9 +3735,6 @@ elf32_tic6x_merge_attributes (bfd *ibfd, struct bfd_link_info *info)
case Tag_ABI_PIC:
case Tag_ABI_PID:
@@ -43,36 +28,20 @@ index b8b916bfd3..91bb6a10b1 100644
if (out_attr[i].i > in_attr[i].i)
out_attr[i].i = in_attr[i].i;
break;
-diff --git a/ld/ChangeLog b/ld/ChangeLog
-index 4eec7d2977..b93452f70c 100644
---- a/ld/ChangeLog
-+++ b/ld/ChangeLog
-@@ -1319,12 +1319,6 @@
- * testsuite/ld-aarch64/farcall-group.d: New test driver.
- * testsuite/ld-aarch64/aarch64-elf.exp: Run the new test.
-
--2020-05-01 Alan Modra <amodra@gmail.com>
--
-- PR 25882
-- * ldlang.c (lang_check): Call bfd_merge_private_bfd_data for
-- shared libraries.
--
- 2020-05-01 Alan Modra <amodra@gmail.com>
-
- * po/BLD-POTFILES.in: Regenerate.
diff --git a/ld/ldlang.c b/ld/ldlang.c
-index 9977195074..173d8ec349 100644
+index 37b64c89ee1..f13beaef9d9 100644
--- a/ld/ldlang.c
+++ b/ld/ldlang.c
-@@ -6972,12 +6972,11 @@ lang_check (void)
+@@ -7071,13 +7071,11 @@ lang_check (void)
bfd_printable_name (input_bfd), input_bfd,
bfd_printable_name (link_info.output_bfd));
}
-
- /* If the input bfd has no contents, it shouldn't set the
- private data of the output bfd. */
-- else if ((input_bfd->flags & DYNAMIC) != 0
-- || bfd_count_sections (input_bfd) != 0)
+- else if (!file->flags.just_syms
+- && ((input_bfd->flags & DYNAMIC) != 0
+- || bfd_count_sections (input_bfd) != 0))
+ else if (bfd_count_sections (input_bfd))
{
+ /* If the input bfd has no contents, it shouldn't set the
@@ -82,5 +51,4 @@ index 9977195074..173d8ec349 100644
/* If we aren't supposed to warn about mismatched input
--
-2.29.2
-
+2.33.0
diff --git a/srcpkgs/binutils/template b/srcpkgs/binutils/template
index 6270f8618c87..c355a5fc8016 100644
--- a/srcpkgs/binutils/template
+++ b/srcpkgs/binutils/template
@@ -1,19 +1,20 @@
# Template file for 'binutils'
pkgname=binutils
-version=2.35.1
-revision=4
+version=2.39
+revision=1
bootstrap=yes
+hostmakedepends="pkgconf"
makedepends="zlib-devel"
short_desc="GNU binary utilities"
maintainer="Enno Boland <gottox@voidlinux.org>"
license="GPL-3.0-or-later"
homepage="http://www.gnu.org/software/binutils/"
distfiles="${GNU_SITE}/$pkgname/$pkgname-$version.tar.xz"
-checksum=3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
+checksum=645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
subpackages="binutils-doc"
if [ "$CHROOT_READY" ]; then
- hostmakedepends="flex perl texinfo"
+ hostmakedepends+=" flex perl texinfo"
makedepends+=" elfutils-devel"
checkdepends="bc"
depends="binutils-doc"
@@ -35,15 +36,21 @@ do_configure() {
local conf
if [ "$CHROOT_READY" ]; then
- conf+=" --with-debuginfod"
+ conf+=" --with-debuginfod --enable-shared"
else
- conf+=" --without-debuginfod --disable-install-libbfd"
+ conf+=" --without-debuginfod --disable-shared --disable-install-libbfd"
fi
if [ "$CROSS_BUILD" ]; then
# we don't want --with-sysroot=${XBPS_CROSS_BASE} like gnu-configure
conf+=" --host=${XBPS_CROSS_TRIPLET} --with-build-sysroot=${XBPS_CROSS_BASE}"
fi
+ # gprofng currently only supports x86 and aarch64 glibc.
+ case "$XBPS_TARGET_MACHINE" in
+ x86_64|i386|aarch64) conf+=" --enable-gprofng" ;;
+ *) conf+=" --disable-gprofng" ;;
+ esac
+
case "$XBPS_TARGET_MACHINE" in
ppc*)
conf+=" --enable-secureplt"
@@ -76,13 +83,14 @@ do_configure() {
--libdir=/usr/lib \
--mandir=/usr/share/man \
--infodir=/usr/share/info \
+ --sysconfdir=/etc \
--disable-werror \
- --disable-shared \
--disable-nls \
--enable-threads \
--enable-plugins \
--enable-relro \
--enable-gold \
+ --enable-new-dtags \
--enable-deterministic-archives \
--enable-64-bit-bfd \
--enable-ld=default \
@@ -142,7 +150,8 @@ binutils-devel_package() {
pkg_install() {
vmove usr/include
vmove "usr/lib/*.a"
- vmove "usr/lib/*.so"
+ vmove "usr/lib/libbfd.so"
+ vmove "usr/lib/libopcodes.so"
}
}
From acebba575df5e434b0b4aa52835b2c1c977970b8 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sat, 5 Nov 2022 11:33:11 -0700
Subject: [PATCH 02/38] gdb: resolve conflict with binutils 2.39
---
srcpkgs/gdb/template | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/gdb/template b/srcpkgs/gdb/template
index 9c5f17ffc519..b666348fea19 100644
--- a/srcpkgs/gdb/template
+++ b/srcpkgs/gdb/template
@@ -1,7 +1,7 @@
# Template file for 'gdb'
pkgname=gdb
version=12.1
-revision=2
+revision=3
build_style=gnu-configure
pycompile_dirs="/usr/share/gdb/python"
configure_args="--disable-werror --disable-nls --with-system-readline
@@ -48,7 +48,8 @@ vopt_conflict debuginfod static
post_install() {
# resolve conflicts with binutils
- rm -r ${DESTDIR}/usr/{include,lib,share/info/bfd.info*}
+ rm -rf ${DESTDIR}/usr/{include,lib}
+ rm -rf ${DESTDIR}/usr/share/info/{bfd,ctf-spec}.info*
}
gdb-common_package() {
From cec0e7bc58b966f36f3510220644199a943c430f Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sat, 5 Nov 2022 11:33:11 -0700
Subject: [PATCH 03/38] gcc: update to 12.2.0.
---
common/shlibs | 10 +--
srcpkgs/gcc/files/gccgo-musl.patch | 71 +++------------
srcpkgs/gcc/files/libgnarl-musl.patch | 18 ++--
srcpkgs/gcc/files/libssp-musl.patch | 10 +--
.../gcc/patches/force-override-clocale.patch | 21 +++++
srcpkgs/gcc/patches/libffi_gnulinux.patch | 11 ---
.../gcc/patches/libgcc-ibm128-no-tag.patch | 10 ++-
srcpkgs/gcc/patches/mips-sgidefs_h.patch | 2 +-
srcpkgs/gcc/template | 87 +++++++++----------
9 files changed, 101 insertions(+), 139 deletions(-)
create mode 100644 srcpkgs/gcc/patches/force-override-clocale.patch
delete mode 100644 srcpkgs/gcc/patches/libffi_gnulinux.patch
diff --git a/common/shlibs b/common/shlibs
index fc5bb4dda7e6..4bb4c7ab1e3b 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -60,7 +60,7 @@ libcc1plugin.so.0 gcc-6.2.1_1
libitm.so.1 libitm-4.7.3_1
liblto_plugin.so.0 gcc-4.7.3_1
libgcc_s.so.1 libgcc-4.4.0_1
-libgo.so.16 libgo-10.2.0_1
+libgo.so.21 libgo-12.2.0_1
libgccjit.so.0 libgccjit-10.2.1pre1_1
libperl.so.5.36 perl-5.36.0_1
libgmp.so.10 gmp-5.0.1_1
@@ -857,8 +857,8 @@ libgdkmm-2.4.so.1 gtkmm2-2.24.0_1
libgtkmm-2.4.so.1 gtkmm2-2.24.0_1
libquadmath.so.0 libquadmath-4.4.0_1
libgfortran.so.5 libgfortran-8.2.0_1
-libgnarl-10.so libada-10.2.0_1
-libgnat-10.so libada-10.2.0_1
+libgnarl-12.so libada-12.2.0_1
+libgnat-12.so libada-12.2.0_1
libwebp.so.7 libwebp-0.6.0_1
libwebpmux.so.3 libwebp-0.6.0_1
libwebpdemux.so.2 libwebp-0.5.0_1
@@ -1710,8 +1710,8 @@ libextractor.so.3 libextractor-1.1_1
libextractor_common.so.1 libextractor-1.1_1
libpano13.so.3 libpano13-2.9.19_1
libubsan.so.1 libsanitizer-8.2.0_1
-libtsan.so.0 libsanitizer-6.3.0_1
-libasan.so.6 libsanitizer-10.2.0_1
+libtsan.so.2 libsanitizer-12.2.0_1
+libasan.so.8 libsanitizer-12.2.0_1
liblsan.so.0 libsanitizer-6.3.0_1
libvtv.so.0 libvtv-6.3.0_1
libatomic.so.1 libatomic-4.9.0_1
diff --git a/srcpkgs/gcc/files/gccgo-musl.patch b/srcpkgs/gcc/files/gccgo-musl.patch
index 9762739615af..12ec68dd8aa3 100644
--- a/srcpkgs/gcc/files/gccgo-musl.patch
+++ b/srcpkgs/gcc/files/gccgo-musl.patch
@@ -53,17 +53,6 @@ URL: https://code.foxkit.us/adelie/packages/tree/master/system/gcc
p := sysMmap(addr, n, prot, flags, fd, off)
if uintptr(p) == _MAP_FAILED {
return nil, errno()
---- a/libgo/go/runtime/signal_gccgo.go
-+++ b/libgo/go/runtime/signal_gccgo.go
-@@ -111,7 +111,7 @@ func getsig(i uint32) uintptr {
- if sigaction(i, nil, &sa) < 0 {
- // On GNU/Linux glibc rejects attempts to call
- // sigaction with signal 32 (SIGCANCEL) or 33 (SIGSETXID).
-- if GOOS == "linux" && (i == 32 || i == 33) {
-+ if GOOS == "linux" && (i == 32 || i == 33 || i == 34) {
- return _SIG_DFL
- }
- throw("sigaction read failure")
--- a/libgo/go/syscall/errstr.go
+++ b/libgo/go/syscall/errstr.go
@@ -5,7 +5,6 @@
@@ -140,55 +129,6 @@ URL: https://code.foxkit.us/adelie/packages/tree/master/system/gcc
plwoff = &lwoff
}
n, err = splice(rfd, plroff, wfd, plwoff, len, flags)
---- a/libgo/mksigtab.sh
-+++ b/libgo/mksigtab.sh
-@@ -82,7 +82,7 @@ checksig _SIGPWR '{_SigNotify, "SIGPWR: power failure restart"}'
- checksig _SIGEMT '{_SigThrow, "SIGEMT: emulate instruction executed"}'
- checksig _SIGINFO '{_SigNotify, "SIGINFO: status request from keyboard"}'
- checksig _SIGTHR '{_SigNotify, "SIGTHR: reserved"}'
--checksig _SIGPOLL '{_SigNotify, "SIGPOLL: pollable event occurred"}'
-+#checksig _SIGPOLL '{_SigNotify, "SIGPOLL: pollable event occurred"}'
- checksig _SIGWAITING '{_SigNotify, "SIGWAITING: reserved signal no longer used by"}'
- checksig _SIGLWP '{_SigNotify, "SIGLWP: reserved signal no longer used by"}'
- checksig _SIGFREEZE '{_SigNotify, "SIGFREEZE: special signal used by CPR"}'
-@@ -95,10 +95,12 @@ checksig _SIGLOST ' {_SigNotify, "SIGLOST: resource lost (Sun); server died (G
-
- # Special handling of signals 32 and 33 on GNU/Linux systems,
- # because they are special to glibc.
-+# Signal 34 is additionally special to Linux systems with musl.
- if test "${GOOS}" = "linux"; then
-- SIGLIST=$SIGLIST"_32__33_"
-+ SIGLIST=$SIGLIST"_32__33__34_"
- echo ' 32: {_SigSetStack + _SigUnblock, "signal 32"}, /* SIGCANCEL; see issue 6997 */'
- echo ' 33: {_SigSetStack + _SigUnblock, "signal 33"}, /* SIGSETXID; see issues 3871, 9400, 12498 */'
-+ echo ' 34: {_SigSetStack + _SigUnblock, "signal 34"}, /* see issue 30062 */'
- fi
-
- if test "${GOOS}" = "aix"; then
---- a/libgo/runtime/go-signal.c 2020-07-23 08:35:19.004402840 +0200
-+++ b/libgo/runtime/go-signal.c 2020-08-09 21:35:54.352886232 +0200
-@@ -224,7 +224,11 @@
- #elif defined(__alpha__) && defined(__linux__)
- ret.sigpc = ((ucontext_t*)(context))->uc_mcontext.sc_pc;
- #elif defined(__PPC__) && defined(__linux__)
-- ret.sigpc = ((ucontext_t*)(context))->uc_mcontext.regs->nip;
-+ #ifdef __PPC64__
-+ ret.sigpc = ((ucontext_t*)(context))->uc_mcontext.gp_regs[32];
-+ #else
-+ ret.sigpc = ((ucontext_t*)(context))->uc_mcontext.gregs[32];
-+ #endif
- #elif defined(__PPC__) && defined(_AIX)
- ret.sigpc = ((ucontext_t*)(context))->uc_mcontext.jmp_context.iar;
- #elif defined(__aarch64__) && defined(__linux__)
-@@ -333,7 +337,7 @@
- runtime_printf("sp %X\n", m->sc_regs[30]);
- runtime_printf("pc %X\n", m->sc_pc);
- }
--#elif defined(__PPC__) && defined(__LITTLE_ENDIAN__) && defined(__linux__)
-+#elif defined(__PPC__) && defined(__LITTLE_ENDIAN__) && defined(__linux__) && defined(__GLIBC__)
- {
- mcontext_t *m = &((ucontext_t*)(context))->uc_mcontext;
- int i;
--- a/libgo/runtime/runtime.h
+++ b/libgo/runtime/runtime.h
@@ -500,10 +500,13 @@ int __go_setcontext(__go_context_t*);
@@ -220,3 +160,14 @@ URL: https://code.foxkit.us/adelie/packages/tree/master/system/gcc
#if defined(HAVE_SYS_UTSNAME_H)
#include <sys/utsname.h>
#endif
+--- a/libgo/go/runtime/os_linux.go
++++ b/libgo/go/runtime/os_linux.go
+@@ -365,7 +365,7 @@ func setThreadCPUProfiler(hz int32) {
+ var sevp _sigevent
+ sevp.sigev_notify = _SIGEV_THREAD_ID
+ sevp.sigev_signo = _SIGPROF
+- *((*int32)(unsafe.Pointer(&sevp._sigev_un))) = int32(mp.procid)
++ *((*int32)(unsafe.Pointer(&sevp.__sev_fields))) = int32(mp.procid)
+ ret := timer_create(_CLOCK_THREAD_CPUTIME_ID, &sevp, &timerid)
+ if ret != 0 {
+ // If we cannot create a timer for this M, leave profileTimerValid false
diff --git a/srcpkgs/gcc/files/libgnarl-musl.patch b/srcpkgs/gcc/files/libgnarl-musl.patch
index 99a734c42c90..91c95949e0e9 100644
--- a/srcpkgs/gcc/files/libgnarl-musl.patch
+++ b/srcpkgs/gcc/files/libgnarl-musl.patch
@@ -5,7 +5,7 @@ Reason: Patch libgnarl to not use function missing from musl.
diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-osinte__linux.ads gcc-8.2.0-new/gcc/ada/libgnarl/s-osinte__linux.ads
--- a/gcc/ada/libgnarl/s-osinte__linux.ads 2018-01-11 00:55:25.000000000 -0800
+++ b/gcc/ada/libgnarl/s-osinte__linux.ads 2018-11-01 16:16:23.372452951 -0700
-@@ -394,12 +394,6 @@ package System.OS_Interface is
+@@ -403,12 +403,6 @@ package System.OS_Interface is
PTHREAD_RWLOCK_PREFER_WRITER_NP : constant := 1;
PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP : constant := 2;
@@ -18,7 +18,7 @@ diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-osinte__linux.ads gcc-8.2.0-new/gcc/ada/l
function pthread_rwlock_init
(mutex : access pthread_rwlock_t;
attr : access pthread_rwlockattr_t) return int;
-@@ -464,11 +458,6 @@ package System.OS_Interface is
+@@ -470,11 +464,6 @@ package System.OS_Interface is
protocol : int) return int;
pragma Import (C, pthread_mutexattr_setprotocol);
@@ -33,7 +33,7 @@ diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-osinte__linux.ads gcc-8.2.0-new/gcc/ada/l
diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-taprop__linux.adb gcc-8.2.0-new/gcc/ada/libgnarl/s-taprop__linux.adb
--- a/gcc/ada/libgnarl/s-taprop__linux.adb 2018-01-11 00:55:25.000000000 -0800
+++ b/gcc/ada/libgnarl/s-taprop__linux.adb 2018-11-13 11:28:36.433964449 -0800
-@@ -202,9 +202,6 @@ package body System.Task_Primitives.Oper
+@@ -198,9 +198,6 @@ package body System.Task_Primitives.Oper
pragma Import
(C, GNAT_pthread_condattr_setup, "__gnat_pthread_condattr_setup");
@@ -43,7 +43,7 @@ diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-taprop__linux.adb gcc-8.2.0-new/gcc/ada/l
-- We do not have pragma Linker_Options ("-lcap"); here, because this
-- library is not present on many Linux systems. 'libcap' is the Linux
-- "capabilities" library, called by __gnat_has_cap_sys_nice.
-@@ -214,38 +211,6 @@ package body System.Task_Primitives.Oper
+@@ -210,38 +207,6 @@ package body System.Task_Primitives.Oper
-- Convert Ada priority to Linux priority. Priorities are 1 .. 99 on
-- GNU/Linux, so we map 0 .. 98 to 1 .. 99.
@@ -76,13 +76,13 @@ diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-taprop__linux.adb gcc-8.2.0-new/gcc/ada/l
- return Ceiling_Support;
- end Get_Ceiling_Support;
-
-- pragma Warnings (Off, "non-static call not allowed in preelaborated unit");
+- pragma Warnings (Off, "non-preelaborable call not allowed*");
- Ceiling_Support : constant Boolean := Get_Ceiling_Support;
-- pragma Warnings (On, "non-static call not allowed in preelaborated unit");
+- pragma Warnings (On, "non-preelaborable call not allowed*");
-- True if the locking policy is Ceiling_Locking, and the current process
-- has permission to use this policy. The process has permission if it is
-- running as 'root', or if the capability was set by the setcap command,
-@@ -348,7 +313,9 @@ package body System.Task_Primitives.Oper
+@@ -344,7 +309,9 @@ package body System.Task_Primitives.Oper
-- Init_Mutex --
----------------
@@ -92,7 +92,7 @@ diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-taprop__linux.adb gcc-8.2.0-new/gcc/ada/l
Mutex_Attr : aliased pthread_mutexattr_t;
Result, Result_2 : C.int;
-@@ -360,16 +327,7 @@ package body System.Task_Primitives.Oper
+@@ -356,16 +323,7 @@ package body System.Task_Primitives.Oper
return Result;
end if;
@@ -110,7 +110,7 @@ diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-taprop__linux.adb gcc-8.2.0-new/gcc/ada/l
Result := pthread_mutexattr_setprotocol
(Mutex_Attr'Access, PTHREAD_PRIO_INHERIT);
pragma Assert (Result = 0);
-@@ -409,11 +367,6 @@ package body System.Task_Primitives.Oper
+@@ -405,11 +363,6 @@ package body System.Task_Primitives.Oper
Result := pthread_rwlockattr_init (RWlock_Attr'Access);
pragma Assert (Result = 0);
diff --git a/srcpkgs/gcc/files/libssp-musl.patch b/srcpkgs/gcc/files/libssp-musl.patch
index b21a2c29e57c..99f248401a1c 100644
--- a/srcpkgs/gcc/files/libssp-musl.patch
+++ b/srcpkgs/gcc/files/libssp-musl.patch
@@ -2,9 +2,9 @@ First part taken from Alpine.
Second part added to prevent gccgo from thinking it can -fsplit-stack on musl.
---- a/gcc/gcc.c
-+++ b/gcc/gcc.c
-@@ -874,10 +874,15 @@ proper position among the other output files. */
+--- a/gcc/gcc.cc
++++ b/gcc/gcc.cc
+@@ -984,10 +984,15 @@ proper position among the other output f
#define LINK_GCC_C_SEQUENCE_SPEC "%G %{!nolibc:%L %G}"
#endif
@@ -22,10 +22,10 @@ Second part added to prevent gccgo from thinking it can -fsplit-stack on musl.
#else
#define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \
"|fstack-protector-strong|fstack-protector-explicit" \
-@@ -1155,7 +1160,7 @@ static const char *cc1_options =
+@@ -1280,7 +1285,7 @@ static const char *cc1_options =
%{-version:--version}\
%{-help=*:--help=%*}\
- %{!fsyntax-only:%{S:%W{o*}%{!o*:-o %b.s}}}\
+ %{!fsyntax-only:%{S:%W{o*}%{!o*:-o %w%b.s}}}\
- %{fsyntax-only:-o %j} %{-param*}\
+ %{fsyntax-only:-o %j} %{-param*} " NO_SSP_SPEC "\
%{coverage:-fprofile-arcs -ftest-coverage}\
diff --git a/srcpkgs/gcc/patches/force-override-clocale.patch b/srcpkgs/gcc/patches/force-override-clocale.patch
new file mode 100644
index 000000000000..8af8a7150dd9
--- /dev/null
+++ b/srcpkgs/gcc/patches/force-override-clocale.patch
@@ -0,0 +1,21 @@
+This is necessary when building a gnu cross compiler for a musl target.
+Otherwise, even if clocale manually is set to gnu, it will be reset to generic
+when the test is performed using AC_EGREP_CPP().
+--- a/libstdc++-v3/configure
++++ b/libstdc++-v3/configure
+@@ -16493,6 +16493,7 @@ fi
+
+ # Sanity check model, and test for special functionality.
+ if test $enable_clocale_flag = gnu; then
++ if test $enable_clocale = auto; then
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h. */
+
+@@ -16509,6 +16510,7 @@ else
+ enable_clocale_flag=generic
+ fi
+ rm -f conftest*
++ fi
+
+
+ # Set it to scream when it hurts.
diff --git a/srcpkgs/gcc/patches/libffi_gnulinux.patch b/srcpkgs/gcc/patches/libffi_gnulinux.patch
deleted file mode 100644
index 98245bd5be1a..000000000000
--- a/srcpkgs/gcc/patches/libffi_gnulinux.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/libffi/src/closures.c
-+++ b/libffi/src/closures.c
-@@ -34,7 +34,7 @@
- #include <ffi_common.h>
-
- #if !FFI_MMAP_EXEC_WRIT && !FFI_EXEC_TRAMPOLINE_TABLE
--# if __gnu_linux__ && !defined(__ANDROID__)
-+# if __linux__ && !defined(__ANDROID__)
- /* This macro indicates it may be forbidden to map anonymous memory
- with both write and execute permission. Code compiled when this
- option is defined will attempt to map such pages once, but if it
diff --git a/srcpkgs/gcc/patches/libgcc-ibm128-no-tag.patch b/srcpkgs/gcc/patches/libgcc-ibm128-no-tag.patch
index bdf5c75d917d..26d80356ad0d 100644
--- a/srcpkgs/gcc/patches/libgcc-ibm128-no-tag.patch
+++ b/srcpkgs/gcc/patches/libgcc-ibm128-no-tag.patch
@@ -29,10 +29,14 @@ diff --git a/libgcc/config/rs6000/t-linux b/libgcc/config/rs6000/t-linux
index 4f6d4c4..fa93bb6 100644
--- a/libgcc/config/rs6000/t-linux
+++ b/libgcc/config/rs6000/t-linux
-@@ -1,3 +1,3 @@
+@@ -1,6 +1,6 @@
SHLIB_MAPFILES += $(srcdir)/config/rs6000/libgcc-glibc.ver
--HOST_LIBGCC2_CFLAGS += -mlong-double-128 -mno-minimal-toc
-+HOST_LIBGCC2_CFLAGS += -mlong-double-128 -mno-gnu-attribute -mno-minimal-toc
+-HOST_LIBGCC2_CFLAGS += -mlong-double-128
++HOST_LIBGCC2_CFLAGS += -mlong-double-128 -mno-gnu-attribute
+
+ # This is a way of selecting -mcmodel=small for ppc64, which gives
+ # smaller and faster libgcc code. Directly specifying -mcmodel=small
+
--
2.24.0
diff --git a/srcpkgs/gcc/patches/mips-sgidefs_h.patch b/srcpkgs/gcc/patches/mips-sgidefs_h.patch
index dddfe10e8c06..cd0ae7a380df 100644
--- a/srcpkgs/gcc/patches/mips-sgidefs_h.patch
+++ b/srcpkgs/gcc/patches/mips-sgidefs_h.patch
@@ -3,7 +3,7 @@
@@ -42,7 +42,7 @@
#define _MIPS_SIM_NABI32 2
#define _MIPS_SIM_ABI64 3
- #elif !defined(__OpenBSD__)
+ #elif !defined(__OpenBSD__) && !defined(__FreeBSD__)
-# include <sgidefs.h>
+# include <asm/sgidefs.h>
#endif
diff --git a/srcpkgs/gcc/template b/srcpkgs/gcc/template
index ab3643de4f98..a20af7c0ef2e 100644
--- a/srcpkgs/gcc/template
+++ b/srcpkgs/gcc/template
@@ -3,18 +3,14 @@
# which use the version number.
pkgname=gcc
-# we are using a 10-stable git snapshot alpine is using in order
-# to get regression fixes not yet incorporate into a stable release
-# it should be possible to switch back to stable with 10.3 or 11
-version=10.2.1pre1
-revision=3
-_patchver="${version%pre*}"
-_minorver="${_patchver%.*}"
+version=12.2.0
+revision=1
+_minorver="${version%.*}"
_majorver="${_minorver%.*}"
-_gmp_version=6.2.0
+_gmp_version=6.2.1
_mpfr_version=4.1.0
-_mpc_version=1.1.0
-_isl_version=0.21
+_mpc_version=1.2.1
+_isl_version=0.24
create_wrksrc=yes
short_desc="GNU Compiler Collection"
maintainer="Enno Boland <gottox@voidlinux.org>"
@@ -22,16 +18,16 @@ homepage="http://gcc.gnu.org"
license="GFDL-1.2-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
# *-musl builders have issues fetching https://ftp.gnu.org/gnu/mpc/mpc-1.1.0.tar.gz
distfiles="
- https://dev.alpinelinux.org/~nenolod/gcc-${version/pre/_pre}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${version}/gcc-${version}.tar.xz
https://gmplib.org/download/gmp/gmp-${_gmp_version}.tar.xz
${GNU_SITE}/mpfr/mpfr-${_mpfr_version}.tar.xz
${GNU_SITE}/mpc/mpc-${_mpc_version}.tar.gz
${SOURCEFORGE_SITE}/libisl/isl-${_isl_version}.tar.bz2"
-checksum="772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 258e6cd51b3fbdfc185c716d55f82c08aff57df0c6fbd143cf6ed561267a1526
+checksum="e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
+ fd4829912cddd12f84181c3451cc752be224643e87fac497b69edddadc49b4f2
0c98a3f1732ff6ca4ea690552079da9c597872d30e96ec28414ee23c95558a7f
- 6985c538143c1208dcb1ac42cedad6ff52e267b47e5f970183a3e75125b43c2e
- d18ca11f8ad1a39ab6d03d3dcb3365ab416720fcb65b42d69f34f51bf0a0e859"
+ 17503d2c395dfcf106b622dc142683c1199431d095367c6aacba6eec30340459
+ fcf78dd9656c10eb8cf9fbd5f59a0b6b01386205fe1934b3b287a0a1898145c0"
nopie=yes
lib32disabled=yes
@@ -52,8 +48,11 @@ if [ "$CHROOT_READY" ]; then
hostmakedepends="tar texinfo perl flex"
else
_have_gccgo=no
+ # libzstd fails to link in bootstrap with glibc 2.36
+ # when zlib has been compiled with glibc 2.32.
+ LDFLAGS="-lzstd -pthread"
fi
-makedepends="zlib-devel"
+makedepends="zlib-devel libzstd-devel"
depends="binutils libgcc-devel-${version}_${revision}
libstdc++-devel-${version}_${revision} libssp-devel-${version}_${revision}"
checkdepends="dejagnu"
@@ -70,13 +69,13 @@ if [ "$build_option_gnatboot" ]; then
case "$XBPS_TARGET_MACHINE" in
x86_64)
_gnat_tarball="gnat-gpl-2017-x86_64-linux-bin.tar.gz"
- distfiles+=" http://mirrors.cdn.adacore.com/art/591c6d80c7a447af2deed1d7>$_gnat_tarball"
+ distfiles+=" https://community.download.adacore.com/v1/9682e2e1f2f232ce03fe21d77b14c37a0de5649b?filename=$_gnat_tarball>$_gnat_tarball"
checksum+=" b942bcac20dea39748b39f8b624d9619f60a8dee2e8195dbe3829c835b0956e6"
build_options_default="gnatboot"
;;
i686)
_gnat_tarball="gnat-gpl-2014-x86-linux-bin.tar.gz"
- distfiles+=" http://mirrors.cdn.adacore.com/art/564b3e9dc8e196b040fbe248>$_gnat_tarball"
+ distfiles+=" https://community.download.adacore.com/v1/c5e9e6fdff5cb77ed90cf8c62536653e27c0bed6?filename=$_gnat_tarball>$_gnat_tarball"
checksum+=" 3b693510f5d22a240abb3034934c1adbd80ccd6e4f61a4f491cc408fdfd9c042"
build_options_default="gnatboot"
;;
@@ -155,8 +154,8 @@ if [ "$CROSS_BUILD" ]; then
fi
post_extract() {
- mv gcc-${version/pre/_pre}/* gcc-${version/pre/_pre}/.??* .
- rmdir gcc-${version/pre/_pre}
+ mv gcc-${version}/* gcc-${version}/.??* .
+ rmdir gcc-${version}
mv gmp-${_gmp_version} gmp
mv mpfr-${_mpfr_version} mpfr
mv mpc-${_mpc_version} mpc
@@ -186,9 +185,9 @@ pre_configure() {
sed -i 's@\./fixinc\.sh@-c true@' gcc/Makefile.in
if [ "$XBPS_TARGET_LIBC" = musl ]; then
- patch -p1 -i ${FILESDIR}/libgnarl-musl.patch
- patch -p1 -i ${FILESDIR}/libssp-musl.patch
- patch -p1 -i ${FILESDIR}/gccgo-musl.patch
+ for p in ${FILESDIR}/*-musl.patch; do
+ patch -p1 -i $p
+ done
fi
}
do_configure() {
@@ -343,16 +342,16 @@ do_install() {
# Make version a symlink of major version to make all versions
# from the same series work automagically.
- mv ${DESTDIR}/usr/lib/gcc/${_triplet}/${_patchver} \
+ mv ${DESTDIR}/usr/lib/gcc/${_triplet}/${version} \
${DESTDIR}/usr/lib/gcc/${_triplet}/${_minorver}
ln -sfr ${DESTDIR}/usr/lib/gcc/${_triplet}/${_minorver} \
- ${DESTDIR}/usr/lib/gcc/${_triplet}/${_patchver}
+ ${DESTDIR}/usr/lib/gcc/${_triplet}/${version}
# Ditto for c++ headers.
- mv ${DESTDIR}/usr/include/c++/${_patchver} \
+ mv ${DESTDIR}/usr/include/c++/${version} \
${DESTDIR}/usr/include/c++/${_minorver}
ln -sfr ${DESTDIR}/usr/include/c++/${_minorver} \
- ${DESTDIR}/usr/include/c++/${_patchver}
+ ${DESTDIR}/usr/include/c++/${version}
# cc symlink
ln -sfr ${DESTDIR}/usr/bin/gcc ${DESTDIR}/usr/bin/cc
@@ -361,7 +360,7 @@ do_install() {
# lto plugin symlink
vmkdir usr/lib/bfd-plugins
- ln -sfr ${DESTDIR}/usr/lib/gcc/${_triplet}/${_patchver}/liblto_plugin.so \
+ ln -sfr ${DESTDIR}/usr/lib/gcc/${_triplet}/${version}/liblto_plugin.so \
${DESTDIR}/usr/lib/bfd-plugins
# Remove "fixed" header
@@ -372,13 +371,9 @@ do_install() {
rm -f ${DESTDIR}/usr/lib/libffi*
rm -f ${DESTDIR}/usr/share/man/man3/ffi*
- # Remove all python scripts in libdir.
- rm -f ${DESTDIR}/usr/lib/*.py
-
- # Remove more python stuff.
- if [ -d ${DESTDIR}/usr/share/gcc-${_patchver}/python ]; then
- rm -rf ${DESTDIR}/usr/share/gcc-${_patchver}/python
- fi
+ # Move libstdc++ gdb helpers to location where gdb can autoload them
+ mkdir -p ${DESTDIR}/usr/share/gdb/auto-load/usr/lib
+ mv ${DESTDIR}/usr/lib/*.py ${DESTDIR}/usr/share/gdb/auto-load/usr/lib
# Install c89 and c99 wrappers and its manpages, from NetBSD.
for f in c89 c99; do
@@ -397,7 +392,7 @@ gcc-ada_package() {
depends="gcc>=${_minorver} libada-devel>=${_minorver}"
short_desc+=" - Ada compiler frontend"
pkg_install() {
- for f in gnat{,bind,chop,clean,find,kr,link,ls,make,name,prep,xref}; do
+ for f in gnat{,bind,chop,clean,kr,link,ls,make,name,prep}; do
vmove usr/bin/${f}
done
}
@@ -450,7 +445,7 @@ gcc-fortran_package() {
if [ "$CROSS_BUILD" ]; then
# A number of OMP modules are not built when cross
# compiling gcc. Copy them from the cross compiler.
- local src="/usr/lib/gcc/${_triplet}/${_patchver}/finclude"
+ local src="/usr/lib/gcc/${_triplet}/${version}/finclude"
local dst="usr/lib/gcc/${_triplet}/${_minorver}/finclude"
for f in omp_lib.f90 omp_lib.h omp_lib.mod omp_lib_kinds.mod \
openacc.f90 openacc.mod openacc_kinds.mod openacc_lib.h; do
@@ -517,7 +512,7 @@ libgfortran_package() {
short_desc+=" - Fortran library"
pkg_install() {
vmove "usr/lib/libgfortran.so*"
- vlicense ${wrksrc}/COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
+ vlicense COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
}
}
@@ -538,7 +533,7 @@ libgo_package() {
nostrip=yes
pkg_install() {
vmove "usr/lib/libgo.so*"
- vlicense ${wrksrc}/COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
+ vlicense COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
}
}
@@ -554,7 +549,7 @@ libobjc_package() {
short_desc+=" - Objective-C library"
pkg_install() {
vmove "usr/lib/libobjc.so*"
- vlicense ${wrksrc}/COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
+ vlicense COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
}
}
@@ -573,7 +568,7 @@ libquadmath_package() {
short_desc+=" - quadmath library"
pkg_install() {
vmove "usr/lib/libquadmath.so*"
- vlicense ${wrksrc}/COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
+ vlicense COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
}
}
@@ -615,7 +610,7 @@ libgcc_package() {
noverifyrdeps=yes
pkg_install() {
vmove "usr/lib/libgcc_s.so*"
- vlicense ${wrksrc}/COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
+ vlicense COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
}
}
@@ -646,7 +641,7 @@ libgomp_package() {
short_desc+=" - OpenMP v4.0 library"
pkg_install() {
vmove "usr/lib/libgomp*.so.*"
- vlicense ${wrksrc}/COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
+ vlicense COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
}
}
@@ -701,7 +696,7 @@ libssp_package() {
short_desc+=" - SSP (StackSmashingProtection) library"
pkg_install() {
vmove "usr/lib/libssp.so*"
- vlicense ${wrksrc}/COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
+ vlicense COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
}
}
@@ -718,7 +713,9 @@ libstdc++-devel_package() {
libstdc++_package() {
short_desc+=" - Standard C++ Library"
pkg_install() {
+ vmove usr/share/gdb
+ vmove usr/share/gcc-${version}/python
vmove "usr/lib/libstdc++.so*"
- vlicense ${wrksrc}/COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
+ vlicense COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
}
}
From 906dec0220945f28007248e2412f4b7b97eda875 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sat, 5 Nov 2022 11:33:11 -0700
Subject: [PATCH 04/38] libtool: rebuild for gcc 12
---
srcpkgs/libtool/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/libtool/template b/srcpkgs/libtool/template
index fc5c53a9c3e9..aebad9294eef 100644
--- a/srcpkgs/libtool/template
+++ b/srcpkgs/libtool/template
@@ -1,7 +1,7 @@
# Template file for 'libtool'
pkgname=libtool
version=2.4.7
-revision=1
+revision=2
build_style=gnu-configure
hostmakedepends="texinfo perl automake help2man xz"
depends="tar sed"
From 892953565784a92ca842ced10998afe26edaa4e4 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sat, 5 Nov 2022 11:33:12 -0700
Subject: [PATCH 05/38] libiberty-devel: update to 20220713.
---
srcpkgs/libiberty-devel/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/libiberty-devel/template b/srcpkgs/libiberty-devel/template
index 7e01bbb851fd..d9618e3806ba 100644
--- a/srcpkgs/libiberty-devel/template
+++ b/srcpkgs/libiberty-devel/template
@@ -1,6 +1,6 @@
# Template file for 'libiberty-devel'
pkgname=libiberty-devel
-version=20210106
+version=20220713
revision=1
build_wrksrc=libiberty
build_style=gnu-configure
@@ -10,7 +10,7 @@ maintainer="Orphaned <orphan@voidlinux.org>"
license="GPL-3.0-or-later"
homepage="http://gcc.gnu.org/"
distfiles="http://deb.debian.org/debian/pool/main/libi/libiberty/libiberty_${version}.orig.tar.xz"
-checksum=9df153d69914c0f5a9145e0abbb248e72feebab6777c712a30f1c3b8c19047d4
+checksum=b59050f48c8a0f9c9e6fba5d17c7a4f11d1329de0c0dca7331b767a6d2bbe8d9
conflicts="binutils-devel<=2.35.1_3"
CFLAGS="-fPIC"
From 590dbfefeaaad3d19e0537d55859734f4605f0b2 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sat, 5 Nov 2022 11:33:12 -0700
Subject: [PATCH 06/38] glibc: update to 2.36.
---
common/shlibs | 60 ++--
...e-hash-style-both-for-building-glibc.patch | 51 ++++
.../glibc/patches/glibc-c-utf8-locale.patch | 286 ------------------
srcpkgs/glibc/template | 66 ++--
4 files changed, 109 insertions(+), 354 deletions(-)
create mode 100644 srcpkgs/glibc/patches/0001-Revert-Do-not-use-hash-style-both-for-building-glibc.patch
delete mode 100644 srcpkgs/glibc/patches/glibc-c-utf8-locale.patch
diff --git a/common/shlibs b/common/shlibs
index 4bb4c7ab1e3b..5a0ad39c8da8 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -17,38 +17,38 @@
# one (order top->bottom) is preferred over the next ones.
#
libc.so musl-1.1.24_7
-libc.so.6 glibc-2.32_1
-libm.so.6 glibc-2.32_1
-libpthread.so.0 glibc-2.32_1
-librt.so.1 glibc-2.32_1
-libdl.so.2 glibc-2.32_1
-ld-linux-x86-64.so.2 glibc-2.32_1 x86_64
-ld-linux.so.2 glibc-2.32_1 i686
-ld-linux.so.3 glibc-2.32_1 armv5tel
-ld-linux-aarch64.so.1 glibc-2.32_1 aarch64
-ld64.so.2 glibc-2.32_1 ppc64
-ld.so.1 glibc-2.32_1 mips
-ld.so.1 glibc-2.32_1 ppc
-ld-linux-armhf.so.3 glibc-2.32_1
-libresolv.so.2 glibc-2.32_1
-libanl.so.1 glibc-2.32_1
-libthread_db.so.1 glibc-2.32_1
-libutil.so.1 glibc-2.32_1
-libnsl.so.1 glibc-2.32_1
-libnss_db.so.2 glibc-2.32_1
-libnss_files.so.2 glibc-2.32_1
-libnss_compat.so.2 glibc-2.32_1
-libnss_dns.so.2 glibc-2.32_1
-libnss_hesiod.so.2 glibc-2.32_1
-libcrypt.so.1 glibc-2.32_1
-libBrokenLocale.so.1 glibc-2.32_1
+libc.so.6 glibc-2.36_1
+libm.so.6 glibc-2.36_1
+libpthread.so.0 glibc-2.36_1
+librt.so.1 glibc-2.36_1
+libdl.so.2 glibc-2.36_1
+ld-linux-x86-64.so.2 glibc-2.36_1 x86_64
+ld-linux.so.2 glibc-2.36_1 i686
+ld-linux.so.3 glibc-2.36_1 armv5tel
+ld-linux-aarch64.so.1 glibc-2.36_1 aarch64
+ld64.so.2 glibc-2.36_1 ppc64
+ld.so.1 glibc-2.36_1 mips
+ld.so.1 glibc-2.36_1 ppc
+ld-linux-armhf.so.3 glibc-2.36_1
+libresolv.so.2 glibc-2.36_1
+libanl.so.1 glibc-2.36_1
+libthread_db.so.1 glibc-2.36_1
+libutil.so.1 glibc-2.36_1
+libnsl.so.1 glibc-2.36_1
+libnss_db.so.2 glibc-2.36_1
+libnss_files.so.2 glibc-2.36_1
+libnss_compat.so.2 glibc-2.36_1
+libnss_dns.so.2 glibc-2.36_1
+libnss_hesiod.so.2 glibc-2.36_1
+libcrypt.so.1 glibc-2.36_1
+libBrokenLocale.so.1 glibc-2.36_1
libSimGearCore.so.2020.3.13 simgear-2020.3.13_1
libSimGearScene.so.2020.3.13 simgear-2020.3.13_1
-libmemusage.so glibc-2.32_1
-libSegFault.so glibc-2.32_1
-libpcprofile.so glibc-2.32_1
-libcidn.so.1 glibc-2.32_1
-libmvec.so.1 glibc-2.32_1
+libmemusage.so glibc-2.36_1
+libSegFault.so glibc-2.36_1
+libpcprofile.so glibc-2.36_1
+libcidn.so.1 glibc-2.36_1
+libmvec.so.1 glibc-2.36_1
libcddgmp.so.0 cddlib-0.94m_1
libcdd.so.0 cddlib-0.94m_1
libz.so.1 zlib-1.2.3_1
diff --git a/srcpkgs/glibc/patches/0001-Revert-Do-not-use-hash-style-both-for-building-glibc.patch b/srcpkgs/glibc/patches/0001-Revert-Do-not-use-hash-style-both-for-building-glibc.patch
new file mode 100644
index 000000000000..9c5553e92609
--- /dev/null
+++ b/srcpkgs/glibc/patches/0001-Revert-Do-not-use-hash-style-both-for-building-glibc.patch
@@ -0,0 +1,51 @@
+Temporary workaround for EAC bug.
+
+See: https://sourceware.org/bugzilla/show_bug.cgi?id=29456
+
+From 8e90e2cc5e57d7ca3a40602d278e9642a8b66716 Mon Sep 17 00:00:00 2001
+From: oreo639 <oreo6391@gmail.com>
+Date: Tue, 13 Sep 2022 14:30:35 -0700
+Subject: [PATCH] Revert "Do not use --hash-style=both for building glibc
+ shared objects"
+
+This reverts commit e47de5cb2d4dbecb58f569ed241e8e95c568f03c.
+---
+ Makeconfig | 9 +++++++++
+ Makerules | 7 +++++++
+ 5 files changed, 61 insertions(+)
+
+diff --git a/Makeconfig b/Makeconfig
+index ba70321af1..e2131d4389 100644
+--- a/Makeconfig
++++ b/Makeconfig
+@@ -371,6 +371,13 @@ dt-relr-ldflag =
+ no-dt-relr-ldflag =
+ endif
+
++# For the time being we unconditionally use 'both'. At some time we
++# should declare statically linked code as 'out of luck' and compile
++# with --hash-style=gnu only.
++hashstyle-LDFLAGS = -Wl,--hash-style=both
++LDFLAGS.so += $(hashstyle-LDFLAGS)
++LDFLAGS-rtld += $(hashstyle-LDFLAGS)
++
+ ifeq (no,$(build-pie-default))
+ pie-default = $(no-pie-ccflag)
+ else # build-pie-default
+diff --git a/Makerules b/Makerules
+index d1e139d03c..44134e37ce 100644
+--- a/Makerules
++++ b/Makerules
+@@ -558,6 +558,9 @@ $(common-objpfx)shlib.lds: $(common-objpfx)config.make $(..)Makerules
+ -Wl,--verbose 2>/dev/null | \
+ sed > $@T \
+ -e '/^=========/,/^=========/!d;/^=========/d' \
++ -e 's/^.*\.gnu\.hash[ ]*:.*$$/ .note.ABI-tag : { *(.note.ABI-tag) } &/' \
++ -e '/^[ ]*\.hash[ ]*:.*$$/{h;d;}' \
++ -e '/DATA_SEGMENT_ALIGN/{H;g}' \
+ -e 's/^.*\*(\.dynbss).*$$/& \
+ PROVIDE(__start___libc_freeres_ptrs = .); \
+ *(__libc_freeres_ptrs) \
+--
+2.37.3
+
diff --git a/srcpkgs/glibc/patches/glibc-c-utf8-locale.patch b/srcpkgs/glibc/patches/glibc-c-utf8-locale.patch
deleted file mode 100644
index 7215e1558b62..000000000000
--- a/srcpkgs/glibc/patches/glibc-c-utf8-locale.patch
+++ /dev/null
@@ -1,286 +0,0 @@
-Short description: Add C.UTF-8 support.
-Author(s): Fedora glibc team <glibc@lists.fedoraproject.org>
-Origin: PATCH
-Upstream status: not-submitted
-
-This patch needs to upstream as part of Carlos O'Donell
-<carlos@redhat.com>'s work on enabling upstream C.UTF-8 support. This
-work is currently blocked on cleaning up the test results to prove that
-full code-point sorting is working as intended.
-
-Note that this patch does not provide full code-point sorting as
-expected.
-
-This patch needs to upstream as soon as possible since it would be nice
-to have this in F29 and fixed.
-
-From 2eda7b462b415105f5a05c1323372d4e39d46439 Mon Sep 17 00:00:00 2001
-From: Mike FABIAN <mfabian@redhat.com>
-Date: Mon, 10 Aug 2015 15:58:12 +0200
-Subject: [PATCH] Add a C.UTF-8 locale
-
----
- localedata/SUPPORTED | 1 +
- localedata/locales/C | 238 +++++++++++++++++++++++++++++++++++++++++++++++++++
- 2 files changed, 239 insertions(+)
- create mode 100644 localedata/locales/C
-
-diff --git a/localedata/SUPPORTED b/localedata/SUPPORTED
-index 8ca023e..2a78391 100644
---- a/localedata/SUPPORTED
-+++ b/localedata/SUPPORTED
-@@ -1,6 +1,7 @@
- # This file names the currently supported and somewhat tested locales.
- # If you have any additions please file a glibc bug report.
- SUPPORTED-LOCALES=\
-+C.UTF-8/UTF-8 \
- aa_DJ.UTF-8/UTF-8 \
- aa_DJ/ISO-8859-1 \
- aa_ER/UTF-8 \
-diff --git a/localedata/locales/C b/localedata/locales/C
-new file mode 100644
-index 0000000..fdf460e
---- /dev/null
-+++ b/localedata/locales/C
-@@ -0,0 +1,238 @@
-+escape_char /
-+comment_char %
-+% Locale for C locale in UTF-8
-+
-+LC_IDENTIFICATION
-+title "C locale"
-+source ""
-+address ""
-+contact ""
-+email "mfabian@redhat.com"
-+tel ""
-+fax ""
-+language "C"
-+territory ""
-+revision "1.0"
-+date "2015-08-10"
-+%
-+category "i18n:2012";LC_IDENTIFICATION
-+category "i18n:2012";LC_CTYPE
-+category "i18n:2012";LC_COLLATE
-+category "i18n:2012";LC_TIME
-+category "i18n:2012";LC_NUMERIC
-+category "i18n:2012";LC_MONETARY
-+category "i18n:2012";LC_MESSAGES
-+category "i18n:2012";LC_PAPER
-+category "i18n:2012";LC_NAME
-+category "i18n:2012";LC_ADDRESS
-+category "i18n:2012";LC_TELEPHONE
-+category "i18n:2012";LC_MEASUREMENT
-+END LC_IDENTIFICATION
-+
-+LC_CTYPE
-+copy "i18n"
-+
-+translit_start
-+include "translit_combining";""
-+translit_end
-+
-+END LC_CTYPE
-+
-+LC_COLLATE
-+order_start forward
-+<U0000>
-+..
-+<UFFFF>
-+<U10000>
-+..
-+<U1FFFF>
-+<U20000>
-+..
-+<U2FFFF>
-+<UE0000>
-+..
-+<UEFFFF>
-+<UF0000>
-+..
-+<UFFFFF>
-+<U100000>
-+..
-+<U10FFFF>
-+UNDEFINED
-+order_end
-+END LC_COLLATE
-+
-+LC_MONETARY
-+% This is the 14652 i18n fdcc-set definition for
-+% the LC_MONETARY category
-+% (except for the int_curr_symbol and currency_symbol, they are empty in
-+% the 14652 i18n fdcc-set definition and also empty in
-+% glibc/locale/C-monetary.c. But localedef complains in that case).
-+%
-+% Using "USD" for int_curr_symbol. But maybe "XXX" would be better?
-+% XXX is "No currency" (https://en.wikipedia.org/wiki/ISO_4217)
-+int_curr_symbol "<U0055><U0053><U0044><U0020>"
-+% Using "$" for currency_symbol. But maybe <U00A4> would be better?
-+% U+00A4 is the "generic currency symbol"
-+% (https://en.wikipedia.org/wiki/Currency_sign_%28typography%29)
-+currency_symbol "<U0024>"
-+mon_decimal_point "<U002E>"
-+mon_thousands_sep ""
-+mon_grouping -1
-+positive_sign ""
-+negative_sign "<U002D>"
-+int_frac_digits -1
-+frac_digits -1
-+p_cs_precedes -1
-+int_p_sep_by_space -1
-+p_sep_by_space -1
-+n_cs_precedes -1
-+int_n_sep_by_space -1
-+n_sep_by_space -1
-+p_sign_posn -1
-+n_sign_posn -1
-+%
-+END LC_MONETARY
-+
-+LC_NUMERIC
-+% This is the POSIX Locale definition for
-+% the LC_NUMERIC category.
-+%
-+decimal_point "<U002E>"
-+thousands_sep ""
-+grouping -1
-+END LC_NUMERIC
-+
-+LC_TIME
-+% This is the POSIX Locale definition for
-+% the LC_TIME category.
-+%
-+% Abbreviated weekday names (%a)
-+abday "<U0053><U0075><U006E>";"<U004D><U006F><U006E>";/
-+ "<U0054><U0075><U0065>";"<U0057><U0065><U0064>";/
-+ "<U0054><U0068><U0075>";"<U0046><U0072><U0069>";/
-+ "<U0053><U0061><U0074>"
-+
-+% Full weekday names (%A)
-+day "<U0053><U0075><U006E><U0064><U0061><U0079>";/
-+ "<U004D><U006F><U006E><U0064><U0061><U0079>";/
-+ "<U0054><U0075><U0065><U0073><U0064><U0061><U0079>";/
-+ "<U0057><U0065><U0064><U006E><U0065><U0073><U0064><U0061><U0079>";/
-+ "<U0054><U0068><U0075><U0072><U0073><U0064><U0061><U0079>";/
-+ "<U0046><U0072><U0069><U0064><U0061><U0079>";/
-+ "<U0053><U0061><U0074><U0075><U0072><U0064><U0061><U0079>"
-+
-+% Abbreviated month names (%b)
-+abmon "<U004A><U0061><U006E>";"<U0046><U0065><U0062>";/
-+ "<U004D><U0061><U0072>";"<U0041><U0070><U0072>";/
-+ "<U004D><U0061><U0079>";"<U004A><U0075><U006E>";/
-+ "<U004A><U0075><U006C>";"<U0041><U0075><U0067>";/
-+ "<U0053><U0065><U0070>";"<U004F><U0063><U0074>";/
-+ "<U004E><U006F><U0076>";"<U0044><U0065><U0063>"
-+
-+% Full month names (%B)
-+mon "<U004A><U0061><U006E><U0075><U0061><U0072><U0079>";/
-+ "<U0046><U0065><U0062><U0072><U0075><U0061><U0072><U0079>";/
-+ "<U004D><U0061><U0072><U0063><U0068>";/
-+ "<U0041><U0070><U0072><U0069><U006C>";/
-+ "<U004D><U0061><U0079>";/
-+ "<U004A><U0075><U006E><U0065>";/
-+ "<U004A><U0075><U006C><U0079>";/
-+ "<U0041><U0075><U0067><U0075><U0073><U0074>";/
-+ "<U0053><U0065><U0070><U0074><U0065><U006D><U0062><U0065><U0072>";/
-+ "<U004F><U0063><U0074><U006F><U0062><U0065><U0072>";/
-+ "<U004E><U006F><U0076><U0065><U006D><U0062><U0065><U0072>";/
-+ "<U0044><U0065><U0063><U0065><U006D><U0062><U0065><U0072>"
-+
-+% Week description, consists of three fields:
-+% 1. Number of days in a week.
-+% 2. Gregorian date that is a first weekday (19971130 for Sunday, 19971201 for Monday).
-+% 3. The weekday number to be contained in the first week of the year.
-+%
-+% ISO 8601 conforming applications should use the values 7, 19971201 (a
-+% Monday), and 4 (Thursday), respectively.
-+week 7;19971201;4
-+first_weekday 1
-+first_workday 1
-+
-+% Appropriate date and time representation (%c)
-+% "%a %b %e %H:%M:%S %Y"
-+d_t_fmt "<U0025><U0061><U0020><U0025><U0062><U0020><U0025><U0065><U0020><U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053><U0020><U0025><U0059>"
-+
-+% Appropriate date representation (%x)
-+% "%m/%d/%y"
-+d_fmt "<U0025><U006D><U002F><U0025><U0064><U002F><U0025><U0079>"
-+
-+% Appropriate time representation (%X)
-+% "%H:%M:%S"
-+t_fmt "<U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053>"
-+
-+% Appropriate AM/PM time representation (%r)
-+% "%I:%M:%S %p"
-+t_fmt_ampm "<U0025><U0049><U003A><U0025><U004D><U003A><U0025><U0053><U0020><U0025><U0070>"
-+
-+% Equivalent of AM/PM (%p) "AM"/"PM"
-+%
-+am_pm "<U0041><U004D>";"<U0050><U004D>"
-+
-+% Appropriate date representation (date(1)) "%a %b %e %H:%M:%S %Z %Y"
-+date_fmt "<U0025><U0061><U0020><U0025><U0062><U0020><U0025><U0065><U0020><U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053><U0020><U0025><U005A><U0020><U0025><U0059>"
-+END LC_TIME
-+
-+LC_MESSAGES
-+% This is the POSIX Locale definition for
-+% the LC_NUMERIC category.
-+%
-+yesexpr "<U005E><U005B><U0079><U0059><U005D>"
-+noexpr "<U005E><U005B><U006E><U004E><U005D>"
-+yesstr "<U0059><U0065><U0073>"
-+nostr "<U004E><U006F>"
-+END LC_MESSAGES
-+
-+LC_PAPER
-+% This is the ISO/IEC 14652 "i18n" definition for
-+% the LC_PAPER category.
-+% (A4 paper, this is also used in the built in C/POSIX
-+% locale in glibc/locale/C-paper.c)
-+height 297
-+width 210
-+END LC_PAPER
-+
-+LC_NAME
-+% This is the ISO/IEC 14652 "i18n" definition for
-+% the LC_NAME category.
-+% "%p%t%g%t%m%t%f"
-+% (also used in the built in C/POSIX locale in glibc/locale/C-name.c)
-+name_fmt "<U0025><U0070><U0025><U0074><U0025><U0067><U0025><U0074>/
-+<U0025><U006D><U0025><U0074><U0025><U0066>"
-+END LC_NAME
-+
-+LC_ADDRESS
-+% This is the ISO/IEC 14652 "i18n" definition for
-+% the LC_ADDRESS category.
-+% "%a%N%f%N%d%N%b%N%s %h %e %r%N%C-%z %T%N%c%N"
-+% (also used in the built in C/POSIX locale in glibc/locale/C-address.c)
-+postal_fmt "<U0025><U0061><U0025><U004E><U0025><U0066><U0025><U004E>/
-+<U0025><U0064><U0025><U004E><U0025><U0062><U0025><U004E><U0025><U0073>/
-+<U0020><U0025><U0068><U0020><U0025><U0065><U0020><U0025><U0072><U0025>/
-+<U004E><U0025><U0043><U002D><U0025><U007A><U0020><U0025><U0054><U0025>/
-+<U004E><U0025><U0063><U0025><U004E>"
-+END LC_ADDRESS
-+
-+LC_TELEPHONE
-+% This is the ISO/IEC 14652 "i18n" definition for
-+% the LC_TELEPHONE category.
-+% "+%c %a %l"
-+tel_int_fmt "<U002B><U0025><U0063><U0020><U0025><U0061><U0020><U0025>/
-+<U006C>"
-+% (also used in the built in C/POSIX locale in glibc/locale/C-telephone.c)
-+END LC_TELEPHONE
-+
-+LC_MEASUREMENT
-+% This is the ISO/IEC 14652 "i18n" definition for
-+% the LC_MEASUREMENT category.
-+% (same as in the built in C/POSIX locale in glibc/locale/C-measurement.c)
-+%metric
-+measurement 1
-+END LC_MEASUREMENT
-+
---
-2.4.3
-
diff --git a/srcpkgs/glibc/template b/srcpkgs/glibc/template
index c62a4d2aedf1..6cd4c0980cbb 100644
--- a/srcpkgs/glibc/template
+++ b/srcpkgs/glibc/template
@@ -1,14 +1,16 @@
# Template file for 'glibc'
pkgname=glibc
-version=2.32
-revision=2
+version=2.36
+revision=1
+_patchver="72-g0f90d6204d"
+wrksrc="glibc-${version}-${_patchver}"
bootstrap=yes
short_desc="GNU C library"
maintainer="Enno Boland <gottox@voidlinux.org>"
license="GPL-2.0-or-later, LGPL-2.1-or-later, BSD-3-Clause"
homepage="http://www.gnu.org/software/libc"
-distfiles="${GNU_SITE}/glibc/glibc-${version}.tar.xz"
-checksum=1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+distfiles="https://vasilek.cz/paste/glibc-${version}-${_patchver}.tar.xz"
+checksum=656200722d5ba968b4888a2d2950719d72c86290fd0479f61897d25b7db2cb57
# Do not strip these files, objcopy errors out.
nostrip_files="
XBS5_ILP32_OFFBIG
@@ -20,27 +22,28 @@ nostrip_files="
POSIX_V6_LP64_OFF64
POSIX_V7_LP64_OFF64
XBS5_LP64_OFF64
- ld-${version}.so
- libdl-${version}.so
- libanl-${version}.so
- libcidn-${version}.so
- libresolv-${version}.so
- libcrypt-${version}.so
- libpthread-${version}.so
- libm-${version}.so
- libutil-${version}.so
- libthread_db-1.0.so
- librt-${version}.so
- libnsl-${version}.so
- libc-${version}.so
- libBrokenLocale-${version}.so
- libnss_compat-${version}.so
- libnss_db-${version}.so
- libnss_dns-${version}.so
- libnss_files-${version}.so
- libnss_hesiod-${version}.so
- libnss_nisplus-${version}.so
- libnss_nis-${version}.so"
+ ld-linux-x86-64.so.2
+ ld-linux.so.2
+ ld-linux.so.3
+ ld-linux-aarch64.so.1
+ ld64.so.2
+ ld.so.1
+ ld-linux-armhf.so.3
+ libresolv.so.2
+ libcrypt.so.1
+ libm.so.6
+ libthread_db.so.1
+ libnsl.so.1
+ libc.so.6
+ libc_malloc_debug.so.0
+ libmemusage.so
+ libmvec.so.1
+ libBrokenLocale.so.1
+ libnss_compat.so.2
+ libnss_db.so.2
+ libnss_dns.so.2
+ libnss_files.so.2
+ libnss_hesiod.so.2"
conf_files="
/etc/rpc
@@ -54,7 +57,6 @@ lib32files="/usr/lib/gconv/gconv-modules"
lib32symlinks="ld-linux.so.2"
# There's no point in building this for musl.
archs="~*-musl"
-nopie=yes
do_configure() {
mkdir build
@@ -163,18 +165,6 @@ do_install() {
rm -f ${DESTDIR}/usr/bin/z{dump,ic}
mv ${DESTDIR}/usr/sbin/* ${DESTDIR}/usr/bin
-
- # Create xbps.d(5) arch override file for 32-bit architectures
- # 32-bit userlands may be used with 64-bit kernels and then
- # xbps will report an incorrect architecture by default
- case "$XBPS_TARGET_MACHINE" in
- i686|ppc|ppcle|armv*)
- vmkdir usr/share/xbps.d
- echo "architecture=${XBPS_TARGET_MACHINE}" > \
- ${DESTDIR}/usr/share/xbps.d/arch-32bit.conf
- ;;
- *) ;;
- esac
}
glibc-devel_package() {
From b9816445eb6c3dcd183f542225a25a47df85bd66 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sat, 5 Nov 2022 11:33:12 -0700
Subject: [PATCH 07/38] musl: add support for SIGEV_THREAD_ID timers
https://git.musl-libc.org/cgit/musl/commit/?id=7c71792e87691451f2a6b76348e83ad1889f1dcb
---
...d-support-for-SIGEV_THREAD_ID-timers.patch | 74 +++++++++++++++++++
srcpkgs/musl/template | 2 +-
2 files changed, 75 insertions(+), 1 deletion(-)
create mode 100644 srcpkgs/musl/patches/add-support-for-SIGEV_THREAD_ID-timers.patch
diff --git a/srcpkgs/musl/patches/add-support-for-SIGEV_THREAD_ID-timers.patch b/srcpkgs/musl/patches/add-support-for-SIGEV_THREAD_ID-timers.patch
new file mode 100644
index 000000000000..e20dff5ba0d4
--- /dev/null
+++ b/srcpkgs/musl/patches/add-support-for-SIGEV_THREAD_ID-timers.patch
@@ -0,0 +1,74 @@
+From 7c71792e87691451f2a6b76348e83ad1889f1dcb Mon Sep 17 00:00:00 2001
+From: James Y Knight <jyknight@google.com>
+Date: Sun, 30 Jun 2019 21:55:20 -0400
+Subject: [PATCH] add support for SIGEV_THREAD_ID timers
+
+This is like SIGEV_SIGNAL, but targeted to a particular thread's
+tid, rather than the process.
+---
+ include/signal.h | 16 +++++++++++++---
+ src/time/timer_create.c | 8 ++++++--
+ 2 files changed, 19 insertions(+), 5 deletions(-)
+
+diff --git a/include/signal.h b/include/signal.h
+index fbdf667b2..9ed929e4f 100644
+--- a/include/signal.h
++++ b/include/signal.h
+@@ -180,14 +180,24 @@ struct sigevent {
+ union sigval sigev_value;
+ int sigev_signo;
+ int sigev_notify;
+- void (*sigev_notify_function)(union sigval);
+- pthread_attr_t *sigev_notify_attributes;
+- char __pad[56-3*sizeof(long)];
++ union {
++ char __pad[64 - 2*sizeof(int) - sizeof(union sigval)];
++ pid_t sigev_notify_thread_id;
++ struct {
++ void (*sigev_notify_function)(union sigval);
++ pthread_attr_t *sigev_notify_attributes;
++ } __sev_thread;
++ } __sev_fields;
+ };
+
++#define sigev_notify_thread_id __sev_fields.sigev_notify_thread_id
++#define sigev_notify_function __sev_fields.__sev_thread.sigev_notify_function
++#define sigev_notify_attributes __sev_fields.__sev_thread.sigev_notify_attributes
++
+ #define SIGEV_SIGNAL 0
+ #define SIGEV_NONE 1
+ #define SIGEV_THREAD 2
++#define SIGEV_THREAD_ID 4
+
+ int __libc_current_sigrtmin(void);
+ int __libc_current_sigrtmax(void);
+diff --git a/src/time/timer_create.c b/src/time/timer_create.c
+index 5ddfda278..4bef23905 100644
+--- a/src/time/timer_create.c
++++ b/src/time/timer_create.c
+@@ -71,11 +71,15 @@ int timer_create(clockid_t clk, struct sigevent *restrict evp, timer_t *restrict
+ switch (evp ? evp->sigev_notify : SIGEV_SIGNAL) {
+ case SIGEV_NONE:
+ case SIGEV_SIGNAL:
++ case SIGEV_THREAD_ID:
+ if (evp) {
+ ksev.sigev_value = evp->sigev_value;
+ ksev.sigev_signo = evp->sigev_signo;
+ ksev.sigev_notify = evp->sigev_notify;
+- ksev.sigev_tid = 0;
++ if (evp->sigev_notify == SIGEV_THREAD_ID)
++ ksev.sigev_tid = evp->sigev_notify_thread_id;
++ else
++ ksev.sigev_tid = 0;
+ ksevp = &ksev;
+ }
+ if (syscall(SYS_timer_create, clk, ksevp, &timerid) < 0)
+@@ -107,7 +111,7 @@ int timer_create(clockid_t clk, struct sigevent *restrict evp, timer_t *restrict
+
+ ksev.sigev_value.sival_ptr = 0;
+ ksev.sigev_signo = SIGTIMER;
+- ksev.sigev_notify = 4; /* SIGEV_THREAD_ID */
++ ksev.sigev_notify = SIGEV_THREAD_ID;
+ ksev.sigev_tid = td->tid;
+ if (syscall(SYS_timer_create, clk, &ksev, &timerid) < 0)
+ timerid = -1;
diff --git a/srcpkgs/musl/template b/srcpkgs/musl/template
index 34e6ed4fba6e..afb33cd868b5 100644
--- a/srcpkgs/musl/template
+++ b/srcpkgs/musl/template
@@ -2,7 +2,7 @@
pkgname=musl
reverts="1.2.0_1"
version=1.1.24
-revision=11
+revision=12
archs="*-musl"
bootstrap=yes
build_style=gnu-configure
From 920aa4a5a0b569b2d15713cf8e3f9d21f1347fce Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sat, 5 Nov 2022 11:33:12 -0700
Subject: [PATCH 08/38] gcc-multilib: update to 12.2.0.
---
srcpkgs/gcc-multilib/template | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/srcpkgs/gcc-multilib/template b/srcpkgs/gcc-multilib/template
index f28eb237c287..ba9bafcadfd6 100644
--- a/srcpkgs/gcc-multilib/template
+++ b/srcpkgs/gcc-multilib/template
@@ -3,15 +3,15 @@ archs="x86_64"
_triplet="x86_64-unknown-linux-gnu"
pkgname=gcc-multilib
-version=10.2.1pre1
+version=12.2.0
revision=1
_majorver="${version%.*}"
short_desc="GNU Compiler Collection (multilib files)"
maintainer="Orphaned <orphan@voidlinux.org>"
homepage="http://gcc.gnu.org"
license="GFDL-1.2-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
-distfiles="https://dev.alpinelinux.org/~nenolod/gcc-${version/pre/_pre}.tar.xz"
-checksum=772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+distfiles="${GNU_SITE}/gcc/gcc-${version}/gcc-${version}.tar.xz"
+checksum=e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
hostmakedepends="perl flex tar zip unzip"
makedepends="zlib-devel libmpc-devel isl15-devel libfl-devel
@@ -70,7 +70,7 @@ do_build() {
make ${makejobs}
}
do_install() {
- local _pc_triplet=x86_64-pc-linux-gnu _version=${version%pre1}
+ local _pc_triplet=x86_64-pc-linux-gnu
# Install to a tempdir and then only copy relevant files.
cd ${wrksrc}
make DESTDIR=${wrksrc}/${pkgname}-build install
@@ -80,9 +80,9 @@ do_install() {
vmkdir usr/include/c++/${_majorver}/${_triplet}
vmkdir usr/lib/gcc/${_triplet}/${_majorver}
- cp -a ${wrksrc}/${pkgname}-build/usr/lib/gcc/${_pc_triplet}/${_version}/32 \
+ cp -a ${wrksrc}/${pkgname}-build/usr/lib/gcc/${_pc_triplet}/${version}/32 \
${DESTDIR}/usr/lib/gcc/${_triplet}/${_majorver}/
- cp -a ${wrksrc}/${pkgname}-build/usr/include/c++/${_version}/${_pc_triplet}/32 \
+ cp -a ${wrksrc}/${pkgname}-build/usr/include/c++/${version}/${_pc_triplet}/32 \
${DESTDIR}/usr/include/c++/${_majorver}/${_triplet}
vinstall ${wrksrc}/host-${_pc_triplet}/gcc/specs 644 usr/lib/gcc/${_triplet}/${_majorver}
From 464128d261beb122facfc27c9101b80131dec11f Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sat, 5 Nov 2022 11:33:12 -0700
Subject: [PATCH 09/38] libgccjit: update to 12.2.0.
---
srcpkgs/libgccjit/files/libgccjit-musl.patch | 63 --------------------
srcpkgs/libgccjit/template | 24 +++-----
2 files changed, 9 insertions(+), 78 deletions(-)
delete mode 100644 srcpkgs/libgccjit/files/libgccjit-musl.patch
diff --git a/srcpkgs/libgccjit/files/libgccjit-musl.patch b/srcpkgs/libgccjit/files/libgccjit-musl.patch
deleted file mode 100644
index d2ed16928c82..000000000000
--- a/srcpkgs/libgccjit/files/libgccjit-musl.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-diff --git a/gcc/jit/jit-playback.c b/gcc/jit/jit-playback.c
-index 5bccf591a..35f5e35ef 100644
---- a/gcc/jit/jit-playback.c
-+++ b/gcc/jit/jit-playback.c
-@@ -18,6 +18,8 @@ You should have received a copy of the GNU General Public License
- along with GCC; see the file COPYING3. If not see
- <http://www.gnu.org/licenses/>. */
-
-+#include <pthread.h>
-+
- #include "config.h"
- #include "system.h"
- #include "coretypes.h"
-@@ -41,8 +43,6 @@ along with GCC; see the file COPYING3. If not see
- #include "diagnostic.h"
- #include "stmt.h"
-
--#include <pthread.h>
--
- #include "jit-playback.h"
- #include "jit-result.h"
- #include "jit-builtins.h"
-diff --git a/gcc/jit/jit-recording.c b/gcc/jit/jit-recording.c
-index a237d574f..5785e3269 100644
---- a/gcc/jit/jit-recording.c
-+++ b/gcc/jit/jit-recording.c
-@@ -18,6 +18,8 @@ You should have received a copy of the GNU General Public License
- along with GCC; see the file COPYING3. If not see
- <http://www.gnu.org/licenses/>. */
-
-+#include <pthread.h>
-+
- #include "config.h"
- #include "system.h"
- #include "coretypes.h"
-@@ -25,8 +27,6 @@ along with GCC; see the file COPYING3. If not see
- #include "pretty-print.h"
- #include "toplev.h"
-
--#include <pthread.h>
--
- #include "jit-builtins.h"
- #include "jit-recording.h"
- #include "jit-playback.h"
-diff --git a/gcc/jit/libgccjit.c b/gcc/jit/libgccjit.c
-index f9c33c63c..75f21d275 100644
---- a/gcc/jit/libgccjit.c
-+++ b/gcc/jit/libgccjit.c
-@@ -18,13 +18,13 @@ You should have received a copy of the GNU General Public License
- along with GCC; see the file COPYING3. If not see
- <http://www.gnu.org/licenses/>. */
-
-+#include <pthread.h>
- #include "config.h"
- #include "system.h"
- #include "coretypes.h"
- #include "timevar.h"
- #include "typed-splay-tree.h"
- #include "cppbuiltin.h"
--#include <pthread.h>
-
- #include "libgccjit.h"
- #include "jit-recording.h"
diff --git a/srcpkgs/libgccjit/template b/srcpkgs/libgccjit/template
index 0b37c3ee9f8b..fde1affd54b7 100644
--- a/srcpkgs/libgccjit/template
+++ b/srcpkgs/libgccjit/template
@@ -3,18 +3,12 @@
# which use the version number.
pkgname=libgccjit
-# we are using a 10-stable git snapshot alpine is using in order
-# to get regression fixes not yet incorporate into a stable release
-# it should be possible to switch back to stable with 10.3 or 11
-version=10.2.1pre1
+version=12.2.0
revision=1
-_patchver="${version%pre*}"
-_minorver="${_patchver%.*}"
-_majorver="${_minorver%.*}"
-_gmp_version=6.2.0
+_gmp_version=6.2.1
_mpfr_version=4.1.0
-_mpc_version=1.1.0
-_isl_version=0.21
+_mpc_version=1.2.1
+_isl_version=0.24
create_wrksrc=yes
short_desc="Just-In-Time Compilation library for GCC"
maintainer="Lane Biocini <lane@mailbox.org>"
@@ -22,16 +16,16 @@ homepage="https://gcc.gnu.org"
license="GFDL-1.2-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
# *-musl builders have issues fetching https://ftp.gnu.org/gnu/mpc/mpc-1.1.0.tar.gz
distfiles="
- https://dev.alpinelinux.org/~nenolod/gcc-${version/pre/_pre}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${version}/gcc-${version}.tar.xz
https://gmplib.org/download/gmp/gmp-${_gmp_version}.tar.xz
${GNU_SITE}/mpfr/mpfr-${_mpfr_version}.tar.xz
${GNU_SITE}/mpc/mpc-${_mpc_version}.tar.gz
${SOURCEFORGE_SITE}/libisl/isl-${_isl_version}.tar.bz2"
-checksum="772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 258e6cd51b3fbdfc185c716d55f82c08aff57df0c6fbd143cf6ed561267a1526
+checksum="e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
+ fd4829912cddd12f84181c3451cc752be224643e87fac497b69edddadc49b4f2
0c98a3f1732ff6ca4ea690552079da9c597872d30e96ec28414ee23c95558a7f
- 6985c538143c1208dcb1ac42cedad6ff52e267b47e5f970183a3e75125b43c2e
- d18ca11f8ad1a39ab6d03d3dcb3365ab416720fcb65b42d69f34f51bf0a0e859"
+ 17503d2c395dfcf106b622dc142683c1199431d095367c6aacba6eec30340459
+ fcf78dd9656c10eb8cf9fbd5f59a0b6b01386205fe1934b3b287a0a1898145c0"
nopie=yes
lib32disabled=yes
makedepends="zlib-devel"
From d2111a01301bcd175047a4d6f231451dfa86480b Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sat, 5 Nov 2022 11:33:12 -0700
Subject: [PATCH 10/38] build-style/void-cross: Update flags for gcc12 and
glibc 2.36
gcov can't be built without libc:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100289
Remove -no-pie from build. glibc 2.35 and newer uses -static-pie by default:
https://sourceware.org/pipermail/glibc-cvs/2021q4/075916.html
---
common/build-style/void-cross.sh | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
diff --git a/common/build-style/void-cross.sh b/common/build-style/void-cross.sh
index 92f03f8130f5..4804193d8395 100644
--- a/common/build-style/void-cross.sh
+++ b/common/build-style/void-cross.sh
@@ -53,6 +53,7 @@ _void_cross_build_binutils() {
--sbindir=/usr/bin \
--libdir=/usr/lib \
--libexecdir=/usr/lib \
+ --sysconfdir=/etc \
--target=${tgt} \
--with-sysroot=/usr/${tgt} \
--disable-nls \
@@ -60,7 +61,9 @@ _void_cross_build_binutils() {
--disable-multilib \
--disable-werror \
--disable-gold \
+ --disable-gprofng \
--enable-relro \
+ --enable-new-dtags \
--enable-plugins \
--enable-64-bit-bfd \
--enable-deterministic-archives \
@@ -132,6 +135,7 @@ _void_cross_build_bootstrap_gcc() {
--disable-libssp \
--disable-libitm \
--disable-libatomic \
+ --disable-gcov \
--disable-threads \
--disable-sjlj-exceptions \
--enable-languages=c \
@@ -381,6 +385,7 @@ _void_cross_build_gcc() {
extra_args+=" --disable-gnu-unique-object"
extra_args+=" libat_cv_have_ifunc=no"
else
+ extra_args+=" --enable-clocale=gnu"
extra_args+=" --enable-gnu-unique-object"
fi
@@ -460,6 +465,14 @@ do_build() {
local binutils_ver linux_ver gcc_ver libc_ver libucontext_ver
local tgt=${sourcepkg/cross-}
+ export CFLAGS="${CFLAGS/-D_FORTIFY_SOURCE=2/}"
+ export CXXFLAGS="${CXXFLAGS/-D_FORTIFY_SOURCE=2/}"
+
+ # Disable explicit -fno-PIE, gcc/binutils/libc will figure this out itself.
+ export CFLAGS="${CFLAGS//-fno-PIE/}"
+ export CXXFLAGS="${CXXFLAGS//-fno-PIE/}"
+ export LDFLAGS="${LDFLAGS//-no-pie/}"
+
_void_cross_test_ver binutils
_void_cross_test_ver linux
_void_cross_test_ver gcc
@@ -625,6 +638,9 @@ do_install() {
# then remove it because it conflicts with libquadmath package
rm -rf ${DESTDIR}/${sysroot}/usr/lib/libquadmath.*
+ # Remove libdep linker plugin because it conflicts with system binutils
+ rm -f ${DESTDIR}/usr/lib/bfd-plugins/libdep*
+
# Remove leftover symlinks
rm -f ${DESTDIR}/usr/lib${XBPS_TARGET_WORDSIZE}
rm -f ${DESTDIR}/lib*
From e8f3909c069ebf243062eca5f603227083ae6a28 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sat, 5 Nov 2022 11:33:12 -0700
Subject: [PATCH 11/38] qemu: remove broken patch
The necessary patch has been imported into musl so no need
to cast the sigevent struct to a more glibc-like one.
---
.../musl-fix-sigevent-and-sigval_t.patch | 27 -------------------
1 file changed, 27 deletions(-)
delete mode 100644 srcpkgs/qemu/patches/musl-fix-sigevent-and-sigval_t.patch
diff --git a/srcpkgs/qemu/patches/musl-fix-sigevent-and-sigval_t.patch b/srcpkgs/qemu/patches/musl-fix-sigevent-and-sigval_t.patch
deleted file mode 100644
index 4b4f1117c15f..000000000000
--- a/srcpkgs/qemu/patches/musl-fix-sigevent-and-sigval_t.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-Note: Remove this patch with musl 1.2.2
-
---- a/linux-user/syscall.c
-+++ b/linux-user/syscall.c
-@@ -5020,10 +5020,21 @@
- #ifndef HAVE_SIGEV_NOTIFY_THREAD_ID
- #define sigev_notify_thread_id _sigev_un._tid
- #endif
-
--static inline abi_long target_to_host_sigevent(struct sigevent *host_sevp,
-+struct host_sigevent {
-+ union sigval sigev_value;
-+ int sigev_signo;
-+ int sigev_notify;
-+ union {
-+ char _pad[64 - sizeof(int) * 2 - sizeof(union sigval)];
-+ int _tid;
-+ } _sigev_un;
-+};
-+
-+static inline abi_long target_to_host_sigevent(struct sigevent *sevp,
- abi_ulong target_addr)
- {
-+ struct host_sigevent *host_sevp = (struct host_sigevent *) sevp;
- struct target_sigevent *target_sevp;
-
- if (!lock_user_struct(VERIFY_READ, target_sevp, target_addr, 1)) {
From 9f9d2f243653f51f22679e0eb67284fc579168f2 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sat, 19 Nov 2022 13:26:24 -0800
Subject: [PATCH 12/38] mk-configure: rebuild for gcc 12
---
srcpkgs/mk-configure/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/mk-configure/template b/srcpkgs/mk-configure/template
index 9d12f11a9799..c50d8adf213f 100644
--- a/srcpkgs/mk-configure/template
+++ b/srcpkgs/mk-configure/template
@@ -1,7 +1,7 @@
# Template file for 'mk-configure'
pkgname=mk-configure
version=0.37.0
-revision=1
+revision=2
build_style=gnu-makefile
make_cmd=bmake
make_install_args="MANDIR=/usr/share/man"
From 1f225a67fca3a48b4a57f5b9f9e800b8b05e981c Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:28 -0800
Subject: [PATCH 13/38] cross-aarch64-linux-gnu: update to gcc 12.2.0.
---
srcpkgs/cross-aarch64-linux-gnu/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-aarch64-linux-gnu/template b/srcpkgs/cross-aarch64-linux-gnu/template
index 18de21aa3ccd..9e6fb75c198d 100644
--- a/srcpkgs/cross-aarch64-linux-gnu/template
+++ b/srcpkgs/cross-aarch64-linux-gnu/template
@@ -1,15 +1,16 @@
# Template file for 'cross-aarch64-linux-gnu'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
-_glibc_version=2.32
+_binutils_version=2.39
+_gcc_version=12.2.0
+_glibc_version=2.36
_linux_version=5.10.4
pkgname=cross-aarch64-linux-gnu
-version=0.34
+version=0.35
revision=1
build_style=void-cross
configure_args="--with-arch=armv8-a"
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Leah Neukirchen <leah@vuxu.org>"
@@ -17,12 +18,12 @@ license="GPL-2.0-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
+ 1c959fea240906226062cb4b1e7ebce71a9f0e3c0836c09e7e3423d434fcfe75
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
From 1cdf0999fcf4b7e23fa3fbe9aa0e8c06a7f97fe0 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:28 -0800
Subject: [PATCH 14/38] cross-aarch64-linux-musl: update to gcc 12.2.0.
---
srcpkgs/cross-aarch64-linux-musl/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-aarch64-linux-musl/template b/srcpkgs/cross-aarch64-linux-musl/template
index bb6a770afb79..ba14c96bccea 100644
--- a/srcpkgs/cross-aarch64-linux-musl/template
+++ b/srcpkgs/cross-aarch64-linux-musl/template
@@ -1,29 +1,30 @@
# Template file for 'cross-aarch64-linux-musl'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.2.0
_musl_version=1.1.24
_linux_version=5.10.4
_libucontext_version=1.0
pkgname=cross-aarch64-linux-musl
-version=0.34
-revision=4
+version=0.35
+revision=1
build_style=void-cross
configure_args="--with-arch=armv8-a"
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
-homepage="https://www.voidlinux.org/"
license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
+homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz
https://github.com/kaniini/libucontext/archive/libucontext-${_libucontext_version}.tar.gz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec
23714e99a87f6dea82e8a073c526325161dd65462459820b16a6162be91955bb"
From ca8b9d79a1da7f01abe2117d75713e8031afce88 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:28 -0800
Subject: [PATCH 15/38] cross-arm-linux-gnueabi: update to gcc 12.2.0.
---
srcpkgs/cross-arm-linux-gnueabi/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-arm-linux-gnueabi/template b/srcpkgs/cross-arm-linux-gnueabi/template
index a3aba72aa93a..5c774e16f430 100644
--- a/srcpkgs/cross-arm-linux-gnueabi/template
+++ b/srcpkgs/cross-arm-linux-gnueabi/template
@@ -1,15 +1,16 @@
# Template file for 'cross-arm-linux-gnueabi'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
-_glibc_version=2.32
+_binutils_version=2.39
+_gcc_version=12.2.0
+_glibc_version=2.36
_linux_version=5.10.4
pkgname=cross-arm-linux-gnueabi
-version=0.34
+version=0.35
revision=1
build_style=void-cross
configure_args="--with-arch=armv5te --with-float=soft"
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
@@ -17,12 +18,12 @@ license="GPL-2.0-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
+ 1c959fea240906226062cb4b1e7ebce71a9f0e3c0836c09e7e3423d434fcfe75
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
From 9ef922ff0b1519c1e8ce02719d5adc5ddb2b5ef1 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:28 -0800
Subject: [PATCH 16/38] cross-arm-linux-gnueabihf: update to gcc 12.2.0.
---
srcpkgs/cross-arm-linux-gnueabihf/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-arm-linux-gnueabihf/template b/srcpkgs/cross-arm-linux-gnueabihf/template
index d9ab86cf2ecc..d6298ab639a4 100644
--- a/srcpkgs/cross-arm-linux-gnueabihf/template
+++ b/srcpkgs/cross-arm-linux-gnueabihf/template
@@ -1,15 +1,16 @@
# Template file for 'cross-arm-linux-gnueabihf'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
-_glibc_version=2.32
+_binutils_version=2.39
+_gcc_version=12.2.0
+_glibc_version=2.36
_linux_version=5.10.4
pkgname=cross-arm-linux-gnueabihf
-version=0.34
+version=0.35
revision=1
build_style=void-cross
configure_args="--with-arch=armv6 --with-fpu=vfp --with-float=hard"
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
@@ -17,12 +18,12 @@ license="GPL-2.0-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
+ 1c959fea240906226062cb4b1e7ebce71a9f0e3c0836c09e7e3423d434fcfe75
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
From 45351c2aa37fca8379dec3ac7686b469c77b8715 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:28 -0800
Subject: [PATCH 17/38] cross-arm-linux-musleabi: update to gcc 12.2.0.
---
srcpkgs/cross-arm-linux-musleabi/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-arm-linux-musleabi/template b/srcpkgs/cross-arm-linux-musleabi/template
index 6692d891e1bd..24df78e8fd8e 100644
--- a/srcpkgs/cross-arm-linux-musleabi/template
+++ b/srcpkgs/cross-arm-linux-musleabi/template
@@ -1,29 +1,30 @@
# Template file for 'cross-arm-linux-musleabi'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.2.0
_musl_version=1.1.24
_linux_version=5.10.4
_libucontext_version=1.0
pkgname=cross-arm-linux-musleabi
-version=0.34
-revision=4
+version=0.35
+revision=1
build_style=void-cross
configure_args="--with-arch=armv5te --with-float=soft"
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
-homepage="https://www.voidlinux.org/"
license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
+homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz
https://github.com/kaniini/libucontext/archive/libucontext-${_libucontext_version}.tar.gz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec
23714e99a87f6dea82e8a073c526325161dd65462459820b16a6162be91955bb"
From 3b1c1b95b00ff68f759bd9f22aa5fb0364be40fe Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:28 -0800
Subject: [PATCH 18/38] cross-arm-linux-musleabihf: update to gcc 12.2.0.
---
srcpkgs/cross-arm-linux-musleabihf/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-arm-linux-musleabihf/template b/srcpkgs/cross-arm-linux-musleabihf/template
index bb62bd5ebc55..8093700f909c 100644
--- a/srcpkgs/cross-arm-linux-musleabihf/template
+++ b/srcpkgs/cross-arm-linux-musleabihf/template
@@ -1,29 +1,30 @@
# Template file for 'cross-arm-linux-musleabihf'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.2.0
_musl_version=1.1.24
_linux_version=5.10.4
_libucontext_version=1.0
pkgname=cross-arm-linux-musleabihf
-version=0.34
-revision=4
+version=0.35
+revision=1
build_style=void-cross
configure_args="--with-arch=armv6 --with-fpu=vfp --with-float=hard"
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
-homepage="https://www.voidlinux.org/"
license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
+homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz
https://github.com/kaniini/libucontext/archive/libucontext-${_libucontext_version}.tar.gz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec
23714e99a87f6dea82e8a073c526325161dd65462459820b16a6162be91955bb"
From ce4a1fbd98429f760ac93098de59dcddd9603e23 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:28 -0800
Subject: [PATCH 19/38] cross-armv7l-linux-gnueabihf: update to gcc 12.2.0.
---
srcpkgs/cross-armv7l-linux-gnueabihf/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-armv7l-linux-gnueabihf/template b/srcpkgs/cross-armv7l-linux-gnueabihf/template
index 30c89b6294ef..92665326428b 100644
--- a/srcpkgs/cross-armv7l-linux-gnueabihf/template
+++ b/srcpkgs/cross-armv7l-linux-gnueabihf/template
@@ -1,15 +1,16 @@
# Template file for 'cross-armv7l-linux-gnueabihf'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
-_glibc_version=2.32
+_binutils_version=2.39
+_gcc_version=12.2.0
+_glibc_version=2.36
_linux_version=5.10.4
pkgname=cross-armv7l-linux-gnueabihf
-version=0.34
+version=0.35
revision=1
build_style=void-cross
configure_args="--with-arch=armv7-a --with-fpu=vfpv3 --with-float=hard"
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
@@ -17,12 +18,12 @@ license="GPL-2.0-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
+ 1c959fea240906226062cb4b1e7ebce71a9f0e3c0836c09e7e3423d434fcfe75
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
From 6d32b6d5756f9ff9f087ec990b9dea5381a46573 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:28 -0800
Subject: [PATCH 20/38] cross-armv7l-linux-musleabihf: update to gcc 12.2.0.
---
.../cross-armv7l-linux-musleabihf/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-armv7l-linux-musleabihf/template b/srcpkgs/cross-armv7l-linux-musleabihf/template
index 0a588cdf1a58..e5af2c9ccbf2 100644
--- a/srcpkgs/cross-armv7l-linux-musleabihf/template
+++ b/srcpkgs/cross-armv7l-linux-musleabihf/template
@@ -1,29 +1,30 @@
# Template file for 'cross-armv7l-linux-musleabihf'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.2.0
_musl_version=1.1.24
_linux_version=5.10.4
_libucontext_version=1.0
pkgname=cross-armv7l-linux-musleabihf
-version=0.34
-revision=4
+version=0.35
+revision=1
build_style=void-cross
configure_args="--with-arch=armv7-a --with-fpu=vfpv3 --with-float=hard"
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
-homepage="https://www.voidlinux.org/"
license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
+homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz
https://github.com/kaniini/libucontext/archive/libucontext-${_libucontext_version}.tar.gz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec
23714e99a87f6dea82e8a073c526325161dd65462459820b16a6162be91955bb"
From b2677d37db332907d29338fc27a5327cc7b8fabf Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:29 -0800
Subject: [PATCH 21/38] cross-i686-linux-musl: update to gcc 12.2.0.
---
srcpkgs/cross-i686-linux-musl/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-i686-linux-musl/template b/srcpkgs/cross-i686-linux-musl/template
index 8be16a230d8d..d624bb7a3254 100644
--- a/srcpkgs/cross-i686-linux-musl/template
+++ b/srcpkgs/cross-i686-linux-musl/template
@@ -1,28 +1,29 @@
# Template file for 'cross-i686-linux-musl'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.2.0
_musl_version=1.1.24
_linux_version=5.10.4
_libucontext_version=1.0
pkgname=cross-i686-linux-musl
-version=0.34
-revision=4
+version=0.35
+revision=1
build_style=void-cross
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
-homepage="https://www.voidlinux.org/"
license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
+homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz
https://github.com/kaniini/libucontext/archive/libucontext-${_libucontext_version}.tar.gz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec
23714e99a87f6dea82e8a073c526325161dd65462459820b16a6162be91955bb"
From ea358c8ff6e24e0b3e2ceb5546d75028a2e39c10 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:29 -0800
Subject: [PATCH 22/38] cross-i686-pc-linux-gnu: update to gcc 12.2.0.
---
srcpkgs/cross-i686-pc-linux-gnu/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-i686-pc-linux-gnu/template b/srcpkgs/cross-i686-pc-linux-gnu/template
index 263a43f7a7b8..6a9e54db807a 100644
--- a/srcpkgs/cross-i686-pc-linux-gnu/template
+++ b/srcpkgs/cross-i686-pc-linux-gnu/template
@@ -1,14 +1,15 @@
# Template file for 'cross-i686-pc-linux-gnu'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
-_glibc_version=2.32
+_binutils_version=2.39
+_gcc_version=12.2.0
+_glibc_version=2.36
_linux_version=5.10.4
pkgname=cross-i686-pc-linux-gnu
-version=0.34
+version=0.35
revision=1
build_style=void-cross
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
@@ -16,12 +17,12 @@ license="GPL-2.0-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
+ 1c959fea240906226062cb4b1e7ebce71a9f0e3c0836c09e7e3423d434fcfe75
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
From 900ee24e5da6c2acfd2a79b0ab57f17a542f040a Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:29 -0800
Subject: [PATCH 23/38] cross-mips-linux-musl: update to gcc 12.2.0.
---
srcpkgs/cross-mips-linux-musl/template | 21 +++++++++++----------
1 file changed, 11 insertions(+), 10 deletions(-)
diff --git a/srcpkgs/cross-mips-linux-musl/template b/srcpkgs/cross-mips-linux-musl/template
index 9b5d5819b1a0..67a5c413396c 100644
--- a/srcpkgs/cross-mips-linux-musl/template
+++ b/srcpkgs/cross-mips-linux-musl/template
@@ -1,28 +1,29 @@
# Template file for 'cross-mips-linux-musl'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.2.0
_musl_version=1.1.24
_linux_version=5.10.4
pkgname=cross-mips-linux-musl
-version=0.34
-revision=3
+version=0.35
+revision=1
build_style=void-cross
configure_args="--with-arch=mips32r2 --with-float=soft
--with-linker-hash-style=sysv"
hostmakedepends="texinfo tar gcc-objc flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
-homepage="https://www.voidlinux.org/"
license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
+homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
- https://www.musl-libc.org/releases/musl-${_musl_version}.tar.gz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
+ https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
From 5ce512b851838655752f4219f6b5bc9fc708b109 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:29 -0800
Subject: [PATCH 24/38] cross-mips-linux-muslhf: update to gcc 12.2.0.
---
srcpkgs/cross-mips-linux-muslhf/template | 21 +++++++++++----------
1 file changed, 11 insertions(+), 10 deletions(-)
diff --git a/srcpkgs/cross-mips-linux-muslhf/template b/srcpkgs/cross-mips-linux-muslhf/template
index d7590af9ec03..bdf8600ce95b 100644
--- a/srcpkgs/cross-mips-linux-muslhf/template
+++ b/srcpkgs/cross-mips-linux-muslhf/template
@@ -1,28 +1,29 @@
# Template file for 'cross-mips-linux-muslhf'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.2.0
_musl_version=1.1.24
_linux_version=5.10.4
pkgname=cross-mips-linux-muslhf
-version=0.34
-revision=3
+version=0.35
+revision=1
build_style=void-cross
configure_args="--with-arch=mips32r2 --with-float=hard
--with-linker-hash-style=sysv"
hostmakedepends="texinfo tar gcc-objc flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="hipperson0 <hipperson0@gmail.com>"
-homepage="https://www.voidlinux.org/"
license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
+homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
- https://www.musl-libc.org/releases/musl-${_musl_version}.tar.gz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
+ https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
From 8e6f1071b3cb18ba927e56ad9f8dd5cf109a10dc Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:29 -0800
Subject: [PATCH 25/38] cross-mipsel-linux-musl: update to gcc 12.2.0.
---
srcpkgs/cross-mipsel-linux-musl/template | 21 +++++++++++----------
1 file changed, 11 insertions(+), 10 deletions(-)
diff --git a/srcpkgs/cross-mipsel-linux-musl/template b/srcpkgs/cross-mipsel-linux-musl/template
index 1acba7016dbc..de49387d517b 100644
--- a/srcpkgs/cross-mipsel-linux-musl/template
+++ b/srcpkgs/cross-mipsel-linux-musl/template
@@ -1,28 +1,29 @@
# Template file for 'cross-mipsel-linux-musl'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.2.0
_musl_version=1.1.24
_linux_version=5.10.4
pkgname=cross-mipsel-linux-musl
-version=0.34
-revision=3
+version=0.35
+revision=1
build_style=void-cross
configure_args="--with-arch=mips32r2 --with-float=soft
--with-linker-hash-style=sysv"
hostmakedepends="texinfo tar gcc-objc flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
-homepage="https://www.voidlinux.org/"
license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
+homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
- https://www.musl-libc.org/releases/musl-${_musl_version}.tar.gz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
+ https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
From ff75e733c9a5c1ef71c8154af3ac88b668ed5ab3 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:29 -0800
Subject: [PATCH 26/38] cross-mipsel-linux-muslhf: update to gcc 12.2.0.
---
srcpkgs/cross-mipsel-linux-muslhf/template | 21 +++++++++++----------
1 file changed, 11 insertions(+), 10 deletions(-)
diff --git a/srcpkgs/cross-mipsel-linux-muslhf/template b/srcpkgs/cross-mipsel-linux-muslhf/template
index e4a55f028bc4..b27ce6475a38 100644
--- a/srcpkgs/cross-mipsel-linux-muslhf/template
+++ b/srcpkgs/cross-mipsel-linux-muslhf/template
@@ -1,28 +1,29 @@
# Template file for 'cross-mipsel-linux-muslhf'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.2.0
_musl_version=1.1.24
_linux_version=5.10.4
pkgname=cross-mipsel-linux-muslhf
-version=0.34
-revision=3
+version=0.35
+revision=1
build_style=void-cross
configure_args="--with-arch=mips32r2 --with-float=hard
--with-linker-hash-style=sysv"
hostmakedepends="texinfo tar gcc-objc flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
-homepage="https://www.voidlinux.org/"
license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
+homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
- https://www.musl-libc.org/releases/musl-${_musl_version}.tar.gz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
+ https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
From 390ef0702c07d956c0f3a5b099d6f7f7f20334d9 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:29 -0800
Subject: [PATCH 27/38] cross-powerpc-linux-gnu: update to gcc 12.2.0.
---
srcpkgs/cross-powerpc-linux-gnu/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-powerpc-linux-gnu/template b/srcpkgs/cross-powerpc-linux-gnu/template
index b97a21d0d72e..79579e093b12 100644
--- a/srcpkgs/cross-powerpc-linux-gnu/template
+++ b/srcpkgs/cross-powerpc-linux-gnu/template
@@ -1,15 +1,16 @@
# Template file for 'cross-powerpc-linux-gnu'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
-_glibc_version=2.32
+_binutils_version=2.39
+_gcc_version=12.2.0
+_glibc_version=2.36
_linux_version=5.10.4
pkgname=cross-powerpc-linux-gnu
-version=0.34
+version=0.35
revision=1
build_style=void-cross
configure_args="--enable-secureplt --disable-vtable-verify"
hostmakedepends="texinfo tar gcc-objc flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Thomas Batten <stenstorpmc@gmail.com>"
@@ -17,12 +18,12 @@ license="GPL-2.0-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
+ 1c959fea240906226062cb4b1e7ebce71a9f0e3c0836c09e7e3423d434fcfe75
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
From 0235008194054ee1f34994ca5aa7155c66633107 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:29 -0800
Subject: [PATCH 28/38] cross-powerpc-linux-musl: update to gcc 12.2.0.
---
srcpkgs/cross-powerpc-linux-musl/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-powerpc-linux-musl/template b/srcpkgs/cross-powerpc-linux-musl/template
index f9b22f0610d3..9bb6acd359b6 100644
--- a/srcpkgs/cross-powerpc-linux-musl/template
+++ b/srcpkgs/cross-powerpc-linux-musl/template
@@ -1,28 +1,29 @@
# Template file for 'cross-powerpc-linux-musl'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.2.0
_musl_version=1.1.24
_linux_version=5.10.4
pkgname=cross-powerpc-linux-musl
-version=0.34
-revision=3
+version=0.35
+revision=1
build_style=void-cross
configure_args="--enable-secureplt --disable-vtable-verify
--disable-decimal-float"
hostmakedepends="texinfo tar gcc-objc flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Thomas Batten <stenstorpmc@gmail.com>"
-homepage="https://www.voidlinux.org/"
license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
+homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
From 68f4ae156d99cbcb9b8f3ab02d0f3a6b6fba64a7 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:29 -0800
Subject: [PATCH 29/38] cross-powerpc64-linux-gnu: update to gcc 12.2.0.
---
srcpkgs/cross-powerpc64-linux-gnu/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-powerpc64-linux-gnu/template b/srcpkgs/cross-powerpc64-linux-gnu/template
index 35cfcaa6f02e..2d153d00add6 100644
--- a/srcpkgs/cross-powerpc64-linux-gnu/template
+++ b/srcpkgs/cross-powerpc64-linux-gnu/template
@@ -1,16 +1,17 @@
# Template file for 'cross-powerpc64-linux-gnu'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
-_glibc_version=2.32
+_binutils_version=2.39
+_gcc_version=12.2.0
+_glibc_version=2.36
_linux_version=5.10.4
pkgname=cross-powerpc64-linux-gnu
-version=0.34
+version=0.35
revision=1
build_style=void-cross
configure_args="--enable-secureplt --disable-vtable-verify --with-abi=elfv2
--enable-targets=powerpc-linux"
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
@@ -18,12 +19,12 @@ license="GPL-2.0-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
+ 1c959fea240906226062cb4b1e7ebce71a9f0e3c0836c09e7e3423d434fcfe75
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
From f4d106c37e463679e3fcbac31ef54b3e599ec8f7 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:29 -0800
Subject: [PATCH 30/38] cross-powerpc64-linux-musl: update to gcc 12.2.0.
---
srcpkgs/cross-powerpc64-linux-musl/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-powerpc64-linux-musl/template b/srcpkgs/cross-powerpc64-linux-musl/template
index 016f18776a6d..e0848fe0bff7 100644
--- a/srcpkgs/cross-powerpc64-linux-musl/template
+++ b/srcpkgs/cross-powerpc64-linux-musl/template
@@ -1,30 +1,31 @@
# Template file for 'cross-powerpc64-linux-musl'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.2.0
_musl_version=1.1.24
_linux_version=5.10.4
_libucontext_version=1.0
pkgname=cross-powerpc64-linux-musl
-version=0.34
-revision=4
+version=0.35
+revision=1
build_style=void-cross
configure_args="--enable-secureplt --disable-vtable-verify
--disable-decimal-float --with-abi=elfv2 --enable-targets=powerpc-linux"
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
-homepage="https://www.voidlinux.org/"
license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
+homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz
https://github.com/kaniini/libucontext/archive/libucontext-${_libucontext_version}.tar.gz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec
23714e99a87f6dea82e8a073c526325161dd65462459820b16a6162be91955bb"
From 18d74fbff80c9ccb019ef640a2666b81295cd2d1 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:29 -0800
Subject: [PATCH 31/38] cross-powerpc64le-linux-gnu: update to gcc 12.2.0.
---
srcpkgs/cross-powerpc64le-linux-gnu/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-powerpc64le-linux-gnu/template b/srcpkgs/cross-powerpc64le-linux-gnu/template
index 463d7e92d20d..8d8e010e15c0 100644
--- a/srcpkgs/cross-powerpc64le-linux-gnu/template
+++ b/srcpkgs/cross-powerpc64le-linux-gnu/template
@@ -1,16 +1,17 @@
# Template file for 'cross-powerpc64le-linux-gnu'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
-_glibc_version=2.32
+_binutils_version=2.39
+_gcc_version=12.2.0
+_glibc_version=2.36
_linux_version=5.10.4
pkgname=cross-powerpc64le-linux-gnu
-version=0.34
+version=0.35
revision=1
build_style=void-cross
configure_args="--enable-secureplt --disable-vtable-verify --with-abi=elfv2
--enable-targets=powerpcle-linux"
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
@@ -18,12 +19,12 @@ license="GPL-2.0-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
+ 1c959fea240906226062cb4b1e7ebce71a9f0e3c0836c09e7e3423d434fcfe75
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
From 1c314320c695c9c8ea2fa9787f9633dfc4ebd59c Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:29 -0800
Subject: [PATCH 32/38] cross-powerpc64le-linux-musl: update to gcc 12.2.0.
---
srcpkgs/cross-powerpc64le-linux-musl/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-powerpc64le-linux-musl/template b/srcpkgs/cross-powerpc64le-linux-musl/template
index c17a3cccfe29..0915e524545f 100644
--- a/srcpkgs/cross-powerpc64le-linux-musl/template
+++ b/srcpkgs/cross-powerpc64le-linux-musl/template
@@ -1,30 +1,31 @@
# Template file for 'cross-powerpc64le-linux-musl'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.2.0
_musl_version=1.1.24
_linux_version=5.10.4
_libucontext_version=1.0
pkgname=cross-powerpc64le-linux-musl
-version=0.34
-revision=4
+version=0.35
+revision=1
build_style=void-cross
configure_args="--enable-secureplt --disable-vtable-verify
--disable-decimal-float --with-abi=elfv2 --enable-targets=powerpcle-linux"
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
-homepage="https://www.voidlinux.org/"
license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
+homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz
https://github.com/kaniini/libucontext/archive/libucontext-${_libucontext_version}.tar.gz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec
23714e99a87f6dea82e8a073c526325161dd65462459820b16a6162be91955bb"
From 6c1d6955226f3d0c28ae4e7bd1d691c92a899ef6 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:29 -0800
Subject: [PATCH 33/38] cross-powerpcle-linux-gnu: update to gcc 12.2.0.
---
srcpkgs/cross-powerpcle-linux-gnu/template | 21 ++++++++++++---------
1 file changed, 12 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-powerpcle-linux-gnu/template b/srcpkgs/cross-powerpcle-linux-gnu/template
index 9aede3c465ce..687be8a44c6c 100644
--- a/srcpkgs/cross-powerpcle-linux-gnu/template
+++ b/srcpkgs/cross-powerpcle-linux-gnu/template
@@ -1,15 +1,16 @@
# Template file for 'cross-powerpcle-linux-gnu'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
-_glibc_version=2.32
+_binutils_version=2.39
+_gcc_version=12.2.0
+_glibc_version=2.36
_linux_version=5.10.4
pkgname=cross-powerpcle-linux-gnu
-version=0.34
+version=0.35
revision=1
build_style=void-cross
configure_args="--enable-secureplt --disable-vtable-verify"
hostmakedepends="texinfo tar gcc-objc flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
@@ -17,12 +18,12 @@ license="GPL-2.0-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
+ 1c959fea240906226062cb4b1e7ebce71a9f0e3c0836c09e7e3423d434fcfe75
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
@@ -35,6 +36,8 @@ if [ "$XBPS_TARGET_MACHINE" = "ppcle" ]; then
broken="Can't build crosstoolchain to itself"
fi
+broken="glibc uses big-endian specific instructions on 32-bit powerpc"
+
cross-powerpcle-linux-gnu-libc_package() {
short_desc+=" - glibc files"
nostrip=yes
From 80ff9901db83f0a736a1d56d9eff85a150412024 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:29 -0800
Subject: [PATCH 34/38] cross-powerpcle-linux-musl: update to gcc 12.2.0.
---
srcpkgs/cross-powerpcle-linux-musl/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-powerpcle-linux-musl/template b/srcpkgs/cross-powerpcle-linux-musl/template
index 045cfda987fe..bb984b9c42eb 100644
--- a/srcpkgs/cross-powerpcle-linux-musl/template
+++ b/srcpkgs/cross-powerpcle-linux-musl/template
@@ -1,28 +1,29 @@
# Template file for 'cross-powerpcle-linux-musl'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.2.0
_musl_version=1.1.24
_linux_version=5.10.4
pkgname=cross-powerpcle-linux-musl
-version=0.34
-revision=3
+version=0.35
+revision=1
build_style=void-cross
configure_args="--enable-secureplt --disable-vtable-verify
--disable-decimal-float"
hostmakedepends="texinfo tar gcc-objc flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
-homepage="https://www.voidlinux.org/"
license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
+homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
From caec1366d46bfb0cc0b73646d754f52e66e4d38a Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:30 -0800
Subject: [PATCH 35/38] cross-x86_64-linux-gnu: update to gcc 12.2.0.
---
srcpkgs/cross-x86_64-linux-gnu/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-x86_64-linux-gnu/template b/srcpkgs/cross-x86_64-linux-gnu/template
index 8918f3c22a1c..930aaf2a508b 100644
--- a/srcpkgs/cross-x86_64-linux-gnu/template
+++ b/srcpkgs/cross-x86_64-linux-gnu/template
@@ -1,14 +1,15 @@
# Template file for 'cross-x86_64-linux-gnu'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
-_glibc_version=2.32
+_binutils_version=2.39
+_gcc_version=12.2.0
+_glibc_version=2.36
_linux_version=5.10.4
pkgname=cross-x86_64-linux-gnu
-version=0.34
+version=0.35
revision=1
build_style=void-cross
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
@@ -16,12 +17,12 @@ license="GPL-2.0-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
+ 1c959fea240906226062cb4b1e7ebce71a9f0e3c0836c09e7e3423d434fcfe75
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
From 6e16dba261f6106666bf28319030b23a3dcc486e Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:30 -0800
Subject: [PATCH 36/38] cross-x86_64-linux-musl: update to gcc 12.2.0.
---
srcpkgs/cross-x86_64-linux-musl/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-x86_64-linux-musl/template b/srcpkgs/cross-x86_64-linux-musl/template
index a941e7e02f6f..ac5b1c46ab82 100644
--- a/srcpkgs/cross-x86_64-linux-musl/template
+++ b/srcpkgs/cross-x86_64-linux-musl/template
@@ -1,28 +1,29 @@
# Template file for 'cross-x86_64-linux-musl'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.2.0
_musl_version=1.1.24
_linux_version=5.10.4
_libucontext_version=1.0
pkgname=cross-x86_64-linux-musl
-version=0.34
-revision=3
+version=0.35
+revision=1
build_style=void-cross
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
-homepage="https://www.voidlinux.org/"
license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
+homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz
https://github.com/kaniini/libucontext/archive/libucontext-${_libucontext_version}.tar.gz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec
23714e99a87f6dea82e8a073c526325161dd65462459820b16a6162be91955bb"
From 5796bae0f4899492bce8b5e04bb4cf0ee01a31f8 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Fri, 18 Nov 2022 02:01:19 -0800
Subject: [PATCH 37/38] cross-vpkg-dummy: update to 0.39.
---
srcpkgs/cross-vpkg-dummy/template | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/srcpkgs/cross-vpkg-dummy/template b/srcpkgs/cross-vpkg-dummy/template
index d83e38dc63ac..aeafb749dd5f 100644
--- a/srcpkgs/cross-vpkg-dummy/template
+++ b/srcpkgs/cross-vpkg-dummy/template
@@ -1,6 +1,6 @@
# Template file for 'cross-vpkg-dummy'
pkgname=cross-vpkg-dummy
-version=0.38
+version=0.39
revision=1
build_style=meta
short_desc="Dummy meta-pkg for cross building packages with xbps-src"
@@ -54,8 +54,8 @@ conflicts="
gcc-objc++>=0"
shlib_provides="
libgcc_s.so.1
- libgnat-10.so
- libgnarl-10.so
+ libgnat-12.so
+ libgnarl-12.so
libstdc++.so.6
libgfortran.so.5"
From 8375e2563398aed2ea8d860557c4347b6b6381fa Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Sun, 27 Nov 2022 22:59:45 +0100
Subject: [PATCH 38/38] llvm: update to 15.0.5
---
common/shlibs | 7 +-
srcpkgs/clang | 2 +-
srcpkgs/clang-analyzer | 2 +-
srcpkgs/clang-tools-extra | 2 +-
srcpkgs/libclang | 2 +-
srcpkgs/libclang-cpp | 2 +-
srcpkgs/libcxx | 2 +-
srcpkgs/libcxx-devel | 2 +-
srcpkgs/libcxxabi | 2 +-
srcpkgs/libcxxabi-devel | 2 +-
srcpkgs/libllvm15 | 1 +
srcpkgs/libomp | 2 +-
srcpkgs/libomp-devel | 2 +-
srcpkgs/lld | 2 +-
srcpkgs/lld-devel | 2 +-
srcpkgs/lldb | 2 +-
srcpkgs/lldb-devel | 2 +-
srcpkgs/llvm-libunwind | 2 +-
srcpkgs/llvm-libunwind-devel | 2 +-
srcpkgs/llvm/template | 6 +-
.../llvm15/files/llvm-Config-llvm-config.h | 9 +
...clang-001-fix-unwind-chain-inclusion.patch | 44 ++
.../patches/clang-002-add-musl-triples.patch | 110 +++++
.../clang-003-ppc64-dynamic-linker-path.patch | 13 +
.../patches/clang-004-ppc64-musl-elfv2.patch | 48 ++
.../compiler-rt-sanitizer-ppc64-musl.patch | 35 ++
.../compiler-rt-xray-ppc64-musl.patch.skip | 62 +++
srcpkgs/llvm15/patches/libcxx-musl.patch | 26 ++
srcpkgs/llvm15/patches/libcxx-ppc.patch | 22 +
.../llvm15/patches/libcxx-ssp-nonshared.patch | 11 +
srcpkgs/llvm15/patches/libcxxabi-dl.patch | 25 +
.../llvm15/patches/libunwind-ppc32.patch.skip | 63 +++
srcpkgs/llvm15/patches/lldb-musl.patch | 40 ++
srcpkgs/llvm15/patches/llvm-001-musl.patch | 57 +++
.../patches/llvm-002-musl-ppc64-elfv2.patch | 30 ++
.../patches/llvm-003-ppc-secureplt.patch | 11 +
.../patches/llvm-004-override-opt.patch | 18 +
.../llvm15/patches/llvm-005-ppc-bigpic.patch | 36 ++
.../patches/llvm-006-aarch64-mf_exec.patch | 25 +
srcpkgs/llvm15/template | 434 ++++++++++++++++++
srcpkgs/llvm15/update | 3 +
41 files changed, 1147 insertions(+), 23 deletions(-)
create mode 120000 srcpkgs/libllvm15
create mode 100644 srcpkgs/llvm15/files/llvm-Config-llvm-config.h
create mode 100644 srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch
create mode 100644 srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch
create mode 100644 srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch
create mode 100644 srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch
create mode 100644 srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch
create mode 100644 srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip
create mode 100644 srcpkgs/llvm15/patches/libcxx-musl.patch
create mode 100644 srcpkgs/llvm15/patches/libcxx-ppc.patch
create mode 100644 srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch
create mode 100644 srcpkgs/llvm15/patches/libcxxabi-dl.patch
create mode 100644 srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip
create mode 100644 srcpkgs/llvm15/patches/lldb-musl.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-001-musl.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-004-override-opt.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch
create mode 100644 srcpkgs/llvm15/template
create mode 100644 srcpkgs/llvm15/update
diff --git a/common/shlibs b/common/shlibs
index 5a0ad39c8da8..0ae10484b362 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -984,11 +984,12 @@ 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.12 lldb-12.0.0_1
-libclang.so.12 libclang-12.0.0_1
-libclang-cpp.so.12 libclang-cpp-12.0.0_1
+liblldb.so.15 lldb-15.0.5_1
+libclang.so.15 libclang-15.0.5_1
+libclang-cpp.so.15 libclang-cpp-15.0.5_1
libLLVM-11.so libllvm11-11.0.0_1
libLLVM-12.so libllvm12-12.0.0_1
+libLLVM-15.so libllvm15-15.0.5_1
libisofs.so.6 libisofs-0.6.24_1
libmpack.so.0 libmpack-1.0.5_1
libGeoIP.so.1 libgeoip-1.4.8_1
diff --git a/srcpkgs/clang b/srcpkgs/clang
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/clang
+++ b/srcpkgs/clang
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/clang-analyzer b/srcpkgs/clang-analyzer
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/clang-analyzer
+++ b/srcpkgs/clang-analyzer
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/clang-tools-extra b/srcpkgs/clang-tools-extra
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/clang-tools-extra
+++ b/srcpkgs/clang-tools-extra
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libclang b/srcpkgs/libclang
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libclang
+++ b/srcpkgs/libclang
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libclang-cpp b/srcpkgs/libclang-cpp
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libclang-cpp
+++ b/srcpkgs/libclang-cpp
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxx b/srcpkgs/libcxx
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxx
+++ b/srcpkgs/libcxx
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxx-devel b/srcpkgs/libcxx-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxx-devel
+++ b/srcpkgs/libcxx-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxxabi b/srcpkgs/libcxxabi
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxxabi
+++ b/srcpkgs/libcxxabi
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxxabi-devel b/srcpkgs/libcxxabi-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxxabi-devel
+++ b/srcpkgs/libcxxabi-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libllvm15 b/srcpkgs/libllvm15
new file mode 120000
index 000000000000..ad57a969b9f9
--- /dev/null
+++ b/srcpkgs/libllvm15
@@ -0,0 +1 @@
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libomp b/srcpkgs/libomp
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libomp
+++ b/srcpkgs/libomp
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libomp-devel b/srcpkgs/libomp-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libomp-devel
+++ b/srcpkgs/libomp-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lld b/srcpkgs/lld
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lld
+++ b/srcpkgs/lld
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lld-devel b/srcpkgs/lld-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lld-devel
+++ b/srcpkgs/lld-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lldb b/srcpkgs/lldb
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lldb
+++ b/srcpkgs/lldb
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lldb-devel b/srcpkgs/lldb-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lldb-devel
+++ b/srcpkgs/lldb-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm-libunwind b/srcpkgs/llvm-libunwind
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/llvm-libunwind
+++ b/srcpkgs/llvm-libunwind
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm-libunwind-devel b/srcpkgs/llvm-libunwind-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/llvm-libunwind-devel
+++ b/srcpkgs/llvm-libunwind-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm/template b/srcpkgs/llvm/template
index a92db6f94f9f..d14430090161 100644
--- a/srcpkgs/llvm/template
+++ b/srcpkgs/llvm/template
@@ -1,10 +1,10 @@
# Template file for 'llvm'
pkgname=llvm
-version=12.0.0
+version=15.0.0
revision=1
build_style=meta
-depends="llvm12"
-replaces="llvm11>=0 llvm10>=0 llvm9>=0 llvm8>=0 llvm7>=0 llvm6.0>=0 llvm3.9>=0"
+depends="llvm15"
+replaces="llvm12>=0 llvm11>=0 llvm10>=0 llvm9>=0 llvm8>=0 llvm7>=0 llvm6.0>=0 llvm3.9>=0"
short_desc="LLVM meta package"
maintainer="Enno Boland <gottox@voidlinux.org>"
license="Public Domain"
diff --git a/srcpkgs/llvm15/files/llvm-Config-llvm-config.h b/srcpkgs/llvm15/files/llvm-Config-llvm-config.h
new file mode 100644
index 000000000000..2fa08c9be696
--- /dev/null
+++ b/srcpkgs/llvm15/files/llvm-Config-llvm-config.h
@@ -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
diff --git a/srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch b/srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch
new file mode 100644
index 000000000000..e4eaa7783e7a
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch
@@ -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
diff --git a/srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch b/srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch
new file mode 100644
index 000000000000..25688d40dbc2
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch
@@ -0,0 +1,110 @@
+--- a/clang/lib/Driver/ToolChains/Gnu.cpp
++++ b/clang/lib/Driver/ToolChains/Gnu.cpp
+@@ -2086,7 +2086,8 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
+ static const char *const ARMHFTriples[] = {"arm-linux-gnueabihf",
+ "armv7hl-redhat-linux-gnueabi",
+ "armv6hl-suse-linux-gnueabi",
+- "armv7hl-suse-linux-gnueabi"};
++ "armv7hl-suse-linux-gnueabi",
++ "armv7l-linux-gnueabihf"};
+ static const char *const ARMebLibDirs[] = {"/lib"};
+ static const char *const ARMebTriples[] = {"armeb-linux-gnueabi",
+ "armeb-linux-androideabi"};
+@@ -2153,8 +2154,7 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
+ "powerpc64-suse-linux", "powerpc-montavista-linuxspe"};
+ static const char *const PPCLELibDirs[] = {"/lib32", "/lib"};
+ static const char *const PPCLETriples[] = {"powerpcle-linux-gnu",
+- "powerpcle-unknown-linux-gnu",
+- "powerpcle-linux-musl"};
++ "powerpcle-unknown-linux-gnu"};
+
+ static const char *const PPC64LibDirs[] = {"/lib64", "/lib"};
+ static const char *const PPC64Triples[] = {
+@@ -2235,6 +2235,87 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
+ return;
+ }
+
++ if (TargetTriple.isMusl()) {
++ static const char *const AArch64MuslTriples[] = {"aarch64-linux-musl"};
++ static const char *const ARMHFMuslTriples[] = {
++ "arm-linux-musleabihf", "armv7l-linux-musleabihf"
++ };
++ static const char *const ARMMuslTriples[] = {"arm-linux-musleabi"};
++ static const char *const X86_64MuslTriples[] = {"x86_64-linux-musl"};
++ static const char *const X86MuslTriples[] = {"i686-linux-musl"};
++ static const char *const MIPSMuslTriples[] = {
++ "mips-linux-musl", "mipsel-linux-musl",
++ "mipsel-linux-muslhf", "mips-linux-muslhf"
++ };
++ static const char *const PPCMuslTriples[] = {"powerpc-linux-musl"};
++ static const char *const PPCLEMuslTriples[] = {"powerpcle-linux-musl"};
++ static const char *const PPC64MuslTriples[] = {"powerpc64-linux-musl"};
++ static const char *const PPC64LEMuslTriples[] = {"powerpc64le-linux-musl"};
++
++ switch (TargetTriple.getArch()) {
++ case llvm::Triple::aarch64:
++ LibDirs.append(begin(AArch64LibDirs), end(AArch64LibDirs));
++ TripleAliases.append(begin(AArch64MuslTriples), end(AArch64MuslTriples));
++ BiarchLibDirs.append(begin(AArch64LibDirs), end(AArch64LibDirs));
++ BiarchTripleAliases.append(begin(AArch64MuslTriples), end(AArch64MuslTriples));
++ break;
++ case llvm::Triple::arm:
++ LibDirs.append(begin(ARMLibDirs), end(ARMLibDirs));
++ if (TargetTriple.getEnvironment() == llvm::Triple::MuslEABIHF) {
++ TripleAliases.append(begin(ARMHFMuslTriples), end(ARMHFMuslTriples));
++ } else {
++ TripleAliases.append(begin(ARMMuslTriples), end(ARMMuslTriples));
++ }
++ break;
++ case llvm::Triple::x86_64:
++ LibDirs.append(begin(X86_64LibDirs), end(X86_64LibDirs));
++ TripleAliases.append(begin(X86_64MuslTriples), end(X86_64MuslTriples));
++ BiarchLibDirs.append(begin(X86LibDirs), end(X86LibDirs));
++ BiarchTripleAliases.append(begin(X86MuslTriples), end(X86MuslTriples));
++ break;
++ case llvm::Triple::x86:
++ LibDirs.append(begin(X86LibDirs), end(X86LibDirs));
++ TripleAliases.append(begin(X86MuslTriples), end(X86MuslTriples));
++ BiarchLibDirs.append(begin(X86_64LibDirs), end(X86_64LibDirs));
++ BiarchTripleAliases.append(begin(X86_64MuslTriples), end(X86_64MuslTriples));
++ break;
++ case llvm::Triple::mips:
++ LibDirs.append(begin(MIPSLibDirs), end(MIPSLibDirs));
++ TripleAliases.append(begin(MIPSMuslTriples), end(MIPSMuslTriples));
++ break;
++ case llvm::Triple::ppc:
++ LibDirs.append(begin(PPCLibDirs), end(PPCLibDirs));
++ TripleAliases.append(begin(PPCMuslTriples), end(PPCMuslTriples));
++ BiarchLibDirs.append(begin(PPC64LibDirs), end(PPC64LibDirs));
++ BiarchTripleAliases.append(begin(PPC64MuslTriples), end(PPC64MuslTriples));
++ break;
++ case llvm::Triple::ppcle:
++ LibDirs.append(begin(PPCLELibDirs), end(PPCLELibDirs));
++ TripleAliases.append(begin(PPCLEMuslTriples), end(PPCLEMuslTriples));
++ BiarchLibDirs.append(begin(PPC64LELibDirs), end(PPC64LELibDirs));
++ BiarchTripleAliases.append(begin(PPC64LEMuslTriples), end(PPC64LEMuslTriples));
++ break;
++ case llvm::Triple::ppc64:
++ LibDirs.append(begin(PPC64LibDirs), end(PPC64LibDirs));
++ TripleAliases.append(begin(PPC64MuslTriples), end(PPC64MuslTriples));
++ BiarchLibDirs.append(begin(PPCLibDirs), end(PPCLibDirs));
++ BiarchTripleAliases.append(begin(PPCMuslTriples), end(PPCMuslTriples));
++ break;
++ case llvm::Triple::ppc64le:
++ LibDirs.append(begin(PPC64LELibDirs), end(PPC64LELibDirs));
++ TripleAliases.append(begin(PPC64LEMuslTriples), end(PPC64LEMuslTriples));
++ BiarchLibDirs.append(begin(PPCLELibDirs), end(PPCLELibDirs));
++ BiarchTripleAliases.append(begin(PPCLEMuslTriples), end(PPCLEMuslTriples));
++ break;
++ default:
++ break;
++ }
++ TripleAliases.push_back(TargetTriple.str());
++ if (TargetTriple.str() != BiarchTriple.str())
++ BiarchTripleAliases.push_back(BiarchTriple.str());
++ return;
++ }
++
+ // Android targets should not use GNU/Linux tools or libraries.
+ if (TargetTriple.isAndroid()) {
+ static const char *const AArch64AndroidTriples[] = {
diff --git a/srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch b/srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch
new file mode 100644
index 000000000000..4ad6412d1e6c
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch
@@ -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 =
diff --git a/srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch b/srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch
new file mode 100644
index 000000000000..21fc8003c5f1
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch
@@ -0,0 +1,48 @@
+--- a/clang/lib/Basic/Targets/PPC.h
++++ b/clang/lib/Basic/Targets/PPC.h
+@@ -415,11 +415,10 @@ public:
+ LongDoubleFormat = &llvm::APFloat::IEEEdouble();
+ } else if ((Triple.getArch() == llvm::Triple::ppc64le)) {
+ DataLayout = "e-m:e-i64:64-n32:64";
+- ABI = "elfv2";
+ } else {
+ DataLayout = "E-m:e-i64:64-n32:64";
+- ABI = "elfv1";
+ }
++ ABI = "elfv2";
+
+ if (Triple.isOSFreeBSD() || Triple.isOSOpenBSD() || Triple.isMusl()) {
+ LongDoubleWidth = LongDoubleAlign = 64;
+--- a/clang/lib/CodeGen/TargetInfo.cpp
++++ b/clang/lib/CodeGen/TargetInfo.cpp
+@@ -10927,9 +10927,9 @@ const TargetCodeGenInfo &CodeGenModule::getTargetCodeGenInfo() {
+ return SetCGInfo(new AIXTargetCodeGenInfo(Types, /*Is64Bit*/ true));
+
+ if (Triple.isOSBinFormatELF()) {
+- PPC64_SVR4_ABIInfo::ABIKind Kind = PPC64_SVR4_ABIInfo::ELFv1;
+- if (getTarget().getABI() == "elfv2")
+- Kind = PPC64_SVR4_ABIInfo::ELFv2;
++ PPC64_SVR4_ABIInfo::ABIKind Kind = PPC64_SVR4_ABIInfo::ELFv2;
++ if (getTarget().getABI() == "elfv1")
++ Kind = PPC64_SVR4_ABIInfo::ELFv1;
+ bool IsSoftFloat = CodeGenOpts.FloatABI == "soft";
+
+ return SetCGInfo(
+--- a/clang/lib/Driver/ToolChains/Clang.cpp
++++ b/clang/lib/Driver/ToolChains/Clang.cpp
+@@ -1920,14 +1920,7 @@ void Clang::AddPPCTargetArgs(const ArgList &Args,
+ const llvm::Triple &T = getToolChain().getTriple();
+ if (T.isOSBinFormatELF()) {
+ switch (getToolChain().getArch()) {
+- case llvm::Triple::ppc64: {
+- if ((T.isOSFreeBSD() && T.getOSMajorVersion() >= 13) ||
+- T.isOSOpenBSD() || T.isMusl())
+- ABIName = "elfv2";
+- else
+- ABIName = "elfv1";
+- break;
+- }
++ case llvm::Triple::ppc64:
+ case llvm::Triple::ppc64le:
+ ABIName = "elfv2";
+ break;
diff --git a/srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch b/srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch
new file mode 100644
index 000000000000..360cfc1ba7f1
--- /dev/null
+++ b/srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch
@@ -0,0 +1,35 @@
+--- 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__) || SANITIZER_RISCV64
++ defined(__hexagon__) || defined(__powerpc__) || 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_ANDROID
++#if (defined(__aarch64__) || defined(__powerpc__) || SANITIZER_RISCV64) && !SANITIZER_ANDROID
+ // GLIBC 2.20+ sys/user does not include asm/ptrace.h
+ # include <asm/ptrace.h>
+ #endif
diff --git a/srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip b/srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip
new file mode 100644
index 000000000000..d0b61c80c897
--- /dev/null
+++ b/srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip
@@ -0,0 +1,62 @@
+--- a/compiler-rt/lib/xray/xray_powerpc64.inc
++++ b/compiler-rt/lib/xray/xray_powerpc64.inc
+@@ -12,7 +12,13 @@
+
+ #include <cstdint>
+ #include <mutex>
++#ifdef __GLIBC__
+ #include <sys/platform/ppc.h>
++#else
++#include <cctype>
++#include <cstring>
++#include <cstdlib>
++#endif
+
+ #include "xray_defs.h"
+
+@@ -20,13 +26,45 @@ namespace __xray {
+
+ ALWAYS_INLINE uint64_t readTSC(uint8_t &CPU) XRAY_NEVER_INSTRUMENT {
+ CPU = 0;
++#ifdef __GLIBC__
+ return __ppc_get_timebase();
++#else
++ return __builtin_ppc_get_timebase();
++#endif
+ }
+
+ inline uint64_t getTSCFrequency() XRAY_NEVER_INSTRUMENT {
+ static std::mutex M;
+ std::lock_guard<std::mutex> Guard(M);
++#ifdef __GLIBC__
+ return __ppc_get_timebase_freq();
++#else
++ /* FIXME: a less dirty implementation? */
++ static uint64_t base;
++ if (!base) {
++ FILE *f = fopen("/proc/cpuinfo", "rb");
++ if (f) {
++ ssize_t nr;
++ /* virtually always big enough to hold the line */
++ char buf[512];
++ while (fgets(buf, sizeof(buf), f)) {
++ char *ret = strstr(buf, "timebase");
++ if (!ret) {
++ continue;
++ }
++ ret += sizeof("timebase") - 1;
++ ret = strchr(ret, ':');
++ if (!ret) {
++ continue;
++ }
++ base = strtoul(ret + 1, nullptr, 10);
++ break;
++ }
++ fclose(f);
++ }
++ }
++ return base;
++#endif
+ }
+
+ inline bool probeRequiredCPUFeatures() XRAY_NEVER_INSTRUMENT {
diff --git a/srcpkgs/llvm15/patches/libcxx-musl.patch b/srcpkgs/llvm15/patches/libcxx-musl.patch
new file mode 100644
index 000000000000..bbd31ffc2cb1
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxx-musl.patch
@@ -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,
+ typename remove_reference<decltype(errno)>::type __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
+ typename remove_reference<decltype(errno)>::type __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,
+ typename remove_reference<decltype(errno)>::type __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
+ typename remove_reference<decltype(errno)>::type __current_errno = errno;
+ if (__current_errno == 0)
+ errno = __save_errno;
diff --git a/srcpkgs/llvm15/patches/libcxx-ppc.patch b/srcpkgs/llvm15/patches/libcxx-ppc.patch
new file mode 100644
index 000000000000..7a92f8004e1c
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxx-ppc.patch
@@ -0,0 +1,22 @@
+This ensures `is_iec559` is defined correctly under all long double ABIs,
+including musl and its 64-bit long double. Also, `__ppc__` or `__ppc64__`
+is not defined on gcc.
+
+--- a/libcxx/include/limits
++++ b/libcxx/include/limits
+@@ -426,8 +426,14 @@ protected:
+ _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type signaling_NaN() _NOEXCEPT {return __builtin_nansl("");}
+ _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type denorm_min() _NOEXCEPT {return __LDBL_DENORM_MIN__;}
+
+-#if (defined(__ppc__) || defined(__ppc64__))
++#if defined(__powerpc__) || defined(__powerpc64__)
++#if (__LDBL_MAX_EXP__ > __DBL_MAX_EXP__) || (__LDBL_MANT_DIG__ == __DBL_MANT_DIG__)
++ /* IEEE 754 quadruple or double precision */
++ static _LIBCPP_CONSTEXPR const bool is_iec559 = true;
++#else
++ /* 128-bit IBM double-double */
+ static _LIBCPP_CONSTEXPR const bool is_iec559 = false;
++#endif
+ #else
+ static _LIBCPP_CONSTEXPR const bool is_iec559 = true;
+ #endif
diff --git a/srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch b/srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch
new file mode 100644
index 000000000000..70292beb2fcd
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch
@@ -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()
diff --git a/srcpkgs/llvm15/patches/libcxxabi-dl.patch b/srcpkgs/llvm15/patches/libcxxabi-dl.patch
new file mode 100644
index 000000000000..3a15f9db8c98
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxxabi-dl.patch
@@ -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 @@
+ target_link_libraries(${target} PRIVATE m)
+ endif()
+
++ if (LIBCXX_HAS_C_LIB)
++ target_link_libraries(${target} PRIVATE dl)
++ endif()
++
+ if (LIBCXX_HAS_RT_LIB)
+ target_link_libraries(${target} PRIVATE rt)
+ endif()
diff --git a/srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip b/srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip
new file mode 100644
index 000000000000..74aa7576ecf9
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip
@@ -0,0 +1,63 @@
+This fixes build at least with gcc9 which does not define `__ppc__`.
+
+--- a/libunwind/include/__libunwind_config.h
++++ b/libunwind/include/__libunwind_config.h
+@@ -49,7 +49,7 @@
+ # define _LIBUNWIND_CONTEXT_SIZE 167
+ # define _LIBUNWIND_CURSOR_SIZE 179
+ # define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_PPC64
+-# elif defined(__ppc__)
++# elif defined(__powerpc__)
+ # define _LIBUNWIND_TARGET_PPC 1
+ # define _LIBUNWIND_CONTEXT_SIZE 117
+ # define _LIBUNWIND_CURSOR_SIZE 124
+--- a/libunwind/src/UnwindRegistersRestore.S
++++ b/libunwind/src/UnwindRegistersRestore.S
+@@ -392,7 +392,7 @@ Lnovec:
+ PPC64_LR(3)
+ bctr
+
+-#elif defined(__ppc__)
++#elif defined(__powerpc__)
+
+ DEFINE_LIBUNWIND_FUNCTION(_ZN9libunwind13Registers_ppc6jumptoEv)
+ //
+--- a/libunwind/src/UnwindRegistersSave.S
++++ b/libunwind/src/UnwindRegistersSave.S
+@@ -554,7 +554,7 @@ DEFINE_LIBUNWIND_FUNCTION(__unw_getcontext)
+ blr
+
+
+-#elif defined(__ppc__)
++#elif defined(__powerpc__)
+
+ //
+ // extern int unw_getcontext(unw_context_t* thread_state)
+--- a/libunwind/src/config.h
++++ b/libunwind/src/config.h
+@@ -95,12 +95,12 @@
+ #define _LIBUNWIND_BUILD_SJLJ_APIS
+ #endif
+
+-#if defined(__i386__) || defined(__x86_64__) || defined(__ppc__) || defined(__ppc64__) || defined(__powerpc64__)
++#if defined(__i386__) || defined(__x86_64__) || defined(__powerpc__) || defined(__powerpc64__)
+ #define _LIBUNWIND_SUPPORT_FRAME_APIS
+ #endif
+
+ #if defined(__i386__) || defined(__x86_64__) || \
+- defined(__ppc__) || defined(__ppc64__) || defined(__powerpc64__) || \
++ defined(__powerpc__) || defined(__powerpc64__) || \
+ (!defined(__APPLE__) && defined(__arm__)) || \
+ (defined(__arm64__) || defined(__aarch64__)) || \
+ defined(__mips__)
+--- a/libunwind/src/libunwind.cpp
++++ b/libunwind/src/libunwind.cpp
+@@ -42,7 +42,7 @@ _LIBUNWIND_HIDDEN int __unw_init_local(unw_cursor_t *cursor,
+ # define REGISTER_KIND Registers_x86_64
+ #elif defined(__powerpc64__)
+ # define REGISTER_KIND Registers_ppc64
+-#elif defined(__ppc__)
++#elif defined(__powerpc__)
+ # define REGISTER_KIND Registers_ppc
+ #elif defined(__aarch64__)
+ # define REGISTER_KIND Registers_arm64
diff --git a/srcpkgs/llvm15/patches/lldb-musl.patch b/srcpkgs/llvm15/patches/lldb-musl.patch
new file mode 100644
index 000000000000..026c5e1e61ba
--- /dev/null
+++ b/srcpkgs/llvm15/patches/lldb-musl.patch
@@ -0,0 +1,40 @@
+--- a/lldb/source/Plugins/Process/Linux/Procfs.h
++++ b/lldb/source/Plugins/Process/Linux/Procfs.h
+@@ -10,6 +10,7 @@
+ // sys/procfs.h on Android/Linux for all supported architectures.
+
+ #include <sys/ptrace.h>
++#include <asm/ptrace.h>
+
+ #include "lldb/lldb-types.h"
+
+@@ -17,23 +18,13 @@
+
+ #include <vector>
+
+-#ifdef __ANDROID__
+-#if defined(__arm64__) || defined(__aarch64__)
+-typedef unsigned long elf_greg_t;
+-typedef elf_greg_t
+- elf_gregset_t[(sizeof(struct user_pt_regs) / sizeof(elf_greg_t))];
+-typedef struct user_fpsimd_state elf_fpregset_t;
+-#ifndef NT_FPREGSET
+-#define NT_FPREGSET NT_PRFPREG
+-#endif // NT_FPREGSET
+-#elif defined(__mips__)
+-#ifndef NT_FPREGSET
+-#define NT_FPREGSET NT_PRFPREG
+-#endif // NT_FPREGSET
+-#endif
+-#else // __ANDROID__
++#if !defined(__GLIBC__) && defined(__powerpc__)
++#define pt_regs musl_pt_regs
++#include <sys/procfs.h>
++#undef pt_regs
++#else
+ #include <sys/procfs.h>
+-#endif // __ANDROID__
++#endif
+
+ namespace lldb_private {
+ namespace process_linux {
diff --git a/srcpkgs/llvm15/patches/llvm-001-musl.patch b/srcpkgs/llvm15/patches/llvm-001-musl.patch
new file mode 100644
index 000000000000..f2a3f8d62813
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-001-musl.patch
@@ -0,0 +1,57 @@
+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;
+diff --git a/lib/Support/Unix/DynamicLibrary.inc b/lib/Support/Unix/DynamicLibrary.inc
+index a2a37996..2f86c470 100644
+--- a/llvm/lib/Support/Unix/DynamicLibrary.inc
++++ b/llvm/lib/Support/Unix/DynamicLibrary.inc
+@@ -102,7 +102,7 @@ static void *DoSearch(const char* SymbolName) {
+
+ // This macro returns the address of a well-known, explicit symbol
+ #define EXPLICIT_SYMBOL(SYM) \
+- if (!strcmp(SymbolName, #SYM)) return &SYM
++ if (!strcmp(SymbolName, #SYM)) return (void *)&SYM
+
+ // Under glibc we have a weird situation. The stderr/out/in symbols are both
+ // macros and global variables because of standards requirements. So, we
+diff --git a/utils/unittest/googletest/src/gtest.cc b/utils/unittest/googletest/src/gtest.cc
+index d882ab2e..f1fb12d0 100644
+--- a/llvm/utils/unittest/googletest/src/gtest.cc
++++ b/llvm/utils/unittest/googletest/src/gtest.cc
+@@ -128,6 +128,7 @@
+
+ #if GTEST_CAN_STREAM_RESULTS_
+ # include <arpa/inet.h> // NOLINT
++# include <sys/socket.h> // NOLINT
+ # include <netdb.h> // NOLINT
+ # include <sys/socket.h> // NOLINT
+ # include <sys/types.h> // NOLINT
diff --git a/srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch b/srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch
new file mode 100644
index 000000000000..0071d964bd37
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch
@@ -0,0 +1,30 @@
+This patches LLVM to use ELFv2 on ppc64 unconditionally unless overridden. We
+need this because unlike most distros we use ELFv2 for both glibc and musl
+on big endian ppc64.
+
+diff --git a/lib/Target/PowerPC/PPCTargetMachine.cpp b/lib/Target/PowerPC/PPCTargetMachine.cpp
+index 0634833e..b7cbc2e7 100644
+--- a/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp
++++ b/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp
+@@ -222,9 +222,8 @@ static PPCTargetMachine::PPCABI computeTargetABI(const Triple &TT,
+
+ switch (TT.getArch()) {
+ case Triple::ppc64le:
+- return PPCTargetMachine::PPC_ABI_ELFv2;
+ case Triple::ppc64:
+- return PPCTargetMachine::PPC_ABI_ELFv1;
++ return PPCTargetMachine::PPC_ABI_ELFv2;
+ default:
+ return PPCTargetMachine::PPC_ABI_UNKNOWN;
+ }
+diff --git a/test/CodeGen/PowerPC/ppc64-elf-abi.ll b/test/CodeGen/PowerPC/ppc64-elf-abi.ll
+index 8b1cf6b5..296a2afa 100644
+--- a/llvm/test/CodeGen/PowerPC/ppc64-elf-abi.ll
++++ b/llvm/test/CodeGen/PowerPC/ppc64-elf-abi.ll
+@@ -1,4 +1,5 @@
+-; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv1
++; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv2
++; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-musl < %s | FileCheck %s -check-prefix=CHECK-ELFv2
+ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu -target-abi elfv1 < %s | FileCheck %s -check-prefix=CHECK-ELFv1
+ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu -target-abi elfv2 < %s | FileCheck %s -check-prefix=CHECK-ELFv2
+ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv2
diff --git a/srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch b/srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch
new file mode 100644
index 000000000000..b5d15974375d
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch
@@ -0,0 +1,11 @@
+--- a/llvm/lib/Target/PowerPC/PPCSubtarget.cpp
++++ b/llvm/lib/Target/PowerPC/PPCSubtarget.cpp
+@@ -165,7 +165,7 @@ void PPCSubtarget::initSubtargetFeatures(StringRef CPU, StringRef FS) {
+
+ if ((TargetTriple.isOSFreeBSD() && TargetTriple.getOSMajorVersion() >= 13) ||
+ TargetTriple.isOSNetBSD() || TargetTriple.isOSOpenBSD() ||
+- TargetTriple.isMusl())
++ isTargetLinux())
+ SecurePlt = true;
+
+ if (HasSPE && IsPPC64)
diff --git a/srcpkgs/llvm15/patches/llvm-004-override-opt.patch b/srcpkgs/llvm15/patches/llvm-004-override-opt.patch
new file mode 100644
index 000000000000..51d0e4b31b32
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-004-override-opt.patch
@@ -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)
diff --git a/srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch b/srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch
new file mode 100644
index 000000000000..d332687b9d92
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch
@@ -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);
diff --git a/srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch b/srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch
new file mode 100644
index 000000000000..a00abd216665
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch
@@ -0,0 +1,25 @@
+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__) || defined (__ppc__) || \
+- defined(_POWER) || defined(_ARCH_PPC))
++ defined(_POWER) || defined(_ARCH_PPC) || (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
diff --git a/srcpkgs/llvm15/template b/srcpkgs/llvm15/template
new file mode 100644
index 000000000000..7c08c890d8c3
--- /dev/null
+++ b/srcpkgs/llvm15/template
@@ -0,0 +1,434 @@
+# Template file for 'llvm15'
+pkgname=llvm15
+version=15.0.5
+revision=1
+build_wrksrc=llvm
+build_style=cmake
+configure_args="
+ -DCMAKE_BUILD_TYPE=Release -Wno-dev
+ -DENABLE_LINKER_BUILD_ID=YES
+ -DLLDB_USE_SYSTEM_SIX=YES
+ -DLIBCXX_CXX_ABI=libcxxabi
+ -DLIBCXX_ENABLE_STATIC_ABI_LIBRARY=YES
+ -DLIBCXXABI_USE_LLVM_UNWINDER=YES
+ -DLIBCXXABI_ENABLE_STATIC_UNWINDER=YES
+ -DLIBOMP_ENABLE_SHARED=YES
+ -DLIBOMP_INSTALL_ALIASES=NO
+ -DLLVM_INCLUDE_DOCS=YES
+ -DLLVM_BUILD_DOCS=YES
+ -DLLVM_ENABLE_SPHINX=YES
+ -DSPHINX_WARNINGS_AS_ERRORS=NO
+ -DLLVM_INSTALL_UTILS=YES
+ -DLLVM_BUILD_LLVM_DYLIB=YES
+ -DLLVM_LINK_LLVM_DYLIB=YES
+ -DLLVM_ENABLE_RTTI=YES
+ -DLLVM_ENABLE_FFI=YES
+ -DLLVM_BINUTILS_INCDIR=/usr/include"
+hostmakedepends="perl python3 zlib-devel libffi-devel swig python3-Sphinx
+ python3-recommonmark python3-sphinx-automodapi"
+makedepends="python3-devel zlib-devel elfutils-devel libffi-devel libedit-devel
+ libxml2-devel binutils-devel libatomic-devel"
+depends="libllvm15>=${version}_${revision}"
+short_desc="Low Level Virtual Machine"
+maintainer="Orphaned <orphan@voidlinux.org>"
+license="Apache-2.0"
+homepage="https://www.llvm.org"
+distfiles="https://github.com/llvm/llvm-project/releases/download/llvmorg-${version}/llvm-project-${version}.src.tar.xz"
+checksum=9c4278a6b8884eb7f4ae7dfe3c8e5445019824885e47cfdf1392563c47316fd6
+lib32disabled=yes
+python_version=3
+
+if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
+ configure_args+=" -DLIBCXX_HAS_MUSL_LIBC=YES"
+ makedepends+=" libexecinfo-devel"
+ depends+=" libexecinfo-devel"
+fi
+
+# "operand out of range" assembler failures
+case "$XBPS_TARGET_MACHINE" in
+ ppc64*) ;;
+ ppc*) configure_args+=" -DCLANG_ENABLE_CLANGD=OFF" ;;
+esac
+
+_enabled_projects="clang;clang-tools-extra;compiler-rt;libcxx;libcxxabi;libunwind;lld"
+
+_lldb_enable=yes
+_libomp_enable=no
+
+case "$XBPS_TARGET_MACHINE" in
+ ppc64le*) ;;
+ ppc*|i686*) _lldb_enable=no ;;
+esac
+
+case "$XBPS_TARGET_MACHINE" in
+ x86_64*|aarch64*|ppc64*) _libomp_enable=yes;;
+esac
+
+subpackages="clang-tools-extra"
+
+# must go before clang
+if [ "$_libomp_enable" = "yes" ]; then
+ _enabled_projects+=";openmp"
+ subpackages+=" libomp libomp-devel"
+ # because of cmake nonsense referencing libomptarget.so.*
+ depends+=" libomp>=${version}_${revision}"
+fi
+
+subpackages+=" clang clang-analyzer libclang libclang-cpp
+ llvm-libunwind llvm-libunwind-devel libcxx libcxx-devel
+ libcxxabi libcxxabi-devel libllvm15"
+
+if [ "$_lldb_enable" = "yes" ]; then
+ # XXX fails to cross compile due to python
+ _enabled_projects+=";lldb"
+ subpackages+=" lldb lldb-devel"
+fi
+
+subpackages+=" lld lld-devel"
+
+configure_args+=" -DLLVM_ENABLE_PROJECTS=${_enabled_projects}"
+
+post_patch() {
+ if [ "$_lldb_enable" = "yes" ]; then
+ if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
+ vsed -i 's|__ptrace_request|int|g' \
+ ${wrksrc}/lldb/source/Plugins/Process/Linux/NativeProcessLinux.cpp
+ fi
+ # disable docs for lldb as they fail to generate
+ vsed -i '/add_subdirectory(docs)/d' \
+ ${wrksrc}/lldb/CMakeLists.txt
+ fi
+
+ # update config.guess for better platform detection
+ cp $XBPS_COMMONDIR/environment/configure/automake/config.guess \
+ ${wrksrc}/llvm/cmake
+
+ # fix linker failures on some archs
+ vsed -i 's,check_library_exists(gcc_s .*,set(LIBCXXABI_HAS_GCC_S_LIB ON),' \
+ ${wrksrc}/libcxxabi/cmake/config-ix.cmake
+ vsed -i 's,check_library_exists(gcc .*,set(LIBCXXABI_HAS_GCC_LIB ON),' \
+ ${wrksrc}/libcxxabi/cmake/config-ix.cmake
+
+ # need libssp_nonshared on some musl platforms (because of nodefaultlibs)
+ case "$XBPS_TARGET_MACHINE" in
+ ppc64*) ;;
+ ppc*-musl|i686-musl|mips*-musl)
+ vsed -i 's,^# Setup flags.$,add_library_flags(ssp_nonshared),' \
+ ${wrksrc}/libunwind/src/CMakeLists.txt
+ vsed -i 's,^# Setup flags.$,add_library_flags(ssp_nonshared),' \
+ ${wrksrc}/libcxxabi/src/CMakeLists.txt
+ vsed -i 's,#ssp,,' ${wrksrc}/libcxx/CMakeLists.txt
+ ;;
+ esac
+
+ case "$XBPS_TARGET_MACHINE" in
+ x86_64-musl) # some sanitizer currently only on x86_64 stuff needs backtrace
+ vsed -i 's,# Set common link flags.,list(APPEND SANITIZER_COMMON_LINK_LIBS execinfo),' \
+ ${wrksrc}/compiler-rt/CMakeLists.txt
+ ;;
+ arm*-musl|i686-musl) # sanitizer code is broken since it duplicates some libc bits
+ vsed -i 's/set(COMPILER_RT_HAS_SANITIZER_COMMON TRUE)/set(COMPILER_RT_HAS_SANITIZER_COMMON FALSE)/' \
+ ${wrksrc}/compiler-rt/cmake/config-ix.cmake
+ ;;
+ esac
+}
+
+pre_configure() {
+ local triplet
+
+ # Vastly reduce size of debugging symbols:
+ CFLAGS=${CFLAGS/ -g/ -g1}
+ CXXFLAGS=${CXXFLAGS/ -g/ -g1}
+
+ # since gcc9, the build likes to blow up for ppc32 apparently because
+ # of clang being too large for a 24-bit relative call to the PLT, so
+ # optimize for size instead
+ case "$XBPS_TARGET_MACHINE" in
+ ppc64*) ;;
+ mips*-musl|ppc*) configure_args+=" -DVOID_CXX_OPT_FLAGS=-Os" ;;
+ esac
+
+ if [ "$CROSS_BUILD" ]; then
+ msg_normal "Building host tblgen\n"
+ mkdir -p build/HOST
+ cd build/HOST
+ CC="$BUILD_CC" CXX="$BUILD_CXX" CFLAGS="$BUILD_CFLAGS" \
+ CXXFLAGS="$BUILD_CXXFLAGS" LDFLAGS="$BUILD_LDFLAGS" \
+ cmake ../.. -DCMAKE_BUILD_TYPE=Release \
+ -DLLVM_ENABLE_PROJECTS=${_enabled_projects}
+ make ${makejobs} -C utils/TableGen
+ make ${makejobs} -C tools/clang/utils/TableGen
+ [ "$_lldb_enable" = "yes" ] && make ${makejobs} -C tools/lldb/utils/TableGen
+ configure_args+=" -DLLVM_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/llvm-tblgen"
+ configure_args+=" -DCLANG_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/clang-tblgen"
+ [ "$_lldb_enable" = "yes" ] && configure_args+=" -DLLDB_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/lldb-tblgen"
+ cd ../..
+ fi
+
+ case "$XBPS_TARGET_MACHINE" in
+ i686*) _arch="X86";;
+ x86_64*) _arch="X86";;
+ armv5*) _arch="Armv5te";;
+ armv6*) _arch="Armv6";;
+ armv7*) _arch="Armv7";;
+ aarch64*) _arch="AArch64";;
+ mips*) _arch="Mips";;
+ ppc*) _arch="PowerPC";;
+ riscv64*) _arch="RISCV64";;
+ esac
+
+ triplet=${XBPS_CROSS_TRIPLET:-$XBPS_TRIPLET}
+
+ configure_args+=" -DLLVM_TARGET_ARCH=${_arch}"
+ configure_args+=" -DLLVM_HOST_TRIPLE=${triplet}"
+ configure_args+=" -DLLVM_DEFAULT_TARGET_TRIPLE=${triplet}"
+}
+
+do_install() {
+ cd build
+ cmake -DCMAKE_INSTALL_PREFIX=${DESTDIR}/usr -P cmake_install.cmake
+
+ # Required for multilib.
+ if [ "$XBPS_TARGET_MACHINE" = "x86_64" ]; then
+ for _header in llvm-config; do
+ mv ${DESTDIR}/usr/include/llvm/Config/${_header}{,-64}.h
+ vinstall ${FILESDIR}/llvm-Config-${_header}.h 644 \
+ usr/include/llvm/Config ${_header}.h
+ done
+ fi
+
+ # Remove llvm-config-host in cross builds.
+ if [ "$CROSS_BUILD" ]; then
+ rm -f ${DESTDIR}/usr/bin/llvm-config-host
+ fi
+
+ # Install libcxxabi headers
+ vinstall ${wrksrc}/libcxxabi/include/__cxxabi_config.h 644 usr/include
+ vinstall ${wrksrc}/libcxxabi/include/cxxabi.h 644 usr/include
+
+ # Install libunwind headers
+ vinstall ${wrksrc}/libunwind/include/__libunwind_config.h 644 usr/include
+ vinstall ${wrksrc}/libunwind/include/libunwind.h 644 usr/include
+ vinstall ${wrksrc}/libunwind/include/unwind.h 644 usr/include
+ vinstall ${wrksrc}/libunwind/include/mach-o/compact_unwind_encoding.h \
+ 644 usr/include/mach-o
+}
+
+clang-analyzer_package() {
+ pycompile_dirs="usr/share/scan-view"
+ depends="clang-${version}_${revision} python3 perl"
+ short_desc+=" - A source code analysis framework"
+ homepage="https://clang-analyzer.llvm.org/"
+ pkg_install() {
+ vmove "usr/bin/scan-*"
+ vmove "usr/libexec/*analyzer"
+ vmove "usr/share/scan-*"
+ vmove usr/share/man/man1/scan-build.1
+ }
+}
+
+clang-tools-extra_package() {
+ lib32disabled=yes
+ depends="clang-${version}_${revision} python3"
+ short_desc+=" - Extra Clang tools"
+ homepage="https://clang.llvm.org/extra/"
+ pkg_install() {
+ vmove usr/bin/clang-apply-replacements
+ vmove usr/bin/clang-doc
+ vmove usr/bin/clang-include-fixer
+ vmove usr/bin/clang-query
+ vmove usr/bin/clang-rename
+ vmove usr/bin/clang-reorder-fields
+ vmove usr/bin/clang-tidy
+ vmove usr/bin/clangd
+ vmove usr/bin/diagtool
+ vmove usr/bin/find-all-symbols
+ vmove usr/bin/hmaptool
+ vmove usr/bin/modularize
+ vmove usr/bin/pp-trace
+ vmove usr/bin/sancov
+ vmove usr/include/clang-tidy
+ vmove "usr/lib/libclangApplyReplacements*"
+ vmove "usr/lib/libclangDoc*"
+ vmove "usr/lib/libclangIncludeFixer*"
+ vmove "usr/lib/libclangReorderFields*"
+ vmove "usr/lib/libclangQuery*"
+ vmove "usr/lib/libclangTidy*"
+ vmove "usr/share/clang/*include-fixer*"
+ vmove "usr/share/clang/*rename*"
+ vmove "usr/share/clang/*tidy*"
+ vmove usr/share/doc/LLVM/clang-tools
+ vmove usr/share/man/man1/diagtool.1
+ vmove usr/share/man/man1/extraclangtools.1
+ }
+}
+
+clang_package() {
+ lib32disabled=yes
+ depends="libstdc++-devel libgcc-devel binutils ${XBPS_TARGET_LIBC}-devel
+ libclang-${version}_${revision}"
+ short_desc+=" - C language family frontend"
+ homepage="https://clang.llvm.org/"
+ pkg_install() {
+ vmove "usr/bin/*clang*"
+ vmove usr/bin/c-index-test
+ vmove usr/include/clang
+ vmove usr/include/clang-c
+ vmove usr/lib/clang
+ vmove usr/lib/cmake/clang
+ vmove "usr/lib/libclang*.a"
+ vmove "usr/lib/libclang*.so"
+ vmove usr/share/clang
+ vmove usr/share/doc/LLVM/clang
+ vmove usr/share/man/man1/clang.1
+ }
+}
+
+libclang_package() {
+ short_desc+=" - C frontend runtime library"
+ pkg_install() {
+ vmove "usr/lib/libclang.so.*"
+ }
+}
+
+libclang-cpp_package() {
+ short_desc+=" - C frontend runtime library (C++ interface)"
+ pkg_install() {
+ vmove "usr/lib/libclang-cpp.so.*"
+ }
+}
+
+lld_package() {
+ lib32disabled=yes
+ short_desc+=" - linker"
+ homepage="https://lld.llvm.org"
+ pkg_install() {
+ vmove usr/bin/ld.lld*
+ vmove usr/bin/ld64.lld*
+ vmove usr/bin/lld*
+ vmove usr/bin/wasm-ld
+ vmove usr/share/doc/LLVM/lld
+ }
+}
+
+lld-devel_package() {
+ lib32disabled=yes
+ short_desc+=" - linker - development files"
+ homepage="https://lld.llvm.org"
+ depends="lld>=${version}_${revision}"
+ pkg_install() {
+ vmove usr/include/lld
+ vmove usr/lib/cmake/lld
+ vmove "usr/lib/liblld*a"
+ }
+}
+
+lldb_package() {
+ lib32disabled=yes
+ depends+=" python3-six"
+ short_desc+=" - LLDB debugger"
+ homepage="https://lldb.llvm.org/"
+ pkg_install() {
+ vmove usr/bin/*lldb*
+ vmove usr/lib/liblldb*so.*
+ vmove /usr/lib/python*
+ }
+}
+
+lldb-devel_package() {
+ lib32disabled=yes
+ depends="lldb>=${version}_${revision}"
+ short_desc+=" - LLDB debugger - development files"
+ pkg_install() {
+ vmove usr/include/lldb
+ vmove "usr/lib/liblldb*.so"
+ }
+}
+
+llvm-libunwind_package() {
+ short_desc+=" - libunwind"
+ pkg_install() {
+ vmove "usr/lib/${XBPS_TRIPLET}/libunwind.so.*"
+ }
+}
+
+llvm-libunwind-devel_package() {
+ short_desc+=" - libunwind - development files"
+ depends="llvm-libunwind>=${version}_${revision}"
+ conflicts="libunwind-devel>=0"
+ pkg_install() {
+ vmove usr/include/mach-o
+ vmove "usr/include/*unwind*"
+ vmove "usr/lib/${XBPS_TRIPLET}/libunwind.a"
+ vmove "usr/lib/${XBPS_TRIPLET}/libunwind.so"
+ vmove usr/share/doc/LLVM/libunwind
+ }
+}
+
+libcxxabi_package() {
+ short_desc+=" - low level support for libc++"
+ pkg_install() {
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++abi.so.*"
+ }
+}
+
+libcxxabi-devel_package() {
+ short_desc+=" - low level support for libc++ - development files"
+ depends="libcxxabi>=${version}_${revision}"
+ pkg_install() {
+ vmove "usr/include/*cxxabi*"
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++abi.so"
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++abi.a"
+ }
+}
+
+libcxx_package() {
+ short_desc+=" - C++ standard library"
+ pkg_install() {
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++.so.*"
+ }
+}
+
+libcxx-devel_package() {
+ short_desc+=" - C++ standard library - development files"
+ depends="libcxx>=${version}_${revision}"
+ pkg_install() {
+ vmove usr/include/c++
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++.so"
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++.a"
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++experimental.a"
+ vmove usr/share/doc/LLVM/libcxx
+ }
+}
+
+libomp_package() {
+ short_desc+=" - Clang OpenMP support library"
+ pkg_install() {
+ vmove usr/lib/libarcher.so
+ vmove usr/lib/libomp.so
+ vmove usr/lib/libompd.so
+ vmove "usr/lib/libomptarget.rtl.*.so"
+ vmove "usr/lib/libomp*.so.*"
+ }
+}
+
+libomp-devel_package() {
+ short_desc+=" - Clang OpenMP support library - development files"
+ depends="libomp>=${version}_${revision}"
+ pkg_install() {
+ vmove "usr/include/omp*.h"
+ vmove "usr/lib/clang/${version}/include/omp*.h"
+ vmove "usr/lib/libarcher*"
+ vmove "usr/lib/libomp*.so"
+ vmove usr/lib/cmake/openmp
+ vmove usr/share/doc/LLVM/openmp
+ vmove usr/share/man/man1/llvmopenmp.1
+ }
+}
+
+libllvm15_package() {
+ short_desc+=" - runtime library"
+ pkg_install() {
+ vmove "usr/lib/libLLVM-*.so*"
+ }
+}
diff --git a/srcpkgs/llvm15/update b/srcpkgs/llvm15/update
new file mode 100644
index 000000000000..e95cf26b3586
--- /dev/null
+++ b/srcpkgs/llvm15/update
@@ -0,0 +1,3 @@
+site="https://github.com/llvm/llvm-project/releases"
+pattern="llvmorg-\K(\d+.){2}\d+(-rc\d+)?"
+ignore="*-rc*"
^ permalink raw reply [flat|nested] 96+ messages in thread
* Re: [PR PATCH] [Updated] [WIP] LLVM 15
2022-11-28 15:30 [PR PATCH] [WIP] LLVM 15 tranzystorek-io
` (4 preceding siblings ...)
2022-11-29 0:31 ` tranzystorek-io
@ 2022-12-05 8:05 ` tranzystorek-io
2022-12-05 8:17 ` tranzystorek-io
` (88 subsequent siblings)
94 siblings, 0 replies; 96+ messages in thread
From: tranzystorek-io @ 2022-12-05 8:05 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 502 bytes --]
There is an updated pull request by tranzystorek-io against master on the void-packages repository
https://github.com/tranzystorek-io/void-packages llvm15
https://github.com/void-linux/void-packages/pull/40821
[WIP] LLVM 15
[ci skip]
TODO:
- [ ] Adjust patches marked as `.patch.skip`
- [ ] Make libomp a shlib (change so file name and install a symlink)
- [ ] Avoid creating triplet dirs under /usr/
A patch file from https://github.com/void-linux/void-packages/pull/40821.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-llvm15-40821.patch --]
[-- Type: text/x-diff, Size: 183423 bytes --]
From 023ff7c6baa32294095d7ae7b21421424bfd9021 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sat, 5 Nov 2022 11:33:11 -0700
Subject: [PATCH 01/38] binutils: update to 2.39.
---
...e3f3bd6d460491f8c8d032a7fea88d5ec8ff.patch | 60 -----------------
.../fix-libcollector-without-java.patch | 53 +++++++++++++++
.../patches/ppc64-revert-gnu-attributes.patch | 66 +++++--------------
srcpkgs/binutils/template | 25 ++++---
4 files changed, 87 insertions(+), 117 deletions(-)
delete mode 100644 srcpkgs/binutils/patches/1767e3f3bd6d460491f8c8d032a7fea88d5ec8ff.patch
create mode 100644 srcpkgs/binutils/patches/fix-libcollector-without-java.patch
diff --git a/srcpkgs/binutils/patches/1767e3f3bd6d460491f8c8d032a7fea88d5ec8ff.patch b/srcpkgs/binutils/patches/1767e3f3bd6d460491f8c8d032a7fea88d5ec8ff.patch
deleted file mode 100644
index a55432d83cff..000000000000
--- a/srcpkgs/binutils/patches/1767e3f3bd6d460491f8c8d032a7fea88d5ec8ff.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-From 1767e3f3bd6d460491f8c8d032a7fea88d5ec8ff Mon Sep 17 00:00:00 2001
-From: "H.J. Lu" <hjl.tools@gmail.com>
-Date: Mon, 16 Nov 2020 06:37:53 -0800
-Subject: [PATCH] elf: Set rel_from_abs to 1 for __ehdr_start
-
-bfdlink.h has
-
- /* Symbol will be converted from absolute to section-relative. Set for
- symbols defined by a script from "dot" (also SEGMENT_START or ORIGIN)
- outside of an output section statement. */
- unsigned int rel_from_abs : 1;
-
-linker.c has
-
-.{* Return TRUE if the symbol described by a linker hash entry H
-. is going to be absolute. Linker-script defined symbols can be
-. converted from absolute to section-relative ones late in the
-. link. Use this macro to correctly determine whether the symbol
-. will actually end up absolute in output. *}
-.#define bfd_is_abs_symbol(H) \
-. (((H)->type == bfd_link_hash_defined \
-. || (H)->type == bfd_link_hash_defweak) \
-. && bfd_is_abs_section ((H)->u.def.section) \
-. && !(H)->rel_from_abs)
-.
-
-Set rel_from_abs to 1 for __ehdr_start which will be converted from
-absolute to section-relative in assign_file_positions_for_load_sections.
-
- PR ld/26869
- * ldelf.c (ldelf_before_allocation): Set rel_from_abs to 1 for
- __ehdr_start.
- * testsuite/ld-i386/i386.exp: Run pr26869.
- * testsuite/ld-i386/pr26869.d: New file.
- * testsuite/ld-i386/pr26869.s: Likewise.
-
-(cherry picked from commit cbd5b99cce073273f668b154d4514e8e7e7ccc51)
----
- ld/ChangeLog | 9 +++++++++
- ld/ldelf.c | 2 ++
- ld/testsuite/ld-i386/i386.exp | 1 +
- ld/testsuite/ld-i386/pr26869.d | 14 ++++++++++++++
- ld/testsuite/ld-i386/pr26869.s | 3 +++
- 5 files changed, 29 insertions(+)
- create mode 100644 ld/testsuite/ld-i386/pr26869.d
- create mode 100644 ld/testsuite/ld-i386/pr26869.s
-
-diff --git a/ld/ldelf.c b/ld/ldelf.c
-index bada3ade2d7..831d032fe56 100644
---- a/ld/ldelf.c
-+++ b/ld/ldelf.c
-@@ -1589,6 +1589,8 @@ ldelf_before_allocation (char *audit, char *depaudit,
- (char *) &ehdr_start->u + sizeof ehdr_start->u.def.next,
- sizeof ehdr_start_save_u);
- ehdr_start->type = bfd_link_hash_defined;
-+ /* It will be converted to section-relative later. */
-+ ehdr_start->rel_from_abs = 1;
- ehdr_start->u.def.section = bfd_abs_section_ptr;
- ehdr_start->u.def.value = 0;
- }
diff --git a/srcpkgs/binutils/patches/fix-libcollector-without-java.patch b/srcpkgs/binutils/patches/fix-libcollector-without-java.patch
new file mode 100644
index 000000000000..54384875f358
--- /dev/null
+++ b/srcpkgs/binutils/patches/fix-libcollector-without-java.patch
@@ -0,0 +1,53 @@
+From 49ddd814ac1071af7c4f45d5f8398b91862f2c7f Mon Sep 17 00:00:00 2001
+From: Vladimir Mezentsev <vladimir.mezentsev@oracle.com>
+Date: Wed, 17 Aug 2022 19:55:23 -0700
+Subject: [PATCH] gprofng: fix bug 29479 Collection fails when built without
+ java support
+
+gprofng/ChangeLog
+2022-08-17 Vladimir Mezentsev <vladimir.mezentsev@oracle.com>
+
+ PR gprofng/29479
+ * libcollector/collector.c: Add #if defined(GPROFNG_JAVA_PROFILING) for
+ java specific code.
+ * libcollector/unwind.c: Likewise.
+---
+ gprofng/libcollector/collector.c | 2 ++
+ gprofng/libcollector/unwind.c | 2 ++
+ 2 files changed, 4 insertions(+)
+
+diff --git a/gprofng/libcollector/collector.c b/gprofng/libcollector/collector.c
+index 93c9d3330de5..ceff2c1caccb 100644
+--- a/gprofng/libcollector/collector.c
++++ b/gprofng/libcollector/collector.c
+@@ -913,8 +913,10 @@ __collector_open_experiment (const char *exp, const char *params, sp_origin_t or
+ __collector_ext_unwind_key_init (1, NULL);
+
+ /* start java attach if suitable */
++#if defined(GPROFNG_JAVA_PROFILING)
+ if (exp_origin == SP_ORIGIN_DBX_ATTACH)
+ __collector_jprofile_start_attach ();
++#endif
+ start_sec_time = CALL_UTIL (time)(NULL);
+ __collector_start_time = collector_interface.getHiResTime ();
+ TprintfT (DBG_LT0, "\t__collector_open_experiment; resetting start_time\n");
+diff --git a/gprofng/libcollector/unwind.c b/gprofng/libcollector/unwind.c
+index 119243788020..f8e11823c81e 100644
+--- a/gprofng/libcollector/unwind.c
++++ b/gprofng/libcollector/unwind.c
+@@ -557,6 +557,7 @@ __collector_get_frame_info (hrtime_t ts, int mode, void *arg)
+ int size = max_frame_size;
+
+ #define MIN(a,b) ((a)<(b)?(a):(b))
++#if defined(GPROFNG_JAVA_PROFILING)
+ /* get Java info */
+ if (__collector_java_mode && __collector_java_asyncgetcalltrace_loaded && context && !pseudo_context)
+ {
+@@ -569,6 +570,7 @@ __collector_get_frame_info (hrtime_t ts, int mode, void *arg)
+ size -= sz;
+ }
+ }
++#endif
+
+ /* get native stack */
+ if (context)
diff --git a/srcpkgs/binutils/patches/ppc64-revert-gnu-attributes.patch b/srcpkgs/binutils/patches/ppc64-revert-gnu-attributes.patch
index 5de937f4fcce..1c208dd8955c 100644
--- a/srcpkgs/binutils/patches/ppc64-revert-gnu-attributes.patch
+++ b/srcpkgs/binutils/patches/ppc64-revert-gnu-attributes.patch
@@ -1,39 +1,24 @@
-From b1faf99f3e546df2cd302bb1ad36a2078224fe8b Mon Sep 17 00:00:00 2001
+From bbf05b742fde518fb97c789b043fe0d3aaf549f0 Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@dereferenced.org>
-Date: Fri, 30 Oct 2020 16:59:48 -0600
+Date: Tue, 21 Sep 2021 14:53:13 +0000
Subject: [PATCH] Revert "PR25882, .gnu.attributes are not checked for shared
libraries"
+This revert is needed to avoid wrongly tagging objects with the incompatible
+IBM long double ABI, which is not supported by musl and will result in
+linking errors if used.
+
This reverts commit a8acd6eeb6dc2cc5460ece90f90ebe36b56b20ba.
---
- bfd/ChangeLog | 6 ------
- bfd/elf32-tic6x.c | 3 ---
- ld/ChangeLog | 6 ------
- ld/ldlang.c | 9 ++++-----
- 4 files changed, 4 insertions(+), 20 deletions(-)
+ bfd/elf32-tic6x.c | 3 ---
+ ld/ldlang.c | 10 ++++------
+ 2 files changed, 4 insertions(+), 9 deletions(-)
-diff --git a/bfd/ChangeLog b/bfd/ChangeLog
-index 9fac12538a..b5461494e8 100644
---- a/bfd/ChangeLog
-+++ b/bfd/ChangeLog
-@@ -1422,12 +1422,6 @@
- accessing root.u.def of symbols. Also check root.u.def.section
- is non-NULL. Reverse tests so as to make the logic positive.
-
--2020-05-01 Alan Modra <amodra@gmail.com>
--
-- PR 25882
-- * elf32-tic6x.c (elf32_tic6x_merge_attributes): Don't transfer
-- Tag_ABI_PIC or Tag_ABI_PID from dynamic objects to the output.
--
- 2020-05-01 Alan Modra <amodra@gmail.com>
-
- PR 25882
diff --git a/bfd/elf32-tic6x.c b/bfd/elf32-tic6x.c
-index b8b916bfd3..91bb6a10b1 100644
+index 5754f3cb860..3ad1d612749 100644
--- a/bfd/elf32-tic6x.c
+++ b/bfd/elf32-tic6x.c
-@@ -3748,9 +3748,6 @@ elf32_tic6x_merge_attributes (bfd *ibfd, struct bfd_link_info *info)
+@@ -3735,9 +3735,6 @@ elf32_tic6x_merge_attributes (bfd *ibfd, struct bfd_link_info *info)
case Tag_ABI_PIC:
case Tag_ABI_PID:
@@ -43,36 +28,20 @@ index b8b916bfd3..91bb6a10b1 100644
if (out_attr[i].i > in_attr[i].i)
out_attr[i].i = in_attr[i].i;
break;
-diff --git a/ld/ChangeLog b/ld/ChangeLog
-index 4eec7d2977..b93452f70c 100644
---- a/ld/ChangeLog
-+++ b/ld/ChangeLog
-@@ -1319,12 +1319,6 @@
- * testsuite/ld-aarch64/farcall-group.d: New test driver.
- * testsuite/ld-aarch64/aarch64-elf.exp: Run the new test.
-
--2020-05-01 Alan Modra <amodra@gmail.com>
--
-- PR 25882
-- * ldlang.c (lang_check): Call bfd_merge_private_bfd_data for
-- shared libraries.
--
- 2020-05-01 Alan Modra <amodra@gmail.com>
-
- * po/BLD-POTFILES.in: Regenerate.
diff --git a/ld/ldlang.c b/ld/ldlang.c
-index 9977195074..173d8ec349 100644
+index 37b64c89ee1..f13beaef9d9 100644
--- a/ld/ldlang.c
+++ b/ld/ldlang.c
-@@ -6972,12 +6972,11 @@ lang_check (void)
+@@ -7071,13 +7071,11 @@ lang_check (void)
bfd_printable_name (input_bfd), input_bfd,
bfd_printable_name (link_info.output_bfd));
}
-
- /* If the input bfd has no contents, it shouldn't set the
- private data of the output bfd. */
-- else if ((input_bfd->flags & DYNAMIC) != 0
-- || bfd_count_sections (input_bfd) != 0)
+- else if (!file->flags.just_syms
+- && ((input_bfd->flags & DYNAMIC) != 0
+- || bfd_count_sections (input_bfd) != 0))
+ else if (bfd_count_sections (input_bfd))
{
+ /* If the input bfd has no contents, it shouldn't set the
@@ -82,5 +51,4 @@ index 9977195074..173d8ec349 100644
/* If we aren't supposed to warn about mismatched input
--
-2.29.2
-
+2.33.0
diff --git a/srcpkgs/binutils/template b/srcpkgs/binutils/template
index 6270f8618c87..c355a5fc8016 100644
--- a/srcpkgs/binutils/template
+++ b/srcpkgs/binutils/template
@@ -1,19 +1,20 @@
# Template file for 'binutils'
pkgname=binutils
-version=2.35.1
-revision=4
+version=2.39
+revision=1
bootstrap=yes
+hostmakedepends="pkgconf"
makedepends="zlib-devel"
short_desc="GNU binary utilities"
maintainer="Enno Boland <gottox@voidlinux.org>"
license="GPL-3.0-or-later"
homepage="http://www.gnu.org/software/binutils/"
distfiles="${GNU_SITE}/$pkgname/$pkgname-$version.tar.xz"
-checksum=3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
+checksum=645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
subpackages="binutils-doc"
if [ "$CHROOT_READY" ]; then
- hostmakedepends="flex perl texinfo"
+ hostmakedepends+=" flex perl texinfo"
makedepends+=" elfutils-devel"
checkdepends="bc"
depends="binutils-doc"
@@ -35,15 +36,21 @@ do_configure() {
local conf
if [ "$CHROOT_READY" ]; then
- conf+=" --with-debuginfod"
+ conf+=" --with-debuginfod --enable-shared"
else
- conf+=" --without-debuginfod --disable-install-libbfd"
+ conf+=" --without-debuginfod --disable-shared --disable-install-libbfd"
fi
if [ "$CROSS_BUILD" ]; then
# we don't want --with-sysroot=${XBPS_CROSS_BASE} like gnu-configure
conf+=" --host=${XBPS_CROSS_TRIPLET} --with-build-sysroot=${XBPS_CROSS_BASE}"
fi
+ # gprofng currently only supports x86 and aarch64 glibc.
+ case "$XBPS_TARGET_MACHINE" in
+ x86_64|i386|aarch64) conf+=" --enable-gprofng" ;;
+ *) conf+=" --disable-gprofng" ;;
+ esac
+
case "$XBPS_TARGET_MACHINE" in
ppc*)
conf+=" --enable-secureplt"
@@ -76,13 +83,14 @@ do_configure() {
--libdir=/usr/lib \
--mandir=/usr/share/man \
--infodir=/usr/share/info \
+ --sysconfdir=/etc \
--disable-werror \
- --disable-shared \
--disable-nls \
--enable-threads \
--enable-plugins \
--enable-relro \
--enable-gold \
+ --enable-new-dtags \
--enable-deterministic-archives \
--enable-64-bit-bfd \
--enable-ld=default \
@@ -142,7 +150,8 @@ binutils-devel_package() {
pkg_install() {
vmove usr/include
vmove "usr/lib/*.a"
- vmove "usr/lib/*.so"
+ vmove "usr/lib/libbfd.so"
+ vmove "usr/lib/libopcodes.so"
}
}
From a3a9127f29ca775d5e8cfab5ee07092a41327fb3 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sat, 5 Nov 2022 11:33:11 -0700
Subject: [PATCH 02/38] gdb: resolve conflict with binutils 2.39
---
srcpkgs/gdb/template | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/gdb/template b/srcpkgs/gdb/template
index 9c5f17ffc519..b666348fea19 100644
--- a/srcpkgs/gdb/template
+++ b/srcpkgs/gdb/template
@@ -1,7 +1,7 @@
# Template file for 'gdb'
pkgname=gdb
version=12.1
-revision=2
+revision=3
build_style=gnu-configure
pycompile_dirs="/usr/share/gdb/python"
configure_args="--disable-werror --disable-nls --with-system-readline
@@ -48,7 +48,8 @@ vopt_conflict debuginfod static
post_install() {
# resolve conflicts with binutils
- rm -r ${DESTDIR}/usr/{include,lib,share/info/bfd.info*}
+ rm -rf ${DESTDIR}/usr/{include,lib}
+ rm -rf ${DESTDIR}/usr/share/info/{bfd,ctf-spec}.info*
}
gdb-common_package() {
From 28c6739b1887608bdf582fb06f573f3137928cb0 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sat, 5 Nov 2022 11:33:11 -0700
Subject: [PATCH 03/38] gcc: update to 12.2.0.
---
common/shlibs | 10 +--
srcpkgs/gcc/files/gccgo-musl.patch | 71 +++------------
srcpkgs/gcc/files/libgnarl-musl.patch | 18 ++--
srcpkgs/gcc/files/libssp-musl.patch | 10 +--
.../gcc/patches/force-override-clocale.patch | 21 +++++
srcpkgs/gcc/patches/libffi_gnulinux.patch | 11 ---
.../gcc/patches/libgcc-ibm128-no-tag.patch | 10 ++-
srcpkgs/gcc/patches/mips-sgidefs_h.patch | 2 +-
srcpkgs/gcc/template | 87 +++++++++----------
9 files changed, 101 insertions(+), 139 deletions(-)
create mode 100644 srcpkgs/gcc/patches/force-override-clocale.patch
delete mode 100644 srcpkgs/gcc/patches/libffi_gnulinux.patch
diff --git a/common/shlibs b/common/shlibs
index 0814612ced32..3ee7969839ad 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -60,7 +60,7 @@ libcc1plugin.so.0 gcc-6.2.1_1
libitm.so.1 libitm-4.7.3_1
liblto_plugin.so.0 gcc-4.7.3_1
libgcc_s.so.1 libgcc-4.4.0_1
-libgo.so.16 libgo-10.2.0_1
+libgo.so.21 libgo-12.2.0_1
libgccjit.so.0 libgccjit-10.2.1pre1_1
libperl.so.5.36 perl-5.36.0_1
libgmp.so.10 gmp-5.0.1_1
@@ -858,8 +858,8 @@ libgdkmm-2.4.so.1 gtkmm2-2.24.0_1
libgtkmm-2.4.so.1 gtkmm2-2.24.0_1
libquadmath.so.0 libquadmath-4.4.0_1
libgfortran.so.5 libgfortran-8.2.0_1
-libgnarl-10.so libada-10.2.0_1
-libgnat-10.so libada-10.2.0_1
+libgnarl-12.so libada-12.2.0_1
+libgnat-12.so libada-12.2.0_1
libwebp.so.7 libwebp-0.6.0_1
libwebpmux.so.3 libwebp-0.6.0_1
libwebpdemux.so.2 libwebp-0.5.0_1
@@ -1711,8 +1711,8 @@ libextractor.so.3 libextractor-1.1_1
libextractor_common.so.1 libextractor-1.1_1
libpano13.so.3 libpano13-2.9.19_1
libubsan.so.1 libsanitizer-8.2.0_1
-libtsan.so.0 libsanitizer-6.3.0_1
-libasan.so.6 libsanitizer-10.2.0_1
+libtsan.so.2 libsanitizer-12.2.0_1
+libasan.so.8 libsanitizer-12.2.0_1
liblsan.so.0 libsanitizer-6.3.0_1
libvtv.so.0 libvtv-6.3.0_1
libatomic.so.1 libatomic-4.9.0_1
diff --git a/srcpkgs/gcc/files/gccgo-musl.patch b/srcpkgs/gcc/files/gccgo-musl.patch
index 9762739615af..12ec68dd8aa3 100644
--- a/srcpkgs/gcc/files/gccgo-musl.patch
+++ b/srcpkgs/gcc/files/gccgo-musl.patch
@@ -53,17 +53,6 @@ URL: https://code.foxkit.us/adelie/packages/tree/master/system/gcc
p := sysMmap(addr, n, prot, flags, fd, off)
if uintptr(p) == _MAP_FAILED {
return nil, errno()
---- a/libgo/go/runtime/signal_gccgo.go
-+++ b/libgo/go/runtime/signal_gccgo.go
-@@ -111,7 +111,7 @@ func getsig(i uint32) uintptr {
- if sigaction(i, nil, &sa) < 0 {
- // On GNU/Linux glibc rejects attempts to call
- // sigaction with signal 32 (SIGCANCEL) or 33 (SIGSETXID).
-- if GOOS == "linux" && (i == 32 || i == 33) {
-+ if GOOS == "linux" && (i == 32 || i == 33 || i == 34) {
- return _SIG_DFL
- }
- throw("sigaction read failure")
--- a/libgo/go/syscall/errstr.go
+++ b/libgo/go/syscall/errstr.go
@@ -5,7 +5,6 @@
@@ -140,55 +129,6 @@ URL: https://code.foxkit.us/adelie/packages/tree/master/system/gcc
plwoff = &lwoff
}
n, err = splice(rfd, plroff, wfd, plwoff, len, flags)
---- a/libgo/mksigtab.sh
-+++ b/libgo/mksigtab.sh
-@@ -82,7 +82,7 @@ checksig _SIGPWR '{_SigNotify, "SIGPWR: power failure restart"}'
- checksig _SIGEMT '{_SigThrow, "SIGEMT: emulate instruction executed"}'
- checksig _SIGINFO '{_SigNotify, "SIGINFO: status request from keyboard"}'
- checksig _SIGTHR '{_SigNotify, "SIGTHR: reserved"}'
--checksig _SIGPOLL '{_SigNotify, "SIGPOLL: pollable event occurred"}'
-+#checksig _SIGPOLL '{_SigNotify, "SIGPOLL: pollable event occurred"}'
- checksig _SIGWAITING '{_SigNotify, "SIGWAITING: reserved signal no longer used by"}'
- checksig _SIGLWP '{_SigNotify, "SIGLWP: reserved signal no longer used by"}'
- checksig _SIGFREEZE '{_SigNotify, "SIGFREEZE: special signal used by CPR"}'
-@@ -95,10 +95,12 @@ checksig _SIGLOST ' {_SigNotify, "SIGLOST: resource lost (Sun); server died (G
-
- # Special handling of signals 32 and 33 on GNU/Linux systems,
- # because they are special to glibc.
-+# Signal 34 is additionally special to Linux systems with musl.
- if test "${GOOS}" = "linux"; then
-- SIGLIST=$SIGLIST"_32__33_"
-+ SIGLIST=$SIGLIST"_32__33__34_"
- echo ' 32: {_SigSetStack + _SigUnblock, "signal 32"}, /* SIGCANCEL; see issue 6997 */'
- echo ' 33: {_SigSetStack + _SigUnblock, "signal 33"}, /* SIGSETXID; see issues 3871, 9400, 12498 */'
-+ echo ' 34: {_SigSetStack + _SigUnblock, "signal 34"}, /* see issue 30062 */'
- fi
-
- if test "${GOOS}" = "aix"; then
---- a/libgo/runtime/go-signal.c 2020-07-23 08:35:19.004402840 +0200
-+++ b/libgo/runtime/go-signal.c 2020-08-09 21:35:54.352886232 +0200
-@@ -224,7 +224,11 @@
- #elif defined(__alpha__) && defined(__linux__)
- ret.sigpc = ((ucontext_t*)(context))->uc_mcontext.sc_pc;
- #elif defined(__PPC__) && defined(__linux__)
-- ret.sigpc = ((ucontext_t*)(context))->uc_mcontext.regs->nip;
-+ #ifdef __PPC64__
-+ ret.sigpc = ((ucontext_t*)(context))->uc_mcontext.gp_regs[32];
-+ #else
-+ ret.sigpc = ((ucontext_t*)(context))->uc_mcontext.gregs[32];
-+ #endif
- #elif defined(__PPC__) && defined(_AIX)
- ret.sigpc = ((ucontext_t*)(context))->uc_mcontext.jmp_context.iar;
- #elif defined(__aarch64__) && defined(__linux__)
-@@ -333,7 +337,7 @@
- runtime_printf("sp %X\n", m->sc_regs[30]);
- runtime_printf("pc %X\n", m->sc_pc);
- }
--#elif defined(__PPC__) && defined(__LITTLE_ENDIAN__) && defined(__linux__)
-+#elif defined(__PPC__) && defined(__LITTLE_ENDIAN__) && defined(__linux__) && defined(__GLIBC__)
- {
- mcontext_t *m = &((ucontext_t*)(context))->uc_mcontext;
- int i;
--- a/libgo/runtime/runtime.h
+++ b/libgo/runtime/runtime.h
@@ -500,10 +500,13 @@ int __go_setcontext(__go_context_t*);
@@ -220,3 +160,14 @@ URL: https://code.foxkit.us/adelie/packages/tree/master/system/gcc
#if defined(HAVE_SYS_UTSNAME_H)
#include <sys/utsname.h>
#endif
+--- a/libgo/go/runtime/os_linux.go
++++ b/libgo/go/runtime/os_linux.go
+@@ -365,7 +365,7 @@ func setThreadCPUProfiler(hz int32) {
+ var sevp _sigevent
+ sevp.sigev_notify = _SIGEV_THREAD_ID
+ sevp.sigev_signo = _SIGPROF
+- *((*int32)(unsafe.Pointer(&sevp._sigev_un))) = int32(mp.procid)
++ *((*int32)(unsafe.Pointer(&sevp.__sev_fields))) = int32(mp.procid)
+ ret := timer_create(_CLOCK_THREAD_CPUTIME_ID, &sevp, &timerid)
+ if ret != 0 {
+ // If we cannot create a timer for this M, leave profileTimerValid false
diff --git a/srcpkgs/gcc/files/libgnarl-musl.patch b/srcpkgs/gcc/files/libgnarl-musl.patch
index 99a734c42c90..91c95949e0e9 100644
--- a/srcpkgs/gcc/files/libgnarl-musl.patch
+++ b/srcpkgs/gcc/files/libgnarl-musl.patch
@@ -5,7 +5,7 @@ Reason: Patch libgnarl to not use function missing from musl.
diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-osinte__linux.ads gcc-8.2.0-new/gcc/ada/libgnarl/s-osinte__linux.ads
--- a/gcc/ada/libgnarl/s-osinte__linux.ads 2018-01-11 00:55:25.000000000 -0800
+++ b/gcc/ada/libgnarl/s-osinte__linux.ads 2018-11-01 16:16:23.372452951 -0700
-@@ -394,12 +394,6 @@ package System.OS_Interface is
+@@ -403,12 +403,6 @@ package System.OS_Interface is
PTHREAD_RWLOCK_PREFER_WRITER_NP : constant := 1;
PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP : constant := 2;
@@ -18,7 +18,7 @@ diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-osinte__linux.ads gcc-8.2.0-new/gcc/ada/l
function pthread_rwlock_init
(mutex : access pthread_rwlock_t;
attr : access pthread_rwlockattr_t) return int;
-@@ -464,11 +458,6 @@ package System.OS_Interface is
+@@ -470,11 +464,6 @@ package System.OS_Interface is
protocol : int) return int;
pragma Import (C, pthread_mutexattr_setprotocol);
@@ -33,7 +33,7 @@ diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-osinte__linux.ads gcc-8.2.0-new/gcc/ada/l
diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-taprop__linux.adb gcc-8.2.0-new/gcc/ada/libgnarl/s-taprop__linux.adb
--- a/gcc/ada/libgnarl/s-taprop__linux.adb 2018-01-11 00:55:25.000000000 -0800
+++ b/gcc/ada/libgnarl/s-taprop__linux.adb 2018-11-13 11:28:36.433964449 -0800
-@@ -202,9 +202,6 @@ package body System.Task_Primitives.Oper
+@@ -198,9 +198,6 @@ package body System.Task_Primitives.Oper
pragma Import
(C, GNAT_pthread_condattr_setup, "__gnat_pthread_condattr_setup");
@@ -43,7 +43,7 @@ diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-taprop__linux.adb gcc-8.2.0-new/gcc/ada/l
-- We do not have pragma Linker_Options ("-lcap"); here, because this
-- library is not present on many Linux systems. 'libcap' is the Linux
-- "capabilities" library, called by __gnat_has_cap_sys_nice.
-@@ -214,38 +211,6 @@ package body System.Task_Primitives.Oper
+@@ -210,38 +207,6 @@ package body System.Task_Primitives.Oper
-- Convert Ada priority to Linux priority. Priorities are 1 .. 99 on
-- GNU/Linux, so we map 0 .. 98 to 1 .. 99.
@@ -76,13 +76,13 @@ diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-taprop__linux.adb gcc-8.2.0-new/gcc/ada/l
- return Ceiling_Support;
- end Get_Ceiling_Support;
-
-- pragma Warnings (Off, "non-static call not allowed in preelaborated unit");
+- pragma Warnings (Off, "non-preelaborable call not allowed*");
- Ceiling_Support : constant Boolean := Get_Ceiling_Support;
-- pragma Warnings (On, "non-static call not allowed in preelaborated unit");
+- pragma Warnings (On, "non-preelaborable call not allowed*");
-- True if the locking policy is Ceiling_Locking, and the current process
-- has permission to use this policy. The process has permission if it is
-- running as 'root', or if the capability was set by the setcap command,
-@@ -348,7 +313,9 @@ package body System.Task_Primitives.Oper
+@@ -344,7 +309,9 @@ package body System.Task_Primitives.Oper
-- Init_Mutex --
----------------
@@ -92,7 +92,7 @@ diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-taprop__linux.adb gcc-8.2.0-new/gcc/ada/l
Mutex_Attr : aliased pthread_mutexattr_t;
Result, Result_2 : C.int;
-@@ -360,16 +327,7 @@ package body System.Task_Primitives.Oper
+@@ -356,16 +323,7 @@ package body System.Task_Primitives.Oper
return Result;
end if;
@@ -110,7 +110,7 @@ diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-taprop__linux.adb gcc-8.2.0-new/gcc/ada/l
Result := pthread_mutexattr_setprotocol
(Mutex_Attr'Access, PTHREAD_PRIO_INHERIT);
pragma Assert (Result = 0);
-@@ -409,11 +367,6 @@ package body System.Task_Primitives.Oper
+@@ -405,11 +363,6 @@ package body System.Task_Primitives.Oper
Result := pthread_rwlockattr_init (RWlock_Attr'Access);
pragma Assert (Result = 0);
diff --git a/srcpkgs/gcc/files/libssp-musl.patch b/srcpkgs/gcc/files/libssp-musl.patch
index b21a2c29e57c..99f248401a1c 100644
--- a/srcpkgs/gcc/files/libssp-musl.patch
+++ b/srcpkgs/gcc/files/libssp-musl.patch
@@ -2,9 +2,9 @@ First part taken from Alpine.
Second part added to prevent gccgo from thinking it can -fsplit-stack on musl.
---- a/gcc/gcc.c
-+++ b/gcc/gcc.c
-@@ -874,10 +874,15 @@ proper position among the other output files. */
+--- a/gcc/gcc.cc
++++ b/gcc/gcc.cc
+@@ -984,10 +984,15 @@ proper position among the other output f
#define LINK_GCC_C_SEQUENCE_SPEC "%G %{!nolibc:%L %G}"
#endif
@@ -22,10 +22,10 @@ Second part added to prevent gccgo from thinking it can -fsplit-stack on musl.
#else
#define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \
"|fstack-protector-strong|fstack-protector-explicit" \
-@@ -1155,7 +1160,7 @@ static const char *cc1_options =
+@@ -1280,7 +1285,7 @@ static const char *cc1_options =
%{-version:--version}\
%{-help=*:--help=%*}\
- %{!fsyntax-only:%{S:%W{o*}%{!o*:-o %b.s}}}\
+ %{!fsyntax-only:%{S:%W{o*}%{!o*:-o %w%b.s}}}\
- %{fsyntax-only:-o %j} %{-param*}\
+ %{fsyntax-only:-o %j} %{-param*} " NO_SSP_SPEC "\
%{coverage:-fprofile-arcs -ftest-coverage}\
diff --git a/srcpkgs/gcc/patches/force-override-clocale.patch b/srcpkgs/gcc/patches/force-override-clocale.patch
new file mode 100644
index 000000000000..8af8a7150dd9
--- /dev/null
+++ b/srcpkgs/gcc/patches/force-override-clocale.patch
@@ -0,0 +1,21 @@
+This is necessary when building a gnu cross compiler for a musl target.
+Otherwise, even if clocale manually is set to gnu, it will be reset to generic
+when the test is performed using AC_EGREP_CPP().
+--- a/libstdc++-v3/configure
++++ b/libstdc++-v3/configure
+@@ -16493,6 +16493,7 @@ fi
+
+ # Sanity check model, and test for special functionality.
+ if test $enable_clocale_flag = gnu; then
++ if test $enable_clocale = auto; then
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h. */
+
+@@ -16509,6 +16510,7 @@ else
+ enable_clocale_flag=generic
+ fi
+ rm -f conftest*
++ fi
+
+
+ # Set it to scream when it hurts.
diff --git a/srcpkgs/gcc/patches/libffi_gnulinux.patch b/srcpkgs/gcc/patches/libffi_gnulinux.patch
deleted file mode 100644
index 98245bd5be1a..000000000000
--- a/srcpkgs/gcc/patches/libffi_gnulinux.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/libffi/src/closures.c
-+++ b/libffi/src/closures.c
-@@ -34,7 +34,7 @@
- #include <ffi_common.h>
-
- #if !FFI_MMAP_EXEC_WRIT && !FFI_EXEC_TRAMPOLINE_TABLE
--# if __gnu_linux__ && !defined(__ANDROID__)
-+# if __linux__ && !defined(__ANDROID__)
- /* This macro indicates it may be forbidden to map anonymous memory
- with both write and execute permission. Code compiled when this
- option is defined will attempt to map such pages once, but if it
diff --git a/srcpkgs/gcc/patches/libgcc-ibm128-no-tag.patch b/srcpkgs/gcc/patches/libgcc-ibm128-no-tag.patch
index bdf5c75d917d..26d80356ad0d 100644
--- a/srcpkgs/gcc/patches/libgcc-ibm128-no-tag.patch
+++ b/srcpkgs/gcc/patches/libgcc-ibm128-no-tag.patch
@@ -29,10 +29,14 @@ diff --git a/libgcc/config/rs6000/t-linux b/libgcc/config/rs6000/t-linux
index 4f6d4c4..fa93bb6 100644
--- a/libgcc/config/rs6000/t-linux
+++ b/libgcc/config/rs6000/t-linux
-@@ -1,3 +1,3 @@
+@@ -1,6 +1,6 @@
SHLIB_MAPFILES += $(srcdir)/config/rs6000/libgcc-glibc.ver
--HOST_LIBGCC2_CFLAGS += -mlong-double-128 -mno-minimal-toc
-+HOST_LIBGCC2_CFLAGS += -mlong-double-128 -mno-gnu-attribute -mno-minimal-toc
+-HOST_LIBGCC2_CFLAGS += -mlong-double-128
++HOST_LIBGCC2_CFLAGS += -mlong-double-128 -mno-gnu-attribute
+
+ # This is a way of selecting -mcmodel=small for ppc64, which gives
+ # smaller and faster libgcc code. Directly specifying -mcmodel=small
+
--
2.24.0
diff --git a/srcpkgs/gcc/patches/mips-sgidefs_h.patch b/srcpkgs/gcc/patches/mips-sgidefs_h.patch
index dddfe10e8c06..cd0ae7a380df 100644
--- a/srcpkgs/gcc/patches/mips-sgidefs_h.patch
+++ b/srcpkgs/gcc/patches/mips-sgidefs_h.patch
@@ -3,7 +3,7 @@
@@ -42,7 +42,7 @@
#define _MIPS_SIM_NABI32 2
#define _MIPS_SIM_ABI64 3
- #elif !defined(__OpenBSD__)
+ #elif !defined(__OpenBSD__) && !defined(__FreeBSD__)
-# include <sgidefs.h>
+# include <asm/sgidefs.h>
#endif
diff --git a/srcpkgs/gcc/template b/srcpkgs/gcc/template
index ab3643de4f98..a20af7c0ef2e 100644
--- a/srcpkgs/gcc/template
+++ b/srcpkgs/gcc/template
@@ -3,18 +3,14 @@
# which use the version number.
pkgname=gcc
-# we are using a 10-stable git snapshot alpine is using in order
-# to get regression fixes not yet incorporate into a stable release
-# it should be possible to switch back to stable with 10.3 or 11
-version=10.2.1pre1
-revision=3
-_patchver="${version%pre*}"
-_minorver="${_patchver%.*}"
+version=12.2.0
+revision=1
+_minorver="${version%.*}"
_majorver="${_minorver%.*}"
-_gmp_version=6.2.0
+_gmp_version=6.2.1
_mpfr_version=4.1.0
-_mpc_version=1.1.0
-_isl_version=0.21
+_mpc_version=1.2.1
+_isl_version=0.24
create_wrksrc=yes
short_desc="GNU Compiler Collection"
maintainer="Enno Boland <gottox@voidlinux.org>"
@@ -22,16 +18,16 @@ homepage="http://gcc.gnu.org"
license="GFDL-1.2-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
# *-musl builders have issues fetching https://ftp.gnu.org/gnu/mpc/mpc-1.1.0.tar.gz
distfiles="
- https://dev.alpinelinux.org/~nenolod/gcc-${version/pre/_pre}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${version}/gcc-${version}.tar.xz
https://gmplib.org/download/gmp/gmp-${_gmp_version}.tar.xz
${GNU_SITE}/mpfr/mpfr-${_mpfr_version}.tar.xz
${GNU_SITE}/mpc/mpc-${_mpc_version}.tar.gz
${SOURCEFORGE_SITE}/libisl/isl-${_isl_version}.tar.bz2"
-checksum="772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 258e6cd51b3fbdfc185c716d55f82c08aff57df0c6fbd143cf6ed561267a1526
+checksum="e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
+ fd4829912cddd12f84181c3451cc752be224643e87fac497b69edddadc49b4f2
0c98a3f1732ff6ca4ea690552079da9c597872d30e96ec28414ee23c95558a7f
- 6985c538143c1208dcb1ac42cedad6ff52e267b47e5f970183a3e75125b43c2e
- d18ca11f8ad1a39ab6d03d3dcb3365ab416720fcb65b42d69f34f51bf0a0e859"
+ 17503d2c395dfcf106b622dc142683c1199431d095367c6aacba6eec30340459
+ fcf78dd9656c10eb8cf9fbd5f59a0b6b01386205fe1934b3b287a0a1898145c0"
nopie=yes
lib32disabled=yes
@@ -52,8 +48,11 @@ if [ "$CHROOT_READY" ]; then
hostmakedepends="tar texinfo perl flex"
else
_have_gccgo=no
+ # libzstd fails to link in bootstrap with glibc 2.36
+ # when zlib has been compiled with glibc 2.32.
+ LDFLAGS="-lzstd -pthread"
fi
-makedepends="zlib-devel"
+makedepends="zlib-devel libzstd-devel"
depends="binutils libgcc-devel-${version}_${revision}
libstdc++-devel-${version}_${revision} libssp-devel-${version}_${revision}"
checkdepends="dejagnu"
@@ -70,13 +69,13 @@ if [ "$build_option_gnatboot" ]; then
case "$XBPS_TARGET_MACHINE" in
x86_64)
_gnat_tarball="gnat-gpl-2017-x86_64-linux-bin.tar.gz"
- distfiles+=" http://mirrors.cdn.adacore.com/art/591c6d80c7a447af2deed1d7>$_gnat_tarball"
+ distfiles+=" https://community.download.adacore.com/v1/9682e2e1f2f232ce03fe21d77b14c37a0de5649b?filename=$_gnat_tarball>$_gnat_tarball"
checksum+=" b942bcac20dea39748b39f8b624d9619f60a8dee2e8195dbe3829c835b0956e6"
build_options_default="gnatboot"
;;
i686)
_gnat_tarball="gnat-gpl-2014-x86-linux-bin.tar.gz"
- distfiles+=" http://mirrors.cdn.adacore.com/art/564b3e9dc8e196b040fbe248>$_gnat_tarball"
+ distfiles+=" https://community.download.adacore.com/v1/c5e9e6fdff5cb77ed90cf8c62536653e27c0bed6?filename=$_gnat_tarball>$_gnat_tarball"
checksum+=" 3b693510f5d22a240abb3034934c1adbd80ccd6e4f61a4f491cc408fdfd9c042"
build_options_default="gnatboot"
;;
@@ -155,8 +154,8 @@ if [ "$CROSS_BUILD" ]; then
fi
post_extract() {
- mv gcc-${version/pre/_pre}/* gcc-${version/pre/_pre}/.??* .
- rmdir gcc-${version/pre/_pre}
+ mv gcc-${version}/* gcc-${version}/.??* .
+ rmdir gcc-${version}
mv gmp-${_gmp_version} gmp
mv mpfr-${_mpfr_version} mpfr
mv mpc-${_mpc_version} mpc
@@ -186,9 +185,9 @@ pre_configure() {
sed -i 's@\./fixinc\.sh@-c true@' gcc/Makefile.in
if [ "$XBPS_TARGET_LIBC" = musl ]; then
- patch -p1 -i ${FILESDIR}/libgnarl-musl.patch
- patch -p1 -i ${FILESDIR}/libssp-musl.patch
- patch -p1 -i ${FILESDIR}/gccgo-musl.patch
+ for p in ${FILESDIR}/*-musl.patch; do
+ patch -p1 -i $p
+ done
fi
}
do_configure() {
@@ -343,16 +342,16 @@ do_install() {
# Make version a symlink of major version to make all versions
# from the same series work automagically.
- mv ${DESTDIR}/usr/lib/gcc/${_triplet}/${_patchver} \
+ mv ${DESTDIR}/usr/lib/gcc/${_triplet}/${version} \
${DESTDIR}/usr/lib/gcc/${_triplet}/${_minorver}
ln -sfr ${DESTDIR}/usr/lib/gcc/${_triplet}/${_minorver} \
- ${DESTDIR}/usr/lib/gcc/${_triplet}/${_patchver}
+ ${DESTDIR}/usr/lib/gcc/${_triplet}/${version}
# Ditto for c++ headers.
- mv ${DESTDIR}/usr/include/c++/${_patchver} \
+ mv ${DESTDIR}/usr/include/c++/${version} \
${DESTDIR}/usr/include/c++/${_minorver}
ln -sfr ${DESTDIR}/usr/include/c++/${_minorver} \
- ${DESTDIR}/usr/include/c++/${_patchver}
+ ${DESTDIR}/usr/include/c++/${version}
# cc symlink
ln -sfr ${DESTDIR}/usr/bin/gcc ${DESTDIR}/usr/bin/cc
@@ -361,7 +360,7 @@ do_install() {
# lto plugin symlink
vmkdir usr/lib/bfd-plugins
- ln -sfr ${DESTDIR}/usr/lib/gcc/${_triplet}/${_patchver}/liblto_plugin.so \
+ ln -sfr ${DESTDIR}/usr/lib/gcc/${_triplet}/${version}/liblto_plugin.so \
${DESTDIR}/usr/lib/bfd-plugins
# Remove "fixed" header
@@ -372,13 +371,9 @@ do_install() {
rm -f ${DESTDIR}/usr/lib/libffi*
rm -f ${DESTDIR}/usr/share/man/man3/ffi*
- # Remove all python scripts in libdir.
- rm -f ${DESTDIR}/usr/lib/*.py
-
- # Remove more python stuff.
- if [ -d ${DESTDIR}/usr/share/gcc-${_patchver}/python ]; then
- rm -rf ${DESTDIR}/usr/share/gcc-${_patchver}/python
- fi
+ # Move libstdc++ gdb helpers to location where gdb can autoload them
+ mkdir -p ${DESTDIR}/usr/share/gdb/auto-load/usr/lib
+ mv ${DESTDIR}/usr/lib/*.py ${DESTDIR}/usr/share/gdb/auto-load/usr/lib
# Install c89 and c99 wrappers and its manpages, from NetBSD.
for f in c89 c99; do
@@ -397,7 +392,7 @@ gcc-ada_package() {
depends="gcc>=${_minorver} libada-devel>=${_minorver}"
short_desc+=" - Ada compiler frontend"
pkg_install() {
- for f in gnat{,bind,chop,clean,find,kr,link,ls,make,name,prep,xref}; do
+ for f in gnat{,bind,chop,clean,kr,link,ls,make,name,prep}; do
vmove usr/bin/${f}
done
}
@@ -450,7 +445,7 @@ gcc-fortran_package() {
if [ "$CROSS_BUILD" ]; then
# A number of OMP modules are not built when cross
# compiling gcc. Copy them from the cross compiler.
- local src="/usr/lib/gcc/${_triplet}/${_patchver}/finclude"
+ local src="/usr/lib/gcc/${_triplet}/${version}/finclude"
local dst="usr/lib/gcc/${_triplet}/${_minorver}/finclude"
for f in omp_lib.f90 omp_lib.h omp_lib.mod omp_lib_kinds.mod \
openacc.f90 openacc.mod openacc_kinds.mod openacc_lib.h; do
@@ -517,7 +512,7 @@ libgfortran_package() {
short_desc+=" - Fortran library"
pkg_install() {
vmove "usr/lib/libgfortran.so*"
- vlicense ${wrksrc}/COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
+ vlicense COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
}
}
@@ -538,7 +533,7 @@ libgo_package() {
nostrip=yes
pkg_install() {
vmove "usr/lib/libgo.so*"
- vlicense ${wrksrc}/COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
+ vlicense COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
}
}
@@ -554,7 +549,7 @@ libobjc_package() {
short_desc+=" - Objective-C library"
pkg_install() {
vmove "usr/lib/libobjc.so*"
- vlicense ${wrksrc}/COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
+ vlicense COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
}
}
@@ -573,7 +568,7 @@ libquadmath_package() {
short_desc+=" - quadmath library"
pkg_install() {
vmove "usr/lib/libquadmath.so*"
- vlicense ${wrksrc}/COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
+ vlicense COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
}
}
@@ -615,7 +610,7 @@ libgcc_package() {
noverifyrdeps=yes
pkg_install() {
vmove "usr/lib/libgcc_s.so*"
- vlicense ${wrksrc}/COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
+ vlicense COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
}
}
@@ -646,7 +641,7 @@ libgomp_package() {
short_desc+=" - OpenMP v4.0 library"
pkg_install() {
vmove "usr/lib/libgomp*.so.*"
- vlicense ${wrksrc}/COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
+ vlicense COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
}
}
@@ -701,7 +696,7 @@ libssp_package() {
short_desc+=" - SSP (StackSmashingProtection) library"
pkg_install() {
vmove "usr/lib/libssp.so*"
- vlicense ${wrksrc}/COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
+ vlicense COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
}
}
@@ -718,7 +713,9 @@ libstdc++-devel_package() {
libstdc++_package() {
short_desc+=" - Standard C++ Library"
pkg_install() {
+ vmove usr/share/gdb
+ vmove usr/share/gcc-${version}/python
vmove "usr/lib/libstdc++.so*"
- vlicense ${wrksrc}/COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
+ vlicense COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
}
}
From 702e0027427e1a8bc67b306fb005979136950558 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sat, 5 Nov 2022 11:33:11 -0700
Subject: [PATCH 04/38] libtool: rebuild for gcc 12
---
srcpkgs/libtool/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/libtool/template b/srcpkgs/libtool/template
index fc5c53a9c3e9..aebad9294eef 100644
--- a/srcpkgs/libtool/template
+++ b/srcpkgs/libtool/template
@@ -1,7 +1,7 @@
# Template file for 'libtool'
pkgname=libtool
version=2.4.7
-revision=1
+revision=2
build_style=gnu-configure
hostmakedepends="texinfo perl automake help2man xz"
depends="tar sed"
From e0e5fe3cda4fef4a1eafac3ec8d735cb1aeb3280 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sat, 5 Nov 2022 11:33:12 -0700
Subject: [PATCH 05/38] libiberty-devel: update to 20220713.
---
srcpkgs/libiberty-devel/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/libiberty-devel/template b/srcpkgs/libiberty-devel/template
index 7e01bbb851fd..d9618e3806ba 100644
--- a/srcpkgs/libiberty-devel/template
+++ b/srcpkgs/libiberty-devel/template
@@ -1,6 +1,6 @@
# Template file for 'libiberty-devel'
pkgname=libiberty-devel
-version=20210106
+version=20220713
revision=1
build_wrksrc=libiberty
build_style=gnu-configure
@@ -10,7 +10,7 @@ maintainer="Orphaned <orphan@voidlinux.org>"
license="GPL-3.0-or-later"
homepage="http://gcc.gnu.org/"
distfiles="http://deb.debian.org/debian/pool/main/libi/libiberty/libiberty_${version}.orig.tar.xz"
-checksum=9df153d69914c0f5a9145e0abbb248e72feebab6777c712a30f1c3b8c19047d4
+checksum=b59050f48c8a0f9c9e6fba5d17c7a4f11d1329de0c0dca7331b767a6d2bbe8d9
conflicts="binutils-devel<=2.35.1_3"
CFLAGS="-fPIC"
From 11abea7e3e8946c5dff9a5cd728050e89ee6b84f Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sat, 5 Nov 2022 11:33:12 -0700
Subject: [PATCH 06/38] glibc: update to 2.36.
---
common/shlibs | 60 ++--
...e-hash-style-both-for-building-glibc.patch | 51 ++++
.../glibc/patches/glibc-c-utf8-locale.patch | 286 ------------------
srcpkgs/glibc/template | 66 ++--
4 files changed, 109 insertions(+), 354 deletions(-)
create mode 100644 srcpkgs/glibc/patches/0001-Revert-Do-not-use-hash-style-both-for-building-glibc.patch
delete mode 100644 srcpkgs/glibc/patches/glibc-c-utf8-locale.patch
diff --git a/common/shlibs b/common/shlibs
index 3ee7969839ad..3f90cbd1ace3 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -17,38 +17,38 @@
# one (order top->bottom) is preferred over the next ones.
#
libc.so musl-1.1.24_7
-libc.so.6 glibc-2.32_1
-libm.so.6 glibc-2.32_1
-libpthread.so.0 glibc-2.32_1
-librt.so.1 glibc-2.32_1
-libdl.so.2 glibc-2.32_1
-ld-linux-x86-64.so.2 glibc-2.32_1 x86_64
-ld-linux.so.2 glibc-2.32_1 i686
-ld-linux.so.3 glibc-2.32_1 armv5tel
-ld-linux-aarch64.so.1 glibc-2.32_1 aarch64
-ld64.so.2 glibc-2.32_1 ppc64
-ld.so.1 glibc-2.32_1 mips
-ld.so.1 glibc-2.32_1 ppc
-ld-linux-armhf.so.3 glibc-2.32_1
-libresolv.so.2 glibc-2.32_1
-libanl.so.1 glibc-2.32_1
-libthread_db.so.1 glibc-2.32_1
-libutil.so.1 glibc-2.32_1
-libnsl.so.1 glibc-2.32_1
-libnss_db.so.2 glibc-2.32_1
-libnss_files.so.2 glibc-2.32_1
-libnss_compat.so.2 glibc-2.32_1
-libnss_dns.so.2 glibc-2.32_1
-libnss_hesiod.so.2 glibc-2.32_1
-libcrypt.so.1 glibc-2.32_1
-libBrokenLocale.so.1 glibc-2.32_1
+libc.so.6 glibc-2.36_1
+libm.so.6 glibc-2.36_1
+libpthread.so.0 glibc-2.36_1
+librt.so.1 glibc-2.36_1
+libdl.so.2 glibc-2.36_1
+ld-linux-x86-64.so.2 glibc-2.36_1 x86_64
+ld-linux.so.2 glibc-2.36_1 i686
+ld-linux.so.3 glibc-2.36_1 armv5tel
+ld-linux-aarch64.so.1 glibc-2.36_1 aarch64
+ld64.so.2 glibc-2.36_1 ppc64
+ld.so.1 glibc-2.36_1 mips
+ld.so.1 glibc-2.36_1 ppc
+ld-linux-armhf.so.3 glibc-2.36_1
+libresolv.so.2 glibc-2.36_1
+libanl.so.1 glibc-2.36_1
+libthread_db.so.1 glibc-2.36_1
+libutil.so.1 glibc-2.36_1
+libnsl.so.1 glibc-2.36_1
+libnss_db.so.2 glibc-2.36_1
+libnss_files.so.2 glibc-2.36_1
+libnss_compat.so.2 glibc-2.36_1
+libnss_dns.so.2 glibc-2.36_1
+libnss_hesiod.so.2 glibc-2.36_1
+libcrypt.so.1 glibc-2.36_1
+libBrokenLocale.so.1 glibc-2.36_1
libSimGearCore.so.2020.3.13 simgear-2020.3.13_1
libSimGearScene.so.2020.3.13 simgear-2020.3.13_1
-libmemusage.so glibc-2.32_1
-libSegFault.so glibc-2.32_1
-libpcprofile.so glibc-2.32_1
-libcidn.so.1 glibc-2.32_1
-libmvec.so.1 glibc-2.32_1
+libmemusage.so glibc-2.36_1
+libSegFault.so glibc-2.36_1
+libpcprofile.so glibc-2.36_1
+libcidn.so.1 glibc-2.36_1
+libmvec.so.1 glibc-2.36_1
libcddgmp.so.0 cddlib-0.94m_1
libcdd.so.0 cddlib-0.94m_1
libz.so.1 zlib-1.2.3_1
diff --git a/srcpkgs/glibc/patches/0001-Revert-Do-not-use-hash-style-both-for-building-glibc.patch b/srcpkgs/glibc/patches/0001-Revert-Do-not-use-hash-style-both-for-building-glibc.patch
new file mode 100644
index 000000000000..9c5553e92609
--- /dev/null
+++ b/srcpkgs/glibc/patches/0001-Revert-Do-not-use-hash-style-both-for-building-glibc.patch
@@ -0,0 +1,51 @@
+Temporary workaround for EAC bug.
+
+See: https://sourceware.org/bugzilla/show_bug.cgi?id=29456
+
+From 8e90e2cc5e57d7ca3a40602d278e9642a8b66716 Mon Sep 17 00:00:00 2001
+From: oreo639 <oreo6391@gmail.com>
+Date: Tue, 13 Sep 2022 14:30:35 -0700
+Subject: [PATCH] Revert "Do not use --hash-style=both for building glibc
+ shared objects"
+
+This reverts commit e47de5cb2d4dbecb58f569ed241e8e95c568f03c.
+---
+ Makeconfig | 9 +++++++++
+ Makerules | 7 +++++++
+ 5 files changed, 61 insertions(+)
+
+diff --git a/Makeconfig b/Makeconfig
+index ba70321af1..e2131d4389 100644
+--- a/Makeconfig
++++ b/Makeconfig
+@@ -371,6 +371,13 @@ dt-relr-ldflag =
+ no-dt-relr-ldflag =
+ endif
+
++# For the time being we unconditionally use 'both'. At some time we
++# should declare statically linked code as 'out of luck' and compile
++# with --hash-style=gnu only.
++hashstyle-LDFLAGS = -Wl,--hash-style=both
++LDFLAGS.so += $(hashstyle-LDFLAGS)
++LDFLAGS-rtld += $(hashstyle-LDFLAGS)
++
+ ifeq (no,$(build-pie-default))
+ pie-default = $(no-pie-ccflag)
+ else # build-pie-default
+diff --git a/Makerules b/Makerules
+index d1e139d03c..44134e37ce 100644
+--- a/Makerules
++++ b/Makerules
+@@ -558,6 +558,9 @@ $(common-objpfx)shlib.lds: $(common-objpfx)config.make $(..)Makerules
+ -Wl,--verbose 2>/dev/null | \
+ sed > $@T \
+ -e '/^=========/,/^=========/!d;/^=========/d' \
++ -e 's/^.*\.gnu\.hash[ ]*:.*$$/ .note.ABI-tag : { *(.note.ABI-tag) } &/' \
++ -e '/^[ ]*\.hash[ ]*:.*$$/{h;d;}' \
++ -e '/DATA_SEGMENT_ALIGN/{H;g}' \
+ -e 's/^.*\*(\.dynbss).*$$/& \
+ PROVIDE(__start___libc_freeres_ptrs = .); \
+ *(__libc_freeres_ptrs) \
+--
+2.37.3
+
diff --git a/srcpkgs/glibc/patches/glibc-c-utf8-locale.patch b/srcpkgs/glibc/patches/glibc-c-utf8-locale.patch
deleted file mode 100644
index 7215e1558b62..000000000000
--- a/srcpkgs/glibc/patches/glibc-c-utf8-locale.patch
+++ /dev/null
@@ -1,286 +0,0 @@
-Short description: Add C.UTF-8 support.
-Author(s): Fedora glibc team <glibc@lists.fedoraproject.org>
-Origin: PATCH
-Upstream status: not-submitted
-
-This patch needs to upstream as part of Carlos O'Donell
-<carlos@redhat.com>'s work on enabling upstream C.UTF-8 support. This
-work is currently blocked on cleaning up the test results to prove that
-full code-point sorting is working as intended.
-
-Note that this patch does not provide full code-point sorting as
-expected.
-
-This patch needs to upstream as soon as possible since it would be nice
-to have this in F29 and fixed.
-
-From 2eda7b462b415105f5a05c1323372d4e39d46439 Mon Sep 17 00:00:00 2001
-From: Mike FABIAN <mfabian@redhat.com>
-Date: Mon, 10 Aug 2015 15:58:12 +0200
-Subject: [PATCH] Add a C.UTF-8 locale
-
----
- localedata/SUPPORTED | 1 +
- localedata/locales/C | 238 +++++++++++++++++++++++++++++++++++++++++++++++++++
- 2 files changed, 239 insertions(+)
- create mode 100644 localedata/locales/C
-
-diff --git a/localedata/SUPPORTED b/localedata/SUPPORTED
-index 8ca023e..2a78391 100644
---- a/localedata/SUPPORTED
-+++ b/localedata/SUPPORTED
-@@ -1,6 +1,7 @@
- # This file names the currently supported and somewhat tested locales.
- # If you have any additions please file a glibc bug report.
- SUPPORTED-LOCALES=\
-+C.UTF-8/UTF-8 \
- aa_DJ.UTF-8/UTF-8 \
- aa_DJ/ISO-8859-1 \
- aa_ER/UTF-8 \
-diff --git a/localedata/locales/C b/localedata/locales/C
-new file mode 100644
-index 0000000..fdf460e
---- /dev/null
-+++ b/localedata/locales/C
-@@ -0,0 +1,238 @@
-+escape_char /
-+comment_char %
-+% Locale for C locale in UTF-8
-+
-+LC_IDENTIFICATION
-+title "C locale"
-+source ""
-+address ""
-+contact ""
-+email "mfabian@redhat.com"
-+tel ""
-+fax ""
-+language "C"
-+territory ""
-+revision "1.0"
-+date "2015-08-10"
-+%
-+category "i18n:2012";LC_IDENTIFICATION
-+category "i18n:2012";LC_CTYPE
-+category "i18n:2012";LC_COLLATE
-+category "i18n:2012";LC_TIME
-+category "i18n:2012";LC_NUMERIC
-+category "i18n:2012";LC_MONETARY
-+category "i18n:2012";LC_MESSAGES
-+category "i18n:2012";LC_PAPER
-+category "i18n:2012";LC_NAME
-+category "i18n:2012";LC_ADDRESS
-+category "i18n:2012";LC_TELEPHONE
-+category "i18n:2012";LC_MEASUREMENT
-+END LC_IDENTIFICATION
-+
-+LC_CTYPE
-+copy "i18n"
-+
-+translit_start
-+include "translit_combining";""
-+translit_end
-+
-+END LC_CTYPE
-+
-+LC_COLLATE
-+order_start forward
-+<U0000>
-+..
-+<UFFFF>
-+<U10000>
-+..
-+<U1FFFF>
-+<U20000>
-+..
-+<U2FFFF>
-+<UE0000>
-+..
-+<UEFFFF>
-+<UF0000>
-+..
-+<UFFFFF>
-+<U100000>
-+..
-+<U10FFFF>
-+UNDEFINED
-+order_end
-+END LC_COLLATE
-+
-+LC_MONETARY
-+% This is the 14652 i18n fdcc-set definition for
-+% the LC_MONETARY category
-+% (except for the int_curr_symbol and currency_symbol, they are empty in
-+% the 14652 i18n fdcc-set definition and also empty in
-+% glibc/locale/C-monetary.c. But localedef complains in that case).
-+%
-+% Using "USD" for int_curr_symbol. But maybe "XXX" would be better?
-+% XXX is "No currency" (https://en.wikipedia.org/wiki/ISO_4217)
-+int_curr_symbol "<U0055><U0053><U0044><U0020>"
-+% Using "$" for currency_symbol. But maybe <U00A4> would be better?
-+% U+00A4 is the "generic currency symbol"
-+% (https://en.wikipedia.org/wiki/Currency_sign_%28typography%29)
-+currency_symbol "<U0024>"
-+mon_decimal_point "<U002E>"
-+mon_thousands_sep ""
-+mon_grouping -1
-+positive_sign ""
-+negative_sign "<U002D>"
-+int_frac_digits -1
-+frac_digits -1
-+p_cs_precedes -1
-+int_p_sep_by_space -1
-+p_sep_by_space -1
-+n_cs_precedes -1
-+int_n_sep_by_space -1
-+n_sep_by_space -1
-+p_sign_posn -1
-+n_sign_posn -1
-+%
-+END LC_MONETARY
-+
-+LC_NUMERIC
-+% This is the POSIX Locale definition for
-+% the LC_NUMERIC category.
-+%
-+decimal_point "<U002E>"
-+thousands_sep ""
-+grouping -1
-+END LC_NUMERIC
-+
-+LC_TIME
-+% This is the POSIX Locale definition for
-+% the LC_TIME category.
-+%
-+% Abbreviated weekday names (%a)
-+abday "<U0053><U0075><U006E>";"<U004D><U006F><U006E>";/
-+ "<U0054><U0075><U0065>";"<U0057><U0065><U0064>";/
-+ "<U0054><U0068><U0075>";"<U0046><U0072><U0069>";/
-+ "<U0053><U0061><U0074>"
-+
-+% Full weekday names (%A)
-+day "<U0053><U0075><U006E><U0064><U0061><U0079>";/
-+ "<U004D><U006F><U006E><U0064><U0061><U0079>";/
-+ "<U0054><U0075><U0065><U0073><U0064><U0061><U0079>";/
-+ "<U0057><U0065><U0064><U006E><U0065><U0073><U0064><U0061><U0079>";/
-+ "<U0054><U0068><U0075><U0072><U0073><U0064><U0061><U0079>";/
-+ "<U0046><U0072><U0069><U0064><U0061><U0079>";/
-+ "<U0053><U0061><U0074><U0075><U0072><U0064><U0061><U0079>"
-+
-+% Abbreviated month names (%b)
-+abmon "<U004A><U0061><U006E>";"<U0046><U0065><U0062>";/
-+ "<U004D><U0061><U0072>";"<U0041><U0070><U0072>";/
-+ "<U004D><U0061><U0079>";"<U004A><U0075><U006E>";/
-+ "<U004A><U0075><U006C>";"<U0041><U0075><U0067>";/
-+ "<U0053><U0065><U0070>";"<U004F><U0063><U0074>";/
-+ "<U004E><U006F><U0076>";"<U0044><U0065><U0063>"
-+
-+% Full month names (%B)
-+mon "<U004A><U0061><U006E><U0075><U0061><U0072><U0079>";/
-+ "<U0046><U0065><U0062><U0072><U0075><U0061><U0072><U0079>";/
-+ "<U004D><U0061><U0072><U0063><U0068>";/
-+ "<U0041><U0070><U0072><U0069><U006C>";/
-+ "<U004D><U0061><U0079>";/
-+ "<U004A><U0075><U006E><U0065>";/
-+ "<U004A><U0075><U006C><U0079>";/
-+ "<U0041><U0075><U0067><U0075><U0073><U0074>";/
-+ "<U0053><U0065><U0070><U0074><U0065><U006D><U0062><U0065><U0072>";/
-+ "<U004F><U0063><U0074><U006F><U0062><U0065><U0072>";/
-+ "<U004E><U006F><U0076><U0065><U006D><U0062><U0065><U0072>";/
-+ "<U0044><U0065><U0063><U0065><U006D><U0062><U0065><U0072>"
-+
-+% Week description, consists of three fields:
-+% 1. Number of days in a week.
-+% 2. Gregorian date that is a first weekday (19971130 for Sunday, 19971201 for Monday).
-+% 3. The weekday number to be contained in the first week of the year.
-+%
-+% ISO 8601 conforming applications should use the values 7, 19971201 (a
-+% Monday), and 4 (Thursday), respectively.
-+week 7;19971201;4
-+first_weekday 1
-+first_workday 1
-+
-+% Appropriate date and time representation (%c)
-+% "%a %b %e %H:%M:%S %Y"
-+d_t_fmt "<U0025><U0061><U0020><U0025><U0062><U0020><U0025><U0065><U0020><U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053><U0020><U0025><U0059>"
-+
-+% Appropriate date representation (%x)
-+% "%m/%d/%y"
-+d_fmt "<U0025><U006D><U002F><U0025><U0064><U002F><U0025><U0079>"
-+
-+% Appropriate time representation (%X)
-+% "%H:%M:%S"
-+t_fmt "<U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053>"
-+
-+% Appropriate AM/PM time representation (%r)
-+% "%I:%M:%S %p"
-+t_fmt_ampm "<U0025><U0049><U003A><U0025><U004D><U003A><U0025><U0053><U0020><U0025><U0070>"
-+
-+% Equivalent of AM/PM (%p) "AM"/"PM"
-+%
-+am_pm "<U0041><U004D>";"<U0050><U004D>"
-+
-+% Appropriate date representation (date(1)) "%a %b %e %H:%M:%S %Z %Y"
-+date_fmt "<U0025><U0061><U0020><U0025><U0062><U0020><U0025><U0065><U0020><U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053><U0020><U0025><U005A><U0020><U0025><U0059>"
-+END LC_TIME
-+
-+LC_MESSAGES
-+% This is the POSIX Locale definition for
-+% the LC_NUMERIC category.
-+%
-+yesexpr "<U005E><U005B><U0079><U0059><U005D>"
-+noexpr "<U005E><U005B><U006E><U004E><U005D>"
-+yesstr "<U0059><U0065><U0073>"
-+nostr "<U004E><U006F>"
-+END LC_MESSAGES
-+
-+LC_PAPER
-+% This is the ISO/IEC 14652 "i18n" definition for
-+% the LC_PAPER category.
-+% (A4 paper, this is also used in the built in C/POSIX
-+% locale in glibc/locale/C-paper.c)
-+height 297
-+width 210
-+END LC_PAPER
-+
-+LC_NAME
-+% This is the ISO/IEC 14652 "i18n" definition for
-+% the LC_NAME category.
-+% "%p%t%g%t%m%t%f"
-+% (also used in the built in C/POSIX locale in glibc/locale/C-name.c)
-+name_fmt "<U0025><U0070><U0025><U0074><U0025><U0067><U0025><U0074>/
-+<U0025><U006D><U0025><U0074><U0025><U0066>"
-+END LC_NAME
-+
-+LC_ADDRESS
-+% This is the ISO/IEC 14652 "i18n" definition for
-+% the LC_ADDRESS category.
-+% "%a%N%f%N%d%N%b%N%s %h %e %r%N%C-%z %T%N%c%N"
-+% (also used in the built in C/POSIX locale in glibc/locale/C-address.c)
-+postal_fmt "<U0025><U0061><U0025><U004E><U0025><U0066><U0025><U004E>/
-+<U0025><U0064><U0025><U004E><U0025><U0062><U0025><U004E><U0025><U0073>/
-+<U0020><U0025><U0068><U0020><U0025><U0065><U0020><U0025><U0072><U0025>/
-+<U004E><U0025><U0043><U002D><U0025><U007A><U0020><U0025><U0054><U0025>/
-+<U004E><U0025><U0063><U0025><U004E>"
-+END LC_ADDRESS
-+
-+LC_TELEPHONE
-+% This is the ISO/IEC 14652 "i18n" definition for
-+% the LC_TELEPHONE category.
-+% "+%c %a %l"
-+tel_int_fmt "<U002B><U0025><U0063><U0020><U0025><U0061><U0020><U0025>/
-+<U006C>"
-+% (also used in the built in C/POSIX locale in glibc/locale/C-telephone.c)
-+END LC_TELEPHONE
-+
-+LC_MEASUREMENT
-+% This is the ISO/IEC 14652 "i18n" definition for
-+% the LC_MEASUREMENT category.
-+% (same as in the built in C/POSIX locale in glibc/locale/C-measurement.c)
-+%metric
-+measurement 1
-+END LC_MEASUREMENT
-+
---
-2.4.3
-
diff --git a/srcpkgs/glibc/template b/srcpkgs/glibc/template
index c62a4d2aedf1..6cd4c0980cbb 100644
--- a/srcpkgs/glibc/template
+++ b/srcpkgs/glibc/template
@@ -1,14 +1,16 @@
# Template file for 'glibc'
pkgname=glibc
-version=2.32
-revision=2
+version=2.36
+revision=1
+_patchver="72-g0f90d6204d"
+wrksrc="glibc-${version}-${_patchver}"
bootstrap=yes
short_desc="GNU C library"
maintainer="Enno Boland <gottox@voidlinux.org>"
license="GPL-2.0-or-later, LGPL-2.1-or-later, BSD-3-Clause"
homepage="http://www.gnu.org/software/libc"
-distfiles="${GNU_SITE}/glibc/glibc-${version}.tar.xz"
-checksum=1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+distfiles="https://vasilek.cz/paste/glibc-${version}-${_patchver}.tar.xz"
+checksum=656200722d5ba968b4888a2d2950719d72c86290fd0479f61897d25b7db2cb57
# Do not strip these files, objcopy errors out.
nostrip_files="
XBS5_ILP32_OFFBIG
@@ -20,27 +22,28 @@ nostrip_files="
POSIX_V6_LP64_OFF64
POSIX_V7_LP64_OFF64
XBS5_LP64_OFF64
- ld-${version}.so
- libdl-${version}.so
- libanl-${version}.so
- libcidn-${version}.so
- libresolv-${version}.so
- libcrypt-${version}.so
- libpthread-${version}.so
- libm-${version}.so
- libutil-${version}.so
- libthread_db-1.0.so
- librt-${version}.so
- libnsl-${version}.so
- libc-${version}.so
- libBrokenLocale-${version}.so
- libnss_compat-${version}.so
- libnss_db-${version}.so
- libnss_dns-${version}.so
- libnss_files-${version}.so
- libnss_hesiod-${version}.so
- libnss_nisplus-${version}.so
- libnss_nis-${version}.so"
+ ld-linux-x86-64.so.2
+ ld-linux.so.2
+ ld-linux.so.3
+ ld-linux-aarch64.so.1
+ ld64.so.2
+ ld.so.1
+ ld-linux-armhf.so.3
+ libresolv.so.2
+ libcrypt.so.1
+ libm.so.6
+ libthread_db.so.1
+ libnsl.so.1
+ libc.so.6
+ libc_malloc_debug.so.0
+ libmemusage.so
+ libmvec.so.1
+ libBrokenLocale.so.1
+ libnss_compat.so.2
+ libnss_db.so.2
+ libnss_dns.so.2
+ libnss_files.so.2
+ libnss_hesiod.so.2"
conf_files="
/etc/rpc
@@ -54,7 +57,6 @@ lib32files="/usr/lib/gconv/gconv-modules"
lib32symlinks="ld-linux.so.2"
# There's no point in building this for musl.
archs="~*-musl"
-nopie=yes
do_configure() {
mkdir build
@@ -163,18 +165,6 @@ do_install() {
rm -f ${DESTDIR}/usr/bin/z{dump,ic}
mv ${DESTDIR}/usr/sbin/* ${DESTDIR}/usr/bin
-
- # Create xbps.d(5) arch override file for 32-bit architectures
- # 32-bit userlands may be used with 64-bit kernels and then
- # xbps will report an incorrect architecture by default
- case "$XBPS_TARGET_MACHINE" in
- i686|ppc|ppcle|armv*)
- vmkdir usr/share/xbps.d
- echo "architecture=${XBPS_TARGET_MACHINE}" > \
- ${DESTDIR}/usr/share/xbps.d/arch-32bit.conf
- ;;
- *) ;;
- esac
}
glibc-devel_package() {
From 19a4afeb0224d41a41b2d4c9762d0a28f2b66e70 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sat, 5 Nov 2022 11:33:12 -0700
Subject: [PATCH 07/38] musl: add support for SIGEV_THREAD_ID timers
https://git.musl-libc.org/cgit/musl/commit/?id=7c71792e87691451f2a6b76348e83ad1889f1dcb
---
...d-support-for-SIGEV_THREAD_ID-timers.patch | 74 +++++++++++++++++++
srcpkgs/musl/template | 2 +-
2 files changed, 75 insertions(+), 1 deletion(-)
create mode 100644 srcpkgs/musl/patches/add-support-for-SIGEV_THREAD_ID-timers.patch
diff --git a/srcpkgs/musl/patches/add-support-for-SIGEV_THREAD_ID-timers.patch b/srcpkgs/musl/patches/add-support-for-SIGEV_THREAD_ID-timers.patch
new file mode 100644
index 000000000000..e20dff5ba0d4
--- /dev/null
+++ b/srcpkgs/musl/patches/add-support-for-SIGEV_THREAD_ID-timers.patch
@@ -0,0 +1,74 @@
+From 7c71792e87691451f2a6b76348e83ad1889f1dcb Mon Sep 17 00:00:00 2001
+From: James Y Knight <jyknight@google.com>
+Date: Sun, 30 Jun 2019 21:55:20 -0400
+Subject: [PATCH] add support for SIGEV_THREAD_ID timers
+
+This is like SIGEV_SIGNAL, but targeted to a particular thread's
+tid, rather than the process.
+---
+ include/signal.h | 16 +++++++++++++---
+ src/time/timer_create.c | 8 ++++++--
+ 2 files changed, 19 insertions(+), 5 deletions(-)
+
+diff --git a/include/signal.h b/include/signal.h
+index fbdf667b2..9ed929e4f 100644
+--- a/include/signal.h
++++ b/include/signal.h
+@@ -180,14 +180,24 @@ struct sigevent {
+ union sigval sigev_value;
+ int sigev_signo;
+ int sigev_notify;
+- void (*sigev_notify_function)(union sigval);
+- pthread_attr_t *sigev_notify_attributes;
+- char __pad[56-3*sizeof(long)];
++ union {
++ char __pad[64 - 2*sizeof(int) - sizeof(union sigval)];
++ pid_t sigev_notify_thread_id;
++ struct {
++ void (*sigev_notify_function)(union sigval);
++ pthread_attr_t *sigev_notify_attributes;
++ } __sev_thread;
++ } __sev_fields;
+ };
+
++#define sigev_notify_thread_id __sev_fields.sigev_notify_thread_id
++#define sigev_notify_function __sev_fields.__sev_thread.sigev_notify_function
++#define sigev_notify_attributes __sev_fields.__sev_thread.sigev_notify_attributes
++
+ #define SIGEV_SIGNAL 0
+ #define SIGEV_NONE 1
+ #define SIGEV_THREAD 2
++#define SIGEV_THREAD_ID 4
+
+ int __libc_current_sigrtmin(void);
+ int __libc_current_sigrtmax(void);
+diff --git a/src/time/timer_create.c b/src/time/timer_create.c
+index 5ddfda278..4bef23905 100644
+--- a/src/time/timer_create.c
++++ b/src/time/timer_create.c
+@@ -71,11 +71,15 @@ int timer_create(clockid_t clk, struct sigevent *restrict evp, timer_t *restrict
+ switch (evp ? evp->sigev_notify : SIGEV_SIGNAL) {
+ case SIGEV_NONE:
+ case SIGEV_SIGNAL:
++ case SIGEV_THREAD_ID:
+ if (evp) {
+ ksev.sigev_value = evp->sigev_value;
+ ksev.sigev_signo = evp->sigev_signo;
+ ksev.sigev_notify = evp->sigev_notify;
+- ksev.sigev_tid = 0;
++ if (evp->sigev_notify == SIGEV_THREAD_ID)
++ ksev.sigev_tid = evp->sigev_notify_thread_id;
++ else
++ ksev.sigev_tid = 0;
+ ksevp = &ksev;
+ }
+ if (syscall(SYS_timer_create, clk, ksevp, &timerid) < 0)
+@@ -107,7 +111,7 @@ int timer_create(clockid_t clk, struct sigevent *restrict evp, timer_t *restrict
+
+ ksev.sigev_value.sival_ptr = 0;
+ ksev.sigev_signo = SIGTIMER;
+- ksev.sigev_notify = 4; /* SIGEV_THREAD_ID */
++ ksev.sigev_notify = SIGEV_THREAD_ID;
+ ksev.sigev_tid = td->tid;
+ if (syscall(SYS_timer_create, clk, &ksev, &timerid) < 0)
+ timerid = -1;
diff --git a/srcpkgs/musl/template b/srcpkgs/musl/template
index 34e6ed4fba6e..afb33cd868b5 100644
--- a/srcpkgs/musl/template
+++ b/srcpkgs/musl/template
@@ -2,7 +2,7 @@
pkgname=musl
reverts="1.2.0_1"
version=1.1.24
-revision=11
+revision=12
archs="*-musl"
bootstrap=yes
build_style=gnu-configure
From 2c1c8ba98946106950bb8db7f6aeba83e358d6f0 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sat, 5 Nov 2022 11:33:12 -0700
Subject: [PATCH 08/38] gcc-multilib: update to 12.2.0.
---
srcpkgs/gcc-multilib/template | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/srcpkgs/gcc-multilib/template b/srcpkgs/gcc-multilib/template
index f28eb237c287..ba9bafcadfd6 100644
--- a/srcpkgs/gcc-multilib/template
+++ b/srcpkgs/gcc-multilib/template
@@ -3,15 +3,15 @@ archs="x86_64"
_triplet="x86_64-unknown-linux-gnu"
pkgname=gcc-multilib
-version=10.2.1pre1
+version=12.2.0
revision=1
_majorver="${version%.*}"
short_desc="GNU Compiler Collection (multilib files)"
maintainer="Orphaned <orphan@voidlinux.org>"
homepage="http://gcc.gnu.org"
license="GFDL-1.2-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
-distfiles="https://dev.alpinelinux.org/~nenolod/gcc-${version/pre/_pre}.tar.xz"
-checksum=772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+distfiles="${GNU_SITE}/gcc/gcc-${version}/gcc-${version}.tar.xz"
+checksum=e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
hostmakedepends="perl flex tar zip unzip"
makedepends="zlib-devel libmpc-devel isl15-devel libfl-devel
@@ -70,7 +70,7 @@ do_build() {
make ${makejobs}
}
do_install() {
- local _pc_triplet=x86_64-pc-linux-gnu _version=${version%pre1}
+ local _pc_triplet=x86_64-pc-linux-gnu
# Install to a tempdir and then only copy relevant files.
cd ${wrksrc}
make DESTDIR=${wrksrc}/${pkgname}-build install
@@ -80,9 +80,9 @@ do_install() {
vmkdir usr/include/c++/${_majorver}/${_triplet}
vmkdir usr/lib/gcc/${_triplet}/${_majorver}
- cp -a ${wrksrc}/${pkgname}-build/usr/lib/gcc/${_pc_triplet}/${_version}/32 \
+ cp -a ${wrksrc}/${pkgname}-build/usr/lib/gcc/${_pc_triplet}/${version}/32 \
${DESTDIR}/usr/lib/gcc/${_triplet}/${_majorver}/
- cp -a ${wrksrc}/${pkgname}-build/usr/include/c++/${_version}/${_pc_triplet}/32 \
+ cp -a ${wrksrc}/${pkgname}-build/usr/include/c++/${version}/${_pc_triplet}/32 \
${DESTDIR}/usr/include/c++/${_majorver}/${_triplet}
vinstall ${wrksrc}/host-${_pc_triplet}/gcc/specs 644 usr/lib/gcc/${_triplet}/${_majorver}
From 3f112430e1c969475dc57212db706f1ea4574b78 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sat, 5 Nov 2022 11:33:12 -0700
Subject: [PATCH 09/38] libgccjit: update to 12.2.0.
---
srcpkgs/libgccjit/files/libgccjit-musl.patch | 63 --------------------
srcpkgs/libgccjit/template | 24 +++-----
2 files changed, 9 insertions(+), 78 deletions(-)
delete mode 100644 srcpkgs/libgccjit/files/libgccjit-musl.patch
diff --git a/srcpkgs/libgccjit/files/libgccjit-musl.patch b/srcpkgs/libgccjit/files/libgccjit-musl.patch
deleted file mode 100644
index d2ed16928c82..000000000000
--- a/srcpkgs/libgccjit/files/libgccjit-musl.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-diff --git a/gcc/jit/jit-playback.c b/gcc/jit/jit-playback.c
-index 5bccf591a..35f5e35ef 100644
---- a/gcc/jit/jit-playback.c
-+++ b/gcc/jit/jit-playback.c
-@@ -18,6 +18,8 @@ You should have received a copy of the GNU General Public License
- along with GCC; see the file COPYING3. If not see
- <http://www.gnu.org/licenses/>. */
-
-+#include <pthread.h>
-+
- #include "config.h"
- #include "system.h"
- #include "coretypes.h"
-@@ -41,8 +43,6 @@ along with GCC; see the file COPYING3. If not see
- #include "diagnostic.h"
- #include "stmt.h"
-
--#include <pthread.h>
--
- #include "jit-playback.h"
- #include "jit-result.h"
- #include "jit-builtins.h"
-diff --git a/gcc/jit/jit-recording.c b/gcc/jit/jit-recording.c
-index a237d574f..5785e3269 100644
---- a/gcc/jit/jit-recording.c
-+++ b/gcc/jit/jit-recording.c
-@@ -18,6 +18,8 @@ You should have received a copy of the GNU General Public License
- along with GCC; see the file COPYING3. If not see
- <http://www.gnu.org/licenses/>. */
-
-+#include <pthread.h>
-+
- #include "config.h"
- #include "system.h"
- #include "coretypes.h"
-@@ -25,8 +27,6 @@ along with GCC; see the file COPYING3. If not see
- #include "pretty-print.h"
- #include "toplev.h"
-
--#include <pthread.h>
--
- #include "jit-builtins.h"
- #include "jit-recording.h"
- #include "jit-playback.h"
-diff --git a/gcc/jit/libgccjit.c b/gcc/jit/libgccjit.c
-index f9c33c63c..75f21d275 100644
---- a/gcc/jit/libgccjit.c
-+++ b/gcc/jit/libgccjit.c
-@@ -18,13 +18,13 @@ You should have received a copy of the GNU General Public License
- along with GCC; see the file COPYING3. If not see
- <http://www.gnu.org/licenses/>. */
-
-+#include <pthread.h>
- #include "config.h"
- #include "system.h"
- #include "coretypes.h"
- #include "timevar.h"
- #include "typed-splay-tree.h"
- #include "cppbuiltin.h"
--#include <pthread.h>
-
- #include "libgccjit.h"
- #include "jit-recording.h"
diff --git a/srcpkgs/libgccjit/template b/srcpkgs/libgccjit/template
index 0b37c3ee9f8b..fde1affd54b7 100644
--- a/srcpkgs/libgccjit/template
+++ b/srcpkgs/libgccjit/template
@@ -3,18 +3,12 @@
# which use the version number.
pkgname=libgccjit
-# we are using a 10-stable git snapshot alpine is using in order
-# to get regression fixes not yet incorporate into a stable release
-# it should be possible to switch back to stable with 10.3 or 11
-version=10.2.1pre1
+version=12.2.0
revision=1
-_patchver="${version%pre*}"
-_minorver="${_patchver%.*}"
-_majorver="${_minorver%.*}"
-_gmp_version=6.2.0
+_gmp_version=6.2.1
_mpfr_version=4.1.0
-_mpc_version=1.1.0
-_isl_version=0.21
+_mpc_version=1.2.1
+_isl_version=0.24
create_wrksrc=yes
short_desc="Just-In-Time Compilation library for GCC"
maintainer="Lane Biocini <lane@mailbox.org>"
@@ -22,16 +16,16 @@ homepage="https://gcc.gnu.org"
license="GFDL-1.2-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
# *-musl builders have issues fetching https://ftp.gnu.org/gnu/mpc/mpc-1.1.0.tar.gz
distfiles="
- https://dev.alpinelinux.org/~nenolod/gcc-${version/pre/_pre}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${version}/gcc-${version}.tar.xz
https://gmplib.org/download/gmp/gmp-${_gmp_version}.tar.xz
${GNU_SITE}/mpfr/mpfr-${_mpfr_version}.tar.xz
${GNU_SITE}/mpc/mpc-${_mpc_version}.tar.gz
${SOURCEFORGE_SITE}/libisl/isl-${_isl_version}.tar.bz2"
-checksum="772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 258e6cd51b3fbdfc185c716d55f82c08aff57df0c6fbd143cf6ed561267a1526
+checksum="e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
+ fd4829912cddd12f84181c3451cc752be224643e87fac497b69edddadc49b4f2
0c98a3f1732ff6ca4ea690552079da9c597872d30e96ec28414ee23c95558a7f
- 6985c538143c1208dcb1ac42cedad6ff52e267b47e5f970183a3e75125b43c2e
- d18ca11f8ad1a39ab6d03d3dcb3365ab416720fcb65b42d69f34f51bf0a0e859"
+ 17503d2c395dfcf106b622dc142683c1199431d095367c6aacba6eec30340459
+ fcf78dd9656c10eb8cf9fbd5f59a0b6b01386205fe1934b3b287a0a1898145c0"
nopie=yes
lib32disabled=yes
makedepends="zlib-devel"
From 540268409c801ec1d7194a78027611da82ee867f Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sat, 5 Nov 2022 11:33:12 -0700
Subject: [PATCH 10/38] build-style/void-cross: Update flags for gcc12 and
glibc 2.36
gcov can't be built without libc:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100289
Remove -no-pie from build. glibc 2.35 and newer uses -static-pie by default:
https://sourceware.org/pipermail/glibc-cvs/2021q4/075916.html
---
common/build-style/void-cross.sh | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
diff --git a/common/build-style/void-cross.sh b/common/build-style/void-cross.sh
index 92f03f8130f5..4804193d8395 100644
--- a/common/build-style/void-cross.sh
+++ b/common/build-style/void-cross.sh
@@ -53,6 +53,7 @@ _void_cross_build_binutils() {
--sbindir=/usr/bin \
--libdir=/usr/lib \
--libexecdir=/usr/lib \
+ --sysconfdir=/etc \
--target=${tgt} \
--with-sysroot=/usr/${tgt} \
--disable-nls \
@@ -60,7 +61,9 @@ _void_cross_build_binutils() {
--disable-multilib \
--disable-werror \
--disable-gold \
+ --disable-gprofng \
--enable-relro \
+ --enable-new-dtags \
--enable-plugins \
--enable-64-bit-bfd \
--enable-deterministic-archives \
@@ -132,6 +135,7 @@ _void_cross_build_bootstrap_gcc() {
--disable-libssp \
--disable-libitm \
--disable-libatomic \
+ --disable-gcov \
--disable-threads \
--disable-sjlj-exceptions \
--enable-languages=c \
@@ -381,6 +385,7 @@ _void_cross_build_gcc() {
extra_args+=" --disable-gnu-unique-object"
extra_args+=" libat_cv_have_ifunc=no"
else
+ extra_args+=" --enable-clocale=gnu"
extra_args+=" --enable-gnu-unique-object"
fi
@@ -460,6 +465,14 @@ do_build() {
local binutils_ver linux_ver gcc_ver libc_ver libucontext_ver
local tgt=${sourcepkg/cross-}
+ export CFLAGS="${CFLAGS/-D_FORTIFY_SOURCE=2/}"
+ export CXXFLAGS="${CXXFLAGS/-D_FORTIFY_SOURCE=2/}"
+
+ # Disable explicit -fno-PIE, gcc/binutils/libc will figure this out itself.
+ export CFLAGS="${CFLAGS//-fno-PIE/}"
+ export CXXFLAGS="${CXXFLAGS//-fno-PIE/}"
+ export LDFLAGS="${LDFLAGS//-no-pie/}"
+
_void_cross_test_ver binutils
_void_cross_test_ver linux
_void_cross_test_ver gcc
@@ -625,6 +638,9 @@ do_install() {
# then remove it because it conflicts with libquadmath package
rm -rf ${DESTDIR}/${sysroot}/usr/lib/libquadmath.*
+ # Remove libdep linker plugin because it conflicts with system binutils
+ rm -f ${DESTDIR}/usr/lib/bfd-plugins/libdep*
+
# Remove leftover symlinks
rm -f ${DESTDIR}/usr/lib${XBPS_TARGET_WORDSIZE}
rm -f ${DESTDIR}/lib*
From 2895b35f82e3a24cad5975a880ca5f7c93d5fa2a Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sat, 5 Nov 2022 11:33:12 -0700
Subject: [PATCH 11/38] qemu: remove broken patch
The necessary patch has been imported into musl so no need
to cast the sigevent struct to a more glibc-like one.
---
.../musl-fix-sigevent-and-sigval_t.patch | 27 -------------------
1 file changed, 27 deletions(-)
delete mode 100644 srcpkgs/qemu/patches/musl-fix-sigevent-and-sigval_t.patch
diff --git a/srcpkgs/qemu/patches/musl-fix-sigevent-and-sigval_t.patch b/srcpkgs/qemu/patches/musl-fix-sigevent-and-sigval_t.patch
deleted file mode 100644
index 4b4f1117c15f..000000000000
--- a/srcpkgs/qemu/patches/musl-fix-sigevent-and-sigval_t.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-Note: Remove this patch with musl 1.2.2
-
---- a/linux-user/syscall.c
-+++ b/linux-user/syscall.c
-@@ -5020,10 +5020,21 @@
- #ifndef HAVE_SIGEV_NOTIFY_THREAD_ID
- #define sigev_notify_thread_id _sigev_un._tid
- #endif
-
--static inline abi_long target_to_host_sigevent(struct sigevent *host_sevp,
-+struct host_sigevent {
-+ union sigval sigev_value;
-+ int sigev_signo;
-+ int sigev_notify;
-+ union {
-+ char _pad[64 - sizeof(int) * 2 - sizeof(union sigval)];
-+ int _tid;
-+ } _sigev_un;
-+};
-+
-+static inline abi_long target_to_host_sigevent(struct sigevent *sevp,
- abi_ulong target_addr)
- {
-+ struct host_sigevent *host_sevp = (struct host_sigevent *) sevp;
- struct target_sigevent *target_sevp;
-
- if (!lock_user_struct(VERIFY_READ, target_sevp, target_addr, 1)) {
From aaaf08aef9c30b8a5285824c659d2873bcc085eb Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sat, 19 Nov 2022 13:26:24 -0800
Subject: [PATCH 12/38] mk-configure: rebuild for gcc 12
---
srcpkgs/mk-configure/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/mk-configure/template b/srcpkgs/mk-configure/template
index 9d12f11a9799..c50d8adf213f 100644
--- a/srcpkgs/mk-configure/template
+++ b/srcpkgs/mk-configure/template
@@ -1,7 +1,7 @@
# Template file for 'mk-configure'
pkgname=mk-configure
version=0.37.0
-revision=1
+revision=2
build_style=gnu-makefile
make_cmd=bmake
make_install_args="MANDIR=/usr/share/man"
From 2766ca2ea8c097001c4aa88a017de9d3ee7dc0d1 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:28 -0800
Subject: [PATCH 13/38] cross-aarch64-linux-gnu: update to gcc 12.2.0.
---
srcpkgs/cross-aarch64-linux-gnu/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-aarch64-linux-gnu/template b/srcpkgs/cross-aarch64-linux-gnu/template
index 18de21aa3ccd..9e6fb75c198d 100644
--- a/srcpkgs/cross-aarch64-linux-gnu/template
+++ b/srcpkgs/cross-aarch64-linux-gnu/template
@@ -1,15 +1,16 @@
# Template file for 'cross-aarch64-linux-gnu'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
-_glibc_version=2.32
+_binutils_version=2.39
+_gcc_version=12.2.0
+_glibc_version=2.36
_linux_version=5.10.4
pkgname=cross-aarch64-linux-gnu
-version=0.34
+version=0.35
revision=1
build_style=void-cross
configure_args="--with-arch=armv8-a"
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Leah Neukirchen <leah@vuxu.org>"
@@ -17,12 +18,12 @@ license="GPL-2.0-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
+ 1c959fea240906226062cb4b1e7ebce71a9f0e3c0836c09e7e3423d434fcfe75
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
From a35f78cd51b135076e5871aa18230d2af4cb3ca0 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:28 -0800
Subject: [PATCH 14/38] cross-aarch64-linux-musl: update to gcc 12.2.0.
---
srcpkgs/cross-aarch64-linux-musl/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-aarch64-linux-musl/template b/srcpkgs/cross-aarch64-linux-musl/template
index bb6a770afb79..ba14c96bccea 100644
--- a/srcpkgs/cross-aarch64-linux-musl/template
+++ b/srcpkgs/cross-aarch64-linux-musl/template
@@ -1,29 +1,30 @@
# Template file for 'cross-aarch64-linux-musl'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.2.0
_musl_version=1.1.24
_linux_version=5.10.4
_libucontext_version=1.0
pkgname=cross-aarch64-linux-musl
-version=0.34
-revision=4
+version=0.35
+revision=1
build_style=void-cross
configure_args="--with-arch=armv8-a"
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
-homepage="https://www.voidlinux.org/"
license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
+homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz
https://github.com/kaniini/libucontext/archive/libucontext-${_libucontext_version}.tar.gz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec
23714e99a87f6dea82e8a073c526325161dd65462459820b16a6162be91955bb"
From a637a7d7f5011f90c442167c79ea4022136a59ab Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:28 -0800
Subject: [PATCH 15/38] cross-arm-linux-gnueabi: update to gcc 12.2.0.
---
srcpkgs/cross-arm-linux-gnueabi/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-arm-linux-gnueabi/template b/srcpkgs/cross-arm-linux-gnueabi/template
index a3aba72aa93a..5c774e16f430 100644
--- a/srcpkgs/cross-arm-linux-gnueabi/template
+++ b/srcpkgs/cross-arm-linux-gnueabi/template
@@ -1,15 +1,16 @@
# Template file for 'cross-arm-linux-gnueabi'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
-_glibc_version=2.32
+_binutils_version=2.39
+_gcc_version=12.2.0
+_glibc_version=2.36
_linux_version=5.10.4
pkgname=cross-arm-linux-gnueabi
-version=0.34
+version=0.35
revision=1
build_style=void-cross
configure_args="--with-arch=armv5te --with-float=soft"
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
@@ -17,12 +18,12 @@ license="GPL-2.0-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
+ 1c959fea240906226062cb4b1e7ebce71a9f0e3c0836c09e7e3423d434fcfe75
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
From 74d7621c29619881231be62cd6efc4c28c1733cd Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:28 -0800
Subject: [PATCH 16/38] cross-arm-linux-gnueabihf: update to gcc 12.2.0.
---
srcpkgs/cross-arm-linux-gnueabihf/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-arm-linux-gnueabihf/template b/srcpkgs/cross-arm-linux-gnueabihf/template
index d9ab86cf2ecc..d6298ab639a4 100644
--- a/srcpkgs/cross-arm-linux-gnueabihf/template
+++ b/srcpkgs/cross-arm-linux-gnueabihf/template
@@ -1,15 +1,16 @@
# Template file for 'cross-arm-linux-gnueabihf'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
-_glibc_version=2.32
+_binutils_version=2.39
+_gcc_version=12.2.0
+_glibc_version=2.36
_linux_version=5.10.4
pkgname=cross-arm-linux-gnueabihf
-version=0.34
+version=0.35
revision=1
build_style=void-cross
configure_args="--with-arch=armv6 --with-fpu=vfp --with-float=hard"
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
@@ -17,12 +18,12 @@ license="GPL-2.0-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
+ 1c959fea240906226062cb4b1e7ebce71a9f0e3c0836c09e7e3423d434fcfe75
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
From 4cab8b8ef1086c7498b6432b5b30715d7fcc6f7f Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:28 -0800
Subject: [PATCH 17/38] cross-arm-linux-musleabi: update to gcc 12.2.0.
---
srcpkgs/cross-arm-linux-musleabi/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-arm-linux-musleabi/template b/srcpkgs/cross-arm-linux-musleabi/template
index 6692d891e1bd..24df78e8fd8e 100644
--- a/srcpkgs/cross-arm-linux-musleabi/template
+++ b/srcpkgs/cross-arm-linux-musleabi/template
@@ -1,29 +1,30 @@
# Template file for 'cross-arm-linux-musleabi'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.2.0
_musl_version=1.1.24
_linux_version=5.10.4
_libucontext_version=1.0
pkgname=cross-arm-linux-musleabi
-version=0.34
-revision=4
+version=0.35
+revision=1
build_style=void-cross
configure_args="--with-arch=armv5te --with-float=soft"
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
-homepage="https://www.voidlinux.org/"
license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
+homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz
https://github.com/kaniini/libucontext/archive/libucontext-${_libucontext_version}.tar.gz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec
23714e99a87f6dea82e8a073c526325161dd65462459820b16a6162be91955bb"
From 5c19dd58e72ac9b9fccbb71d830c62e7a1ef08b8 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:28 -0800
Subject: [PATCH 18/38] cross-arm-linux-musleabihf: update to gcc 12.2.0.
---
srcpkgs/cross-arm-linux-musleabihf/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-arm-linux-musleabihf/template b/srcpkgs/cross-arm-linux-musleabihf/template
index bb62bd5ebc55..8093700f909c 100644
--- a/srcpkgs/cross-arm-linux-musleabihf/template
+++ b/srcpkgs/cross-arm-linux-musleabihf/template
@@ -1,29 +1,30 @@
# Template file for 'cross-arm-linux-musleabihf'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.2.0
_musl_version=1.1.24
_linux_version=5.10.4
_libucontext_version=1.0
pkgname=cross-arm-linux-musleabihf
-version=0.34
-revision=4
+version=0.35
+revision=1
build_style=void-cross
configure_args="--with-arch=armv6 --with-fpu=vfp --with-float=hard"
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
-homepage="https://www.voidlinux.org/"
license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
+homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz
https://github.com/kaniini/libucontext/archive/libucontext-${_libucontext_version}.tar.gz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec
23714e99a87f6dea82e8a073c526325161dd65462459820b16a6162be91955bb"
From c3e99201416a036ba3070537b56eb1f7bf407368 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:28 -0800
Subject: [PATCH 19/38] cross-armv7l-linux-gnueabihf: update to gcc 12.2.0.
---
srcpkgs/cross-armv7l-linux-gnueabihf/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-armv7l-linux-gnueabihf/template b/srcpkgs/cross-armv7l-linux-gnueabihf/template
index 30c89b6294ef..92665326428b 100644
--- a/srcpkgs/cross-armv7l-linux-gnueabihf/template
+++ b/srcpkgs/cross-armv7l-linux-gnueabihf/template
@@ -1,15 +1,16 @@
# Template file for 'cross-armv7l-linux-gnueabihf'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
-_glibc_version=2.32
+_binutils_version=2.39
+_gcc_version=12.2.0
+_glibc_version=2.36
_linux_version=5.10.4
pkgname=cross-armv7l-linux-gnueabihf
-version=0.34
+version=0.35
revision=1
build_style=void-cross
configure_args="--with-arch=armv7-a --with-fpu=vfpv3 --with-float=hard"
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
@@ -17,12 +18,12 @@ license="GPL-2.0-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
+ 1c959fea240906226062cb4b1e7ebce71a9f0e3c0836c09e7e3423d434fcfe75
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
From 1e3cccbd7ca501249af7db2af27a9cb718a5cd61 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:28 -0800
Subject: [PATCH 20/38] cross-armv7l-linux-musleabihf: update to gcc 12.2.0.
---
.../cross-armv7l-linux-musleabihf/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-armv7l-linux-musleabihf/template b/srcpkgs/cross-armv7l-linux-musleabihf/template
index 0a588cdf1a58..e5af2c9ccbf2 100644
--- a/srcpkgs/cross-armv7l-linux-musleabihf/template
+++ b/srcpkgs/cross-armv7l-linux-musleabihf/template
@@ -1,29 +1,30 @@
# Template file for 'cross-armv7l-linux-musleabihf'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.2.0
_musl_version=1.1.24
_linux_version=5.10.4
_libucontext_version=1.0
pkgname=cross-armv7l-linux-musleabihf
-version=0.34
-revision=4
+version=0.35
+revision=1
build_style=void-cross
configure_args="--with-arch=armv7-a --with-fpu=vfpv3 --with-float=hard"
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
-homepage="https://www.voidlinux.org/"
license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
+homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz
https://github.com/kaniini/libucontext/archive/libucontext-${_libucontext_version}.tar.gz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec
23714e99a87f6dea82e8a073c526325161dd65462459820b16a6162be91955bb"
From 0b2ba6ca95b5a0a4249ee74eba4cc9a3419e9a01 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:29 -0800
Subject: [PATCH 21/38] cross-i686-linux-musl: update to gcc 12.2.0.
---
srcpkgs/cross-i686-linux-musl/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-i686-linux-musl/template b/srcpkgs/cross-i686-linux-musl/template
index 8be16a230d8d..d624bb7a3254 100644
--- a/srcpkgs/cross-i686-linux-musl/template
+++ b/srcpkgs/cross-i686-linux-musl/template
@@ -1,28 +1,29 @@
# Template file for 'cross-i686-linux-musl'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.2.0
_musl_version=1.1.24
_linux_version=5.10.4
_libucontext_version=1.0
pkgname=cross-i686-linux-musl
-version=0.34
-revision=4
+version=0.35
+revision=1
build_style=void-cross
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
-homepage="https://www.voidlinux.org/"
license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
+homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz
https://github.com/kaniini/libucontext/archive/libucontext-${_libucontext_version}.tar.gz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec
23714e99a87f6dea82e8a073c526325161dd65462459820b16a6162be91955bb"
From 6b98e37c0753c292bdf0eab151aa4348ba54da40 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:29 -0800
Subject: [PATCH 22/38] cross-i686-pc-linux-gnu: update to gcc 12.2.0.
---
srcpkgs/cross-i686-pc-linux-gnu/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-i686-pc-linux-gnu/template b/srcpkgs/cross-i686-pc-linux-gnu/template
index 263a43f7a7b8..6a9e54db807a 100644
--- a/srcpkgs/cross-i686-pc-linux-gnu/template
+++ b/srcpkgs/cross-i686-pc-linux-gnu/template
@@ -1,14 +1,15 @@
# Template file for 'cross-i686-pc-linux-gnu'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
-_glibc_version=2.32
+_binutils_version=2.39
+_gcc_version=12.2.0
+_glibc_version=2.36
_linux_version=5.10.4
pkgname=cross-i686-pc-linux-gnu
-version=0.34
+version=0.35
revision=1
build_style=void-cross
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
@@ -16,12 +17,12 @@ license="GPL-2.0-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
+ 1c959fea240906226062cb4b1e7ebce71a9f0e3c0836c09e7e3423d434fcfe75
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
From db8745f4c9dc7ca8032246afa0c836b161b876fe Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:29 -0800
Subject: [PATCH 23/38] cross-mips-linux-musl: update to gcc 12.2.0.
---
srcpkgs/cross-mips-linux-musl/template | 21 +++++++++++----------
1 file changed, 11 insertions(+), 10 deletions(-)
diff --git a/srcpkgs/cross-mips-linux-musl/template b/srcpkgs/cross-mips-linux-musl/template
index 9b5d5819b1a0..67a5c413396c 100644
--- a/srcpkgs/cross-mips-linux-musl/template
+++ b/srcpkgs/cross-mips-linux-musl/template
@@ -1,28 +1,29 @@
# Template file for 'cross-mips-linux-musl'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.2.0
_musl_version=1.1.24
_linux_version=5.10.4
pkgname=cross-mips-linux-musl
-version=0.34
-revision=3
+version=0.35
+revision=1
build_style=void-cross
configure_args="--with-arch=mips32r2 --with-float=soft
--with-linker-hash-style=sysv"
hostmakedepends="texinfo tar gcc-objc flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
-homepage="https://www.voidlinux.org/"
license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
+homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
- https://www.musl-libc.org/releases/musl-${_musl_version}.tar.gz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
+ https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
From d8936278496f2d7f260f3a9eb351caa5dd58829f Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:29 -0800
Subject: [PATCH 24/38] cross-mips-linux-muslhf: update to gcc 12.2.0.
---
srcpkgs/cross-mips-linux-muslhf/template | 21 +++++++++++----------
1 file changed, 11 insertions(+), 10 deletions(-)
diff --git a/srcpkgs/cross-mips-linux-muslhf/template b/srcpkgs/cross-mips-linux-muslhf/template
index d7590af9ec03..bdf8600ce95b 100644
--- a/srcpkgs/cross-mips-linux-muslhf/template
+++ b/srcpkgs/cross-mips-linux-muslhf/template
@@ -1,28 +1,29 @@
# Template file for 'cross-mips-linux-muslhf'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.2.0
_musl_version=1.1.24
_linux_version=5.10.4
pkgname=cross-mips-linux-muslhf
-version=0.34
-revision=3
+version=0.35
+revision=1
build_style=void-cross
configure_args="--with-arch=mips32r2 --with-float=hard
--with-linker-hash-style=sysv"
hostmakedepends="texinfo tar gcc-objc flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="hipperson0 <hipperson0@gmail.com>"
-homepage="https://www.voidlinux.org/"
license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
+homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
- https://www.musl-libc.org/releases/musl-${_musl_version}.tar.gz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
+ https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
From a91ba3ab1f5491e1676bf8400a497fb8b5c3cf3b Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:29 -0800
Subject: [PATCH 25/38] cross-mipsel-linux-musl: update to gcc 12.2.0.
---
srcpkgs/cross-mipsel-linux-musl/template | 21 +++++++++++----------
1 file changed, 11 insertions(+), 10 deletions(-)
diff --git a/srcpkgs/cross-mipsel-linux-musl/template b/srcpkgs/cross-mipsel-linux-musl/template
index 1acba7016dbc..de49387d517b 100644
--- a/srcpkgs/cross-mipsel-linux-musl/template
+++ b/srcpkgs/cross-mipsel-linux-musl/template
@@ -1,28 +1,29 @@
# Template file for 'cross-mipsel-linux-musl'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.2.0
_musl_version=1.1.24
_linux_version=5.10.4
pkgname=cross-mipsel-linux-musl
-version=0.34
-revision=3
+version=0.35
+revision=1
build_style=void-cross
configure_args="--with-arch=mips32r2 --with-float=soft
--with-linker-hash-style=sysv"
hostmakedepends="texinfo tar gcc-objc flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
-homepage="https://www.voidlinux.org/"
license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
+homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
- https://www.musl-libc.org/releases/musl-${_musl_version}.tar.gz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
+ https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
From 8bc659104ffe164ac97f12f2fd2e5d59df6c8b2b Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:29 -0800
Subject: [PATCH 26/38] cross-mipsel-linux-muslhf: update to gcc 12.2.0.
---
srcpkgs/cross-mipsel-linux-muslhf/template | 21 +++++++++++----------
1 file changed, 11 insertions(+), 10 deletions(-)
diff --git a/srcpkgs/cross-mipsel-linux-muslhf/template b/srcpkgs/cross-mipsel-linux-muslhf/template
index e4a55f028bc4..b27ce6475a38 100644
--- a/srcpkgs/cross-mipsel-linux-muslhf/template
+++ b/srcpkgs/cross-mipsel-linux-muslhf/template
@@ -1,28 +1,29 @@
# Template file for 'cross-mipsel-linux-muslhf'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.2.0
_musl_version=1.1.24
_linux_version=5.10.4
pkgname=cross-mipsel-linux-muslhf
-version=0.34
-revision=3
+version=0.35
+revision=1
build_style=void-cross
configure_args="--with-arch=mips32r2 --with-float=hard
--with-linker-hash-style=sysv"
hostmakedepends="texinfo tar gcc-objc flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
-homepage="https://www.voidlinux.org/"
license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
+homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
- https://www.musl-libc.org/releases/musl-${_musl_version}.tar.gz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
+ https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
From 40ce097d0da9b33d69ea2e6ed0ef77920c6564a9 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:29 -0800
Subject: [PATCH 27/38] cross-powerpc-linux-gnu: update to gcc 12.2.0.
---
srcpkgs/cross-powerpc-linux-gnu/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-powerpc-linux-gnu/template b/srcpkgs/cross-powerpc-linux-gnu/template
index b97a21d0d72e..79579e093b12 100644
--- a/srcpkgs/cross-powerpc-linux-gnu/template
+++ b/srcpkgs/cross-powerpc-linux-gnu/template
@@ -1,15 +1,16 @@
# Template file for 'cross-powerpc-linux-gnu'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
-_glibc_version=2.32
+_binutils_version=2.39
+_gcc_version=12.2.0
+_glibc_version=2.36
_linux_version=5.10.4
pkgname=cross-powerpc-linux-gnu
-version=0.34
+version=0.35
revision=1
build_style=void-cross
configure_args="--enable-secureplt --disable-vtable-verify"
hostmakedepends="texinfo tar gcc-objc flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Thomas Batten <stenstorpmc@gmail.com>"
@@ -17,12 +18,12 @@ license="GPL-2.0-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
+ 1c959fea240906226062cb4b1e7ebce71a9f0e3c0836c09e7e3423d434fcfe75
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
From bb5eda3a1f95d385cb229ef3089ee196433e6194 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:29 -0800
Subject: [PATCH 28/38] cross-powerpc-linux-musl: update to gcc 12.2.0.
---
srcpkgs/cross-powerpc-linux-musl/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-powerpc-linux-musl/template b/srcpkgs/cross-powerpc-linux-musl/template
index f9b22f0610d3..9bb6acd359b6 100644
--- a/srcpkgs/cross-powerpc-linux-musl/template
+++ b/srcpkgs/cross-powerpc-linux-musl/template
@@ -1,28 +1,29 @@
# Template file for 'cross-powerpc-linux-musl'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.2.0
_musl_version=1.1.24
_linux_version=5.10.4
pkgname=cross-powerpc-linux-musl
-version=0.34
-revision=3
+version=0.35
+revision=1
build_style=void-cross
configure_args="--enable-secureplt --disable-vtable-verify
--disable-decimal-float"
hostmakedepends="texinfo tar gcc-objc flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Thomas Batten <stenstorpmc@gmail.com>"
-homepage="https://www.voidlinux.org/"
license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
+homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
From 2bfb33cab984f72552d48eb97b93573a05a240f7 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:29 -0800
Subject: [PATCH 29/38] cross-powerpc64-linux-gnu: update to gcc 12.2.0.
---
srcpkgs/cross-powerpc64-linux-gnu/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-powerpc64-linux-gnu/template b/srcpkgs/cross-powerpc64-linux-gnu/template
index 35cfcaa6f02e..2d153d00add6 100644
--- a/srcpkgs/cross-powerpc64-linux-gnu/template
+++ b/srcpkgs/cross-powerpc64-linux-gnu/template
@@ -1,16 +1,17 @@
# Template file for 'cross-powerpc64-linux-gnu'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
-_glibc_version=2.32
+_binutils_version=2.39
+_gcc_version=12.2.0
+_glibc_version=2.36
_linux_version=5.10.4
pkgname=cross-powerpc64-linux-gnu
-version=0.34
+version=0.35
revision=1
build_style=void-cross
configure_args="--enable-secureplt --disable-vtable-verify --with-abi=elfv2
--enable-targets=powerpc-linux"
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
@@ -18,12 +19,12 @@ license="GPL-2.0-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
+ 1c959fea240906226062cb4b1e7ebce71a9f0e3c0836c09e7e3423d434fcfe75
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
From 088c1f270345f4fdb7f0171cc506d04eea09b26f Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:29 -0800
Subject: [PATCH 30/38] cross-powerpc64-linux-musl: update to gcc 12.2.0.
---
srcpkgs/cross-powerpc64-linux-musl/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-powerpc64-linux-musl/template b/srcpkgs/cross-powerpc64-linux-musl/template
index 016f18776a6d..e0848fe0bff7 100644
--- a/srcpkgs/cross-powerpc64-linux-musl/template
+++ b/srcpkgs/cross-powerpc64-linux-musl/template
@@ -1,30 +1,31 @@
# Template file for 'cross-powerpc64-linux-musl'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.2.0
_musl_version=1.1.24
_linux_version=5.10.4
_libucontext_version=1.0
pkgname=cross-powerpc64-linux-musl
-version=0.34
-revision=4
+version=0.35
+revision=1
build_style=void-cross
configure_args="--enable-secureplt --disable-vtable-verify
--disable-decimal-float --with-abi=elfv2 --enable-targets=powerpc-linux"
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
-homepage="https://www.voidlinux.org/"
license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
+homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz
https://github.com/kaniini/libucontext/archive/libucontext-${_libucontext_version}.tar.gz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec
23714e99a87f6dea82e8a073c526325161dd65462459820b16a6162be91955bb"
From d01c23315371342661778d3b72ae1ef5eec93cf3 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:29 -0800
Subject: [PATCH 31/38] cross-powerpc64le-linux-gnu: update to gcc 12.2.0.
---
srcpkgs/cross-powerpc64le-linux-gnu/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-powerpc64le-linux-gnu/template b/srcpkgs/cross-powerpc64le-linux-gnu/template
index 463d7e92d20d..8d8e010e15c0 100644
--- a/srcpkgs/cross-powerpc64le-linux-gnu/template
+++ b/srcpkgs/cross-powerpc64le-linux-gnu/template
@@ -1,16 +1,17 @@
# Template file for 'cross-powerpc64le-linux-gnu'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
-_glibc_version=2.32
+_binutils_version=2.39
+_gcc_version=12.2.0
+_glibc_version=2.36
_linux_version=5.10.4
pkgname=cross-powerpc64le-linux-gnu
-version=0.34
+version=0.35
revision=1
build_style=void-cross
configure_args="--enable-secureplt --disable-vtable-verify --with-abi=elfv2
--enable-targets=powerpcle-linux"
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
@@ -18,12 +19,12 @@ license="GPL-2.0-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
+ 1c959fea240906226062cb4b1e7ebce71a9f0e3c0836c09e7e3423d434fcfe75
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
From 45cd9b49fbcba201ba2bdc22f8800087c6b83cdf Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:29 -0800
Subject: [PATCH 32/38] cross-powerpc64le-linux-musl: update to gcc 12.2.0.
---
srcpkgs/cross-powerpc64le-linux-musl/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-powerpc64le-linux-musl/template b/srcpkgs/cross-powerpc64le-linux-musl/template
index c17a3cccfe29..0915e524545f 100644
--- a/srcpkgs/cross-powerpc64le-linux-musl/template
+++ b/srcpkgs/cross-powerpc64le-linux-musl/template
@@ -1,30 +1,31 @@
# Template file for 'cross-powerpc64le-linux-musl'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.2.0
_musl_version=1.1.24
_linux_version=5.10.4
_libucontext_version=1.0
pkgname=cross-powerpc64le-linux-musl
-version=0.34
-revision=4
+version=0.35
+revision=1
build_style=void-cross
configure_args="--enable-secureplt --disable-vtable-verify
--disable-decimal-float --with-abi=elfv2 --enable-targets=powerpcle-linux"
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
-homepage="https://www.voidlinux.org/"
license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
+homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz
https://github.com/kaniini/libucontext/archive/libucontext-${_libucontext_version}.tar.gz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec
23714e99a87f6dea82e8a073c526325161dd65462459820b16a6162be91955bb"
From 64c0b945f24ec94e530688bd71d6a9a7216eae46 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:29 -0800
Subject: [PATCH 33/38] cross-powerpcle-linux-gnu: update to gcc 12.2.0.
---
srcpkgs/cross-powerpcle-linux-gnu/template | 21 ++++++++++++---------
1 file changed, 12 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-powerpcle-linux-gnu/template b/srcpkgs/cross-powerpcle-linux-gnu/template
index 9aede3c465ce..687be8a44c6c 100644
--- a/srcpkgs/cross-powerpcle-linux-gnu/template
+++ b/srcpkgs/cross-powerpcle-linux-gnu/template
@@ -1,15 +1,16 @@
# Template file for 'cross-powerpcle-linux-gnu'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
-_glibc_version=2.32
+_binutils_version=2.39
+_gcc_version=12.2.0
+_glibc_version=2.36
_linux_version=5.10.4
pkgname=cross-powerpcle-linux-gnu
-version=0.34
+version=0.35
revision=1
build_style=void-cross
configure_args="--enable-secureplt --disable-vtable-verify"
hostmakedepends="texinfo tar gcc-objc flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
@@ -17,12 +18,12 @@ license="GPL-2.0-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
+ 1c959fea240906226062cb4b1e7ebce71a9f0e3c0836c09e7e3423d434fcfe75
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
@@ -35,6 +36,8 @@ if [ "$XBPS_TARGET_MACHINE" = "ppcle" ]; then
broken="Can't build crosstoolchain to itself"
fi
+broken="glibc uses big-endian specific instructions on 32-bit powerpc"
+
cross-powerpcle-linux-gnu-libc_package() {
short_desc+=" - glibc files"
nostrip=yes
From d5f02e5268f846de43a4ab778ff47d99335fa400 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:29 -0800
Subject: [PATCH 34/38] cross-powerpcle-linux-musl: update to gcc 12.2.0.
---
srcpkgs/cross-powerpcle-linux-musl/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-powerpcle-linux-musl/template b/srcpkgs/cross-powerpcle-linux-musl/template
index 045cfda987fe..bb984b9c42eb 100644
--- a/srcpkgs/cross-powerpcle-linux-musl/template
+++ b/srcpkgs/cross-powerpcle-linux-musl/template
@@ -1,28 +1,29 @@
# Template file for 'cross-powerpcle-linux-musl'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.2.0
_musl_version=1.1.24
_linux_version=5.10.4
pkgname=cross-powerpcle-linux-musl
-version=0.34
-revision=3
+version=0.35
+revision=1
build_style=void-cross
configure_args="--enable-secureplt --disable-vtable-verify
--disable-decimal-float"
hostmakedepends="texinfo tar gcc-objc flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
-homepage="https://www.voidlinux.org/"
license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
+homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
From 85a5a757bdfc2fd60cfcfba1baba26eb4e40e21c Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:30 -0800
Subject: [PATCH 35/38] cross-x86_64-linux-gnu: update to gcc 12.2.0.
---
srcpkgs/cross-x86_64-linux-gnu/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-x86_64-linux-gnu/template b/srcpkgs/cross-x86_64-linux-gnu/template
index 8918f3c22a1c..930aaf2a508b 100644
--- a/srcpkgs/cross-x86_64-linux-gnu/template
+++ b/srcpkgs/cross-x86_64-linux-gnu/template
@@ -1,14 +1,15 @@
# Template file for 'cross-x86_64-linux-gnu'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
-_glibc_version=2.32
+_binutils_version=2.39
+_gcc_version=12.2.0
+_glibc_version=2.36
_linux_version=5.10.4
pkgname=cross-x86_64-linux-gnu
-version=0.34
+version=0.35
revision=1
build_style=void-cross
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
@@ -16,12 +17,12 @@ license="GPL-2.0-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
+ 1c959fea240906226062cb4b1e7ebce71a9f0e3c0836c09e7e3423d434fcfe75
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
From a58db29069b41feea8d7e639f8433d550671dd1e Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:30 -0800
Subject: [PATCH 36/38] cross-x86_64-linux-musl: update to gcc 12.2.0.
---
srcpkgs/cross-x86_64-linux-musl/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-x86_64-linux-musl/template b/srcpkgs/cross-x86_64-linux-musl/template
index a941e7e02f6f..ac5b1c46ab82 100644
--- a/srcpkgs/cross-x86_64-linux-musl/template
+++ b/srcpkgs/cross-x86_64-linux-musl/template
@@ -1,28 +1,29 @@
# Template file for 'cross-x86_64-linux-musl'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.2.0
_musl_version=1.1.24
_linux_version=5.10.4
_libucontext_version=1.0
pkgname=cross-x86_64-linux-musl
-version=0.34
-revision=3
+version=0.35
+revision=1
build_style=void-cross
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
-homepage="https://www.voidlinux.org/"
license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
+homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz
https://github.com/kaniini/libucontext/archive/libucontext-${_libucontext_version}.tar.gz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec
23714e99a87f6dea82e8a073c526325161dd65462459820b16a6162be91955bb"
From e3f723657e13ee121cde2b5175ccc053f586b8d9 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Fri, 18 Nov 2022 02:01:19 -0800
Subject: [PATCH 37/38] cross-vpkg-dummy: update to 0.39.
---
srcpkgs/cross-vpkg-dummy/template | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/srcpkgs/cross-vpkg-dummy/template b/srcpkgs/cross-vpkg-dummy/template
index d83e38dc63ac..aeafb749dd5f 100644
--- a/srcpkgs/cross-vpkg-dummy/template
+++ b/srcpkgs/cross-vpkg-dummy/template
@@ -1,6 +1,6 @@
# Template file for 'cross-vpkg-dummy'
pkgname=cross-vpkg-dummy
-version=0.38
+version=0.39
revision=1
build_style=meta
short_desc="Dummy meta-pkg for cross building packages with xbps-src"
@@ -54,8 +54,8 @@ conflicts="
gcc-objc++>=0"
shlib_provides="
libgcc_s.so.1
- libgnat-10.so
- libgnarl-10.so
+ libgnat-12.so
+ libgnarl-12.so
libstdc++.so.6
libgfortran.so.5"
From e2b48842758ad97e7d95d65e0659d140e2d8f644 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Sun, 27 Nov 2022 22:59:45 +0100
Subject: [PATCH 38/38] llvm: update to 15.0.5
---
common/shlibs | 7 +-
srcpkgs/clang | 2 +-
srcpkgs/clang-analyzer | 2 +-
srcpkgs/clang-tools-extra | 2 +-
srcpkgs/libclang | 2 +-
srcpkgs/libclang-cpp | 2 +-
srcpkgs/libcxx | 2 +-
srcpkgs/libcxx-devel | 2 +-
srcpkgs/libcxxabi | 2 +-
srcpkgs/libcxxabi-devel | 2 +-
srcpkgs/libllvm15 | 1 +
srcpkgs/libomp | 2 +-
srcpkgs/libomp-devel | 2 +-
srcpkgs/lld | 2 +-
srcpkgs/lld-devel | 2 +-
srcpkgs/lldb | 2 +-
srcpkgs/lldb-devel | 2 +-
srcpkgs/llvm-libunwind | 2 +-
srcpkgs/llvm-libunwind-devel | 2 +-
srcpkgs/llvm/template | 6 +-
.../llvm15/files/llvm-Config-llvm-config.h | 9 +
...clang-001-fix-unwind-chain-inclusion.patch | 44 ++
.../patches/clang-002-add-musl-triples.patch | 110 +++++
.../clang-003-ppc64-dynamic-linker-path.patch | 13 +
.../patches/clang-004-ppc64-musl-elfv2.patch | 48 ++
.../compiler-rt-sanitizer-ppc64-musl.patch | 35 ++
.../compiler-rt-xray-ppc64-musl.patch.skip | 62 +++
srcpkgs/llvm15/patches/libcxx-musl.patch | 26 ++
srcpkgs/llvm15/patches/libcxx-ppc.patch | 22 +
.../llvm15/patches/libcxx-ssp-nonshared.patch | 11 +
srcpkgs/llvm15/patches/libcxxabi-dl.patch | 25 +
.../llvm15/patches/libunwind-ppc32.patch.skip | 63 +++
srcpkgs/llvm15/patches/lldb-musl.patch | 40 ++
srcpkgs/llvm15/patches/llvm-001-musl.patch | 57 +++
.../patches/llvm-002-musl-ppc64-elfv2.patch | 30 ++
.../patches/llvm-003-ppc-secureplt.patch | 11 +
.../patches/llvm-004-override-opt.patch | 18 +
.../llvm15/patches/llvm-005-ppc-bigpic.patch | 36 ++
.../patches/llvm-006-aarch64-mf_exec.patch | 25 +
srcpkgs/llvm15/template | 434 ++++++++++++++++++
srcpkgs/llvm15/update | 3 +
41 files changed, 1147 insertions(+), 23 deletions(-)
create mode 120000 srcpkgs/libllvm15
create mode 100644 srcpkgs/llvm15/files/llvm-Config-llvm-config.h
create mode 100644 srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch
create mode 100644 srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch
create mode 100644 srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch
create mode 100644 srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch
create mode 100644 srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch
create mode 100644 srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip
create mode 100644 srcpkgs/llvm15/patches/libcxx-musl.patch
create mode 100644 srcpkgs/llvm15/patches/libcxx-ppc.patch
create mode 100644 srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch
create mode 100644 srcpkgs/llvm15/patches/libcxxabi-dl.patch
create mode 100644 srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip
create mode 100644 srcpkgs/llvm15/patches/lldb-musl.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-001-musl.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-004-override-opt.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch
create mode 100644 srcpkgs/llvm15/template
create mode 100644 srcpkgs/llvm15/update
diff --git a/common/shlibs b/common/shlibs
index 3f90cbd1ace3..8afb88b47e23 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -985,11 +985,12 @@ 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.12 lldb-12.0.0_1
-libclang.so.12 libclang-12.0.0_1
-libclang-cpp.so.12 libclang-cpp-12.0.0_1
+liblldb.so.15 lldb-15.0.5_1
+libclang.so.15 libclang-15.0.5_1
+libclang-cpp.so.15 libclang-cpp-15.0.5_1
libLLVM-11.so libllvm11-11.0.0_1
libLLVM-12.so libllvm12-12.0.0_1
+libLLVM-15.so libllvm15-15.0.5_1
libisofs.so.6 libisofs-0.6.24_1
libmpack.so.0 libmpack-1.0.5_1
libGeoIP.so.1 libgeoip-1.4.8_1
diff --git a/srcpkgs/clang b/srcpkgs/clang
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/clang
+++ b/srcpkgs/clang
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/clang-analyzer b/srcpkgs/clang-analyzer
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/clang-analyzer
+++ b/srcpkgs/clang-analyzer
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/clang-tools-extra b/srcpkgs/clang-tools-extra
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/clang-tools-extra
+++ b/srcpkgs/clang-tools-extra
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libclang b/srcpkgs/libclang
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libclang
+++ b/srcpkgs/libclang
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libclang-cpp b/srcpkgs/libclang-cpp
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libclang-cpp
+++ b/srcpkgs/libclang-cpp
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxx b/srcpkgs/libcxx
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxx
+++ b/srcpkgs/libcxx
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxx-devel b/srcpkgs/libcxx-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxx-devel
+++ b/srcpkgs/libcxx-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxxabi b/srcpkgs/libcxxabi
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxxabi
+++ b/srcpkgs/libcxxabi
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxxabi-devel b/srcpkgs/libcxxabi-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxxabi-devel
+++ b/srcpkgs/libcxxabi-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libllvm15 b/srcpkgs/libllvm15
new file mode 120000
index 000000000000..ad57a969b9f9
--- /dev/null
+++ b/srcpkgs/libllvm15
@@ -0,0 +1 @@
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libomp b/srcpkgs/libomp
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libomp
+++ b/srcpkgs/libomp
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libomp-devel b/srcpkgs/libomp-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libomp-devel
+++ b/srcpkgs/libomp-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lld b/srcpkgs/lld
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lld
+++ b/srcpkgs/lld
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lld-devel b/srcpkgs/lld-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lld-devel
+++ b/srcpkgs/lld-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lldb b/srcpkgs/lldb
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lldb
+++ b/srcpkgs/lldb
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lldb-devel b/srcpkgs/lldb-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lldb-devel
+++ b/srcpkgs/lldb-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm-libunwind b/srcpkgs/llvm-libunwind
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/llvm-libunwind
+++ b/srcpkgs/llvm-libunwind
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm-libunwind-devel b/srcpkgs/llvm-libunwind-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/llvm-libunwind-devel
+++ b/srcpkgs/llvm-libunwind-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm/template b/srcpkgs/llvm/template
index a92db6f94f9f..d14430090161 100644
--- a/srcpkgs/llvm/template
+++ b/srcpkgs/llvm/template
@@ -1,10 +1,10 @@
# Template file for 'llvm'
pkgname=llvm
-version=12.0.0
+version=15.0.0
revision=1
build_style=meta
-depends="llvm12"
-replaces="llvm11>=0 llvm10>=0 llvm9>=0 llvm8>=0 llvm7>=0 llvm6.0>=0 llvm3.9>=0"
+depends="llvm15"
+replaces="llvm12>=0 llvm11>=0 llvm10>=0 llvm9>=0 llvm8>=0 llvm7>=0 llvm6.0>=0 llvm3.9>=0"
short_desc="LLVM meta package"
maintainer="Enno Boland <gottox@voidlinux.org>"
license="Public Domain"
diff --git a/srcpkgs/llvm15/files/llvm-Config-llvm-config.h b/srcpkgs/llvm15/files/llvm-Config-llvm-config.h
new file mode 100644
index 000000000000..2fa08c9be696
--- /dev/null
+++ b/srcpkgs/llvm15/files/llvm-Config-llvm-config.h
@@ -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
diff --git a/srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch b/srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch
new file mode 100644
index 000000000000..e4eaa7783e7a
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch
@@ -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
diff --git a/srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch b/srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch
new file mode 100644
index 000000000000..25688d40dbc2
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch
@@ -0,0 +1,110 @@
+--- a/clang/lib/Driver/ToolChains/Gnu.cpp
++++ b/clang/lib/Driver/ToolChains/Gnu.cpp
+@@ -2086,7 +2086,8 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
+ static const char *const ARMHFTriples[] = {"arm-linux-gnueabihf",
+ "armv7hl-redhat-linux-gnueabi",
+ "armv6hl-suse-linux-gnueabi",
+- "armv7hl-suse-linux-gnueabi"};
++ "armv7hl-suse-linux-gnueabi",
++ "armv7l-linux-gnueabihf"};
+ static const char *const ARMebLibDirs[] = {"/lib"};
+ static const char *const ARMebTriples[] = {"armeb-linux-gnueabi",
+ "armeb-linux-androideabi"};
+@@ -2153,8 +2154,7 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
+ "powerpc64-suse-linux", "powerpc-montavista-linuxspe"};
+ static const char *const PPCLELibDirs[] = {"/lib32", "/lib"};
+ static const char *const PPCLETriples[] = {"powerpcle-linux-gnu",
+- "powerpcle-unknown-linux-gnu",
+- "powerpcle-linux-musl"};
++ "powerpcle-unknown-linux-gnu"};
+
+ static const char *const PPC64LibDirs[] = {"/lib64", "/lib"};
+ static const char *const PPC64Triples[] = {
+@@ -2235,6 +2235,87 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
+ return;
+ }
+
++ if (TargetTriple.isMusl()) {
++ static const char *const AArch64MuslTriples[] = {"aarch64-linux-musl"};
++ static const char *const ARMHFMuslTriples[] = {
++ "arm-linux-musleabihf", "armv7l-linux-musleabihf"
++ };
++ static const char *const ARMMuslTriples[] = {"arm-linux-musleabi"};
++ static const char *const X86_64MuslTriples[] = {"x86_64-linux-musl"};
++ static const char *const X86MuslTriples[] = {"i686-linux-musl"};
++ static const char *const MIPSMuslTriples[] = {
++ "mips-linux-musl", "mipsel-linux-musl",
++ "mipsel-linux-muslhf", "mips-linux-muslhf"
++ };
++ static const char *const PPCMuslTriples[] = {"powerpc-linux-musl"};
++ static const char *const PPCLEMuslTriples[] = {"powerpcle-linux-musl"};
++ static const char *const PPC64MuslTriples[] = {"powerpc64-linux-musl"};
++ static const char *const PPC64LEMuslTriples[] = {"powerpc64le-linux-musl"};
++
++ switch (TargetTriple.getArch()) {
++ case llvm::Triple::aarch64:
++ LibDirs.append(begin(AArch64LibDirs), end(AArch64LibDirs));
++ TripleAliases.append(begin(AArch64MuslTriples), end(AArch64MuslTriples));
++ BiarchLibDirs.append(begin(AArch64LibDirs), end(AArch64LibDirs));
++ BiarchTripleAliases.append(begin(AArch64MuslTriples), end(AArch64MuslTriples));
++ break;
++ case llvm::Triple::arm:
++ LibDirs.append(begin(ARMLibDirs), end(ARMLibDirs));
++ if (TargetTriple.getEnvironment() == llvm::Triple::MuslEABIHF) {
++ TripleAliases.append(begin(ARMHFMuslTriples), end(ARMHFMuslTriples));
++ } else {
++ TripleAliases.append(begin(ARMMuslTriples), end(ARMMuslTriples));
++ }
++ break;
++ case llvm::Triple::x86_64:
++ LibDirs.append(begin(X86_64LibDirs), end(X86_64LibDirs));
++ TripleAliases.append(begin(X86_64MuslTriples), end(X86_64MuslTriples));
++ BiarchLibDirs.append(begin(X86LibDirs), end(X86LibDirs));
++ BiarchTripleAliases.append(begin(X86MuslTriples), end(X86MuslTriples));
++ break;
++ case llvm::Triple::x86:
++ LibDirs.append(begin(X86LibDirs), end(X86LibDirs));
++ TripleAliases.append(begin(X86MuslTriples), end(X86MuslTriples));
++ BiarchLibDirs.append(begin(X86_64LibDirs), end(X86_64LibDirs));
++ BiarchTripleAliases.append(begin(X86_64MuslTriples), end(X86_64MuslTriples));
++ break;
++ case llvm::Triple::mips:
++ LibDirs.append(begin(MIPSLibDirs), end(MIPSLibDirs));
++ TripleAliases.append(begin(MIPSMuslTriples), end(MIPSMuslTriples));
++ break;
++ case llvm::Triple::ppc:
++ LibDirs.append(begin(PPCLibDirs), end(PPCLibDirs));
++ TripleAliases.append(begin(PPCMuslTriples), end(PPCMuslTriples));
++ BiarchLibDirs.append(begin(PPC64LibDirs), end(PPC64LibDirs));
++ BiarchTripleAliases.append(begin(PPC64MuslTriples), end(PPC64MuslTriples));
++ break;
++ case llvm::Triple::ppcle:
++ LibDirs.append(begin(PPCLELibDirs), end(PPCLELibDirs));
++ TripleAliases.append(begin(PPCLEMuslTriples), end(PPCLEMuslTriples));
++ BiarchLibDirs.append(begin(PPC64LELibDirs), end(PPC64LELibDirs));
++ BiarchTripleAliases.append(begin(PPC64LEMuslTriples), end(PPC64LEMuslTriples));
++ break;
++ case llvm::Triple::ppc64:
++ LibDirs.append(begin(PPC64LibDirs), end(PPC64LibDirs));
++ TripleAliases.append(begin(PPC64MuslTriples), end(PPC64MuslTriples));
++ BiarchLibDirs.append(begin(PPCLibDirs), end(PPCLibDirs));
++ BiarchTripleAliases.append(begin(PPCMuslTriples), end(PPCMuslTriples));
++ break;
++ case llvm::Triple::ppc64le:
++ LibDirs.append(begin(PPC64LELibDirs), end(PPC64LELibDirs));
++ TripleAliases.append(begin(PPC64LEMuslTriples), end(PPC64LEMuslTriples));
++ BiarchLibDirs.append(begin(PPCLELibDirs), end(PPCLELibDirs));
++ BiarchTripleAliases.append(begin(PPCLEMuslTriples), end(PPCLEMuslTriples));
++ break;
++ default:
++ break;
++ }
++ TripleAliases.push_back(TargetTriple.str());
++ if (TargetTriple.str() != BiarchTriple.str())
++ BiarchTripleAliases.push_back(BiarchTriple.str());
++ return;
++ }
++
+ // Android targets should not use GNU/Linux tools or libraries.
+ if (TargetTriple.isAndroid()) {
+ static const char *const AArch64AndroidTriples[] = {
diff --git a/srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch b/srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch
new file mode 100644
index 000000000000..4ad6412d1e6c
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch
@@ -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 =
diff --git a/srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch b/srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch
new file mode 100644
index 000000000000..21fc8003c5f1
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch
@@ -0,0 +1,48 @@
+--- a/clang/lib/Basic/Targets/PPC.h
++++ b/clang/lib/Basic/Targets/PPC.h
+@@ -415,11 +415,10 @@ public:
+ LongDoubleFormat = &llvm::APFloat::IEEEdouble();
+ } else if ((Triple.getArch() == llvm::Triple::ppc64le)) {
+ DataLayout = "e-m:e-i64:64-n32:64";
+- ABI = "elfv2";
+ } else {
+ DataLayout = "E-m:e-i64:64-n32:64";
+- ABI = "elfv1";
+ }
++ ABI = "elfv2";
+
+ if (Triple.isOSFreeBSD() || Triple.isOSOpenBSD() || Triple.isMusl()) {
+ LongDoubleWidth = LongDoubleAlign = 64;
+--- a/clang/lib/CodeGen/TargetInfo.cpp
++++ b/clang/lib/CodeGen/TargetInfo.cpp
+@@ -10927,9 +10927,9 @@ const TargetCodeGenInfo &CodeGenModule::getTargetCodeGenInfo() {
+ return SetCGInfo(new AIXTargetCodeGenInfo(Types, /*Is64Bit*/ true));
+
+ if (Triple.isOSBinFormatELF()) {
+- PPC64_SVR4_ABIInfo::ABIKind Kind = PPC64_SVR4_ABIInfo::ELFv1;
+- if (getTarget().getABI() == "elfv2")
+- Kind = PPC64_SVR4_ABIInfo::ELFv2;
++ PPC64_SVR4_ABIInfo::ABIKind Kind = PPC64_SVR4_ABIInfo::ELFv2;
++ if (getTarget().getABI() == "elfv1")
++ Kind = PPC64_SVR4_ABIInfo::ELFv1;
+ bool IsSoftFloat = CodeGenOpts.FloatABI == "soft";
+
+ return SetCGInfo(
+--- a/clang/lib/Driver/ToolChains/Clang.cpp
++++ b/clang/lib/Driver/ToolChains/Clang.cpp
+@@ -1920,14 +1920,7 @@ void Clang::AddPPCTargetArgs(const ArgList &Args,
+ const llvm::Triple &T = getToolChain().getTriple();
+ if (T.isOSBinFormatELF()) {
+ switch (getToolChain().getArch()) {
+- case llvm::Triple::ppc64: {
+- if ((T.isOSFreeBSD() && T.getOSMajorVersion() >= 13) ||
+- T.isOSOpenBSD() || T.isMusl())
+- ABIName = "elfv2";
+- else
+- ABIName = "elfv1";
+- break;
+- }
++ case llvm::Triple::ppc64:
+ case llvm::Triple::ppc64le:
+ ABIName = "elfv2";
+ break;
diff --git a/srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch b/srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch
new file mode 100644
index 000000000000..360cfc1ba7f1
--- /dev/null
+++ b/srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch
@@ -0,0 +1,35 @@
+--- 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__) || SANITIZER_RISCV64
++ defined(__hexagon__) || defined(__powerpc__) || 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_ANDROID
++#if (defined(__aarch64__) || defined(__powerpc__) || SANITIZER_RISCV64) && !SANITIZER_ANDROID
+ // GLIBC 2.20+ sys/user does not include asm/ptrace.h
+ # include <asm/ptrace.h>
+ #endif
diff --git a/srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip b/srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip
new file mode 100644
index 000000000000..d0b61c80c897
--- /dev/null
+++ b/srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip
@@ -0,0 +1,62 @@
+--- a/compiler-rt/lib/xray/xray_powerpc64.inc
++++ b/compiler-rt/lib/xray/xray_powerpc64.inc
+@@ -12,7 +12,13 @@
+
+ #include <cstdint>
+ #include <mutex>
++#ifdef __GLIBC__
+ #include <sys/platform/ppc.h>
++#else
++#include <cctype>
++#include <cstring>
++#include <cstdlib>
++#endif
+
+ #include "xray_defs.h"
+
+@@ -20,13 +26,45 @@ namespace __xray {
+
+ ALWAYS_INLINE uint64_t readTSC(uint8_t &CPU) XRAY_NEVER_INSTRUMENT {
+ CPU = 0;
++#ifdef __GLIBC__
+ return __ppc_get_timebase();
++#else
++ return __builtin_ppc_get_timebase();
++#endif
+ }
+
+ inline uint64_t getTSCFrequency() XRAY_NEVER_INSTRUMENT {
+ static std::mutex M;
+ std::lock_guard<std::mutex> Guard(M);
++#ifdef __GLIBC__
+ return __ppc_get_timebase_freq();
++#else
++ /* FIXME: a less dirty implementation? */
++ static uint64_t base;
++ if (!base) {
++ FILE *f = fopen("/proc/cpuinfo", "rb");
++ if (f) {
++ ssize_t nr;
++ /* virtually always big enough to hold the line */
++ char buf[512];
++ while (fgets(buf, sizeof(buf), f)) {
++ char *ret = strstr(buf, "timebase");
++ if (!ret) {
++ continue;
++ }
++ ret += sizeof("timebase") - 1;
++ ret = strchr(ret, ':');
++ if (!ret) {
++ continue;
++ }
++ base = strtoul(ret + 1, nullptr, 10);
++ break;
++ }
++ fclose(f);
++ }
++ }
++ return base;
++#endif
+ }
+
+ inline bool probeRequiredCPUFeatures() XRAY_NEVER_INSTRUMENT {
diff --git a/srcpkgs/llvm15/patches/libcxx-musl.patch b/srcpkgs/llvm15/patches/libcxx-musl.patch
new file mode 100644
index 000000000000..bbd31ffc2cb1
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxx-musl.patch
@@ -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,
+ typename remove_reference<decltype(errno)>::type __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
+ typename remove_reference<decltype(errno)>::type __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,
+ typename remove_reference<decltype(errno)>::type __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
+ typename remove_reference<decltype(errno)>::type __current_errno = errno;
+ if (__current_errno == 0)
+ errno = __save_errno;
diff --git a/srcpkgs/llvm15/patches/libcxx-ppc.patch b/srcpkgs/llvm15/patches/libcxx-ppc.patch
new file mode 100644
index 000000000000..7a92f8004e1c
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxx-ppc.patch
@@ -0,0 +1,22 @@
+This ensures `is_iec559` is defined correctly under all long double ABIs,
+including musl and its 64-bit long double. Also, `__ppc__` or `__ppc64__`
+is not defined on gcc.
+
+--- a/libcxx/include/limits
++++ b/libcxx/include/limits
+@@ -426,8 +426,14 @@ protected:
+ _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type signaling_NaN() _NOEXCEPT {return __builtin_nansl("");}
+ _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type denorm_min() _NOEXCEPT {return __LDBL_DENORM_MIN__;}
+
+-#if (defined(__ppc__) || defined(__ppc64__))
++#if defined(__powerpc__) || defined(__powerpc64__)
++#if (__LDBL_MAX_EXP__ > __DBL_MAX_EXP__) || (__LDBL_MANT_DIG__ == __DBL_MANT_DIG__)
++ /* IEEE 754 quadruple or double precision */
++ static _LIBCPP_CONSTEXPR const bool is_iec559 = true;
++#else
++ /* 128-bit IBM double-double */
+ static _LIBCPP_CONSTEXPR const bool is_iec559 = false;
++#endif
+ #else
+ static _LIBCPP_CONSTEXPR const bool is_iec559 = true;
+ #endif
diff --git a/srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch b/srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch
new file mode 100644
index 000000000000..70292beb2fcd
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch
@@ -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()
diff --git a/srcpkgs/llvm15/patches/libcxxabi-dl.patch b/srcpkgs/llvm15/patches/libcxxabi-dl.patch
new file mode 100644
index 000000000000..3a15f9db8c98
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxxabi-dl.patch
@@ -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 @@
+ target_link_libraries(${target} PRIVATE m)
+ endif()
+
++ if (LIBCXX_HAS_C_LIB)
++ target_link_libraries(${target} PRIVATE dl)
++ endif()
++
+ if (LIBCXX_HAS_RT_LIB)
+ target_link_libraries(${target} PRIVATE rt)
+ endif()
diff --git a/srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip b/srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip
new file mode 100644
index 000000000000..74aa7576ecf9
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip
@@ -0,0 +1,63 @@
+This fixes build at least with gcc9 which does not define `__ppc__`.
+
+--- a/libunwind/include/__libunwind_config.h
++++ b/libunwind/include/__libunwind_config.h
+@@ -49,7 +49,7 @@
+ # define _LIBUNWIND_CONTEXT_SIZE 167
+ # define _LIBUNWIND_CURSOR_SIZE 179
+ # define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_PPC64
+-# elif defined(__ppc__)
++# elif defined(__powerpc__)
+ # define _LIBUNWIND_TARGET_PPC 1
+ # define _LIBUNWIND_CONTEXT_SIZE 117
+ # define _LIBUNWIND_CURSOR_SIZE 124
+--- a/libunwind/src/UnwindRegistersRestore.S
++++ b/libunwind/src/UnwindRegistersRestore.S
+@@ -392,7 +392,7 @@ Lnovec:
+ PPC64_LR(3)
+ bctr
+
+-#elif defined(__ppc__)
++#elif defined(__powerpc__)
+
+ DEFINE_LIBUNWIND_FUNCTION(_ZN9libunwind13Registers_ppc6jumptoEv)
+ //
+--- a/libunwind/src/UnwindRegistersSave.S
++++ b/libunwind/src/UnwindRegistersSave.S
+@@ -554,7 +554,7 @@ DEFINE_LIBUNWIND_FUNCTION(__unw_getcontext)
+ blr
+
+
+-#elif defined(__ppc__)
++#elif defined(__powerpc__)
+
+ //
+ // extern int unw_getcontext(unw_context_t* thread_state)
+--- a/libunwind/src/config.h
++++ b/libunwind/src/config.h
+@@ -95,12 +95,12 @@
+ #define _LIBUNWIND_BUILD_SJLJ_APIS
+ #endif
+
+-#if defined(__i386__) || defined(__x86_64__) || defined(__ppc__) || defined(__ppc64__) || defined(__powerpc64__)
++#if defined(__i386__) || defined(__x86_64__) || defined(__powerpc__) || defined(__powerpc64__)
+ #define _LIBUNWIND_SUPPORT_FRAME_APIS
+ #endif
+
+ #if defined(__i386__) || defined(__x86_64__) || \
+- defined(__ppc__) || defined(__ppc64__) || defined(__powerpc64__) || \
++ defined(__powerpc__) || defined(__powerpc64__) || \
+ (!defined(__APPLE__) && defined(__arm__)) || \
+ (defined(__arm64__) || defined(__aarch64__)) || \
+ defined(__mips__)
+--- a/libunwind/src/libunwind.cpp
++++ b/libunwind/src/libunwind.cpp
+@@ -42,7 +42,7 @@ _LIBUNWIND_HIDDEN int __unw_init_local(unw_cursor_t *cursor,
+ # define REGISTER_KIND Registers_x86_64
+ #elif defined(__powerpc64__)
+ # define REGISTER_KIND Registers_ppc64
+-#elif defined(__ppc__)
++#elif defined(__powerpc__)
+ # define REGISTER_KIND Registers_ppc
+ #elif defined(__aarch64__)
+ # define REGISTER_KIND Registers_arm64
diff --git a/srcpkgs/llvm15/patches/lldb-musl.patch b/srcpkgs/llvm15/patches/lldb-musl.patch
new file mode 100644
index 000000000000..026c5e1e61ba
--- /dev/null
+++ b/srcpkgs/llvm15/patches/lldb-musl.patch
@@ -0,0 +1,40 @@
+--- a/lldb/source/Plugins/Process/Linux/Procfs.h
++++ b/lldb/source/Plugins/Process/Linux/Procfs.h
+@@ -10,6 +10,7 @@
+ // sys/procfs.h on Android/Linux for all supported architectures.
+
+ #include <sys/ptrace.h>
++#include <asm/ptrace.h>
+
+ #include "lldb/lldb-types.h"
+
+@@ -17,23 +18,13 @@
+
+ #include <vector>
+
+-#ifdef __ANDROID__
+-#if defined(__arm64__) || defined(__aarch64__)
+-typedef unsigned long elf_greg_t;
+-typedef elf_greg_t
+- elf_gregset_t[(sizeof(struct user_pt_regs) / sizeof(elf_greg_t))];
+-typedef struct user_fpsimd_state elf_fpregset_t;
+-#ifndef NT_FPREGSET
+-#define NT_FPREGSET NT_PRFPREG
+-#endif // NT_FPREGSET
+-#elif defined(__mips__)
+-#ifndef NT_FPREGSET
+-#define NT_FPREGSET NT_PRFPREG
+-#endif // NT_FPREGSET
+-#endif
+-#else // __ANDROID__
++#if !defined(__GLIBC__) && defined(__powerpc__)
++#define pt_regs musl_pt_regs
++#include <sys/procfs.h>
++#undef pt_regs
++#else
+ #include <sys/procfs.h>
+-#endif // __ANDROID__
++#endif
+
+ namespace lldb_private {
+ namespace process_linux {
diff --git a/srcpkgs/llvm15/patches/llvm-001-musl.patch b/srcpkgs/llvm15/patches/llvm-001-musl.patch
new file mode 100644
index 000000000000..f2a3f8d62813
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-001-musl.patch
@@ -0,0 +1,57 @@
+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;
+diff --git a/lib/Support/Unix/DynamicLibrary.inc b/lib/Support/Unix/DynamicLibrary.inc
+index a2a37996..2f86c470 100644
+--- a/llvm/lib/Support/Unix/DynamicLibrary.inc
++++ b/llvm/lib/Support/Unix/DynamicLibrary.inc
+@@ -102,7 +102,7 @@ static void *DoSearch(const char* SymbolName) {
+
+ // This macro returns the address of a well-known, explicit symbol
+ #define EXPLICIT_SYMBOL(SYM) \
+- if (!strcmp(SymbolName, #SYM)) return &SYM
++ if (!strcmp(SymbolName, #SYM)) return (void *)&SYM
+
+ // Under glibc we have a weird situation. The stderr/out/in symbols are both
+ // macros and global variables because of standards requirements. So, we
+diff --git a/utils/unittest/googletest/src/gtest.cc b/utils/unittest/googletest/src/gtest.cc
+index d882ab2e..f1fb12d0 100644
+--- a/llvm/utils/unittest/googletest/src/gtest.cc
++++ b/llvm/utils/unittest/googletest/src/gtest.cc
+@@ -128,6 +128,7 @@
+
+ #if GTEST_CAN_STREAM_RESULTS_
+ # include <arpa/inet.h> // NOLINT
++# include <sys/socket.h> // NOLINT
+ # include <netdb.h> // NOLINT
+ # include <sys/socket.h> // NOLINT
+ # include <sys/types.h> // NOLINT
diff --git a/srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch b/srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch
new file mode 100644
index 000000000000..0071d964bd37
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch
@@ -0,0 +1,30 @@
+This patches LLVM to use ELFv2 on ppc64 unconditionally unless overridden. We
+need this because unlike most distros we use ELFv2 for both glibc and musl
+on big endian ppc64.
+
+diff --git a/lib/Target/PowerPC/PPCTargetMachine.cpp b/lib/Target/PowerPC/PPCTargetMachine.cpp
+index 0634833e..b7cbc2e7 100644
+--- a/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp
++++ b/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp
+@@ -222,9 +222,8 @@ static PPCTargetMachine::PPCABI computeTargetABI(const Triple &TT,
+
+ switch (TT.getArch()) {
+ case Triple::ppc64le:
+- return PPCTargetMachine::PPC_ABI_ELFv2;
+ case Triple::ppc64:
+- return PPCTargetMachine::PPC_ABI_ELFv1;
++ return PPCTargetMachine::PPC_ABI_ELFv2;
+ default:
+ return PPCTargetMachine::PPC_ABI_UNKNOWN;
+ }
+diff --git a/test/CodeGen/PowerPC/ppc64-elf-abi.ll b/test/CodeGen/PowerPC/ppc64-elf-abi.ll
+index 8b1cf6b5..296a2afa 100644
+--- a/llvm/test/CodeGen/PowerPC/ppc64-elf-abi.ll
++++ b/llvm/test/CodeGen/PowerPC/ppc64-elf-abi.ll
+@@ -1,4 +1,5 @@
+-; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv1
++; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv2
++; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-musl < %s | FileCheck %s -check-prefix=CHECK-ELFv2
+ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu -target-abi elfv1 < %s | FileCheck %s -check-prefix=CHECK-ELFv1
+ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu -target-abi elfv2 < %s | FileCheck %s -check-prefix=CHECK-ELFv2
+ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv2
diff --git a/srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch b/srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch
new file mode 100644
index 000000000000..b5d15974375d
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch
@@ -0,0 +1,11 @@
+--- a/llvm/lib/Target/PowerPC/PPCSubtarget.cpp
++++ b/llvm/lib/Target/PowerPC/PPCSubtarget.cpp
+@@ -165,7 +165,7 @@ void PPCSubtarget::initSubtargetFeatures(StringRef CPU, StringRef FS) {
+
+ if ((TargetTriple.isOSFreeBSD() && TargetTriple.getOSMajorVersion() >= 13) ||
+ TargetTriple.isOSNetBSD() || TargetTriple.isOSOpenBSD() ||
+- TargetTriple.isMusl())
++ isTargetLinux())
+ SecurePlt = true;
+
+ if (HasSPE && IsPPC64)
diff --git a/srcpkgs/llvm15/patches/llvm-004-override-opt.patch b/srcpkgs/llvm15/patches/llvm-004-override-opt.patch
new file mode 100644
index 000000000000..51d0e4b31b32
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-004-override-opt.patch
@@ -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)
diff --git a/srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch b/srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch
new file mode 100644
index 000000000000..d332687b9d92
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch
@@ -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);
diff --git a/srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch b/srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch
new file mode 100644
index 000000000000..a00abd216665
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch
@@ -0,0 +1,25 @@
+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__) || defined (__ppc__) || \
+- defined(_POWER) || defined(_ARCH_PPC))
++ defined(_POWER) || defined(_ARCH_PPC) || (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
diff --git a/srcpkgs/llvm15/template b/srcpkgs/llvm15/template
new file mode 100644
index 000000000000..7c08c890d8c3
--- /dev/null
+++ b/srcpkgs/llvm15/template
@@ -0,0 +1,434 @@
+# Template file for 'llvm15'
+pkgname=llvm15
+version=15.0.5
+revision=1
+build_wrksrc=llvm
+build_style=cmake
+configure_args="
+ -DCMAKE_BUILD_TYPE=Release -Wno-dev
+ -DENABLE_LINKER_BUILD_ID=YES
+ -DLLDB_USE_SYSTEM_SIX=YES
+ -DLIBCXX_CXX_ABI=libcxxabi
+ -DLIBCXX_ENABLE_STATIC_ABI_LIBRARY=YES
+ -DLIBCXXABI_USE_LLVM_UNWINDER=YES
+ -DLIBCXXABI_ENABLE_STATIC_UNWINDER=YES
+ -DLIBOMP_ENABLE_SHARED=YES
+ -DLIBOMP_INSTALL_ALIASES=NO
+ -DLLVM_INCLUDE_DOCS=YES
+ -DLLVM_BUILD_DOCS=YES
+ -DLLVM_ENABLE_SPHINX=YES
+ -DSPHINX_WARNINGS_AS_ERRORS=NO
+ -DLLVM_INSTALL_UTILS=YES
+ -DLLVM_BUILD_LLVM_DYLIB=YES
+ -DLLVM_LINK_LLVM_DYLIB=YES
+ -DLLVM_ENABLE_RTTI=YES
+ -DLLVM_ENABLE_FFI=YES
+ -DLLVM_BINUTILS_INCDIR=/usr/include"
+hostmakedepends="perl python3 zlib-devel libffi-devel swig python3-Sphinx
+ python3-recommonmark python3-sphinx-automodapi"
+makedepends="python3-devel zlib-devel elfutils-devel libffi-devel libedit-devel
+ libxml2-devel binutils-devel libatomic-devel"
+depends="libllvm15>=${version}_${revision}"
+short_desc="Low Level Virtual Machine"
+maintainer="Orphaned <orphan@voidlinux.org>"
+license="Apache-2.0"
+homepage="https://www.llvm.org"
+distfiles="https://github.com/llvm/llvm-project/releases/download/llvmorg-${version}/llvm-project-${version}.src.tar.xz"
+checksum=9c4278a6b8884eb7f4ae7dfe3c8e5445019824885e47cfdf1392563c47316fd6
+lib32disabled=yes
+python_version=3
+
+if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
+ configure_args+=" -DLIBCXX_HAS_MUSL_LIBC=YES"
+ makedepends+=" libexecinfo-devel"
+ depends+=" libexecinfo-devel"
+fi
+
+# "operand out of range" assembler failures
+case "$XBPS_TARGET_MACHINE" in
+ ppc64*) ;;
+ ppc*) configure_args+=" -DCLANG_ENABLE_CLANGD=OFF" ;;
+esac
+
+_enabled_projects="clang;clang-tools-extra;compiler-rt;libcxx;libcxxabi;libunwind;lld"
+
+_lldb_enable=yes
+_libomp_enable=no
+
+case "$XBPS_TARGET_MACHINE" in
+ ppc64le*) ;;
+ ppc*|i686*) _lldb_enable=no ;;
+esac
+
+case "$XBPS_TARGET_MACHINE" in
+ x86_64*|aarch64*|ppc64*) _libomp_enable=yes;;
+esac
+
+subpackages="clang-tools-extra"
+
+# must go before clang
+if [ "$_libomp_enable" = "yes" ]; then
+ _enabled_projects+=";openmp"
+ subpackages+=" libomp libomp-devel"
+ # because of cmake nonsense referencing libomptarget.so.*
+ depends+=" libomp>=${version}_${revision}"
+fi
+
+subpackages+=" clang clang-analyzer libclang libclang-cpp
+ llvm-libunwind llvm-libunwind-devel libcxx libcxx-devel
+ libcxxabi libcxxabi-devel libllvm15"
+
+if [ "$_lldb_enable" = "yes" ]; then
+ # XXX fails to cross compile due to python
+ _enabled_projects+=";lldb"
+ subpackages+=" lldb lldb-devel"
+fi
+
+subpackages+=" lld lld-devel"
+
+configure_args+=" -DLLVM_ENABLE_PROJECTS=${_enabled_projects}"
+
+post_patch() {
+ if [ "$_lldb_enable" = "yes" ]; then
+ if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
+ vsed -i 's|__ptrace_request|int|g' \
+ ${wrksrc}/lldb/source/Plugins/Process/Linux/NativeProcessLinux.cpp
+ fi
+ # disable docs for lldb as they fail to generate
+ vsed -i '/add_subdirectory(docs)/d' \
+ ${wrksrc}/lldb/CMakeLists.txt
+ fi
+
+ # update config.guess for better platform detection
+ cp $XBPS_COMMONDIR/environment/configure/automake/config.guess \
+ ${wrksrc}/llvm/cmake
+
+ # fix linker failures on some archs
+ vsed -i 's,check_library_exists(gcc_s .*,set(LIBCXXABI_HAS_GCC_S_LIB ON),' \
+ ${wrksrc}/libcxxabi/cmake/config-ix.cmake
+ vsed -i 's,check_library_exists(gcc .*,set(LIBCXXABI_HAS_GCC_LIB ON),' \
+ ${wrksrc}/libcxxabi/cmake/config-ix.cmake
+
+ # need libssp_nonshared on some musl platforms (because of nodefaultlibs)
+ case "$XBPS_TARGET_MACHINE" in
+ ppc64*) ;;
+ ppc*-musl|i686-musl|mips*-musl)
+ vsed -i 's,^# Setup flags.$,add_library_flags(ssp_nonshared),' \
+ ${wrksrc}/libunwind/src/CMakeLists.txt
+ vsed -i 's,^# Setup flags.$,add_library_flags(ssp_nonshared),' \
+ ${wrksrc}/libcxxabi/src/CMakeLists.txt
+ vsed -i 's,#ssp,,' ${wrksrc}/libcxx/CMakeLists.txt
+ ;;
+ esac
+
+ case "$XBPS_TARGET_MACHINE" in
+ x86_64-musl) # some sanitizer currently only on x86_64 stuff needs backtrace
+ vsed -i 's,# Set common link flags.,list(APPEND SANITIZER_COMMON_LINK_LIBS execinfo),' \
+ ${wrksrc}/compiler-rt/CMakeLists.txt
+ ;;
+ arm*-musl|i686-musl) # sanitizer code is broken since it duplicates some libc bits
+ vsed -i 's/set(COMPILER_RT_HAS_SANITIZER_COMMON TRUE)/set(COMPILER_RT_HAS_SANITIZER_COMMON FALSE)/' \
+ ${wrksrc}/compiler-rt/cmake/config-ix.cmake
+ ;;
+ esac
+}
+
+pre_configure() {
+ local triplet
+
+ # Vastly reduce size of debugging symbols:
+ CFLAGS=${CFLAGS/ -g/ -g1}
+ CXXFLAGS=${CXXFLAGS/ -g/ -g1}
+
+ # since gcc9, the build likes to blow up for ppc32 apparently because
+ # of clang being too large for a 24-bit relative call to the PLT, so
+ # optimize for size instead
+ case "$XBPS_TARGET_MACHINE" in
+ ppc64*) ;;
+ mips*-musl|ppc*) configure_args+=" -DVOID_CXX_OPT_FLAGS=-Os" ;;
+ esac
+
+ if [ "$CROSS_BUILD" ]; then
+ msg_normal "Building host tblgen\n"
+ mkdir -p build/HOST
+ cd build/HOST
+ CC="$BUILD_CC" CXX="$BUILD_CXX" CFLAGS="$BUILD_CFLAGS" \
+ CXXFLAGS="$BUILD_CXXFLAGS" LDFLAGS="$BUILD_LDFLAGS" \
+ cmake ../.. -DCMAKE_BUILD_TYPE=Release \
+ -DLLVM_ENABLE_PROJECTS=${_enabled_projects}
+ make ${makejobs} -C utils/TableGen
+ make ${makejobs} -C tools/clang/utils/TableGen
+ [ "$_lldb_enable" = "yes" ] && make ${makejobs} -C tools/lldb/utils/TableGen
+ configure_args+=" -DLLVM_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/llvm-tblgen"
+ configure_args+=" -DCLANG_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/clang-tblgen"
+ [ "$_lldb_enable" = "yes" ] && configure_args+=" -DLLDB_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/lldb-tblgen"
+ cd ../..
+ fi
+
+ case "$XBPS_TARGET_MACHINE" in
+ i686*) _arch="X86";;
+ x86_64*) _arch="X86";;
+ armv5*) _arch="Armv5te";;
+ armv6*) _arch="Armv6";;
+ armv7*) _arch="Armv7";;
+ aarch64*) _arch="AArch64";;
+ mips*) _arch="Mips";;
+ ppc*) _arch="PowerPC";;
+ riscv64*) _arch="RISCV64";;
+ esac
+
+ triplet=${XBPS_CROSS_TRIPLET:-$XBPS_TRIPLET}
+
+ configure_args+=" -DLLVM_TARGET_ARCH=${_arch}"
+ configure_args+=" -DLLVM_HOST_TRIPLE=${triplet}"
+ configure_args+=" -DLLVM_DEFAULT_TARGET_TRIPLE=${triplet}"
+}
+
+do_install() {
+ cd build
+ cmake -DCMAKE_INSTALL_PREFIX=${DESTDIR}/usr -P cmake_install.cmake
+
+ # Required for multilib.
+ if [ "$XBPS_TARGET_MACHINE" = "x86_64" ]; then
+ for _header in llvm-config; do
+ mv ${DESTDIR}/usr/include/llvm/Config/${_header}{,-64}.h
+ vinstall ${FILESDIR}/llvm-Config-${_header}.h 644 \
+ usr/include/llvm/Config ${_header}.h
+ done
+ fi
+
+ # Remove llvm-config-host in cross builds.
+ if [ "$CROSS_BUILD" ]; then
+ rm -f ${DESTDIR}/usr/bin/llvm-config-host
+ fi
+
+ # Install libcxxabi headers
+ vinstall ${wrksrc}/libcxxabi/include/__cxxabi_config.h 644 usr/include
+ vinstall ${wrksrc}/libcxxabi/include/cxxabi.h 644 usr/include
+
+ # Install libunwind headers
+ vinstall ${wrksrc}/libunwind/include/__libunwind_config.h 644 usr/include
+ vinstall ${wrksrc}/libunwind/include/libunwind.h 644 usr/include
+ vinstall ${wrksrc}/libunwind/include/unwind.h 644 usr/include
+ vinstall ${wrksrc}/libunwind/include/mach-o/compact_unwind_encoding.h \
+ 644 usr/include/mach-o
+}
+
+clang-analyzer_package() {
+ pycompile_dirs="usr/share/scan-view"
+ depends="clang-${version}_${revision} python3 perl"
+ short_desc+=" - A source code analysis framework"
+ homepage="https://clang-analyzer.llvm.org/"
+ pkg_install() {
+ vmove "usr/bin/scan-*"
+ vmove "usr/libexec/*analyzer"
+ vmove "usr/share/scan-*"
+ vmove usr/share/man/man1/scan-build.1
+ }
+}
+
+clang-tools-extra_package() {
+ lib32disabled=yes
+ depends="clang-${version}_${revision} python3"
+ short_desc+=" - Extra Clang tools"
+ homepage="https://clang.llvm.org/extra/"
+ pkg_install() {
+ vmove usr/bin/clang-apply-replacements
+ vmove usr/bin/clang-doc
+ vmove usr/bin/clang-include-fixer
+ vmove usr/bin/clang-query
+ vmove usr/bin/clang-rename
+ vmove usr/bin/clang-reorder-fields
+ vmove usr/bin/clang-tidy
+ vmove usr/bin/clangd
+ vmove usr/bin/diagtool
+ vmove usr/bin/find-all-symbols
+ vmove usr/bin/hmaptool
+ vmove usr/bin/modularize
+ vmove usr/bin/pp-trace
+ vmove usr/bin/sancov
+ vmove usr/include/clang-tidy
+ vmove "usr/lib/libclangApplyReplacements*"
+ vmove "usr/lib/libclangDoc*"
+ vmove "usr/lib/libclangIncludeFixer*"
+ vmove "usr/lib/libclangReorderFields*"
+ vmove "usr/lib/libclangQuery*"
+ vmove "usr/lib/libclangTidy*"
+ vmove "usr/share/clang/*include-fixer*"
+ vmove "usr/share/clang/*rename*"
+ vmove "usr/share/clang/*tidy*"
+ vmove usr/share/doc/LLVM/clang-tools
+ vmove usr/share/man/man1/diagtool.1
+ vmove usr/share/man/man1/extraclangtools.1
+ }
+}
+
+clang_package() {
+ lib32disabled=yes
+ depends="libstdc++-devel libgcc-devel binutils ${XBPS_TARGET_LIBC}-devel
+ libclang-${version}_${revision}"
+ short_desc+=" - C language family frontend"
+ homepage="https://clang.llvm.org/"
+ pkg_install() {
+ vmove "usr/bin/*clang*"
+ vmove usr/bin/c-index-test
+ vmove usr/include/clang
+ vmove usr/include/clang-c
+ vmove usr/lib/clang
+ vmove usr/lib/cmake/clang
+ vmove "usr/lib/libclang*.a"
+ vmove "usr/lib/libclang*.so"
+ vmove usr/share/clang
+ vmove usr/share/doc/LLVM/clang
+ vmove usr/share/man/man1/clang.1
+ }
+}
+
+libclang_package() {
+ short_desc+=" - C frontend runtime library"
+ pkg_install() {
+ vmove "usr/lib/libclang.so.*"
+ }
+}
+
+libclang-cpp_package() {
+ short_desc+=" - C frontend runtime library (C++ interface)"
+ pkg_install() {
+ vmove "usr/lib/libclang-cpp.so.*"
+ }
+}
+
+lld_package() {
+ lib32disabled=yes
+ short_desc+=" - linker"
+ homepage="https://lld.llvm.org"
+ pkg_install() {
+ vmove usr/bin/ld.lld*
+ vmove usr/bin/ld64.lld*
+ vmove usr/bin/lld*
+ vmove usr/bin/wasm-ld
+ vmove usr/share/doc/LLVM/lld
+ }
+}
+
+lld-devel_package() {
+ lib32disabled=yes
+ short_desc+=" - linker - development files"
+ homepage="https://lld.llvm.org"
+ depends="lld>=${version}_${revision}"
+ pkg_install() {
+ vmove usr/include/lld
+ vmove usr/lib/cmake/lld
+ vmove "usr/lib/liblld*a"
+ }
+}
+
+lldb_package() {
+ lib32disabled=yes
+ depends+=" python3-six"
+ short_desc+=" - LLDB debugger"
+ homepage="https://lldb.llvm.org/"
+ pkg_install() {
+ vmove usr/bin/*lldb*
+ vmove usr/lib/liblldb*so.*
+ vmove /usr/lib/python*
+ }
+}
+
+lldb-devel_package() {
+ lib32disabled=yes
+ depends="lldb>=${version}_${revision}"
+ short_desc+=" - LLDB debugger - development files"
+ pkg_install() {
+ vmove usr/include/lldb
+ vmove "usr/lib/liblldb*.so"
+ }
+}
+
+llvm-libunwind_package() {
+ short_desc+=" - libunwind"
+ pkg_install() {
+ vmove "usr/lib/${XBPS_TRIPLET}/libunwind.so.*"
+ }
+}
+
+llvm-libunwind-devel_package() {
+ short_desc+=" - libunwind - development files"
+ depends="llvm-libunwind>=${version}_${revision}"
+ conflicts="libunwind-devel>=0"
+ pkg_install() {
+ vmove usr/include/mach-o
+ vmove "usr/include/*unwind*"
+ vmove "usr/lib/${XBPS_TRIPLET}/libunwind.a"
+ vmove "usr/lib/${XBPS_TRIPLET}/libunwind.so"
+ vmove usr/share/doc/LLVM/libunwind
+ }
+}
+
+libcxxabi_package() {
+ short_desc+=" - low level support for libc++"
+ pkg_install() {
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++abi.so.*"
+ }
+}
+
+libcxxabi-devel_package() {
+ short_desc+=" - low level support for libc++ - development files"
+ depends="libcxxabi>=${version}_${revision}"
+ pkg_install() {
+ vmove "usr/include/*cxxabi*"
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++abi.so"
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++abi.a"
+ }
+}
+
+libcxx_package() {
+ short_desc+=" - C++ standard library"
+ pkg_install() {
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++.so.*"
+ }
+}
+
+libcxx-devel_package() {
+ short_desc+=" - C++ standard library - development files"
+ depends="libcxx>=${version}_${revision}"
+ pkg_install() {
+ vmove usr/include/c++
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++.so"
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++.a"
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++experimental.a"
+ vmove usr/share/doc/LLVM/libcxx
+ }
+}
+
+libomp_package() {
+ short_desc+=" - Clang OpenMP support library"
+ pkg_install() {
+ vmove usr/lib/libarcher.so
+ vmove usr/lib/libomp.so
+ vmove usr/lib/libompd.so
+ vmove "usr/lib/libomptarget.rtl.*.so"
+ vmove "usr/lib/libomp*.so.*"
+ }
+}
+
+libomp-devel_package() {
+ short_desc+=" - Clang OpenMP support library - development files"
+ depends="libomp>=${version}_${revision}"
+ pkg_install() {
+ vmove "usr/include/omp*.h"
+ vmove "usr/lib/clang/${version}/include/omp*.h"
+ vmove "usr/lib/libarcher*"
+ vmove "usr/lib/libomp*.so"
+ vmove usr/lib/cmake/openmp
+ vmove usr/share/doc/LLVM/openmp
+ vmove usr/share/man/man1/llvmopenmp.1
+ }
+}
+
+libllvm15_package() {
+ short_desc+=" - runtime library"
+ pkg_install() {
+ vmove "usr/lib/libLLVM-*.so*"
+ }
+}
diff --git a/srcpkgs/llvm15/update b/srcpkgs/llvm15/update
new file mode 100644
index 000000000000..e95cf26b3586
--- /dev/null
+++ b/srcpkgs/llvm15/update
@@ -0,0 +1,3 @@
+site="https://github.com/llvm/llvm-project/releases"
+pattern="llvmorg-\K(\d+.){2}\d+(-rc\d+)?"
+ignore="*-rc*"
^ permalink raw reply [flat|nested] 96+ messages in thread
* Re: [PR PATCH] [Updated] [WIP] LLVM 15
2022-11-28 15:30 [PR PATCH] [WIP] LLVM 15 tranzystorek-io
` (5 preceding siblings ...)
2022-12-05 8:05 ` tranzystorek-io
@ 2022-12-05 8:17 ` tranzystorek-io
2022-12-05 8:22 ` [PR REVIEW] " oreo639
` (87 subsequent siblings)
94 siblings, 0 replies; 96+ messages in thread
From: tranzystorek-io @ 2022-12-05 8:17 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 502 bytes --]
There is an updated pull request by tranzystorek-io against master on the void-packages repository
https://github.com/tranzystorek-io/void-packages llvm15
https://github.com/void-linux/void-packages/pull/40821
[WIP] LLVM 15
[ci skip]
TODO:
- [ ] Adjust patches marked as `.patch.skip`
- [ ] Make libomp a shlib (change so file name and install a symlink)
- [ ] Avoid creating triplet dirs under /usr/
A patch file from https://github.com/void-linux/void-packages/pull/40821.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-llvm15-40821.patch --]
[-- Type: text/x-diff, Size: 181863 bytes --]
From 023ff7c6baa32294095d7ae7b21421424bfd9021 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sat, 5 Nov 2022 11:33:11 -0700
Subject: [PATCH 01/38] binutils: update to 2.39.
---
...e3f3bd6d460491f8c8d032a7fea88d5ec8ff.patch | 60 -----------------
.../fix-libcollector-without-java.patch | 53 +++++++++++++++
.../patches/ppc64-revert-gnu-attributes.patch | 66 +++++--------------
srcpkgs/binutils/template | 25 ++++---
4 files changed, 87 insertions(+), 117 deletions(-)
delete mode 100644 srcpkgs/binutils/patches/1767e3f3bd6d460491f8c8d032a7fea88d5ec8ff.patch
create mode 100644 srcpkgs/binutils/patches/fix-libcollector-without-java.patch
diff --git a/srcpkgs/binutils/patches/1767e3f3bd6d460491f8c8d032a7fea88d5ec8ff.patch b/srcpkgs/binutils/patches/1767e3f3bd6d460491f8c8d032a7fea88d5ec8ff.patch
deleted file mode 100644
index a55432d83cff..000000000000
--- a/srcpkgs/binutils/patches/1767e3f3bd6d460491f8c8d032a7fea88d5ec8ff.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-From 1767e3f3bd6d460491f8c8d032a7fea88d5ec8ff Mon Sep 17 00:00:00 2001
-From: "H.J. Lu" <hjl.tools@gmail.com>
-Date: Mon, 16 Nov 2020 06:37:53 -0800
-Subject: [PATCH] elf: Set rel_from_abs to 1 for __ehdr_start
-
-bfdlink.h has
-
- /* Symbol will be converted from absolute to section-relative. Set for
- symbols defined by a script from "dot" (also SEGMENT_START or ORIGIN)
- outside of an output section statement. */
- unsigned int rel_from_abs : 1;
-
-linker.c has
-
-.{* Return TRUE if the symbol described by a linker hash entry H
-. is going to be absolute. Linker-script defined symbols can be
-. converted from absolute to section-relative ones late in the
-. link. Use this macro to correctly determine whether the symbol
-. will actually end up absolute in output. *}
-.#define bfd_is_abs_symbol(H) \
-. (((H)->type == bfd_link_hash_defined \
-. || (H)->type == bfd_link_hash_defweak) \
-. && bfd_is_abs_section ((H)->u.def.section) \
-. && !(H)->rel_from_abs)
-.
-
-Set rel_from_abs to 1 for __ehdr_start which will be converted from
-absolute to section-relative in assign_file_positions_for_load_sections.
-
- PR ld/26869
- * ldelf.c (ldelf_before_allocation): Set rel_from_abs to 1 for
- __ehdr_start.
- * testsuite/ld-i386/i386.exp: Run pr26869.
- * testsuite/ld-i386/pr26869.d: New file.
- * testsuite/ld-i386/pr26869.s: Likewise.
-
-(cherry picked from commit cbd5b99cce073273f668b154d4514e8e7e7ccc51)
----
- ld/ChangeLog | 9 +++++++++
- ld/ldelf.c | 2 ++
- ld/testsuite/ld-i386/i386.exp | 1 +
- ld/testsuite/ld-i386/pr26869.d | 14 ++++++++++++++
- ld/testsuite/ld-i386/pr26869.s | 3 +++
- 5 files changed, 29 insertions(+)
- create mode 100644 ld/testsuite/ld-i386/pr26869.d
- create mode 100644 ld/testsuite/ld-i386/pr26869.s
-
-diff --git a/ld/ldelf.c b/ld/ldelf.c
-index bada3ade2d7..831d032fe56 100644
---- a/ld/ldelf.c
-+++ b/ld/ldelf.c
-@@ -1589,6 +1589,8 @@ ldelf_before_allocation (char *audit, char *depaudit,
- (char *) &ehdr_start->u + sizeof ehdr_start->u.def.next,
- sizeof ehdr_start_save_u);
- ehdr_start->type = bfd_link_hash_defined;
-+ /* It will be converted to section-relative later. */
-+ ehdr_start->rel_from_abs = 1;
- ehdr_start->u.def.section = bfd_abs_section_ptr;
- ehdr_start->u.def.value = 0;
- }
diff --git a/srcpkgs/binutils/patches/fix-libcollector-without-java.patch b/srcpkgs/binutils/patches/fix-libcollector-without-java.patch
new file mode 100644
index 000000000000..54384875f358
--- /dev/null
+++ b/srcpkgs/binutils/patches/fix-libcollector-without-java.patch
@@ -0,0 +1,53 @@
+From 49ddd814ac1071af7c4f45d5f8398b91862f2c7f Mon Sep 17 00:00:00 2001
+From: Vladimir Mezentsev <vladimir.mezentsev@oracle.com>
+Date: Wed, 17 Aug 2022 19:55:23 -0700
+Subject: [PATCH] gprofng: fix bug 29479 Collection fails when built without
+ java support
+
+gprofng/ChangeLog
+2022-08-17 Vladimir Mezentsev <vladimir.mezentsev@oracle.com>
+
+ PR gprofng/29479
+ * libcollector/collector.c: Add #if defined(GPROFNG_JAVA_PROFILING) for
+ java specific code.
+ * libcollector/unwind.c: Likewise.
+---
+ gprofng/libcollector/collector.c | 2 ++
+ gprofng/libcollector/unwind.c | 2 ++
+ 2 files changed, 4 insertions(+)
+
+diff --git a/gprofng/libcollector/collector.c b/gprofng/libcollector/collector.c
+index 93c9d3330de5..ceff2c1caccb 100644
+--- a/gprofng/libcollector/collector.c
++++ b/gprofng/libcollector/collector.c
+@@ -913,8 +913,10 @@ __collector_open_experiment (const char *exp, const char *params, sp_origin_t or
+ __collector_ext_unwind_key_init (1, NULL);
+
+ /* start java attach if suitable */
++#if defined(GPROFNG_JAVA_PROFILING)
+ if (exp_origin == SP_ORIGIN_DBX_ATTACH)
+ __collector_jprofile_start_attach ();
++#endif
+ start_sec_time = CALL_UTIL (time)(NULL);
+ __collector_start_time = collector_interface.getHiResTime ();
+ TprintfT (DBG_LT0, "\t__collector_open_experiment; resetting start_time\n");
+diff --git a/gprofng/libcollector/unwind.c b/gprofng/libcollector/unwind.c
+index 119243788020..f8e11823c81e 100644
+--- a/gprofng/libcollector/unwind.c
++++ b/gprofng/libcollector/unwind.c
+@@ -557,6 +557,7 @@ __collector_get_frame_info (hrtime_t ts, int mode, void *arg)
+ int size = max_frame_size;
+
+ #define MIN(a,b) ((a)<(b)?(a):(b))
++#if defined(GPROFNG_JAVA_PROFILING)
+ /* get Java info */
+ if (__collector_java_mode && __collector_java_asyncgetcalltrace_loaded && context && !pseudo_context)
+ {
+@@ -569,6 +570,7 @@ __collector_get_frame_info (hrtime_t ts, int mode, void *arg)
+ size -= sz;
+ }
+ }
++#endif
+
+ /* get native stack */
+ if (context)
diff --git a/srcpkgs/binutils/patches/ppc64-revert-gnu-attributes.patch b/srcpkgs/binutils/patches/ppc64-revert-gnu-attributes.patch
index 5de937f4fcce..1c208dd8955c 100644
--- a/srcpkgs/binutils/patches/ppc64-revert-gnu-attributes.patch
+++ b/srcpkgs/binutils/patches/ppc64-revert-gnu-attributes.patch
@@ -1,39 +1,24 @@
-From b1faf99f3e546df2cd302bb1ad36a2078224fe8b Mon Sep 17 00:00:00 2001
+From bbf05b742fde518fb97c789b043fe0d3aaf549f0 Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@dereferenced.org>
-Date: Fri, 30 Oct 2020 16:59:48 -0600
+Date: Tue, 21 Sep 2021 14:53:13 +0000
Subject: [PATCH] Revert "PR25882, .gnu.attributes are not checked for shared
libraries"
+This revert is needed to avoid wrongly tagging objects with the incompatible
+IBM long double ABI, which is not supported by musl and will result in
+linking errors if used.
+
This reverts commit a8acd6eeb6dc2cc5460ece90f90ebe36b56b20ba.
---
- bfd/ChangeLog | 6 ------
- bfd/elf32-tic6x.c | 3 ---
- ld/ChangeLog | 6 ------
- ld/ldlang.c | 9 ++++-----
- 4 files changed, 4 insertions(+), 20 deletions(-)
+ bfd/elf32-tic6x.c | 3 ---
+ ld/ldlang.c | 10 ++++------
+ 2 files changed, 4 insertions(+), 9 deletions(-)
-diff --git a/bfd/ChangeLog b/bfd/ChangeLog
-index 9fac12538a..b5461494e8 100644
---- a/bfd/ChangeLog
-+++ b/bfd/ChangeLog
-@@ -1422,12 +1422,6 @@
- accessing root.u.def of symbols. Also check root.u.def.section
- is non-NULL. Reverse tests so as to make the logic positive.
-
--2020-05-01 Alan Modra <amodra@gmail.com>
--
-- PR 25882
-- * elf32-tic6x.c (elf32_tic6x_merge_attributes): Don't transfer
-- Tag_ABI_PIC or Tag_ABI_PID from dynamic objects to the output.
--
- 2020-05-01 Alan Modra <amodra@gmail.com>
-
- PR 25882
diff --git a/bfd/elf32-tic6x.c b/bfd/elf32-tic6x.c
-index b8b916bfd3..91bb6a10b1 100644
+index 5754f3cb860..3ad1d612749 100644
--- a/bfd/elf32-tic6x.c
+++ b/bfd/elf32-tic6x.c
-@@ -3748,9 +3748,6 @@ elf32_tic6x_merge_attributes (bfd *ibfd, struct bfd_link_info *info)
+@@ -3735,9 +3735,6 @@ elf32_tic6x_merge_attributes (bfd *ibfd, struct bfd_link_info *info)
case Tag_ABI_PIC:
case Tag_ABI_PID:
@@ -43,36 +28,20 @@ index b8b916bfd3..91bb6a10b1 100644
if (out_attr[i].i > in_attr[i].i)
out_attr[i].i = in_attr[i].i;
break;
-diff --git a/ld/ChangeLog b/ld/ChangeLog
-index 4eec7d2977..b93452f70c 100644
---- a/ld/ChangeLog
-+++ b/ld/ChangeLog
-@@ -1319,12 +1319,6 @@
- * testsuite/ld-aarch64/farcall-group.d: New test driver.
- * testsuite/ld-aarch64/aarch64-elf.exp: Run the new test.
-
--2020-05-01 Alan Modra <amodra@gmail.com>
--
-- PR 25882
-- * ldlang.c (lang_check): Call bfd_merge_private_bfd_data for
-- shared libraries.
--
- 2020-05-01 Alan Modra <amodra@gmail.com>
-
- * po/BLD-POTFILES.in: Regenerate.
diff --git a/ld/ldlang.c b/ld/ldlang.c
-index 9977195074..173d8ec349 100644
+index 37b64c89ee1..f13beaef9d9 100644
--- a/ld/ldlang.c
+++ b/ld/ldlang.c
-@@ -6972,12 +6972,11 @@ lang_check (void)
+@@ -7071,13 +7071,11 @@ lang_check (void)
bfd_printable_name (input_bfd), input_bfd,
bfd_printable_name (link_info.output_bfd));
}
-
- /* If the input bfd has no contents, it shouldn't set the
- private data of the output bfd. */
-- else if ((input_bfd->flags & DYNAMIC) != 0
-- || bfd_count_sections (input_bfd) != 0)
+- else if (!file->flags.just_syms
+- && ((input_bfd->flags & DYNAMIC) != 0
+- || bfd_count_sections (input_bfd) != 0))
+ else if (bfd_count_sections (input_bfd))
{
+ /* If the input bfd has no contents, it shouldn't set the
@@ -82,5 +51,4 @@ index 9977195074..173d8ec349 100644
/* If we aren't supposed to warn about mismatched input
--
-2.29.2
-
+2.33.0
diff --git a/srcpkgs/binutils/template b/srcpkgs/binutils/template
index 6270f8618c87..c355a5fc8016 100644
--- a/srcpkgs/binutils/template
+++ b/srcpkgs/binutils/template
@@ -1,19 +1,20 @@
# Template file for 'binutils'
pkgname=binutils
-version=2.35.1
-revision=4
+version=2.39
+revision=1
bootstrap=yes
+hostmakedepends="pkgconf"
makedepends="zlib-devel"
short_desc="GNU binary utilities"
maintainer="Enno Boland <gottox@voidlinux.org>"
license="GPL-3.0-or-later"
homepage="http://www.gnu.org/software/binutils/"
distfiles="${GNU_SITE}/$pkgname/$pkgname-$version.tar.xz"
-checksum=3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
+checksum=645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
subpackages="binutils-doc"
if [ "$CHROOT_READY" ]; then
- hostmakedepends="flex perl texinfo"
+ hostmakedepends+=" flex perl texinfo"
makedepends+=" elfutils-devel"
checkdepends="bc"
depends="binutils-doc"
@@ -35,15 +36,21 @@ do_configure() {
local conf
if [ "$CHROOT_READY" ]; then
- conf+=" --with-debuginfod"
+ conf+=" --with-debuginfod --enable-shared"
else
- conf+=" --without-debuginfod --disable-install-libbfd"
+ conf+=" --without-debuginfod --disable-shared --disable-install-libbfd"
fi
if [ "$CROSS_BUILD" ]; then
# we don't want --with-sysroot=${XBPS_CROSS_BASE} like gnu-configure
conf+=" --host=${XBPS_CROSS_TRIPLET} --with-build-sysroot=${XBPS_CROSS_BASE}"
fi
+ # gprofng currently only supports x86 and aarch64 glibc.
+ case "$XBPS_TARGET_MACHINE" in
+ x86_64|i386|aarch64) conf+=" --enable-gprofng" ;;
+ *) conf+=" --disable-gprofng" ;;
+ esac
+
case "$XBPS_TARGET_MACHINE" in
ppc*)
conf+=" --enable-secureplt"
@@ -76,13 +83,14 @@ do_configure() {
--libdir=/usr/lib \
--mandir=/usr/share/man \
--infodir=/usr/share/info \
+ --sysconfdir=/etc \
--disable-werror \
- --disable-shared \
--disable-nls \
--enable-threads \
--enable-plugins \
--enable-relro \
--enable-gold \
+ --enable-new-dtags \
--enable-deterministic-archives \
--enable-64-bit-bfd \
--enable-ld=default \
@@ -142,7 +150,8 @@ binutils-devel_package() {
pkg_install() {
vmove usr/include
vmove "usr/lib/*.a"
- vmove "usr/lib/*.so"
+ vmove "usr/lib/libbfd.so"
+ vmove "usr/lib/libopcodes.so"
}
}
From a3a9127f29ca775d5e8cfab5ee07092a41327fb3 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sat, 5 Nov 2022 11:33:11 -0700
Subject: [PATCH 02/38] gdb: resolve conflict with binutils 2.39
---
srcpkgs/gdb/template | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/gdb/template b/srcpkgs/gdb/template
index 9c5f17ffc519..b666348fea19 100644
--- a/srcpkgs/gdb/template
+++ b/srcpkgs/gdb/template
@@ -1,7 +1,7 @@
# Template file for 'gdb'
pkgname=gdb
version=12.1
-revision=2
+revision=3
build_style=gnu-configure
pycompile_dirs="/usr/share/gdb/python"
configure_args="--disable-werror --disable-nls --with-system-readline
@@ -48,7 +48,8 @@ vopt_conflict debuginfod static
post_install() {
# resolve conflicts with binutils
- rm -r ${DESTDIR}/usr/{include,lib,share/info/bfd.info*}
+ rm -rf ${DESTDIR}/usr/{include,lib}
+ rm -rf ${DESTDIR}/usr/share/info/{bfd,ctf-spec}.info*
}
gdb-common_package() {
From 28c6739b1887608bdf582fb06f573f3137928cb0 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sat, 5 Nov 2022 11:33:11 -0700
Subject: [PATCH 03/38] gcc: update to 12.2.0.
---
common/shlibs | 10 +--
srcpkgs/gcc/files/gccgo-musl.patch | 71 +++------------
srcpkgs/gcc/files/libgnarl-musl.patch | 18 ++--
srcpkgs/gcc/files/libssp-musl.patch | 10 +--
.../gcc/patches/force-override-clocale.patch | 21 +++++
srcpkgs/gcc/patches/libffi_gnulinux.patch | 11 ---
.../gcc/patches/libgcc-ibm128-no-tag.patch | 10 ++-
srcpkgs/gcc/patches/mips-sgidefs_h.patch | 2 +-
srcpkgs/gcc/template | 87 +++++++++----------
9 files changed, 101 insertions(+), 139 deletions(-)
create mode 100644 srcpkgs/gcc/patches/force-override-clocale.patch
delete mode 100644 srcpkgs/gcc/patches/libffi_gnulinux.patch
diff --git a/common/shlibs b/common/shlibs
index 0814612ced32..3ee7969839ad 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -60,7 +60,7 @@ libcc1plugin.so.0 gcc-6.2.1_1
libitm.so.1 libitm-4.7.3_1
liblto_plugin.so.0 gcc-4.7.3_1
libgcc_s.so.1 libgcc-4.4.0_1
-libgo.so.16 libgo-10.2.0_1
+libgo.so.21 libgo-12.2.0_1
libgccjit.so.0 libgccjit-10.2.1pre1_1
libperl.so.5.36 perl-5.36.0_1
libgmp.so.10 gmp-5.0.1_1
@@ -858,8 +858,8 @@ libgdkmm-2.4.so.1 gtkmm2-2.24.0_1
libgtkmm-2.4.so.1 gtkmm2-2.24.0_1
libquadmath.so.0 libquadmath-4.4.0_1
libgfortran.so.5 libgfortran-8.2.0_1
-libgnarl-10.so libada-10.2.0_1
-libgnat-10.so libada-10.2.0_1
+libgnarl-12.so libada-12.2.0_1
+libgnat-12.so libada-12.2.0_1
libwebp.so.7 libwebp-0.6.0_1
libwebpmux.so.3 libwebp-0.6.0_1
libwebpdemux.so.2 libwebp-0.5.0_1
@@ -1711,8 +1711,8 @@ libextractor.so.3 libextractor-1.1_1
libextractor_common.so.1 libextractor-1.1_1
libpano13.so.3 libpano13-2.9.19_1
libubsan.so.1 libsanitizer-8.2.0_1
-libtsan.so.0 libsanitizer-6.3.0_1
-libasan.so.6 libsanitizer-10.2.0_1
+libtsan.so.2 libsanitizer-12.2.0_1
+libasan.so.8 libsanitizer-12.2.0_1
liblsan.so.0 libsanitizer-6.3.0_1
libvtv.so.0 libvtv-6.3.0_1
libatomic.so.1 libatomic-4.9.0_1
diff --git a/srcpkgs/gcc/files/gccgo-musl.patch b/srcpkgs/gcc/files/gccgo-musl.patch
index 9762739615af..12ec68dd8aa3 100644
--- a/srcpkgs/gcc/files/gccgo-musl.patch
+++ b/srcpkgs/gcc/files/gccgo-musl.patch
@@ -53,17 +53,6 @@ URL: https://code.foxkit.us/adelie/packages/tree/master/system/gcc
p := sysMmap(addr, n, prot, flags, fd, off)
if uintptr(p) == _MAP_FAILED {
return nil, errno()
---- a/libgo/go/runtime/signal_gccgo.go
-+++ b/libgo/go/runtime/signal_gccgo.go
-@@ -111,7 +111,7 @@ func getsig(i uint32) uintptr {
- if sigaction(i, nil, &sa) < 0 {
- // On GNU/Linux glibc rejects attempts to call
- // sigaction with signal 32 (SIGCANCEL) or 33 (SIGSETXID).
-- if GOOS == "linux" && (i == 32 || i == 33) {
-+ if GOOS == "linux" && (i == 32 || i == 33 || i == 34) {
- return _SIG_DFL
- }
- throw("sigaction read failure")
--- a/libgo/go/syscall/errstr.go
+++ b/libgo/go/syscall/errstr.go
@@ -5,7 +5,6 @@
@@ -140,55 +129,6 @@ URL: https://code.foxkit.us/adelie/packages/tree/master/system/gcc
plwoff = &lwoff
}
n, err = splice(rfd, plroff, wfd, plwoff, len, flags)
---- a/libgo/mksigtab.sh
-+++ b/libgo/mksigtab.sh
-@@ -82,7 +82,7 @@ checksig _SIGPWR '{_SigNotify, "SIGPWR: power failure restart"}'
- checksig _SIGEMT '{_SigThrow, "SIGEMT: emulate instruction executed"}'
- checksig _SIGINFO '{_SigNotify, "SIGINFO: status request from keyboard"}'
- checksig _SIGTHR '{_SigNotify, "SIGTHR: reserved"}'
--checksig _SIGPOLL '{_SigNotify, "SIGPOLL: pollable event occurred"}'
-+#checksig _SIGPOLL '{_SigNotify, "SIGPOLL: pollable event occurred"}'
- checksig _SIGWAITING '{_SigNotify, "SIGWAITING: reserved signal no longer used by"}'
- checksig _SIGLWP '{_SigNotify, "SIGLWP: reserved signal no longer used by"}'
- checksig _SIGFREEZE '{_SigNotify, "SIGFREEZE: special signal used by CPR"}'
-@@ -95,10 +95,12 @@ checksig _SIGLOST ' {_SigNotify, "SIGLOST: resource lost (Sun); server died (G
-
- # Special handling of signals 32 and 33 on GNU/Linux systems,
- # because they are special to glibc.
-+# Signal 34 is additionally special to Linux systems with musl.
- if test "${GOOS}" = "linux"; then
-- SIGLIST=$SIGLIST"_32__33_"
-+ SIGLIST=$SIGLIST"_32__33__34_"
- echo ' 32: {_SigSetStack + _SigUnblock, "signal 32"}, /* SIGCANCEL; see issue 6997 */'
- echo ' 33: {_SigSetStack + _SigUnblock, "signal 33"}, /* SIGSETXID; see issues 3871, 9400, 12498 */'
-+ echo ' 34: {_SigSetStack + _SigUnblock, "signal 34"}, /* see issue 30062 */'
- fi
-
- if test "${GOOS}" = "aix"; then
---- a/libgo/runtime/go-signal.c 2020-07-23 08:35:19.004402840 +0200
-+++ b/libgo/runtime/go-signal.c 2020-08-09 21:35:54.352886232 +0200
-@@ -224,7 +224,11 @@
- #elif defined(__alpha__) && defined(__linux__)
- ret.sigpc = ((ucontext_t*)(context))->uc_mcontext.sc_pc;
- #elif defined(__PPC__) && defined(__linux__)
-- ret.sigpc = ((ucontext_t*)(context))->uc_mcontext.regs->nip;
-+ #ifdef __PPC64__
-+ ret.sigpc = ((ucontext_t*)(context))->uc_mcontext.gp_regs[32];
-+ #else
-+ ret.sigpc = ((ucontext_t*)(context))->uc_mcontext.gregs[32];
-+ #endif
- #elif defined(__PPC__) && defined(_AIX)
- ret.sigpc = ((ucontext_t*)(context))->uc_mcontext.jmp_context.iar;
- #elif defined(__aarch64__) && defined(__linux__)
-@@ -333,7 +337,7 @@
- runtime_printf("sp %X\n", m->sc_regs[30]);
- runtime_printf("pc %X\n", m->sc_pc);
- }
--#elif defined(__PPC__) && defined(__LITTLE_ENDIAN__) && defined(__linux__)
-+#elif defined(__PPC__) && defined(__LITTLE_ENDIAN__) && defined(__linux__) && defined(__GLIBC__)
- {
- mcontext_t *m = &((ucontext_t*)(context))->uc_mcontext;
- int i;
--- a/libgo/runtime/runtime.h
+++ b/libgo/runtime/runtime.h
@@ -500,10 +500,13 @@ int __go_setcontext(__go_context_t*);
@@ -220,3 +160,14 @@ URL: https://code.foxkit.us/adelie/packages/tree/master/system/gcc
#if defined(HAVE_SYS_UTSNAME_H)
#include <sys/utsname.h>
#endif
+--- a/libgo/go/runtime/os_linux.go
++++ b/libgo/go/runtime/os_linux.go
+@@ -365,7 +365,7 @@ func setThreadCPUProfiler(hz int32) {
+ var sevp _sigevent
+ sevp.sigev_notify = _SIGEV_THREAD_ID
+ sevp.sigev_signo = _SIGPROF
+- *((*int32)(unsafe.Pointer(&sevp._sigev_un))) = int32(mp.procid)
++ *((*int32)(unsafe.Pointer(&sevp.__sev_fields))) = int32(mp.procid)
+ ret := timer_create(_CLOCK_THREAD_CPUTIME_ID, &sevp, &timerid)
+ if ret != 0 {
+ // If we cannot create a timer for this M, leave profileTimerValid false
diff --git a/srcpkgs/gcc/files/libgnarl-musl.patch b/srcpkgs/gcc/files/libgnarl-musl.patch
index 99a734c42c90..91c95949e0e9 100644
--- a/srcpkgs/gcc/files/libgnarl-musl.patch
+++ b/srcpkgs/gcc/files/libgnarl-musl.patch
@@ -5,7 +5,7 @@ Reason: Patch libgnarl to not use function missing from musl.
diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-osinte__linux.ads gcc-8.2.0-new/gcc/ada/libgnarl/s-osinte__linux.ads
--- a/gcc/ada/libgnarl/s-osinte__linux.ads 2018-01-11 00:55:25.000000000 -0800
+++ b/gcc/ada/libgnarl/s-osinte__linux.ads 2018-11-01 16:16:23.372452951 -0700
-@@ -394,12 +394,6 @@ package System.OS_Interface is
+@@ -403,12 +403,6 @@ package System.OS_Interface is
PTHREAD_RWLOCK_PREFER_WRITER_NP : constant := 1;
PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP : constant := 2;
@@ -18,7 +18,7 @@ diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-osinte__linux.ads gcc-8.2.0-new/gcc/ada/l
function pthread_rwlock_init
(mutex : access pthread_rwlock_t;
attr : access pthread_rwlockattr_t) return int;
-@@ -464,11 +458,6 @@ package System.OS_Interface is
+@@ -470,11 +464,6 @@ package System.OS_Interface is
protocol : int) return int;
pragma Import (C, pthread_mutexattr_setprotocol);
@@ -33,7 +33,7 @@ diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-osinte__linux.ads gcc-8.2.0-new/gcc/ada/l
diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-taprop__linux.adb gcc-8.2.0-new/gcc/ada/libgnarl/s-taprop__linux.adb
--- a/gcc/ada/libgnarl/s-taprop__linux.adb 2018-01-11 00:55:25.000000000 -0800
+++ b/gcc/ada/libgnarl/s-taprop__linux.adb 2018-11-13 11:28:36.433964449 -0800
-@@ -202,9 +202,6 @@ package body System.Task_Primitives.Oper
+@@ -198,9 +198,6 @@ package body System.Task_Primitives.Oper
pragma Import
(C, GNAT_pthread_condattr_setup, "__gnat_pthread_condattr_setup");
@@ -43,7 +43,7 @@ diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-taprop__linux.adb gcc-8.2.0-new/gcc/ada/l
-- We do not have pragma Linker_Options ("-lcap"); here, because this
-- library is not present on many Linux systems. 'libcap' is the Linux
-- "capabilities" library, called by __gnat_has_cap_sys_nice.
-@@ -214,38 +211,6 @@ package body System.Task_Primitives.Oper
+@@ -210,38 +207,6 @@ package body System.Task_Primitives.Oper
-- Convert Ada priority to Linux priority. Priorities are 1 .. 99 on
-- GNU/Linux, so we map 0 .. 98 to 1 .. 99.
@@ -76,13 +76,13 @@ diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-taprop__linux.adb gcc-8.2.0-new/gcc/ada/l
- return Ceiling_Support;
- end Get_Ceiling_Support;
-
-- pragma Warnings (Off, "non-static call not allowed in preelaborated unit");
+- pragma Warnings (Off, "non-preelaborable call not allowed*");
- Ceiling_Support : constant Boolean := Get_Ceiling_Support;
-- pragma Warnings (On, "non-static call not allowed in preelaborated unit");
+- pragma Warnings (On, "non-preelaborable call not allowed*");
-- True if the locking policy is Ceiling_Locking, and the current process
-- has permission to use this policy. The process has permission if it is
-- running as 'root', or if the capability was set by the setcap command,
-@@ -348,7 +313,9 @@ package body System.Task_Primitives.Oper
+@@ -344,7 +309,9 @@ package body System.Task_Primitives.Oper
-- Init_Mutex --
----------------
@@ -92,7 +92,7 @@ diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-taprop__linux.adb gcc-8.2.0-new/gcc/ada/l
Mutex_Attr : aliased pthread_mutexattr_t;
Result, Result_2 : C.int;
-@@ -360,16 +327,7 @@ package body System.Task_Primitives.Oper
+@@ -356,16 +323,7 @@ package body System.Task_Primitives.Oper
return Result;
end if;
@@ -110,7 +110,7 @@ diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-taprop__linux.adb gcc-8.2.0-new/gcc/ada/l
Result := pthread_mutexattr_setprotocol
(Mutex_Attr'Access, PTHREAD_PRIO_INHERIT);
pragma Assert (Result = 0);
-@@ -409,11 +367,6 @@ package body System.Task_Primitives.Oper
+@@ -405,11 +363,6 @@ package body System.Task_Primitives.Oper
Result := pthread_rwlockattr_init (RWlock_Attr'Access);
pragma Assert (Result = 0);
diff --git a/srcpkgs/gcc/files/libssp-musl.patch b/srcpkgs/gcc/files/libssp-musl.patch
index b21a2c29e57c..99f248401a1c 100644
--- a/srcpkgs/gcc/files/libssp-musl.patch
+++ b/srcpkgs/gcc/files/libssp-musl.patch
@@ -2,9 +2,9 @@ First part taken from Alpine.
Second part added to prevent gccgo from thinking it can -fsplit-stack on musl.
---- a/gcc/gcc.c
-+++ b/gcc/gcc.c
-@@ -874,10 +874,15 @@ proper position among the other output files. */
+--- a/gcc/gcc.cc
++++ b/gcc/gcc.cc
+@@ -984,10 +984,15 @@ proper position among the other output f
#define LINK_GCC_C_SEQUENCE_SPEC "%G %{!nolibc:%L %G}"
#endif
@@ -22,10 +22,10 @@ Second part added to prevent gccgo from thinking it can -fsplit-stack on musl.
#else
#define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \
"|fstack-protector-strong|fstack-protector-explicit" \
-@@ -1155,7 +1160,7 @@ static const char *cc1_options =
+@@ -1280,7 +1285,7 @@ static const char *cc1_options =
%{-version:--version}\
%{-help=*:--help=%*}\
- %{!fsyntax-only:%{S:%W{o*}%{!o*:-o %b.s}}}\
+ %{!fsyntax-only:%{S:%W{o*}%{!o*:-o %w%b.s}}}\
- %{fsyntax-only:-o %j} %{-param*}\
+ %{fsyntax-only:-o %j} %{-param*} " NO_SSP_SPEC "\
%{coverage:-fprofile-arcs -ftest-coverage}\
diff --git a/srcpkgs/gcc/patches/force-override-clocale.patch b/srcpkgs/gcc/patches/force-override-clocale.patch
new file mode 100644
index 000000000000..8af8a7150dd9
--- /dev/null
+++ b/srcpkgs/gcc/patches/force-override-clocale.patch
@@ -0,0 +1,21 @@
+This is necessary when building a gnu cross compiler for a musl target.
+Otherwise, even if clocale manually is set to gnu, it will be reset to generic
+when the test is performed using AC_EGREP_CPP().
+--- a/libstdc++-v3/configure
++++ b/libstdc++-v3/configure
+@@ -16493,6 +16493,7 @@ fi
+
+ # Sanity check model, and test for special functionality.
+ if test $enable_clocale_flag = gnu; then
++ if test $enable_clocale = auto; then
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h. */
+
+@@ -16509,6 +16510,7 @@ else
+ enable_clocale_flag=generic
+ fi
+ rm -f conftest*
++ fi
+
+
+ # Set it to scream when it hurts.
diff --git a/srcpkgs/gcc/patches/libffi_gnulinux.patch b/srcpkgs/gcc/patches/libffi_gnulinux.patch
deleted file mode 100644
index 98245bd5be1a..000000000000
--- a/srcpkgs/gcc/patches/libffi_gnulinux.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/libffi/src/closures.c
-+++ b/libffi/src/closures.c
-@@ -34,7 +34,7 @@
- #include <ffi_common.h>
-
- #if !FFI_MMAP_EXEC_WRIT && !FFI_EXEC_TRAMPOLINE_TABLE
--# if __gnu_linux__ && !defined(__ANDROID__)
-+# if __linux__ && !defined(__ANDROID__)
- /* This macro indicates it may be forbidden to map anonymous memory
- with both write and execute permission. Code compiled when this
- option is defined will attempt to map such pages once, but if it
diff --git a/srcpkgs/gcc/patches/libgcc-ibm128-no-tag.patch b/srcpkgs/gcc/patches/libgcc-ibm128-no-tag.patch
index bdf5c75d917d..26d80356ad0d 100644
--- a/srcpkgs/gcc/patches/libgcc-ibm128-no-tag.patch
+++ b/srcpkgs/gcc/patches/libgcc-ibm128-no-tag.patch
@@ -29,10 +29,14 @@ diff --git a/libgcc/config/rs6000/t-linux b/libgcc/config/rs6000/t-linux
index 4f6d4c4..fa93bb6 100644
--- a/libgcc/config/rs6000/t-linux
+++ b/libgcc/config/rs6000/t-linux
-@@ -1,3 +1,3 @@
+@@ -1,6 +1,6 @@
SHLIB_MAPFILES += $(srcdir)/config/rs6000/libgcc-glibc.ver
--HOST_LIBGCC2_CFLAGS += -mlong-double-128 -mno-minimal-toc
-+HOST_LIBGCC2_CFLAGS += -mlong-double-128 -mno-gnu-attribute -mno-minimal-toc
+-HOST_LIBGCC2_CFLAGS += -mlong-double-128
++HOST_LIBGCC2_CFLAGS += -mlong-double-128 -mno-gnu-attribute
+
+ # This is a way of selecting -mcmodel=small for ppc64, which gives
+ # smaller and faster libgcc code. Directly specifying -mcmodel=small
+
--
2.24.0
diff --git a/srcpkgs/gcc/patches/mips-sgidefs_h.patch b/srcpkgs/gcc/patches/mips-sgidefs_h.patch
index dddfe10e8c06..cd0ae7a380df 100644
--- a/srcpkgs/gcc/patches/mips-sgidefs_h.patch
+++ b/srcpkgs/gcc/patches/mips-sgidefs_h.patch
@@ -3,7 +3,7 @@
@@ -42,7 +42,7 @@
#define _MIPS_SIM_NABI32 2
#define _MIPS_SIM_ABI64 3
- #elif !defined(__OpenBSD__)
+ #elif !defined(__OpenBSD__) && !defined(__FreeBSD__)
-# include <sgidefs.h>
+# include <asm/sgidefs.h>
#endif
diff --git a/srcpkgs/gcc/template b/srcpkgs/gcc/template
index ab3643de4f98..a20af7c0ef2e 100644
--- a/srcpkgs/gcc/template
+++ b/srcpkgs/gcc/template
@@ -3,18 +3,14 @@
# which use the version number.
pkgname=gcc
-# we are using a 10-stable git snapshot alpine is using in order
-# to get regression fixes not yet incorporate into a stable release
-# it should be possible to switch back to stable with 10.3 or 11
-version=10.2.1pre1
-revision=3
-_patchver="${version%pre*}"
-_minorver="${_patchver%.*}"
+version=12.2.0
+revision=1
+_minorver="${version%.*}"
_majorver="${_minorver%.*}"
-_gmp_version=6.2.0
+_gmp_version=6.2.1
_mpfr_version=4.1.0
-_mpc_version=1.1.0
-_isl_version=0.21
+_mpc_version=1.2.1
+_isl_version=0.24
create_wrksrc=yes
short_desc="GNU Compiler Collection"
maintainer="Enno Boland <gottox@voidlinux.org>"
@@ -22,16 +18,16 @@ homepage="http://gcc.gnu.org"
license="GFDL-1.2-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
# *-musl builders have issues fetching https://ftp.gnu.org/gnu/mpc/mpc-1.1.0.tar.gz
distfiles="
- https://dev.alpinelinux.org/~nenolod/gcc-${version/pre/_pre}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${version}/gcc-${version}.tar.xz
https://gmplib.org/download/gmp/gmp-${_gmp_version}.tar.xz
${GNU_SITE}/mpfr/mpfr-${_mpfr_version}.tar.xz
${GNU_SITE}/mpc/mpc-${_mpc_version}.tar.gz
${SOURCEFORGE_SITE}/libisl/isl-${_isl_version}.tar.bz2"
-checksum="772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 258e6cd51b3fbdfc185c716d55f82c08aff57df0c6fbd143cf6ed561267a1526
+checksum="e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
+ fd4829912cddd12f84181c3451cc752be224643e87fac497b69edddadc49b4f2
0c98a3f1732ff6ca4ea690552079da9c597872d30e96ec28414ee23c95558a7f
- 6985c538143c1208dcb1ac42cedad6ff52e267b47e5f970183a3e75125b43c2e
- d18ca11f8ad1a39ab6d03d3dcb3365ab416720fcb65b42d69f34f51bf0a0e859"
+ 17503d2c395dfcf106b622dc142683c1199431d095367c6aacba6eec30340459
+ fcf78dd9656c10eb8cf9fbd5f59a0b6b01386205fe1934b3b287a0a1898145c0"
nopie=yes
lib32disabled=yes
@@ -52,8 +48,11 @@ if [ "$CHROOT_READY" ]; then
hostmakedepends="tar texinfo perl flex"
else
_have_gccgo=no
+ # libzstd fails to link in bootstrap with glibc 2.36
+ # when zlib has been compiled with glibc 2.32.
+ LDFLAGS="-lzstd -pthread"
fi
-makedepends="zlib-devel"
+makedepends="zlib-devel libzstd-devel"
depends="binutils libgcc-devel-${version}_${revision}
libstdc++-devel-${version}_${revision} libssp-devel-${version}_${revision}"
checkdepends="dejagnu"
@@ -70,13 +69,13 @@ if [ "$build_option_gnatboot" ]; then
case "$XBPS_TARGET_MACHINE" in
x86_64)
_gnat_tarball="gnat-gpl-2017-x86_64-linux-bin.tar.gz"
- distfiles+=" http://mirrors.cdn.adacore.com/art/591c6d80c7a447af2deed1d7>$_gnat_tarball"
+ distfiles+=" https://community.download.adacore.com/v1/9682e2e1f2f232ce03fe21d77b14c37a0de5649b?filename=$_gnat_tarball>$_gnat_tarball"
checksum+=" b942bcac20dea39748b39f8b624d9619f60a8dee2e8195dbe3829c835b0956e6"
build_options_default="gnatboot"
;;
i686)
_gnat_tarball="gnat-gpl-2014-x86-linux-bin.tar.gz"
- distfiles+=" http://mirrors.cdn.adacore.com/art/564b3e9dc8e196b040fbe248>$_gnat_tarball"
+ distfiles+=" https://community.download.adacore.com/v1/c5e9e6fdff5cb77ed90cf8c62536653e27c0bed6?filename=$_gnat_tarball>$_gnat_tarball"
checksum+=" 3b693510f5d22a240abb3034934c1adbd80ccd6e4f61a4f491cc408fdfd9c042"
build_options_default="gnatboot"
;;
@@ -155,8 +154,8 @@ if [ "$CROSS_BUILD" ]; then
fi
post_extract() {
- mv gcc-${version/pre/_pre}/* gcc-${version/pre/_pre}/.??* .
- rmdir gcc-${version/pre/_pre}
+ mv gcc-${version}/* gcc-${version}/.??* .
+ rmdir gcc-${version}
mv gmp-${_gmp_version} gmp
mv mpfr-${_mpfr_version} mpfr
mv mpc-${_mpc_version} mpc
@@ -186,9 +185,9 @@ pre_configure() {
sed -i 's@\./fixinc\.sh@-c true@' gcc/Makefile.in
if [ "$XBPS_TARGET_LIBC" = musl ]; then
- patch -p1 -i ${FILESDIR}/libgnarl-musl.patch
- patch -p1 -i ${FILESDIR}/libssp-musl.patch
- patch -p1 -i ${FILESDIR}/gccgo-musl.patch
+ for p in ${FILESDIR}/*-musl.patch; do
+ patch -p1 -i $p
+ done
fi
}
do_configure() {
@@ -343,16 +342,16 @@ do_install() {
# Make version a symlink of major version to make all versions
# from the same series work automagically.
- mv ${DESTDIR}/usr/lib/gcc/${_triplet}/${_patchver} \
+ mv ${DESTDIR}/usr/lib/gcc/${_triplet}/${version} \
${DESTDIR}/usr/lib/gcc/${_triplet}/${_minorver}
ln -sfr ${DESTDIR}/usr/lib/gcc/${_triplet}/${_minorver} \
- ${DESTDIR}/usr/lib/gcc/${_triplet}/${_patchver}
+ ${DESTDIR}/usr/lib/gcc/${_triplet}/${version}
# Ditto for c++ headers.
- mv ${DESTDIR}/usr/include/c++/${_patchver} \
+ mv ${DESTDIR}/usr/include/c++/${version} \
${DESTDIR}/usr/include/c++/${_minorver}
ln -sfr ${DESTDIR}/usr/include/c++/${_minorver} \
- ${DESTDIR}/usr/include/c++/${_patchver}
+ ${DESTDIR}/usr/include/c++/${version}
# cc symlink
ln -sfr ${DESTDIR}/usr/bin/gcc ${DESTDIR}/usr/bin/cc
@@ -361,7 +360,7 @@ do_install() {
# lto plugin symlink
vmkdir usr/lib/bfd-plugins
- ln -sfr ${DESTDIR}/usr/lib/gcc/${_triplet}/${_patchver}/liblto_plugin.so \
+ ln -sfr ${DESTDIR}/usr/lib/gcc/${_triplet}/${version}/liblto_plugin.so \
${DESTDIR}/usr/lib/bfd-plugins
# Remove "fixed" header
@@ -372,13 +371,9 @@ do_install() {
rm -f ${DESTDIR}/usr/lib/libffi*
rm -f ${DESTDIR}/usr/share/man/man3/ffi*
- # Remove all python scripts in libdir.
- rm -f ${DESTDIR}/usr/lib/*.py
-
- # Remove more python stuff.
- if [ -d ${DESTDIR}/usr/share/gcc-${_patchver}/python ]; then
- rm -rf ${DESTDIR}/usr/share/gcc-${_patchver}/python
- fi
+ # Move libstdc++ gdb helpers to location where gdb can autoload them
+ mkdir -p ${DESTDIR}/usr/share/gdb/auto-load/usr/lib
+ mv ${DESTDIR}/usr/lib/*.py ${DESTDIR}/usr/share/gdb/auto-load/usr/lib
# Install c89 and c99 wrappers and its manpages, from NetBSD.
for f in c89 c99; do
@@ -397,7 +392,7 @@ gcc-ada_package() {
depends="gcc>=${_minorver} libada-devel>=${_minorver}"
short_desc+=" - Ada compiler frontend"
pkg_install() {
- for f in gnat{,bind,chop,clean,find,kr,link,ls,make,name,prep,xref}; do
+ for f in gnat{,bind,chop,clean,kr,link,ls,make,name,prep}; do
vmove usr/bin/${f}
done
}
@@ -450,7 +445,7 @@ gcc-fortran_package() {
if [ "$CROSS_BUILD" ]; then
# A number of OMP modules are not built when cross
# compiling gcc. Copy them from the cross compiler.
- local src="/usr/lib/gcc/${_triplet}/${_patchver}/finclude"
+ local src="/usr/lib/gcc/${_triplet}/${version}/finclude"
local dst="usr/lib/gcc/${_triplet}/${_minorver}/finclude"
for f in omp_lib.f90 omp_lib.h omp_lib.mod omp_lib_kinds.mod \
openacc.f90 openacc.mod openacc_kinds.mod openacc_lib.h; do
@@ -517,7 +512,7 @@ libgfortran_package() {
short_desc+=" - Fortran library"
pkg_install() {
vmove "usr/lib/libgfortran.so*"
- vlicense ${wrksrc}/COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
+ vlicense COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
}
}
@@ -538,7 +533,7 @@ libgo_package() {
nostrip=yes
pkg_install() {
vmove "usr/lib/libgo.so*"
- vlicense ${wrksrc}/COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
+ vlicense COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
}
}
@@ -554,7 +549,7 @@ libobjc_package() {
short_desc+=" - Objective-C library"
pkg_install() {
vmove "usr/lib/libobjc.so*"
- vlicense ${wrksrc}/COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
+ vlicense COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
}
}
@@ -573,7 +568,7 @@ libquadmath_package() {
short_desc+=" - quadmath library"
pkg_install() {
vmove "usr/lib/libquadmath.so*"
- vlicense ${wrksrc}/COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
+ vlicense COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
}
}
@@ -615,7 +610,7 @@ libgcc_package() {
noverifyrdeps=yes
pkg_install() {
vmove "usr/lib/libgcc_s.so*"
- vlicense ${wrksrc}/COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
+ vlicense COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
}
}
@@ -646,7 +641,7 @@ libgomp_package() {
short_desc+=" - OpenMP v4.0 library"
pkg_install() {
vmove "usr/lib/libgomp*.so.*"
- vlicense ${wrksrc}/COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
+ vlicense COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
}
}
@@ -701,7 +696,7 @@ libssp_package() {
short_desc+=" - SSP (StackSmashingProtection) library"
pkg_install() {
vmove "usr/lib/libssp.so*"
- vlicense ${wrksrc}/COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
+ vlicense COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
}
}
@@ -718,7 +713,9 @@ libstdc++-devel_package() {
libstdc++_package() {
short_desc+=" - Standard C++ Library"
pkg_install() {
+ vmove usr/share/gdb
+ vmove usr/share/gcc-${version}/python
vmove "usr/lib/libstdc++.so*"
- vlicense ${wrksrc}/COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
+ vlicense COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
}
}
From 702e0027427e1a8bc67b306fb005979136950558 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sat, 5 Nov 2022 11:33:11 -0700
Subject: [PATCH 04/38] libtool: rebuild for gcc 12
---
srcpkgs/libtool/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/libtool/template b/srcpkgs/libtool/template
index fc5c53a9c3e9..aebad9294eef 100644
--- a/srcpkgs/libtool/template
+++ b/srcpkgs/libtool/template
@@ -1,7 +1,7 @@
# Template file for 'libtool'
pkgname=libtool
version=2.4.7
-revision=1
+revision=2
build_style=gnu-configure
hostmakedepends="texinfo perl automake help2man xz"
depends="tar sed"
From e0e5fe3cda4fef4a1eafac3ec8d735cb1aeb3280 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sat, 5 Nov 2022 11:33:12 -0700
Subject: [PATCH 05/38] libiberty-devel: update to 20220713.
---
srcpkgs/libiberty-devel/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/libiberty-devel/template b/srcpkgs/libiberty-devel/template
index 7e01bbb851fd..d9618e3806ba 100644
--- a/srcpkgs/libiberty-devel/template
+++ b/srcpkgs/libiberty-devel/template
@@ -1,6 +1,6 @@
# Template file for 'libiberty-devel'
pkgname=libiberty-devel
-version=20210106
+version=20220713
revision=1
build_wrksrc=libiberty
build_style=gnu-configure
@@ -10,7 +10,7 @@ maintainer="Orphaned <orphan@voidlinux.org>"
license="GPL-3.0-or-later"
homepage="http://gcc.gnu.org/"
distfiles="http://deb.debian.org/debian/pool/main/libi/libiberty/libiberty_${version}.orig.tar.xz"
-checksum=9df153d69914c0f5a9145e0abbb248e72feebab6777c712a30f1c3b8c19047d4
+checksum=b59050f48c8a0f9c9e6fba5d17c7a4f11d1329de0c0dca7331b767a6d2bbe8d9
conflicts="binutils-devel<=2.35.1_3"
CFLAGS="-fPIC"
From 11abea7e3e8946c5dff9a5cd728050e89ee6b84f Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sat, 5 Nov 2022 11:33:12 -0700
Subject: [PATCH 06/38] glibc: update to 2.36.
---
common/shlibs | 60 ++--
...e-hash-style-both-for-building-glibc.patch | 51 ++++
.../glibc/patches/glibc-c-utf8-locale.patch | 286 ------------------
srcpkgs/glibc/template | 66 ++--
4 files changed, 109 insertions(+), 354 deletions(-)
create mode 100644 srcpkgs/glibc/patches/0001-Revert-Do-not-use-hash-style-both-for-building-glibc.patch
delete mode 100644 srcpkgs/glibc/patches/glibc-c-utf8-locale.patch
diff --git a/common/shlibs b/common/shlibs
index 3ee7969839ad..3f90cbd1ace3 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -17,38 +17,38 @@
# one (order top->bottom) is preferred over the next ones.
#
libc.so musl-1.1.24_7
-libc.so.6 glibc-2.32_1
-libm.so.6 glibc-2.32_1
-libpthread.so.0 glibc-2.32_1
-librt.so.1 glibc-2.32_1
-libdl.so.2 glibc-2.32_1
-ld-linux-x86-64.so.2 glibc-2.32_1 x86_64
-ld-linux.so.2 glibc-2.32_1 i686
-ld-linux.so.3 glibc-2.32_1 armv5tel
-ld-linux-aarch64.so.1 glibc-2.32_1 aarch64
-ld64.so.2 glibc-2.32_1 ppc64
-ld.so.1 glibc-2.32_1 mips
-ld.so.1 glibc-2.32_1 ppc
-ld-linux-armhf.so.3 glibc-2.32_1
-libresolv.so.2 glibc-2.32_1
-libanl.so.1 glibc-2.32_1
-libthread_db.so.1 glibc-2.32_1
-libutil.so.1 glibc-2.32_1
-libnsl.so.1 glibc-2.32_1
-libnss_db.so.2 glibc-2.32_1
-libnss_files.so.2 glibc-2.32_1
-libnss_compat.so.2 glibc-2.32_1
-libnss_dns.so.2 glibc-2.32_1
-libnss_hesiod.so.2 glibc-2.32_1
-libcrypt.so.1 glibc-2.32_1
-libBrokenLocale.so.1 glibc-2.32_1
+libc.so.6 glibc-2.36_1
+libm.so.6 glibc-2.36_1
+libpthread.so.0 glibc-2.36_1
+librt.so.1 glibc-2.36_1
+libdl.so.2 glibc-2.36_1
+ld-linux-x86-64.so.2 glibc-2.36_1 x86_64
+ld-linux.so.2 glibc-2.36_1 i686
+ld-linux.so.3 glibc-2.36_1 armv5tel
+ld-linux-aarch64.so.1 glibc-2.36_1 aarch64
+ld64.so.2 glibc-2.36_1 ppc64
+ld.so.1 glibc-2.36_1 mips
+ld.so.1 glibc-2.36_1 ppc
+ld-linux-armhf.so.3 glibc-2.36_1
+libresolv.so.2 glibc-2.36_1
+libanl.so.1 glibc-2.36_1
+libthread_db.so.1 glibc-2.36_1
+libutil.so.1 glibc-2.36_1
+libnsl.so.1 glibc-2.36_1
+libnss_db.so.2 glibc-2.36_1
+libnss_files.so.2 glibc-2.36_1
+libnss_compat.so.2 glibc-2.36_1
+libnss_dns.so.2 glibc-2.36_1
+libnss_hesiod.so.2 glibc-2.36_1
+libcrypt.so.1 glibc-2.36_1
+libBrokenLocale.so.1 glibc-2.36_1
libSimGearCore.so.2020.3.13 simgear-2020.3.13_1
libSimGearScene.so.2020.3.13 simgear-2020.3.13_1
-libmemusage.so glibc-2.32_1
-libSegFault.so glibc-2.32_1
-libpcprofile.so glibc-2.32_1
-libcidn.so.1 glibc-2.32_1
-libmvec.so.1 glibc-2.32_1
+libmemusage.so glibc-2.36_1
+libSegFault.so glibc-2.36_1
+libpcprofile.so glibc-2.36_1
+libcidn.so.1 glibc-2.36_1
+libmvec.so.1 glibc-2.36_1
libcddgmp.so.0 cddlib-0.94m_1
libcdd.so.0 cddlib-0.94m_1
libz.so.1 zlib-1.2.3_1
diff --git a/srcpkgs/glibc/patches/0001-Revert-Do-not-use-hash-style-both-for-building-glibc.patch b/srcpkgs/glibc/patches/0001-Revert-Do-not-use-hash-style-both-for-building-glibc.patch
new file mode 100644
index 000000000000..9c5553e92609
--- /dev/null
+++ b/srcpkgs/glibc/patches/0001-Revert-Do-not-use-hash-style-both-for-building-glibc.patch
@@ -0,0 +1,51 @@
+Temporary workaround for EAC bug.
+
+See: https://sourceware.org/bugzilla/show_bug.cgi?id=29456
+
+From 8e90e2cc5e57d7ca3a40602d278e9642a8b66716 Mon Sep 17 00:00:00 2001
+From: oreo639 <oreo6391@gmail.com>
+Date: Tue, 13 Sep 2022 14:30:35 -0700
+Subject: [PATCH] Revert "Do not use --hash-style=both for building glibc
+ shared objects"
+
+This reverts commit e47de5cb2d4dbecb58f569ed241e8e95c568f03c.
+---
+ Makeconfig | 9 +++++++++
+ Makerules | 7 +++++++
+ 5 files changed, 61 insertions(+)
+
+diff --git a/Makeconfig b/Makeconfig
+index ba70321af1..e2131d4389 100644
+--- a/Makeconfig
++++ b/Makeconfig
+@@ -371,6 +371,13 @@ dt-relr-ldflag =
+ no-dt-relr-ldflag =
+ endif
+
++# For the time being we unconditionally use 'both'. At some time we
++# should declare statically linked code as 'out of luck' and compile
++# with --hash-style=gnu only.
++hashstyle-LDFLAGS = -Wl,--hash-style=both
++LDFLAGS.so += $(hashstyle-LDFLAGS)
++LDFLAGS-rtld += $(hashstyle-LDFLAGS)
++
+ ifeq (no,$(build-pie-default))
+ pie-default = $(no-pie-ccflag)
+ else # build-pie-default
+diff --git a/Makerules b/Makerules
+index d1e139d03c..44134e37ce 100644
+--- a/Makerules
++++ b/Makerules
+@@ -558,6 +558,9 @@ $(common-objpfx)shlib.lds: $(common-objpfx)config.make $(..)Makerules
+ -Wl,--verbose 2>/dev/null | \
+ sed > $@T \
+ -e '/^=========/,/^=========/!d;/^=========/d' \
++ -e 's/^.*\.gnu\.hash[ ]*:.*$$/ .note.ABI-tag : { *(.note.ABI-tag) } &/' \
++ -e '/^[ ]*\.hash[ ]*:.*$$/{h;d;}' \
++ -e '/DATA_SEGMENT_ALIGN/{H;g}' \
+ -e 's/^.*\*(\.dynbss).*$$/& \
+ PROVIDE(__start___libc_freeres_ptrs = .); \
+ *(__libc_freeres_ptrs) \
+--
+2.37.3
+
diff --git a/srcpkgs/glibc/patches/glibc-c-utf8-locale.patch b/srcpkgs/glibc/patches/glibc-c-utf8-locale.patch
deleted file mode 100644
index 7215e1558b62..000000000000
--- a/srcpkgs/glibc/patches/glibc-c-utf8-locale.patch
+++ /dev/null
@@ -1,286 +0,0 @@
-Short description: Add C.UTF-8 support.
-Author(s): Fedora glibc team <glibc@lists.fedoraproject.org>
-Origin: PATCH
-Upstream status: not-submitted
-
-This patch needs to upstream as part of Carlos O'Donell
-<carlos@redhat.com>'s work on enabling upstream C.UTF-8 support. This
-work is currently blocked on cleaning up the test results to prove that
-full code-point sorting is working as intended.
-
-Note that this patch does not provide full code-point sorting as
-expected.
-
-This patch needs to upstream as soon as possible since it would be nice
-to have this in F29 and fixed.
-
-From 2eda7b462b415105f5a05c1323372d4e39d46439 Mon Sep 17 00:00:00 2001
-From: Mike FABIAN <mfabian@redhat.com>
-Date: Mon, 10 Aug 2015 15:58:12 +0200
-Subject: [PATCH] Add a C.UTF-8 locale
-
----
- localedata/SUPPORTED | 1 +
- localedata/locales/C | 238 +++++++++++++++++++++++++++++++++++++++++++++++++++
- 2 files changed, 239 insertions(+)
- create mode 100644 localedata/locales/C
-
-diff --git a/localedata/SUPPORTED b/localedata/SUPPORTED
-index 8ca023e..2a78391 100644
---- a/localedata/SUPPORTED
-+++ b/localedata/SUPPORTED
-@@ -1,6 +1,7 @@
- # This file names the currently supported and somewhat tested locales.
- # If you have any additions please file a glibc bug report.
- SUPPORTED-LOCALES=\
-+C.UTF-8/UTF-8 \
- aa_DJ.UTF-8/UTF-8 \
- aa_DJ/ISO-8859-1 \
- aa_ER/UTF-8 \
-diff --git a/localedata/locales/C b/localedata/locales/C
-new file mode 100644
-index 0000000..fdf460e
---- /dev/null
-+++ b/localedata/locales/C
-@@ -0,0 +1,238 @@
-+escape_char /
-+comment_char %
-+% Locale for C locale in UTF-8
-+
-+LC_IDENTIFICATION
-+title "C locale"
-+source ""
-+address ""
-+contact ""
-+email "mfabian@redhat.com"
-+tel ""
-+fax ""
-+language "C"
-+territory ""
-+revision "1.0"
-+date "2015-08-10"
-+%
-+category "i18n:2012";LC_IDENTIFICATION
-+category "i18n:2012";LC_CTYPE
-+category "i18n:2012";LC_COLLATE
-+category "i18n:2012";LC_TIME
-+category "i18n:2012";LC_NUMERIC
-+category "i18n:2012";LC_MONETARY
-+category "i18n:2012";LC_MESSAGES
-+category "i18n:2012";LC_PAPER
-+category "i18n:2012";LC_NAME
-+category "i18n:2012";LC_ADDRESS
-+category "i18n:2012";LC_TELEPHONE
-+category "i18n:2012";LC_MEASUREMENT
-+END LC_IDENTIFICATION
-+
-+LC_CTYPE
-+copy "i18n"
-+
-+translit_start
-+include "translit_combining";""
-+translit_end
-+
-+END LC_CTYPE
-+
-+LC_COLLATE
-+order_start forward
-+<U0000>
-+..
-+<UFFFF>
-+<U10000>
-+..
-+<U1FFFF>
-+<U20000>
-+..
-+<U2FFFF>
-+<UE0000>
-+..
-+<UEFFFF>
-+<UF0000>
-+..
-+<UFFFFF>
-+<U100000>
-+..
-+<U10FFFF>
-+UNDEFINED
-+order_end
-+END LC_COLLATE
-+
-+LC_MONETARY
-+% This is the 14652 i18n fdcc-set definition for
-+% the LC_MONETARY category
-+% (except for the int_curr_symbol and currency_symbol, they are empty in
-+% the 14652 i18n fdcc-set definition and also empty in
-+% glibc/locale/C-monetary.c. But localedef complains in that case).
-+%
-+% Using "USD" for int_curr_symbol. But maybe "XXX" would be better?
-+% XXX is "No currency" (https://en.wikipedia.org/wiki/ISO_4217)
-+int_curr_symbol "<U0055><U0053><U0044><U0020>"
-+% Using "$" for currency_symbol. But maybe <U00A4> would be better?
-+% U+00A4 is the "generic currency symbol"
-+% (https://en.wikipedia.org/wiki/Currency_sign_%28typography%29)
-+currency_symbol "<U0024>"
-+mon_decimal_point "<U002E>"
-+mon_thousands_sep ""
-+mon_grouping -1
-+positive_sign ""
-+negative_sign "<U002D>"
-+int_frac_digits -1
-+frac_digits -1
-+p_cs_precedes -1
-+int_p_sep_by_space -1
-+p_sep_by_space -1
-+n_cs_precedes -1
-+int_n_sep_by_space -1
-+n_sep_by_space -1
-+p_sign_posn -1
-+n_sign_posn -1
-+%
-+END LC_MONETARY
-+
-+LC_NUMERIC
-+% This is the POSIX Locale definition for
-+% the LC_NUMERIC category.
-+%
-+decimal_point "<U002E>"
-+thousands_sep ""
-+grouping -1
-+END LC_NUMERIC
-+
-+LC_TIME
-+% This is the POSIX Locale definition for
-+% the LC_TIME category.
-+%
-+% Abbreviated weekday names (%a)
-+abday "<U0053><U0075><U006E>";"<U004D><U006F><U006E>";/
-+ "<U0054><U0075><U0065>";"<U0057><U0065><U0064>";/
-+ "<U0054><U0068><U0075>";"<U0046><U0072><U0069>";/
-+ "<U0053><U0061><U0074>"
-+
-+% Full weekday names (%A)
-+day "<U0053><U0075><U006E><U0064><U0061><U0079>";/
-+ "<U004D><U006F><U006E><U0064><U0061><U0079>";/
-+ "<U0054><U0075><U0065><U0073><U0064><U0061><U0079>";/
-+ "<U0057><U0065><U0064><U006E><U0065><U0073><U0064><U0061><U0079>";/
-+ "<U0054><U0068><U0075><U0072><U0073><U0064><U0061><U0079>";/
-+ "<U0046><U0072><U0069><U0064><U0061><U0079>";/
-+ "<U0053><U0061><U0074><U0075><U0072><U0064><U0061><U0079>"
-+
-+% Abbreviated month names (%b)
-+abmon "<U004A><U0061><U006E>";"<U0046><U0065><U0062>";/
-+ "<U004D><U0061><U0072>";"<U0041><U0070><U0072>";/
-+ "<U004D><U0061><U0079>";"<U004A><U0075><U006E>";/
-+ "<U004A><U0075><U006C>";"<U0041><U0075><U0067>";/
-+ "<U0053><U0065><U0070>";"<U004F><U0063><U0074>";/
-+ "<U004E><U006F><U0076>";"<U0044><U0065><U0063>"
-+
-+% Full month names (%B)
-+mon "<U004A><U0061><U006E><U0075><U0061><U0072><U0079>";/
-+ "<U0046><U0065><U0062><U0072><U0075><U0061><U0072><U0079>";/
-+ "<U004D><U0061><U0072><U0063><U0068>";/
-+ "<U0041><U0070><U0072><U0069><U006C>";/
-+ "<U004D><U0061><U0079>";/
-+ "<U004A><U0075><U006E><U0065>";/
-+ "<U004A><U0075><U006C><U0079>";/
-+ "<U0041><U0075><U0067><U0075><U0073><U0074>";/
-+ "<U0053><U0065><U0070><U0074><U0065><U006D><U0062><U0065><U0072>";/
-+ "<U004F><U0063><U0074><U006F><U0062><U0065><U0072>";/
-+ "<U004E><U006F><U0076><U0065><U006D><U0062><U0065><U0072>";/
-+ "<U0044><U0065><U0063><U0065><U006D><U0062><U0065><U0072>"
-+
-+% Week description, consists of three fields:
-+% 1. Number of days in a week.
-+% 2. Gregorian date that is a first weekday (19971130 for Sunday, 19971201 for Monday).
-+% 3. The weekday number to be contained in the first week of the year.
-+%
-+% ISO 8601 conforming applications should use the values 7, 19971201 (a
-+% Monday), and 4 (Thursday), respectively.
-+week 7;19971201;4
-+first_weekday 1
-+first_workday 1
-+
-+% Appropriate date and time representation (%c)
-+% "%a %b %e %H:%M:%S %Y"
-+d_t_fmt "<U0025><U0061><U0020><U0025><U0062><U0020><U0025><U0065><U0020><U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053><U0020><U0025><U0059>"
-+
-+% Appropriate date representation (%x)
-+% "%m/%d/%y"
-+d_fmt "<U0025><U006D><U002F><U0025><U0064><U002F><U0025><U0079>"
-+
-+% Appropriate time representation (%X)
-+% "%H:%M:%S"
-+t_fmt "<U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053>"
-+
-+% Appropriate AM/PM time representation (%r)
-+% "%I:%M:%S %p"
-+t_fmt_ampm "<U0025><U0049><U003A><U0025><U004D><U003A><U0025><U0053><U0020><U0025><U0070>"
-+
-+% Equivalent of AM/PM (%p) "AM"/"PM"
-+%
-+am_pm "<U0041><U004D>";"<U0050><U004D>"
-+
-+% Appropriate date representation (date(1)) "%a %b %e %H:%M:%S %Z %Y"
-+date_fmt "<U0025><U0061><U0020><U0025><U0062><U0020><U0025><U0065><U0020><U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053><U0020><U0025><U005A><U0020><U0025><U0059>"
-+END LC_TIME
-+
-+LC_MESSAGES
-+% This is the POSIX Locale definition for
-+% the LC_NUMERIC category.
-+%
-+yesexpr "<U005E><U005B><U0079><U0059><U005D>"
-+noexpr "<U005E><U005B><U006E><U004E><U005D>"
-+yesstr "<U0059><U0065><U0073>"
-+nostr "<U004E><U006F>"
-+END LC_MESSAGES
-+
-+LC_PAPER
-+% This is the ISO/IEC 14652 "i18n" definition for
-+% the LC_PAPER category.
-+% (A4 paper, this is also used in the built in C/POSIX
-+% locale in glibc/locale/C-paper.c)
-+height 297
-+width 210
-+END LC_PAPER
-+
-+LC_NAME
-+% This is the ISO/IEC 14652 "i18n" definition for
-+% the LC_NAME category.
-+% "%p%t%g%t%m%t%f"
-+% (also used in the built in C/POSIX locale in glibc/locale/C-name.c)
-+name_fmt "<U0025><U0070><U0025><U0074><U0025><U0067><U0025><U0074>/
-+<U0025><U006D><U0025><U0074><U0025><U0066>"
-+END LC_NAME
-+
-+LC_ADDRESS
-+% This is the ISO/IEC 14652 "i18n" definition for
-+% the LC_ADDRESS category.
-+% "%a%N%f%N%d%N%b%N%s %h %e %r%N%C-%z %T%N%c%N"
-+% (also used in the built in C/POSIX locale in glibc/locale/C-address.c)
-+postal_fmt "<U0025><U0061><U0025><U004E><U0025><U0066><U0025><U004E>/
-+<U0025><U0064><U0025><U004E><U0025><U0062><U0025><U004E><U0025><U0073>/
-+<U0020><U0025><U0068><U0020><U0025><U0065><U0020><U0025><U0072><U0025>/
-+<U004E><U0025><U0043><U002D><U0025><U007A><U0020><U0025><U0054><U0025>/
-+<U004E><U0025><U0063><U0025><U004E>"
-+END LC_ADDRESS
-+
-+LC_TELEPHONE
-+% This is the ISO/IEC 14652 "i18n" definition for
-+% the LC_TELEPHONE category.
-+% "+%c %a %l"
-+tel_int_fmt "<U002B><U0025><U0063><U0020><U0025><U0061><U0020><U0025>/
-+<U006C>"
-+% (also used in the built in C/POSIX locale in glibc/locale/C-telephone.c)
-+END LC_TELEPHONE
-+
-+LC_MEASUREMENT
-+% This is the ISO/IEC 14652 "i18n" definition for
-+% the LC_MEASUREMENT category.
-+% (same as in the built in C/POSIX locale in glibc/locale/C-measurement.c)
-+%metric
-+measurement 1
-+END LC_MEASUREMENT
-+
---
-2.4.3
-
diff --git a/srcpkgs/glibc/template b/srcpkgs/glibc/template
index c62a4d2aedf1..6cd4c0980cbb 100644
--- a/srcpkgs/glibc/template
+++ b/srcpkgs/glibc/template
@@ -1,14 +1,16 @@
# Template file for 'glibc'
pkgname=glibc
-version=2.32
-revision=2
+version=2.36
+revision=1
+_patchver="72-g0f90d6204d"
+wrksrc="glibc-${version}-${_patchver}"
bootstrap=yes
short_desc="GNU C library"
maintainer="Enno Boland <gottox@voidlinux.org>"
license="GPL-2.0-or-later, LGPL-2.1-or-later, BSD-3-Clause"
homepage="http://www.gnu.org/software/libc"
-distfiles="${GNU_SITE}/glibc/glibc-${version}.tar.xz"
-checksum=1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+distfiles="https://vasilek.cz/paste/glibc-${version}-${_patchver}.tar.xz"
+checksum=656200722d5ba968b4888a2d2950719d72c86290fd0479f61897d25b7db2cb57
# Do not strip these files, objcopy errors out.
nostrip_files="
XBS5_ILP32_OFFBIG
@@ -20,27 +22,28 @@ nostrip_files="
POSIX_V6_LP64_OFF64
POSIX_V7_LP64_OFF64
XBS5_LP64_OFF64
- ld-${version}.so
- libdl-${version}.so
- libanl-${version}.so
- libcidn-${version}.so
- libresolv-${version}.so
- libcrypt-${version}.so
- libpthread-${version}.so
- libm-${version}.so
- libutil-${version}.so
- libthread_db-1.0.so
- librt-${version}.so
- libnsl-${version}.so
- libc-${version}.so
- libBrokenLocale-${version}.so
- libnss_compat-${version}.so
- libnss_db-${version}.so
- libnss_dns-${version}.so
- libnss_files-${version}.so
- libnss_hesiod-${version}.so
- libnss_nisplus-${version}.so
- libnss_nis-${version}.so"
+ ld-linux-x86-64.so.2
+ ld-linux.so.2
+ ld-linux.so.3
+ ld-linux-aarch64.so.1
+ ld64.so.2
+ ld.so.1
+ ld-linux-armhf.so.3
+ libresolv.so.2
+ libcrypt.so.1
+ libm.so.6
+ libthread_db.so.1
+ libnsl.so.1
+ libc.so.6
+ libc_malloc_debug.so.0
+ libmemusage.so
+ libmvec.so.1
+ libBrokenLocale.so.1
+ libnss_compat.so.2
+ libnss_db.so.2
+ libnss_dns.so.2
+ libnss_files.so.2
+ libnss_hesiod.so.2"
conf_files="
/etc/rpc
@@ -54,7 +57,6 @@ lib32files="/usr/lib/gconv/gconv-modules"
lib32symlinks="ld-linux.so.2"
# There's no point in building this for musl.
archs="~*-musl"
-nopie=yes
do_configure() {
mkdir build
@@ -163,18 +165,6 @@ do_install() {
rm -f ${DESTDIR}/usr/bin/z{dump,ic}
mv ${DESTDIR}/usr/sbin/* ${DESTDIR}/usr/bin
-
- # Create xbps.d(5) arch override file for 32-bit architectures
- # 32-bit userlands may be used with 64-bit kernels and then
- # xbps will report an incorrect architecture by default
- case "$XBPS_TARGET_MACHINE" in
- i686|ppc|ppcle|armv*)
- vmkdir usr/share/xbps.d
- echo "architecture=${XBPS_TARGET_MACHINE}" > \
- ${DESTDIR}/usr/share/xbps.d/arch-32bit.conf
- ;;
- *) ;;
- esac
}
glibc-devel_package() {
From 19a4afeb0224d41a41b2d4c9762d0a28f2b66e70 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sat, 5 Nov 2022 11:33:12 -0700
Subject: [PATCH 07/38] musl: add support for SIGEV_THREAD_ID timers
https://git.musl-libc.org/cgit/musl/commit/?id=7c71792e87691451f2a6b76348e83ad1889f1dcb
---
...d-support-for-SIGEV_THREAD_ID-timers.patch | 74 +++++++++++++++++++
srcpkgs/musl/template | 2 +-
2 files changed, 75 insertions(+), 1 deletion(-)
create mode 100644 srcpkgs/musl/patches/add-support-for-SIGEV_THREAD_ID-timers.patch
diff --git a/srcpkgs/musl/patches/add-support-for-SIGEV_THREAD_ID-timers.patch b/srcpkgs/musl/patches/add-support-for-SIGEV_THREAD_ID-timers.patch
new file mode 100644
index 000000000000..e20dff5ba0d4
--- /dev/null
+++ b/srcpkgs/musl/patches/add-support-for-SIGEV_THREAD_ID-timers.patch
@@ -0,0 +1,74 @@
+From 7c71792e87691451f2a6b76348e83ad1889f1dcb Mon Sep 17 00:00:00 2001
+From: James Y Knight <jyknight@google.com>
+Date: Sun, 30 Jun 2019 21:55:20 -0400
+Subject: [PATCH] add support for SIGEV_THREAD_ID timers
+
+This is like SIGEV_SIGNAL, but targeted to a particular thread's
+tid, rather than the process.
+---
+ include/signal.h | 16 +++++++++++++---
+ src/time/timer_create.c | 8 ++++++--
+ 2 files changed, 19 insertions(+), 5 deletions(-)
+
+diff --git a/include/signal.h b/include/signal.h
+index fbdf667b2..9ed929e4f 100644
+--- a/include/signal.h
++++ b/include/signal.h
+@@ -180,14 +180,24 @@ struct sigevent {
+ union sigval sigev_value;
+ int sigev_signo;
+ int sigev_notify;
+- void (*sigev_notify_function)(union sigval);
+- pthread_attr_t *sigev_notify_attributes;
+- char __pad[56-3*sizeof(long)];
++ union {
++ char __pad[64 - 2*sizeof(int) - sizeof(union sigval)];
++ pid_t sigev_notify_thread_id;
++ struct {
++ void (*sigev_notify_function)(union sigval);
++ pthread_attr_t *sigev_notify_attributes;
++ } __sev_thread;
++ } __sev_fields;
+ };
+
++#define sigev_notify_thread_id __sev_fields.sigev_notify_thread_id
++#define sigev_notify_function __sev_fields.__sev_thread.sigev_notify_function
++#define sigev_notify_attributes __sev_fields.__sev_thread.sigev_notify_attributes
++
+ #define SIGEV_SIGNAL 0
+ #define SIGEV_NONE 1
+ #define SIGEV_THREAD 2
++#define SIGEV_THREAD_ID 4
+
+ int __libc_current_sigrtmin(void);
+ int __libc_current_sigrtmax(void);
+diff --git a/src/time/timer_create.c b/src/time/timer_create.c
+index 5ddfda278..4bef23905 100644
+--- a/src/time/timer_create.c
++++ b/src/time/timer_create.c
+@@ -71,11 +71,15 @@ int timer_create(clockid_t clk, struct sigevent *restrict evp, timer_t *restrict
+ switch (evp ? evp->sigev_notify : SIGEV_SIGNAL) {
+ case SIGEV_NONE:
+ case SIGEV_SIGNAL:
++ case SIGEV_THREAD_ID:
+ if (evp) {
+ ksev.sigev_value = evp->sigev_value;
+ ksev.sigev_signo = evp->sigev_signo;
+ ksev.sigev_notify = evp->sigev_notify;
+- ksev.sigev_tid = 0;
++ if (evp->sigev_notify == SIGEV_THREAD_ID)
++ ksev.sigev_tid = evp->sigev_notify_thread_id;
++ else
++ ksev.sigev_tid = 0;
+ ksevp = &ksev;
+ }
+ if (syscall(SYS_timer_create, clk, ksevp, &timerid) < 0)
+@@ -107,7 +111,7 @@ int timer_create(clockid_t clk, struct sigevent *restrict evp, timer_t *restrict
+
+ ksev.sigev_value.sival_ptr = 0;
+ ksev.sigev_signo = SIGTIMER;
+- ksev.sigev_notify = 4; /* SIGEV_THREAD_ID */
++ ksev.sigev_notify = SIGEV_THREAD_ID;
+ ksev.sigev_tid = td->tid;
+ if (syscall(SYS_timer_create, clk, &ksev, &timerid) < 0)
+ timerid = -1;
diff --git a/srcpkgs/musl/template b/srcpkgs/musl/template
index 34e6ed4fba6e..afb33cd868b5 100644
--- a/srcpkgs/musl/template
+++ b/srcpkgs/musl/template
@@ -2,7 +2,7 @@
pkgname=musl
reverts="1.2.0_1"
version=1.1.24
-revision=11
+revision=12
archs="*-musl"
bootstrap=yes
build_style=gnu-configure
From 2c1c8ba98946106950bb8db7f6aeba83e358d6f0 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sat, 5 Nov 2022 11:33:12 -0700
Subject: [PATCH 08/38] gcc-multilib: update to 12.2.0.
---
srcpkgs/gcc-multilib/template | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/srcpkgs/gcc-multilib/template b/srcpkgs/gcc-multilib/template
index f28eb237c287..ba9bafcadfd6 100644
--- a/srcpkgs/gcc-multilib/template
+++ b/srcpkgs/gcc-multilib/template
@@ -3,15 +3,15 @@ archs="x86_64"
_triplet="x86_64-unknown-linux-gnu"
pkgname=gcc-multilib
-version=10.2.1pre1
+version=12.2.0
revision=1
_majorver="${version%.*}"
short_desc="GNU Compiler Collection (multilib files)"
maintainer="Orphaned <orphan@voidlinux.org>"
homepage="http://gcc.gnu.org"
license="GFDL-1.2-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
-distfiles="https://dev.alpinelinux.org/~nenolod/gcc-${version/pre/_pre}.tar.xz"
-checksum=772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+distfiles="${GNU_SITE}/gcc/gcc-${version}/gcc-${version}.tar.xz"
+checksum=e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
hostmakedepends="perl flex tar zip unzip"
makedepends="zlib-devel libmpc-devel isl15-devel libfl-devel
@@ -70,7 +70,7 @@ do_build() {
make ${makejobs}
}
do_install() {
- local _pc_triplet=x86_64-pc-linux-gnu _version=${version%pre1}
+ local _pc_triplet=x86_64-pc-linux-gnu
# Install to a tempdir and then only copy relevant files.
cd ${wrksrc}
make DESTDIR=${wrksrc}/${pkgname}-build install
@@ -80,9 +80,9 @@ do_install() {
vmkdir usr/include/c++/${_majorver}/${_triplet}
vmkdir usr/lib/gcc/${_triplet}/${_majorver}
- cp -a ${wrksrc}/${pkgname}-build/usr/lib/gcc/${_pc_triplet}/${_version}/32 \
+ cp -a ${wrksrc}/${pkgname}-build/usr/lib/gcc/${_pc_triplet}/${version}/32 \
${DESTDIR}/usr/lib/gcc/${_triplet}/${_majorver}/
- cp -a ${wrksrc}/${pkgname}-build/usr/include/c++/${_version}/${_pc_triplet}/32 \
+ cp -a ${wrksrc}/${pkgname}-build/usr/include/c++/${version}/${_pc_triplet}/32 \
${DESTDIR}/usr/include/c++/${_majorver}/${_triplet}
vinstall ${wrksrc}/host-${_pc_triplet}/gcc/specs 644 usr/lib/gcc/${_triplet}/${_majorver}
From 3f112430e1c969475dc57212db706f1ea4574b78 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sat, 5 Nov 2022 11:33:12 -0700
Subject: [PATCH 09/38] libgccjit: update to 12.2.0.
---
srcpkgs/libgccjit/files/libgccjit-musl.patch | 63 --------------------
srcpkgs/libgccjit/template | 24 +++-----
2 files changed, 9 insertions(+), 78 deletions(-)
delete mode 100644 srcpkgs/libgccjit/files/libgccjit-musl.patch
diff --git a/srcpkgs/libgccjit/files/libgccjit-musl.patch b/srcpkgs/libgccjit/files/libgccjit-musl.patch
deleted file mode 100644
index d2ed16928c82..000000000000
--- a/srcpkgs/libgccjit/files/libgccjit-musl.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-diff --git a/gcc/jit/jit-playback.c b/gcc/jit/jit-playback.c
-index 5bccf591a..35f5e35ef 100644
---- a/gcc/jit/jit-playback.c
-+++ b/gcc/jit/jit-playback.c
-@@ -18,6 +18,8 @@ You should have received a copy of the GNU General Public License
- along with GCC; see the file COPYING3. If not see
- <http://www.gnu.org/licenses/>. */
-
-+#include <pthread.h>
-+
- #include "config.h"
- #include "system.h"
- #include "coretypes.h"
-@@ -41,8 +43,6 @@ along with GCC; see the file COPYING3. If not see
- #include "diagnostic.h"
- #include "stmt.h"
-
--#include <pthread.h>
--
- #include "jit-playback.h"
- #include "jit-result.h"
- #include "jit-builtins.h"
-diff --git a/gcc/jit/jit-recording.c b/gcc/jit/jit-recording.c
-index a237d574f..5785e3269 100644
---- a/gcc/jit/jit-recording.c
-+++ b/gcc/jit/jit-recording.c
-@@ -18,6 +18,8 @@ You should have received a copy of the GNU General Public License
- along with GCC; see the file COPYING3. If not see
- <http://www.gnu.org/licenses/>. */
-
-+#include <pthread.h>
-+
- #include "config.h"
- #include "system.h"
- #include "coretypes.h"
-@@ -25,8 +27,6 @@ along with GCC; see the file COPYING3. If not see
- #include "pretty-print.h"
- #include "toplev.h"
-
--#include <pthread.h>
--
- #include "jit-builtins.h"
- #include "jit-recording.h"
- #include "jit-playback.h"
-diff --git a/gcc/jit/libgccjit.c b/gcc/jit/libgccjit.c
-index f9c33c63c..75f21d275 100644
---- a/gcc/jit/libgccjit.c
-+++ b/gcc/jit/libgccjit.c
-@@ -18,13 +18,13 @@ You should have received a copy of the GNU General Public License
- along with GCC; see the file COPYING3. If not see
- <http://www.gnu.org/licenses/>. */
-
-+#include <pthread.h>
- #include "config.h"
- #include "system.h"
- #include "coretypes.h"
- #include "timevar.h"
- #include "typed-splay-tree.h"
- #include "cppbuiltin.h"
--#include <pthread.h>
-
- #include "libgccjit.h"
- #include "jit-recording.h"
diff --git a/srcpkgs/libgccjit/template b/srcpkgs/libgccjit/template
index 0b37c3ee9f8b..fde1affd54b7 100644
--- a/srcpkgs/libgccjit/template
+++ b/srcpkgs/libgccjit/template
@@ -3,18 +3,12 @@
# which use the version number.
pkgname=libgccjit
-# we are using a 10-stable git snapshot alpine is using in order
-# to get regression fixes not yet incorporate into a stable release
-# it should be possible to switch back to stable with 10.3 or 11
-version=10.2.1pre1
+version=12.2.0
revision=1
-_patchver="${version%pre*}"
-_minorver="${_patchver%.*}"
-_majorver="${_minorver%.*}"
-_gmp_version=6.2.0
+_gmp_version=6.2.1
_mpfr_version=4.1.0
-_mpc_version=1.1.0
-_isl_version=0.21
+_mpc_version=1.2.1
+_isl_version=0.24
create_wrksrc=yes
short_desc="Just-In-Time Compilation library for GCC"
maintainer="Lane Biocini <lane@mailbox.org>"
@@ -22,16 +16,16 @@ homepage="https://gcc.gnu.org"
license="GFDL-1.2-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
# *-musl builders have issues fetching https://ftp.gnu.org/gnu/mpc/mpc-1.1.0.tar.gz
distfiles="
- https://dev.alpinelinux.org/~nenolod/gcc-${version/pre/_pre}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${version}/gcc-${version}.tar.xz
https://gmplib.org/download/gmp/gmp-${_gmp_version}.tar.xz
${GNU_SITE}/mpfr/mpfr-${_mpfr_version}.tar.xz
${GNU_SITE}/mpc/mpc-${_mpc_version}.tar.gz
${SOURCEFORGE_SITE}/libisl/isl-${_isl_version}.tar.bz2"
-checksum="772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 258e6cd51b3fbdfc185c716d55f82c08aff57df0c6fbd143cf6ed561267a1526
+checksum="e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
+ fd4829912cddd12f84181c3451cc752be224643e87fac497b69edddadc49b4f2
0c98a3f1732ff6ca4ea690552079da9c597872d30e96ec28414ee23c95558a7f
- 6985c538143c1208dcb1ac42cedad6ff52e267b47e5f970183a3e75125b43c2e
- d18ca11f8ad1a39ab6d03d3dcb3365ab416720fcb65b42d69f34f51bf0a0e859"
+ 17503d2c395dfcf106b622dc142683c1199431d095367c6aacba6eec30340459
+ fcf78dd9656c10eb8cf9fbd5f59a0b6b01386205fe1934b3b287a0a1898145c0"
nopie=yes
lib32disabled=yes
makedepends="zlib-devel"
From 540268409c801ec1d7194a78027611da82ee867f Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sat, 5 Nov 2022 11:33:12 -0700
Subject: [PATCH 10/38] build-style/void-cross: Update flags for gcc12 and
glibc 2.36
gcov can't be built without libc:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100289
Remove -no-pie from build. glibc 2.35 and newer uses -static-pie by default:
https://sourceware.org/pipermail/glibc-cvs/2021q4/075916.html
---
common/build-style/void-cross.sh | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
diff --git a/common/build-style/void-cross.sh b/common/build-style/void-cross.sh
index 92f03f8130f5..4804193d8395 100644
--- a/common/build-style/void-cross.sh
+++ b/common/build-style/void-cross.sh
@@ -53,6 +53,7 @@ _void_cross_build_binutils() {
--sbindir=/usr/bin \
--libdir=/usr/lib \
--libexecdir=/usr/lib \
+ --sysconfdir=/etc \
--target=${tgt} \
--with-sysroot=/usr/${tgt} \
--disable-nls \
@@ -60,7 +61,9 @@ _void_cross_build_binutils() {
--disable-multilib \
--disable-werror \
--disable-gold \
+ --disable-gprofng \
--enable-relro \
+ --enable-new-dtags \
--enable-plugins \
--enable-64-bit-bfd \
--enable-deterministic-archives \
@@ -132,6 +135,7 @@ _void_cross_build_bootstrap_gcc() {
--disable-libssp \
--disable-libitm \
--disable-libatomic \
+ --disable-gcov \
--disable-threads \
--disable-sjlj-exceptions \
--enable-languages=c \
@@ -381,6 +385,7 @@ _void_cross_build_gcc() {
extra_args+=" --disable-gnu-unique-object"
extra_args+=" libat_cv_have_ifunc=no"
else
+ extra_args+=" --enable-clocale=gnu"
extra_args+=" --enable-gnu-unique-object"
fi
@@ -460,6 +465,14 @@ do_build() {
local binutils_ver linux_ver gcc_ver libc_ver libucontext_ver
local tgt=${sourcepkg/cross-}
+ export CFLAGS="${CFLAGS/-D_FORTIFY_SOURCE=2/}"
+ export CXXFLAGS="${CXXFLAGS/-D_FORTIFY_SOURCE=2/}"
+
+ # Disable explicit -fno-PIE, gcc/binutils/libc will figure this out itself.
+ export CFLAGS="${CFLAGS//-fno-PIE/}"
+ export CXXFLAGS="${CXXFLAGS//-fno-PIE/}"
+ export LDFLAGS="${LDFLAGS//-no-pie/}"
+
_void_cross_test_ver binutils
_void_cross_test_ver linux
_void_cross_test_ver gcc
@@ -625,6 +638,9 @@ do_install() {
# then remove it because it conflicts with libquadmath package
rm -rf ${DESTDIR}/${sysroot}/usr/lib/libquadmath.*
+ # Remove libdep linker plugin because it conflicts with system binutils
+ rm -f ${DESTDIR}/usr/lib/bfd-plugins/libdep*
+
# Remove leftover symlinks
rm -f ${DESTDIR}/usr/lib${XBPS_TARGET_WORDSIZE}
rm -f ${DESTDIR}/lib*
From 2895b35f82e3a24cad5975a880ca5f7c93d5fa2a Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sat, 5 Nov 2022 11:33:12 -0700
Subject: [PATCH 11/38] qemu: remove broken patch
The necessary patch has been imported into musl so no need
to cast the sigevent struct to a more glibc-like one.
---
.../musl-fix-sigevent-and-sigval_t.patch | 27 -------------------
1 file changed, 27 deletions(-)
delete mode 100644 srcpkgs/qemu/patches/musl-fix-sigevent-and-sigval_t.patch
diff --git a/srcpkgs/qemu/patches/musl-fix-sigevent-and-sigval_t.patch b/srcpkgs/qemu/patches/musl-fix-sigevent-and-sigval_t.patch
deleted file mode 100644
index 4b4f1117c15f..000000000000
--- a/srcpkgs/qemu/patches/musl-fix-sigevent-and-sigval_t.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-Note: Remove this patch with musl 1.2.2
-
---- a/linux-user/syscall.c
-+++ b/linux-user/syscall.c
-@@ -5020,10 +5020,21 @@
- #ifndef HAVE_SIGEV_NOTIFY_THREAD_ID
- #define sigev_notify_thread_id _sigev_un._tid
- #endif
-
--static inline abi_long target_to_host_sigevent(struct sigevent *host_sevp,
-+struct host_sigevent {
-+ union sigval sigev_value;
-+ int sigev_signo;
-+ int sigev_notify;
-+ union {
-+ char _pad[64 - sizeof(int) * 2 - sizeof(union sigval)];
-+ int _tid;
-+ } _sigev_un;
-+};
-+
-+static inline abi_long target_to_host_sigevent(struct sigevent *sevp,
- abi_ulong target_addr)
- {
-+ struct host_sigevent *host_sevp = (struct host_sigevent *) sevp;
- struct target_sigevent *target_sevp;
-
- if (!lock_user_struct(VERIFY_READ, target_sevp, target_addr, 1)) {
From aaaf08aef9c30b8a5285824c659d2873bcc085eb Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sat, 19 Nov 2022 13:26:24 -0800
Subject: [PATCH 12/38] mk-configure: rebuild for gcc 12
---
srcpkgs/mk-configure/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/mk-configure/template b/srcpkgs/mk-configure/template
index 9d12f11a9799..c50d8adf213f 100644
--- a/srcpkgs/mk-configure/template
+++ b/srcpkgs/mk-configure/template
@@ -1,7 +1,7 @@
# Template file for 'mk-configure'
pkgname=mk-configure
version=0.37.0
-revision=1
+revision=2
build_style=gnu-makefile
make_cmd=bmake
make_install_args="MANDIR=/usr/share/man"
From 2766ca2ea8c097001c4aa88a017de9d3ee7dc0d1 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:28 -0800
Subject: [PATCH 13/38] cross-aarch64-linux-gnu: update to gcc 12.2.0.
---
srcpkgs/cross-aarch64-linux-gnu/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-aarch64-linux-gnu/template b/srcpkgs/cross-aarch64-linux-gnu/template
index 18de21aa3ccd..9e6fb75c198d 100644
--- a/srcpkgs/cross-aarch64-linux-gnu/template
+++ b/srcpkgs/cross-aarch64-linux-gnu/template
@@ -1,15 +1,16 @@
# Template file for 'cross-aarch64-linux-gnu'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
-_glibc_version=2.32
+_binutils_version=2.39
+_gcc_version=12.2.0
+_glibc_version=2.36
_linux_version=5.10.4
pkgname=cross-aarch64-linux-gnu
-version=0.34
+version=0.35
revision=1
build_style=void-cross
configure_args="--with-arch=armv8-a"
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Leah Neukirchen <leah@vuxu.org>"
@@ -17,12 +18,12 @@ license="GPL-2.0-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
+ 1c959fea240906226062cb4b1e7ebce71a9f0e3c0836c09e7e3423d434fcfe75
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
From a35f78cd51b135076e5871aa18230d2af4cb3ca0 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:28 -0800
Subject: [PATCH 14/38] cross-aarch64-linux-musl: update to gcc 12.2.0.
---
srcpkgs/cross-aarch64-linux-musl/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-aarch64-linux-musl/template b/srcpkgs/cross-aarch64-linux-musl/template
index bb6a770afb79..ba14c96bccea 100644
--- a/srcpkgs/cross-aarch64-linux-musl/template
+++ b/srcpkgs/cross-aarch64-linux-musl/template
@@ -1,29 +1,30 @@
# Template file for 'cross-aarch64-linux-musl'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.2.0
_musl_version=1.1.24
_linux_version=5.10.4
_libucontext_version=1.0
pkgname=cross-aarch64-linux-musl
-version=0.34
-revision=4
+version=0.35
+revision=1
build_style=void-cross
configure_args="--with-arch=armv8-a"
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
-homepage="https://www.voidlinux.org/"
license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
+homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz
https://github.com/kaniini/libucontext/archive/libucontext-${_libucontext_version}.tar.gz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec
23714e99a87f6dea82e8a073c526325161dd65462459820b16a6162be91955bb"
From a637a7d7f5011f90c442167c79ea4022136a59ab Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:28 -0800
Subject: [PATCH 15/38] cross-arm-linux-gnueabi: update to gcc 12.2.0.
---
srcpkgs/cross-arm-linux-gnueabi/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-arm-linux-gnueabi/template b/srcpkgs/cross-arm-linux-gnueabi/template
index a3aba72aa93a..5c774e16f430 100644
--- a/srcpkgs/cross-arm-linux-gnueabi/template
+++ b/srcpkgs/cross-arm-linux-gnueabi/template
@@ -1,15 +1,16 @@
# Template file for 'cross-arm-linux-gnueabi'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
-_glibc_version=2.32
+_binutils_version=2.39
+_gcc_version=12.2.0
+_glibc_version=2.36
_linux_version=5.10.4
pkgname=cross-arm-linux-gnueabi
-version=0.34
+version=0.35
revision=1
build_style=void-cross
configure_args="--with-arch=armv5te --with-float=soft"
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
@@ -17,12 +18,12 @@ license="GPL-2.0-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
+ 1c959fea240906226062cb4b1e7ebce71a9f0e3c0836c09e7e3423d434fcfe75
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
From 74d7621c29619881231be62cd6efc4c28c1733cd Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:28 -0800
Subject: [PATCH 16/38] cross-arm-linux-gnueabihf: update to gcc 12.2.0.
---
srcpkgs/cross-arm-linux-gnueabihf/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-arm-linux-gnueabihf/template b/srcpkgs/cross-arm-linux-gnueabihf/template
index d9ab86cf2ecc..d6298ab639a4 100644
--- a/srcpkgs/cross-arm-linux-gnueabihf/template
+++ b/srcpkgs/cross-arm-linux-gnueabihf/template
@@ -1,15 +1,16 @@
# Template file for 'cross-arm-linux-gnueabihf'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
-_glibc_version=2.32
+_binutils_version=2.39
+_gcc_version=12.2.0
+_glibc_version=2.36
_linux_version=5.10.4
pkgname=cross-arm-linux-gnueabihf
-version=0.34
+version=0.35
revision=1
build_style=void-cross
configure_args="--with-arch=armv6 --with-fpu=vfp --with-float=hard"
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
@@ -17,12 +18,12 @@ license="GPL-2.0-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
+ 1c959fea240906226062cb4b1e7ebce71a9f0e3c0836c09e7e3423d434fcfe75
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
From 4cab8b8ef1086c7498b6432b5b30715d7fcc6f7f Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:28 -0800
Subject: [PATCH 17/38] cross-arm-linux-musleabi: update to gcc 12.2.0.
---
srcpkgs/cross-arm-linux-musleabi/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-arm-linux-musleabi/template b/srcpkgs/cross-arm-linux-musleabi/template
index 6692d891e1bd..24df78e8fd8e 100644
--- a/srcpkgs/cross-arm-linux-musleabi/template
+++ b/srcpkgs/cross-arm-linux-musleabi/template
@@ -1,29 +1,30 @@
# Template file for 'cross-arm-linux-musleabi'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.2.0
_musl_version=1.1.24
_linux_version=5.10.4
_libucontext_version=1.0
pkgname=cross-arm-linux-musleabi
-version=0.34
-revision=4
+version=0.35
+revision=1
build_style=void-cross
configure_args="--with-arch=armv5te --with-float=soft"
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
-homepage="https://www.voidlinux.org/"
license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
+homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz
https://github.com/kaniini/libucontext/archive/libucontext-${_libucontext_version}.tar.gz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec
23714e99a87f6dea82e8a073c526325161dd65462459820b16a6162be91955bb"
From 5c19dd58e72ac9b9fccbb71d830c62e7a1ef08b8 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:28 -0800
Subject: [PATCH 18/38] cross-arm-linux-musleabihf: update to gcc 12.2.0.
---
srcpkgs/cross-arm-linux-musleabihf/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-arm-linux-musleabihf/template b/srcpkgs/cross-arm-linux-musleabihf/template
index bb62bd5ebc55..8093700f909c 100644
--- a/srcpkgs/cross-arm-linux-musleabihf/template
+++ b/srcpkgs/cross-arm-linux-musleabihf/template
@@ -1,29 +1,30 @@
# Template file for 'cross-arm-linux-musleabihf'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.2.0
_musl_version=1.1.24
_linux_version=5.10.4
_libucontext_version=1.0
pkgname=cross-arm-linux-musleabihf
-version=0.34
-revision=4
+version=0.35
+revision=1
build_style=void-cross
configure_args="--with-arch=armv6 --with-fpu=vfp --with-float=hard"
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
-homepage="https://www.voidlinux.org/"
license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
+homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz
https://github.com/kaniini/libucontext/archive/libucontext-${_libucontext_version}.tar.gz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec
23714e99a87f6dea82e8a073c526325161dd65462459820b16a6162be91955bb"
From c3e99201416a036ba3070537b56eb1f7bf407368 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:28 -0800
Subject: [PATCH 19/38] cross-armv7l-linux-gnueabihf: update to gcc 12.2.0.
---
srcpkgs/cross-armv7l-linux-gnueabihf/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-armv7l-linux-gnueabihf/template b/srcpkgs/cross-armv7l-linux-gnueabihf/template
index 30c89b6294ef..92665326428b 100644
--- a/srcpkgs/cross-armv7l-linux-gnueabihf/template
+++ b/srcpkgs/cross-armv7l-linux-gnueabihf/template
@@ -1,15 +1,16 @@
# Template file for 'cross-armv7l-linux-gnueabihf'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
-_glibc_version=2.32
+_binutils_version=2.39
+_gcc_version=12.2.0
+_glibc_version=2.36
_linux_version=5.10.4
pkgname=cross-armv7l-linux-gnueabihf
-version=0.34
+version=0.35
revision=1
build_style=void-cross
configure_args="--with-arch=armv7-a --with-fpu=vfpv3 --with-float=hard"
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
@@ -17,12 +18,12 @@ license="GPL-2.0-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
+ 1c959fea240906226062cb4b1e7ebce71a9f0e3c0836c09e7e3423d434fcfe75
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
From 1e3cccbd7ca501249af7db2af27a9cb718a5cd61 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:28 -0800
Subject: [PATCH 20/38] cross-armv7l-linux-musleabihf: update to gcc 12.2.0.
---
.../cross-armv7l-linux-musleabihf/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-armv7l-linux-musleabihf/template b/srcpkgs/cross-armv7l-linux-musleabihf/template
index 0a588cdf1a58..e5af2c9ccbf2 100644
--- a/srcpkgs/cross-armv7l-linux-musleabihf/template
+++ b/srcpkgs/cross-armv7l-linux-musleabihf/template
@@ -1,29 +1,30 @@
# Template file for 'cross-armv7l-linux-musleabihf'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.2.0
_musl_version=1.1.24
_linux_version=5.10.4
_libucontext_version=1.0
pkgname=cross-armv7l-linux-musleabihf
-version=0.34
-revision=4
+version=0.35
+revision=1
build_style=void-cross
configure_args="--with-arch=armv7-a --with-fpu=vfpv3 --with-float=hard"
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
-homepage="https://www.voidlinux.org/"
license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
+homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz
https://github.com/kaniini/libucontext/archive/libucontext-${_libucontext_version}.tar.gz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec
23714e99a87f6dea82e8a073c526325161dd65462459820b16a6162be91955bb"
From 0b2ba6ca95b5a0a4249ee74eba4cc9a3419e9a01 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:29 -0800
Subject: [PATCH 21/38] cross-i686-linux-musl: update to gcc 12.2.0.
---
srcpkgs/cross-i686-linux-musl/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-i686-linux-musl/template b/srcpkgs/cross-i686-linux-musl/template
index 8be16a230d8d..d624bb7a3254 100644
--- a/srcpkgs/cross-i686-linux-musl/template
+++ b/srcpkgs/cross-i686-linux-musl/template
@@ -1,28 +1,29 @@
# Template file for 'cross-i686-linux-musl'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.2.0
_musl_version=1.1.24
_linux_version=5.10.4
_libucontext_version=1.0
pkgname=cross-i686-linux-musl
-version=0.34
-revision=4
+version=0.35
+revision=1
build_style=void-cross
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
-homepage="https://www.voidlinux.org/"
license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
+homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz
https://github.com/kaniini/libucontext/archive/libucontext-${_libucontext_version}.tar.gz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec
23714e99a87f6dea82e8a073c526325161dd65462459820b16a6162be91955bb"
From 6b98e37c0753c292bdf0eab151aa4348ba54da40 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:29 -0800
Subject: [PATCH 22/38] cross-i686-pc-linux-gnu: update to gcc 12.2.0.
---
srcpkgs/cross-i686-pc-linux-gnu/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-i686-pc-linux-gnu/template b/srcpkgs/cross-i686-pc-linux-gnu/template
index 263a43f7a7b8..6a9e54db807a 100644
--- a/srcpkgs/cross-i686-pc-linux-gnu/template
+++ b/srcpkgs/cross-i686-pc-linux-gnu/template
@@ -1,14 +1,15 @@
# Template file for 'cross-i686-pc-linux-gnu'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
-_glibc_version=2.32
+_binutils_version=2.39
+_gcc_version=12.2.0
+_glibc_version=2.36
_linux_version=5.10.4
pkgname=cross-i686-pc-linux-gnu
-version=0.34
+version=0.35
revision=1
build_style=void-cross
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
@@ -16,12 +17,12 @@ license="GPL-2.0-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
+ 1c959fea240906226062cb4b1e7ebce71a9f0e3c0836c09e7e3423d434fcfe75
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
From db8745f4c9dc7ca8032246afa0c836b161b876fe Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:29 -0800
Subject: [PATCH 23/38] cross-mips-linux-musl: update to gcc 12.2.0.
---
srcpkgs/cross-mips-linux-musl/template | 21 +++++++++++----------
1 file changed, 11 insertions(+), 10 deletions(-)
diff --git a/srcpkgs/cross-mips-linux-musl/template b/srcpkgs/cross-mips-linux-musl/template
index 9b5d5819b1a0..67a5c413396c 100644
--- a/srcpkgs/cross-mips-linux-musl/template
+++ b/srcpkgs/cross-mips-linux-musl/template
@@ -1,28 +1,29 @@
# Template file for 'cross-mips-linux-musl'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.2.0
_musl_version=1.1.24
_linux_version=5.10.4
pkgname=cross-mips-linux-musl
-version=0.34
-revision=3
+version=0.35
+revision=1
build_style=void-cross
configure_args="--with-arch=mips32r2 --with-float=soft
--with-linker-hash-style=sysv"
hostmakedepends="texinfo tar gcc-objc flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
-homepage="https://www.voidlinux.org/"
license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
+homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
- https://www.musl-libc.org/releases/musl-${_musl_version}.tar.gz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
+ https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
From d8936278496f2d7f260f3a9eb351caa5dd58829f Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:29 -0800
Subject: [PATCH 24/38] cross-mips-linux-muslhf: update to gcc 12.2.0.
---
srcpkgs/cross-mips-linux-muslhf/template | 21 +++++++++++----------
1 file changed, 11 insertions(+), 10 deletions(-)
diff --git a/srcpkgs/cross-mips-linux-muslhf/template b/srcpkgs/cross-mips-linux-muslhf/template
index d7590af9ec03..bdf8600ce95b 100644
--- a/srcpkgs/cross-mips-linux-muslhf/template
+++ b/srcpkgs/cross-mips-linux-muslhf/template
@@ -1,28 +1,29 @@
# Template file for 'cross-mips-linux-muslhf'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.2.0
_musl_version=1.1.24
_linux_version=5.10.4
pkgname=cross-mips-linux-muslhf
-version=0.34
-revision=3
+version=0.35
+revision=1
build_style=void-cross
configure_args="--with-arch=mips32r2 --with-float=hard
--with-linker-hash-style=sysv"
hostmakedepends="texinfo tar gcc-objc flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="hipperson0 <hipperson0@gmail.com>"
-homepage="https://www.voidlinux.org/"
license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
+homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
- https://www.musl-libc.org/releases/musl-${_musl_version}.tar.gz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
+ https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
From a91ba3ab1f5491e1676bf8400a497fb8b5c3cf3b Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:29 -0800
Subject: [PATCH 25/38] cross-mipsel-linux-musl: update to gcc 12.2.0.
---
srcpkgs/cross-mipsel-linux-musl/template | 21 +++++++++++----------
1 file changed, 11 insertions(+), 10 deletions(-)
diff --git a/srcpkgs/cross-mipsel-linux-musl/template b/srcpkgs/cross-mipsel-linux-musl/template
index 1acba7016dbc..de49387d517b 100644
--- a/srcpkgs/cross-mipsel-linux-musl/template
+++ b/srcpkgs/cross-mipsel-linux-musl/template
@@ -1,28 +1,29 @@
# Template file for 'cross-mipsel-linux-musl'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.2.0
_musl_version=1.1.24
_linux_version=5.10.4
pkgname=cross-mipsel-linux-musl
-version=0.34
-revision=3
+version=0.35
+revision=1
build_style=void-cross
configure_args="--with-arch=mips32r2 --with-float=soft
--with-linker-hash-style=sysv"
hostmakedepends="texinfo tar gcc-objc flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
-homepage="https://www.voidlinux.org/"
license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
+homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
- https://www.musl-libc.org/releases/musl-${_musl_version}.tar.gz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
+ https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
From 8bc659104ffe164ac97f12f2fd2e5d59df6c8b2b Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:29 -0800
Subject: [PATCH 26/38] cross-mipsel-linux-muslhf: update to gcc 12.2.0.
---
srcpkgs/cross-mipsel-linux-muslhf/template | 21 +++++++++++----------
1 file changed, 11 insertions(+), 10 deletions(-)
diff --git a/srcpkgs/cross-mipsel-linux-muslhf/template b/srcpkgs/cross-mipsel-linux-muslhf/template
index e4a55f028bc4..b27ce6475a38 100644
--- a/srcpkgs/cross-mipsel-linux-muslhf/template
+++ b/srcpkgs/cross-mipsel-linux-muslhf/template
@@ -1,28 +1,29 @@
# Template file for 'cross-mipsel-linux-muslhf'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.2.0
_musl_version=1.1.24
_linux_version=5.10.4
pkgname=cross-mipsel-linux-muslhf
-version=0.34
-revision=3
+version=0.35
+revision=1
build_style=void-cross
configure_args="--with-arch=mips32r2 --with-float=hard
--with-linker-hash-style=sysv"
hostmakedepends="texinfo tar gcc-objc flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
-homepage="https://www.voidlinux.org/"
license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
+homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
- https://www.musl-libc.org/releases/musl-${_musl_version}.tar.gz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
+ https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
From 40ce097d0da9b33d69ea2e6ed0ef77920c6564a9 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:29 -0800
Subject: [PATCH 27/38] cross-powerpc-linux-gnu: update to gcc 12.2.0.
---
srcpkgs/cross-powerpc-linux-gnu/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-powerpc-linux-gnu/template b/srcpkgs/cross-powerpc-linux-gnu/template
index b97a21d0d72e..79579e093b12 100644
--- a/srcpkgs/cross-powerpc-linux-gnu/template
+++ b/srcpkgs/cross-powerpc-linux-gnu/template
@@ -1,15 +1,16 @@
# Template file for 'cross-powerpc-linux-gnu'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
-_glibc_version=2.32
+_binutils_version=2.39
+_gcc_version=12.2.0
+_glibc_version=2.36
_linux_version=5.10.4
pkgname=cross-powerpc-linux-gnu
-version=0.34
+version=0.35
revision=1
build_style=void-cross
configure_args="--enable-secureplt --disable-vtable-verify"
hostmakedepends="texinfo tar gcc-objc flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Thomas Batten <stenstorpmc@gmail.com>"
@@ -17,12 +18,12 @@ license="GPL-2.0-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
+ 1c959fea240906226062cb4b1e7ebce71a9f0e3c0836c09e7e3423d434fcfe75
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
From bb5eda3a1f95d385cb229ef3089ee196433e6194 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:29 -0800
Subject: [PATCH 28/38] cross-powerpc-linux-musl: update to gcc 12.2.0.
---
srcpkgs/cross-powerpc-linux-musl/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-powerpc-linux-musl/template b/srcpkgs/cross-powerpc-linux-musl/template
index f9b22f0610d3..9bb6acd359b6 100644
--- a/srcpkgs/cross-powerpc-linux-musl/template
+++ b/srcpkgs/cross-powerpc-linux-musl/template
@@ -1,28 +1,29 @@
# Template file for 'cross-powerpc-linux-musl'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.2.0
_musl_version=1.1.24
_linux_version=5.10.4
pkgname=cross-powerpc-linux-musl
-version=0.34
-revision=3
+version=0.35
+revision=1
build_style=void-cross
configure_args="--enable-secureplt --disable-vtable-verify
--disable-decimal-float"
hostmakedepends="texinfo tar gcc-objc flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Thomas Batten <stenstorpmc@gmail.com>"
-homepage="https://www.voidlinux.org/"
license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
+homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
From 2bfb33cab984f72552d48eb97b93573a05a240f7 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:29 -0800
Subject: [PATCH 29/38] cross-powerpc64-linux-gnu: update to gcc 12.2.0.
---
srcpkgs/cross-powerpc64-linux-gnu/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-powerpc64-linux-gnu/template b/srcpkgs/cross-powerpc64-linux-gnu/template
index 35cfcaa6f02e..2d153d00add6 100644
--- a/srcpkgs/cross-powerpc64-linux-gnu/template
+++ b/srcpkgs/cross-powerpc64-linux-gnu/template
@@ -1,16 +1,17 @@
# Template file for 'cross-powerpc64-linux-gnu'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
-_glibc_version=2.32
+_binutils_version=2.39
+_gcc_version=12.2.0
+_glibc_version=2.36
_linux_version=5.10.4
pkgname=cross-powerpc64-linux-gnu
-version=0.34
+version=0.35
revision=1
build_style=void-cross
configure_args="--enable-secureplt --disable-vtable-verify --with-abi=elfv2
--enable-targets=powerpc-linux"
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
@@ -18,12 +19,12 @@ license="GPL-2.0-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
+ 1c959fea240906226062cb4b1e7ebce71a9f0e3c0836c09e7e3423d434fcfe75
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
From 088c1f270345f4fdb7f0171cc506d04eea09b26f Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:29 -0800
Subject: [PATCH 30/38] cross-powerpc64-linux-musl: update to gcc 12.2.0.
---
srcpkgs/cross-powerpc64-linux-musl/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-powerpc64-linux-musl/template b/srcpkgs/cross-powerpc64-linux-musl/template
index 016f18776a6d..e0848fe0bff7 100644
--- a/srcpkgs/cross-powerpc64-linux-musl/template
+++ b/srcpkgs/cross-powerpc64-linux-musl/template
@@ -1,30 +1,31 @@
# Template file for 'cross-powerpc64-linux-musl'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.2.0
_musl_version=1.1.24
_linux_version=5.10.4
_libucontext_version=1.0
pkgname=cross-powerpc64-linux-musl
-version=0.34
-revision=4
+version=0.35
+revision=1
build_style=void-cross
configure_args="--enable-secureplt --disable-vtable-verify
--disable-decimal-float --with-abi=elfv2 --enable-targets=powerpc-linux"
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
-homepage="https://www.voidlinux.org/"
license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
+homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz
https://github.com/kaniini/libucontext/archive/libucontext-${_libucontext_version}.tar.gz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec
23714e99a87f6dea82e8a073c526325161dd65462459820b16a6162be91955bb"
From d01c23315371342661778d3b72ae1ef5eec93cf3 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:29 -0800
Subject: [PATCH 31/38] cross-powerpc64le-linux-gnu: update to gcc 12.2.0.
---
srcpkgs/cross-powerpc64le-linux-gnu/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-powerpc64le-linux-gnu/template b/srcpkgs/cross-powerpc64le-linux-gnu/template
index 463d7e92d20d..8d8e010e15c0 100644
--- a/srcpkgs/cross-powerpc64le-linux-gnu/template
+++ b/srcpkgs/cross-powerpc64le-linux-gnu/template
@@ -1,16 +1,17 @@
# Template file for 'cross-powerpc64le-linux-gnu'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
-_glibc_version=2.32
+_binutils_version=2.39
+_gcc_version=12.2.0
+_glibc_version=2.36
_linux_version=5.10.4
pkgname=cross-powerpc64le-linux-gnu
-version=0.34
+version=0.35
revision=1
build_style=void-cross
configure_args="--enable-secureplt --disable-vtable-verify --with-abi=elfv2
--enable-targets=powerpcle-linux"
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
@@ -18,12 +19,12 @@ license="GPL-2.0-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
+ 1c959fea240906226062cb4b1e7ebce71a9f0e3c0836c09e7e3423d434fcfe75
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
From 45cd9b49fbcba201ba2bdc22f8800087c6b83cdf Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:29 -0800
Subject: [PATCH 32/38] cross-powerpc64le-linux-musl: update to gcc 12.2.0.
---
srcpkgs/cross-powerpc64le-linux-musl/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-powerpc64le-linux-musl/template b/srcpkgs/cross-powerpc64le-linux-musl/template
index c17a3cccfe29..0915e524545f 100644
--- a/srcpkgs/cross-powerpc64le-linux-musl/template
+++ b/srcpkgs/cross-powerpc64le-linux-musl/template
@@ -1,30 +1,31 @@
# Template file for 'cross-powerpc64le-linux-musl'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.2.0
_musl_version=1.1.24
_linux_version=5.10.4
_libucontext_version=1.0
pkgname=cross-powerpc64le-linux-musl
-version=0.34
-revision=4
+version=0.35
+revision=1
build_style=void-cross
configure_args="--enable-secureplt --disable-vtable-verify
--disable-decimal-float --with-abi=elfv2 --enable-targets=powerpcle-linux"
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
-homepage="https://www.voidlinux.org/"
license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
+homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz
https://github.com/kaniini/libucontext/archive/libucontext-${_libucontext_version}.tar.gz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec
23714e99a87f6dea82e8a073c526325161dd65462459820b16a6162be91955bb"
From 64c0b945f24ec94e530688bd71d6a9a7216eae46 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:29 -0800
Subject: [PATCH 33/38] cross-powerpcle-linux-gnu: update to gcc 12.2.0.
---
srcpkgs/cross-powerpcle-linux-gnu/template | 21 ++++++++++++---------
1 file changed, 12 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-powerpcle-linux-gnu/template b/srcpkgs/cross-powerpcle-linux-gnu/template
index 9aede3c465ce..687be8a44c6c 100644
--- a/srcpkgs/cross-powerpcle-linux-gnu/template
+++ b/srcpkgs/cross-powerpcle-linux-gnu/template
@@ -1,15 +1,16 @@
# Template file for 'cross-powerpcle-linux-gnu'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
-_glibc_version=2.32
+_binutils_version=2.39
+_gcc_version=12.2.0
+_glibc_version=2.36
_linux_version=5.10.4
pkgname=cross-powerpcle-linux-gnu
-version=0.34
+version=0.35
revision=1
build_style=void-cross
configure_args="--enable-secureplt --disable-vtable-verify"
hostmakedepends="texinfo tar gcc-objc flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
@@ -17,12 +18,12 @@ license="GPL-2.0-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
+ 1c959fea240906226062cb4b1e7ebce71a9f0e3c0836c09e7e3423d434fcfe75
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
@@ -35,6 +36,8 @@ if [ "$XBPS_TARGET_MACHINE" = "ppcle" ]; then
broken="Can't build crosstoolchain to itself"
fi
+broken="glibc uses big-endian specific instructions on 32-bit powerpc"
+
cross-powerpcle-linux-gnu-libc_package() {
short_desc+=" - glibc files"
nostrip=yes
From d5f02e5268f846de43a4ab778ff47d99335fa400 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:29 -0800
Subject: [PATCH 34/38] cross-powerpcle-linux-musl: update to gcc 12.2.0.
---
srcpkgs/cross-powerpcle-linux-musl/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-powerpcle-linux-musl/template b/srcpkgs/cross-powerpcle-linux-musl/template
index 045cfda987fe..bb984b9c42eb 100644
--- a/srcpkgs/cross-powerpcle-linux-musl/template
+++ b/srcpkgs/cross-powerpcle-linux-musl/template
@@ -1,28 +1,29 @@
# Template file for 'cross-powerpcle-linux-musl'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.2.0
_musl_version=1.1.24
_linux_version=5.10.4
pkgname=cross-powerpcle-linux-musl
-version=0.34
-revision=3
+version=0.35
+revision=1
build_style=void-cross
configure_args="--enable-secureplt --disable-vtable-verify
--disable-decimal-float"
hostmakedepends="texinfo tar gcc-objc flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
-homepage="https://www.voidlinux.org/"
license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
+homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
From 85a5a757bdfc2fd60cfcfba1baba26eb4e40e21c Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:30 -0800
Subject: [PATCH 35/38] cross-x86_64-linux-gnu: update to gcc 12.2.0.
---
srcpkgs/cross-x86_64-linux-gnu/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-x86_64-linux-gnu/template b/srcpkgs/cross-x86_64-linux-gnu/template
index 8918f3c22a1c..930aaf2a508b 100644
--- a/srcpkgs/cross-x86_64-linux-gnu/template
+++ b/srcpkgs/cross-x86_64-linux-gnu/template
@@ -1,14 +1,15 @@
# Template file for 'cross-x86_64-linux-gnu'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
-_glibc_version=2.32
+_binutils_version=2.39
+_gcc_version=12.2.0
+_glibc_version=2.36
_linux_version=5.10.4
pkgname=cross-x86_64-linux-gnu
-version=0.34
+version=0.35
revision=1
build_style=void-cross
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
@@ -16,12 +17,12 @@ license="GPL-2.0-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
+ 1c959fea240906226062cb4b1e7ebce71a9f0e3c0836c09e7e3423d434fcfe75
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
From a58db29069b41feea8d7e639f8433d550671dd1e Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:30 -0800
Subject: [PATCH 36/38] cross-x86_64-linux-musl: update to gcc 12.2.0.
---
srcpkgs/cross-x86_64-linux-musl/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-x86_64-linux-musl/template b/srcpkgs/cross-x86_64-linux-musl/template
index a941e7e02f6f..ac5b1c46ab82 100644
--- a/srcpkgs/cross-x86_64-linux-musl/template
+++ b/srcpkgs/cross-x86_64-linux-musl/template
@@ -1,28 +1,29 @@
# Template file for 'cross-x86_64-linux-musl'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.2.0
_musl_version=1.1.24
_linux_version=5.10.4
_libucontext_version=1.0
pkgname=cross-x86_64-linux-musl
-version=0.34
-revision=3
+version=0.35
+revision=1
build_style=void-cross
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
-homepage="https://www.voidlinux.org/"
license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
+homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz
https://github.com/kaniini/libucontext/archive/libucontext-${_libucontext_version}.tar.gz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec
23714e99a87f6dea82e8a073c526325161dd65462459820b16a6162be91955bb"
From e3f723657e13ee121cde2b5175ccc053f586b8d9 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Fri, 18 Nov 2022 02:01:19 -0800
Subject: [PATCH 37/38] cross-vpkg-dummy: update to 0.39.
---
srcpkgs/cross-vpkg-dummy/template | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/srcpkgs/cross-vpkg-dummy/template b/srcpkgs/cross-vpkg-dummy/template
index d83e38dc63ac..aeafb749dd5f 100644
--- a/srcpkgs/cross-vpkg-dummy/template
+++ b/srcpkgs/cross-vpkg-dummy/template
@@ -1,6 +1,6 @@
# Template file for 'cross-vpkg-dummy'
pkgname=cross-vpkg-dummy
-version=0.38
+version=0.39
revision=1
build_style=meta
short_desc="Dummy meta-pkg for cross building packages with xbps-src"
@@ -54,8 +54,8 @@ conflicts="
gcc-objc++>=0"
shlib_provides="
libgcc_s.so.1
- libgnat-10.so
- libgnarl-10.so
+ libgnat-12.so
+ libgnarl-12.so
libstdc++.so.6
libgfortran.so.5"
From 3e3ef0cf5e9b7a3d2ef811e07ed1dfa233b1a4f4 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Sun, 27 Nov 2022 22:59:45 +0100
Subject: [PATCH 38/38] llvm: update to 15.0.5
---
common/shlibs | 7 +-
srcpkgs/clang | 2 +-
srcpkgs/clang-analyzer | 2 +-
srcpkgs/clang-tools-extra | 2 +-
srcpkgs/libclang | 2 +-
srcpkgs/libclang-cpp | 2 +-
srcpkgs/libcxx | 2 +-
srcpkgs/libcxx-devel | 2 +-
srcpkgs/libcxxabi | 2 +-
srcpkgs/libcxxabi-devel | 2 +-
srcpkgs/libllvm15 | 1 +
srcpkgs/libomp | 2 +-
srcpkgs/libomp-devel | 2 +-
srcpkgs/lld | 2 +-
srcpkgs/lld-devel | 2 +-
srcpkgs/lldb | 2 +-
srcpkgs/lldb-devel | 2 +-
srcpkgs/llvm-libunwind | 2 +-
srcpkgs/llvm-libunwind-devel | 2 +-
srcpkgs/llvm/template | 6 +-
.../llvm15/files/llvm-Config-llvm-config.h | 9 +
...clang-001-fix-unwind-chain-inclusion.patch | 44 ++
.../patches/clang-002-add-musl-triples.patch | 110 +++++
.../clang-003-ppc64-dynamic-linker-path.patch | 13 +
.../patches/clang-004-ppc64-musl-elfv2.patch | 48 ++
.../compiler-rt-sanitizer-ppc64-musl.patch | 35 ++
.../compiler-rt-xray-ppc64-musl.patch.skip | 62 +++
srcpkgs/llvm15/patches/libcxx-ppc.patch | 22 +
.../llvm15/patches/libcxx-ssp-nonshared.patch | 11 +
srcpkgs/llvm15/patches/libcxxabi-dl.patch | 25 +
.../llvm15/patches/libunwind-ppc32.patch.skip | 63 +++
srcpkgs/llvm15/patches/lldb-musl.patch | 40 ++
srcpkgs/llvm15/patches/llvm-001-musl.patch | 57 +++
.../patches/llvm-002-musl-ppc64-elfv2.patch | 30 ++
.../patches/llvm-003-ppc-secureplt.patch | 11 +
.../patches/llvm-004-override-opt.patch | 18 +
.../llvm15/patches/llvm-005-ppc-bigpic.patch | 36 ++
.../patches/llvm-006-aarch64-mf_exec.patch | 25 +
srcpkgs/llvm15/template | 434 ++++++++++++++++++
srcpkgs/llvm15/update | 3 +
40 files changed, 1121 insertions(+), 23 deletions(-)
create mode 120000 srcpkgs/libllvm15
create mode 100644 srcpkgs/llvm15/files/llvm-Config-llvm-config.h
create mode 100644 srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch
create mode 100644 srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch
create mode 100644 srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch
create mode 100644 srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch
create mode 100644 srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch
create mode 100644 srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip
create mode 100644 srcpkgs/llvm15/patches/libcxx-ppc.patch
create mode 100644 srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch
create mode 100644 srcpkgs/llvm15/patches/libcxxabi-dl.patch
create mode 100644 srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip
create mode 100644 srcpkgs/llvm15/patches/lldb-musl.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-001-musl.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-004-override-opt.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch
create mode 100644 srcpkgs/llvm15/template
create mode 100644 srcpkgs/llvm15/update
diff --git a/common/shlibs b/common/shlibs
index 3f90cbd1ace3..8afb88b47e23 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -985,11 +985,12 @@ 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.12 lldb-12.0.0_1
-libclang.so.12 libclang-12.0.0_1
-libclang-cpp.so.12 libclang-cpp-12.0.0_1
+liblldb.so.15 lldb-15.0.5_1
+libclang.so.15 libclang-15.0.5_1
+libclang-cpp.so.15 libclang-cpp-15.0.5_1
libLLVM-11.so libllvm11-11.0.0_1
libLLVM-12.so libllvm12-12.0.0_1
+libLLVM-15.so libllvm15-15.0.5_1
libisofs.so.6 libisofs-0.6.24_1
libmpack.so.0 libmpack-1.0.5_1
libGeoIP.so.1 libgeoip-1.4.8_1
diff --git a/srcpkgs/clang b/srcpkgs/clang
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/clang
+++ b/srcpkgs/clang
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/clang-analyzer b/srcpkgs/clang-analyzer
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/clang-analyzer
+++ b/srcpkgs/clang-analyzer
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/clang-tools-extra b/srcpkgs/clang-tools-extra
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/clang-tools-extra
+++ b/srcpkgs/clang-tools-extra
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libclang b/srcpkgs/libclang
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libclang
+++ b/srcpkgs/libclang
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libclang-cpp b/srcpkgs/libclang-cpp
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libclang-cpp
+++ b/srcpkgs/libclang-cpp
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxx b/srcpkgs/libcxx
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxx
+++ b/srcpkgs/libcxx
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxx-devel b/srcpkgs/libcxx-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxx-devel
+++ b/srcpkgs/libcxx-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxxabi b/srcpkgs/libcxxabi
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxxabi
+++ b/srcpkgs/libcxxabi
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxxabi-devel b/srcpkgs/libcxxabi-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxxabi-devel
+++ b/srcpkgs/libcxxabi-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libllvm15 b/srcpkgs/libllvm15
new file mode 120000
index 000000000000..ad57a969b9f9
--- /dev/null
+++ b/srcpkgs/libllvm15
@@ -0,0 +1 @@
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libomp b/srcpkgs/libomp
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libomp
+++ b/srcpkgs/libomp
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libomp-devel b/srcpkgs/libomp-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libomp-devel
+++ b/srcpkgs/libomp-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lld b/srcpkgs/lld
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lld
+++ b/srcpkgs/lld
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lld-devel b/srcpkgs/lld-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lld-devel
+++ b/srcpkgs/lld-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lldb b/srcpkgs/lldb
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lldb
+++ b/srcpkgs/lldb
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lldb-devel b/srcpkgs/lldb-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lldb-devel
+++ b/srcpkgs/lldb-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm-libunwind b/srcpkgs/llvm-libunwind
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/llvm-libunwind
+++ b/srcpkgs/llvm-libunwind
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm-libunwind-devel b/srcpkgs/llvm-libunwind-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/llvm-libunwind-devel
+++ b/srcpkgs/llvm-libunwind-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm/template b/srcpkgs/llvm/template
index a92db6f94f9f..d14430090161 100644
--- a/srcpkgs/llvm/template
+++ b/srcpkgs/llvm/template
@@ -1,10 +1,10 @@
# Template file for 'llvm'
pkgname=llvm
-version=12.0.0
+version=15.0.0
revision=1
build_style=meta
-depends="llvm12"
-replaces="llvm11>=0 llvm10>=0 llvm9>=0 llvm8>=0 llvm7>=0 llvm6.0>=0 llvm3.9>=0"
+depends="llvm15"
+replaces="llvm12>=0 llvm11>=0 llvm10>=0 llvm9>=0 llvm8>=0 llvm7>=0 llvm6.0>=0 llvm3.9>=0"
short_desc="LLVM meta package"
maintainer="Enno Boland <gottox@voidlinux.org>"
license="Public Domain"
diff --git a/srcpkgs/llvm15/files/llvm-Config-llvm-config.h b/srcpkgs/llvm15/files/llvm-Config-llvm-config.h
new file mode 100644
index 000000000000..2fa08c9be696
--- /dev/null
+++ b/srcpkgs/llvm15/files/llvm-Config-llvm-config.h
@@ -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
diff --git a/srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch b/srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch
new file mode 100644
index 000000000000..e4eaa7783e7a
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch
@@ -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
diff --git a/srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch b/srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch
new file mode 100644
index 000000000000..25688d40dbc2
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch
@@ -0,0 +1,110 @@
+--- a/clang/lib/Driver/ToolChains/Gnu.cpp
++++ b/clang/lib/Driver/ToolChains/Gnu.cpp
+@@ -2086,7 +2086,8 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
+ static const char *const ARMHFTriples[] = {"arm-linux-gnueabihf",
+ "armv7hl-redhat-linux-gnueabi",
+ "armv6hl-suse-linux-gnueabi",
+- "armv7hl-suse-linux-gnueabi"};
++ "armv7hl-suse-linux-gnueabi",
++ "armv7l-linux-gnueabihf"};
+ static const char *const ARMebLibDirs[] = {"/lib"};
+ static const char *const ARMebTriples[] = {"armeb-linux-gnueabi",
+ "armeb-linux-androideabi"};
+@@ -2153,8 +2154,7 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
+ "powerpc64-suse-linux", "powerpc-montavista-linuxspe"};
+ static const char *const PPCLELibDirs[] = {"/lib32", "/lib"};
+ static const char *const PPCLETriples[] = {"powerpcle-linux-gnu",
+- "powerpcle-unknown-linux-gnu",
+- "powerpcle-linux-musl"};
++ "powerpcle-unknown-linux-gnu"};
+
+ static const char *const PPC64LibDirs[] = {"/lib64", "/lib"};
+ static const char *const PPC64Triples[] = {
+@@ -2235,6 +2235,87 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
+ return;
+ }
+
++ if (TargetTriple.isMusl()) {
++ static const char *const AArch64MuslTriples[] = {"aarch64-linux-musl"};
++ static const char *const ARMHFMuslTriples[] = {
++ "arm-linux-musleabihf", "armv7l-linux-musleabihf"
++ };
++ static const char *const ARMMuslTriples[] = {"arm-linux-musleabi"};
++ static const char *const X86_64MuslTriples[] = {"x86_64-linux-musl"};
++ static const char *const X86MuslTriples[] = {"i686-linux-musl"};
++ static const char *const MIPSMuslTriples[] = {
++ "mips-linux-musl", "mipsel-linux-musl",
++ "mipsel-linux-muslhf", "mips-linux-muslhf"
++ };
++ static const char *const PPCMuslTriples[] = {"powerpc-linux-musl"};
++ static const char *const PPCLEMuslTriples[] = {"powerpcle-linux-musl"};
++ static const char *const PPC64MuslTriples[] = {"powerpc64-linux-musl"};
++ static const char *const PPC64LEMuslTriples[] = {"powerpc64le-linux-musl"};
++
++ switch (TargetTriple.getArch()) {
++ case llvm::Triple::aarch64:
++ LibDirs.append(begin(AArch64LibDirs), end(AArch64LibDirs));
++ TripleAliases.append(begin(AArch64MuslTriples), end(AArch64MuslTriples));
++ BiarchLibDirs.append(begin(AArch64LibDirs), end(AArch64LibDirs));
++ BiarchTripleAliases.append(begin(AArch64MuslTriples), end(AArch64MuslTriples));
++ break;
++ case llvm::Triple::arm:
++ LibDirs.append(begin(ARMLibDirs), end(ARMLibDirs));
++ if (TargetTriple.getEnvironment() == llvm::Triple::MuslEABIHF) {
++ TripleAliases.append(begin(ARMHFMuslTriples), end(ARMHFMuslTriples));
++ } else {
++ TripleAliases.append(begin(ARMMuslTriples), end(ARMMuslTriples));
++ }
++ break;
++ case llvm::Triple::x86_64:
++ LibDirs.append(begin(X86_64LibDirs), end(X86_64LibDirs));
++ TripleAliases.append(begin(X86_64MuslTriples), end(X86_64MuslTriples));
++ BiarchLibDirs.append(begin(X86LibDirs), end(X86LibDirs));
++ BiarchTripleAliases.append(begin(X86MuslTriples), end(X86MuslTriples));
++ break;
++ case llvm::Triple::x86:
++ LibDirs.append(begin(X86LibDirs), end(X86LibDirs));
++ TripleAliases.append(begin(X86MuslTriples), end(X86MuslTriples));
++ BiarchLibDirs.append(begin(X86_64LibDirs), end(X86_64LibDirs));
++ BiarchTripleAliases.append(begin(X86_64MuslTriples), end(X86_64MuslTriples));
++ break;
++ case llvm::Triple::mips:
++ LibDirs.append(begin(MIPSLibDirs), end(MIPSLibDirs));
++ TripleAliases.append(begin(MIPSMuslTriples), end(MIPSMuslTriples));
++ break;
++ case llvm::Triple::ppc:
++ LibDirs.append(begin(PPCLibDirs), end(PPCLibDirs));
++ TripleAliases.append(begin(PPCMuslTriples), end(PPCMuslTriples));
++ BiarchLibDirs.append(begin(PPC64LibDirs), end(PPC64LibDirs));
++ BiarchTripleAliases.append(begin(PPC64MuslTriples), end(PPC64MuslTriples));
++ break;
++ case llvm::Triple::ppcle:
++ LibDirs.append(begin(PPCLELibDirs), end(PPCLELibDirs));
++ TripleAliases.append(begin(PPCLEMuslTriples), end(PPCLEMuslTriples));
++ BiarchLibDirs.append(begin(PPC64LELibDirs), end(PPC64LELibDirs));
++ BiarchTripleAliases.append(begin(PPC64LEMuslTriples), end(PPC64LEMuslTriples));
++ break;
++ case llvm::Triple::ppc64:
++ LibDirs.append(begin(PPC64LibDirs), end(PPC64LibDirs));
++ TripleAliases.append(begin(PPC64MuslTriples), end(PPC64MuslTriples));
++ BiarchLibDirs.append(begin(PPCLibDirs), end(PPCLibDirs));
++ BiarchTripleAliases.append(begin(PPCMuslTriples), end(PPCMuslTriples));
++ break;
++ case llvm::Triple::ppc64le:
++ LibDirs.append(begin(PPC64LELibDirs), end(PPC64LELibDirs));
++ TripleAliases.append(begin(PPC64LEMuslTriples), end(PPC64LEMuslTriples));
++ BiarchLibDirs.append(begin(PPCLELibDirs), end(PPCLELibDirs));
++ BiarchTripleAliases.append(begin(PPCLEMuslTriples), end(PPCLEMuslTriples));
++ break;
++ default:
++ break;
++ }
++ TripleAliases.push_back(TargetTriple.str());
++ if (TargetTriple.str() != BiarchTriple.str())
++ BiarchTripleAliases.push_back(BiarchTriple.str());
++ return;
++ }
++
+ // Android targets should not use GNU/Linux tools or libraries.
+ if (TargetTriple.isAndroid()) {
+ static const char *const AArch64AndroidTriples[] = {
diff --git a/srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch b/srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch
new file mode 100644
index 000000000000..4ad6412d1e6c
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch
@@ -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 =
diff --git a/srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch b/srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch
new file mode 100644
index 000000000000..21fc8003c5f1
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch
@@ -0,0 +1,48 @@
+--- a/clang/lib/Basic/Targets/PPC.h
++++ b/clang/lib/Basic/Targets/PPC.h
+@@ -415,11 +415,10 @@ public:
+ LongDoubleFormat = &llvm::APFloat::IEEEdouble();
+ } else if ((Triple.getArch() == llvm::Triple::ppc64le)) {
+ DataLayout = "e-m:e-i64:64-n32:64";
+- ABI = "elfv2";
+ } else {
+ DataLayout = "E-m:e-i64:64-n32:64";
+- ABI = "elfv1";
+ }
++ ABI = "elfv2";
+
+ if (Triple.isOSFreeBSD() || Triple.isOSOpenBSD() || Triple.isMusl()) {
+ LongDoubleWidth = LongDoubleAlign = 64;
+--- a/clang/lib/CodeGen/TargetInfo.cpp
++++ b/clang/lib/CodeGen/TargetInfo.cpp
+@@ -10927,9 +10927,9 @@ const TargetCodeGenInfo &CodeGenModule::getTargetCodeGenInfo() {
+ return SetCGInfo(new AIXTargetCodeGenInfo(Types, /*Is64Bit*/ true));
+
+ if (Triple.isOSBinFormatELF()) {
+- PPC64_SVR4_ABIInfo::ABIKind Kind = PPC64_SVR4_ABIInfo::ELFv1;
+- if (getTarget().getABI() == "elfv2")
+- Kind = PPC64_SVR4_ABIInfo::ELFv2;
++ PPC64_SVR4_ABIInfo::ABIKind Kind = PPC64_SVR4_ABIInfo::ELFv2;
++ if (getTarget().getABI() == "elfv1")
++ Kind = PPC64_SVR4_ABIInfo::ELFv1;
+ bool IsSoftFloat = CodeGenOpts.FloatABI == "soft";
+
+ return SetCGInfo(
+--- a/clang/lib/Driver/ToolChains/Clang.cpp
++++ b/clang/lib/Driver/ToolChains/Clang.cpp
+@@ -1920,14 +1920,7 @@ void Clang::AddPPCTargetArgs(const ArgList &Args,
+ const llvm::Triple &T = getToolChain().getTriple();
+ if (T.isOSBinFormatELF()) {
+ switch (getToolChain().getArch()) {
+- case llvm::Triple::ppc64: {
+- if ((T.isOSFreeBSD() && T.getOSMajorVersion() >= 13) ||
+- T.isOSOpenBSD() || T.isMusl())
+- ABIName = "elfv2";
+- else
+- ABIName = "elfv1";
+- break;
+- }
++ case llvm::Triple::ppc64:
+ case llvm::Triple::ppc64le:
+ ABIName = "elfv2";
+ break;
diff --git a/srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch b/srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch
new file mode 100644
index 000000000000..360cfc1ba7f1
--- /dev/null
+++ b/srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch
@@ -0,0 +1,35 @@
+--- 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__) || SANITIZER_RISCV64
++ defined(__hexagon__) || defined(__powerpc__) || 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_ANDROID
++#if (defined(__aarch64__) || defined(__powerpc__) || SANITIZER_RISCV64) && !SANITIZER_ANDROID
+ // GLIBC 2.20+ sys/user does not include asm/ptrace.h
+ # include <asm/ptrace.h>
+ #endif
diff --git a/srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip b/srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip
new file mode 100644
index 000000000000..d0b61c80c897
--- /dev/null
+++ b/srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip
@@ -0,0 +1,62 @@
+--- a/compiler-rt/lib/xray/xray_powerpc64.inc
++++ b/compiler-rt/lib/xray/xray_powerpc64.inc
+@@ -12,7 +12,13 @@
+
+ #include <cstdint>
+ #include <mutex>
++#ifdef __GLIBC__
+ #include <sys/platform/ppc.h>
++#else
++#include <cctype>
++#include <cstring>
++#include <cstdlib>
++#endif
+
+ #include "xray_defs.h"
+
+@@ -20,13 +26,45 @@ namespace __xray {
+
+ ALWAYS_INLINE uint64_t readTSC(uint8_t &CPU) XRAY_NEVER_INSTRUMENT {
+ CPU = 0;
++#ifdef __GLIBC__
+ return __ppc_get_timebase();
++#else
++ return __builtin_ppc_get_timebase();
++#endif
+ }
+
+ inline uint64_t getTSCFrequency() XRAY_NEVER_INSTRUMENT {
+ static std::mutex M;
+ std::lock_guard<std::mutex> Guard(M);
++#ifdef __GLIBC__
+ return __ppc_get_timebase_freq();
++#else
++ /* FIXME: a less dirty implementation? */
++ static uint64_t base;
++ if (!base) {
++ FILE *f = fopen("/proc/cpuinfo", "rb");
++ if (f) {
++ ssize_t nr;
++ /* virtually always big enough to hold the line */
++ char buf[512];
++ while (fgets(buf, sizeof(buf), f)) {
++ char *ret = strstr(buf, "timebase");
++ if (!ret) {
++ continue;
++ }
++ ret += sizeof("timebase") - 1;
++ ret = strchr(ret, ':');
++ if (!ret) {
++ continue;
++ }
++ base = strtoul(ret + 1, nullptr, 10);
++ break;
++ }
++ fclose(f);
++ }
++ }
++ return base;
++#endif
+ }
+
+ inline bool probeRequiredCPUFeatures() XRAY_NEVER_INSTRUMENT {
diff --git a/srcpkgs/llvm15/patches/libcxx-ppc.patch b/srcpkgs/llvm15/patches/libcxx-ppc.patch
new file mode 100644
index 000000000000..7a92f8004e1c
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxx-ppc.patch
@@ -0,0 +1,22 @@
+This ensures `is_iec559` is defined correctly under all long double ABIs,
+including musl and its 64-bit long double. Also, `__ppc__` or `__ppc64__`
+is not defined on gcc.
+
+--- a/libcxx/include/limits
++++ b/libcxx/include/limits
+@@ -426,8 +426,14 @@ protected:
+ _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type signaling_NaN() _NOEXCEPT {return __builtin_nansl("");}
+ _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type denorm_min() _NOEXCEPT {return __LDBL_DENORM_MIN__;}
+
+-#if (defined(__ppc__) || defined(__ppc64__))
++#if defined(__powerpc__) || defined(__powerpc64__)
++#if (__LDBL_MAX_EXP__ > __DBL_MAX_EXP__) || (__LDBL_MANT_DIG__ == __DBL_MANT_DIG__)
++ /* IEEE 754 quadruple or double precision */
++ static _LIBCPP_CONSTEXPR const bool is_iec559 = true;
++#else
++ /* 128-bit IBM double-double */
+ static _LIBCPP_CONSTEXPR const bool is_iec559 = false;
++#endif
+ #else
+ static _LIBCPP_CONSTEXPR const bool is_iec559 = true;
+ #endif
diff --git a/srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch b/srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch
new file mode 100644
index 000000000000..70292beb2fcd
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch
@@ -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()
diff --git a/srcpkgs/llvm15/patches/libcxxabi-dl.patch b/srcpkgs/llvm15/patches/libcxxabi-dl.patch
new file mode 100644
index 000000000000..3a15f9db8c98
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxxabi-dl.patch
@@ -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 @@
+ target_link_libraries(${target} PRIVATE m)
+ endif()
+
++ if (LIBCXX_HAS_C_LIB)
++ target_link_libraries(${target} PRIVATE dl)
++ endif()
++
+ if (LIBCXX_HAS_RT_LIB)
+ target_link_libraries(${target} PRIVATE rt)
+ endif()
diff --git a/srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip b/srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip
new file mode 100644
index 000000000000..74aa7576ecf9
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip
@@ -0,0 +1,63 @@
+This fixes build at least with gcc9 which does not define `__ppc__`.
+
+--- a/libunwind/include/__libunwind_config.h
++++ b/libunwind/include/__libunwind_config.h
+@@ -49,7 +49,7 @@
+ # define _LIBUNWIND_CONTEXT_SIZE 167
+ # define _LIBUNWIND_CURSOR_SIZE 179
+ # define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_PPC64
+-# elif defined(__ppc__)
++# elif defined(__powerpc__)
+ # define _LIBUNWIND_TARGET_PPC 1
+ # define _LIBUNWIND_CONTEXT_SIZE 117
+ # define _LIBUNWIND_CURSOR_SIZE 124
+--- a/libunwind/src/UnwindRegistersRestore.S
++++ b/libunwind/src/UnwindRegistersRestore.S
+@@ -392,7 +392,7 @@ Lnovec:
+ PPC64_LR(3)
+ bctr
+
+-#elif defined(__ppc__)
++#elif defined(__powerpc__)
+
+ DEFINE_LIBUNWIND_FUNCTION(_ZN9libunwind13Registers_ppc6jumptoEv)
+ //
+--- a/libunwind/src/UnwindRegistersSave.S
++++ b/libunwind/src/UnwindRegistersSave.S
+@@ -554,7 +554,7 @@ DEFINE_LIBUNWIND_FUNCTION(__unw_getcontext)
+ blr
+
+
+-#elif defined(__ppc__)
++#elif defined(__powerpc__)
+
+ //
+ // extern int unw_getcontext(unw_context_t* thread_state)
+--- a/libunwind/src/config.h
++++ b/libunwind/src/config.h
+@@ -95,12 +95,12 @@
+ #define _LIBUNWIND_BUILD_SJLJ_APIS
+ #endif
+
+-#if defined(__i386__) || defined(__x86_64__) || defined(__ppc__) || defined(__ppc64__) || defined(__powerpc64__)
++#if defined(__i386__) || defined(__x86_64__) || defined(__powerpc__) || defined(__powerpc64__)
+ #define _LIBUNWIND_SUPPORT_FRAME_APIS
+ #endif
+
+ #if defined(__i386__) || defined(__x86_64__) || \
+- defined(__ppc__) || defined(__ppc64__) || defined(__powerpc64__) || \
++ defined(__powerpc__) || defined(__powerpc64__) || \
+ (!defined(__APPLE__) && defined(__arm__)) || \
+ (defined(__arm64__) || defined(__aarch64__)) || \
+ defined(__mips__)
+--- a/libunwind/src/libunwind.cpp
++++ b/libunwind/src/libunwind.cpp
+@@ -42,7 +42,7 @@ _LIBUNWIND_HIDDEN int __unw_init_local(unw_cursor_t *cursor,
+ # define REGISTER_KIND Registers_x86_64
+ #elif defined(__powerpc64__)
+ # define REGISTER_KIND Registers_ppc64
+-#elif defined(__ppc__)
++#elif defined(__powerpc__)
+ # define REGISTER_KIND Registers_ppc
+ #elif defined(__aarch64__)
+ # define REGISTER_KIND Registers_arm64
diff --git a/srcpkgs/llvm15/patches/lldb-musl.patch b/srcpkgs/llvm15/patches/lldb-musl.patch
new file mode 100644
index 000000000000..026c5e1e61ba
--- /dev/null
+++ b/srcpkgs/llvm15/patches/lldb-musl.patch
@@ -0,0 +1,40 @@
+--- a/lldb/source/Plugins/Process/Linux/Procfs.h
++++ b/lldb/source/Plugins/Process/Linux/Procfs.h
+@@ -10,6 +10,7 @@
+ // sys/procfs.h on Android/Linux for all supported architectures.
+
+ #include <sys/ptrace.h>
++#include <asm/ptrace.h>
+
+ #include "lldb/lldb-types.h"
+
+@@ -17,23 +18,13 @@
+
+ #include <vector>
+
+-#ifdef __ANDROID__
+-#if defined(__arm64__) || defined(__aarch64__)
+-typedef unsigned long elf_greg_t;
+-typedef elf_greg_t
+- elf_gregset_t[(sizeof(struct user_pt_regs) / sizeof(elf_greg_t))];
+-typedef struct user_fpsimd_state elf_fpregset_t;
+-#ifndef NT_FPREGSET
+-#define NT_FPREGSET NT_PRFPREG
+-#endif // NT_FPREGSET
+-#elif defined(__mips__)
+-#ifndef NT_FPREGSET
+-#define NT_FPREGSET NT_PRFPREG
+-#endif // NT_FPREGSET
+-#endif
+-#else // __ANDROID__
++#if !defined(__GLIBC__) && defined(__powerpc__)
++#define pt_regs musl_pt_regs
++#include <sys/procfs.h>
++#undef pt_regs
++#else
+ #include <sys/procfs.h>
+-#endif // __ANDROID__
++#endif
+
+ namespace lldb_private {
+ namespace process_linux {
diff --git a/srcpkgs/llvm15/patches/llvm-001-musl.patch b/srcpkgs/llvm15/patches/llvm-001-musl.patch
new file mode 100644
index 000000000000..f2a3f8d62813
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-001-musl.patch
@@ -0,0 +1,57 @@
+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;
+diff --git a/lib/Support/Unix/DynamicLibrary.inc b/lib/Support/Unix/DynamicLibrary.inc
+index a2a37996..2f86c470 100644
+--- a/llvm/lib/Support/Unix/DynamicLibrary.inc
++++ b/llvm/lib/Support/Unix/DynamicLibrary.inc
+@@ -102,7 +102,7 @@ static void *DoSearch(const char* SymbolName) {
+
+ // This macro returns the address of a well-known, explicit symbol
+ #define EXPLICIT_SYMBOL(SYM) \
+- if (!strcmp(SymbolName, #SYM)) return &SYM
++ if (!strcmp(SymbolName, #SYM)) return (void *)&SYM
+
+ // Under glibc we have a weird situation. The stderr/out/in symbols are both
+ // macros and global variables because of standards requirements. So, we
+diff --git a/utils/unittest/googletest/src/gtest.cc b/utils/unittest/googletest/src/gtest.cc
+index d882ab2e..f1fb12d0 100644
+--- a/llvm/utils/unittest/googletest/src/gtest.cc
++++ b/llvm/utils/unittest/googletest/src/gtest.cc
+@@ -128,6 +128,7 @@
+
+ #if GTEST_CAN_STREAM_RESULTS_
+ # include <arpa/inet.h> // NOLINT
++# include <sys/socket.h> // NOLINT
+ # include <netdb.h> // NOLINT
+ # include <sys/socket.h> // NOLINT
+ # include <sys/types.h> // NOLINT
diff --git a/srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch b/srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch
new file mode 100644
index 000000000000..0071d964bd37
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch
@@ -0,0 +1,30 @@
+This patches LLVM to use ELFv2 on ppc64 unconditionally unless overridden. We
+need this because unlike most distros we use ELFv2 for both glibc and musl
+on big endian ppc64.
+
+diff --git a/lib/Target/PowerPC/PPCTargetMachine.cpp b/lib/Target/PowerPC/PPCTargetMachine.cpp
+index 0634833e..b7cbc2e7 100644
+--- a/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp
++++ b/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp
+@@ -222,9 +222,8 @@ static PPCTargetMachine::PPCABI computeTargetABI(const Triple &TT,
+
+ switch (TT.getArch()) {
+ case Triple::ppc64le:
+- return PPCTargetMachine::PPC_ABI_ELFv2;
+ case Triple::ppc64:
+- return PPCTargetMachine::PPC_ABI_ELFv1;
++ return PPCTargetMachine::PPC_ABI_ELFv2;
+ default:
+ return PPCTargetMachine::PPC_ABI_UNKNOWN;
+ }
+diff --git a/test/CodeGen/PowerPC/ppc64-elf-abi.ll b/test/CodeGen/PowerPC/ppc64-elf-abi.ll
+index 8b1cf6b5..296a2afa 100644
+--- a/llvm/test/CodeGen/PowerPC/ppc64-elf-abi.ll
++++ b/llvm/test/CodeGen/PowerPC/ppc64-elf-abi.ll
+@@ -1,4 +1,5 @@
+-; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv1
++; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv2
++; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-musl < %s | FileCheck %s -check-prefix=CHECK-ELFv2
+ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu -target-abi elfv1 < %s | FileCheck %s -check-prefix=CHECK-ELFv1
+ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu -target-abi elfv2 < %s | FileCheck %s -check-prefix=CHECK-ELFv2
+ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv2
diff --git a/srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch b/srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch
new file mode 100644
index 000000000000..b5d15974375d
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch
@@ -0,0 +1,11 @@
+--- a/llvm/lib/Target/PowerPC/PPCSubtarget.cpp
++++ b/llvm/lib/Target/PowerPC/PPCSubtarget.cpp
+@@ -165,7 +165,7 @@ void PPCSubtarget::initSubtargetFeatures(StringRef CPU, StringRef FS) {
+
+ if ((TargetTriple.isOSFreeBSD() && TargetTriple.getOSMajorVersion() >= 13) ||
+ TargetTriple.isOSNetBSD() || TargetTriple.isOSOpenBSD() ||
+- TargetTriple.isMusl())
++ isTargetLinux())
+ SecurePlt = true;
+
+ if (HasSPE && IsPPC64)
diff --git a/srcpkgs/llvm15/patches/llvm-004-override-opt.patch b/srcpkgs/llvm15/patches/llvm-004-override-opt.patch
new file mode 100644
index 000000000000..51d0e4b31b32
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-004-override-opt.patch
@@ -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)
diff --git a/srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch b/srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch
new file mode 100644
index 000000000000..d332687b9d92
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch
@@ -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);
diff --git a/srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch b/srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch
new file mode 100644
index 000000000000..a00abd216665
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch
@@ -0,0 +1,25 @@
+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__) || defined (__ppc__) || \
+- defined(_POWER) || defined(_ARCH_PPC))
++ defined(_POWER) || defined(_ARCH_PPC) || (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
diff --git a/srcpkgs/llvm15/template b/srcpkgs/llvm15/template
new file mode 100644
index 000000000000..7c08c890d8c3
--- /dev/null
+++ b/srcpkgs/llvm15/template
@@ -0,0 +1,434 @@
+# Template file for 'llvm15'
+pkgname=llvm15
+version=15.0.5
+revision=1
+build_wrksrc=llvm
+build_style=cmake
+configure_args="
+ -DCMAKE_BUILD_TYPE=Release -Wno-dev
+ -DENABLE_LINKER_BUILD_ID=YES
+ -DLLDB_USE_SYSTEM_SIX=YES
+ -DLIBCXX_CXX_ABI=libcxxabi
+ -DLIBCXX_ENABLE_STATIC_ABI_LIBRARY=YES
+ -DLIBCXXABI_USE_LLVM_UNWINDER=YES
+ -DLIBCXXABI_ENABLE_STATIC_UNWINDER=YES
+ -DLIBOMP_ENABLE_SHARED=YES
+ -DLIBOMP_INSTALL_ALIASES=NO
+ -DLLVM_INCLUDE_DOCS=YES
+ -DLLVM_BUILD_DOCS=YES
+ -DLLVM_ENABLE_SPHINX=YES
+ -DSPHINX_WARNINGS_AS_ERRORS=NO
+ -DLLVM_INSTALL_UTILS=YES
+ -DLLVM_BUILD_LLVM_DYLIB=YES
+ -DLLVM_LINK_LLVM_DYLIB=YES
+ -DLLVM_ENABLE_RTTI=YES
+ -DLLVM_ENABLE_FFI=YES
+ -DLLVM_BINUTILS_INCDIR=/usr/include"
+hostmakedepends="perl python3 zlib-devel libffi-devel swig python3-Sphinx
+ python3-recommonmark python3-sphinx-automodapi"
+makedepends="python3-devel zlib-devel elfutils-devel libffi-devel libedit-devel
+ libxml2-devel binutils-devel libatomic-devel"
+depends="libllvm15>=${version}_${revision}"
+short_desc="Low Level Virtual Machine"
+maintainer="Orphaned <orphan@voidlinux.org>"
+license="Apache-2.0"
+homepage="https://www.llvm.org"
+distfiles="https://github.com/llvm/llvm-project/releases/download/llvmorg-${version}/llvm-project-${version}.src.tar.xz"
+checksum=9c4278a6b8884eb7f4ae7dfe3c8e5445019824885e47cfdf1392563c47316fd6
+lib32disabled=yes
+python_version=3
+
+if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
+ configure_args+=" -DLIBCXX_HAS_MUSL_LIBC=YES"
+ makedepends+=" libexecinfo-devel"
+ depends+=" libexecinfo-devel"
+fi
+
+# "operand out of range" assembler failures
+case "$XBPS_TARGET_MACHINE" in
+ ppc64*) ;;
+ ppc*) configure_args+=" -DCLANG_ENABLE_CLANGD=OFF" ;;
+esac
+
+_enabled_projects="clang;clang-tools-extra;compiler-rt;libcxx;libcxxabi;libunwind;lld"
+
+_lldb_enable=yes
+_libomp_enable=no
+
+case "$XBPS_TARGET_MACHINE" in
+ ppc64le*) ;;
+ ppc*|i686*) _lldb_enable=no ;;
+esac
+
+case "$XBPS_TARGET_MACHINE" in
+ x86_64*|aarch64*|ppc64*) _libomp_enable=yes;;
+esac
+
+subpackages="clang-tools-extra"
+
+# must go before clang
+if [ "$_libomp_enable" = "yes" ]; then
+ _enabled_projects+=";openmp"
+ subpackages+=" libomp libomp-devel"
+ # because of cmake nonsense referencing libomptarget.so.*
+ depends+=" libomp>=${version}_${revision}"
+fi
+
+subpackages+=" clang clang-analyzer libclang libclang-cpp
+ llvm-libunwind llvm-libunwind-devel libcxx libcxx-devel
+ libcxxabi libcxxabi-devel libllvm15"
+
+if [ "$_lldb_enable" = "yes" ]; then
+ # XXX fails to cross compile due to python
+ _enabled_projects+=";lldb"
+ subpackages+=" lldb lldb-devel"
+fi
+
+subpackages+=" lld lld-devel"
+
+configure_args+=" -DLLVM_ENABLE_PROJECTS=${_enabled_projects}"
+
+post_patch() {
+ if [ "$_lldb_enable" = "yes" ]; then
+ if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
+ vsed -i 's|__ptrace_request|int|g' \
+ ${wrksrc}/lldb/source/Plugins/Process/Linux/NativeProcessLinux.cpp
+ fi
+ # disable docs for lldb as they fail to generate
+ vsed -i '/add_subdirectory(docs)/d' \
+ ${wrksrc}/lldb/CMakeLists.txt
+ fi
+
+ # update config.guess for better platform detection
+ cp $XBPS_COMMONDIR/environment/configure/automake/config.guess \
+ ${wrksrc}/llvm/cmake
+
+ # fix linker failures on some archs
+ vsed -i 's,check_library_exists(gcc_s .*,set(LIBCXXABI_HAS_GCC_S_LIB ON),' \
+ ${wrksrc}/libcxxabi/cmake/config-ix.cmake
+ vsed -i 's,check_library_exists(gcc .*,set(LIBCXXABI_HAS_GCC_LIB ON),' \
+ ${wrksrc}/libcxxabi/cmake/config-ix.cmake
+
+ # need libssp_nonshared on some musl platforms (because of nodefaultlibs)
+ case "$XBPS_TARGET_MACHINE" in
+ ppc64*) ;;
+ ppc*-musl|i686-musl|mips*-musl)
+ vsed -i 's,^# Setup flags.$,add_library_flags(ssp_nonshared),' \
+ ${wrksrc}/libunwind/src/CMakeLists.txt
+ vsed -i 's,^# Setup flags.$,add_library_flags(ssp_nonshared),' \
+ ${wrksrc}/libcxxabi/src/CMakeLists.txt
+ vsed -i 's,#ssp,,' ${wrksrc}/libcxx/CMakeLists.txt
+ ;;
+ esac
+
+ case "$XBPS_TARGET_MACHINE" in
+ x86_64-musl) # some sanitizer currently only on x86_64 stuff needs backtrace
+ vsed -i 's,# Set common link flags.,list(APPEND SANITIZER_COMMON_LINK_LIBS execinfo),' \
+ ${wrksrc}/compiler-rt/CMakeLists.txt
+ ;;
+ arm*-musl|i686-musl) # sanitizer code is broken since it duplicates some libc bits
+ vsed -i 's/set(COMPILER_RT_HAS_SANITIZER_COMMON TRUE)/set(COMPILER_RT_HAS_SANITIZER_COMMON FALSE)/' \
+ ${wrksrc}/compiler-rt/cmake/config-ix.cmake
+ ;;
+ esac
+}
+
+pre_configure() {
+ local triplet
+
+ # Vastly reduce size of debugging symbols:
+ CFLAGS=${CFLAGS/ -g/ -g1}
+ CXXFLAGS=${CXXFLAGS/ -g/ -g1}
+
+ # since gcc9, the build likes to blow up for ppc32 apparently because
+ # of clang being too large for a 24-bit relative call to the PLT, so
+ # optimize for size instead
+ case "$XBPS_TARGET_MACHINE" in
+ ppc64*) ;;
+ mips*-musl|ppc*) configure_args+=" -DVOID_CXX_OPT_FLAGS=-Os" ;;
+ esac
+
+ if [ "$CROSS_BUILD" ]; then
+ msg_normal "Building host tblgen\n"
+ mkdir -p build/HOST
+ cd build/HOST
+ CC="$BUILD_CC" CXX="$BUILD_CXX" CFLAGS="$BUILD_CFLAGS" \
+ CXXFLAGS="$BUILD_CXXFLAGS" LDFLAGS="$BUILD_LDFLAGS" \
+ cmake ../.. -DCMAKE_BUILD_TYPE=Release \
+ -DLLVM_ENABLE_PROJECTS=${_enabled_projects}
+ make ${makejobs} -C utils/TableGen
+ make ${makejobs} -C tools/clang/utils/TableGen
+ [ "$_lldb_enable" = "yes" ] && make ${makejobs} -C tools/lldb/utils/TableGen
+ configure_args+=" -DLLVM_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/llvm-tblgen"
+ configure_args+=" -DCLANG_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/clang-tblgen"
+ [ "$_lldb_enable" = "yes" ] && configure_args+=" -DLLDB_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/lldb-tblgen"
+ cd ../..
+ fi
+
+ case "$XBPS_TARGET_MACHINE" in
+ i686*) _arch="X86";;
+ x86_64*) _arch="X86";;
+ armv5*) _arch="Armv5te";;
+ armv6*) _arch="Armv6";;
+ armv7*) _arch="Armv7";;
+ aarch64*) _arch="AArch64";;
+ mips*) _arch="Mips";;
+ ppc*) _arch="PowerPC";;
+ riscv64*) _arch="RISCV64";;
+ esac
+
+ triplet=${XBPS_CROSS_TRIPLET:-$XBPS_TRIPLET}
+
+ configure_args+=" -DLLVM_TARGET_ARCH=${_arch}"
+ configure_args+=" -DLLVM_HOST_TRIPLE=${triplet}"
+ configure_args+=" -DLLVM_DEFAULT_TARGET_TRIPLE=${triplet}"
+}
+
+do_install() {
+ cd build
+ cmake -DCMAKE_INSTALL_PREFIX=${DESTDIR}/usr -P cmake_install.cmake
+
+ # Required for multilib.
+ if [ "$XBPS_TARGET_MACHINE" = "x86_64" ]; then
+ for _header in llvm-config; do
+ mv ${DESTDIR}/usr/include/llvm/Config/${_header}{,-64}.h
+ vinstall ${FILESDIR}/llvm-Config-${_header}.h 644 \
+ usr/include/llvm/Config ${_header}.h
+ done
+ fi
+
+ # Remove llvm-config-host in cross builds.
+ if [ "$CROSS_BUILD" ]; then
+ rm -f ${DESTDIR}/usr/bin/llvm-config-host
+ fi
+
+ # Install libcxxabi headers
+ vinstall ${wrksrc}/libcxxabi/include/__cxxabi_config.h 644 usr/include
+ vinstall ${wrksrc}/libcxxabi/include/cxxabi.h 644 usr/include
+
+ # Install libunwind headers
+ vinstall ${wrksrc}/libunwind/include/__libunwind_config.h 644 usr/include
+ vinstall ${wrksrc}/libunwind/include/libunwind.h 644 usr/include
+ vinstall ${wrksrc}/libunwind/include/unwind.h 644 usr/include
+ vinstall ${wrksrc}/libunwind/include/mach-o/compact_unwind_encoding.h \
+ 644 usr/include/mach-o
+}
+
+clang-analyzer_package() {
+ pycompile_dirs="usr/share/scan-view"
+ depends="clang-${version}_${revision} python3 perl"
+ short_desc+=" - A source code analysis framework"
+ homepage="https://clang-analyzer.llvm.org/"
+ pkg_install() {
+ vmove "usr/bin/scan-*"
+ vmove "usr/libexec/*analyzer"
+ vmove "usr/share/scan-*"
+ vmove usr/share/man/man1/scan-build.1
+ }
+}
+
+clang-tools-extra_package() {
+ lib32disabled=yes
+ depends="clang-${version}_${revision} python3"
+ short_desc+=" - Extra Clang tools"
+ homepage="https://clang.llvm.org/extra/"
+ pkg_install() {
+ vmove usr/bin/clang-apply-replacements
+ vmove usr/bin/clang-doc
+ vmove usr/bin/clang-include-fixer
+ vmove usr/bin/clang-query
+ vmove usr/bin/clang-rename
+ vmove usr/bin/clang-reorder-fields
+ vmove usr/bin/clang-tidy
+ vmove usr/bin/clangd
+ vmove usr/bin/diagtool
+ vmove usr/bin/find-all-symbols
+ vmove usr/bin/hmaptool
+ vmove usr/bin/modularize
+ vmove usr/bin/pp-trace
+ vmove usr/bin/sancov
+ vmove usr/include/clang-tidy
+ vmove "usr/lib/libclangApplyReplacements*"
+ vmove "usr/lib/libclangDoc*"
+ vmove "usr/lib/libclangIncludeFixer*"
+ vmove "usr/lib/libclangReorderFields*"
+ vmove "usr/lib/libclangQuery*"
+ vmove "usr/lib/libclangTidy*"
+ vmove "usr/share/clang/*include-fixer*"
+ vmove "usr/share/clang/*rename*"
+ vmove "usr/share/clang/*tidy*"
+ vmove usr/share/doc/LLVM/clang-tools
+ vmove usr/share/man/man1/diagtool.1
+ vmove usr/share/man/man1/extraclangtools.1
+ }
+}
+
+clang_package() {
+ lib32disabled=yes
+ depends="libstdc++-devel libgcc-devel binutils ${XBPS_TARGET_LIBC}-devel
+ libclang-${version}_${revision}"
+ short_desc+=" - C language family frontend"
+ homepage="https://clang.llvm.org/"
+ pkg_install() {
+ vmove "usr/bin/*clang*"
+ vmove usr/bin/c-index-test
+ vmove usr/include/clang
+ vmove usr/include/clang-c
+ vmove usr/lib/clang
+ vmove usr/lib/cmake/clang
+ vmove "usr/lib/libclang*.a"
+ vmove "usr/lib/libclang*.so"
+ vmove usr/share/clang
+ vmove usr/share/doc/LLVM/clang
+ vmove usr/share/man/man1/clang.1
+ }
+}
+
+libclang_package() {
+ short_desc+=" - C frontend runtime library"
+ pkg_install() {
+ vmove "usr/lib/libclang.so.*"
+ }
+}
+
+libclang-cpp_package() {
+ short_desc+=" - C frontend runtime library (C++ interface)"
+ pkg_install() {
+ vmove "usr/lib/libclang-cpp.so.*"
+ }
+}
+
+lld_package() {
+ lib32disabled=yes
+ short_desc+=" - linker"
+ homepage="https://lld.llvm.org"
+ pkg_install() {
+ vmove usr/bin/ld.lld*
+ vmove usr/bin/ld64.lld*
+ vmove usr/bin/lld*
+ vmove usr/bin/wasm-ld
+ vmove usr/share/doc/LLVM/lld
+ }
+}
+
+lld-devel_package() {
+ lib32disabled=yes
+ short_desc+=" - linker - development files"
+ homepage="https://lld.llvm.org"
+ depends="lld>=${version}_${revision}"
+ pkg_install() {
+ vmove usr/include/lld
+ vmove usr/lib/cmake/lld
+ vmove "usr/lib/liblld*a"
+ }
+}
+
+lldb_package() {
+ lib32disabled=yes
+ depends+=" python3-six"
+ short_desc+=" - LLDB debugger"
+ homepage="https://lldb.llvm.org/"
+ pkg_install() {
+ vmove usr/bin/*lldb*
+ vmove usr/lib/liblldb*so.*
+ vmove /usr/lib/python*
+ }
+}
+
+lldb-devel_package() {
+ lib32disabled=yes
+ depends="lldb>=${version}_${revision}"
+ short_desc+=" - LLDB debugger - development files"
+ pkg_install() {
+ vmove usr/include/lldb
+ vmove "usr/lib/liblldb*.so"
+ }
+}
+
+llvm-libunwind_package() {
+ short_desc+=" - libunwind"
+ pkg_install() {
+ vmove "usr/lib/${XBPS_TRIPLET}/libunwind.so.*"
+ }
+}
+
+llvm-libunwind-devel_package() {
+ short_desc+=" - libunwind - development files"
+ depends="llvm-libunwind>=${version}_${revision}"
+ conflicts="libunwind-devel>=0"
+ pkg_install() {
+ vmove usr/include/mach-o
+ vmove "usr/include/*unwind*"
+ vmove "usr/lib/${XBPS_TRIPLET}/libunwind.a"
+ vmove "usr/lib/${XBPS_TRIPLET}/libunwind.so"
+ vmove usr/share/doc/LLVM/libunwind
+ }
+}
+
+libcxxabi_package() {
+ short_desc+=" - low level support for libc++"
+ pkg_install() {
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++abi.so.*"
+ }
+}
+
+libcxxabi-devel_package() {
+ short_desc+=" - low level support for libc++ - development files"
+ depends="libcxxabi>=${version}_${revision}"
+ pkg_install() {
+ vmove "usr/include/*cxxabi*"
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++abi.so"
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++abi.a"
+ }
+}
+
+libcxx_package() {
+ short_desc+=" - C++ standard library"
+ pkg_install() {
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++.so.*"
+ }
+}
+
+libcxx-devel_package() {
+ short_desc+=" - C++ standard library - development files"
+ depends="libcxx>=${version}_${revision}"
+ pkg_install() {
+ vmove usr/include/c++
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++.so"
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++.a"
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++experimental.a"
+ vmove usr/share/doc/LLVM/libcxx
+ }
+}
+
+libomp_package() {
+ short_desc+=" - Clang OpenMP support library"
+ pkg_install() {
+ vmove usr/lib/libarcher.so
+ vmove usr/lib/libomp.so
+ vmove usr/lib/libompd.so
+ vmove "usr/lib/libomptarget.rtl.*.so"
+ vmove "usr/lib/libomp*.so.*"
+ }
+}
+
+libomp-devel_package() {
+ short_desc+=" - Clang OpenMP support library - development files"
+ depends="libomp>=${version}_${revision}"
+ pkg_install() {
+ vmove "usr/include/omp*.h"
+ vmove "usr/lib/clang/${version}/include/omp*.h"
+ vmove "usr/lib/libarcher*"
+ vmove "usr/lib/libomp*.so"
+ vmove usr/lib/cmake/openmp
+ vmove usr/share/doc/LLVM/openmp
+ vmove usr/share/man/man1/llvmopenmp.1
+ }
+}
+
+libllvm15_package() {
+ short_desc+=" - runtime library"
+ pkg_install() {
+ vmove "usr/lib/libLLVM-*.so*"
+ }
+}
diff --git a/srcpkgs/llvm15/update b/srcpkgs/llvm15/update
new file mode 100644
index 000000000000..e95cf26b3586
--- /dev/null
+++ b/srcpkgs/llvm15/update
@@ -0,0 +1,3 @@
+site="https://github.com/llvm/llvm-project/releases"
+pattern="llvmorg-\K(\d+.){2}\d+(-rc\d+)?"
+ignore="*-rc*"
^ permalink raw reply [flat|nested] 96+ messages in thread
* Re: [PR REVIEW] [WIP] LLVM 15
2022-11-28 15:30 [PR PATCH] [WIP] LLVM 15 tranzystorek-io
` (6 preceding siblings ...)
2022-12-05 8:17 ` tranzystorek-io
@ 2022-12-05 8:22 ` oreo639
2022-12-05 8:22 ` oreo639
` (86 subsequent siblings)
94 siblings, 0 replies; 96+ messages in thread
From: oreo639 @ 2022-12-05 8:22 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 215 bytes --]
New review comment by oreo639 on void-packages repository
https://github.com/void-linux/void-packages/pull/40821#discussion_r1039282833
Comment:
libexecinfo in LLVM is optional. Don't enable it. (it doesn't work)
^ permalink raw reply [flat|nested] 96+ messages in thread
* Re: [PR REVIEW] [WIP] LLVM 15
2022-11-28 15:30 [PR PATCH] [WIP] LLVM 15 tranzystorek-io
` (7 preceding siblings ...)
2022-12-05 8:22 ` [PR REVIEW] " oreo639
@ 2022-12-05 8:22 ` oreo639
2022-12-05 8:29 ` oreo639
` (85 subsequent siblings)
94 siblings, 0 replies; 96+ messages in thread
From: oreo639 @ 2022-12-05 8:22 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 264 bytes --]
New review comment by oreo639 on void-packages repository
https://github.com/void-linux/void-packages/pull/40821#discussion_r1039282833
Comment:
libexecinfo in LLVM is optional and isn't used if the headers don't exist. Don't enable it. (it doesn't work anyway)
^ permalink raw reply [flat|nested] 96+ messages in thread
* Re: [PR REVIEW] [WIP] LLVM 15
2022-11-28 15:30 [PR PATCH] [WIP] LLVM 15 tranzystorek-io
` (8 preceding siblings ...)
2022-12-05 8:22 ` oreo639
@ 2022-12-05 8:29 ` oreo639
2022-12-05 8:29 ` oreo639
` (84 subsequent siblings)
94 siblings, 0 replies; 96+ messages in thread
From: oreo639 @ 2022-12-05 8:29 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 243 bytes --]
New review comment by oreo639 on void-packages repository
https://github.com/void-linux/void-packages/pull/40821#discussion_r1039282833
Comment:
Don't enable libexecinfo, it doesn't work. LLVM can compile perfectly fine without libexecinfo.
^ permalink raw reply [flat|nested] 96+ messages in thread
* Re: [PR REVIEW] [WIP] LLVM 15
2022-11-28 15:30 [PR PATCH] [WIP] LLVM 15 tranzystorek-io
` (9 preceding siblings ...)
2022-12-05 8:29 ` oreo639
@ 2022-12-05 8:29 ` oreo639
2022-12-05 8:30 ` oreo639
` (83 subsequent siblings)
94 siblings, 0 replies; 96+ messages in thread
From: oreo639 @ 2022-12-05 8:29 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 283 bytes --]
New review comment by oreo639 on void-packages repository
https://github.com/void-linux/void-packages/pull/40821#discussion_r1039282833
Comment:
Don't enable libexecinfo, it doesn't work. LLVM can compile without libexecinfo (it checks during configure-time if the headers exist).
^ permalink raw reply [flat|nested] 96+ messages in thread
* Re: [PR REVIEW] [WIP] LLVM 15
2022-11-28 15:30 [PR PATCH] [WIP] LLVM 15 tranzystorek-io
` (10 preceding siblings ...)
2022-12-05 8:29 ` oreo639
@ 2022-12-05 8:30 ` oreo639
2022-12-05 8:39 ` oreo639
` (82 subsequent siblings)
94 siblings, 0 replies; 96+ messages in thread
From: oreo639 @ 2022-12-05 8:30 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 310 bytes --]
New review comment by oreo639 on void-packages repository
https://github.com/void-linux/void-packages/pull/40821#discussion_r1039282833
Comment:
Don't enable libexecinfo, it doesn't work and usually just segfaults. LLVM can compile without libexecinfo (it checks during configure-time if the headers exist).
^ permalink raw reply [flat|nested] 96+ messages in thread
* Re: [PR REVIEW] [WIP] LLVM 15
2022-11-28 15:30 [PR PATCH] [WIP] LLVM 15 tranzystorek-io
` (11 preceding siblings ...)
2022-12-05 8:30 ` oreo639
@ 2022-12-05 8:39 ` oreo639
2022-12-05 9:28 ` oreo639
` (81 subsequent siblings)
94 siblings, 0 replies; 96+ messages in thread
From: oreo639 @ 2022-12-05 8:39 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 294 bytes --]
New review comment by oreo639 on void-packages repository
https://github.com/void-linux/void-packages/pull/40821#discussion_r1039282833
Comment:
Don't enable libexecinfo, it doesn't work and usually just segfaults.
LLVM can compile without libexecinfo (it just uses its own implementation).
^ permalink raw reply [flat|nested] 96+ messages in thread
* Re: [PR REVIEW] [WIP] LLVM 15
2022-11-28 15:30 [PR PATCH] [WIP] LLVM 15 tranzystorek-io
` (12 preceding siblings ...)
2022-12-05 8:39 ` oreo639
@ 2022-12-05 9:28 ` oreo639
2022-12-05 9:55 ` oreo639
` (80 subsequent siblings)
94 siblings, 0 replies; 96+ messages in thread
From: oreo639 @ 2022-12-05 9:28 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 260 bytes --]
New review comment by oreo639 on void-packages repository
https://github.com/void-linux/void-packages/pull/40821#discussion_r1039347984
Comment:
Also remove this (same reason as above, libexecinfo doesn't work, llvm has its own implementation as a fallback)
^ permalink raw reply [flat|nested] 96+ messages in thread
* Re: [PR REVIEW] [WIP] LLVM 15
2022-11-28 15:30 [PR PATCH] [WIP] LLVM 15 tranzystorek-io
` (13 preceding siblings ...)
2022-12-05 9:28 ` oreo639
@ 2022-12-05 9:55 ` oreo639
2022-12-05 9:55 ` oreo639
` (79 subsequent siblings)
94 siblings, 0 replies; 96+ messages in thread
From: oreo639 @ 2022-12-05 9:55 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 260 bytes --]
New review comment by oreo639 on void-packages repository
https://github.com/void-linux/void-packages/pull/40821#discussion_r1039347984
Comment:
Also remove this (same reason as above, libexecinfo doesn't work, llvm has its own implementation as a fallback)
^ permalink raw reply [flat|nested] 96+ messages in thread
* Re: [PR REVIEW] [WIP] LLVM 15
2022-11-28 15:30 [PR PATCH] [WIP] LLVM 15 tranzystorek-io
` (14 preceding siblings ...)
2022-12-05 9:55 ` oreo639
@ 2022-12-05 9:55 ` oreo639
2022-12-06 10:11 ` [PR PATCH] [Updated] " tranzystorek-io
` (78 subsequent siblings)
94 siblings, 0 replies; 96+ messages in thread
From: oreo639 @ 2022-12-05 9:55 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 294 bytes --]
New review comment by oreo639 on void-packages repository
https://github.com/void-linux/void-packages/pull/40821#discussion_r1039282833
Comment:
Don't enable libexecinfo, it doesn't work and usually just segfaults.
LLVM can compile without libexecinfo (it just uses its own implementation).
^ permalink raw reply [flat|nested] 96+ messages in thread
* Re: [PR PATCH] [Updated] [WIP] LLVM 15
2022-11-28 15:30 [PR PATCH] [WIP] LLVM 15 tranzystorek-io
` (15 preceding siblings ...)
2022-12-05 9:55 ` oreo639
@ 2022-12-06 10:11 ` tranzystorek-io
2022-12-07 5:04 ` Vaelatern
` (77 subsequent siblings)
94 siblings, 0 replies; 96+ messages in thread
From: tranzystorek-io @ 2022-12-06 10:11 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 502 bytes --]
There is an updated pull request by tranzystorek-io against master on the void-packages repository
https://github.com/tranzystorek-io/void-packages llvm15
https://github.com/void-linux/void-packages/pull/40821
[WIP] LLVM 15
[ci skip]
TODO:
- [ ] Adjust patches marked as `.patch.skip`
- [ ] Make libomp a shlib (change so file name and install a symlink)
- [ ] Avoid creating triplet dirs under /usr/
A patch file from https://github.com/void-linux/void-packages/pull/40821.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-llvm15-40821.patch --]
[-- Type: text/x-diff, Size: 183423 bytes --]
From 023ff7c6baa32294095d7ae7b21421424bfd9021 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sat, 5 Nov 2022 11:33:11 -0700
Subject: [PATCH 01/38] binutils: update to 2.39.
---
...e3f3bd6d460491f8c8d032a7fea88d5ec8ff.patch | 60 -----------------
.../fix-libcollector-without-java.patch | 53 +++++++++++++++
.../patches/ppc64-revert-gnu-attributes.patch | 66 +++++--------------
srcpkgs/binutils/template | 25 ++++---
4 files changed, 87 insertions(+), 117 deletions(-)
delete mode 100644 srcpkgs/binutils/patches/1767e3f3bd6d460491f8c8d032a7fea88d5ec8ff.patch
create mode 100644 srcpkgs/binutils/patches/fix-libcollector-without-java.patch
diff --git a/srcpkgs/binutils/patches/1767e3f3bd6d460491f8c8d032a7fea88d5ec8ff.patch b/srcpkgs/binutils/patches/1767e3f3bd6d460491f8c8d032a7fea88d5ec8ff.patch
deleted file mode 100644
index a55432d83cff..000000000000
--- a/srcpkgs/binutils/patches/1767e3f3bd6d460491f8c8d032a7fea88d5ec8ff.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-From 1767e3f3bd6d460491f8c8d032a7fea88d5ec8ff Mon Sep 17 00:00:00 2001
-From: "H.J. Lu" <hjl.tools@gmail.com>
-Date: Mon, 16 Nov 2020 06:37:53 -0800
-Subject: [PATCH] elf: Set rel_from_abs to 1 for __ehdr_start
-
-bfdlink.h has
-
- /* Symbol will be converted from absolute to section-relative. Set for
- symbols defined by a script from "dot" (also SEGMENT_START or ORIGIN)
- outside of an output section statement. */
- unsigned int rel_from_abs : 1;
-
-linker.c has
-
-.{* Return TRUE if the symbol described by a linker hash entry H
-. is going to be absolute. Linker-script defined symbols can be
-. converted from absolute to section-relative ones late in the
-. link. Use this macro to correctly determine whether the symbol
-. will actually end up absolute in output. *}
-.#define bfd_is_abs_symbol(H) \
-. (((H)->type == bfd_link_hash_defined \
-. || (H)->type == bfd_link_hash_defweak) \
-. && bfd_is_abs_section ((H)->u.def.section) \
-. && !(H)->rel_from_abs)
-.
-
-Set rel_from_abs to 1 for __ehdr_start which will be converted from
-absolute to section-relative in assign_file_positions_for_load_sections.
-
- PR ld/26869
- * ldelf.c (ldelf_before_allocation): Set rel_from_abs to 1 for
- __ehdr_start.
- * testsuite/ld-i386/i386.exp: Run pr26869.
- * testsuite/ld-i386/pr26869.d: New file.
- * testsuite/ld-i386/pr26869.s: Likewise.
-
-(cherry picked from commit cbd5b99cce073273f668b154d4514e8e7e7ccc51)
----
- ld/ChangeLog | 9 +++++++++
- ld/ldelf.c | 2 ++
- ld/testsuite/ld-i386/i386.exp | 1 +
- ld/testsuite/ld-i386/pr26869.d | 14 ++++++++++++++
- ld/testsuite/ld-i386/pr26869.s | 3 +++
- 5 files changed, 29 insertions(+)
- create mode 100644 ld/testsuite/ld-i386/pr26869.d
- create mode 100644 ld/testsuite/ld-i386/pr26869.s
-
-diff --git a/ld/ldelf.c b/ld/ldelf.c
-index bada3ade2d7..831d032fe56 100644
---- a/ld/ldelf.c
-+++ b/ld/ldelf.c
-@@ -1589,6 +1589,8 @@ ldelf_before_allocation (char *audit, char *depaudit,
- (char *) &ehdr_start->u + sizeof ehdr_start->u.def.next,
- sizeof ehdr_start_save_u);
- ehdr_start->type = bfd_link_hash_defined;
-+ /* It will be converted to section-relative later. */
-+ ehdr_start->rel_from_abs = 1;
- ehdr_start->u.def.section = bfd_abs_section_ptr;
- ehdr_start->u.def.value = 0;
- }
diff --git a/srcpkgs/binutils/patches/fix-libcollector-without-java.patch b/srcpkgs/binutils/patches/fix-libcollector-without-java.patch
new file mode 100644
index 000000000000..54384875f358
--- /dev/null
+++ b/srcpkgs/binutils/patches/fix-libcollector-without-java.patch
@@ -0,0 +1,53 @@
+From 49ddd814ac1071af7c4f45d5f8398b91862f2c7f Mon Sep 17 00:00:00 2001
+From: Vladimir Mezentsev <vladimir.mezentsev@oracle.com>
+Date: Wed, 17 Aug 2022 19:55:23 -0700
+Subject: [PATCH] gprofng: fix bug 29479 Collection fails when built without
+ java support
+
+gprofng/ChangeLog
+2022-08-17 Vladimir Mezentsev <vladimir.mezentsev@oracle.com>
+
+ PR gprofng/29479
+ * libcollector/collector.c: Add #if defined(GPROFNG_JAVA_PROFILING) for
+ java specific code.
+ * libcollector/unwind.c: Likewise.
+---
+ gprofng/libcollector/collector.c | 2 ++
+ gprofng/libcollector/unwind.c | 2 ++
+ 2 files changed, 4 insertions(+)
+
+diff --git a/gprofng/libcollector/collector.c b/gprofng/libcollector/collector.c
+index 93c9d3330de5..ceff2c1caccb 100644
+--- a/gprofng/libcollector/collector.c
++++ b/gprofng/libcollector/collector.c
+@@ -913,8 +913,10 @@ __collector_open_experiment (const char *exp, const char *params, sp_origin_t or
+ __collector_ext_unwind_key_init (1, NULL);
+
+ /* start java attach if suitable */
++#if defined(GPROFNG_JAVA_PROFILING)
+ if (exp_origin == SP_ORIGIN_DBX_ATTACH)
+ __collector_jprofile_start_attach ();
++#endif
+ start_sec_time = CALL_UTIL (time)(NULL);
+ __collector_start_time = collector_interface.getHiResTime ();
+ TprintfT (DBG_LT0, "\t__collector_open_experiment; resetting start_time\n");
+diff --git a/gprofng/libcollector/unwind.c b/gprofng/libcollector/unwind.c
+index 119243788020..f8e11823c81e 100644
+--- a/gprofng/libcollector/unwind.c
++++ b/gprofng/libcollector/unwind.c
+@@ -557,6 +557,7 @@ __collector_get_frame_info (hrtime_t ts, int mode, void *arg)
+ int size = max_frame_size;
+
+ #define MIN(a,b) ((a)<(b)?(a):(b))
++#if defined(GPROFNG_JAVA_PROFILING)
+ /* get Java info */
+ if (__collector_java_mode && __collector_java_asyncgetcalltrace_loaded && context && !pseudo_context)
+ {
+@@ -569,6 +570,7 @@ __collector_get_frame_info (hrtime_t ts, int mode, void *arg)
+ size -= sz;
+ }
+ }
++#endif
+
+ /* get native stack */
+ if (context)
diff --git a/srcpkgs/binutils/patches/ppc64-revert-gnu-attributes.patch b/srcpkgs/binutils/patches/ppc64-revert-gnu-attributes.patch
index 5de937f4fcce..1c208dd8955c 100644
--- a/srcpkgs/binutils/patches/ppc64-revert-gnu-attributes.patch
+++ b/srcpkgs/binutils/patches/ppc64-revert-gnu-attributes.patch
@@ -1,39 +1,24 @@
-From b1faf99f3e546df2cd302bb1ad36a2078224fe8b Mon Sep 17 00:00:00 2001
+From bbf05b742fde518fb97c789b043fe0d3aaf549f0 Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@dereferenced.org>
-Date: Fri, 30 Oct 2020 16:59:48 -0600
+Date: Tue, 21 Sep 2021 14:53:13 +0000
Subject: [PATCH] Revert "PR25882, .gnu.attributes are not checked for shared
libraries"
+This revert is needed to avoid wrongly tagging objects with the incompatible
+IBM long double ABI, which is not supported by musl and will result in
+linking errors if used.
+
This reverts commit a8acd6eeb6dc2cc5460ece90f90ebe36b56b20ba.
---
- bfd/ChangeLog | 6 ------
- bfd/elf32-tic6x.c | 3 ---
- ld/ChangeLog | 6 ------
- ld/ldlang.c | 9 ++++-----
- 4 files changed, 4 insertions(+), 20 deletions(-)
+ bfd/elf32-tic6x.c | 3 ---
+ ld/ldlang.c | 10 ++++------
+ 2 files changed, 4 insertions(+), 9 deletions(-)
-diff --git a/bfd/ChangeLog b/bfd/ChangeLog
-index 9fac12538a..b5461494e8 100644
---- a/bfd/ChangeLog
-+++ b/bfd/ChangeLog
-@@ -1422,12 +1422,6 @@
- accessing root.u.def of symbols. Also check root.u.def.section
- is non-NULL. Reverse tests so as to make the logic positive.
-
--2020-05-01 Alan Modra <amodra@gmail.com>
--
-- PR 25882
-- * elf32-tic6x.c (elf32_tic6x_merge_attributes): Don't transfer
-- Tag_ABI_PIC or Tag_ABI_PID from dynamic objects to the output.
--
- 2020-05-01 Alan Modra <amodra@gmail.com>
-
- PR 25882
diff --git a/bfd/elf32-tic6x.c b/bfd/elf32-tic6x.c
-index b8b916bfd3..91bb6a10b1 100644
+index 5754f3cb860..3ad1d612749 100644
--- a/bfd/elf32-tic6x.c
+++ b/bfd/elf32-tic6x.c
-@@ -3748,9 +3748,6 @@ elf32_tic6x_merge_attributes (bfd *ibfd, struct bfd_link_info *info)
+@@ -3735,9 +3735,6 @@ elf32_tic6x_merge_attributes (bfd *ibfd, struct bfd_link_info *info)
case Tag_ABI_PIC:
case Tag_ABI_PID:
@@ -43,36 +28,20 @@ index b8b916bfd3..91bb6a10b1 100644
if (out_attr[i].i > in_attr[i].i)
out_attr[i].i = in_attr[i].i;
break;
-diff --git a/ld/ChangeLog b/ld/ChangeLog
-index 4eec7d2977..b93452f70c 100644
---- a/ld/ChangeLog
-+++ b/ld/ChangeLog
-@@ -1319,12 +1319,6 @@
- * testsuite/ld-aarch64/farcall-group.d: New test driver.
- * testsuite/ld-aarch64/aarch64-elf.exp: Run the new test.
-
--2020-05-01 Alan Modra <amodra@gmail.com>
--
-- PR 25882
-- * ldlang.c (lang_check): Call bfd_merge_private_bfd_data for
-- shared libraries.
--
- 2020-05-01 Alan Modra <amodra@gmail.com>
-
- * po/BLD-POTFILES.in: Regenerate.
diff --git a/ld/ldlang.c b/ld/ldlang.c
-index 9977195074..173d8ec349 100644
+index 37b64c89ee1..f13beaef9d9 100644
--- a/ld/ldlang.c
+++ b/ld/ldlang.c
-@@ -6972,12 +6972,11 @@ lang_check (void)
+@@ -7071,13 +7071,11 @@ lang_check (void)
bfd_printable_name (input_bfd), input_bfd,
bfd_printable_name (link_info.output_bfd));
}
-
- /* If the input bfd has no contents, it shouldn't set the
- private data of the output bfd. */
-- else if ((input_bfd->flags & DYNAMIC) != 0
-- || bfd_count_sections (input_bfd) != 0)
+- else if (!file->flags.just_syms
+- && ((input_bfd->flags & DYNAMIC) != 0
+- || bfd_count_sections (input_bfd) != 0))
+ else if (bfd_count_sections (input_bfd))
{
+ /* If the input bfd has no contents, it shouldn't set the
@@ -82,5 +51,4 @@ index 9977195074..173d8ec349 100644
/* If we aren't supposed to warn about mismatched input
--
-2.29.2
-
+2.33.0
diff --git a/srcpkgs/binutils/template b/srcpkgs/binutils/template
index 6270f8618c87..c355a5fc8016 100644
--- a/srcpkgs/binutils/template
+++ b/srcpkgs/binutils/template
@@ -1,19 +1,20 @@
# Template file for 'binutils'
pkgname=binutils
-version=2.35.1
-revision=4
+version=2.39
+revision=1
bootstrap=yes
+hostmakedepends="pkgconf"
makedepends="zlib-devel"
short_desc="GNU binary utilities"
maintainer="Enno Boland <gottox@voidlinux.org>"
license="GPL-3.0-or-later"
homepage="http://www.gnu.org/software/binutils/"
distfiles="${GNU_SITE}/$pkgname/$pkgname-$version.tar.xz"
-checksum=3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
+checksum=645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
subpackages="binutils-doc"
if [ "$CHROOT_READY" ]; then
- hostmakedepends="flex perl texinfo"
+ hostmakedepends+=" flex perl texinfo"
makedepends+=" elfutils-devel"
checkdepends="bc"
depends="binutils-doc"
@@ -35,15 +36,21 @@ do_configure() {
local conf
if [ "$CHROOT_READY" ]; then
- conf+=" --with-debuginfod"
+ conf+=" --with-debuginfod --enable-shared"
else
- conf+=" --without-debuginfod --disable-install-libbfd"
+ conf+=" --without-debuginfod --disable-shared --disable-install-libbfd"
fi
if [ "$CROSS_BUILD" ]; then
# we don't want --with-sysroot=${XBPS_CROSS_BASE} like gnu-configure
conf+=" --host=${XBPS_CROSS_TRIPLET} --with-build-sysroot=${XBPS_CROSS_BASE}"
fi
+ # gprofng currently only supports x86 and aarch64 glibc.
+ case "$XBPS_TARGET_MACHINE" in
+ x86_64|i386|aarch64) conf+=" --enable-gprofng" ;;
+ *) conf+=" --disable-gprofng" ;;
+ esac
+
case "$XBPS_TARGET_MACHINE" in
ppc*)
conf+=" --enable-secureplt"
@@ -76,13 +83,14 @@ do_configure() {
--libdir=/usr/lib \
--mandir=/usr/share/man \
--infodir=/usr/share/info \
+ --sysconfdir=/etc \
--disable-werror \
- --disable-shared \
--disable-nls \
--enable-threads \
--enable-plugins \
--enable-relro \
--enable-gold \
+ --enable-new-dtags \
--enable-deterministic-archives \
--enable-64-bit-bfd \
--enable-ld=default \
@@ -142,7 +150,8 @@ binutils-devel_package() {
pkg_install() {
vmove usr/include
vmove "usr/lib/*.a"
- vmove "usr/lib/*.so"
+ vmove "usr/lib/libbfd.so"
+ vmove "usr/lib/libopcodes.so"
}
}
From a3a9127f29ca775d5e8cfab5ee07092a41327fb3 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sat, 5 Nov 2022 11:33:11 -0700
Subject: [PATCH 02/38] gdb: resolve conflict with binutils 2.39
---
srcpkgs/gdb/template | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/gdb/template b/srcpkgs/gdb/template
index 9c5f17ffc519..b666348fea19 100644
--- a/srcpkgs/gdb/template
+++ b/srcpkgs/gdb/template
@@ -1,7 +1,7 @@
# Template file for 'gdb'
pkgname=gdb
version=12.1
-revision=2
+revision=3
build_style=gnu-configure
pycompile_dirs="/usr/share/gdb/python"
configure_args="--disable-werror --disable-nls --with-system-readline
@@ -48,7 +48,8 @@ vopt_conflict debuginfod static
post_install() {
# resolve conflicts with binutils
- rm -r ${DESTDIR}/usr/{include,lib,share/info/bfd.info*}
+ rm -rf ${DESTDIR}/usr/{include,lib}
+ rm -rf ${DESTDIR}/usr/share/info/{bfd,ctf-spec}.info*
}
gdb-common_package() {
From 28c6739b1887608bdf582fb06f573f3137928cb0 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sat, 5 Nov 2022 11:33:11 -0700
Subject: [PATCH 03/38] gcc: update to 12.2.0.
---
common/shlibs | 10 +--
srcpkgs/gcc/files/gccgo-musl.patch | 71 +++------------
srcpkgs/gcc/files/libgnarl-musl.patch | 18 ++--
srcpkgs/gcc/files/libssp-musl.patch | 10 +--
.../gcc/patches/force-override-clocale.patch | 21 +++++
srcpkgs/gcc/patches/libffi_gnulinux.patch | 11 ---
.../gcc/patches/libgcc-ibm128-no-tag.patch | 10 ++-
srcpkgs/gcc/patches/mips-sgidefs_h.patch | 2 +-
srcpkgs/gcc/template | 87 +++++++++----------
9 files changed, 101 insertions(+), 139 deletions(-)
create mode 100644 srcpkgs/gcc/patches/force-override-clocale.patch
delete mode 100644 srcpkgs/gcc/patches/libffi_gnulinux.patch
diff --git a/common/shlibs b/common/shlibs
index 0814612ced32..3ee7969839ad 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -60,7 +60,7 @@ libcc1plugin.so.0 gcc-6.2.1_1
libitm.so.1 libitm-4.7.3_1
liblto_plugin.so.0 gcc-4.7.3_1
libgcc_s.so.1 libgcc-4.4.0_1
-libgo.so.16 libgo-10.2.0_1
+libgo.so.21 libgo-12.2.0_1
libgccjit.so.0 libgccjit-10.2.1pre1_1
libperl.so.5.36 perl-5.36.0_1
libgmp.so.10 gmp-5.0.1_1
@@ -858,8 +858,8 @@ libgdkmm-2.4.so.1 gtkmm2-2.24.0_1
libgtkmm-2.4.so.1 gtkmm2-2.24.0_1
libquadmath.so.0 libquadmath-4.4.0_1
libgfortran.so.5 libgfortran-8.2.0_1
-libgnarl-10.so libada-10.2.0_1
-libgnat-10.so libada-10.2.0_1
+libgnarl-12.so libada-12.2.0_1
+libgnat-12.so libada-12.2.0_1
libwebp.so.7 libwebp-0.6.0_1
libwebpmux.so.3 libwebp-0.6.0_1
libwebpdemux.so.2 libwebp-0.5.0_1
@@ -1711,8 +1711,8 @@ libextractor.so.3 libextractor-1.1_1
libextractor_common.so.1 libextractor-1.1_1
libpano13.so.3 libpano13-2.9.19_1
libubsan.so.1 libsanitizer-8.2.0_1
-libtsan.so.0 libsanitizer-6.3.0_1
-libasan.so.6 libsanitizer-10.2.0_1
+libtsan.so.2 libsanitizer-12.2.0_1
+libasan.so.8 libsanitizer-12.2.0_1
liblsan.so.0 libsanitizer-6.3.0_1
libvtv.so.0 libvtv-6.3.0_1
libatomic.so.1 libatomic-4.9.0_1
diff --git a/srcpkgs/gcc/files/gccgo-musl.patch b/srcpkgs/gcc/files/gccgo-musl.patch
index 9762739615af..12ec68dd8aa3 100644
--- a/srcpkgs/gcc/files/gccgo-musl.patch
+++ b/srcpkgs/gcc/files/gccgo-musl.patch
@@ -53,17 +53,6 @@ URL: https://code.foxkit.us/adelie/packages/tree/master/system/gcc
p := sysMmap(addr, n, prot, flags, fd, off)
if uintptr(p) == _MAP_FAILED {
return nil, errno()
---- a/libgo/go/runtime/signal_gccgo.go
-+++ b/libgo/go/runtime/signal_gccgo.go
-@@ -111,7 +111,7 @@ func getsig(i uint32) uintptr {
- if sigaction(i, nil, &sa) < 0 {
- // On GNU/Linux glibc rejects attempts to call
- // sigaction with signal 32 (SIGCANCEL) or 33 (SIGSETXID).
-- if GOOS == "linux" && (i == 32 || i == 33) {
-+ if GOOS == "linux" && (i == 32 || i == 33 || i == 34) {
- return _SIG_DFL
- }
- throw("sigaction read failure")
--- a/libgo/go/syscall/errstr.go
+++ b/libgo/go/syscall/errstr.go
@@ -5,7 +5,6 @@
@@ -140,55 +129,6 @@ URL: https://code.foxkit.us/adelie/packages/tree/master/system/gcc
plwoff = &lwoff
}
n, err = splice(rfd, plroff, wfd, plwoff, len, flags)
---- a/libgo/mksigtab.sh
-+++ b/libgo/mksigtab.sh
-@@ -82,7 +82,7 @@ checksig _SIGPWR '{_SigNotify, "SIGPWR: power failure restart"}'
- checksig _SIGEMT '{_SigThrow, "SIGEMT: emulate instruction executed"}'
- checksig _SIGINFO '{_SigNotify, "SIGINFO: status request from keyboard"}'
- checksig _SIGTHR '{_SigNotify, "SIGTHR: reserved"}'
--checksig _SIGPOLL '{_SigNotify, "SIGPOLL: pollable event occurred"}'
-+#checksig _SIGPOLL '{_SigNotify, "SIGPOLL: pollable event occurred"}'
- checksig _SIGWAITING '{_SigNotify, "SIGWAITING: reserved signal no longer used by"}'
- checksig _SIGLWP '{_SigNotify, "SIGLWP: reserved signal no longer used by"}'
- checksig _SIGFREEZE '{_SigNotify, "SIGFREEZE: special signal used by CPR"}'
-@@ -95,10 +95,12 @@ checksig _SIGLOST ' {_SigNotify, "SIGLOST: resource lost (Sun); server died (G
-
- # Special handling of signals 32 and 33 on GNU/Linux systems,
- # because they are special to glibc.
-+# Signal 34 is additionally special to Linux systems with musl.
- if test "${GOOS}" = "linux"; then
-- SIGLIST=$SIGLIST"_32__33_"
-+ SIGLIST=$SIGLIST"_32__33__34_"
- echo ' 32: {_SigSetStack + _SigUnblock, "signal 32"}, /* SIGCANCEL; see issue 6997 */'
- echo ' 33: {_SigSetStack + _SigUnblock, "signal 33"}, /* SIGSETXID; see issues 3871, 9400, 12498 */'
-+ echo ' 34: {_SigSetStack + _SigUnblock, "signal 34"}, /* see issue 30062 */'
- fi
-
- if test "${GOOS}" = "aix"; then
---- a/libgo/runtime/go-signal.c 2020-07-23 08:35:19.004402840 +0200
-+++ b/libgo/runtime/go-signal.c 2020-08-09 21:35:54.352886232 +0200
-@@ -224,7 +224,11 @@
- #elif defined(__alpha__) && defined(__linux__)
- ret.sigpc = ((ucontext_t*)(context))->uc_mcontext.sc_pc;
- #elif defined(__PPC__) && defined(__linux__)
-- ret.sigpc = ((ucontext_t*)(context))->uc_mcontext.regs->nip;
-+ #ifdef __PPC64__
-+ ret.sigpc = ((ucontext_t*)(context))->uc_mcontext.gp_regs[32];
-+ #else
-+ ret.sigpc = ((ucontext_t*)(context))->uc_mcontext.gregs[32];
-+ #endif
- #elif defined(__PPC__) && defined(_AIX)
- ret.sigpc = ((ucontext_t*)(context))->uc_mcontext.jmp_context.iar;
- #elif defined(__aarch64__) && defined(__linux__)
-@@ -333,7 +337,7 @@
- runtime_printf("sp %X\n", m->sc_regs[30]);
- runtime_printf("pc %X\n", m->sc_pc);
- }
--#elif defined(__PPC__) && defined(__LITTLE_ENDIAN__) && defined(__linux__)
-+#elif defined(__PPC__) && defined(__LITTLE_ENDIAN__) && defined(__linux__) && defined(__GLIBC__)
- {
- mcontext_t *m = &((ucontext_t*)(context))->uc_mcontext;
- int i;
--- a/libgo/runtime/runtime.h
+++ b/libgo/runtime/runtime.h
@@ -500,10 +500,13 @@ int __go_setcontext(__go_context_t*);
@@ -220,3 +160,14 @@ URL: https://code.foxkit.us/adelie/packages/tree/master/system/gcc
#if defined(HAVE_SYS_UTSNAME_H)
#include <sys/utsname.h>
#endif
+--- a/libgo/go/runtime/os_linux.go
++++ b/libgo/go/runtime/os_linux.go
+@@ -365,7 +365,7 @@ func setThreadCPUProfiler(hz int32) {
+ var sevp _sigevent
+ sevp.sigev_notify = _SIGEV_THREAD_ID
+ sevp.sigev_signo = _SIGPROF
+- *((*int32)(unsafe.Pointer(&sevp._sigev_un))) = int32(mp.procid)
++ *((*int32)(unsafe.Pointer(&sevp.__sev_fields))) = int32(mp.procid)
+ ret := timer_create(_CLOCK_THREAD_CPUTIME_ID, &sevp, &timerid)
+ if ret != 0 {
+ // If we cannot create a timer for this M, leave profileTimerValid false
diff --git a/srcpkgs/gcc/files/libgnarl-musl.patch b/srcpkgs/gcc/files/libgnarl-musl.patch
index 99a734c42c90..91c95949e0e9 100644
--- a/srcpkgs/gcc/files/libgnarl-musl.patch
+++ b/srcpkgs/gcc/files/libgnarl-musl.patch
@@ -5,7 +5,7 @@ Reason: Patch libgnarl to not use function missing from musl.
diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-osinte__linux.ads gcc-8.2.0-new/gcc/ada/libgnarl/s-osinte__linux.ads
--- a/gcc/ada/libgnarl/s-osinte__linux.ads 2018-01-11 00:55:25.000000000 -0800
+++ b/gcc/ada/libgnarl/s-osinte__linux.ads 2018-11-01 16:16:23.372452951 -0700
-@@ -394,12 +394,6 @@ package System.OS_Interface is
+@@ -403,12 +403,6 @@ package System.OS_Interface is
PTHREAD_RWLOCK_PREFER_WRITER_NP : constant := 1;
PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP : constant := 2;
@@ -18,7 +18,7 @@ diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-osinte__linux.ads gcc-8.2.0-new/gcc/ada/l
function pthread_rwlock_init
(mutex : access pthread_rwlock_t;
attr : access pthread_rwlockattr_t) return int;
-@@ -464,11 +458,6 @@ package System.OS_Interface is
+@@ -470,11 +464,6 @@ package System.OS_Interface is
protocol : int) return int;
pragma Import (C, pthread_mutexattr_setprotocol);
@@ -33,7 +33,7 @@ diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-osinte__linux.ads gcc-8.2.0-new/gcc/ada/l
diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-taprop__linux.adb gcc-8.2.0-new/gcc/ada/libgnarl/s-taprop__linux.adb
--- a/gcc/ada/libgnarl/s-taprop__linux.adb 2018-01-11 00:55:25.000000000 -0800
+++ b/gcc/ada/libgnarl/s-taprop__linux.adb 2018-11-13 11:28:36.433964449 -0800
-@@ -202,9 +202,6 @@ package body System.Task_Primitives.Oper
+@@ -198,9 +198,6 @@ package body System.Task_Primitives.Oper
pragma Import
(C, GNAT_pthread_condattr_setup, "__gnat_pthread_condattr_setup");
@@ -43,7 +43,7 @@ diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-taprop__linux.adb gcc-8.2.0-new/gcc/ada/l
-- We do not have pragma Linker_Options ("-lcap"); here, because this
-- library is not present on many Linux systems. 'libcap' is the Linux
-- "capabilities" library, called by __gnat_has_cap_sys_nice.
-@@ -214,38 +211,6 @@ package body System.Task_Primitives.Oper
+@@ -210,38 +207,6 @@ package body System.Task_Primitives.Oper
-- Convert Ada priority to Linux priority. Priorities are 1 .. 99 on
-- GNU/Linux, so we map 0 .. 98 to 1 .. 99.
@@ -76,13 +76,13 @@ diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-taprop__linux.adb gcc-8.2.0-new/gcc/ada/l
- return Ceiling_Support;
- end Get_Ceiling_Support;
-
-- pragma Warnings (Off, "non-static call not allowed in preelaborated unit");
+- pragma Warnings (Off, "non-preelaborable call not allowed*");
- Ceiling_Support : constant Boolean := Get_Ceiling_Support;
-- pragma Warnings (On, "non-static call not allowed in preelaborated unit");
+- pragma Warnings (On, "non-preelaborable call not allowed*");
-- True if the locking policy is Ceiling_Locking, and the current process
-- has permission to use this policy. The process has permission if it is
-- running as 'root', or if the capability was set by the setcap command,
-@@ -348,7 +313,9 @@ package body System.Task_Primitives.Oper
+@@ -344,7 +309,9 @@ package body System.Task_Primitives.Oper
-- Init_Mutex --
----------------
@@ -92,7 +92,7 @@ diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-taprop__linux.adb gcc-8.2.0-new/gcc/ada/l
Mutex_Attr : aliased pthread_mutexattr_t;
Result, Result_2 : C.int;
-@@ -360,16 +327,7 @@ package body System.Task_Primitives.Oper
+@@ -356,16 +323,7 @@ package body System.Task_Primitives.Oper
return Result;
end if;
@@ -110,7 +110,7 @@ diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-taprop__linux.adb gcc-8.2.0-new/gcc/ada/l
Result := pthread_mutexattr_setprotocol
(Mutex_Attr'Access, PTHREAD_PRIO_INHERIT);
pragma Assert (Result = 0);
-@@ -409,11 +367,6 @@ package body System.Task_Primitives.Oper
+@@ -405,11 +363,6 @@ package body System.Task_Primitives.Oper
Result := pthread_rwlockattr_init (RWlock_Attr'Access);
pragma Assert (Result = 0);
diff --git a/srcpkgs/gcc/files/libssp-musl.patch b/srcpkgs/gcc/files/libssp-musl.patch
index b21a2c29e57c..99f248401a1c 100644
--- a/srcpkgs/gcc/files/libssp-musl.patch
+++ b/srcpkgs/gcc/files/libssp-musl.patch
@@ -2,9 +2,9 @@ First part taken from Alpine.
Second part added to prevent gccgo from thinking it can -fsplit-stack on musl.
---- a/gcc/gcc.c
-+++ b/gcc/gcc.c
-@@ -874,10 +874,15 @@ proper position among the other output files. */
+--- a/gcc/gcc.cc
++++ b/gcc/gcc.cc
+@@ -984,10 +984,15 @@ proper position among the other output f
#define LINK_GCC_C_SEQUENCE_SPEC "%G %{!nolibc:%L %G}"
#endif
@@ -22,10 +22,10 @@ Second part added to prevent gccgo from thinking it can -fsplit-stack on musl.
#else
#define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \
"|fstack-protector-strong|fstack-protector-explicit" \
-@@ -1155,7 +1160,7 @@ static const char *cc1_options =
+@@ -1280,7 +1285,7 @@ static const char *cc1_options =
%{-version:--version}\
%{-help=*:--help=%*}\
- %{!fsyntax-only:%{S:%W{o*}%{!o*:-o %b.s}}}\
+ %{!fsyntax-only:%{S:%W{o*}%{!o*:-o %w%b.s}}}\
- %{fsyntax-only:-o %j} %{-param*}\
+ %{fsyntax-only:-o %j} %{-param*} " NO_SSP_SPEC "\
%{coverage:-fprofile-arcs -ftest-coverage}\
diff --git a/srcpkgs/gcc/patches/force-override-clocale.patch b/srcpkgs/gcc/patches/force-override-clocale.patch
new file mode 100644
index 000000000000..8af8a7150dd9
--- /dev/null
+++ b/srcpkgs/gcc/patches/force-override-clocale.patch
@@ -0,0 +1,21 @@
+This is necessary when building a gnu cross compiler for a musl target.
+Otherwise, even if clocale manually is set to gnu, it will be reset to generic
+when the test is performed using AC_EGREP_CPP().
+--- a/libstdc++-v3/configure
++++ b/libstdc++-v3/configure
+@@ -16493,6 +16493,7 @@ fi
+
+ # Sanity check model, and test for special functionality.
+ if test $enable_clocale_flag = gnu; then
++ if test $enable_clocale = auto; then
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h. */
+
+@@ -16509,6 +16510,7 @@ else
+ enable_clocale_flag=generic
+ fi
+ rm -f conftest*
++ fi
+
+
+ # Set it to scream when it hurts.
diff --git a/srcpkgs/gcc/patches/libffi_gnulinux.patch b/srcpkgs/gcc/patches/libffi_gnulinux.patch
deleted file mode 100644
index 98245bd5be1a..000000000000
--- a/srcpkgs/gcc/patches/libffi_gnulinux.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/libffi/src/closures.c
-+++ b/libffi/src/closures.c
-@@ -34,7 +34,7 @@
- #include <ffi_common.h>
-
- #if !FFI_MMAP_EXEC_WRIT && !FFI_EXEC_TRAMPOLINE_TABLE
--# if __gnu_linux__ && !defined(__ANDROID__)
-+# if __linux__ && !defined(__ANDROID__)
- /* This macro indicates it may be forbidden to map anonymous memory
- with both write and execute permission. Code compiled when this
- option is defined will attempt to map such pages once, but if it
diff --git a/srcpkgs/gcc/patches/libgcc-ibm128-no-tag.patch b/srcpkgs/gcc/patches/libgcc-ibm128-no-tag.patch
index bdf5c75d917d..26d80356ad0d 100644
--- a/srcpkgs/gcc/patches/libgcc-ibm128-no-tag.patch
+++ b/srcpkgs/gcc/patches/libgcc-ibm128-no-tag.patch
@@ -29,10 +29,14 @@ diff --git a/libgcc/config/rs6000/t-linux b/libgcc/config/rs6000/t-linux
index 4f6d4c4..fa93bb6 100644
--- a/libgcc/config/rs6000/t-linux
+++ b/libgcc/config/rs6000/t-linux
-@@ -1,3 +1,3 @@
+@@ -1,6 +1,6 @@
SHLIB_MAPFILES += $(srcdir)/config/rs6000/libgcc-glibc.ver
--HOST_LIBGCC2_CFLAGS += -mlong-double-128 -mno-minimal-toc
-+HOST_LIBGCC2_CFLAGS += -mlong-double-128 -mno-gnu-attribute -mno-minimal-toc
+-HOST_LIBGCC2_CFLAGS += -mlong-double-128
++HOST_LIBGCC2_CFLAGS += -mlong-double-128 -mno-gnu-attribute
+
+ # This is a way of selecting -mcmodel=small for ppc64, which gives
+ # smaller and faster libgcc code. Directly specifying -mcmodel=small
+
--
2.24.0
diff --git a/srcpkgs/gcc/patches/mips-sgidefs_h.patch b/srcpkgs/gcc/patches/mips-sgidefs_h.patch
index dddfe10e8c06..cd0ae7a380df 100644
--- a/srcpkgs/gcc/patches/mips-sgidefs_h.patch
+++ b/srcpkgs/gcc/patches/mips-sgidefs_h.patch
@@ -3,7 +3,7 @@
@@ -42,7 +42,7 @@
#define _MIPS_SIM_NABI32 2
#define _MIPS_SIM_ABI64 3
- #elif !defined(__OpenBSD__)
+ #elif !defined(__OpenBSD__) && !defined(__FreeBSD__)
-# include <sgidefs.h>
+# include <asm/sgidefs.h>
#endif
diff --git a/srcpkgs/gcc/template b/srcpkgs/gcc/template
index ab3643de4f98..a20af7c0ef2e 100644
--- a/srcpkgs/gcc/template
+++ b/srcpkgs/gcc/template
@@ -3,18 +3,14 @@
# which use the version number.
pkgname=gcc
-# we are using a 10-stable git snapshot alpine is using in order
-# to get regression fixes not yet incorporate into a stable release
-# it should be possible to switch back to stable with 10.3 or 11
-version=10.2.1pre1
-revision=3
-_patchver="${version%pre*}"
-_minorver="${_patchver%.*}"
+version=12.2.0
+revision=1
+_minorver="${version%.*}"
_majorver="${_minorver%.*}"
-_gmp_version=6.2.0
+_gmp_version=6.2.1
_mpfr_version=4.1.0
-_mpc_version=1.1.0
-_isl_version=0.21
+_mpc_version=1.2.1
+_isl_version=0.24
create_wrksrc=yes
short_desc="GNU Compiler Collection"
maintainer="Enno Boland <gottox@voidlinux.org>"
@@ -22,16 +18,16 @@ homepage="http://gcc.gnu.org"
license="GFDL-1.2-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
# *-musl builders have issues fetching https://ftp.gnu.org/gnu/mpc/mpc-1.1.0.tar.gz
distfiles="
- https://dev.alpinelinux.org/~nenolod/gcc-${version/pre/_pre}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${version}/gcc-${version}.tar.xz
https://gmplib.org/download/gmp/gmp-${_gmp_version}.tar.xz
${GNU_SITE}/mpfr/mpfr-${_mpfr_version}.tar.xz
${GNU_SITE}/mpc/mpc-${_mpc_version}.tar.gz
${SOURCEFORGE_SITE}/libisl/isl-${_isl_version}.tar.bz2"
-checksum="772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 258e6cd51b3fbdfc185c716d55f82c08aff57df0c6fbd143cf6ed561267a1526
+checksum="e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
+ fd4829912cddd12f84181c3451cc752be224643e87fac497b69edddadc49b4f2
0c98a3f1732ff6ca4ea690552079da9c597872d30e96ec28414ee23c95558a7f
- 6985c538143c1208dcb1ac42cedad6ff52e267b47e5f970183a3e75125b43c2e
- d18ca11f8ad1a39ab6d03d3dcb3365ab416720fcb65b42d69f34f51bf0a0e859"
+ 17503d2c395dfcf106b622dc142683c1199431d095367c6aacba6eec30340459
+ fcf78dd9656c10eb8cf9fbd5f59a0b6b01386205fe1934b3b287a0a1898145c0"
nopie=yes
lib32disabled=yes
@@ -52,8 +48,11 @@ if [ "$CHROOT_READY" ]; then
hostmakedepends="tar texinfo perl flex"
else
_have_gccgo=no
+ # libzstd fails to link in bootstrap with glibc 2.36
+ # when zlib has been compiled with glibc 2.32.
+ LDFLAGS="-lzstd -pthread"
fi
-makedepends="zlib-devel"
+makedepends="zlib-devel libzstd-devel"
depends="binutils libgcc-devel-${version}_${revision}
libstdc++-devel-${version}_${revision} libssp-devel-${version}_${revision}"
checkdepends="dejagnu"
@@ -70,13 +69,13 @@ if [ "$build_option_gnatboot" ]; then
case "$XBPS_TARGET_MACHINE" in
x86_64)
_gnat_tarball="gnat-gpl-2017-x86_64-linux-bin.tar.gz"
- distfiles+=" http://mirrors.cdn.adacore.com/art/591c6d80c7a447af2deed1d7>$_gnat_tarball"
+ distfiles+=" https://community.download.adacore.com/v1/9682e2e1f2f232ce03fe21d77b14c37a0de5649b?filename=$_gnat_tarball>$_gnat_tarball"
checksum+=" b942bcac20dea39748b39f8b624d9619f60a8dee2e8195dbe3829c835b0956e6"
build_options_default="gnatboot"
;;
i686)
_gnat_tarball="gnat-gpl-2014-x86-linux-bin.tar.gz"
- distfiles+=" http://mirrors.cdn.adacore.com/art/564b3e9dc8e196b040fbe248>$_gnat_tarball"
+ distfiles+=" https://community.download.adacore.com/v1/c5e9e6fdff5cb77ed90cf8c62536653e27c0bed6?filename=$_gnat_tarball>$_gnat_tarball"
checksum+=" 3b693510f5d22a240abb3034934c1adbd80ccd6e4f61a4f491cc408fdfd9c042"
build_options_default="gnatboot"
;;
@@ -155,8 +154,8 @@ if [ "$CROSS_BUILD" ]; then
fi
post_extract() {
- mv gcc-${version/pre/_pre}/* gcc-${version/pre/_pre}/.??* .
- rmdir gcc-${version/pre/_pre}
+ mv gcc-${version}/* gcc-${version}/.??* .
+ rmdir gcc-${version}
mv gmp-${_gmp_version} gmp
mv mpfr-${_mpfr_version} mpfr
mv mpc-${_mpc_version} mpc
@@ -186,9 +185,9 @@ pre_configure() {
sed -i 's@\./fixinc\.sh@-c true@' gcc/Makefile.in
if [ "$XBPS_TARGET_LIBC" = musl ]; then
- patch -p1 -i ${FILESDIR}/libgnarl-musl.patch
- patch -p1 -i ${FILESDIR}/libssp-musl.patch
- patch -p1 -i ${FILESDIR}/gccgo-musl.patch
+ for p in ${FILESDIR}/*-musl.patch; do
+ patch -p1 -i $p
+ done
fi
}
do_configure() {
@@ -343,16 +342,16 @@ do_install() {
# Make version a symlink of major version to make all versions
# from the same series work automagically.
- mv ${DESTDIR}/usr/lib/gcc/${_triplet}/${_patchver} \
+ mv ${DESTDIR}/usr/lib/gcc/${_triplet}/${version} \
${DESTDIR}/usr/lib/gcc/${_triplet}/${_minorver}
ln -sfr ${DESTDIR}/usr/lib/gcc/${_triplet}/${_minorver} \
- ${DESTDIR}/usr/lib/gcc/${_triplet}/${_patchver}
+ ${DESTDIR}/usr/lib/gcc/${_triplet}/${version}
# Ditto for c++ headers.
- mv ${DESTDIR}/usr/include/c++/${_patchver} \
+ mv ${DESTDIR}/usr/include/c++/${version} \
${DESTDIR}/usr/include/c++/${_minorver}
ln -sfr ${DESTDIR}/usr/include/c++/${_minorver} \
- ${DESTDIR}/usr/include/c++/${_patchver}
+ ${DESTDIR}/usr/include/c++/${version}
# cc symlink
ln -sfr ${DESTDIR}/usr/bin/gcc ${DESTDIR}/usr/bin/cc
@@ -361,7 +360,7 @@ do_install() {
# lto plugin symlink
vmkdir usr/lib/bfd-plugins
- ln -sfr ${DESTDIR}/usr/lib/gcc/${_triplet}/${_patchver}/liblto_plugin.so \
+ ln -sfr ${DESTDIR}/usr/lib/gcc/${_triplet}/${version}/liblto_plugin.so \
${DESTDIR}/usr/lib/bfd-plugins
# Remove "fixed" header
@@ -372,13 +371,9 @@ do_install() {
rm -f ${DESTDIR}/usr/lib/libffi*
rm -f ${DESTDIR}/usr/share/man/man3/ffi*
- # Remove all python scripts in libdir.
- rm -f ${DESTDIR}/usr/lib/*.py
-
- # Remove more python stuff.
- if [ -d ${DESTDIR}/usr/share/gcc-${_patchver}/python ]; then
- rm -rf ${DESTDIR}/usr/share/gcc-${_patchver}/python
- fi
+ # Move libstdc++ gdb helpers to location where gdb can autoload them
+ mkdir -p ${DESTDIR}/usr/share/gdb/auto-load/usr/lib
+ mv ${DESTDIR}/usr/lib/*.py ${DESTDIR}/usr/share/gdb/auto-load/usr/lib
# Install c89 and c99 wrappers and its manpages, from NetBSD.
for f in c89 c99; do
@@ -397,7 +392,7 @@ gcc-ada_package() {
depends="gcc>=${_minorver} libada-devel>=${_minorver}"
short_desc+=" - Ada compiler frontend"
pkg_install() {
- for f in gnat{,bind,chop,clean,find,kr,link,ls,make,name,prep,xref}; do
+ for f in gnat{,bind,chop,clean,kr,link,ls,make,name,prep}; do
vmove usr/bin/${f}
done
}
@@ -450,7 +445,7 @@ gcc-fortran_package() {
if [ "$CROSS_BUILD" ]; then
# A number of OMP modules are not built when cross
# compiling gcc. Copy them from the cross compiler.
- local src="/usr/lib/gcc/${_triplet}/${_patchver}/finclude"
+ local src="/usr/lib/gcc/${_triplet}/${version}/finclude"
local dst="usr/lib/gcc/${_triplet}/${_minorver}/finclude"
for f in omp_lib.f90 omp_lib.h omp_lib.mod omp_lib_kinds.mod \
openacc.f90 openacc.mod openacc_kinds.mod openacc_lib.h; do
@@ -517,7 +512,7 @@ libgfortran_package() {
short_desc+=" - Fortran library"
pkg_install() {
vmove "usr/lib/libgfortran.so*"
- vlicense ${wrksrc}/COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
+ vlicense COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
}
}
@@ -538,7 +533,7 @@ libgo_package() {
nostrip=yes
pkg_install() {
vmove "usr/lib/libgo.so*"
- vlicense ${wrksrc}/COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
+ vlicense COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
}
}
@@ -554,7 +549,7 @@ libobjc_package() {
short_desc+=" - Objective-C library"
pkg_install() {
vmove "usr/lib/libobjc.so*"
- vlicense ${wrksrc}/COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
+ vlicense COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
}
}
@@ -573,7 +568,7 @@ libquadmath_package() {
short_desc+=" - quadmath library"
pkg_install() {
vmove "usr/lib/libquadmath.so*"
- vlicense ${wrksrc}/COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
+ vlicense COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
}
}
@@ -615,7 +610,7 @@ libgcc_package() {
noverifyrdeps=yes
pkg_install() {
vmove "usr/lib/libgcc_s.so*"
- vlicense ${wrksrc}/COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
+ vlicense COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
}
}
@@ -646,7 +641,7 @@ libgomp_package() {
short_desc+=" - OpenMP v4.0 library"
pkg_install() {
vmove "usr/lib/libgomp*.so.*"
- vlicense ${wrksrc}/COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
+ vlicense COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
}
}
@@ -701,7 +696,7 @@ libssp_package() {
short_desc+=" - SSP (StackSmashingProtection) library"
pkg_install() {
vmove "usr/lib/libssp.so*"
- vlicense ${wrksrc}/COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
+ vlicense COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
}
}
@@ -718,7 +713,9 @@ libstdc++-devel_package() {
libstdc++_package() {
short_desc+=" - Standard C++ Library"
pkg_install() {
+ vmove usr/share/gdb
+ vmove usr/share/gcc-${version}/python
vmove "usr/lib/libstdc++.so*"
- vlicense ${wrksrc}/COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
+ vlicense COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
}
}
From 702e0027427e1a8bc67b306fb005979136950558 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sat, 5 Nov 2022 11:33:11 -0700
Subject: [PATCH 04/38] libtool: rebuild for gcc 12
---
srcpkgs/libtool/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/libtool/template b/srcpkgs/libtool/template
index fc5c53a9c3e9..aebad9294eef 100644
--- a/srcpkgs/libtool/template
+++ b/srcpkgs/libtool/template
@@ -1,7 +1,7 @@
# Template file for 'libtool'
pkgname=libtool
version=2.4.7
-revision=1
+revision=2
build_style=gnu-configure
hostmakedepends="texinfo perl automake help2man xz"
depends="tar sed"
From e0e5fe3cda4fef4a1eafac3ec8d735cb1aeb3280 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sat, 5 Nov 2022 11:33:12 -0700
Subject: [PATCH 05/38] libiberty-devel: update to 20220713.
---
srcpkgs/libiberty-devel/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/libiberty-devel/template b/srcpkgs/libiberty-devel/template
index 7e01bbb851fd..d9618e3806ba 100644
--- a/srcpkgs/libiberty-devel/template
+++ b/srcpkgs/libiberty-devel/template
@@ -1,6 +1,6 @@
# Template file for 'libiberty-devel'
pkgname=libiberty-devel
-version=20210106
+version=20220713
revision=1
build_wrksrc=libiberty
build_style=gnu-configure
@@ -10,7 +10,7 @@ maintainer="Orphaned <orphan@voidlinux.org>"
license="GPL-3.0-or-later"
homepage="http://gcc.gnu.org/"
distfiles="http://deb.debian.org/debian/pool/main/libi/libiberty/libiberty_${version}.orig.tar.xz"
-checksum=9df153d69914c0f5a9145e0abbb248e72feebab6777c712a30f1c3b8c19047d4
+checksum=b59050f48c8a0f9c9e6fba5d17c7a4f11d1329de0c0dca7331b767a6d2bbe8d9
conflicts="binutils-devel<=2.35.1_3"
CFLAGS="-fPIC"
From 11abea7e3e8946c5dff9a5cd728050e89ee6b84f Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sat, 5 Nov 2022 11:33:12 -0700
Subject: [PATCH 06/38] glibc: update to 2.36.
---
common/shlibs | 60 ++--
...e-hash-style-both-for-building-glibc.patch | 51 ++++
.../glibc/patches/glibc-c-utf8-locale.patch | 286 ------------------
srcpkgs/glibc/template | 66 ++--
4 files changed, 109 insertions(+), 354 deletions(-)
create mode 100644 srcpkgs/glibc/patches/0001-Revert-Do-not-use-hash-style-both-for-building-glibc.patch
delete mode 100644 srcpkgs/glibc/patches/glibc-c-utf8-locale.patch
diff --git a/common/shlibs b/common/shlibs
index 3ee7969839ad..3f90cbd1ace3 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -17,38 +17,38 @@
# one (order top->bottom) is preferred over the next ones.
#
libc.so musl-1.1.24_7
-libc.so.6 glibc-2.32_1
-libm.so.6 glibc-2.32_1
-libpthread.so.0 glibc-2.32_1
-librt.so.1 glibc-2.32_1
-libdl.so.2 glibc-2.32_1
-ld-linux-x86-64.so.2 glibc-2.32_1 x86_64
-ld-linux.so.2 glibc-2.32_1 i686
-ld-linux.so.3 glibc-2.32_1 armv5tel
-ld-linux-aarch64.so.1 glibc-2.32_1 aarch64
-ld64.so.2 glibc-2.32_1 ppc64
-ld.so.1 glibc-2.32_1 mips
-ld.so.1 glibc-2.32_1 ppc
-ld-linux-armhf.so.3 glibc-2.32_1
-libresolv.so.2 glibc-2.32_1
-libanl.so.1 glibc-2.32_1
-libthread_db.so.1 glibc-2.32_1
-libutil.so.1 glibc-2.32_1
-libnsl.so.1 glibc-2.32_1
-libnss_db.so.2 glibc-2.32_1
-libnss_files.so.2 glibc-2.32_1
-libnss_compat.so.2 glibc-2.32_1
-libnss_dns.so.2 glibc-2.32_1
-libnss_hesiod.so.2 glibc-2.32_1
-libcrypt.so.1 glibc-2.32_1
-libBrokenLocale.so.1 glibc-2.32_1
+libc.so.6 glibc-2.36_1
+libm.so.6 glibc-2.36_1
+libpthread.so.0 glibc-2.36_1
+librt.so.1 glibc-2.36_1
+libdl.so.2 glibc-2.36_1
+ld-linux-x86-64.so.2 glibc-2.36_1 x86_64
+ld-linux.so.2 glibc-2.36_1 i686
+ld-linux.so.3 glibc-2.36_1 armv5tel
+ld-linux-aarch64.so.1 glibc-2.36_1 aarch64
+ld64.so.2 glibc-2.36_1 ppc64
+ld.so.1 glibc-2.36_1 mips
+ld.so.1 glibc-2.36_1 ppc
+ld-linux-armhf.so.3 glibc-2.36_1
+libresolv.so.2 glibc-2.36_1
+libanl.so.1 glibc-2.36_1
+libthread_db.so.1 glibc-2.36_1
+libutil.so.1 glibc-2.36_1
+libnsl.so.1 glibc-2.36_1
+libnss_db.so.2 glibc-2.36_1
+libnss_files.so.2 glibc-2.36_1
+libnss_compat.so.2 glibc-2.36_1
+libnss_dns.so.2 glibc-2.36_1
+libnss_hesiod.so.2 glibc-2.36_1
+libcrypt.so.1 glibc-2.36_1
+libBrokenLocale.so.1 glibc-2.36_1
libSimGearCore.so.2020.3.13 simgear-2020.3.13_1
libSimGearScene.so.2020.3.13 simgear-2020.3.13_1
-libmemusage.so glibc-2.32_1
-libSegFault.so glibc-2.32_1
-libpcprofile.so glibc-2.32_1
-libcidn.so.1 glibc-2.32_1
-libmvec.so.1 glibc-2.32_1
+libmemusage.so glibc-2.36_1
+libSegFault.so glibc-2.36_1
+libpcprofile.so glibc-2.36_1
+libcidn.so.1 glibc-2.36_1
+libmvec.so.1 glibc-2.36_1
libcddgmp.so.0 cddlib-0.94m_1
libcdd.so.0 cddlib-0.94m_1
libz.so.1 zlib-1.2.3_1
diff --git a/srcpkgs/glibc/patches/0001-Revert-Do-not-use-hash-style-both-for-building-glibc.patch b/srcpkgs/glibc/patches/0001-Revert-Do-not-use-hash-style-both-for-building-glibc.patch
new file mode 100644
index 000000000000..9c5553e92609
--- /dev/null
+++ b/srcpkgs/glibc/patches/0001-Revert-Do-not-use-hash-style-both-for-building-glibc.patch
@@ -0,0 +1,51 @@
+Temporary workaround for EAC bug.
+
+See: https://sourceware.org/bugzilla/show_bug.cgi?id=29456
+
+From 8e90e2cc5e57d7ca3a40602d278e9642a8b66716 Mon Sep 17 00:00:00 2001
+From: oreo639 <oreo6391@gmail.com>
+Date: Tue, 13 Sep 2022 14:30:35 -0700
+Subject: [PATCH] Revert "Do not use --hash-style=both for building glibc
+ shared objects"
+
+This reverts commit e47de5cb2d4dbecb58f569ed241e8e95c568f03c.
+---
+ Makeconfig | 9 +++++++++
+ Makerules | 7 +++++++
+ 5 files changed, 61 insertions(+)
+
+diff --git a/Makeconfig b/Makeconfig
+index ba70321af1..e2131d4389 100644
+--- a/Makeconfig
++++ b/Makeconfig
+@@ -371,6 +371,13 @@ dt-relr-ldflag =
+ no-dt-relr-ldflag =
+ endif
+
++# For the time being we unconditionally use 'both'. At some time we
++# should declare statically linked code as 'out of luck' and compile
++# with --hash-style=gnu only.
++hashstyle-LDFLAGS = -Wl,--hash-style=both
++LDFLAGS.so += $(hashstyle-LDFLAGS)
++LDFLAGS-rtld += $(hashstyle-LDFLAGS)
++
+ ifeq (no,$(build-pie-default))
+ pie-default = $(no-pie-ccflag)
+ else # build-pie-default
+diff --git a/Makerules b/Makerules
+index d1e139d03c..44134e37ce 100644
+--- a/Makerules
++++ b/Makerules
+@@ -558,6 +558,9 @@ $(common-objpfx)shlib.lds: $(common-objpfx)config.make $(..)Makerules
+ -Wl,--verbose 2>/dev/null | \
+ sed > $@T \
+ -e '/^=========/,/^=========/!d;/^=========/d' \
++ -e 's/^.*\.gnu\.hash[ ]*:.*$$/ .note.ABI-tag : { *(.note.ABI-tag) } &/' \
++ -e '/^[ ]*\.hash[ ]*:.*$$/{h;d;}' \
++ -e '/DATA_SEGMENT_ALIGN/{H;g}' \
+ -e 's/^.*\*(\.dynbss).*$$/& \
+ PROVIDE(__start___libc_freeres_ptrs = .); \
+ *(__libc_freeres_ptrs) \
+--
+2.37.3
+
diff --git a/srcpkgs/glibc/patches/glibc-c-utf8-locale.patch b/srcpkgs/glibc/patches/glibc-c-utf8-locale.patch
deleted file mode 100644
index 7215e1558b62..000000000000
--- a/srcpkgs/glibc/patches/glibc-c-utf8-locale.patch
+++ /dev/null
@@ -1,286 +0,0 @@
-Short description: Add C.UTF-8 support.
-Author(s): Fedora glibc team <glibc@lists.fedoraproject.org>
-Origin: PATCH
-Upstream status: not-submitted
-
-This patch needs to upstream as part of Carlos O'Donell
-<carlos@redhat.com>'s work on enabling upstream C.UTF-8 support. This
-work is currently blocked on cleaning up the test results to prove that
-full code-point sorting is working as intended.
-
-Note that this patch does not provide full code-point sorting as
-expected.
-
-This patch needs to upstream as soon as possible since it would be nice
-to have this in F29 and fixed.
-
-From 2eda7b462b415105f5a05c1323372d4e39d46439 Mon Sep 17 00:00:00 2001
-From: Mike FABIAN <mfabian@redhat.com>
-Date: Mon, 10 Aug 2015 15:58:12 +0200
-Subject: [PATCH] Add a C.UTF-8 locale
-
----
- localedata/SUPPORTED | 1 +
- localedata/locales/C | 238 +++++++++++++++++++++++++++++++++++++++++++++++++++
- 2 files changed, 239 insertions(+)
- create mode 100644 localedata/locales/C
-
-diff --git a/localedata/SUPPORTED b/localedata/SUPPORTED
-index 8ca023e..2a78391 100644
---- a/localedata/SUPPORTED
-+++ b/localedata/SUPPORTED
-@@ -1,6 +1,7 @@
- # This file names the currently supported and somewhat tested locales.
- # If you have any additions please file a glibc bug report.
- SUPPORTED-LOCALES=\
-+C.UTF-8/UTF-8 \
- aa_DJ.UTF-8/UTF-8 \
- aa_DJ/ISO-8859-1 \
- aa_ER/UTF-8 \
-diff --git a/localedata/locales/C b/localedata/locales/C
-new file mode 100644
-index 0000000..fdf460e
---- /dev/null
-+++ b/localedata/locales/C
-@@ -0,0 +1,238 @@
-+escape_char /
-+comment_char %
-+% Locale for C locale in UTF-8
-+
-+LC_IDENTIFICATION
-+title "C locale"
-+source ""
-+address ""
-+contact ""
-+email "mfabian@redhat.com"
-+tel ""
-+fax ""
-+language "C"
-+territory ""
-+revision "1.0"
-+date "2015-08-10"
-+%
-+category "i18n:2012";LC_IDENTIFICATION
-+category "i18n:2012";LC_CTYPE
-+category "i18n:2012";LC_COLLATE
-+category "i18n:2012";LC_TIME
-+category "i18n:2012";LC_NUMERIC
-+category "i18n:2012";LC_MONETARY
-+category "i18n:2012";LC_MESSAGES
-+category "i18n:2012";LC_PAPER
-+category "i18n:2012";LC_NAME
-+category "i18n:2012";LC_ADDRESS
-+category "i18n:2012";LC_TELEPHONE
-+category "i18n:2012";LC_MEASUREMENT
-+END LC_IDENTIFICATION
-+
-+LC_CTYPE
-+copy "i18n"
-+
-+translit_start
-+include "translit_combining";""
-+translit_end
-+
-+END LC_CTYPE
-+
-+LC_COLLATE
-+order_start forward
-+<U0000>
-+..
-+<UFFFF>
-+<U10000>
-+..
-+<U1FFFF>
-+<U20000>
-+..
-+<U2FFFF>
-+<UE0000>
-+..
-+<UEFFFF>
-+<UF0000>
-+..
-+<UFFFFF>
-+<U100000>
-+..
-+<U10FFFF>
-+UNDEFINED
-+order_end
-+END LC_COLLATE
-+
-+LC_MONETARY
-+% This is the 14652 i18n fdcc-set definition for
-+% the LC_MONETARY category
-+% (except for the int_curr_symbol and currency_symbol, they are empty in
-+% the 14652 i18n fdcc-set definition and also empty in
-+% glibc/locale/C-monetary.c. But localedef complains in that case).
-+%
-+% Using "USD" for int_curr_symbol. But maybe "XXX" would be better?
-+% XXX is "No currency" (https://en.wikipedia.org/wiki/ISO_4217)
-+int_curr_symbol "<U0055><U0053><U0044><U0020>"
-+% Using "$" for currency_symbol. But maybe <U00A4> would be better?
-+% U+00A4 is the "generic currency symbol"
-+% (https://en.wikipedia.org/wiki/Currency_sign_%28typography%29)
-+currency_symbol "<U0024>"
-+mon_decimal_point "<U002E>"
-+mon_thousands_sep ""
-+mon_grouping -1
-+positive_sign ""
-+negative_sign "<U002D>"
-+int_frac_digits -1
-+frac_digits -1
-+p_cs_precedes -1
-+int_p_sep_by_space -1
-+p_sep_by_space -1
-+n_cs_precedes -1
-+int_n_sep_by_space -1
-+n_sep_by_space -1
-+p_sign_posn -1
-+n_sign_posn -1
-+%
-+END LC_MONETARY
-+
-+LC_NUMERIC
-+% This is the POSIX Locale definition for
-+% the LC_NUMERIC category.
-+%
-+decimal_point "<U002E>"
-+thousands_sep ""
-+grouping -1
-+END LC_NUMERIC
-+
-+LC_TIME
-+% This is the POSIX Locale definition for
-+% the LC_TIME category.
-+%
-+% Abbreviated weekday names (%a)
-+abday "<U0053><U0075><U006E>";"<U004D><U006F><U006E>";/
-+ "<U0054><U0075><U0065>";"<U0057><U0065><U0064>";/
-+ "<U0054><U0068><U0075>";"<U0046><U0072><U0069>";/
-+ "<U0053><U0061><U0074>"
-+
-+% Full weekday names (%A)
-+day "<U0053><U0075><U006E><U0064><U0061><U0079>";/
-+ "<U004D><U006F><U006E><U0064><U0061><U0079>";/
-+ "<U0054><U0075><U0065><U0073><U0064><U0061><U0079>";/
-+ "<U0057><U0065><U0064><U006E><U0065><U0073><U0064><U0061><U0079>";/
-+ "<U0054><U0068><U0075><U0072><U0073><U0064><U0061><U0079>";/
-+ "<U0046><U0072><U0069><U0064><U0061><U0079>";/
-+ "<U0053><U0061><U0074><U0075><U0072><U0064><U0061><U0079>"
-+
-+% Abbreviated month names (%b)
-+abmon "<U004A><U0061><U006E>";"<U0046><U0065><U0062>";/
-+ "<U004D><U0061><U0072>";"<U0041><U0070><U0072>";/
-+ "<U004D><U0061><U0079>";"<U004A><U0075><U006E>";/
-+ "<U004A><U0075><U006C>";"<U0041><U0075><U0067>";/
-+ "<U0053><U0065><U0070>";"<U004F><U0063><U0074>";/
-+ "<U004E><U006F><U0076>";"<U0044><U0065><U0063>"
-+
-+% Full month names (%B)
-+mon "<U004A><U0061><U006E><U0075><U0061><U0072><U0079>";/
-+ "<U0046><U0065><U0062><U0072><U0075><U0061><U0072><U0079>";/
-+ "<U004D><U0061><U0072><U0063><U0068>";/
-+ "<U0041><U0070><U0072><U0069><U006C>";/
-+ "<U004D><U0061><U0079>";/
-+ "<U004A><U0075><U006E><U0065>";/
-+ "<U004A><U0075><U006C><U0079>";/
-+ "<U0041><U0075><U0067><U0075><U0073><U0074>";/
-+ "<U0053><U0065><U0070><U0074><U0065><U006D><U0062><U0065><U0072>";/
-+ "<U004F><U0063><U0074><U006F><U0062><U0065><U0072>";/
-+ "<U004E><U006F><U0076><U0065><U006D><U0062><U0065><U0072>";/
-+ "<U0044><U0065><U0063><U0065><U006D><U0062><U0065><U0072>"
-+
-+% Week description, consists of three fields:
-+% 1. Number of days in a week.
-+% 2. Gregorian date that is a first weekday (19971130 for Sunday, 19971201 for Monday).
-+% 3. The weekday number to be contained in the first week of the year.
-+%
-+% ISO 8601 conforming applications should use the values 7, 19971201 (a
-+% Monday), and 4 (Thursday), respectively.
-+week 7;19971201;4
-+first_weekday 1
-+first_workday 1
-+
-+% Appropriate date and time representation (%c)
-+% "%a %b %e %H:%M:%S %Y"
-+d_t_fmt "<U0025><U0061><U0020><U0025><U0062><U0020><U0025><U0065><U0020><U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053><U0020><U0025><U0059>"
-+
-+% Appropriate date representation (%x)
-+% "%m/%d/%y"
-+d_fmt "<U0025><U006D><U002F><U0025><U0064><U002F><U0025><U0079>"
-+
-+% Appropriate time representation (%X)
-+% "%H:%M:%S"
-+t_fmt "<U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053>"
-+
-+% Appropriate AM/PM time representation (%r)
-+% "%I:%M:%S %p"
-+t_fmt_ampm "<U0025><U0049><U003A><U0025><U004D><U003A><U0025><U0053><U0020><U0025><U0070>"
-+
-+% Equivalent of AM/PM (%p) "AM"/"PM"
-+%
-+am_pm "<U0041><U004D>";"<U0050><U004D>"
-+
-+% Appropriate date representation (date(1)) "%a %b %e %H:%M:%S %Z %Y"
-+date_fmt "<U0025><U0061><U0020><U0025><U0062><U0020><U0025><U0065><U0020><U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053><U0020><U0025><U005A><U0020><U0025><U0059>"
-+END LC_TIME
-+
-+LC_MESSAGES
-+% This is the POSIX Locale definition for
-+% the LC_NUMERIC category.
-+%
-+yesexpr "<U005E><U005B><U0079><U0059><U005D>"
-+noexpr "<U005E><U005B><U006E><U004E><U005D>"
-+yesstr "<U0059><U0065><U0073>"
-+nostr "<U004E><U006F>"
-+END LC_MESSAGES
-+
-+LC_PAPER
-+% This is the ISO/IEC 14652 "i18n" definition for
-+% the LC_PAPER category.
-+% (A4 paper, this is also used in the built in C/POSIX
-+% locale in glibc/locale/C-paper.c)
-+height 297
-+width 210
-+END LC_PAPER
-+
-+LC_NAME
-+% This is the ISO/IEC 14652 "i18n" definition for
-+% the LC_NAME category.
-+% "%p%t%g%t%m%t%f"
-+% (also used in the built in C/POSIX locale in glibc/locale/C-name.c)
-+name_fmt "<U0025><U0070><U0025><U0074><U0025><U0067><U0025><U0074>/
-+<U0025><U006D><U0025><U0074><U0025><U0066>"
-+END LC_NAME
-+
-+LC_ADDRESS
-+% This is the ISO/IEC 14652 "i18n" definition for
-+% the LC_ADDRESS category.
-+% "%a%N%f%N%d%N%b%N%s %h %e %r%N%C-%z %T%N%c%N"
-+% (also used in the built in C/POSIX locale in glibc/locale/C-address.c)
-+postal_fmt "<U0025><U0061><U0025><U004E><U0025><U0066><U0025><U004E>/
-+<U0025><U0064><U0025><U004E><U0025><U0062><U0025><U004E><U0025><U0073>/
-+<U0020><U0025><U0068><U0020><U0025><U0065><U0020><U0025><U0072><U0025>/
-+<U004E><U0025><U0043><U002D><U0025><U007A><U0020><U0025><U0054><U0025>/
-+<U004E><U0025><U0063><U0025><U004E>"
-+END LC_ADDRESS
-+
-+LC_TELEPHONE
-+% This is the ISO/IEC 14652 "i18n" definition for
-+% the LC_TELEPHONE category.
-+% "+%c %a %l"
-+tel_int_fmt "<U002B><U0025><U0063><U0020><U0025><U0061><U0020><U0025>/
-+<U006C>"
-+% (also used in the built in C/POSIX locale in glibc/locale/C-telephone.c)
-+END LC_TELEPHONE
-+
-+LC_MEASUREMENT
-+% This is the ISO/IEC 14652 "i18n" definition for
-+% the LC_MEASUREMENT category.
-+% (same as in the built in C/POSIX locale in glibc/locale/C-measurement.c)
-+%metric
-+measurement 1
-+END LC_MEASUREMENT
-+
---
-2.4.3
-
diff --git a/srcpkgs/glibc/template b/srcpkgs/glibc/template
index c62a4d2aedf1..6cd4c0980cbb 100644
--- a/srcpkgs/glibc/template
+++ b/srcpkgs/glibc/template
@@ -1,14 +1,16 @@
# Template file for 'glibc'
pkgname=glibc
-version=2.32
-revision=2
+version=2.36
+revision=1
+_patchver="72-g0f90d6204d"
+wrksrc="glibc-${version}-${_patchver}"
bootstrap=yes
short_desc="GNU C library"
maintainer="Enno Boland <gottox@voidlinux.org>"
license="GPL-2.0-or-later, LGPL-2.1-or-later, BSD-3-Clause"
homepage="http://www.gnu.org/software/libc"
-distfiles="${GNU_SITE}/glibc/glibc-${version}.tar.xz"
-checksum=1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+distfiles="https://vasilek.cz/paste/glibc-${version}-${_patchver}.tar.xz"
+checksum=656200722d5ba968b4888a2d2950719d72c86290fd0479f61897d25b7db2cb57
# Do not strip these files, objcopy errors out.
nostrip_files="
XBS5_ILP32_OFFBIG
@@ -20,27 +22,28 @@ nostrip_files="
POSIX_V6_LP64_OFF64
POSIX_V7_LP64_OFF64
XBS5_LP64_OFF64
- ld-${version}.so
- libdl-${version}.so
- libanl-${version}.so
- libcidn-${version}.so
- libresolv-${version}.so
- libcrypt-${version}.so
- libpthread-${version}.so
- libm-${version}.so
- libutil-${version}.so
- libthread_db-1.0.so
- librt-${version}.so
- libnsl-${version}.so
- libc-${version}.so
- libBrokenLocale-${version}.so
- libnss_compat-${version}.so
- libnss_db-${version}.so
- libnss_dns-${version}.so
- libnss_files-${version}.so
- libnss_hesiod-${version}.so
- libnss_nisplus-${version}.so
- libnss_nis-${version}.so"
+ ld-linux-x86-64.so.2
+ ld-linux.so.2
+ ld-linux.so.3
+ ld-linux-aarch64.so.1
+ ld64.so.2
+ ld.so.1
+ ld-linux-armhf.so.3
+ libresolv.so.2
+ libcrypt.so.1
+ libm.so.6
+ libthread_db.so.1
+ libnsl.so.1
+ libc.so.6
+ libc_malloc_debug.so.0
+ libmemusage.so
+ libmvec.so.1
+ libBrokenLocale.so.1
+ libnss_compat.so.2
+ libnss_db.so.2
+ libnss_dns.so.2
+ libnss_files.so.2
+ libnss_hesiod.so.2"
conf_files="
/etc/rpc
@@ -54,7 +57,6 @@ lib32files="/usr/lib/gconv/gconv-modules"
lib32symlinks="ld-linux.so.2"
# There's no point in building this for musl.
archs="~*-musl"
-nopie=yes
do_configure() {
mkdir build
@@ -163,18 +165,6 @@ do_install() {
rm -f ${DESTDIR}/usr/bin/z{dump,ic}
mv ${DESTDIR}/usr/sbin/* ${DESTDIR}/usr/bin
-
- # Create xbps.d(5) arch override file for 32-bit architectures
- # 32-bit userlands may be used with 64-bit kernels and then
- # xbps will report an incorrect architecture by default
- case "$XBPS_TARGET_MACHINE" in
- i686|ppc|ppcle|armv*)
- vmkdir usr/share/xbps.d
- echo "architecture=${XBPS_TARGET_MACHINE}" > \
- ${DESTDIR}/usr/share/xbps.d/arch-32bit.conf
- ;;
- *) ;;
- esac
}
glibc-devel_package() {
From 19a4afeb0224d41a41b2d4c9762d0a28f2b66e70 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sat, 5 Nov 2022 11:33:12 -0700
Subject: [PATCH 07/38] musl: add support for SIGEV_THREAD_ID timers
https://git.musl-libc.org/cgit/musl/commit/?id=7c71792e87691451f2a6b76348e83ad1889f1dcb
---
...d-support-for-SIGEV_THREAD_ID-timers.patch | 74 +++++++++++++++++++
srcpkgs/musl/template | 2 +-
2 files changed, 75 insertions(+), 1 deletion(-)
create mode 100644 srcpkgs/musl/patches/add-support-for-SIGEV_THREAD_ID-timers.patch
diff --git a/srcpkgs/musl/patches/add-support-for-SIGEV_THREAD_ID-timers.patch b/srcpkgs/musl/patches/add-support-for-SIGEV_THREAD_ID-timers.patch
new file mode 100644
index 000000000000..e20dff5ba0d4
--- /dev/null
+++ b/srcpkgs/musl/patches/add-support-for-SIGEV_THREAD_ID-timers.patch
@@ -0,0 +1,74 @@
+From 7c71792e87691451f2a6b76348e83ad1889f1dcb Mon Sep 17 00:00:00 2001
+From: James Y Knight <jyknight@google.com>
+Date: Sun, 30 Jun 2019 21:55:20 -0400
+Subject: [PATCH] add support for SIGEV_THREAD_ID timers
+
+This is like SIGEV_SIGNAL, but targeted to a particular thread's
+tid, rather than the process.
+---
+ include/signal.h | 16 +++++++++++++---
+ src/time/timer_create.c | 8 ++++++--
+ 2 files changed, 19 insertions(+), 5 deletions(-)
+
+diff --git a/include/signal.h b/include/signal.h
+index fbdf667b2..9ed929e4f 100644
+--- a/include/signal.h
++++ b/include/signal.h
+@@ -180,14 +180,24 @@ struct sigevent {
+ union sigval sigev_value;
+ int sigev_signo;
+ int sigev_notify;
+- void (*sigev_notify_function)(union sigval);
+- pthread_attr_t *sigev_notify_attributes;
+- char __pad[56-3*sizeof(long)];
++ union {
++ char __pad[64 - 2*sizeof(int) - sizeof(union sigval)];
++ pid_t sigev_notify_thread_id;
++ struct {
++ void (*sigev_notify_function)(union sigval);
++ pthread_attr_t *sigev_notify_attributes;
++ } __sev_thread;
++ } __sev_fields;
+ };
+
++#define sigev_notify_thread_id __sev_fields.sigev_notify_thread_id
++#define sigev_notify_function __sev_fields.__sev_thread.sigev_notify_function
++#define sigev_notify_attributes __sev_fields.__sev_thread.sigev_notify_attributes
++
+ #define SIGEV_SIGNAL 0
+ #define SIGEV_NONE 1
+ #define SIGEV_THREAD 2
++#define SIGEV_THREAD_ID 4
+
+ int __libc_current_sigrtmin(void);
+ int __libc_current_sigrtmax(void);
+diff --git a/src/time/timer_create.c b/src/time/timer_create.c
+index 5ddfda278..4bef23905 100644
+--- a/src/time/timer_create.c
++++ b/src/time/timer_create.c
+@@ -71,11 +71,15 @@ int timer_create(clockid_t clk, struct sigevent *restrict evp, timer_t *restrict
+ switch (evp ? evp->sigev_notify : SIGEV_SIGNAL) {
+ case SIGEV_NONE:
+ case SIGEV_SIGNAL:
++ case SIGEV_THREAD_ID:
+ if (evp) {
+ ksev.sigev_value = evp->sigev_value;
+ ksev.sigev_signo = evp->sigev_signo;
+ ksev.sigev_notify = evp->sigev_notify;
+- ksev.sigev_tid = 0;
++ if (evp->sigev_notify == SIGEV_THREAD_ID)
++ ksev.sigev_tid = evp->sigev_notify_thread_id;
++ else
++ ksev.sigev_tid = 0;
+ ksevp = &ksev;
+ }
+ if (syscall(SYS_timer_create, clk, ksevp, &timerid) < 0)
+@@ -107,7 +111,7 @@ int timer_create(clockid_t clk, struct sigevent *restrict evp, timer_t *restrict
+
+ ksev.sigev_value.sival_ptr = 0;
+ ksev.sigev_signo = SIGTIMER;
+- ksev.sigev_notify = 4; /* SIGEV_THREAD_ID */
++ ksev.sigev_notify = SIGEV_THREAD_ID;
+ ksev.sigev_tid = td->tid;
+ if (syscall(SYS_timer_create, clk, &ksev, &timerid) < 0)
+ timerid = -1;
diff --git a/srcpkgs/musl/template b/srcpkgs/musl/template
index 34e6ed4fba6e..afb33cd868b5 100644
--- a/srcpkgs/musl/template
+++ b/srcpkgs/musl/template
@@ -2,7 +2,7 @@
pkgname=musl
reverts="1.2.0_1"
version=1.1.24
-revision=11
+revision=12
archs="*-musl"
bootstrap=yes
build_style=gnu-configure
From 2c1c8ba98946106950bb8db7f6aeba83e358d6f0 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sat, 5 Nov 2022 11:33:12 -0700
Subject: [PATCH 08/38] gcc-multilib: update to 12.2.0.
---
srcpkgs/gcc-multilib/template | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/srcpkgs/gcc-multilib/template b/srcpkgs/gcc-multilib/template
index f28eb237c287..ba9bafcadfd6 100644
--- a/srcpkgs/gcc-multilib/template
+++ b/srcpkgs/gcc-multilib/template
@@ -3,15 +3,15 @@ archs="x86_64"
_triplet="x86_64-unknown-linux-gnu"
pkgname=gcc-multilib
-version=10.2.1pre1
+version=12.2.0
revision=1
_majorver="${version%.*}"
short_desc="GNU Compiler Collection (multilib files)"
maintainer="Orphaned <orphan@voidlinux.org>"
homepage="http://gcc.gnu.org"
license="GFDL-1.2-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
-distfiles="https://dev.alpinelinux.org/~nenolod/gcc-${version/pre/_pre}.tar.xz"
-checksum=772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+distfiles="${GNU_SITE}/gcc/gcc-${version}/gcc-${version}.tar.xz"
+checksum=e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
hostmakedepends="perl flex tar zip unzip"
makedepends="zlib-devel libmpc-devel isl15-devel libfl-devel
@@ -70,7 +70,7 @@ do_build() {
make ${makejobs}
}
do_install() {
- local _pc_triplet=x86_64-pc-linux-gnu _version=${version%pre1}
+ local _pc_triplet=x86_64-pc-linux-gnu
# Install to a tempdir and then only copy relevant files.
cd ${wrksrc}
make DESTDIR=${wrksrc}/${pkgname}-build install
@@ -80,9 +80,9 @@ do_install() {
vmkdir usr/include/c++/${_majorver}/${_triplet}
vmkdir usr/lib/gcc/${_triplet}/${_majorver}
- cp -a ${wrksrc}/${pkgname}-build/usr/lib/gcc/${_pc_triplet}/${_version}/32 \
+ cp -a ${wrksrc}/${pkgname}-build/usr/lib/gcc/${_pc_triplet}/${version}/32 \
${DESTDIR}/usr/lib/gcc/${_triplet}/${_majorver}/
- cp -a ${wrksrc}/${pkgname}-build/usr/include/c++/${_version}/${_pc_triplet}/32 \
+ cp -a ${wrksrc}/${pkgname}-build/usr/include/c++/${version}/${_pc_triplet}/32 \
${DESTDIR}/usr/include/c++/${_majorver}/${_triplet}
vinstall ${wrksrc}/host-${_pc_triplet}/gcc/specs 644 usr/lib/gcc/${_triplet}/${_majorver}
From 3f112430e1c969475dc57212db706f1ea4574b78 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sat, 5 Nov 2022 11:33:12 -0700
Subject: [PATCH 09/38] libgccjit: update to 12.2.0.
---
srcpkgs/libgccjit/files/libgccjit-musl.patch | 63 --------------------
srcpkgs/libgccjit/template | 24 +++-----
2 files changed, 9 insertions(+), 78 deletions(-)
delete mode 100644 srcpkgs/libgccjit/files/libgccjit-musl.patch
diff --git a/srcpkgs/libgccjit/files/libgccjit-musl.patch b/srcpkgs/libgccjit/files/libgccjit-musl.patch
deleted file mode 100644
index d2ed16928c82..000000000000
--- a/srcpkgs/libgccjit/files/libgccjit-musl.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-diff --git a/gcc/jit/jit-playback.c b/gcc/jit/jit-playback.c
-index 5bccf591a..35f5e35ef 100644
---- a/gcc/jit/jit-playback.c
-+++ b/gcc/jit/jit-playback.c
-@@ -18,6 +18,8 @@ You should have received a copy of the GNU General Public License
- along with GCC; see the file COPYING3. If not see
- <http://www.gnu.org/licenses/>. */
-
-+#include <pthread.h>
-+
- #include "config.h"
- #include "system.h"
- #include "coretypes.h"
-@@ -41,8 +43,6 @@ along with GCC; see the file COPYING3. If not see
- #include "diagnostic.h"
- #include "stmt.h"
-
--#include <pthread.h>
--
- #include "jit-playback.h"
- #include "jit-result.h"
- #include "jit-builtins.h"
-diff --git a/gcc/jit/jit-recording.c b/gcc/jit/jit-recording.c
-index a237d574f..5785e3269 100644
---- a/gcc/jit/jit-recording.c
-+++ b/gcc/jit/jit-recording.c
-@@ -18,6 +18,8 @@ You should have received a copy of the GNU General Public License
- along with GCC; see the file COPYING3. If not see
- <http://www.gnu.org/licenses/>. */
-
-+#include <pthread.h>
-+
- #include "config.h"
- #include "system.h"
- #include "coretypes.h"
-@@ -25,8 +27,6 @@ along with GCC; see the file COPYING3. If not see
- #include "pretty-print.h"
- #include "toplev.h"
-
--#include <pthread.h>
--
- #include "jit-builtins.h"
- #include "jit-recording.h"
- #include "jit-playback.h"
-diff --git a/gcc/jit/libgccjit.c b/gcc/jit/libgccjit.c
-index f9c33c63c..75f21d275 100644
---- a/gcc/jit/libgccjit.c
-+++ b/gcc/jit/libgccjit.c
-@@ -18,13 +18,13 @@ You should have received a copy of the GNU General Public License
- along with GCC; see the file COPYING3. If not see
- <http://www.gnu.org/licenses/>. */
-
-+#include <pthread.h>
- #include "config.h"
- #include "system.h"
- #include "coretypes.h"
- #include "timevar.h"
- #include "typed-splay-tree.h"
- #include "cppbuiltin.h"
--#include <pthread.h>
-
- #include "libgccjit.h"
- #include "jit-recording.h"
diff --git a/srcpkgs/libgccjit/template b/srcpkgs/libgccjit/template
index 0b37c3ee9f8b..fde1affd54b7 100644
--- a/srcpkgs/libgccjit/template
+++ b/srcpkgs/libgccjit/template
@@ -3,18 +3,12 @@
# which use the version number.
pkgname=libgccjit
-# we are using a 10-stable git snapshot alpine is using in order
-# to get regression fixes not yet incorporate into a stable release
-# it should be possible to switch back to stable with 10.3 or 11
-version=10.2.1pre1
+version=12.2.0
revision=1
-_patchver="${version%pre*}"
-_minorver="${_patchver%.*}"
-_majorver="${_minorver%.*}"
-_gmp_version=6.2.0
+_gmp_version=6.2.1
_mpfr_version=4.1.0
-_mpc_version=1.1.0
-_isl_version=0.21
+_mpc_version=1.2.1
+_isl_version=0.24
create_wrksrc=yes
short_desc="Just-In-Time Compilation library for GCC"
maintainer="Lane Biocini <lane@mailbox.org>"
@@ -22,16 +16,16 @@ homepage="https://gcc.gnu.org"
license="GFDL-1.2-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
# *-musl builders have issues fetching https://ftp.gnu.org/gnu/mpc/mpc-1.1.0.tar.gz
distfiles="
- https://dev.alpinelinux.org/~nenolod/gcc-${version/pre/_pre}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${version}/gcc-${version}.tar.xz
https://gmplib.org/download/gmp/gmp-${_gmp_version}.tar.xz
${GNU_SITE}/mpfr/mpfr-${_mpfr_version}.tar.xz
${GNU_SITE}/mpc/mpc-${_mpc_version}.tar.gz
${SOURCEFORGE_SITE}/libisl/isl-${_isl_version}.tar.bz2"
-checksum="772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 258e6cd51b3fbdfc185c716d55f82c08aff57df0c6fbd143cf6ed561267a1526
+checksum="e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
+ fd4829912cddd12f84181c3451cc752be224643e87fac497b69edddadc49b4f2
0c98a3f1732ff6ca4ea690552079da9c597872d30e96ec28414ee23c95558a7f
- 6985c538143c1208dcb1ac42cedad6ff52e267b47e5f970183a3e75125b43c2e
- d18ca11f8ad1a39ab6d03d3dcb3365ab416720fcb65b42d69f34f51bf0a0e859"
+ 17503d2c395dfcf106b622dc142683c1199431d095367c6aacba6eec30340459
+ fcf78dd9656c10eb8cf9fbd5f59a0b6b01386205fe1934b3b287a0a1898145c0"
nopie=yes
lib32disabled=yes
makedepends="zlib-devel"
From 540268409c801ec1d7194a78027611da82ee867f Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sat, 5 Nov 2022 11:33:12 -0700
Subject: [PATCH 10/38] build-style/void-cross: Update flags for gcc12 and
glibc 2.36
gcov can't be built without libc:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100289
Remove -no-pie from build. glibc 2.35 and newer uses -static-pie by default:
https://sourceware.org/pipermail/glibc-cvs/2021q4/075916.html
---
common/build-style/void-cross.sh | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
diff --git a/common/build-style/void-cross.sh b/common/build-style/void-cross.sh
index 92f03f8130f5..4804193d8395 100644
--- a/common/build-style/void-cross.sh
+++ b/common/build-style/void-cross.sh
@@ -53,6 +53,7 @@ _void_cross_build_binutils() {
--sbindir=/usr/bin \
--libdir=/usr/lib \
--libexecdir=/usr/lib \
+ --sysconfdir=/etc \
--target=${tgt} \
--with-sysroot=/usr/${tgt} \
--disable-nls \
@@ -60,7 +61,9 @@ _void_cross_build_binutils() {
--disable-multilib \
--disable-werror \
--disable-gold \
+ --disable-gprofng \
--enable-relro \
+ --enable-new-dtags \
--enable-plugins \
--enable-64-bit-bfd \
--enable-deterministic-archives \
@@ -132,6 +135,7 @@ _void_cross_build_bootstrap_gcc() {
--disable-libssp \
--disable-libitm \
--disable-libatomic \
+ --disable-gcov \
--disable-threads \
--disable-sjlj-exceptions \
--enable-languages=c \
@@ -381,6 +385,7 @@ _void_cross_build_gcc() {
extra_args+=" --disable-gnu-unique-object"
extra_args+=" libat_cv_have_ifunc=no"
else
+ extra_args+=" --enable-clocale=gnu"
extra_args+=" --enable-gnu-unique-object"
fi
@@ -460,6 +465,14 @@ do_build() {
local binutils_ver linux_ver gcc_ver libc_ver libucontext_ver
local tgt=${sourcepkg/cross-}
+ export CFLAGS="${CFLAGS/-D_FORTIFY_SOURCE=2/}"
+ export CXXFLAGS="${CXXFLAGS/-D_FORTIFY_SOURCE=2/}"
+
+ # Disable explicit -fno-PIE, gcc/binutils/libc will figure this out itself.
+ export CFLAGS="${CFLAGS//-fno-PIE/}"
+ export CXXFLAGS="${CXXFLAGS//-fno-PIE/}"
+ export LDFLAGS="${LDFLAGS//-no-pie/}"
+
_void_cross_test_ver binutils
_void_cross_test_ver linux
_void_cross_test_ver gcc
@@ -625,6 +638,9 @@ do_install() {
# then remove it because it conflicts with libquadmath package
rm -rf ${DESTDIR}/${sysroot}/usr/lib/libquadmath.*
+ # Remove libdep linker plugin because it conflicts with system binutils
+ rm -f ${DESTDIR}/usr/lib/bfd-plugins/libdep*
+
# Remove leftover symlinks
rm -f ${DESTDIR}/usr/lib${XBPS_TARGET_WORDSIZE}
rm -f ${DESTDIR}/lib*
From 2895b35f82e3a24cad5975a880ca5f7c93d5fa2a Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sat, 5 Nov 2022 11:33:12 -0700
Subject: [PATCH 11/38] qemu: remove broken patch
The necessary patch has been imported into musl so no need
to cast the sigevent struct to a more glibc-like one.
---
.../musl-fix-sigevent-and-sigval_t.patch | 27 -------------------
1 file changed, 27 deletions(-)
delete mode 100644 srcpkgs/qemu/patches/musl-fix-sigevent-and-sigval_t.patch
diff --git a/srcpkgs/qemu/patches/musl-fix-sigevent-and-sigval_t.patch b/srcpkgs/qemu/patches/musl-fix-sigevent-and-sigval_t.patch
deleted file mode 100644
index 4b4f1117c15f..000000000000
--- a/srcpkgs/qemu/patches/musl-fix-sigevent-and-sigval_t.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-Note: Remove this patch with musl 1.2.2
-
---- a/linux-user/syscall.c
-+++ b/linux-user/syscall.c
-@@ -5020,10 +5020,21 @@
- #ifndef HAVE_SIGEV_NOTIFY_THREAD_ID
- #define sigev_notify_thread_id _sigev_un._tid
- #endif
-
--static inline abi_long target_to_host_sigevent(struct sigevent *host_sevp,
-+struct host_sigevent {
-+ union sigval sigev_value;
-+ int sigev_signo;
-+ int sigev_notify;
-+ union {
-+ char _pad[64 - sizeof(int) * 2 - sizeof(union sigval)];
-+ int _tid;
-+ } _sigev_un;
-+};
-+
-+static inline abi_long target_to_host_sigevent(struct sigevent *sevp,
- abi_ulong target_addr)
- {
-+ struct host_sigevent *host_sevp = (struct host_sigevent *) sevp;
- struct target_sigevent *target_sevp;
-
- if (!lock_user_struct(VERIFY_READ, target_sevp, target_addr, 1)) {
From aaaf08aef9c30b8a5285824c659d2873bcc085eb Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sat, 19 Nov 2022 13:26:24 -0800
Subject: [PATCH 12/38] mk-configure: rebuild for gcc 12
---
srcpkgs/mk-configure/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/mk-configure/template b/srcpkgs/mk-configure/template
index 9d12f11a9799..c50d8adf213f 100644
--- a/srcpkgs/mk-configure/template
+++ b/srcpkgs/mk-configure/template
@@ -1,7 +1,7 @@
# Template file for 'mk-configure'
pkgname=mk-configure
version=0.37.0
-revision=1
+revision=2
build_style=gnu-makefile
make_cmd=bmake
make_install_args="MANDIR=/usr/share/man"
From 2766ca2ea8c097001c4aa88a017de9d3ee7dc0d1 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:28 -0800
Subject: [PATCH 13/38] cross-aarch64-linux-gnu: update to gcc 12.2.0.
---
srcpkgs/cross-aarch64-linux-gnu/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-aarch64-linux-gnu/template b/srcpkgs/cross-aarch64-linux-gnu/template
index 18de21aa3ccd..9e6fb75c198d 100644
--- a/srcpkgs/cross-aarch64-linux-gnu/template
+++ b/srcpkgs/cross-aarch64-linux-gnu/template
@@ -1,15 +1,16 @@
# Template file for 'cross-aarch64-linux-gnu'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
-_glibc_version=2.32
+_binutils_version=2.39
+_gcc_version=12.2.0
+_glibc_version=2.36
_linux_version=5.10.4
pkgname=cross-aarch64-linux-gnu
-version=0.34
+version=0.35
revision=1
build_style=void-cross
configure_args="--with-arch=armv8-a"
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Leah Neukirchen <leah@vuxu.org>"
@@ -17,12 +18,12 @@ license="GPL-2.0-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
+ 1c959fea240906226062cb4b1e7ebce71a9f0e3c0836c09e7e3423d434fcfe75
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
From a35f78cd51b135076e5871aa18230d2af4cb3ca0 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:28 -0800
Subject: [PATCH 14/38] cross-aarch64-linux-musl: update to gcc 12.2.0.
---
srcpkgs/cross-aarch64-linux-musl/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-aarch64-linux-musl/template b/srcpkgs/cross-aarch64-linux-musl/template
index bb6a770afb79..ba14c96bccea 100644
--- a/srcpkgs/cross-aarch64-linux-musl/template
+++ b/srcpkgs/cross-aarch64-linux-musl/template
@@ -1,29 +1,30 @@
# Template file for 'cross-aarch64-linux-musl'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.2.0
_musl_version=1.1.24
_linux_version=5.10.4
_libucontext_version=1.0
pkgname=cross-aarch64-linux-musl
-version=0.34
-revision=4
+version=0.35
+revision=1
build_style=void-cross
configure_args="--with-arch=armv8-a"
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
-homepage="https://www.voidlinux.org/"
license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
+homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz
https://github.com/kaniini/libucontext/archive/libucontext-${_libucontext_version}.tar.gz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec
23714e99a87f6dea82e8a073c526325161dd65462459820b16a6162be91955bb"
From a637a7d7f5011f90c442167c79ea4022136a59ab Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:28 -0800
Subject: [PATCH 15/38] cross-arm-linux-gnueabi: update to gcc 12.2.0.
---
srcpkgs/cross-arm-linux-gnueabi/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-arm-linux-gnueabi/template b/srcpkgs/cross-arm-linux-gnueabi/template
index a3aba72aa93a..5c774e16f430 100644
--- a/srcpkgs/cross-arm-linux-gnueabi/template
+++ b/srcpkgs/cross-arm-linux-gnueabi/template
@@ -1,15 +1,16 @@
# Template file for 'cross-arm-linux-gnueabi'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
-_glibc_version=2.32
+_binutils_version=2.39
+_gcc_version=12.2.0
+_glibc_version=2.36
_linux_version=5.10.4
pkgname=cross-arm-linux-gnueabi
-version=0.34
+version=0.35
revision=1
build_style=void-cross
configure_args="--with-arch=armv5te --with-float=soft"
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
@@ -17,12 +18,12 @@ license="GPL-2.0-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
+ 1c959fea240906226062cb4b1e7ebce71a9f0e3c0836c09e7e3423d434fcfe75
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
From 74d7621c29619881231be62cd6efc4c28c1733cd Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:28 -0800
Subject: [PATCH 16/38] cross-arm-linux-gnueabihf: update to gcc 12.2.0.
---
srcpkgs/cross-arm-linux-gnueabihf/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-arm-linux-gnueabihf/template b/srcpkgs/cross-arm-linux-gnueabihf/template
index d9ab86cf2ecc..d6298ab639a4 100644
--- a/srcpkgs/cross-arm-linux-gnueabihf/template
+++ b/srcpkgs/cross-arm-linux-gnueabihf/template
@@ -1,15 +1,16 @@
# Template file for 'cross-arm-linux-gnueabihf'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
-_glibc_version=2.32
+_binutils_version=2.39
+_gcc_version=12.2.0
+_glibc_version=2.36
_linux_version=5.10.4
pkgname=cross-arm-linux-gnueabihf
-version=0.34
+version=0.35
revision=1
build_style=void-cross
configure_args="--with-arch=armv6 --with-fpu=vfp --with-float=hard"
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
@@ -17,12 +18,12 @@ license="GPL-2.0-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
+ 1c959fea240906226062cb4b1e7ebce71a9f0e3c0836c09e7e3423d434fcfe75
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
From 4cab8b8ef1086c7498b6432b5b30715d7fcc6f7f Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:28 -0800
Subject: [PATCH 17/38] cross-arm-linux-musleabi: update to gcc 12.2.0.
---
srcpkgs/cross-arm-linux-musleabi/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-arm-linux-musleabi/template b/srcpkgs/cross-arm-linux-musleabi/template
index 6692d891e1bd..24df78e8fd8e 100644
--- a/srcpkgs/cross-arm-linux-musleabi/template
+++ b/srcpkgs/cross-arm-linux-musleabi/template
@@ -1,29 +1,30 @@
# Template file for 'cross-arm-linux-musleabi'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.2.0
_musl_version=1.1.24
_linux_version=5.10.4
_libucontext_version=1.0
pkgname=cross-arm-linux-musleabi
-version=0.34
-revision=4
+version=0.35
+revision=1
build_style=void-cross
configure_args="--with-arch=armv5te --with-float=soft"
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
-homepage="https://www.voidlinux.org/"
license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
+homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz
https://github.com/kaniini/libucontext/archive/libucontext-${_libucontext_version}.tar.gz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec
23714e99a87f6dea82e8a073c526325161dd65462459820b16a6162be91955bb"
From 5c19dd58e72ac9b9fccbb71d830c62e7a1ef08b8 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:28 -0800
Subject: [PATCH 18/38] cross-arm-linux-musleabihf: update to gcc 12.2.0.
---
srcpkgs/cross-arm-linux-musleabihf/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-arm-linux-musleabihf/template b/srcpkgs/cross-arm-linux-musleabihf/template
index bb62bd5ebc55..8093700f909c 100644
--- a/srcpkgs/cross-arm-linux-musleabihf/template
+++ b/srcpkgs/cross-arm-linux-musleabihf/template
@@ -1,29 +1,30 @@
# Template file for 'cross-arm-linux-musleabihf'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.2.0
_musl_version=1.1.24
_linux_version=5.10.4
_libucontext_version=1.0
pkgname=cross-arm-linux-musleabihf
-version=0.34
-revision=4
+version=0.35
+revision=1
build_style=void-cross
configure_args="--with-arch=armv6 --with-fpu=vfp --with-float=hard"
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
-homepage="https://www.voidlinux.org/"
license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
+homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz
https://github.com/kaniini/libucontext/archive/libucontext-${_libucontext_version}.tar.gz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec
23714e99a87f6dea82e8a073c526325161dd65462459820b16a6162be91955bb"
From c3e99201416a036ba3070537b56eb1f7bf407368 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:28 -0800
Subject: [PATCH 19/38] cross-armv7l-linux-gnueabihf: update to gcc 12.2.0.
---
srcpkgs/cross-armv7l-linux-gnueabihf/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-armv7l-linux-gnueabihf/template b/srcpkgs/cross-armv7l-linux-gnueabihf/template
index 30c89b6294ef..92665326428b 100644
--- a/srcpkgs/cross-armv7l-linux-gnueabihf/template
+++ b/srcpkgs/cross-armv7l-linux-gnueabihf/template
@@ -1,15 +1,16 @@
# Template file for 'cross-armv7l-linux-gnueabihf'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
-_glibc_version=2.32
+_binutils_version=2.39
+_gcc_version=12.2.0
+_glibc_version=2.36
_linux_version=5.10.4
pkgname=cross-armv7l-linux-gnueabihf
-version=0.34
+version=0.35
revision=1
build_style=void-cross
configure_args="--with-arch=armv7-a --with-fpu=vfpv3 --with-float=hard"
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
@@ -17,12 +18,12 @@ license="GPL-2.0-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
+ 1c959fea240906226062cb4b1e7ebce71a9f0e3c0836c09e7e3423d434fcfe75
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
From 1e3cccbd7ca501249af7db2af27a9cb718a5cd61 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:28 -0800
Subject: [PATCH 20/38] cross-armv7l-linux-musleabihf: update to gcc 12.2.0.
---
.../cross-armv7l-linux-musleabihf/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-armv7l-linux-musleabihf/template b/srcpkgs/cross-armv7l-linux-musleabihf/template
index 0a588cdf1a58..e5af2c9ccbf2 100644
--- a/srcpkgs/cross-armv7l-linux-musleabihf/template
+++ b/srcpkgs/cross-armv7l-linux-musleabihf/template
@@ -1,29 +1,30 @@
# Template file for 'cross-armv7l-linux-musleabihf'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.2.0
_musl_version=1.1.24
_linux_version=5.10.4
_libucontext_version=1.0
pkgname=cross-armv7l-linux-musleabihf
-version=0.34
-revision=4
+version=0.35
+revision=1
build_style=void-cross
configure_args="--with-arch=armv7-a --with-fpu=vfpv3 --with-float=hard"
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
-homepage="https://www.voidlinux.org/"
license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
+homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz
https://github.com/kaniini/libucontext/archive/libucontext-${_libucontext_version}.tar.gz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec
23714e99a87f6dea82e8a073c526325161dd65462459820b16a6162be91955bb"
From 0b2ba6ca95b5a0a4249ee74eba4cc9a3419e9a01 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:29 -0800
Subject: [PATCH 21/38] cross-i686-linux-musl: update to gcc 12.2.0.
---
srcpkgs/cross-i686-linux-musl/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-i686-linux-musl/template b/srcpkgs/cross-i686-linux-musl/template
index 8be16a230d8d..d624bb7a3254 100644
--- a/srcpkgs/cross-i686-linux-musl/template
+++ b/srcpkgs/cross-i686-linux-musl/template
@@ -1,28 +1,29 @@
# Template file for 'cross-i686-linux-musl'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.2.0
_musl_version=1.1.24
_linux_version=5.10.4
_libucontext_version=1.0
pkgname=cross-i686-linux-musl
-version=0.34
-revision=4
+version=0.35
+revision=1
build_style=void-cross
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
-homepage="https://www.voidlinux.org/"
license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
+homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz
https://github.com/kaniini/libucontext/archive/libucontext-${_libucontext_version}.tar.gz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec
23714e99a87f6dea82e8a073c526325161dd65462459820b16a6162be91955bb"
From 6b98e37c0753c292bdf0eab151aa4348ba54da40 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:29 -0800
Subject: [PATCH 22/38] cross-i686-pc-linux-gnu: update to gcc 12.2.0.
---
srcpkgs/cross-i686-pc-linux-gnu/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-i686-pc-linux-gnu/template b/srcpkgs/cross-i686-pc-linux-gnu/template
index 263a43f7a7b8..6a9e54db807a 100644
--- a/srcpkgs/cross-i686-pc-linux-gnu/template
+++ b/srcpkgs/cross-i686-pc-linux-gnu/template
@@ -1,14 +1,15 @@
# Template file for 'cross-i686-pc-linux-gnu'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
-_glibc_version=2.32
+_binutils_version=2.39
+_gcc_version=12.2.0
+_glibc_version=2.36
_linux_version=5.10.4
pkgname=cross-i686-pc-linux-gnu
-version=0.34
+version=0.35
revision=1
build_style=void-cross
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
@@ -16,12 +17,12 @@ license="GPL-2.0-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
+ 1c959fea240906226062cb4b1e7ebce71a9f0e3c0836c09e7e3423d434fcfe75
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
From db8745f4c9dc7ca8032246afa0c836b161b876fe Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:29 -0800
Subject: [PATCH 23/38] cross-mips-linux-musl: update to gcc 12.2.0.
---
srcpkgs/cross-mips-linux-musl/template | 21 +++++++++++----------
1 file changed, 11 insertions(+), 10 deletions(-)
diff --git a/srcpkgs/cross-mips-linux-musl/template b/srcpkgs/cross-mips-linux-musl/template
index 9b5d5819b1a0..67a5c413396c 100644
--- a/srcpkgs/cross-mips-linux-musl/template
+++ b/srcpkgs/cross-mips-linux-musl/template
@@ -1,28 +1,29 @@
# Template file for 'cross-mips-linux-musl'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.2.0
_musl_version=1.1.24
_linux_version=5.10.4
pkgname=cross-mips-linux-musl
-version=0.34
-revision=3
+version=0.35
+revision=1
build_style=void-cross
configure_args="--with-arch=mips32r2 --with-float=soft
--with-linker-hash-style=sysv"
hostmakedepends="texinfo tar gcc-objc flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
-homepage="https://www.voidlinux.org/"
license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
+homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
- https://www.musl-libc.org/releases/musl-${_musl_version}.tar.gz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
+ https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
From d8936278496f2d7f260f3a9eb351caa5dd58829f Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:29 -0800
Subject: [PATCH 24/38] cross-mips-linux-muslhf: update to gcc 12.2.0.
---
srcpkgs/cross-mips-linux-muslhf/template | 21 +++++++++++----------
1 file changed, 11 insertions(+), 10 deletions(-)
diff --git a/srcpkgs/cross-mips-linux-muslhf/template b/srcpkgs/cross-mips-linux-muslhf/template
index d7590af9ec03..bdf8600ce95b 100644
--- a/srcpkgs/cross-mips-linux-muslhf/template
+++ b/srcpkgs/cross-mips-linux-muslhf/template
@@ -1,28 +1,29 @@
# Template file for 'cross-mips-linux-muslhf'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.2.0
_musl_version=1.1.24
_linux_version=5.10.4
pkgname=cross-mips-linux-muslhf
-version=0.34
-revision=3
+version=0.35
+revision=1
build_style=void-cross
configure_args="--with-arch=mips32r2 --with-float=hard
--with-linker-hash-style=sysv"
hostmakedepends="texinfo tar gcc-objc flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="hipperson0 <hipperson0@gmail.com>"
-homepage="https://www.voidlinux.org/"
license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
+homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
- https://www.musl-libc.org/releases/musl-${_musl_version}.tar.gz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
+ https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
From a91ba3ab1f5491e1676bf8400a497fb8b5c3cf3b Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:29 -0800
Subject: [PATCH 25/38] cross-mipsel-linux-musl: update to gcc 12.2.0.
---
srcpkgs/cross-mipsel-linux-musl/template | 21 +++++++++++----------
1 file changed, 11 insertions(+), 10 deletions(-)
diff --git a/srcpkgs/cross-mipsel-linux-musl/template b/srcpkgs/cross-mipsel-linux-musl/template
index 1acba7016dbc..de49387d517b 100644
--- a/srcpkgs/cross-mipsel-linux-musl/template
+++ b/srcpkgs/cross-mipsel-linux-musl/template
@@ -1,28 +1,29 @@
# Template file for 'cross-mipsel-linux-musl'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.2.0
_musl_version=1.1.24
_linux_version=5.10.4
pkgname=cross-mipsel-linux-musl
-version=0.34
-revision=3
+version=0.35
+revision=1
build_style=void-cross
configure_args="--with-arch=mips32r2 --with-float=soft
--with-linker-hash-style=sysv"
hostmakedepends="texinfo tar gcc-objc flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
-homepage="https://www.voidlinux.org/"
license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
+homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
- https://www.musl-libc.org/releases/musl-${_musl_version}.tar.gz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
+ https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
From 8bc659104ffe164ac97f12f2fd2e5d59df6c8b2b Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:29 -0800
Subject: [PATCH 26/38] cross-mipsel-linux-muslhf: update to gcc 12.2.0.
---
srcpkgs/cross-mipsel-linux-muslhf/template | 21 +++++++++++----------
1 file changed, 11 insertions(+), 10 deletions(-)
diff --git a/srcpkgs/cross-mipsel-linux-muslhf/template b/srcpkgs/cross-mipsel-linux-muslhf/template
index e4a55f028bc4..b27ce6475a38 100644
--- a/srcpkgs/cross-mipsel-linux-muslhf/template
+++ b/srcpkgs/cross-mipsel-linux-muslhf/template
@@ -1,28 +1,29 @@
# Template file for 'cross-mipsel-linux-muslhf'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.2.0
_musl_version=1.1.24
_linux_version=5.10.4
pkgname=cross-mipsel-linux-muslhf
-version=0.34
-revision=3
+version=0.35
+revision=1
build_style=void-cross
configure_args="--with-arch=mips32r2 --with-float=hard
--with-linker-hash-style=sysv"
hostmakedepends="texinfo tar gcc-objc flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
-homepage="https://www.voidlinux.org/"
license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
+homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
- https://www.musl-libc.org/releases/musl-${_musl_version}.tar.gz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
+ https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
From 40ce097d0da9b33d69ea2e6ed0ef77920c6564a9 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:29 -0800
Subject: [PATCH 27/38] cross-powerpc-linux-gnu: update to gcc 12.2.0.
---
srcpkgs/cross-powerpc-linux-gnu/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-powerpc-linux-gnu/template b/srcpkgs/cross-powerpc-linux-gnu/template
index b97a21d0d72e..79579e093b12 100644
--- a/srcpkgs/cross-powerpc-linux-gnu/template
+++ b/srcpkgs/cross-powerpc-linux-gnu/template
@@ -1,15 +1,16 @@
# Template file for 'cross-powerpc-linux-gnu'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
-_glibc_version=2.32
+_binutils_version=2.39
+_gcc_version=12.2.0
+_glibc_version=2.36
_linux_version=5.10.4
pkgname=cross-powerpc-linux-gnu
-version=0.34
+version=0.35
revision=1
build_style=void-cross
configure_args="--enable-secureplt --disable-vtable-verify"
hostmakedepends="texinfo tar gcc-objc flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Thomas Batten <stenstorpmc@gmail.com>"
@@ -17,12 +18,12 @@ license="GPL-2.0-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
+ 1c959fea240906226062cb4b1e7ebce71a9f0e3c0836c09e7e3423d434fcfe75
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
From bb5eda3a1f95d385cb229ef3089ee196433e6194 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:29 -0800
Subject: [PATCH 28/38] cross-powerpc-linux-musl: update to gcc 12.2.0.
---
srcpkgs/cross-powerpc-linux-musl/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-powerpc-linux-musl/template b/srcpkgs/cross-powerpc-linux-musl/template
index f9b22f0610d3..9bb6acd359b6 100644
--- a/srcpkgs/cross-powerpc-linux-musl/template
+++ b/srcpkgs/cross-powerpc-linux-musl/template
@@ -1,28 +1,29 @@
# Template file for 'cross-powerpc-linux-musl'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.2.0
_musl_version=1.1.24
_linux_version=5.10.4
pkgname=cross-powerpc-linux-musl
-version=0.34
-revision=3
+version=0.35
+revision=1
build_style=void-cross
configure_args="--enable-secureplt --disable-vtable-verify
--disable-decimal-float"
hostmakedepends="texinfo tar gcc-objc flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Thomas Batten <stenstorpmc@gmail.com>"
-homepage="https://www.voidlinux.org/"
license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
+homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
From 2bfb33cab984f72552d48eb97b93573a05a240f7 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:29 -0800
Subject: [PATCH 29/38] cross-powerpc64-linux-gnu: update to gcc 12.2.0.
---
srcpkgs/cross-powerpc64-linux-gnu/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-powerpc64-linux-gnu/template b/srcpkgs/cross-powerpc64-linux-gnu/template
index 35cfcaa6f02e..2d153d00add6 100644
--- a/srcpkgs/cross-powerpc64-linux-gnu/template
+++ b/srcpkgs/cross-powerpc64-linux-gnu/template
@@ -1,16 +1,17 @@
# Template file for 'cross-powerpc64-linux-gnu'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
-_glibc_version=2.32
+_binutils_version=2.39
+_gcc_version=12.2.0
+_glibc_version=2.36
_linux_version=5.10.4
pkgname=cross-powerpc64-linux-gnu
-version=0.34
+version=0.35
revision=1
build_style=void-cross
configure_args="--enable-secureplt --disable-vtable-verify --with-abi=elfv2
--enable-targets=powerpc-linux"
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
@@ -18,12 +19,12 @@ license="GPL-2.0-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
+ 1c959fea240906226062cb4b1e7ebce71a9f0e3c0836c09e7e3423d434fcfe75
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
From 088c1f270345f4fdb7f0171cc506d04eea09b26f Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:29 -0800
Subject: [PATCH 30/38] cross-powerpc64-linux-musl: update to gcc 12.2.0.
---
srcpkgs/cross-powerpc64-linux-musl/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-powerpc64-linux-musl/template b/srcpkgs/cross-powerpc64-linux-musl/template
index 016f18776a6d..e0848fe0bff7 100644
--- a/srcpkgs/cross-powerpc64-linux-musl/template
+++ b/srcpkgs/cross-powerpc64-linux-musl/template
@@ -1,30 +1,31 @@
# Template file for 'cross-powerpc64-linux-musl'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.2.0
_musl_version=1.1.24
_linux_version=5.10.4
_libucontext_version=1.0
pkgname=cross-powerpc64-linux-musl
-version=0.34
-revision=4
+version=0.35
+revision=1
build_style=void-cross
configure_args="--enable-secureplt --disable-vtable-verify
--disable-decimal-float --with-abi=elfv2 --enable-targets=powerpc-linux"
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
-homepage="https://www.voidlinux.org/"
license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
+homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz
https://github.com/kaniini/libucontext/archive/libucontext-${_libucontext_version}.tar.gz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec
23714e99a87f6dea82e8a073c526325161dd65462459820b16a6162be91955bb"
From d01c23315371342661778d3b72ae1ef5eec93cf3 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:29 -0800
Subject: [PATCH 31/38] cross-powerpc64le-linux-gnu: update to gcc 12.2.0.
---
srcpkgs/cross-powerpc64le-linux-gnu/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-powerpc64le-linux-gnu/template b/srcpkgs/cross-powerpc64le-linux-gnu/template
index 463d7e92d20d..8d8e010e15c0 100644
--- a/srcpkgs/cross-powerpc64le-linux-gnu/template
+++ b/srcpkgs/cross-powerpc64le-linux-gnu/template
@@ -1,16 +1,17 @@
# Template file for 'cross-powerpc64le-linux-gnu'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
-_glibc_version=2.32
+_binutils_version=2.39
+_gcc_version=12.2.0
+_glibc_version=2.36
_linux_version=5.10.4
pkgname=cross-powerpc64le-linux-gnu
-version=0.34
+version=0.35
revision=1
build_style=void-cross
configure_args="--enable-secureplt --disable-vtable-verify --with-abi=elfv2
--enable-targets=powerpcle-linux"
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
@@ -18,12 +19,12 @@ license="GPL-2.0-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
+ 1c959fea240906226062cb4b1e7ebce71a9f0e3c0836c09e7e3423d434fcfe75
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
From 45cd9b49fbcba201ba2bdc22f8800087c6b83cdf Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:29 -0800
Subject: [PATCH 32/38] cross-powerpc64le-linux-musl: update to gcc 12.2.0.
---
srcpkgs/cross-powerpc64le-linux-musl/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-powerpc64le-linux-musl/template b/srcpkgs/cross-powerpc64le-linux-musl/template
index c17a3cccfe29..0915e524545f 100644
--- a/srcpkgs/cross-powerpc64le-linux-musl/template
+++ b/srcpkgs/cross-powerpc64le-linux-musl/template
@@ -1,30 +1,31 @@
# Template file for 'cross-powerpc64le-linux-musl'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.2.0
_musl_version=1.1.24
_linux_version=5.10.4
_libucontext_version=1.0
pkgname=cross-powerpc64le-linux-musl
-version=0.34
-revision=4
+version=0.35
+revision=1
build_style=void-cross
configure_args="--enable-secureplt --disable-vtable-verify
--disable-decimal-float --with-abi=elfv2 --enable-targets=powerpcle-linux"
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
-homepage="https://www.voidlinux.org/"
license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
+homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz
https://github.com/kaniini/libucontext/archive/libucontext-${_libucontext_version}.tar.gz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec
23714e99a87f6dea82e8a073c526325161dd65462459820b16a6162be91955bb"
From 64c0b945f24ec94e530688bd71d6a9a7216eae46 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:29 -0800
Subject: [PATCH 33/38] cross-powerpcle-linux-gnu: update to gcc 12.2.0.
---
srcpkgs/cross-powerpcle-linux-gnu/template | 21 ++++++++++++---------
1 file changed, 12 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-powerpcle-linux-gnu/template b/srcpkgs/cross-powerpcle-linux-gnu/template
index 9aede3c465ce..687be8a44c6c 100644
--- a/srcpkgs/cross-powerpcle-linux-gnu/template
+++ b/srcpkgs/cross-powerpcle-linux-gnu/template
@@ -1,15 +1,16 @@
# Template file for 'cross-powerpcle-linux-gnu'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
-_glibc_version=2.32
+_binutils_version=2.39
+_gcc_version=12.2.0
+_glibc_version=2.36
_linux_version=5.10.4
pkgname=cross-powerpcle-linux-gnu
-version=0.34
+version=0.35
revision=1
build_style=void-cross
configure_args="--enable-secureplt --disable-vtable-verify"
hostmakedepends="texinfo tar gcc-objc flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
@@ -17,12 +18,12 @@ license="GPL-2.0-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
+ 1c959fea240906226062cb4b1e7ebce71a9f0e3c0836c09e7e3423d434fcfe75
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
@@ -35,6 +36,8 @@ if [ "$XBPS_TARGET_MACHINE" = "ppcle" ]; then
broken="Can't build crosstoolchain to itself"
fi
+broken="glibc uses big-endian specific instructions on 32-bit powerpc"
+
cross-powerpcle-linux-gnu-libc_package() {
short_desc+=" - glibc files"
nostrip=yes
From d5f02e5268f846de43a4ab778ff47d99335fa400 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:29 -0800
Subject: [PATCH 34/38] cross-powerpcle-linux-musl: update to gcc 12.2.0.
---
srcpkgs/cross-powerpcle-linux-musl/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-powerpcle-linux-musl/template b/srcpkgs/cross-powerpcle-linux-musl/template
index 045cfda987fe..bb984b9c42eb 100644
--- a/srcpkgs/cross-powerpcle-linux-musl/template
+++ b/srcpkgs/cross-powerpcle-linux-musl/template
@@ -1,28 +1,29 @@
# Template file for 'cross-powerpcle-linux-musl'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.2.0
_musl_version=1.1.24
_linux_version=5.10.4
pkgname=cross-powerpcle-linux-musl
-version=0.34
-revision=3
+version=0.35
+revision=1
build_style=void-cross
configure_args="--enable-secureplt --disable-vtable-verify
--disable-decimal-float"
hostmakedepends="texinfo tar gcc-objc flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
-homepage="https://www.voidlinux.org/"
license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
+homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
From 85a5a757bdfc2fd60cfcfba1baba26eb4e40e21c Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:30 -0800
Subject: [PATCH 35/38] cross-x86_64-linux-gnu: update to gcc 12.2.0.
---
srcpkgs/cross-x86_64-linux-gnu/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-x86_64-linux-gnu/template b/srcpkgs/cross-x86_64-linux-gnu/template
index 8918f3c22a1c..930aaf2a508b 100644
--- a/srcpkgs/cross-x86_64-linux-gnu/template
+++ b/srcpkgs/cross-x86_64-linux-gnu/template
@@ -1,14 +1,15 @@
# Template file for 'cross-x86_64-linux-gnu'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
-_glibc_version=2.32
+_binutils_version=2.39
+_gcc_version=12.2.0
+_glibc_version=2.36
_linux_version=5.10.4
pkgname=cross-x86_64-linux-gnu
-version=0.34
+version=0.35
revision=1
build_style=void-cross
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
@@ -16,12 +17,12 @@ license="GPL-2.0-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
+ 1c959fea240906226062cb4b1e7ebce71a9f0e3c0836c09e7e3423d434fcfe75
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
From a58db29069b41feea8d7e639f8433d550671dd1e Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:30 -0800
Subject: [PATCH 36/38] cross-x86_64-linux-musl: update to gcc 12.2.0.
---
srcpkgs/cross-x86_64-linux-musl/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-x86_64-linux-musl/template b/srcpkgs/cross-x86_64-linux-musl/template
index a941e7e02f6f..ac5b1c46ab82 100644
--- a/srcpkgs/cross-x86_64-linux-musl/template
+++ b/srcpkgs/cross-x86_64-linux-musl/template
@@ -1,28 +1,29 @@
# Template file for 'cross-x86_64-linux-musl'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.2.0
_musl_version=1.1.24
_linux_version=5.10.4
_libucontext_version=1.0
pkgname=cross-x86_64-linux-musl
-version=0.34
-revision=3
+version=0.35
+revision=1
build_style=void-cross
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
-homepage="https://www.voidlinux.org/"
license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
+homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz
https://github.com/kaniini/libucontext/archive/libucontext-${_libucontext_version}.tar.gz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec
23714e99a87f6dea82e8a073c526325161dd65462459820b16a6162be91955bb"
From e3f723657e13ee121cde2b5175ccc053f586b8d9 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Fri, 18 Nov 2022 02:01:19 -0800
Subject: [PATCH 37/38] cross-vpkg-dummy: update to 0.39.
---
srcpkgs/cross-vpkg-dummy/template | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/srcpkgs/cross-vpkg-dummy/template b/srcpkgs/cross-vpkg-dummy/template
index d83e38dc63ac..aeafb749dd5f 100644
--- a/srcpkgs/cross-vpkg-dummy/template
+++ b/srcpkgs/cross-vpkg-dummy/template
@@ -1,6 +1,6 @@
# Template file for 'cross-vpkg-dummy'
pkgname=cross-vpkg-dummy
-version=0.38
+version=0.39
revision=1
build_style=meta
short_desc="Dummy meta-pkg for cross building packages with xbps-src"
@@ -54,8 +54,8 @@ conflicts="
gcc-objc++>=0"
shlib_provides="
libgcc_s.so.1
- libgnat-10.so
- libgnarl-10.so
+ libgnat-12.so
+ libgnarl-12.so
libstdc++.so.6
libgfortran.so.5"
From 2d2c87fb5e63ef0d1ce567ce44b4043ba632f37b Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Sun, 27 Nov 2022 22:59:45 +0100
Subject: [PATCH 38/38] llvm: update to 15.0.6
---
common/shlibs | 7 +-
srcpkgs/clang | 2 +-
srcpkgs/clang-analyzer | 2 +-
srcpkgs/clang-tools-extra | 2 +-
srcpkgs/libclang | 2 +-
srcpkgs/libclang-cpp | 2 +-
srcpkgs/libcxx | 2 +-
srcpkgs/libcxx-devel | 2 +-
srcpkgs/libcxxabi | 2 +-
srcpkgs/libcxxabi-devel | 2 +-
srcpkgs/libllvm15 | 1 +
srcpkgs/libomp | 2 +-
srcpkgs/libomp-devel | 2 +-
srcpkgs/lld | 2 +-
srcpkgs/lld-devel | 2 +-
srcpkgs/lldb | 2 +-
srcpkgs/lldb-devel | 2 +-
srcpkgs/llvm-libunwind | 2 +-
srcpkgs/llvm-libunwind-devel | 2 +-
srcpkgs/llvm/template | 6 +-
.../llvm15/files/llvm-Config-llvm-config.h | 9 +
...clang-001-fix-unwind-chain-inclusion.patch | 44 ++
.../patches/clang-002-add-musl-triples.patch | 110 +++++
.../clang-003-ppc64-dynamic-linker-path.patch | 13 +
.../patches/clang-004-ppc64-musl-elfv2.patch | 48 ++
.../compiler-rt-sanitizer-ppc64-musl.patch | 35 ++
.../compiler-rt-xray-ppc64-musl.patch.skip | 62 +++
srcpkgs/llvm15/patches/libcxx-musl.patch | 26 ++
srcpkgs/llvm15/patches/libcxx-ppc.patch | 22 +
.../llvm15/patches/libcxx-ssp-nonshared.patch | 11 +
srcpkgs/llvm15/patches/libcxxabi-dl.patch | 25 +
.../llvm15/patches/libunwind-ppc32.patch.skip | 63 +++
srcpkgs/llvm15/patches/lldb-musl.patch | 40 ++
srcpkgs/llvm15/patches/llvm-001-musl.patch | 57 +++
.../patches/llvm-002-musl-ppc64-elfv2.patch | 30 ++
.../patches/llvm-003-ppc-secureplt.patch | 11 +
.../patches/llvm-004-override-opt.patch | 18 +
.../llvm15/patches/llvm-005-ppc-bigpic.patch | 36 ++
.../patches/llvm-006-aarch64-mf_exec.patch | 25 +
srcpkgs/llvm15/template | 434 ++++++++++++++++++
srcpkgs/llvm15/update | 3 +
41 files changed, 1147 insertions(+), 23 deletions(-)
create mode 120000 srcpkgs/libllvm15
create mode 100644 srcpkgs/llvm15/files/llvm-Config-llvm-config.h
create mode 100644 srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch
create mode 100644 srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch
create mode 100644 srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch
create mode 100644 srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch
create mode 100644 srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch
create mode 100644 srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip
create mode 100644 srcpkgs/llvm15/patches/libcxx-musl.patch
create mode 100644 srcpkgs/llvm15/patches/libcxx-ppc.patch
create mode 100644 srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch
create mode 100644 srcpkgs/llvm15/patches/libcxxabi-dl.patch
create mode 100644 srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip
create mode 100644 srcpkgs/llvm15/patches/lldb-musl.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-001-musl.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-004-override-opt.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch
create mode 100644 srcpkgs/llvm15/template
create mode 100644 srcpkgs/llvm15/update
diff --git a/common/shlibs b/common/shlibs
index 3f90cbd1ace3..8afb88b47e23 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -985,11 +985,12 @@ 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.12 lldb-12.0.0_1
-libclang.so.12 libclang-12.0.0_1
-libclang-cpp.so.12 libclang-cpp-12.0.0_1
+liblldb.so.15 lldb-15.0.5_1
+libclang.so.15 libclang-15.0.5_1
+libclang-cpp.so.15 libclang-cpp-15.0.5_1
libLLVM-11.so libllvm11-11.0.0_1
libLLVM-12.so libllvm12-12.0.0_1
+libLLVM-15.so libllvm15-15.0.5_1
libisofs.so.6 libisofs-0.6.24_1
libmpack.so.0 libmpack-1.0.5_1
libGeoIP.so.1 libgeoip-1.4.8_1
diff --git a/srcpkgs/clang b/srcpkgs/clang
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/clang
+++ b/srcpkgs/clang
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/clang-analyzer b/srcpkgs/clang-analyzer
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/clang-analyzer
+++ b/srcpkgs/clang-analyzer
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/clang-tools-extra b/srcpkgs/clang-tools-extra
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/clang-tools-extra
+++ b/srcpkgs/clang-tools-extra
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libclang b/srcpkgs/libclang
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libclang
+++ b/srcpkgs/libclang
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libclang-cpp b/srcpkgs/libclang-cpp
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libclang-cpp
+++ b/srcpkgs/libclang-cpp
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxx b/srcpkgs/libcxx
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxx
+++ b/srcpkgs/libcxx
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxx-devel b/srcpkgs/libcxx-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxx-devel
+++ b/srcpkgs/libcxx-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxxabi b/srcpkgs/libcxxabi
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxxabi
+++ b/srcpkgs/libcxxabi
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxxabi-devel b/srcpkgs/libcxxabi-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxxabi-devel
+++ b/srcpkgs/libcxxabi-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libllvm15 b/srcpkgs/libllvm15
new file mode 120000
index 000000000000..ad57a969b9f9
--- /dev/null
+++ b/srcpkgs/libllvm15
@@ -0,0 +1 @@
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libomp b/srcpkgs/libomp
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libomp
+++ b/srcpkgs/libomp
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libomp-devel b/srcpkgs/libomp-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libomp-devel
+++ b/srcpkgs/libomp-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lld b/srcpkgs/lld
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lld
+++ b/srcpkgs/lld
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lld-devel b/srcpkgs/lld-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lld-devel
+++ b/srcpkgs/lld-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lldb b/srcpkgs/lldb
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lldb
+++ b/srcpkgs/lldb
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lldb-devel b/srcpkgs/lldb-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lldb-devel
+++ b/srcpkgs/lldb-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm-libunwind b/srcpkgs/llvm-libunwind
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/llvm-libunwind
+++ b/srcpkgs/llvm-libunwind
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm-libunwind-devel b/srcpkgs/llvm-libunwind-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/llvm-libunwind-devel
+++ b/srcpkgs/llvm-libunwind-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm/template b/srcpkgs/llvm/template
index a92db6f94f9f..d14430090161 100644
--- a/srcpkgs/llvm/template
+++ b/srcpkgs/llvm/template
@@ -1,10 +1,10 @@
# Template file for 'llvm'
pkgname=llvm
-version=12.0.0
+version=15.0.0
revision=1
build_style=meta
-depends="llvm12"
-replaces="llvm11>=0 llvm10>=0 llvm9>=0 llvm8>=0 llvm7>=0 llvm6.0>=0 llvm3.9>=0"
+depends="llvm15"
+replaces="llvm12>=0 llvm11>=0 llvm10>=0 llvm9>=0 llvm8>=0 llvm7>=0 llvm6.0>=0 llvm3.9>=0"
short_desc="LLVM meta package"
maintainer="Enno Boland <gottox@voidlinux.org>"
license="Public Domain"
diff --git a/srcpkgs/llvm15/files/llvm-Config-llvm-config.h b/srcpkgs/llvm15/files/llvm-Config-llvm-config.h
new file mode 100644
index 000000000000..2fa08c9be696
--- /dev/null
+++ b/srcpkgs/llvm15/files/llvm-Config-llvm-config.h
@@ -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
diff --git a/srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch b/srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch
new file mode 100644
index 000000000000..e4eaa7783e7a
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch
@@ -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
diff --git a/srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch b/srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch
new file mode 100644
index 000000000000..25688d40dbc2
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch
@@ -0,0 +1,110 @@
+--- a/clang/lib/Driver/ToolChains/Gnu.cpp
++++ b/clang/lib/Driver/ToolChains/Gnu.cpp
+@@ -2086,7 +2086,8 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
+ static const char *const ARMHFTriples[] = {"arm-linux-gnueabihf",
+ "armv7hl-redhat-linux-gnueabi",
+ "armv6hl-suse-linux-gnueabi",
+- "armv7hl-suse-linux-gnueabi"};
++ "armv7hl-suse-linux-gnueabi",
++ "armv7l-linux-gnueabihf"};
+ static const char *const ARMebLibDirs[] = {"/lib"};
+ static const char *const ARMebTriples[] = {"armeb-linux-gnueabi",
+ "armeb-linux-androideabi"};
+@@ -2153,8 +2154,7 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
+ "powerpc64-suse-linux", "powerpc-montavista-linuxspe"};
+ static const char *const PPCLELibDirs[] = {"/lib32", "/lib"};
+ static const char *const PPCLETriples[] = {"powerpcle-linux-gnu",
+- "powerpcle-unknown-linux-gnu",
+- "powerpcle-linux-musl"};
++ "powerpcle-unknown-linux-gnu"};
+
+ static const char *const PPC64LibDirs[] = {"/lib64", "/lib"};
+ static const char *const PPC64Triples[] = {
+@@ -2235,6 +2235,87 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
+ return;
+ }
+
++ if (TargetTriple.isMusl()) {
++ static const char *const AArch64MuslTriples[] = {"aarch64-linux-musl"};
++ static const char *const ARMHFMuslTriples[] = {
++ "arm-linux-musleabihf", "armv7l-linux-musleabihf"
++ };
++ static const char *const ARMMuslTriples[] = {"arm-linux-musleabi"};
++ static const char *const X86_64MuslTriples[] = {"x86_64-linux-musl"};
++ static const char *const X86MuslTriples[] = {"i686-linux-musl"};
++ static const char *const MIPSMuslTriples[] = {
++ "mips-linux-musl", "mipsel-linux-musl",
++ "mipsel-linux-muslhf", "mips-linux-muslhf"
++ };
++ static const char *const PPCMuslTriples[] = {"powerpc-linux-musl"};
++ static const char *const PPCLEMuslTriples[] = {"powerpcle-linux-musl"};
++ static const char *const PPC64MuslTriples[] = {"powerpc64-linux-musl"};
++ static const char *const PPC64LEMuslTriples[] = {"powerpc64le-linux-musl"};
++
++ switch (TargetTriple.getArch()) {
++ case llvm::Triple::aarch64:
++ LibDirs.append(begin(AArch64LibDirs), end(AArch64LibDirs));
++ TripleAliases.append(begin(AArch64MuslTriples), end(AArch64MuslTriples));
++ BiarchLibDirs.append(begin(AArch64LibDirs), end(AArch64LibDirs));
++ BiarchTripleAliases.append(begin(AArch64MuslTriples), end(AArch64MuslTriples));
++ break;
++ case llvm::Triple::arm:
++ LibDirs.append(begin(ARMLibDirs), end(ARMLibDirs));
++ if (TargetTriple.getEnvironment() == llvm::Triple::MuslEABIHF) {
++ TripleAliases.append(begin(ARMHFMuslTriples), end(ARMHFMuslTriples));
++ } else {
++ TripleAliases.append(begin(ARMMuslTriples), end(ARMMuslTriples));
++ }
++ break;
++ case llvm::Triple::x86_64:
++ LibDirs.append(begin(X86_64LibDirs), end(X86_64LibDirs));
++ TripleAliases.append(begin(X86_64MuslTriples), end(X86_64MuslTriples));
++ BiarchLibDirs.append(begin(X86LibDirs), end(X86LibDirs));
++ BiarchTripleAliases.append(begin(X86MuslTriples), end(X86MuslTriples));
++ break;
++ case llvm::Triple::x86:
++ LibDirs.append(begin(X86LibDirs), end(X86LibDirs));
++ TripleAliases.append(begin(X86MuslTriples), end(X86MuslTriples));
++ BiarchLibDirs.append(begin(X86_64LibDirs), end(X86_64LibDirs));
++ BiarchTripleAliases.append(begin(X86_64MuslTriples), end(X86_64MuslTriples));
++ break;
++ case llvm::Triple::mips:
++ LibDirs.append(begin(MIPSLibDirs), end(MIPSLibDirs));
++ TripleAliases.append(begin(MIPSMuslTriples), end(MIPSMuslTriples));
++ break;
++ case llvm::Triple::ppc:
++ LibDirs.append(begin(PPCLibDirs), end(PPCLibDirs));
++ TripleAliases.append(begin(PPCMuslTriples), end(PPCMuslTriples));
++ BiarchLibDirs.append(begin(PPC64LibDirs), end(PPC64LibDirs));
++ BiarchTripleAliases.append(begin(PPC64MuslTriples), end(PPC64MuslTriples));
++ break;
++ case llvm::Triple::ppcle:
++ LibDirs.append(begin(PPCLELibDirs), end(PPCLELibDirs));
++ TripleAliases.append(begin(PPCLEMuslTriples), end(PPCLEMuslTriples));
++ BiarchLibDirs.append(begin(PPC64LELibDirs), end(PPC64LELibDirs));
++ BiarchTripleAliases.append(begin(PPC64LEMuslTriples), end(PPC64LEMuslTriples));
++ break;
++ case llvm::Triple::ppc64:
++ LibDirs.append(begin(PPC64LibDirs), end(PPC64LibDirs));
++ TripleAliases.append(begin(PPC64MuslTriples), end(PPC64MuslTriples));
++ BiarchLibDirs.append(begin(PPCLibDirs), end(PPCLibDirs));
++ BiarchTripleAliases.append(begin(PPCMuslTriples), end(PPCMuslTriples));
++ break;
++ case llvm::Triple::ppc64le:
++ LibDirs.append(begin(PPC64LELibDirs), end(PPC64LELibDirs));
++ TripleAliases.append(begin(PPC64LEMuslTriples), end(PPC64LEMuslTriples));
++ BiarchLibDirs.append(begin(PPCLELibDirs), end(PPCLELibDirs));
++ BiarchTripleAliases.append(begin(PPCLEMuslTriples), end(PPCLEMuslTriples));
++ break;
++ default:
++ break;
++ }
++ TripleAliases.push_back(TargetTriple.str());
++ if (TargetTriple.str() != BiarchTriple.str())
++ BiarchTripleAliases.push_back(BiarchTriple.str());
++ return;
++ }
++
+ // Android targets should not use GNU/Linux tools or libraries.
+ if (TargetTriple.isAndroid()) {
+ static const char *const AArch64AndroidTriples[] = {
diff --git a/srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch b/srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch
new file mode 100644
index 000000000000..4ad6412d1e6c
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch
@@ -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 =
diff --git a/srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch b/srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch
new file mode 100644
index 000000000000..21fc8003c5f1
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch
@@ -0,0 +1,48 @@
+--- a/clang/lib/Basic/Targets/PPC.h
++++ b/clang/lib/Basic/Targets/PPC.h
+@@ -415,11 +415,10 @@ public:
+ LongDoubleFormat = &llvm::APFloat::IEEEdouble();
+ } else if ((Triple.getArch() == llvm::Triple::ppc64le)) {
+ DataLayout = "e-m:e-i64:64-n32:64";
+- ABI = "elfv2";
+ } else {
+ DataLayout = "E-m:e-i64:64-n32:64";
+- ABI = "elfv1";
+ }
++ ABI = "elfv2";
+
+ if (Triple.isOSFreeBSD() || Triple.isOSOpenBSD() || Triple.isMusl()) {
+ LongDoubleWidth = LongDoubleAlign = 64;
+--- a/clang/lib/CodeGen/TargetInfo.cpp
++++ b/clang/lib/CodeGen/TargetInfo.cpp
+@@ -10927,9 +10927,9 @@ const TargetCodeGenInfo &CodeGenModule::getTargetCodeGenInfo() {
+ return SetCGInfo(new AIXTargetCodeGenInfo(Types, /*Is64Bit*/ true));
+
+ if (Triple.isOSBinFormatELF()) {
+- PPC64_SVR4_ABIInfo::ABIKind Kind = PPC64_SVR4_ABIInfo::ELFv1;
+- if (getTarget().getABI() == "elfv2")
+- Kind = PPC64_SVR4_ABIInfo::ELFv2;
++ PPC64_SVR4_ABIInfo::ABIKind Kind = PPC64_SVR4_ABIInfo::ELFv2;
++ if (getTarget().getABI() == "elfv1")
++ Kind = PPC64_SVR4_ABIInfo::ELFv1;
+ bool IsSoftFloat = CodeGenOpts.FloatABI == "soft";
+
+ return SetCGInfo(
+--- a/clang/lib/Driver/ToolChains/Clang.cpp
++++ b/clang/lib/Driver/ToolChains/Clang.cpp
+@@ -1920,14 +1920,7 @@ void Clang::AddPPCTargetArgs(const ArgList &Args,
+ const llvm::Triple &T = getToolChain().getTriple();
+ if (T.isOSBinFormatELF()) {
+ switch (getToolChain().getArch()) {
+- case llvm::Triple::ppc64: {
+- if ((T.isOSFreeBSD() && T.getOSMajorVersion() >= 13) ||
+- T.isOSOpenBSD() || T.isMusl())
+- ABIName = "elfv2";
+- else
+- ABIName = "elfv1";
+- break;
+- }
++ case llvm::Triple::ppc64:
+ case llvm::Triple::ppc64le:
+ ABIName = "elfv2";
+ break;
diff --git a/srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch b/srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch
new file mode 100644
index 000000000000..360cfc1ba7f1
--- /dev/null
+++ b/srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch
@@ -0,0 +1,35 @@
+--- 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__) || SANITIZER_RISCV64
++ defined(__hexagon__) || defined(__powerpc__) || 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_ANDROID
++#if (defined(__aarch64__) || defined(__powerpc__) || SANITIZER_RISCV64) && !SANITIZER_ANDROID
+ // GLIBC 2.20+ sys/user does not include asm/ptrace.h
+ # include <asm/ptrace.h>
+ #endif
diff --git a/srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip b/srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip
new file mode 100644
index 000000000000..d0b61c80c897
--- /dev/null
+++ b/srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip
@@ -0,0 +1,62 @@
+--- a/compiler-rt/lib/xray/xray_powerpc64.inc
++++ b/compiler-rt/lib/xray/xray_powerpc64.inc
+@@ -12,7 +12,13 @@
+
+ #include <cstdint>
+ #include <mutex>
++#ifdef __GLIBC__
+ #include <sys/platform/ppc.h>
++#else
++#include <cctype>
++#include <cstring>
++#include <cstdlib>
++#endif
+
+ #include "xray_defs.h"
+
+@@ -20,13 +26,45 @@ namespace __xray {
+
+ ALWAYS_INLINE uint64_t readTSC(uint8_t &CPU) XRAY_NEVER_INSTRUMENT {
+ CPU = 0;
++#ifdef __GLIBC__
+ return __ppc_get_timebase();
++#else
++ return __builtin_ppc_get_timebase();
++#endif
+ }
+
+ inline uint64_t getTSCFrequency() XRAY_NEVER_INSTRUMENT {
+ static std::mutex M;
+ std::lock_guard<std::mutex> Guard(M);
++#ifdef __GLIBC__
+ return __ppc_get_timebase_freq();
++#else
++ /* FIXME: a less dirty implementation? */
++ static uint64_t base;
++ if (!base) {
++ FILE *f = fopen("/proc/cpuinfo", "rb");
++ if (f) {
++ ssize_t nr;
++ /* virtually always big enough to hold the line */
++ char buf[512];
++ while (fgets(buf, sizeof(buf), f)) {
++ char *ret = strstr(buf, "timebase");
++ if (!ret) {
++ continue;
++ }
++ ret += sizeof("timebase") - 1;
++ ret = strchr(ret, ':');
++ if (!ret) {
++ continue;
++ }
++ base = strtoul(ret + 1, nullptr, 10);
++ break;
++ }
++ fclose(f);
++ }
++ }
++ return base;
++#endif
+ }
+
+ inline bool probeRequiredCPUFeatures() XRAY_NEVER_INSTRUMENT {
diff --git a/srcpkgs/llvm15/patches/libcxx-musl.patch b/srcpkgs/llvm15/patches/libcxx-musl.patch
new file mode 100644
index 000000000000..bbd31ffc2cb1
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxx-musl.patch
@@ -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,
+ typename remove_reference<decltype(errno)>::type __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
+ typename remove_reference<decltype(errno)>::type __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,
+ typename remove_reference<decltype(errno)>::type __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
+ typename remove_reference<decltype(errno)>::type __current_errno = errno;
+ if (__current_errno == 0)
+ errno = __save_errno;
diff --git a/srcpkgs/llvm15/patches/libcxx-ppc.patch b/srcpkgs/llvm15/patches/libcxx-ppc.patch
new file mode 100644
index 000000000000..7a92f8004e1c
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxx-ppc.patch
@@ -0,0 +1,22 @@
+This ensures `is_iec559` is defined correctly under all long double ABIs,
+including musl and its 64-bit long double. Also, `__ppc__` or `__ppc64__`
+is not defined on gcc.
+
+--- a/libcxx/include/limits
++++ b/libcxx/include/limits
+@@ -426,8 +426,14 @@ protected:
+ _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type signaling_NaN() _NOEXCEPT {return __builtin_nansl("");}
+ _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type denorm_min() _NOEXCEPT {return __LDBL_DENORM_MIN__;}
+
+-#if (defined(__ppc__) || defined(__ppc64__))
++#if defined(__powerpc__) || defined(__powerpc64__)
++#if (__LDBL_MAX_EXP__ > __DBL_MAX_EXP__) || (__LDBL_MANT_DIG__ == __DBL_MANT_DIG__)
++ /* IEEE 754 quadruple or double precision */
++ static _LIBCPP_CONSTEXPR const bool is_iec559 = true;
++#else
++ /* 128-bit IBM double-double */
+ static _LIBCPP_CONSTEXPR const bool is_iec559 = false;
++#endif
+ #else
+ static _LIBCPP_CONSTEXPR const bool is_iec559 = true;
+ #endif
diff --git a/srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch b/srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch
new file mode 100644
index 000000000000..70292beb2fcd
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch
@@ -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()
diff --git a/srcpkgs/llvm15/patches/libcxxabi-dl.patch b/srcpkgs/llvm15/patches/libcxxabi-dl.patch
new file mode 100644
index 000000000000..3a15f9db8c98
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxxabi-dl.patch
@@ -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 @@
+ target_link_libraries(${target} PRIVATE m)
+ endif()
+
++ if (LIBCXX_HAS_C_LIB)
++ target_link_libraries(${target} PRIVATE dl)
++ endif()
++
+ if (LIBCXX_HAS_RT_LIB)
+ target_link_libraries(${target} PRIVATE rt)
+ endif()
diff --git a/srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip b/srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip
new file mode 100644
index 000000000000..74aa7576ecf9
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip
@@ -0,0 +1,63 @@
+This fixes build at least with gcc9 which does not define `__ppc__`.
+
+--- a/libunwind/include/__libunwind_config.h
++++ b/libunwind/include/__libunwind_config.h
+@@ -49,7 +49,7 @@
+ # define _LIBUNWIND_CONTEXT_SIZE 167
+ # define _LIBUNWIND_CURSOR_SIZE 179
+ # define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_PPC64
+-# elif defined(__ppc__)
++# elif defined(__powerpc__)
+ # define _LIBUNWIND_TARGET_PPC 1
+ # define _LIBUNWIND_CONTEXT_SIZE 117
+ # define _LIBUNWIND_CURSOR_SIZE 124
+--- a/libunwind/src/UnwindRegistersRestore.S
++++ b/libunwind/src/UnwindRegistersRestore.S
+@@ -392,7 +392,7 @@ Lnovec:
+ PPC64_LR(3)
+ bctr
+
+-#elif defined(__ppc__)
++#elif defined(__powerpc__)
+
+ DEFINE_LIBUNWIND_FUNCTION(_ZN9libunwind13Registers_ppc6jumptoEv)
+ //
+--- a/libunwind/src/UnwindRegistersSave.S
++++ b/libunwind/src/UnwindRegistersSave.S
+@@ -554,7 +554,7 @@ DEFINE_LIBUNWIND_FUNCTION(__unw_getcontext)
+ blr
+
+
+-#elif defined(__ppc__)
++#elif defined(__powerpc__)
+
+ //
+ // extern int unw_getcontext(unw_context_t* thread_state)
+--- a/libunwind/src/config.h
++++ b/libunwind/src/config.h
+@@ -95,12 +95,12 @@
+ #define _LIBUNWIND_BUILD_SJLJ_APIS
+ #endif
+
+-#if defined(__i386__) || defined(__x86_64__) || defined(__ppc__) || defined(__ppc64__) || defined(__powerpc64__)
++#if defined(__i386__) || defined(__x86_64__) || defined(__powerpc__) || defined(__powerpc64__)
+ #define _LIBUNWIND_SUPPORT_FRAME_APIS
+ #endif
+
+ #if defined(__i386__) || defined(__x86_64__) || \
+- defined(__ppc__) || defined(__ppc64__) || defined(__powerpc64__) || \
++ defined(__powerpc__) || defined(__powerpc64__) || \
+ (!defined(__APPLE__) && defined(__arm__)) || \
+ (defined(__arm64__) || defined(__aarch64__)) || \
+ defined(__mips__)
+--- a/libunwind/src/libunwind.cpp
++++ b/libunwind/src/libunwind.cpp
+@@ -42,7 +42,7 @@ _LIBUNWIND_HIDDEN int __unw_init_local(unw_cursor_t *cursor,
+ # define REGISTER_KIND Registers_x86_64
+ #elif defined(__powerpc64__)
+ # define REGISTER_KIND Registers_ppc64
+-#elif defined(__ppc__)
++#elif defined(__powerpc__)
+ # define REGISTER_KIND Registers_ppc
+ #elif defined(__aarch64__)
+ # define REGISTER_KIND Registers_arm64
diff --git a/srcpkgs/llvm15/patches/lldb-musl.patch b/srcpkgs/llvm15/patches/lldb-musl.patch
new file mode 100644
index 000000000000..026c5e1e61ba
--- /dev/null
+++ b/srcpkgs/llvm15/patches/lldb-musl.patch
@@ -0,0 +1,40 @@
+--- a/lldb/source/Plugins/Process/Linux/Procfs.h
++++ b/lldb/source/Plugins/Process/Linux/Procfs.h
+@@ -10,6 +10,7 @@
+ // sys/procfs.h on Android/Linux for all supported architectures.
+
+ #include <sys/ptrace.h>
++#include <asm/ptrace.h>
+
+ #include "lldb/lldb-types.h"
+
+@@ -17,23 +18,13 @@
+
+ #include <vector>
+
+-#ifdef __ANDROID__
+-#if defined(__arm64__) || defined(__aarch64__)
+-typedef unsigned long elf_greg_t;
+-typedef elf_greg_t
+- elf_gregset_t[(sizeof(struct user_pt_regs) / sizeof(elf_greg_t))];
+-typedef struct user_fpsimd_state elf_fpregset_t;
+-#ifndef NT_FPREGSET
+-#define NT_FPREGSET NT_PRFPREG
+-#endif // NT_FPREGSET
+-#elif defined(__mips__)
+-#ifndef NT_FPREGSET
+-#define NT_FPREGSET NT_PRFPREG
+-#endif // NT_FPREGSET
+-#endif
+-#else // __ANDROID__
++#if !defined(__GLIBC__) && defined(__powerpc__)
++#define pt_regs musl_pt_regs
++#include <sys/procfs.h>
++#undef pt_regs
++#else
+ #include <sys/procfs.h>
+-#endif // __ANDROID__
++#endif
+
+ namespace lldb_private {
+ namespace process_linux {
diff --git a/srcpkgs/llvm15/patches/llvm-001-musl.patch b/srcpkgs/llvm15/patches/llvm-001-musl.patch
new file mode 100644
index 000000000000..f2a3f8d62813
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-001-musl.patch
@@ -0,0 +1,57 @@
+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;
+diff --git a/lib/Support/Unix/DynamicLibrary.inc b/lib/Support/Unix/DynamicLibrary.inc
+index a2a37996..2f86c470 100644
+--- a/llvm/lib/Support/Unix/DynamicLibrary.inc
++++ b/llvm/lib/Support/Unix/DynamicLibrary.inc
+@@ -102,7 +102,7 @@ static void *DoSearch(const char* SymbolName) {
+
+ // This macro returns the address of a well-known, explicit symbol
+ #define EXPLICIT_SYMBOL(SYM) \
+- if (!strcmp(SymbolName, #SYM)) return &SYM
++ if (!strcmp(SymbolName, #SYM)) return (void *)&SYM
+
+ // Under glibc we have a weird situation. The stderr/out/in symbols are both
+ // macros and global variables because of standards requirements. So, we
+diff --git a/utils/unittest/googletest/src/gtest.cc b/utils/unittest/googletest/src/gtest.cc
+index d882ab2e..f1fb12d0 100644
+--- a/llvm/utils/unittest/googletest/src/gtest.cc
++++ b/llvm/utils/unittest/googletest/src/gtest.cc
+@@ -128,6 +128,7 @@
+
+ #if GTEST_CAN_STREAM_RESULTS_
+ # include <arpa/inet.h> // NOLINT
++# include <sys/socket.h> // NOLINT
+ # include <netdb.h> // NOLINT
+ # include <sys/socket.h> // NOLINT
+ # include <sys/types.h> // NOLINT
diff --git a/srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch b/srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch
new file mode 100644
index 000000000000..0071d964bd37
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch
@@ -0,0 +1,30 @@
+This patches LLVM to use ELFv2 on ppc64 unconditionally unless overridden. We
+need this because unlike most distros we use ELFv2 for both glibc and musl
+on big endian ppc64.
+
+diff --git a/lib/Target/PowerPC/PPCTargetMachine.cpp b/lib/Target/PowerPC/PPCTargetMachine.cpp
+index 0634833e..b7cbc2e7 100644
+--- a/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp
++++ b/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp
+@@ -222,9 +222,8 @@ static PPCTargetMachine::PPCABI computeTargetABI(const Triple &TT,
+
+ switch (TT.getArch()) {
+ case Triple::ppc64le:
+- return PPCTargetMachine::PPC_ABI_ELFv2;
+ case Triple::ppc64:
+- return PPCTargetMachine::PPC_ABI_ELFv1;
++ return PPCTargetMachine::PPC_ABI_ELFv2;
+ default:
+ return PPCTargetMachine::PPC_ABI_UNKNOWN;
+ }
+diff --git a/test/CodeGen/PowerPC/ppc64-elf-abi.ll b/test/CodeGen/PowerPC/ppc64-elf-abi.ll
+index 8b1cf6b5..296a2afa 100644
+--- a/llvm/test/CodeGen/PowerPC/ppc64-elf-abi.ll
++++ b/llvm/test/CodeGen/PowerPC/ppc64-elf-abi.ll
+@@ -1,4 +1,5 @@
+-; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv1
++; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv2
++; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-musl < %s | FileCheck %s -check-prefix=CHECK-ELFv2
+ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu -target-abi elfv1 < %s | FileCheck %s -check-prefix=CHECK-ELFv1
+ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu -target-abi elfv2 < %s | FileCheck %s -check-prefix=CHECK-ELFv2
+ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv2
diff --git a/srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch b/srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch
new file mode 100644
index 000000000000..b5d15974375d
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch
@@ -0,0 +1,11 @@
+--- a/llvm/lib/Target/PowerPC/PPCSubtarget.cpp
++++ b/llvm/lib/Target/PowerPC/PPCSubtarget.cpp
+@@ -165,7 +165,7 @@ void PPCSubtarget::initSubtargetFeatures(StringRef CPU, StringRef FS) {
+
+ if ((TargetTriple.isOSFreeBSD() && TargetTriple.getOSMajorVersion() >= 13) ||
+ TargetTriple.isOSNetBSD() || TargetTriple.isOSOpenBSD() ||
+- TargetTriple.isMusl())
++ isTargetLinux())
+ SecurePlt = true;
+
+ if (HasSPE && IsPPC64)
diff --git a/srcpkgs/llvm15/patches/llvm-004-override-opt.patch b/srcpkgs/llvm15/patches/llvm-004-override-opt.patch
new file mode 100644
index 000000000000..51d0e4b31b32
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-004-override-opt.patch
@@ -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)
diff --git a/srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch b/srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch
new file mode 100644
index 000000000000..d332687b9d92
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch
@@ -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);
diff --git a/srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch b/srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch
new file mode 100644
index 000000000000..a00abd216665
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch
@@ -0,0 +1,25 @@
+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__) || defined (__ppc__) || \
+- defined(_POWER) || defined(_ARCH_PPC))
++ defined(_POWER) || defined(_ARCH_PPC) || (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
diff --git a/srcpkgs/llvm15/template b/srcpkgs/llvm15/template
new file mode 100644
index 000000000000..5ed8be136668
--- /dev/null
+++ b/srcpkgs/llvm15/template
@@ -0,0 +1,434 @@
+# Template file for 'llvm15'
+pkgname=llvm15
+version=15.0.6
+revision=1
+build_wrksrc=llvm
+build_style=cmake
+configure_args="
+ -DCMAKE_BUILD_TYPE=Release -Wno-dev
+ -DENABLE_LINKER_BUILD_ID=YES
+ -DLLDB_USE_SYSTEM_SIX=YES
+ -DLIBCXX_CXX_ABI=libcxxabi
+ -DLIBCXX_ENABLE_STATIC_ABI_LIBRARY=YES
+ -DLIBCXXABI_USE_LLVM_UNWINDER=YES
+ -DLIBCXXABI_ENABLE_STATIC_UNWINDER=YES
+ -DLIBOMP_ENABLE_SHARED=YES
+ -DLIBOMP_INSTALL_ALIASES=NO
+ -DLLVM_INCLUDE_DOCS=YES
+ -DLLVM_BUILD_DOCS=YES
+ -DLLVM_ENABLE_SPHINX=YES
+ -DSPHINX_WARNINGS_AS_ERRORS=NO
+ -DLLVM_INSTALL_UTILS=YES
+ -DLLVM_BUILD_LLVM_DYLIB=YES
+ -DLLVM_LINK_LLVM_DYLIB=YES
+ -DLLVM_ENABLE_RTTI=YES
+ -DLLVM_ENABLE_FFI=YES
+ -DLLVM_BINUTILS_INCDIR=/usr/include"
+hostmakedepends="perl python3 zlib-devel libffi-devel swig python3-Sphinx
+ python3-recommonmark python3-sphinx-automodapi"
+makedepends="python3-devel zlib-devel elfutils-devel libffi-devel libedit-devel
+ libxml2-devel binutils-devel libatomic-devel"
+depends="libllvm15>=${version}_${revision}"
+short_desc="Low Level Virtual Machine"
+maintainer="Orphaned <orphan@voidlinux.org>"
+license="Apache-2.0"
+homepage="https://www.llvm.org"
+distfiles="https://github.com/llvm/llvm-project/releases/download/llvmorg-${version}/llvm-project-${version}.src.tar.xz"
+checksum=9d53ad04dc60cb7b30e810faf64c5ab8157dadef46c8766f67f286238256ff92
+lib32disabled=yes
+python_version=3
+
+if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
+ configure_args+=" -DLIBCXX_HAS_MUSL_LIBC=YES"
+ makedepends+=" libexecinfo-devel"
+ depends+=" libexecinfo-devel"
+fi
+
+# "operand out of range" assembler failures
+case "$XBPS_TARGET_MACHINE" in
+ ppc64*) ;;
+ ppc*) configure_args+=" -DCLANG_ENABLE_CLANGD=OFF" ;;
+esac
+
+_enabled_projects="clang;clang-tools-extra;compiler-rt;libcxx;libcxxabi;libunwind;lld"
+
+_lldb_enable=yes
+_libomp_enable=no
+
+case "$XBPS_TARGET_MACHINE" in
+ ppc64le*) ;;
+ ppc*|i686*) _lldb_enable=no ;;
+esac
+
+case "$XBPS_TARGET_MACHINE" in
+ x86_64*|aarch64*|ppc64*) _libomp_enable=yes;;
+esac
+
+subpackages="clang-tools-extra"
+
+# must go before clang
+if [ "$_libomp_enable" = "yes" ]; then
+ _enabled_projects+=";openmp"
+ subpackages+=" libomp libomp-devel"
+ # because of cmake nonsense referencing libomptarget.so.*
+ depends+=" libomp>=${version}_${revision}"
+fi
+
+subpackages+=" clang clang-analyzer libclang libclang-cpp
+ llvm-libunwind llvm-libunwind-devel libcxx libcxx-devel
+ libcxxabi libcxxabi-devel libllvm15"
+
+if [ "$_lldb_enable" = "yes" ]; then
+ # XXX fails to cross compile due to python
+ _enabled_projects+=";lldb"
+ subpackages+=" lldb lldb-devel"
+fi
+
+subpackages+=" lld lld-devel"
+
+configure_args+=" -DLLVM_ENABLE_PROJECTS=${_enabled_projects}"
+
+post_patch() {
+ if [ "$_lldb_enable" = "yes" ]; then
+ if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
+ vsed -i 's|__ptrace_request|int|g' \
+ ${wrksrc}/lldb/source/Plugins/Process/Linux/NativeProcessLinux.cpp
+ fi
+ # disable docs for lldb as they fail to generate
+ vsed -i '/add_subdirectory(docs)/d' \
+ ${wrksrc}/lldb/CMakeLists.txt
+ fi
+
+ # update config.guess for better platform detection
+ cp $XBPS_COMMONDIR/environment/configure/automake/config.guess \
+ ${wrksrc}/llvm/cmake
+
+ # fix linker failures on some archs
+ vsed -i 's,check_library_exists(gcc_s .*,set(LIBCXXABI_HAS_GCC_S_LIB ON),' \
+ ${wrksrc}/libcxxabi/cmake/config-ix.cmake
+ vsed -i 's,check_library_exists(gcc .*,set(LIBCXXABI_HAS_GCC_LIB ON),' \
+ ${wrksrc}/libcxxabi/cmake/config-ix.cmake
+
+ # need libssp_nonshared on some musl platforms (because of nodefaultlibs)
+ case "$XBPS_TARGET_MACHINE" in
+ ppc64*) ;;
+ ppc*-musl|i686-musl|mips*-musl)
+ vsed -i 's,^# Setup flags.$,add_library_flags(ssp_nonshared),' \
+ ${wrksrc}/libunwind/src/CMakeLists.txt
+ vsed -i 's,^# Setup flags.$,add_library_flags(ssp_nonshared),' \
+ ${wrksrc}/libcxxabi/src/CMakeLists.txt
+ vsed -i 's,#ssp,,' ${wrksrc}/libcxx/CMakeLists.txt
+ ;;
+ esac
+
+ case "$XBPS_TARGET_MACHINE" in
+ x86_64-musl) # some sanitizer currently only on x86_64 stuff needs backtrace
+ vsed -i 's,# Set common link flags.,list(APPEND SANITIZER_COMMON_LINK_LIBS execinfo),' \
+ ${wrksrc}/compiler-rt/CMakeLists.txt
+ ;;
+ arm*-musl|i686-musl) # sanitizer code is broken since it duplicates some libc bits
+ vsed -i 's/set(COMPILER_RT_HAS_SANITIZER_COMMON TRUE)/set(COMPILER_RT_HAS_SANITIZER_COMMON FALSE)/' \
+ ${wrksrc}/compiler-rt/cmake/config-ix.cmake
+ ;;
+ esac
+}
+
+pre_configure() {
+ local triplet
+
+ # Vastly reduce size of debugging symbols:
+ CFLAGS=${CFLAGS/ -g/ -g1}
+ CXXFLAGS=${CXXFLAGS/ -g/ -g1}
+
+ # since gcc9, the build likes to blow up for ppc32 apparently because
+ # of clang being too large for a 24-bit relative call to the PLT, so
+ # optimize for size instead
+ case "$XBPS_TARGET_MACHINE" in
+ ppc64*) ;;
+ mips*-musl|ppc*) configure_args+=" -DVOID_CXX_OPT_FLAGS=-Os" ;;
+ esac
+
+ if [ "$CROSS_BUILD" ]; then
+ msg_normal "Building host tblgen\n"
+ mkdir -p build/HOST
+ cd build/HOST
+ CC="$BUILD_CC" CXX="$BUILD_CXX" CFLAGS="$BUILD_CFLAGS" \
+ CXXFLAGS="$BUILD_CXXFLAGS" LDFLAGS="$BUILD_LDFLAGS" \
+ cmake ../.. -DCMAKE_BUILD_TYPE=Release \
+ -DLLVM_ENABLE_PROJECTS=${_enabled_projects}
+ make ${makejobs} -C utils/TableGen
+ make ${makejobs} -C tools/clang/utils/TableGen
+ [ "$_lldb_enable" = "yes" ] && make ${makejobs} -C tools/lldb/utils/TableGen
+ configure_args+=" -DLLVM_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/llvm-tblgen"
+ configure_args+=" -DCLANG_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/clang-tblgen"
+ [ "$_lldb_enable" = "yes" ] && configure_args+=" -DLLDB_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/lldb-tblgen"
+ cd ../..
+ fi
+
+ case "$XBPS_TARGET_MACHINE" in
+ i686*) _arch="X86";;
+ x86_64*) _arch="X86";;
+ armv5*) _arch="Armv5te";;
+ armv6*) _arch="Armv6";;
+ armv7*) _arch="Armv7";;
+ aarch64*) _arch="AArch64";;
+ mips*) _arch="Mips";;
+ ppc*) _arch="PowerPC";;
+ riscv64*) _arch="RISCV64";;
+ esac
+
+ triplet=${XBPS_CROSS_TRIPLET:-$XBPS_TRIPLET}
+
+ configure_args+=" -DLLVM_TARGET_ARCH=${_arch}"
+ configure_args+=" -DLLVM_HOST_TRIPLE=${triplet}"
+ configure_args+=" -DLLVM_DEFAULT_TARGET_TRIPLE=${triplet}"
+}
+
+do_install() {
+ cd build
+ cmake -DCMAKE_INSTALL_PREFIX=${DESTDIR}/usr -P cmake_install.cmake
+
+ # Required for multilib.
+ if [ "$XBPS_TARGET_MACHINE" = "x86_64" ]; then
+ for _header in llvm-config; do
+ mv ${DESTDIR}/usr/include/llvm/Config/${_header}{,-64}.h
+ vinstall ${FILESDIR}/llvm-Config-${_header}.h 644 \
+ usr/include/llvm/Config ${_header}.h
+ done
+ fi
+
+ # Remove llvm-config-host in cross builds.
+ if [ "$CROSS_BUILD" ]; then
+ rm -f ${DESTDIR}/usr/bin/llvm-config-host
+ fi
+
+ # Install libcxxabi headers
+ vinstall ${wrksrc}/libcxxabi/include/__cxxabi_config.h 644 usr/include
+ vinstall ${wrksrc}/libcxxabi/include/cxxabi.h 644 usr/include
+
+ # Install libunwind headers
+ vinstall ${wrksrc}/libunwind/include/__libunwind_config.h 644 usr/include
+ vinstall ${wrksrc}/libunwind/include/libunwind.h 644 usr/include
+ vinstall ${wrksrc}/libunwind/include/unwind.h 644 usr/include
+ vinstall ${wrksrc}/libunwind/include/mach-o/compact_unwind_encoding.h \
+ 644 usr/include/mach-o
+}
+
+clang-analyzer_package() {
+ pycompile_dirs="usr/share/scan-view"
+ depends="clang-${version}_${revision} python3 perl"
+ short_desc+=" - A source code analysis framework"
+ homepage="https://clang-analyzer.llvm.org/"
+ pkg_install() {
+ vmove "usr/bin/scan-*"
+ vmove "usr/libexec/*analyzer"
+ vmove "usr/share/scan-*"
+ vmove usr/share/man/man1/scan-build.1
+ }
+}
+
+clang-tools-extra_package() {
+ lib32disabled=yes
+ depends="clang-${version}_${revision} python3"
+ short_desc+=" - Extra Clang tools"
+ homepage="https://clang.llvm.org/extra/"
+ pkg_install() {
+ vmove usr/bin/clang-apply-replacements
+ vmove usr/bin/clang-doc
+ vmove usr/bin/clang-include-fixer
+ vmove usr/bin/clang-query
+ vmove usr/bin/clang-rename
+ vmove usr/bin/clang-reorder-fields
+ vmove usr/bin/clang-tidy
+ vmove usr/bin/clangd
+ vmove usr/bin/diagtool
+ vmove usr/bin/find-all-symbols
+ vmove usr/bin/hmaptool
+ vmove usr/bin/modularize
+ vmove usr/bin/pp-trace
+ vmove usr/bin/sancov
+ vmove usr/include/clang-tidy
+ vmove "usr/lib/libclangApplyReplacements*"
+ vmove "usr/lib/libclangDoc*"
+ vmove "usr/lib/libclangIncludeFixer*"
+ vmove "usr/lib/libclangReorderFields*"
+ vmove "usr/lib/libclangQuery*"
+ vmove "usr/lib/libclangTidy*"
+ vmove "usr/share/clang/*include-fixer*"
+ vmove "usr/share/clang/*rename*"
+ vmove "usr/share/clang/*tidy*"
+ vmove usr/share/doc/LLVM/clang-tools
+ vmove usr/share/man/man1/diagtool.1
+ vmove usr/share/man/man1/extraclangtools.1
+ }
+}
+
+clang_package() {
+ lib32disabled=yes
+ depends="libstdc++-devel libgcc-devel binutils ${XBPS_TARGET_LIBC}-devel
+ libclang-${version}_${revision}"
+ short_desc+=" - C language family frontend"
+ homepage="https://clang.llvm.org/"
+ pkg_install() {
+ vmove "usr/bin/*clang*"
+ vmove usr/bin/c-index-test
+ vmove usr/include/clang
+ vmove usr/include/clang-c
+ vmove usr/lib/clang
+ vmove usr/lib/cmake/clang
+ vmove "usr/lib/libclang*.a"
+ vmove "usr/lib/libclang*.so"
+ vmove usr/share/clang
+ vmove usr/share/doc/LLVM/clang
+ vmove usr/share/man/man1/clang.1
+ }
+}
+
+libclang_package() {
+ short_desc+=" - C frontend runtime library"
+ pkg_install() {
+ vmove "usr/lib/libclang.so.*"
+ }
+}
+
+libclang-cpp_package() {
+ short_desc+=" - C frontend runtime library (C++ interface)"
+ pkg_install() {
+ vmove "usr/lib/libclang-cpp.so.*"
+ }
+}
+
+lld_package() {
+ lib32disabled=yes
+ short_desc+=" - linker"
+ homepage="https://lld.llvm.org"
+ pkg_install() {
+ vmove usr/bin/ld.lld*
+ vmove usr/bin/ld64.lld*
+ vmove usr/bin/lld*
+ vmove usr/bin/wasm-ld
+ vmove usr/share/doc/LLVM/lld
+ }
+}
+
+lld-devel_package() {
+ lib32disabled=yes
+ short_desc+=" - linker - development files"
+ homepage="https://lld.llvm.org"
+ depends="lld>=${version}_${revision}"
+ pkg_install() {
+ vmove usr/include/lld
+ vmove usr/lib/cmake/lld
+ vmove "usr/lib/liblld*a"
+ }
+}
+
+lldb_package() {
+ lib32disabled=yes
+ depends+=" python3-six"
+ short_desc+=" - LLDB debugger"
+ homepage="https://lldb.llvm.org/"
+ pkg_install() {
+ vmove usr/bin/*lldb*
+ vmove usr/lib/liblldb*so.*
+ vmove /usr/lib/python*
+ }
+}
+
+lldb-devel_package() {
+ lib32disabled=yes
+ depends="lldb>=${version}_${revision}"
+ short_desc+=" - LLDB debugger - development files"
+ pkg_install() {
+ vmove usr/include/lldb
+ vmove "usr/lib/liblldb*.so"
+ }
+}
+
+llvm-libunwind_package() {
+ short_desc+=" - libunwind"
+ pkg_install() {
+ vmove "usr/lib/${XBPS_TRIPLET}/libunwind.so.*"
+ }
+}
+
+llvm-libunwind-devel_package() {
+ short_desc+=" - libunwind - development files"
+ depends="llvm-libunwind>=${version}_${revision}"
+ conflicts="libunwind-devel>=0"
+ pkg_install() {
+ vmove usr/include/mach-o
+ vmove "usr/include/*unwind*"
+ vmove "usr/lib/${XBPS_TRIPLET}/libunwind.a"
+ vmove "usr/lib/${XBPS_TRIPLET}/libunwind.so"
+ vmove usr/share/doc/LLVM/libunwind
+ }
+}
+
+libcxxabi_package() {
+ short_desc+=" - low level support for libc++"
+ pkg_install() {
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++abi.so.*"
+ }
+}
+
+libcxxabi-devel_package() {
+ short_desc+=" - low level support for libc++ - development files"
+ depends="libcxxabi>=${version}_${revision}"
+ pkg_install() {
+ vmove "usr/include/*cxxabi*"
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++abi.so"
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++abi.a"
+ }
+}
+
+libcxx_package() {
+ short_desc+=" - C++ standard library"
+ pkg_install() {
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++.so.*"
+ }
+}
+
+libcxx-devel_package() {
+ short_desc+=" - C++ standard library - development files"
+ depends="libcxx>=${version}_${revision}"
+ pkg_install() {
+ vmove usr/include/c++
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++.so"
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++.a"
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++experimental.a"
+ vmove usr/share/doc/LLVM/libcxx
+ }
+}
+
+libomp_package() {
+ short_desc+=" - Clang OpenMP support library"
+ pkg_install() {
+ vmove usr/lib/libarcher.so
+ vmove usr/lib/libomp.so
+ vmove usr/lib/libompd.so
+ vmove "usr/lib/libomptarget.rtl.*.so"
+ vmove "usr/lib/libomp*.so.*"
+ }
+}
+
+libomp-devel_package() {
+ short_desc+=" - Clang OpenMP support library - development files"
+ depends="libomp>=${version}_${revision}"
+ pkg_install() {
+ vmove "usr/include/omp*.h"
+ vmove "usr/lib/clang/${version}/include/omp*.h"
+ vmove "usr/lib/libarcher*"
+ vmove "usr/lib/libomp*.so"
+ vmove usr/lib/cmake/openmp
+ vmove usr/share/doc/LLVM/openmp
+ vmove usr/share/man/man1/llvmopenmp.1
+ }
+}
+
+libllvm15_package() {
+ short_desc+=" - runtime library"
+ pkg_install() {
+ vmove "usr/lib/libLLVM-*.so*"
+ }
+}
diff --git a/srcpkgs/llvm15/update b/srcpkgs/llvm15/update
new file mode 100644
index 000000000000..e95cf26b3586
--- /dev/null
+++ b/srcpkgs/llvm15/update
@@ -0,0 +1,3 @@
+site="https://github.com/llvm/llvm-project/releases"
+pattern="llvmorg-\K(\d+.){2}\d+(-rc\d+)?"
+ignore="*-rc*"
^ permalink raw reply [flat|nested] 96+ messages in thread
* Re: [WIP] LLVM 15
2022-11-28 15:30 [PR PATCH] [WIP] LLVM 15 tranzystorek-io
` (16 preceding siblings ...)
2022-12-06 10:11 ` [PR PATCH] [Updated] " tranzystorek-io
@ 2022-12-07 5:04 ` Vaelatern
2022-12-07 5:04 ` Vaelatern
` (76 subsequent siblings)
94 siblings, 0 replies; 96+ messages in thread
From: Vaelatern @ 2022-12-07 5:04 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 886 bytes --]
New comment by Vaelatern on void-packages repository
https://github.com/void-linux/void-packages/pull/40821#issuecomment-1340377927
Comment:
```
diff --git a/srcpkgs/zig/template b/srcpkgs/zig/template
index 728c5a64e9d..f453348a7a0 100644
--- a/srcpkgs/zig/template
+++ b/srcpkgs/zig/template
@@ -1,7 +1,7 @@
# Template file for 'zig'
pkgname=zig
-version=0.8.1
-revision=2
+version=0.10.0
+revision=1
archs="x86_64* aarch64*"
build_style=cmake
make_cmd=make
@@ -11,7 +11,7 @@ maintainer="Isaac Freund <mail@isaacfreund.com>"
license="MIT"
homepage="https://ziglang.org"
distfiles="https://ziglang.org/download/${version}/zig-${version}.tar.xz"
-checksum=8c428e14a0a89cb7a15a6768424a37442292858cdb695e2eb503fa3c7bf47f1a
+checksum=d8409f7aafc624770dcd050c8fa7e62578be8e6a10956bca3c86e8531c64c136
nopie=yes
nocross=yes
```
Could use the update :)
^ permalink raw reply [flat|nested] 96+ messages in thread
* Re: [WIP] LLVM 15
2022-11-28 15:30 [PR PATCH] [WIP] LLVM 15 tranzystorek-io
` (17 preceding siblings ...)
2022-12-07 5:04 ` Vaelatern
@ 2022-12-07 5:04 ` Vaelatern
2022-12-12 18:26 ` [PR PATCH] [Updated] " tranzystorek-io
` (75 subsequent siblings)
94 siblings, 0 replies; 96+ messages in thread
From: Vaelatern @ 2022-12-07 5:04 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 902 bytes --]
New comment by Vaelatern on void-packages repository
https://github.com/void-linux/void-packages/pull/40821#issuecomment-1340377927
Comment:
```
diff --git a/srcpkgs/zig/template b/srcpkgs/zig/template
index 728c5a64e9d..f453348a7a0 100644
--- a/srcpkgs/zig/template
+++ b/srcpkgs/zig/template
@@ -1,7 +1,7 @@
# Template file for 'zig'
pkgname=zig
-version=0.8.1
-revision=2
+version=0.10.0
+revision=1
archs="x86_64* aarch64*"
build_style=cmake
make_cmd=make
@@ -11,7 +11,7 @@ maintainer="Isaac Freund <mail@isaacfreund.com>"
license="MIT"
homepage="https://ziglang.org"
distfiles="https://ziglang.org/download/${version}/zig-${version}.tar.xz"
-checksum=8c428e14a0a89cb7a15a6768424a37442292858cdb695e2eb503fa3c7bf47f1a
+checksum=d8409f7aafc624770dcd050c8fa7e62578be8e6a10956bca3c86e8531c64c136
nopie=yes
nocross=yes
```
Could use the update and needs llvm 15.
^ permalink raw reply [flat|nested] 96+ messages in thread
* Re: [PR PATCH] [Updated] [WIP] LLVM 15
2022-11-28 15:30 [PR PATCH] [WIP] LLVM 15 tranzystorek-io
` (18 preceding siblings ...)
2022-12-07 5:04 ` Vaelatern
@ 2022-12-12 18:26 ` tranzystorek-io
2022-12-17 8:56 ` tranzystorek-io
` (74 subsequent siblings)
94 siblings, 0 replies; 96+ messages in thread
From: tranzystorek-io @ 2022-12-12 18:26 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 502 bytes --]
There is an updated pull request by tranzystorek-io against master on the void-packages repository
https://github.com/tranzystorek-io/void-packages llvm15
https://github.com/void-linux/void-packages/pull/40821
[WIP] LLVM 15
[ci skip]
TODO:
- [ ] Adjust patches marked as `.patch.skip`
- [ ] Make libomp a shlib (change so file name and install a symlink)
- [ ] Avoid creating triplet dirs under /usr/
A patch file from https://github.com/void-linux/void-packages/pull/40821.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-llvm15-40821.patch --]
[-- Type: text/x-diff, Size: 184267 bytes --]
From c687f75617169b107d1086ba508df5632e93924a Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sat, 5 Nov 2022 11:33:11 -0700
Subject: [PATCH 01/39] binutils: update to 2.39.
---
...e3f3bd6d460491f8c8d032a7fea88d5ec8ff.patch | 60 -----------------
.../fix-libcollector-without-java.patch | 53 +++++++++++++++
.../patches/ppc64-revert-gnu-attributes.patch | 66 +++++--------------
srcpkgs/binutils/template | 25 ++++---
4 files changed, 87 insertions(+), 117 deletions(-)
delete mode 100644 srcpkgs/binutils/patches/1767e3f3bd6d460491f8c8d032a7fea88d5ec8ff.patch
create mode 100644 srcpkgs/binutils/patches/fix-libcollector-without-java.patch
diff --git a/srcpkgs/binutils/patches/1767e3f3bd6d460491f8c8d032a7fea88d5ec8ff.patch b/srcpkgs/binutils/patches/1767e3f3bd6d460491f8c8d032a7fea88d5ec8ff.patch
deleted file mode 100644
index a55432d83cff..000000000000
--- a/srcpkgs/binutils/patches/1767e3f3bd6d460491f8c8d032a7fea88d5ec8ff.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-From 1767e3f3bd6d460491f8c8d032a7fea88d5ec8ff Mon Sep 17 00:00:00 2001
-From: "H.J. Lu" <hjl.tools@gmail.com>
-Date: Mon, 16 Nov 2020 06:37:53 -0800
-Subject: [PATCH] elf: Set rel_from_abs to 1 for __ehdr_start
-
-bfdlink.h has
-
- /* Symbol will be converted from absolute to section-relative. Set for
- symbols defined by a script from "dot" (also SEGMENT_START or ORIGIN)
- outside of an output section statement. */
- unsigned int rel_from_abs : 1;
-
-linker.c has
-
-.{* Return TRUE if the symbol described by a linker hash entry H
-. is going to be absolute. Linker-script defined symbols can be
-. converted from absolute to section-relative ones late in the
-. link. Use this macro to correctly determine whether the symbol
-. will actually end up absolute in output. *}
-.#define bfd_is_abs_symbol(H) \
-. (((H)->type == bfd_link_hash_defined \
-. || (H)->type == bfd_link_hash_defweak) \
-. && bfd_is_abs_section ((H)->u.def.section) \
-. && !(H)->rel_from_abs)
-.
-
-Set rel_from_abs to 1 for __ehdr_start which will be converted from
-absolute to section-relative in assign_file_positions_for_load_sections.
-
- PR ld/26869
- * ldelf.c (ldelf_before_allocation): Set rel_from_abs to 1 for
- __ehdr_start.
- * testsuite/ld-i386/i386.exp: Run pr26869.
- * testsuite/ld-i386/pr26869.d: New file.
- * testsuite/ld-i386/pr26869.s: Likewise.
-
-(cherry picked from commit cbd5b99cce073273f668b154d4514e8e7e7ccc51)
----
- ld/ChangeLog | 9 +++++++++
- ld/ldelf.c | 2 ++
- ld/testsuite/ld-i386/i386.exp | 1 +
- ld/testsuite/ld-i386/pr26869.d | 14 ++++++++++++++
- ld/testsuite/ld-i386/pr26869.s | 3 +++
- 5 files changed, 29 insertions(+)
- create mode 100644 ld/testsuite/ld-i386/pr26869.d
- create mode 100644 ld/testsuite/ld-i386/pr26869.s
-
-diff --git a/ld/ldelf.c b/ld/ldelf.c
-index bada3ade2d7..831d032fe56 100644
---- a/ld/ldelf.c
-+++ b/ld/ldelf.c
-@@ -1589,6 +1589,8 @@ ldelf_before_allocation (char *audit, char *depaudit,
- (char *) &ehdr_start->u + sizeof ehdr_start->u.def.next,
- sizeof ehdr_start_save_u);
- ehdr_start->type = bfd_link_hash_defined;
-+ /* It will be converted to section-relative later. */
-+ ehdr_start->rel_from_abs = 1;
- ehdr_start->u.def.section = bfd_abs_section_ptr;
- ehdr_start->u.def.value = 0;
- }
diff --git a/srcpkgs/binutils/patches/fix-libcollector-without-java.patch b/srcpkgs/binutils/patches/fix-libcollector-without-java.patch
new file mode 100644
index 000000000000..54384875f358
--- /dev/null
+++ b/srcpkgs/binutils/patches/fix-libcollector-without-java.patch
@@ -0,0 +1,53 @@
+From 49ddd814ac1071af7c4f45d5f8398b91862f2c7f Mon Sep 17 00:00:00 2001
+From: Vladimir Mezentsev <vladimir.mezentsev@oracle.com>
+Date: Wed, 17 Aug 2022 19:55:23 -0700
+Subject: [PATCH] gprofng: fix bug 29479 Collection fails when built without
+ java support
+
+gprofng/ChangeLog
+2022-08-17 Vladimir Mezentsev <vladimir.mezentsev@oracle.com>
+
+ PR gprofng/29479
+ * libcollector/collector.c: Add #if defined(GPROFNG_JAVA_PROFILING) for
+ java specific code.
+ * libcollector/unwind.c: Likewise.
+---
+ gprofng/libcollector/collector.c | 2 ++
+ gprofng/libcollector/unwind.c | 2 ++
+ 2 files changed, 4 insertions(+)
+
+diff --git a/gprofng/libcollector/collector.c b/gprofng/libcollector/collector.c
+index 93c9d3330de5..ceff2c1caccb 100644
+--- a/gprofng/libcollector/collector.c
++++ b/gprofng/libcollector/collector.c
+@@ -913,8 +913,10 @@ __collector_open_experiment (const char *exp, const char *params, sp_origin_t or
+ __collector_ext_unwind_key_init (1, NULL);
+
+ /* start java attach if suitable */
++#if defined(GPROFNG_JAVA_PROFILING)
+ if (exp_origin == SP_ORIGIN_DBX_ATTACH)
+ __collector_jprofile_start_attach ();
++#endif
+ start_sec_time = CALL_UTIL (time)(NULL);
+ __collector_start_time = collector_interface.getHiResTime ();
+ TprintfT (DBG_LT0, "\t__collector_open_experiment; resetting start_time\n");
+diff --git a/gprofng/libcollector/unwind.c b/gprofng/libcollector/unwind.c
+index 119243788020..f8e11823c81e 100644
+--- a/gprofng/libcollector/unwind.c
++++ b/gprofng/libcollector/unwind.c
+@@ -557,6 +557,7 @@ __collector_get_frame_info (hrtime_t ts, int mode, void *arg)
+ int size = max_frame_size;
+
+ #define MIN(a,b) ((a)<(b)?(a):(b))
++#if defined(GPROFNG_JAVA_PROFILING)
+ /* get Java info */
+ if (__collector_java_mode && __collector_java_asyncgetcalltrace_loaded && context && !pseudo_context)
+ {
+@@ -569,6 +570,7 @@ __collector_get_frame_info (hrtime_t ts, int mode, void *arg)
+ size -= sz;
+ }
+ }
++#endif
+
+ /* get native stack */
+ if (context)
diff --git a/srcpkgs/binutils/patches/ppc64-revert-gnu-attributes.patch b/srcpkgs/binutils/patches/ppc64-revert-gnu-attributes.patch
index 5de937f4fcce..1c208dd8955c 100644
--- a/srcpkgs/binutils/patches/ppc64-revert-gnu-attributes.patch
+++ b/srcpkgs/binutils/patches/ppc64-revert-gnu-attributes.patch
@@ -1,39 +1,24 @@
-From b1faf99f3e546df2cd302bb1ad36a2078224fe8b Mon Sep 17 00:00:00 2001
+From bbf05b742fde518fb97c789b043fe0d3aaf549f0 Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@dereferenced.org>
-Date: Fri, 30 Oct 2020 16:59:48 -0600
+Date: Tue, 21 Sep 2021 14:53:13 +0000
Subject: [PATCH] Revert "PR25882, .gnu.attributes are not checked for shared
libraries"
+This revert is needed to avoid wrongly tagging objects with the incompatible
+IBM long double ABI, which is not supported by musl and will result in
+linking errors if used.
+
This reverts commit a8acd6eeb6dc2cc5460ece90f90ebe36b56b20ba.
---
- bfd/ChangeLog | 6 ------
- bfd/elf32-tic6x.c | 3 ---
- ld/ChangeLog | 6 ------
- ld/ldlang.c | 9 ++++-----
- 4 files changed, 4 insertions(+), 20 deletions(-)
+ bfd/elf32-tic6x.c | 3 ---
+ ld/ldlang.c | 10 ++++------
+ 2 files changed, 4 insertions(+), 9 deletions(-)
-diff --git a/bfd/ChangeLog b/bfd/ChangeLog
-index 9fac12538a..b5461494e8 100644
---- a/bfd/ChangeLog
-+++ b/bfd/ChangeLog
-@@ -1422,12 +1422,6 @@
- accessing root.u.def of symbols. Also check root.u.def.section
- is non-NULL. Reverse tests so as to make the logic positive.
-
--2020-05-01 Alan Modra <amodra@gmail.com>
--
-- PR 25882
-- * elf32-tic6x.c (elf32_tic6x_merge_attributes): Don't transfer
-- Tag_ABI_PIC or Tag_ABI_PID from dynamic objects to the output.
--
- 2020-05-01 Alan Modra <amodra@gmail.com>
-
- PR 25882
diff --git a/bfd/elf32-tic6x.c b/bfd/elf32-tic6x.c
-index b8b916bfd3..91bb6a10b1 100644
+index 5754f3cb860..3ad1d612749 100644
--- a/bfd/elf32-tic6x.c
+++ b/bfd/elf32-tic6x.c
-@@ -3748,9 +3748,6 @@ elf32_tic6x_merge_attributes (bfd *ibfd, struct bfd_link_info *info)
+@@ -3735,9 +3735,6 @@ elf32_tic6x_merge_attributes (bfd *ibfd, struct bfd_link_info *info)
case Tag_ABI_PIC:
case Tag_ABI_PID:
@@ -43,36 +28,20 @@ index b8b916bfd3..91bb6a10b1 100644
if (out_attr[i].i > in_attr[i].i)
out_attr[i].i = in_attr[i].i;
break;
-diff --git a/ld/ChangeLog b/ld/ChangeLog
-index 4eec7d2977..b93452f70c 100644
---- a/ld/ChangeLog
-+++ b/ld/ChangeLog
-@@ -1319,12 +1319,6 @@
- * testsuite/ld-aarch64/farcall-group.d: New test driver.
- * testsuite/ld-aarch64/aarch64-elf.exp: Run the new test.
-
--2020-05-01 Alan Modra <amodra@gmail.com>
--
-- PR 25882
-- * ldlang.c (lang_check): Call bfd_merge_private_bfd_data for
-- shared libraries.
--
- 2020-05-01 Alan Modra <amodra@gmail.com>
-
- * po/BLD-POTFILES.in: Regenerate.
diff --git a/ld/ldlang.c b/ld/ldlang.c
-index 9977195074..173d8ec349 100644
+index 37b64c89ee1..f13beaef9d9 100644
--- a/ld/ldlang.c
+++ b/ld/ldlang.c
-@@ -6972,12 +6972,11 @@ lang_check (void)
+@@ -7071,13 +7071,11 @@ lang_check (void)
bfd_printable_name (input_bfd), input_bfd,
bfd_printable_name (link_info.output_bfd));
}
-
- /* If the input bfd has no contents, it shouldn't set the
- private data of the output bfd. */
-- else if ((input_bfd->flags & DYNAMIC) != 0
-- || bfd_count_sections (input_bfd) != 0)
+- else if (!file->flags.just_syms
+- && ((input_bfd->flags & DYNAMIC) != 0
+- || bfd_count_sections (input_bfd) != 0))
+ else if (bfd_count_sections (input_bfd))
{
+ /* If the input bfd has no contents, it shouldn't set the
@@ -82,5 +51,4 @@ index 9977195074..173d8ec349 100644
/* If we aren't supposed to warn about mismatched input
--
-2.29.2
-
+2.33.0
diff --git a/srcpkgs/binutils/template b/srcpkgs/binutils/template
index 6270f8618c87..c355a5fc8016 100644
--- a/srcpkgs/binutils/template
+++ b/srcpkgs/binutils/template
@@ -1,19 +1,20 @@
# Template file for 'binutils'
pkgname=binutils
-version=2.35.1
-revision=4
+version=2.39
+revision=1
bootstrap=yes
+hostmakedepends="pkgconf"
makedepends="zlib-devel"
short_desc="GNU binary utilities"
maintainer="Enno Boland <gottox@voidlinux.org>"
license="GPL-3.0-or-later"
homepage="http://www.gnu.org/software/binutils/"
distfiles="${GNU_SITE}/$pkgname/$pkgname-$version.tar.xz"
-checksum=3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
+checksum=645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
subpackages="binutils-doc"
if [ "$CHROOT_READY" ]; then
- hostmakedepends="flex perl texinfo"
+ hostmakedepends+=" flex perl texinfo"
makedepends+=" elfutils-devel"
checkdepends="bc"
depends="binutils-doc"
@@ -35,15 +36,21 @@ do_configure() {
local conf
if [ "$CHROOT_READY" ]; then
- conf+=" --with-debuginfod"
+ conf+=" --with-debuginfod --enable-shared"
else
- conf+=" --without-debuginfod --disable-install-libbfd"
+ conf+=" --without-debuginfod --disable-shared --disable-install-libbfd"
fi
if [ "$CROSS_BUILD" ]; then
# we don't want --with-sysroot=${XBPS_CROSS_BASE} like gnu-configure
conf+=" --host=${XBPS_CROSS_TRIPLET} --with-build-sysroot=${XBPS_CROSS_BASE}"
fi
+ # gprofng currently only supports x86 and aarch64 glibc.
+ case "$XBPS_TARGET_MACHINE" in
+ x86_64|i386|aarch64) conf+=" --enable-gprofng" ;;
+ *) conf+=" --disable-gprofng" ;;
+ esac
+
case "$XBPS_TARGET_MACHINE" in
ppc*)
conf+=" --enable-secureplt"
@@ -76,13 +83,14 @@ do_configure() {
--libdir=/usr/lib \
--mandir=/usr/share/man \
--infodir=/usr/share/info \
+ --sysconfdir=/etc \
--disable-werror \
- --disable-shared \
--disable-nls \
--enable-threads \
--enable-plugins \
--enable-relro \
--enable-gold \
+ --enable-new-dtags \
--enable-deterministic-archives \
--enable-64-bit-bfd \
--enable-ld=default \
@@ -142,7 +150,8 @@ binutils-devel_package() {
pkg_install() {
vmove usr/include
vmove "usr/lib/*.a"
- vmove "usr/lib/*.so"
+ vmove "usr/lib/libbfd.so"
+ vmove "usr/lib/libopcodes.so"
}
}
From ae3e487ca96962a4105fa9458e2529a9b7d21ac9 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sat, 5 Nov 2022 11:33:11 -0700
Subject: [PATCH 02/39] gdb: resolve conflict with binutils 2.39
---
srcpkgs/gdb/template | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/gdb/template b/srcpkgs/gdb/template
index 9c5f17ffc519..b666348fea19 100644
--- a/srcpkgs/gdb/template
+++ b/srcpkgs/gdb/template
@@ -1,7 +1,7 @@
# Template file for 'gdb'
pkgname=gdb
version=12.1
-revision=2
+revision=3
build_style=gnu-configure
pycompile_dirs="/usr/share/gdb/python"
configure_args="--disable-werror --disable-nls --with-system-readline
@@ -48,7 +48,8 @@ vopt_conflict debuginfod static
post_install() {
# resolve conflicts with binutils
- rm -r ${DESTDIR}/usr/{include,lib,share/info/bfd.info*}
+ rm -rf ${DESTDIR}/usr/{include,lib}
+ rm -rf ${DESTDIR}/usr/share/info/{bfd,ctf-spec}.info*
}
gdb-common_package() {
From 52346ba1e435b332bc09397975de9ebd7b57a7be Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sat, 5 Nov 2022 11:33:11 -0700
Subject: [PATCH 03/39] gcc: update to 12.2.0.
---
common/shlibs | 10 +--
srcpkgs/gcc/files/gccgo-musl.patch | 71 +++------------
srcpkgs/gcc/files/libgnarl-musl.patch | 18 ++--
srcpkgs/gcc/files/libssp-musl.patch | 10 +--
.../gcc/patches/force-override-clocale.patch | 21 +++++
srcpkgs/gcc/patches/libffi_gnulinux.patch | 11 ---
.../gcc/patches/libgcc-ibm128-no-tag.patch | 10 ++-
srcpkgs/gcc/patches/mips-sgidefs_h.patch | 2 +-
srcpkgs/gcc/template | 87 +++++++++----------
9 files changed, 101 insertions(+), 139 deletions(-)
create mode 100644 srcpkgs/gcc/patches/force-override-clocale.patch
delete mode 100644 srcpkgs/gcc/patches/libffi_gnulinux.patch
diff --git a/common/shlibs b/common/shlibs
index ca7f949876a8..eb361f40abe4 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -60,7 +60,7 @@ libcc1plugin.so.0 gcc-6.2.1_1
libitm.so.1 libitm-4.7.3_1
liblto_plugin.so.0 gcc-4.7.3_1
libgcc_s.so.1 libgcc-4.4.0_1
-libgo.so.16 libgo-10.2.0_1
+libgo.so.21 libgo-12.2.0_1
libgccjit.so.0 libgccjit-10.2.1pre1_1
libperl.so.5.36 perl-5.36.0_1
libgmp.so.10 gmp-5.0.1_1
@@ -858,8 +858,8 @@ libgdkmm-2.4.so.1 gtkmm2-2.24.0_1
libgtkmm-2.4.so.1 gtkmm2-2.24.0_1
libquadmath.so.0 libquadmath-4.4.0_1
libgfortran.so.5 libgfortran-8.2.0_1
-libgnarl-10.so libada-10.2.0_1
-libgnat-10.so libada-10.2.0_1
+libgnarl-12.so libada-12.2.0_1
+libgnat-12.so libada-12.2.0_1
libwebp.so.7 libwebp-0.6.0_1
libwebpmux.so.3 libwebp-0.6.0_1
libwebpdemux.so.2 libwebp-0.5.0_1
@@ -1713,8 +1713,8 @@ libextractor.so.3 libextractor-1.1_1
libextractor_common.so.1 libextractor-1.1_1
libpano13.so.3 libpano13-2.9.19_1
libubsan.so.1 libsanitizer-8.2.0_1
-libtsan.so.0 libsanitizer-6.3.0_1
-libasan.so.6 libsanitizer-10.2.0_1
+libtsan.so.2 libsanitizer-12.2.0_1
+libasan.so.8 libsanitizer-12.2.0_1
liblsan.so.0 libsanitizer-6.3.0_1
libvtv.so.0 libvtv-6.3.0_1
libatomic.so.1 libatomic-4.9.0_1
diff --git a/srcpkgs/gcc/files/gccgo-musl.patch b/srcpkgs/gcc/files/gccgo-musl.patch
index 9762739615af..12ec68dd8aa3 100644
--- a/srcpkgs/gcc/files/gccgo-musl.patch
+++ b/srcpkgs/gcc/files/gccgo-musl.patch
@@ -53,17 +53,6 @@ URL: https://code.foxkit.us/adelie/packages/tree/master/system/gcc
p := sysMmap(addr, n, prot, flags, fd, off)
if uintptr(p) == _MAP_FAILED {
return nil, errno()
---- a/libgo/go/runtime/signal_gccgo.go
-+++ b/libgo/go/runtime/signal_gccgo.go
-@@ -111,7 +111,7 @@ func getsig(i uint32) uintptr {
- if sigaction(i, nil, &sa) < 0 {
- // On GNU/Linux glibc rejects attempts to call
- // sigaction with signal 32 (SIGCANCEL) or 33 (SIGSETXID).
-- if GOOS == "linux" && (i == 32 || i == 33) {
-+ if GOOS == "linux" && (i == 32 || i == 33 || i == 34) {
- return _SIG_DFL
- }
- throw("sigaction read failure")
--- a/libgo/go/syscall/errstr.go
+++ b/libgo/go/syscall/errstr.go
@@ -5,7 +5,6 @@
@@ -140,55 +129,6 @@ URL: https://code.foxkit.us/adelie/packages/tree/master/system/gcc
plwoff = &lwoff
}
n, err = splice(rfd, plroff, wfd, plwoff, len, flags)
---- a/libgo/mksigtab.sh
-+++ b/libgo/mksigtab.sh
-@@ -82,7 +82,7 @@ checksig _SIGPWR '{_SigNotify, "SIGPWR: power failure restart"}'
- checksig _SIGEMT '{_SigThrow, "SIGEMT: emulate instruction executed"}'
- checksig _SIGINFO '{_SigNotify, "SIGINFO: status request from keyboard"}'
- checksig _SIGTHR '{_SigNotify, "SIGTHR: reserved"}'
--checksig _SIGPOLL '{_SigNotify, "SIGPOLL: pollable event occurred"}'
-+#checksig _SIGPOLL '{_SigNotify, "SIGPOLL: pollable event occurred"}'
- checksig _SIGWAITING '{_SigNotify, "SIGWAITING: reserved signal no longer used by"}'
- checksig _SIGLWP '{_SigNotify, "SIGLWP: reserved signal no longer used by"}'
- checksig _SIGFREEZE '{_SigNotify, "SIGFREEZE: special signal used by CPR"}'
-@@ -95,10 +95,12 @@ checksig _SIGLOST ' {_SigNotify, "SIGLOST: resource lost (Sun); server died (G
-
- # Special handling of signals 32 and 33 on GNU/Linux systems,
- # because they are special to glibc.
-+# Signal 34 is additionally special to Linux systems with musl.
- if test "${GOOS}" = "linux"; then
-- SIGLIST=$SIGLIST"_32__33_"
-+ SIGLIST=$SIGLIST"_32__33__34_"
- echo ' 32: {_SigSetStack + _SigUnblock, "signal 32"}, /* SIGCANCEL; see issue 6997 */'
- echo ' 33: {_SigSetStack + _SigUnblock, "signal 33"}, /* SIGSETXID; see issues 3871, 9400, 12498 */'
-+ echo ' 34: {_SigSetStack + _SigUnblock, "signal 34"}, /* see issue 30062 */'
- fi
-
- if test "${GOOS}" = "aix"; then
---- a/libgo/runtime/go-signal.c 2020-07-23 08:35:19.004402840 +0200
-+++ b/libgo/runtime/go-signal.c 2020-08-09 21:35:54.352886232 +0200
-@@ -224,7 +224,11 @@
- #elif defined(__alpha__) && defined(__linux__)
- ret.sigpc = ((ucontext_t*)(context))->uc_mcontext.sc_pc;
- #elif defined(__PPC__) && defined(__linux__)
-- ret.sigpc = ((ucontext_t*)(context))->uc_mcontext.regs->nip;
-+ #ifdef __PPC64__
-+ ret.sigpc = ((ucontext_t*)(context))->uc_mcontext.gp_regs[32];
-+ #else
-+ ret.sigpc = ((ucontext_t*)(context))->uc_mcontext.gregs[32];
-+ #endif
- #elif defined(__PPC__) && defined(_AIX)
- ret.sigpc = ((ucontext_t*)(context))->uc_mcontext.jmp_context.iar;
- #elif defined(__aarch64__) && defined(__linux__)
-@@ -333,7 +337,7 @@
- runtime_printf("sp %X\n", m->sc_regs[30]);
- runtime_printf("pc %X\n", m->sc_pc);
- }
--#elif defined(__PPC__) && defined(__LITTLE_ENDIAN__) && defined(__linux__)
-+#elif defined(__PPC__) && defined(__LITTLE_ENDIAN__) && defined(__linux__) && defined(__GLIBC__)
- {
- mcontext_t *m = &((ucontext_t*)(context))->uc_mcontext;
- int i;
--- a/libgo/runtime/runtime.h
+++ b/libgo/runtime/runtime.h
@@ -500,10 +500,13 @@ int __go_setcontext(__go_context_t*);
@@ -220,3 +160,14 @@ URL: https://code.foxkit.us/adelie/packages/tree/master/system/gcc
#if defined(HAVE_SYS_UTSNAME_H)
#include <sys/utsname.h>
#endif
+--- a/libgo/go/runtime/os_linux.go
++++ b/libgo/go/runtime/os_linux.go
+@@ -365,7 +365,7 @@ func setThreadCPUProfiler(hz int32) {
+ var sevp _sigevent
+ sevp.sigev_notify = _SIGEV_THREAD_ID
+ sevp.sigev_signo = _SIGPROF
+- *((*int32)(unsafe.Pointer(&sevp._sigev_un))) = int32(mp.procid)
++ *((*int32)(unsafe.Pointer(&sevp.__sev_fields))) = int32(mp.procid)
+ ret := timer_create(_CLOCK_THREAD_CPUTIME_ID, &sevp, &timerid)
+ if ret != 0 {
+ // If we cannot create a timer for this M, leave profileTimerValid false
diff --git a/srcpkgs/gcc/files/libgnarl-musl.patch b/srcpkgs/gcc/files/libgnarl-musl.patch
index 99a734c42c90..91c95949e0e9 100644
--- a/srcpkgs/gcc/files/libgnarl-musl.patch
+++ b/srcpkgs/gcc/files/libgnarl-musl.patch
@@ -5,7 +5,7 @@ Reason: Patch libgnarl to not use function missing from musl.
diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-osinte__linux.ads gcc-8.2.0-new/gcc/ada/libgnarl/s-osinte__linux.ads
--- a/gcc/ada/libgnarl/s-osinte__linux.ads 2018-01-11 00:55:25.000000000 -0800
+++ b/gcc/ada/libgnarl/s-osinte__linux.ads 2018-11-01 16:16:23.372452951 -0700
-@@ -394,12 +394,6 @@ package System.OS_Interface is
+@@ -403,12 +403,6 @@ package System.OS_Interface is
PTHREAD_RWLOCK_PREFER_WRITER_NP : constant := 1;
PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP : constant := 2;
@@ -18,7 +18,7 @@ diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-osinte__linux.ads gcc-8.2.0-new/gcc/ada/l
function pthread_rwlock_init
(mutex : access pthread_rwlock_t;
attr : access pthread_rwlockattr_t) return int;
-@@ -464,11 +458,6 @@ package System.OS_Interface is
+@@ -470,11 +464,6 @@ package System.OS_Interface is
protocol : int) return int;
pragma Import (C, pthread_mutexattr_setprotocol);
@@ -33,7 +33,7 @@ diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-osinte__linux.ads gcc-8.2.0-new/gcc/ada/l
diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-taprop__linux.adb gcc-8.2.0-new/gcc/ada/libgnarl/s-taprop__linux.adb
--- a/gcc/ada/libgnarl/s-taprop__linux.adb 2018-01-11 00:55:25.000000000 -0800
+++ b/gcc/ada/libgnarl/s-taprop__linux.adb 2018-11-13 11:28:36.433964449 -0800
-@@ -202,9 +202,6 @@ package body System.Task_Primitives.Oper
+@@ -198,9 +198,6 @@ package body System.Task_Primitives.Oper
pragma Import
(C, GNAT_pthread_condattr_setup, "__gnat_pthread_condattr_setup");
@@ -43,7 +43,7 @@ diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-taprop__linux.adb gcc-8.2.0-new/gcc/ada/l
-- We do not have pragma Linker_Options ("-lcap"); here, because this
-- library is not present on many Linux systems. 'libcap' is the Linux
-- "capabilities" library, called by __gnat_has_cap_sys_nice.
-@@ -214,38 +211,6 @@ package body System.Task_Primitives.Oper
+@@ -210,38 +207,6 @@ package body System.Task_Primitives.Oper
-- Convert Ada priority to Linux priority. Priorities are 1 .. 99 on
-- GNU/Linux, so we map 0 .. 98 to 1 .. 99.
@@ -76,13 +76,13 @@ diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-taprop__linux.adb gcc-8.2.0-new/gcc/ada/l
- return Ceiling_Support;
- end Get_Ceiling_Support;
-
-- pragma Warnings (Off, "non-static call not allowed in preelaborated unit");
+- pragma Warnings (Off, "non-preelaborable call not allowed*");
- Ceiling_Support : constant Boolean := Get_Ceiling_Support;
-- pragma Warnings (On, "non-static call not allowed in preelaborated unit");
+- pragma Warnings (On, "non-preelaborable call not allowed*");
-- True if the locking policy is Ceiling_Locking, and the current process
-- has permission to use this policy. The process has permission if it is
-- running as 'root', or if the capability was set by the setcap command,
-@@ -348,7 +313,9 @@ package body System.Task_Primitives.Oper
+@@ -344,7 +309,9 @@ package body System.Task_Primitives.Oper
-- Init_Mutex --
----------------
@@ -92,7 +92,7 @@ diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-taprop__linux.adb gcc-8.2.0-new/gcc/ada/l
Mutex_Attr : aliased pthread_mutexattr_t;
Result, Result_2 : C.int;
-@@ -360,16 +327,7 @@ package body System.Task_Primitives.Oper
+@@ -356,16 +323,7 @@ package body System.Task_Primitives.Oper
return Result;
end if;
@@ -110,7 +110,7 @@ diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-taprop__linux.adb gcc-8.2.0-new/gcc/ada/l
Result := pthread_mutexattr_setprotocol
(Mutex_Attr'Access, PTHREAD_PRIO_INHERIT);
pragma Assert (Result = 0);
-@@ -409,11 +367,6 @@ package body System.Task_Primitives.Oper
+@@ -405,11 +363,6 @@ package body System.Task_Primitives.Oper
Result := pthread_rwlockattr_init (RWlock_Attr'Access);
pragma Assert (Result = 0);
diff --git a/srcpkgs/gcc/files/libssp-musl.patch b/srcpkgs/gcc/files/libssp-musl.patch
index b21a2c29e57c..99f248401a1c 100644
--- a/srcpkgs/gcc/files/libssp-musl.patch
+++ b/srcpkgs/gcc/files/libssp-musl.patch
@@ -2,9 +2,9 @@ First part taken from Alpine.
Second part added to prevent gccgo from thinking it can -fsplit-stack on musl.
---- a/gcc/gcc.c
-+++ b/gcc/gcc.c
-@@ -874,10 +874,15 @@ proper position among the other output files. */
+--- a/gcc/gcc.cc
++++ b/gcc/gcc.cc
+@@ -984,10 +984,15 @@ proper position among the other output f
#define LINK_GCC_C_SEQUENCE_SPEC "%G %{!nolibc:%L %G}"
#endif
@@ -22,10 +22,10 @@ Second part added to prevent gccgo from thinking it can -fsplit-stack on musl.
#else
#define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \
"|fstack-protector-strong|fstack-protector-explicit" \
-@@ -1155,7 +1160,7 @@ static const char *cc1_options =
+@@ -1280,7 +1285,7 @@ static const char *cc1_options =
%{-version:--version}\
%{-help=*:--help=%*}\
- %{!fsyntax-only:%{S:%W{o*}%{!o*:-o %b.s}}}\
+ %{!fsyntax-only:%{S:%W{o*}%{!o*:-o %w%b.s}}}\
- %{fsyntax-only:-o %j} %{-param*}\
+ %{fsyntax-only:-o %j} %{-param*} " NO_SSP_SPEC "\
%{coverage:-fprofile-arcs -ftest-coverage}\
diff --git a/srcpkgs/gcc/patches/force-override-clocale.patch b/srcpkgs/gcc/patches/force-override-clocale.patch
new file mode 100644
index 000000000000..8af8a7150dd9
--- /dev/null
+++ b/srcpkgs/gcc/patches/force-override-clocale.patch
@@ -0,0 +1,21 @@
+This is necessary when building a gnu cross compiler for a musl target.
+Otherwise, even if clocale manually is set to gnu, it will be reset to generic
+when the test is performed using AC_EGREP_CPP().
+--- a/libstdc++-v3/configure
++++ b/libstdc++-v3/configure
+@@ -16493,6 +16493,7 @@ fi
+
+ # Sanity check model, and test for special functionality.
+ if test $enable_clocale_flag = gnu; then
++ if test $enable_clocale = auto; then
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h. */
+
+@@ -16509,6 +16510,7 @@ else
+ enable_clocale_flag=generic
+ fi
+ rm -f conftest*
++ fi
+
+
+ # Set it to scream when it hurts.
diff --git a/srcpkgs/gcc/patches/libffi_gnulinux.patch b/srcpkgs/gcc/patches/libffi_gnulinux.patch
deleted file mode 100644
index 98245bd5be1a..000000000000
--- a/srcpkgs/gcc/patches/libffi_gnulinux.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/libffi/src/closures.c
-+++ b/libffi/src/closures.c
-@@ -34,7 +34,7 @@
- #include <ffi_common.h>
-
- #if !FFI_MMAP_EXEC_WRIT && !FFI_EXEC_TRAMPOLINE_TABLE
--# if __gnu_linux__ && !defined(__ANDROID__)
-+# if __linux__ && !defined(__ANDROID__)
- /* This macro indicates it may be forbidden to map anonymous memory
- with both write and execute permission. Code compiled when this
- option is defined will attempt to map such pages once, but if it
diff --git a/srcpkgs/gcc/patches/libgcc-ibm128-no-tag.patch b/srcpkgs/gcc/patches/libgcc-ibm128-no-tag.patch
index bdf5c75d917d..26d80356ad0d 100644
--- a/srcpkgs/gcc/patches/libgcc-ibm128-no-tag.patch
+++ b/srcpkgs/gcc/patches/libgcc-ibm128-no-tag.patch
@@ -29,10 +29,14 @@ diff --git a/libgcc/config/rs6000/t-linux b/libgcc/config/rs6000/t-linux
index 4f6d4c4..fa93bb6 100644
--- a/libgcc/config/rs6000/t-linux
+++ b/libgcc/config/rs6000/t-linux
-@@ -1,3 +1,3 @@
+@@ -1,6 +1,6 @@
SHLIB_MAPFILES += $(srcdir)/config/rs6000/libgcc-glibc.ver
--HOST_LIBGCC2_CFLAGS += -mlong-double-128 -mno-minimal-toc
-+HOST_LIBGCC2_CFLAGS += -mlong-double-128 -mno-gnu-attribute -mno-minimal-toc
+-HOST_LIBGCC2_CFLAGS += -mlong-double-128
++HOST_LIBGCC2_CFLAGS += -mlong-double-128 -mno-gnu-attribute
+
+ # This is a way of selecting -mcmodel=small for ppc64, which gives
+ # smaller and faster libgcc code. Directly specifying -mcmodel=small
+
--
2.24.0
diff --git a/srcpkgs/gcc/patches/mips-sgidefs_h.patch b/srcpkgs/gcc/patches/mips-sgidefs_h.patch
index dddfe10e8c06..cd0ae7a380df 100644
--- a/srcpkgs/gcc/patches/mips-sgidefs_h.patch
+++ b/srcpkgs/gcc/patches/mips-sgidefs_h.patch
@@ -3,7 +3,7 @@
@@ -42,7 +42,7 @@
#define _MIPS_SIM_NABI32 2
#define _MIPS_SIM_ABI64 3
- #elif !defined(__OpenBSD__)
+ #elif !defined(__OpenBSD__) && !defined(__FreeBSD__)
-# include <sgidefs.h>
+# include <asm/sgidefs.h>
#endif
diff --git a/srcpkgs/gcc/template b/srcpkgs/gcc/template
index ab3643de4f98..a20af7c0ef2e 100644
--- a/srcpkgs/gcc/template
+++ b/srcpkgs/gcc/template
@@ -3,18 +3,14 @@
# which use the version number.
pkgname=gcc
-# we are using a 10-stable git snapshot alpine is using in order
-# to get regression fixes not yet incorporate into a stable release
-# it should be possible to switch back to stable with 10.3 or 11
-version=10.2.1pre1
-revision=3
-_patchver="${version%pre*}"
-_minorver="${_patchver%.*}"
+version=12.2.0
+revision=1
+_minorver="${version%.*}"
_majorver="${_minorver%.*}"
-_gmp_version=6.2.0
+_gmp_version=6.2.1
_mpfr_version=4.1.0
-_mpc_version=1.1.0
-_isl_version=0.21
+_mpc_version=1.2.1
+_isl_version=0.24
create_wrksrc=yes
short_desc="GNU Compiler Collection"
maintainer="Enno Boland <gottox@voidlinux.org>"
@@ -22,16 +18,16 @@ homepage="http://gcc.gnu.org"
license="GFDL-1.2-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
# *-musl builders have issues fetching https://ftp.gnu.org/gnu/mpc/mpc-1.1.0.tar.gz
distfiles="
- https://dev.alpinelinux.org/~nenolod/gcc-${version/pre/_pre}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${version}/gcc-${version}.tar.xz
https://gmplib.org/download/gmp/gmp-${_gmp_version}.tar.xz
${GNU_SITE}/mpfr/mpfr-${_mpfr_version}.tar.xz
${GNU_SITE}/mpc/mpc-${_mpc_version}.tar.gz
${SOURCEFORGE_SITE}/libisl/isl-${_isl_version}.tar.bz2"
-checksum="772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 258e6cd51b3fbdfc185c716d55f82c08aff57df0c6fbd143cf6ed561267a1526
+checksum="e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
+ fd4829912cddd12f84181c3451cc752be224643e87fac497b69edddadc49b4f2
0c98a3f1732ff6ca4ea690552079da9c597872d30e96ec28414ee23c95558a7f
- 6985c538143c1208dcb1ac42cedad6ff52e267b47e5f970183a3e75125b43c2e
- d18ca11f8ad1a39ab6d03d3dcb3365ab416720fcb65b42d69f34f51bf0a0e859"
+ 17503d2c395dfcf106b622dc142683c1199431d095367c6aacba6eec30340459
+ fcf78dd9656c10eb8cf9fbd5f59a0b6b01386205fe1934b3b287a0a1898145c0"
nopie=yes
lib32disabled=yes
@@ -52,8 +48,11 @@ if [ "$CHROOT_READY" ]; then
hostmakedepends="tar texinfo perl flex"
else
_have_gccgo=no
+ # libzstd fails to link in bootstrap with glibc 2.36
+ # when zlib has been compiled with glibc 2.32.
+ LDFLAGS="-lzstd -pthread"
fi
-makedepends="zlib-devel"
+makedepends="zlib-devel libzstd-devel"
depends="binutils libgcc-devel-${version}_${revision}
libstdc++-devel-${version}_${revision} libssp-devel-${version}_${revision}"
checkdepends="dejagnu"
@@ -70,13 +69,13 @@ if [ "$build_option_gnatboot" ]; then
case "$XBPS_TARGET_MACHINE" in
x86_64)
_gnat_tarball="gnat-gpl-2017-x86_64-linux-bin.tar.gz"
- distfiles+=" http://mirrors.cdn.adacore.com/art/591c6d80c7a447af2deed1d7>$_gnat_tarball"
+ distfiles+=" https://community.download.adacore.com/v1/9682e2e1f2f232ce03fe21d77b14c37a0de5649b?filename=$_gnat_tarball>$_gnat_tarball"
checksum+=" b942bcac20dea39748b39f8b624d9619f60a8dee2e8195dbe3829c835b0956e6"
build_options_default="gnatboot"
;;
i686)
_gnat_tarball="gnat-gpl-2014-x86-linux-bin.tar.gz"
- distfiles+=" http://mirrors.cdn.adacore.com/art/564b3e9dc8e196b040fbe248>$_gnat_tarball"
+ distfiles+=" https://community.download.adacore.com/v1/c5e9e6fdff5cb77ed90cf8c62536653e27c0bed6?filename=$_gnat_tarball>$_gnat_tarball"
checksum+=" 3b693510f5d22a240abb3034934c1adbd80ccd6e4f61a4f491cc408fdfd9c042"
build_options_default="gnatboot"
;;
@@ -155,8 +154,8 @@ if [ "$CROSS_BUILD" ]; then
fi
post_extract() {
- mv gcc-${version/pre/_pre}/* gcc-${version/pre/_pre}/.??* .
- rmdir gcc-${version/pre/_pre}
+ mv gcc-${version}/* gcc-${version}/.??* .
+ rmdir gcc-${version}
mv gmp-${_gmp_version} gmp
mv mpfr-${_mpfr_version} mpfr
mv mpc-${_mpc_version} mpc
@@ -186,9 +185,9 @@ pre_configure() {
sed -i 's@\./fixinc\.sh@-c true@' gcc/Makefile.in
if [ "$XBPS_TARGET_LIBC" = musl ]; then
- patch -p1 -i ${FILESDIR}/libgnarl-musl.patch
- patch -p1 -i ${FILESDIR}/libssp-musl.patch
- patch -p1 -i ${FILESDIR}/gccgo-musl.patch
+ for p in ${FILESDIR}/*-musl.patch; do
+ patch -p1 -i $p
+ done
fi
}
do_configure() {
@@ -343,16 +342,16 @@ do_install() {
# Make version a symlink of major version to make all versions
# from the same series work automagically.
- mv ${DESTDIR}/usr/lib/gcc/${_triplet}/${_patchver} \
+ mv ${DESTDIR}/usr/lib/gcc/${_triplet}/${version} \
${DESTDIR}/usr/lib/gcc/${_triplet}/${_minorver}
ln -sfr ${DESTDIR}/usr/lib/gcc/${_triplet}/${_minorver} \
- ${DESTDIR}/usr/lib/gcc/${_triplet}/${_patchver}
+ ${DESTDIR}/usr/lib/gcc/${_triplet}/${version}
# Ditto for c++ headers.
- mv ${DESTDIR}/usr/include/c++/${_patchver} \
+ mv ${DESTDIR}/usr/include/c++/${version} \
${DESTDIR}/usr/include/c++/${_minorver}
ln -sfr ${DESTDIR}/usr/include/c++/${_minorver} \
- ${DESTDIR}/usr/include/c++/${_patchver}
+ ${DESTDIR}/usr/include/c++/${version}
# cc symlink
ln -sfr ${DESTDIR}/usr/bin/gcc ${DESTDIR}/usr/bin/cc
@@ -361,7 +360,7 @@ do_install() {
# lto plugin symlink
vmkdir usr/lib/bfd-plugins
- ln -sfr ${DESTDIR}/usr/lib/gcc/${_triplet}/${_patchver}/liblto_plugin.so \
+ ln -sfr ${DESTDIR}/usr/lib/gcc/${_triplet}/${version}/liblto_plugin.so \
${DESTDIR}/usr/lib/bfd-plugins
# Remove "fixed" header
@@ -372,13 +371,9 @@ do_install() {
rm -f ${DESTDIR}/usr/lib/libffi*
rm -f ${DESTDIR}/usr/share/man/man3/ffi*
- # Remove all python scripts in libdir.
- rm -f ${DESTDIR}/usr/lib/*.py
-
- # Remove more python stuff.
- if [ -d ${DESTDIR}/usr/share/gcc-${_patchver}/python ]; then
- rm -rf ${DESTDIR}/usr/share/gcc-${_patchver}/python
- fi
+ # Move libstdc++ gdb helpers to location where gdb can autoload them
+ mkdir -p ${DESTDIR}/usr/share/gdb/auto-load/usr/lib
+ mv ${DESTDIR}/usr/lib/*.py ${DESTDIR}/usr/share/gdb/auto-load/usr/lib
# Install c89 and c99 wrappers and its manpages, from NetBSD.
for f in c89 c99; do
@@ -397,7 +392,7 @@ gcc-ada_package() {
depends="gcc>=${_minorver} libada-devel>=${_minorver}"
short_desc+=" - Ada compiler frontend"
pkg_install() {
- for f in gnat{,bind,chop,clean,find,kr,link,ls,make,name,prep,xref}; do
+ for f in gnat{,bind,chop,clean,kr,link,ls,make,name,prep}; do
vmove usr/bin/${f}
done
}
@@ -450,7 +445,7 @@ gcc-fortran_package() {
if [ "$CROSS_BUILD" ]; then
# A number of OMP modules are not built when cross
# compiling gcc. Copy them from the cross compiler.
- local src="/usr/lib/gcc/${_triplet}/${_patchver}/finclude"
+ local src="/usr/lib/gcc/${_triplet}/${version}/finclude"
local dst="usr/lib/gcc/${_triplet}/${_minorver}/finclude"
for f in omp_lib.f90 omp_lib.h omp_lib.mod omp_lib_kinds.mod \
openacc.f90 openacc.mod openacc_kinds.mod openacc_lib.h; do
@@ -517,7 +512,7 @@ libgfortran_package() {
short_desc+=" - Fortran library"
pkg_install() {
vmove "usr/lib/libgfortran.so*"
- vlicense ${wrksrc}/COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
+ vlicense COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
}
}
@@ -538,7 +533,7 @@ libgo_package() {
nostrip=yes
pkg_install() {
vmove "usr/lib/libgo.so*"
- vlicense ${wrksrc}/COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
+ vlicense COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
}
}
@@ -554,7 +549,7 @@ libobjc_package() {
short_desc+=" - Objective-C library"
pkg_install() {
vmove "usr/lib/libobjc.so*"
- vlicense ${wrksrc}/COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
+ vlicense COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
}
}
@@ -573,7 +568,7 @@ libquadmath_package() {
short_desc+=" - quadmath library"
pkg_install() {
vmove "usr/lib/libquadmath.so*"
- vlicense ${wrksrc}/COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
+ vlicense COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
}
}
@@ -615,7 +610,7 @@ libgcc_package() {
noverifyrdeps=yes
pkg_install() {
vmove "usr/lib/libgcc_s.so*"
- vlicense ${wrksrc}/COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
+ vlicense COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
}
}
@@ -646,7 +641,7 @@ libgomp_package() {
short_desc+=" - OpenMP v4.0 library"
pkg_install() {
vmove "usr/lib/libgomp*.so.*"
- vlicense ${wrksrc}/COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
+ vlicense COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
}
}
@@ -701,7 +696,7 @@ libssp_package() {
short_desc+=" - SSP (StackSmashingProtection) library"
pkg_install() {
vmove "usr/lib/libssp.so*"
- vlicense ${wrksrc}/COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
+ vlicense COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
}
}
@@ -718,7 +713,9 @@ libstdc++-devel_package() {
libstdc++_package() {
short_desc+=" - Standard C++ Library"
pkg_install() {
+ vmove usr/share/gdb
+ vmove usr/share/gcc-${version}/python
vmove "usr/lib/libstdc++.so*"
- vlicense ${wrksrc}/COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
+ vlicense COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
}
}
From a651087b2c83fa33f4900c3563f08bca60adca05 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sat, 5 Nov 2022 11:33:11 -0700
Subject: [PATCH 04/39] libtool: rebuild for gcc 12
---
srcpkgs/libtool/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/libtool/template b/srcpkgs/libtool/template
index fc5c53a9c3e9..aebad9294eef 100644
--- a/srcpkgs/libtool/template
+++ b/srcpkgs/libtool/template
@@ -1,7 +1,7 @@
# Template file for 'libtool'
pkgname=libtool
version=2.4.7
-revision=1
+revision=2
build_style=gnu-configure
hostmakedepends="texinfo perl automake help2man xz"
depends="tar sed"
From eee501ae2e2006c5d75f3b95da6533d14c495780 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sat, 5 Nov 2022 11:33:12 -0700
Subject: [PATCH 05/39] libiberty-devel: update to 20220713.
---
srcpkgs/libiberty-devel/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/libiberty-devel/template b/srcpkgs/libiberty-devel/template
index 7e01bbb851fd..d9618e3806ba 100644
--- a/srcpkgs/libiberty-devel/template
+++ b/srcpkgs/libiberty-devel/template
@@ -1,6 +1,6 @@
# Template file for 'libiberty-devel'
pkgname=libiberty-devel
-version=20210106
+version=20220713
revision=1
build_wrksrc=libiberty
build_style=gnu-configure
@@ -10,7 +10,7 @@ maintainer="Orphaned <orphan@voidlinux.org>"
license="GPL-3.0-or-later"
homepage="http://gcc.gnu.org/"
distfiles="http://deb.debian.org/debian/pool/main/libi/libiberty/libiberty_${version}.orig.tar.xz"
-checksum=9df153d69914c0f5a9145e0abbb248e72feebab6777c712a30f1c3b8c19047d4
+checksum=b59050f48c8a0f9c9e6fba5d17c7a4f11d1329de0c0dca7331b767a6d2bbe8d9
conflicts="binutils-devel<=2.35.1_3"
CFLAGS="-fPIC"
From bb15379df0b58d5422beb485d9c8866e3cd30465 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sat, 5 Nov 2022 11:33:12 -0700
Subject: [PATCH 06/39] glibc: update to 2.36.
---
common/shlibs | 60 ++--
...e-hash-style-both-for-building-glibc.patch | 51 ++++
.../glibc/patches/glibc-c-utf8-locale.patch | 286 ------------------
srcpkgs/glibc/template | 66 ++--
4 files changed, 109 insertions(+), 354 deletions(-)
create mode 100644 srcpkgs/glibc/patches/0001-Revert-Do-not-use-hash-style-both-for-building-glibc.patch
delete mode 100644 srcpkgs/glibc/patches/glibc-c-utf8-locale.patch
diff --git a/common/shlibs b/common/shlibs
index eb361f40abe4..7ce556ce7ac2 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -17,38 +17,38 @@
# one (order top->bottom) is preferred over the next ones.
#
libc.so musl-1.1.24_7
-libc.so.6 glibc-2.32_1
-libm.so.6 glibc-2.32_1
-libpthread.so.0 glibc-2.32_1
-librt.so.1 glibc-2.32_1
-libdl.so.2 glibc-2.32_1
-ld-linux-x86-64.so.2 glibc-2.32_1 x86_64
-ld-linux.so.2 glibc-2.32_1 i686
-ld-linux.so.3 glibc-2.32_1 armv5tel
-ld-linux-aarch64.so.1 glibc-2.32_1 aarch64
-ld64.so.2 glibc-2.32_1 ppc64
-ld.so.1 glibc-2.32_1 mips
-ld.so.1 glibc-2.32_1 ppc
-ld-linux-armhf.so.3 glibc-2.32_1
-libresolv.so.2 glibc-2.32_1
-libanl.so.1 glibc-2.32_1
-libthread_db.so.1 glibc-2.32_1
-libutil.so.1 glibc-2.32_1
-libnsl.so.1 glibc-2.32_1
-libnss_db.so.2 glibc-2.32_1
-libnss_files.so.2 glibc-2.32_1
-libnss_compat.so.2 glibc-2.32_1
-libnss_dns.so.2 glibc-2.32_1
-libnss_hesiod.so.2 glibc-2.32_1
-libcrypt.so.1 glibc-2.32_1
-libBrokenLocale.so.1 glibc-2.32_1
+libc.so.6 glibc-2.36_1
+libm.so.6 glibc-2.36_1
+libpthread.so.0 glibc-2.36_1
+librt.so.1 glibc-2.36_1
+libdl.so.2 glibc-2.36_1
+ld-linux-x86-64.so.2 glibc-2.36_1 x86_64
+ld-linux.so.2 glibc-2.36_1 i686
+ld-linux.so.3 glibc-2.36_1 armv5tel
+ld-linux-aarch64.so.1 glibc-2.36_1 aarch64
+ld64.so.2 glibc-2.36_1 ppc64
+ld.so.1 glibc-2.36_1 mips
+ld.so.1 glibc-2.36_1 ppc
+ld-linux-armhf.so.3 glibc-2.36_1
+libresolv.so.2 glibc-2.36_1
+libanl.so.1 glibc-2.36_1
+libthread_db.so.1 glibc-2.36_1
+libutil.so.1 glibc-2.36_1
+libnsl.so.1 glibc-2.36_1
+libnss_db.so.2 glibc-2.36_1
+libnss_files.so.2 glibc-2.36_1
+libnss_compat.so.2 glibc-2.36_1
+libnss_dns.so.2 glibc-2.36_1
+libnss_hesiod.so.2 glibc-2.36_1
+libcrypt.so.1 glibc-2.36_1
+libBrokenLocale.so.1 glibc-2.36_1
libSimGearCore.so.2020.3.17 simgear-2020.3.17_1
libSimGearScene.so.2020.3.17 simgear-2020.3.17_1
-libmemusage.so glibc-2.32_1
-libSegFault.so glibc-2.32_1
-libpcprofile.so glibc-2.32_1
-libcidn.so.1 glibc-2.32_1
-libmvec.so.1 glibc-2.32_1
+libmemusage.so glibc-2.36_1
+libSegFault.so glibc-2.36_1
+libpcprofile.so glibc-2.36_1
+libcidn.so.1 glibc-2.36_1
+libmvec.so.1 glibc-2.36_1
libcddgmp.so.0 cddlib-0.94m_1
libcdd.so.0 cddlib-0.94m_1
libz.so.1 zlib-1.2.3_1
diff --git a/srcpkgs/glibc/patches/0001-Revert-Do-not-use-hash-style-both-for-building-glibc.patch b/srcpkgs/glibc/patches/0001-Revert-Do-not-use-hash-style-both-for-building-glibc.patch
new file mode 100644
index 000000000000..9c5553e92609
--- /dev/null
+++ b/srcpkgs/glibc/patches/0001-Revert-Do-not-use-hash-style-both-for-building-glibc.patch
@@ -0,0 +1,51 @@
+Temporary workaround for EAC bug.
+
+See: https://sourceware.org/bugzilla/show_bug.cgi?id=29456
+
+From 8e90e2cc5e57d7ca3a40602d278e9642a8b66716 Mon Sep 17 00:00:00 2001
+From: oreo639 <oreo6391@gmail.com>
+Date: Tue, 13 Sep 2022 14:30:35 -0700
+Subject: [PATCH] Revert "Do not use --hash-style=both for building glibc
+ shared objects"
+
+This reverts commit e47de5cb2d4dbecb58f569ed241e8e95c568f03c.
+---
+ Makeconfig | 9 +++++++++
+ Makerules | 7 +++++++
+ 5 files changed, 61 insertions(+)
+
+diff --git a/Makeconfig b/Makeconfig
+index ba70321af1..e2131d4389 100644
+--- a/Makeconfig
++++ b/Makeconfig
+@@ -371,6 +371,13 @@ dt-relr-ldflag =
+ no-dt-relr-ldflag =
+ endif
+
++# For the time being we unconditionally use 'both'. At some time we
++# should declare statically linked code as 'out of luck' and compile
++# with --hash-style=gnu only.
++hashstyle-LDFLAGS = -Wl,--hash-style=both
++LDFLAGS.so += $(hashstyle-LDFLAGS)
++LDFLAGS-rtld += $(hashstyle-LDFLAGS)
++
+ ifeq (no,$(build-pie-default))
+ pie-default = $(no-pie-ccflag)
+ else # build-pie-default
+diff --git a/Makerules b/Makerules
+index d1e139d03c..44134e37ce 100644
+--- a/Makerules
++++ b/Makerules
+@@ -558,6 +558,9 @@ $(common-objpfx)shlib.lds: $(common-objpfx)config.make $(..)Makerules
+ -Wl,--verbose 2>/dev/null | \
+ sed > $@T \
+ -e '/^=========/,/^=========/!d;/^=========/d' \
++ -e 's/^.*\.gnu\.hash[ ]*:.*$$/ .note.ABI-tag : { *(.note.ABI-tag) } &/' \
++ -e '/^[ ]*\.hash[ ]*:.*$$/{h;d;}' \
++ -e '/DATA_SEGMENT_ALIGN/{H;g}' \
+ -e 's/^.*\*(\.dynbss).*$$/& \
+ PROVIDE(__start___libc_freeres_ptrs = .); \
+ *(__libc_freeres_ptrs) \
+--
+2.37.3
+
diff --git a/srcpkgs/glibc/patches/glibc-c-utf8-locale.patch b/srcpkgs/glibc/patches/glibc-c-utf8-locale.patch
deleted file mode 100644
index 7215e1558b62..000000000000
--- a/srcpkgs/glibc/patches/glibc-c-utf8-locale.patch
+++ /dev/null
@@ -1,286 +0,0 @@
-Short description: Add C.UTF-8 support.
-Author(s): Fedora glibc team <glibc@lists.fedoraproject.org>
-Origin: PATCH
-Upstream status: not-submitted
-
-This patch needs to upstream as part of Carlos O'Donell
-<carlos@redhat.com>'s work on enabling upstream C.UTF-8 support. This
-work is currently blocked on cleaning up the test results to prove that
-full code-point sorting is working as intended.
-
-Note that this patch does not provide full code-point sorting as
-expected.
-
-This patch needs to upstream as soon as possible since it would be nice
-to have this in F29 and fixed.
-
-From 2eda7b462b415105f5a05c1323372d4e39d46439 Mon Sep 17 00:00:00 2001
-From: Mike FABIAN <mfabian@redhat.com>
-Date: Mon, 10 Aug 2015 15:58:12 +0200
-Subject: [PATCH] Add a C.UTF-8 locale
-
----
- localedata/SUPPORTED | 1 +
- localedata/locales/C | 238 +++++++++++++++++++++++++++++++++++++++++++++++++++
- 2 files changed, 239 insertions(+)
- create mode 100644 localedata/locales/C
-
-diff --git a/localedata/SUPPORTED b/localedata/SUPPORTED
-index 8ca023e..2a78391 100644
---- a/localedata/SUPPORTED
-+++ b/localedata/SUPPORTED
-@@ -1,6 +1,7 @@
- # This file names the currently supported and somewhat tested locales.
- # If you have any additions please file a glibc bug report.
- SUPPORTED-LOCALES=\
-+C.UTF-8/UTF-8 \
- aa_DJ.UTF-8/UTF-8 \
- aa_DJ/ISO-8859-1 \
- aa_ER/UTF-8 \
-diff --git a/localedata/locales/C b/localedata/locales/C
-new file mode 100644
-index 0000000..fdf460e
---- /dev/null
-+++ b/localedata/locales/C
-@@ -0,0 +1,238 @@
-+escape_char /
-+comment_char %
-+% Locale for C locale in UTF-8
-+
-+LC_IDENTIFICATION
-+title "C locale"
-+source ""
-+address ""
-+contact ""
-+email "mfabian@redhat.com"
-+tel ""
-+fax ""
-+language "C"
-+territory ""
-+revision "1.0"
-+date "2015-08-10"
-+%
-+category "i18n:2012";LC_IDENTIFICATION
-+category "i18n:2012";LC_CTYPE
-+category "i18n:2012";LC_COLLATE
-+category "i18n:2012";LC_TIME
-+category "i18n:2012";LC_NUMERIC
-+category "i18n:2012";LC_MONETARY
-+category "i18n:2012";LC_MESSAGES
-+category "i18n:2012";LC_PAPER
-+category "i18n:2012";LC_NAME
-+category "i18n:2012";LC_ADDRESS
-+category "i18n:2012";LC_TELEPHONE
-+category "i18n:2012";LC_MEASUREMENT
-+END LC_IDENTIFICATION
-+
-+LC_CTYPE
-+copy "i18n"
-+
-+translit_start
-+include "translit_combining";""
-+translit_end
-+
-+END LC_CTYPE
-+
-+LC_COLLATE
-+order_start forward
-+<U0000>
-+..
-+<UFFFF>
-+<U10000>
-+..
-+<U1FFFF>
-+<U20000>
-+..
-+<U2FFFF>
-+<UE0000>
-+..
-+<UEFFFF>
-+<UF0000>
-+..
-+<UFFFFF>
-+<U100000>
-+..
-+<U10FFFF>
-+UNDEFINED
-+order_end
-+END LC_COLLATE
-+
-+LC_MONETARY
-+% This is the 14652 i18n fdcc-set definition for
-+% the LC_MONETARY category
-+% (except for the int_curr_symbol and currency_symbol, they are empty in
-+% the 14652 i18n fdcc-set definition and also empty in
-+% glibc/locale/C-monetary.c. But localedef complains in that case).
-+%
-+% Using "USD" for int_curr_symbol. But maybe "XXX" would be better?
-+% XXX is "No currency" (https://en.wikipedia.org/wiki/ISO_4217)
-+int_curr_symbol "<U0055><U0053><U0044><U0020>"
-+% Using "$" for currency_symbol. But maybe <U00A4> would be better?
-+% U+00A4 is the "generic currency symbol"
-+% (https://en.wikipedia.org/wiki/Currency_sign_%28typography%29)
-+currency_symbol "<U0024>"
-+mon_decimal_point "<U002E>"
-+mon_thousands_sep ""
-+mon_grouping -1
-+positive_sign ""
-+negative_sign "<U002D>"
-+int_frac_digits -1
-+frac_digits -1
-+p_cs_precedes -1
-+int_p_sep_by_space -1
-+p_sep_by_space -1
-+n_cs_precedes -1
-+int_n_sep_by_space -1
-+n_sep_by_space -1
-+p_sign_posn -1
-+n_sign_posn -1
-+%
-+END LC_MONETARY
-+
-+LC_NUMERIC
-+% This is the POSIX Locale definition for
-+% the LC_NUMERIC category.
-+%
-+decimal_point "<U002E>"
-+thousands_sep ""
-+grouping -1
-+END LC_NUMERIC
-+
-+LC_TIME
-+% This is the POSIX Locale definition for
-+% the LC_TIME category.
-+%
-+% Abbreviated weekday names (%a)
-+abday "<U0053><U0075><U006E>";"<U004D><U006F><U006E>";/
-+ "<U0054><U0075><U0065>";"<U0057><U0065><U0064>";/
-+ "<U0054><U0068><U0075>";"<U0046><U0072><U0069>";/
-+ "<U0053><U0061><U0074>"
-+
-+% Full weekday names (%A)
-+day "<U0053><U0075><U006E><U0064><U0061><U0079>";/
-+ "<U004D><U006F><U006E><U0064><U0061><U0079>";/
-+ "<U0054><U0075><U0065><U0073><U0064><U0061><U0079>";/
-+ "<U0057><U0065><U0064><U006E><U0065><U0073><U0064><U0061><U0079>";/
-+ "<U0054><U0068><U0075><U0072><U0073><U0064><U0061><U0079>";/
-+ "<U0046><U0072><U0069><U0064><U0061><U0079>";/
-+ "<U0053><U0061><U0074><U0075><U0072><U0064><U0061><U0079>"
-+
-+% Abbreviated month names (%b)
-+abmon "<U004A><U0061><U006E>";"<U0046><U0065><U0062>";/
-+ "<U004D><U0061><U0072>";"<U0041><U0070><U0072>";/
-+ "<U004D><U0061><U0079>";"<U004A><U0075><U006E>";/
-+ "<U004A><U0075><U006C>";"<U0041><U0075><U0067>";/
-+ "<U0053><U0065><U0070>";"<U004F><U0063><U0074>";/
-+ "<U004E><U006F><U0076>";"<U0044><U0065><U0063>"
-+
-+% Full month names (%B)
-+mon "<U004A><U0061><U006E><U0075><U0061><U0072><U0079>";/
-+ "<U0046><U0065><U0062><U0072><U0075><U0061><U0072><U0079>";/
-+ "<U004D><U0061><U0072><U0063><U0068>";/
-+ "<U0041><U0070><U0072><U0069><U006C>";/
-+ "<U004D><U0061><U0079>";/
-+ "<U004A><U0075><U006E><U0065>";/
-+ "<U004A><U0075><U006C><U0079>";/
-+ "<U0041><U0075><U0067><U0075><U0073><U0074>";/
-+ "<U0053><U0065><U0070><U0074><U0065><U006D><U0062><U0065><U0072>";/
-+ "<U004F><U0063><U0074><U006F><U0062><U0065><U0072>";/
-+ "<U004E><U006F><U0076><U0065><U006D><U0062><U0065><U0072>";/
-+ "<U0044><U0065><U0063><U0065><U006D><U0062><U0065><U0072>"
-+
-+% Week description, consists of three fields:
-+% 1. Number of days in a week.
-+% 2. Gregorian date that is a first weekday (19971130 for Sunday, 19971201 for Monday).
-+% 3. The weekday number to be contained in the first week of the year.
-+%
-+% ISO 8601 conforming applications should use the values 7, 19971201 (a
-+% Monday), and 4 (Thursday), respectively.
-+week 7;19971201;4
-+first_weekday 1
-+first_workday 1
-+
-+% Appropriate date and time representation (%c)
-+% "%a %b %e %H:%M:%S %Y"
-+d_t_fmt "<U0025><U0061><U0020><U0025><U0062><U0020><U0025><U0065><U0020><U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053><U0020><U0025><U0059>"
-+
-+% Appropriate date representation (%x)
-+% "%m/%d/%y"
-+d_fmt "<U0025><U006D><U002F><U0025><U0064><U002F><U0025><U0079>"
-+
-+% Appropriate time representation (%X)
-+% "%H:%M:%S"
-+t_fmt "<U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053>"
-+
-+% Appropriate AM/PM time representation (%r)
-+% "%I:%M:%S %p"
-+t_fmt_ampm "<U0025><U0049><U003A><U0025><U004D><U003A><U0025><U0053><U0020><U0025><U0070>"
-+
-+% Equivalent of AM/PM (%p) "AM"/"PM"
-+%
-+am_pm "<U0041><U004D>";"<U0050><U004D>"
-+
-+% Appropriate date representation (date(1)) "%a %b %e %H:%M:%S %Z %Y"
-+date_fmt "<U0025><U0061><U0020><U0025><U0062><U0020><U0025><U0065><U0020><U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053><U0020><U0025><U005A><U0020><U0025><U0059>"
-+END LC_TIME
-+
-+LC_MESSAGES
-+% This is the POSIX Locale definition for
-+% the LC_NUMERIC category.
-+%
-+yesexpr "<U005E><U005B><U0079><U0059><U005D>"
-+noexpr "<U005E><U005B><U006E><U004E><U005D>"
-+yesstr "<U0059><U0065><U0073>"
-+nostr "<U004E><U006F>"
-+END LC_MESSAGES
-+
-+LC_PAPER
-+% This is the ISO/IEC 14652 "i18n" definition for
-+% the LC_PAPER category.
-+% (A4 paper, this is also used in the built in C/POSIX
-+% locale in glibc/locale/C-paper.c)
-+height 297
-+width 210
-+END LC_PAPER
-+
-+LC_NAME
-+% This is the ISO/IEC 14652 "i18n" definition for
-+% the LC_NAME category.
-+% "%p%t%g%t%m%t%f"
-+% (also used in the built in C/POSIX locale in glibc/locale/C-name.c)
-+name_fmt "<U0025><U0070><U0025><U0074><U0025><U0067><U0025><U0074>/
-+<U0025><U006D><U0025><U0074><U0025><U0066>"
-+END LC_NAME
-+
-+LC_ADDRESS
-+% This is the ISO/IEC 14652 "i18n" definition for
-+% the LC_ADDRESS category.
-+% "%a%N%f%N%d%N%b%N%s %h %e %r%N%C-%z %T%N%c%N"
-+% (also used in the built in C/POSIX locale in glibc/locale/C-address.c)
-+postal_fmt "<U0025><U0061><U0025><U004E><U0025><U0066><U0025><U004E>/
-+<U0025><U0064><U0025><U004E><U0025><U0062><U0025><U004E><U0025><U0073>/
-+<U0020><U0025><U0068><U0020><U0025><U0065><U0020><U0025><U0072><U0025>/
-+<U004E><U0025><U0043><U002D><U0025><U007A><U0020><U0025><U0054><U0025>/
-+<U004E><U0025><U0063><U0025><U004E>"
-+END LC_ADDRESS
-+
-+LC_TELEPHONE
-+% This is the ISO/IEC 14652 "i18n" definition for
-+% the LC_TELEPHONE category.
-+% "+%c %a %l"
-+tel_int_fmt "<U002B><U0025><U0063><U0020><U0025><U0061><U0020><U0025>/
-+<U006C>"
-+% (also used in the built in C/POSIX locale in glibc/locale/C-telephone.c)
-+END LC_TELEPHONE
-+
-+LC_MEASUREMENT
-+% This is the ISO/IEC 14652 "i18n" definition for
-+% the LC_MEASUREMENT category.
-+% (same as in the built in C/POSIX locale in glibc/locale/C-measurement.c)
-+%metric
-+measurement 1
-+END LC_MEASUREMENT
-+
---
-2.4.3
-
diff --git a/srcpkgs/glibc/template b/srcpkgs/glibc/template
index c62a4d2aedf1..6cd4c0980cbb 100644
--- a/srcpkgs/glibc/template
+++ b/srcpkgs/glibc/template
@@ -1,14 +1,16 @@
# Template file for 'glibc'
pkgname=glibc
-version=2.32
-revision=2
+version=2.36
+revision=1
+_patchver="72-g0f90d6204d"
+wrksrc="glibc-${version}-${_patchver}"
bootstrap=yes
short_desc="GNU C library"
maintainer="Enno Boland <gottox@voidlinux.org>"
license="GPL-2.0-or-later, LGPL-2.1-or-later, BSD-3-Clause"
homepage="http://www.gnu.org/software/libc"
-distfiles="${GNU_SITE}/glibc/glibc-${version}.tar.xz"
-checksum=1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+distfiles="https://vasilek.cz/paste/glibc-${version}-${_patchver}.tar.xz"
+checksum=656200722d5ba968b4888a2d2950719d72c86290fd0479f61897d25b7db2cb57
# Do not strip these files, objcopy errors out.
nostrip_files="
XBS5_ILP32_OFFBIG
@@ -20,27 +22,28 @@ nostrip_files="
POSIX_V6_LP64_OFF64
POSIX_V7_LP64_OFF64
XBS5_LP64_OFF64
- ld-${version}.so
- libdl-${version}.so
- libanl-${version}.so
- libcidn-${version}.so
- libresolv-${version}.so
- libcrypt-${version}.so
- libpthread-${version}.so
- libm-${version}.so
- libutil-${version}.so
- libthread_db-1.0.so
- librt-${version}.so
- libnsl-${version}.so
- libc-${version}.so
- libBrokenLocale-${version}.so
- libnss_compat-${version}.so
- libnss_db-${version}.so
- libnss_dns-${version}.so
- libnss_files-${version}.so
- libnss_hesiod-${version}.so
- libnss_nisplus-${version}.so
- libnss_nis-${version}.so"
+ ld-linux-x86-64.so.2
+ ld-linux.so.2
+ ld-linux.so.3
+ ld-linux-aarch64.so.1
+ ld64.so.2
+ ld.so.1
+ ld-linux-armhf.so.3
+ libresolv.so.2
+ libcrypt.so.1
+ libm.so.6
+ libthread_db.so.1
+ libnsl.so.1
+ libc.so.6
+ libc_malloc_debug.so.0
+ libmemusage.so
+ libmvec.so.1
+ libBrokenLocale.so.1
+ libnss_compat.so.2
+ libnss_db.so.2
+ libnss_dns.so.2
+ libnss_files.so.2
+ libnss_hesiod.so.2"
conf_files="
/etc/rpc
@@ -54,7 +57,6 @@ lib32files="/usr/lib/gconv/gconv-modules"
lib32symlinks="ld-linux.so.2"
# There's no point in building this for musl.
archs="~*-musl"
-nopie=yes
do_configure() {
mkdir build
@@ -163,18 +165,6 @@ do_install() {
rm -f ${DESTDIR}/usr/bin/z{dump,ic}
mv ${DESTDIR}/usr/sbin/* ${DESTDIR}/usr/bin
-
- # Create xbps.d(5) arch override file for 32-bit architectures
- # 32-bit userlands may be used with 64-bit kernels and then
- # xbps will report an incorrect architecture by default
- case "$XBPS_TARGET_MACHINE" in
- i686|ppc|ppcle|armv*)
- vmkdir usr/share/xbps.d
- echo "architecture=${XBPS_TARGET_MACHINE}" > \
- ${DESTDIR}/usr/share/xbps.d/arch-32bit.conf
- ;;
- *) ;;
- esac
}
glibc-devel_package() {
From b055d3cc962a566c64b261dd2a609eadce33f3ca Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sat, 5 Nov 2022 11:33:12 -0700
Subject: [PATCH 07/39] musl: add support for SIGEV_THREAD_ID timers
https://git.musl-libc.org/cgit/musl/commit/?id=7c71792e87691451f2a6b76348e83ad1889f1dcb
---
...d-support-for-SIGEV_THREAD_ID-timers.patch | 74 +++++++++++++++++++
srcpkgs/musl/template | 2 +-
2 files changed, 75 insertions(+), 1 deletion(-)
create mode 100644 srcpkgs/musl/patches/add-support-for-SIGEV_THREAD_ID-timers.patch
diff --git a/srcpkgs/musl/patches/add-support-for-SIGEV_THREAD_ID-timers.patch b/srcpkgs/musl/patches/add-support-for-SIGEV_THREAD_ID-timers.patch
new file mode 100644
index 000000000000..e20dff5ba0d4
--- /dev/null
+++ b/srcpkgs/musl/patches/add-support-for-SIGEV_THREAD_ID-timers.patch
@@ -0,0 +1,74 @@
+From 7c71792e87691451f2a6b76348e83ad1889f1dcb Mon Sep 17 00:00:00 2001
+From: James Y Knight <jyknight@google.com>
+Date: Sun, 30 Jun 2019 21:55:20 -0400
+Subject: [PATCH] add support for SIGEV_THREAD_ID timers
+
+This is like SIGEV_SIGNAL, but targeted to a particular thread's
+tid, rather than the process.
+---
+ include/signal.h | 16 +++++++++++++---
+ src/time/timer_create.c | 8 ++++++--
+ 2 files changed, 19 insertions(+), 5 deletions(-)
+
+diff --git a/include/signal.h b/include/signal.h
+index fbdf667b2..9ed929e4f 100644
+--- a/include/signal.h
++++ b/include/signal.h
+@@ -180,14 +180,24 @@ struct sigevent {
+ union sigval sigev_value;
+ int sigev_signo;
+ int sigev_notify;
+- void (*sigev_notify_function)(union sigval);
+- pthread_attr_t *sigev_notify_attributes;
+- char __pad[56-3*sizeof(long)];
++ union {
++ char __pad[64 - 2*sizeof(int) - sizeof(union sigval)];
++ pid_t sigev_notify_thread_id;
++ struct {
++ void (*sigev_notify_function)(union sigval);
++ pthread_attr_t *sigev_notify_attributes;
++ } __sev_thread;
++ } __sev_fields;
+ };
+
++#define sigev_notify_thread_id __sev_fields.sigev_notify_thread_id
++#define sigev_notify_function __sev_fields.__sev_thread.sigev_notify_function
++#define sigev_notify_attributes __sev_fields.__sev_thread.sigev_notify_attributes
++
+ #define SIGEV_SIGNAL 0
+ #define SIGEV_NONE 1
+ #define SIGEV_THREAD 2
++#define SIGEV_THREAD_ID 4
+
+ int __libc_current_sigrtmin(void);
+ int __libc_current_sigrtmax(void);
+diff --git a/src/time/timer_create.c b/src/time/timer_create.c
+index 5ddfda278..4bef23905 100644
+--- a/src/time/timer_create.c
++++ b/src/time/timer_create.c
+@@ -71,11 +71,15 @@ int timer_create(clockid_t clk, struct sigevent *restrict evp, timer_t *restrict
+ switch (evp ? evp->sigev_notify : SIGEV_SIGNAL) {
+ case SIGEV_NONE:
+ case SIGEV_SIGNAL:
++ case SIGEV_THREAD_ID:
+ if (evp) {
+ ksev.sigev_value = evp->sigev_value;
+ ksev.sigev_signo = evp->sigev_signo;
+ ksev.sigev_notify = evp->sigev_notify;
+- ksev.sigev_tid = 0;
++ if (evp->sigev_notify == SIGEV_THREAD_ID)
++ ksev.sigev_tid = evp->sigev_notify_thread_id;
++ else
++ ksev.sigev_tid = 0;
+ ksevp = &ksev;
+ }
+ if (syscall(SYS_timer_create, clk, ksevp, &timerid) < 0)
+@@ -107,7 +111,7 @@ int timer_create(clockid_t clk, struct sigevent *restrict evp, timer_t *restrict
+
+ ksev.sigev_value.sival_ptr = 0;
+ ksev.sigev_signo = SIGTIMER;
+- ksev.sigev_notify = 4; /* SIGEV_THREAD_ID */
++ ksev.sigev_notify = SIGEV_THREAD_ID;
+ ksev.sigev_tid = td->tid;
+ if (syscall(SYS_timer_create, clk, &ksev, &timerid) < 0)
+ timerid = -1;
diff --git a/srcpkgs/musl/template b/srcpkgs/musl/template
index 34e6ed4fba6e..afb33cd868b5 100644
--- a/srcpkgs/musl/template
+++ b/srcpkgs/musl/template
@@ -2,7 +2,7 @@
pkgname=musl
reverts="1.2.0_1"
version=1.1.24
-revision=11
+revision=12
archs="*-musl"
bootstrap=yes
build_style=gnu-configure
From 34710f5702653a6bbfe481265cb85b490c983d22 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sat, 5 Nov 2022 11:33:12 -0700
Subject: [PATCH 08/39] gcc-multilib: update to 12.2.0.
---
srcpkgs/gcc-multilib/template | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/srcpkgs/gcc-multilib/template b/srcpkgs/gcc-multilib/template
index f28eb237c287..ba9bafcadfd6 100644
--- a/srcpkgs/gcc-multilib/template
+++ b/srcpkgs/gcc-multilib/template
@@ -3,15 +3,15 @@ archs="x86_64"
_triplet="x86_64-unknown-linux-gnu"
pkgname=gcc-multilib
-version=10.2.1pre1
+version=12.2.0
revision=1
_majorver="${version%.*}"
short_desc="GNU Compiler Collection (multilib files)"
maintainer="Orphaned <orphan@voidlinux.org>"
homepage="http://gcc.gnu.org"
license="GFDL-1.2-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
-distfiles="https://dev.alpinelinux.org/~nenolod/gcc-${version/pre/_pre}.tar.xz"
-checksum=772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+distfiles="${GNU_SITE}/gcc/gcc-${version}/gcc-${version}.tar.xz"
+checksum=e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
hostmakedepends="perl flex tar zip unzip"
makedepends="zlib-devel libmpc-devel isl15-devel libfl-devel
@@ -70,7 +70,7 @@ do_build() {
make ${makejobs}
}
do_install() {
- local _pc_triplet=x86_64-pc-linux-gnu _version=${version%pre1}
+ local _pc_triplet=x86_64-pc-linux-gnu
# Install to a tempdir and then only copy relevant files.
cd ${wrksrc}
make DESTDIR=${wrksrc}/${pkgname}-build install
@@ -80,9 +80,9 @@ do_install() {
vmkdir usr/include/c++/${_majorver}/${_triplet}
vmkdir usr/lib/gcc/${_triplet}/${_majorver}
- cp -a ${wrksrc}/${pkgname}-build/usr/lib/gcc/${_pc_triplet}/${_version}/32 \
+ cp -a ${wrksrc}/${pkgname}-build/usr/lib/gcc/${_pc_triplet}/${version}/32 \
${DESTDIR}/usr/lib/gcc/${_triplet}/${_majorver}/
- cp -a ${wrksrc}/${pkgname}-build/usr/include/c++/${_version}/${_pc_triplet}/32 \
+ cp -a ${wrksrc}/${pkgname}-build/usr/include/c++/${version}/${_pc_triplet}/32 \
${DESTDIR}/usr/include/c++/${_majorver}/${_triplet}
vinstall ${wrksrc}/host-${_pc_triplet}/gcc/specs 644 usr/lib/gcc/${_triplet}/${_majorver}
From 47bb77d08e9a8b98d77db5e076d0799ec8ff1fb1 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sat, 5 Nov 2022 11:33:12 -0700
Subject: [PATCH 09/39] libgccjit: update to 12.2.0.
---
srcpkgs/libgccjit/files/libgccjit-musl.patch | 63 --------------------
srcpkgs/libgccjit/template | 24 +++-----
2 files changed, 9 insertions(+), 78 deletions(-)
delete mode 100644 srcpkgs/libgccjit/files/libgccjit-musl.patch
diff --git a/srcpkgs/libgccjit/files/libgccjit-musl.patch b/srcpkgs/libgccjit/files/libgccjit-musl.patch
deleted file mode 100644
index d2ed16928c82..000000000000
--- a/srcpkgs/libgccjit/files/libgccjit-musl.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-diff --git a/gcc/jit/jit-playback.c b/gcc/jit/jit-playback.c
-index 5bccf591a..35f5e35ef 100644
---- a/gcc/jit/jit-playback.c
-+++ b/gcc/jit/jit-playback.c
-@@ -18,6 +18,8 @@ You should have received a copy of the GNU General Public License
- along with GCC; see the file COPYING3. If not see
- <http://www.gnu.org/licenses/>. */
-
-+#include <pthread.h>
-+
- #include "config.h"
- #include "system.h"
- #include "coretypes.h"
-@@ -41,8 +43,6 @@ along with GCC; see the file COPYING3. If not see
- #include "diagnostic.h"
- #include "stmt.h"
-
--#include <pthread.h>
--
- #include "jit-playback.h"
- #include "jit-result.h"
- #include "jit-builtins.h"
-diff --git a/gcc/jit/jit-recording.c b/gcc/jit/jit-recording.c
-index a237d574f..5785e3269 100644
---- a/gcc/jit/jit-recording.c
-+++ b/gcc/jit/jit-recording.c
-@@ -18,6 +18,8 @@ You should have received a copy of the GNU General Public License
- along with GCC; see the file COPYING3. If not see
- <http://www.gnu.org/licenses/>. */
-
-+#include <pthread.h>
-+
- #include "config.h"
- #include "system.h"
- #include "coretypes.h"
-@@ -25,8 +27,6 @@ along with GCC; see the file COPYING3. If not see
- #include "pretty-print.h"
- #include "toplev.h"
-
--#include <pthread.h>
--
- #include "jit-builtins.h"
- #include "jit-recording.h"
- #include "jit-playback.h"
-diff --git a/gcc/jit/libgccjit.c b/gcc/jit/libgccjit.c
-index f9c33c63c..75f21d275 100644
---- a/gcc/jit/libgccjit.c
-+++ b/gcc/jit/libgccjit.c
-@@ -18,13 +18,13 @@ You should have received a copy of the GNU General Public License
- along with GCC; see the file COPYING3. If not see
- <http://www.gnu.org/licenses/>. */
-
-+#include <pthread.h>
- #include "config.h"
- #include "system.h"
- #include "coretypes.h"
- #include "timevar.h"
- #include "typed-splay-tree.h"
- #include "cppbuiltin.h"
--#include <pthread.h>
-
- #include "libgccjit.h"
- #include "jit-recording.h"
diff --git a/srcpkgs/libgccjit/template b/srcpkgs/libgccjit/template
index 0b37c3ee9f8b..fde1affd54b7 100644
--- a/srcpkgs/libgccjit/template
+++ b/srcpkgs/libgccjit/template
@@ -3,18 +3,12 @@
# which use the version number.
pkgname=libgccjit
-# we are using a 10-stable git snapshot alpine is using in order
-# to get regression fixes not yet incorporate into a stable release
-# it should be possible to switch back to stable with 10.3 or 11
-version=10.2.1pre1
+version=12.2.0
revision=1
-_patchver="${version%pre*}"
-_minorver="${_patchver%.*}"
-_majorver="${_minorver%.*}"
-_gmp_version=6.2.0
+_gmp_version=6.2.1
_mpfr_version=4.1.0
-_mpc_version=1.1.0
-_isl_version=0.21
+_mpc_version=1.2.1
+_isl_version=0.24
create_wrksrc=yes
short_desc="Just-In-Time Compilation library for GCC"
maintainer="Lane Biocini <lane@mailbox.org>"
@@ -22,16 +16,16 @@ homepage="https://gcc.gnu.org"
license="GFDL-1.2-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
# *-musl builders have issues fetching https://ftp.gnu.org/gnu/mpc/mpc-1.1.0.tar.gz
distfiles="
- https://dev.alpinelinux.org/~nenolod/gcc-${version/pre/_pre}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${version}/gcc-${version}.tar.xz
https://gmplib.org/download/gmp/gmp-${_gmp_version}.tar.xz
${GNU_SITE}/mpfr/mpfr-${_mpfr_version}.tar.xz
${GNU_SITE}/mpc/mpc-${_mpc_version}.tar.gz
${SOURCEFORGE_SITE}/libisl/isl-${_isl_version}.tar.bz2"
-checksum="772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 258e6cd51b3fbdfc185c716d55f82c08aff57df0c6fbd143cf6ed561267a1526
+checksum="e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
+ fd4829912cddd12f84181c3451cc752be224643e87fac497b69edddadc49b4f2
0c98a3f1732ff6ca4ea690552079da9c597872d30e96ec28414ee23c95558a7f
- 6985c538143c1208dcb1ac42cedad6ff52e267b47e5f970183a3e75125b43c2e
- d18ca11f8ad1a39ab6d03d3dcb3365ab416720fcb65b42d69f34f51bf0a0e859"
+ 17503d2c395dfcf106b622dc142683c1199431d095367c6aacba6eec30340459
+ fcf78dd9656c10eb8cf9fbd5f59a0b6b01386205fe1934b3b287a0a1898145c0"
nopie=yes
lib32disabled=yes
makedepends="zlib-devel"
From cabec16330c55d6d4aa126f679881d3c3b6ae197 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sat, 5 Nov 2022 11:33:12 -0700
Subject: [PATCH 10/39] build-style/void-cross: Update flags for gcc12 and
glibc 2.36
gcov can't be built without libc:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100289
Remove -no-pie from build. glibc 2.35 and newer uses -static-pie by default:
https://sourceware.org/pipermail/glibc-cvs/2021q4/075916.html
---
common/build-style/void-cross.sh | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
diff --git a/common/build-style/void-cross.sh b/common/build-style/void-cross.sh
index 92f03f8130f5..4804193d8395 100644
--- a/common/build-style/void-cross.sh
+++ b/common/build-style/void-cross.sh
@@ -53,6 +53,7 @@ _void_cross_build_binutils() {
--sbindir=/usr/bin \
--libdir=/usr/lib \
--libexecdir=/usr/lib \
+ --sysconfdir=/etc \
--target=${tgt} \
--with-sysroot=/usr/${tgt} \
--disable-nls \
@@ -60,7 +61,9 @@ _void_cross_build_binutils() {
--disable-multilib \
--disable-werror \
--disable-gold \
+ --disable-gprofng \
--enable-relro \
+ --enable-new-dtags \
--enable-plugins \
--enable-64-bit-bfd \
--enable-deterministic-archives \
@@ -132,6 +135,7 @@ _void_cross_build_bootstrap_gcc() {
--disable-libssp \
--disable-libitm \
--disable-libatomic \
+ --disable-gcov \
--disable-threads \
--disable-sjlj-exceptions \
--enable-languages=c \
@@ -381,6 +385,7 @@ _void_cross_build_gcc() {
extra_args+=" --disable-gnu-unique-object"
extra_args+=" libat_cv_have_ifunc=no"
else
+ extra_args+=" --enable-clocale=gnu"
extra_args+=" --enable-gnu-unique-object"
fi
@@ -460,6 +465,14 @@ do_build() {
local binutils_ver linux_ver gcc_ver libc_ver libucontext_ver
local tgt=${sourcepkg/cross-}
+ export CFLAGS="${CFLAGS/-D_FORTIFY_SOURCE=2/}"
+ export CXXFLAGS="${CXXFLAGS/-D_FORTIFY_SOURCE=2/}"
+
+ # Disable explicit -fno-PIE, gcc/binutils/libc will figure this out itself.
+ export CFLAGS="${CFLAGS//-fno-PIE/}"
+ export CXXFLAGS="${CXXFLAGS//-fno-PIE/}"
+ export LDFLAGS="${LDFLAGS//-no-pie/}"
+
_void_cross_test_ver binutils
_void_cross_test_ver linux
_void_cross_test_ver gcc
@@ -625,6 +638,9 @@ do_install() {
# then remove it because it conflicts with libquadmath package
rm -rf ${DESTDIR}/${sysroot}/usr/lib/libquadmath.*
+ # Remove libdep linker plugin because it conflicts with system binutils
+ rm -f ${DESTDIR}/usr/lib/bfd-plugins/libdep*
+
# Remove leftover symlinks
rm -f ${DESTDIR}/usr/lib${XBPS_TARGET_WORDSIZE}
rm -f ${DESTDIR}/lib*
From 38c7f95eddbd1bbbd5ba6e242ae55c73f6e4303c Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Mon, 12 Dec 2022 10:15:29 -0800
Subject: [PATCH 11/39] environment/autoconf_cache: Disable 64-bit time_t by
default
---
common/environment/configure/autoconf_cache/common-linux | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/common/environment/configure/autoconf_cache/common-linux b/common/environment/configure/autoconf_cache/common-linux
index 718c2c36d79e..fe0bd5312cbd 100644
--- a/common/environment/configure/autoconf_cache/common-linux
+++ b/common/environment/configure/autoconf_cache/common-linux
@@ -170,3 +170,7 @@ ac_cv_strftime_extensions=yes
# time
ac_cv_func_wait3=yes
+
+# Y2038
+gl_cv_type_time_t_y2038=${gl_cv_type_time_t_y2038=no}
+ac_cv_type_time_t_bits_macro=${ac_cv_type_time_t_bits_macro=no}
From 73d159176a02511edfb9d97d1ebbe18ccb79a853 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sat, 5 Nov 2022 11:33:12 -0700
Subject: [PATCH 12/39] qemu: remove broken patch
The necessary patch has been imported into musl so no need
to cast the sigevent struct to a more glibc-like one.
---
.../musl-fix-sigevent-and-sigval_t.patch | 27 -------------------
1 file changed, 27 deletions(-)
delete mode 100644 srcpkgs/qemu/patches/musl-fix-sigevent-and-sigval_t.patch
diff --git a/srcpkgs/qemu/patches/musl-fix-sigevent-and-sigval_t.patch b/srcpkgs/qemu/patches/musl-fix-sigevent-and-sigval_t.patch
deleted file mode 100644
index 4b4f1117c15f..000000000000
--- a/srcpkgs/qemu/patches/musl-fix-sigevent-and-sigval_t.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-Note: Remove this patch with musl 1.2.2
-
---- a/linux-user/syscall.c
-+++ b/linux-user/syscall.c
-@@ -5020,10 +5020,21 @@
- #ifndef HAVE_SIGEV_NOTIFY_THREAD_ID
- #define sigev_notify_thread_id _sigev_un._tid
- #endif
-
--static inline abi_long target_to_host_sigevent(struct sigevent *host_sevp,
-+struct host_sigevent {
-+ union sigval sigev_value;
-+ int sigev_signo;
-+ int sigev_notify;
-+ union {
-+ char _pad[64 - sizeof(int) * 2 - sizeof(union sigval)];
-+ int _tid;
-+ } _sigev_un;
-+};
-+
-+static inline abi_long target_to_host_sigevent(struct sigevent *sevp,
- abi_ulong target_addr)
- {
-+ struct host_sigevent *host_sevp = (struct host_sigevent *) sevp;
- struct target_sigevent *target_sevp;
-
- if (!lock_user_struct(VERIFY_READ, target_sevp, target_addr, 1)) {
From 1341b752f269f3a31d4567d168e4b9eacf1d91eb Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sat, 19 Nov 2022 13:26:24 -0800
Subject: [PATCH 13/39] mk-configure: rebuild for gcc 12
---
srcpkgs/mk-configure/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/mk-configure/template b/srcpkgs/mk-configure/template
index 9d12f11a9799..c50d8adf213f 100644
--- a/srcpkgs/mk-configure/template
+++ b/srcpkgs/mk-configure/template
@@ -1,7 +1,7 @@
# Template file for 'mk-configure'
pkgname=mk-configure
version=0.37.0
-revision=1
+revision=2
build_style=gnu-makefile
make_cmd=bmake
make_install_args="MANDIR=/usr/share/man"
From aabb691d4dde422ac683bd0f875170ff9a7cbd51 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:28 -0800
Subject: [PATCH 14/39] cross-aarch64-linux-gnu: update to gcc 12.2.0.
---
srcpkgs/cross-aarch64-linux-gnu/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-aarch64-linux-gnu/template b/srcpkgs/cross-aarch64-linux-gnu/template
index 18de21aa3ccd..9e6fb75c198d 100644
--- a/srcpkgs/cross-aarch64-linux-gnu/template
+++ b/srcpkgs/cross-aarch64-linux-gnu/template
@@ -1,15 +1,16 @@
# Template file for 'cross-aarch64-linux-gnu'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
-_glibc_version=2.32
+_binutils_version=2.39
+_gcc_version=12.2.0
+_glibc_version=2.36
_linux_version=5.10.4
pkgname=cross-aarch64-linux-gnu
-version=0.34
+version=0.35
revision=1
build_style=void-cross
configure_args="--with-arch=armv8-a"
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Leah Neukirchen <leah@vuxu.org>"
@@ -17,12 +18,12 @@ license="GPL-2.0-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
+ 1c959fea240906226062cb4b1e7ebce71a9f0e3c0836c09e7e3423d434fcfe75
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
From 7d7f14a3e975d24a417a7eaa53b83b275de16cd9 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:28 -0800
Subject: [PATCH 15/39] cross-aarch64-linux-musl: update to gcc 12.2.0.
---
srcpkgs/cross-aarch64-linux-musl/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-aarch64-linux-musl/template b/srcpkgs/cross-aarch64-linux-musl/template
index bb6a770afb79..ba14c96bccea 100644
--- a/srcpkgs/cross-aarch64-linux-musl/template
+++ b/srcpkgs/cross-aarch64-linux-musl/template
@@ -1,29 +1,30 @@
# Template file for 'cross-aarch64-linux-musl'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.2.0
_musl_version=1.1.24
_linux_version=5.10.4
_libucontext_version=1.0
pkgname=cross-aarch64-linux-musl
-version=0.34
-revision=4
+version=0.35
+revision=1
build_style=void-cross
configure_args="--with-arch=armv8-a"
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
-homepage="https://www.voidlinux.org/"
license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
+homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz
https://github.com/kaniini/libucontext/archive/libucontext-${_libucontext_version}.tar.gz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec
23714e99a87f6dea82e8a073c526325161dd65462459820b16a6162be91955bb"
From b81f2c39860dd354201fe2e9f11c3b77ef5c3bea Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:28 -0800
Subject: [PATCH 16/39] cross-arm-linux-gnueabi: update to gcc 12.2.0.
---
srcpkgs/cross-arm-linux-gnueabi/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-arm-linux-gnueabi/template b/srcpkgs/cross-arm-linux-gnueabi/template
index a3aba72aa93a..5c774e16f430 100644
--- a/srcpkgs/cross-arm-linux-gnueabi/template
+++ b/srcpkgs/cross-arm-linux-gnueabi/template
@@ -1,15 +1,16 @@
# Template file for 'cross-arm-linux-gnueabi'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
-_glibc_version=2.32
+_binutils_version=2.39
+_gcc_version=12.2.0
+_glibc_version=2.36
_linux_version=5.10.4
pkgname=cross-arm-linux-gnueabi
-version=0.34
+version=0.35
revision=1
build_style=void-cross
configure_args="--with-arch=armv5te --with-float=soft"
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
@@ -17,12 +18,12 @@ license="GPL-2.0-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
+ 1c959fea240906226062cb4b1e7ebce71a9f0e3c0836c09e7e3423d434fcfe75
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
From bd7f2cb6d49289b1232eb4d7d69da0af8baa7f8d Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:28 -0800
Subject: [PATCH 17/39] cross-arm-linux-gnueabihf: update to gcc 12.2.0.
---
srcpkgs/cross-arm-linux-gnueabihf/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-arm-linux-gnueabihf/template b/srcpkgs/cross-arm-linux-gnueabihf/template
index d9ab86cf2ecc..d6298ab639a4 100644
--- a/srcpkgs/cross-arm-linux-gnueabihf/template
+++ b/srcpkgs/cross-arm-linux-gnueabihf/template
@@ -1,15 +1,16 @@
# Template file for 'cross-arm-linux-gnueabihf'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
-_glibc_version=2.32
+_binutils_version=2.39
+_gcc_version=12.2.0
+_glibc_version=2.36
_linux_version=5.10.4
pkgname=cross-arm-linux-gnueabihf
-version=0.34
+version=0.35
revision=1
build_style=void-cross
configure_args="--with-arch=armv6 --with-fpu=vfp --with-float=hard"
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
@@ -17,12 +18,12 @@ license="GPL-2.0-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
+ 1c959fea240906226062cb4b1e7ebce71a9f0e3c0836c09e7e3423d434fcfe75
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
From e10b59ad5407e8bd71ba756ea2a1ac13069bb657 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:28 -0800
Subject: [PATCH 18/39] cross-arm-linux-musleabi: update to gcc 12.2.0.
---
srcpkgs/cross-arm-linux-musleabi/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-arm-linux-musleabi/template b/srcpkgs/cross-arm-linux-musleabi/template
index 6692d891e1bd..24df78e8fd8e 100644
--- a/srcpkgs/cross-arm-linux-musleabi/template
+++ b/srcpkgs/cross-arm-linux-musleabi/template
@@ -1,29 +1,30 @@
# Template file for 'cross-arm-linux-musleabi'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.2.0
_musl_version=1.1.24
_linux_version=5.10.4
_libucontext_version=1.0
pkgname=cross-arm-linux-musleabi
-version=0.34
-revision=4
+version=0.35
+revision=1
build_style=void-cross
configure_args="--with-arch=armv5te --with-float=soft"
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
-homepage="https://www.voidlinux.org/"
license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
+homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz
https://github.com/kaniini/libucontext/archive/libucontext-${_libucontext_version}.tar.gz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec
23714e99a87f6dea82e8a073c526325161dd65462459820b16a6162be91955bb"
From d7badb3921f93ee598bcaa5c409bc39bfdd156d7 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:28 -0800
Subject: [PATCH 19/39] cross-arm-linux-musleabihf: update to gcc 12.2.0.
---
srcpkgs/cross-arm-linux-musleabihf/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-arm-linux-musleabihf/template b/srcpkgs/cross-arm-linux-musleabihf/template
index bb62bd5ebc55..8093700f909c 100644
--- a/srcpkgs/cross-arm-linux-musleabihf/template
+++ b/srcpkgs/cross-arm-linux-musleabihf/template
@@ -1,29 +1,30 @@
# Template file for 'cross-arm-linux-musleabihf'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.2.0
_musl_version=1.1.24
_linux_version=5.10.4
_libucontext_version=1.0
pkgname=cross-arm-linux-musleabihf
-version=0.34
-revision=4
+version=0.35
+revision=1
build_style=void-cross
configure_args="--with-arch=armv6 --with-fpu=vfp --with-float=hard"
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
-homepage="https://www.voidlinux.org/"
license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
+homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz
https://github.com/kaniini/libucontext/archive/libucontext-${_libucontext_version}.tar.gz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec
23714e99a87f6dea82e8a073c526325161dd65462459820b16a6162be91955bb"
From 0f6c2bfe214a95f99a67a53b4d6ba4ca91d77a24 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:28 -0800
Subject: [PATCH 20/39] cross-armv7l-linux-gnueabihf: update to gcc 12.2.0.
---
srcpkgs/cross-armv7l-linux-gnueabihf/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-armv7l-linux-gnueabihf/template b/srcpkgs/cross-armv7l-linux-gnueabihf/template
index 30c89b6294ef..92665326428b 100644
--- a/srcpkgs/cross-armv7l-linux-gnueabihf/template
+++ b/srcpkgs/cross-armv7l-linux-gnueabihf/template
@@ -1,15 +1,16 @@
# Template file for 'cross-armv7l-linux-gnueabihf'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
-_glibc_version=2.32
+_binutils_version=2.39
+_gcc_version=12.2.0
+_glibc_version=2.36
_linux_version=5.10.4
pkgname=cross-armv7l-linux-gnueabihf
-version=0.34
+version=0.35
revision=1
build_style=void-cross
configure_args="--with-arch=armv7-a --with-fpu=vfpv3 --with-float=hard"
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
@@ -17,12 +18,12 @@ license="GPL-2.0-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
+ 1c959fea240906226062cb4b1e7ebce71a9f0e3c0836c09e7e3423d434fcfe75
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
From aee34a4fc300e8c6e43c7f8b38c6a705ed7ff585 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:28 -0800
Subject: [PATCH 21/39] cross-armv7l-linux-musleabihf: update to gcc 12.2.0.
---
.../cross-armv7l-linux-musleabihf/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-armv7l-linux-musleabihf/template b/srcpkgs/cross-armv7l-linux-musleabihf/template
index 0a588cdf1a58..e5af2c9ccbf2 100644
--- a/srcpkgs/cross-armv7l-linux-musleabihf/template
+++ b/srcpkgs/cross-armv7l-linux-musleabihf/template
@@ -1,29 +1,30 @@
# Template file for 'cross-armv7l-linux-musleabihf'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.2.0
_musl_version=1.1.24
_linux_version=5.10.4
_libucontext_version=1.0
pkgname=cross-armv7l-linux-musleabihf
-version=0.34
-revision=4
+version=0.35
+revision=1
build_style=void-cross
configure_args="--with-arch=armv7-a --with-fpu=vfpv3 --with-float=hard"
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
-homepage="https://www.voidlinux.org/"
license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
+homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz
https://github.com/kaniini/libucontext/archive/libucontext-${_libucontext_version}.tar.gz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec
23714e99a87f6dea82e8a073c526325161dd65462459820b16a6162be91955bb"
From b9478b98ba40241fa241608d4f97cb416a29650f Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:29 -0800
Subject: [PATCH 22/39] cross-i686-linux-musl: update to gcc 12.2.0.
---
srcpkgs/cross-i686-linux-musl/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-i686-linux-musl/template b/srcpkgs/cross-i686-linux-musl/template
index 8be16a230d8d..d624bb7a3254 100644
--- a/srcpkgs/cross-i686-linux-musl/template
+++ b/srcpkgs/cross-i686-linux-musl/template
@@ -1,28 +1,29 @@
# Template file for 'cross-i686-linux-musl'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.2.0
_musl_version=1.1.24
_linux_version=5.10.4
_libucontext_version=1.0
pkgname=cross-i686-linux-musl
-version=0.34
-revision=4
+version=0.35
+revision=1
build_style=void-cross
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
-homepage="https://www.voidlinux.org/"
license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
+homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz
https://github.com/kaniini/libucontext/archive/libucontext-${_libucontext_version}.tar.gz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec
23714e99a87f6dea82e8a073c526325161dd65462459820b16a6162be91955bb"
From 4eddb13a04344e047a6e7cd5ba4076440a2e3d61 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:29 -0800
Subject: [PATCH 23/39] cross-i686-pc-linux-gnu: update to gcc 12.2.0.
---
srcpkgs/cross-i686-pc-linux-gnu/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-i686-pc-linux-gnu/template b/srcpkgs/cross-i686-pc-linux-gnu/template
index 263a43f7a7b8..6a9e54db807a 100644
--- a/srcpkgs/cross-i686-pc-linux-gnu/template
+++ b/srcpkgs/cross-i686-pc-linux-gnu/template
@@ -1,14 +1,15 @@
# Template file for 'cross-i686-pc-linux-gnu'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
-_glibc_version=2.32
+_binutils_version=2.39
+_gcc_version=12.2.0
+_glibc_version=2.36
_linux_version=5.10.4
pkgname=cross-i686-pc-linux-gnu
-version=0.34
+version=0.35
revision=1
build_style=void-cross
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
@@ -16,12 +17,12 @@ license="GPL-2.0-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
+ 1c959fea240906226062cb4b1e7ebce71a9f0e3c0836c09e7e3423d434fcfe75
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
From 388c0078572ca60d9a1aeaae480e79bb91ee5323 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:29 -0800
Subject: [PATCH 24/39] cross-mips-linux-musl: update to gcc 12.2.0.
---
srcpkgs/cross-mips-linux-musl/template | 21 +++++++++++----------
1 file changed, 11 insertions(+), 10 deletions(-)
diff --git a/srcpkgs/cross-mips-linux-musl/template b/srcpkgs/cross-mips-linux-musl/template
index 9b5d5819b1a0..67a5c413396c 100644
--- a/srcpkgs/cross-mips-linux-musl/template
+++ b/srcpkgs/cross-mips-linux-musl/template
@@ -1,28 +1,29 @@
# Template file for 'cross-mips-linux-musl'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.2.0
_musl_version=1.1.24
_linux_version=5.10.4
pkgname=cross-mips-linux-musl
-version=0.34
-revision=3
+version=0.35
+revision=1
build_style=void-cross
configure_args="--with-arch=mips32r2 --with-float=soft
--with-linker-hash-style=sysv"
hostmakedepends="texinfo tar gcc-objc flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
-homepage="https://www.voidlinux.org/"
license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
+homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
- https://www.musl-libc.org/releases/musl-${_musl_version}.tar.gz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
+ https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
From 9b2055c4ece4a52ea6dd802d75ef589bd52284f0 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:29 -0800
Subject: [PATCH 25/39] cross-mips-linux-muslhf: update to gcc 12.2.0.
---
srcpkgs/cross-mips-linux-muslhf/template | 21 +++++++++++----------
1 file changed, 11 insertions(+), 10 deletions(-)
diff --git a/srcpkgs/cross-mips-linux-muslhf/template b/srcpkgs/cross-mips-linux-muslhf/template
index d7590af9ec03..bdf8600ce95b 100644
--- a/srcpkgs/cross-mips-linux-muslhf/template
+++ b/srcpkgs/cross-mips-linux-muslhf/template
@@ -1,28 +1,29 @@
# Template file for 'cross-mips-linux-muslhf'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.2.0
_musl_version=1.1.24
_linux_version=5.10.4
pkgname=cross-mips-linux-muslhf
-version=0.34
-revision=3
+version=0.35
+revision=1
build_style=void-cross
configure_args="--with-arch=mips32r2 --with-float=hard
--with-linker-hash-style=sysv"
hostmakedepends="texinfo tar gcc-objc flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="hipperson0 <hipperson0@gmail.com>"
-homepage="https://www.voidlinux.org/"
license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
+homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
- https://www.musl-libc.org/releases/musl-${_musl_version}.tar.gz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
+ https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
From 331712475695a00863a6d69e95e326126312e7c4 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:29 -0800
Subject: [PATCH 26/39] cross-mipsel-linux-musl: update to gcc 12.2.0.
---
srcpkgs/cross-mipsel-linux-musl/template | 21 +++++++++++----------
1 file changed, 11 insertions(+), 10 deletions(-)
diff --git a/srcpkgs/cross-mipsel-linux-musl/template b/srcpkgs/cross-mipsel-linux-musl/template
index 1acba7016dbc..de49387d517b 100644
--- a/srcpkgs/cross-mipsel-linux-musl/template
+++ b/srcpkgs/cross-mipsel-linux-musl/template
@@ -1,28 +1,29 @@
# Template file for 'cross-mipsel-linux-musl'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.2.0
_musl_version=1.1.24
_linux_version=5.10.4
pkgname=cross-mipsel-linux-musl
-version=0.34
-revision=3
+version=0.35
+revision=1
build_style=void-cross
configure_args="--with-arch=mips32r2 --with-float=soft
--with-linker-hash-style=sysv"
hostmakedepends="texinfo tar gcc-objc flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
-homepage="https://www.voidlinux.org/"
license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
+homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
- https://www.musl-libc.org/releases/musl-${_musl_version}.tar.gz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
+ https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
From 116446afa6b3d6e1c30f4385b22b871bdebc2619 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:29 -0800
Subject: [PATCH 27/39] cross-mipsel-linux-muslhf: update to gcc 12.2.0.
---
srcpkgs/cross-mipsel-linux-muslhf/template | 21 +++++++++++----------
1 file changed, 11 insertions(+), 10 deletions(-)
diff --git a/srcpkgs/cross-mipsel-linux-muslhf/template b/srcpkgs/cross-mipsel-linux-muslhf/template
index e4a55f028bc4..b27ce6475a38 100644
--- a/srcpkgs/cross-mipsel-linux-muslhf/template
+++ b/srcpkgs/cross-mipsel-linux-muslhf/template
@@ -1,28 +1,29 @@
# Template file for 'cross-mipsel-linux-muslhf'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.2.0
_musl_version=1.1.24
_linux_version=5.10.4
pkgname=cross-mipsel-linux-muslhf
-version=0.34
-revision=3
+version=0.35
+revision=1
build_style=void-cross
configure_args="--with-arch=mips32r2 --with-float=hard
--with-linker-hash-style=sysv"
hostmakedepends="texinfo tar gcc-objc flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
-homepage="https://www.voidlinux.org/"
license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
+homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
- https://www.musl-libc.org/releases/musl-${_musl_version}.tar.gz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
+ https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
From 0f2c3675ab6fd0db818fec3f4157cb9170b9d619 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:29 -0800
Subject: [PATCH 28/39] cross-powerpc-linux-gnu: update to gcc 12.2.0.
---
srcpkgs/cross-powerpc-linux-gnu/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-powerpc-linux-gnu/template b/srcpkgs/cross-powerpc-linux-gnu/template
index b97a21d0d72e..79579e093b12 100644
--- a/srcpkgs/cross-powerpc-linux-gnu/template
+++ b/srcpkgs/cross-powerpc-linux-gnu/template
@@ -1,15 +1,16 @@
# Template file for 'cross-powerpc-linux-gnu'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
-_glibc_version=2.32
+_binutils_version=2.39
+_gcc_version=12.2.0
+_glibc_version=2.36
_linux_version=5.10.4
pkgname=cross-powerpc-linux-gnu
-version=0.34
+version=0.35
revision=1
build_style=void-cross
configure_args="--enable-secureplt --disable-vtable-verify"
hostmakedepends="texinfo tar gcc-objc flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Thomas Batten <stenstorpmc@gmail.com>"
@@ -17,12 +18,12 @@ license="GPL-2.0-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
+ 1c959fea240906226062cb4b1e7ebce71a9f0e3c0836c09e7e3423d434fcfe75
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
From f968ae4899a5e39f509297b212b173329c388c06 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:29 -0800
Subject: [PATCH 29/39] cross-powerpc-linux-musl: update to gcc 12.2.0.
---
srcpkgs/cross-powerpc-linux-musl/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-powerpc-linux-musl/template b/srcpkgs/cross-powerpc-linux-musl/template
index f9b22f0610d3..9bb6acd359b6 100644
--- a/srcpkgs/cross-powerpc-linux-musl/template
+++ b/srcpkgs/cross-powerpc-linux-musl/template
@@ -1,28 +1,29 @@
# Template file for 'cross-powerpc-linux-musl'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.2.0
_musl_version=1.1.24
_linux_version=5.10.4
pkgname=cross-powerpc-linux-musl
-version=0.34
-revision=3
+version=0.35
+revision=1
build_style=void-cross
configure_args="--enable-secureplt --disable-vtable-verify
--disable-decimal-float"
hostmakedepends="texinfo tar gcc-objc flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Thomas Batten <stenstorpmc@gmail.com>"
-homepage="https://www.voidlinux.org/"
license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
+homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
From 17456ba1e3bcf7260549e68531748e068a886ee1 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:29 -0800
Subject: [PATCH 30/39] cross-powerpc64-linux-gnu: update to gcc 12.2.0.
---
srcpkgs/cross-powerpc64-linux-gnu/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-powerpc64-linux-gnu/template b/srcpkgs/cross-powerpc64-linux-gnu/template
index 35cfcaa6f02e..2d153d00add6 100644
--- a/srcpkgs/cross-powerpc64-linux-gnu/template
+++ b/srcpkgs/cross-powerpc64-linux-gnu/template
@@ -1,16 +1,17 @@
# Template file for 'cross-powerpc64-linux-gnu'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
-_glibc_version=2.32
+_binutils_version=2.39
+_gcc_version=12.2.0
+_glibc_version=2.36
_linux_version=5.10.4
pkgname=cross-powerpc64-linux-gnu
-version=0.34
+version=0.35
revision=1
build_style=void-cross
configure_args="--enable-secureplt --disable-vtable-verify --with-abi=elfv2
--enable-targets=powerpc-linux"
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
@@ -18,12 +19,12 @@ license="GPL-2.0-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
+ 1c959fea240906226062cb4b1e7ebce71a9f0e3c0836c09e7e3423d434fcfe75
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
From 38f87f21ab0900402eda79c9c41f47a21b074e5e Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:29 -0800
Subject: [PATCH 31/39] cross-powerpc64-linux-musl: update to gcc 12.2.0.
---
srcpkgs/cross-powerpc64-linux-musl/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-powerpc64-linux-musl/template b/srcpkgs/cross-powerpc64-linux-musl/template
index 016f18776a6d..e0848fe0bff7 100644
--- a/srcpkgs/cross-powerpc64-linux-musl/template
+++ b/srcpkgs/cross-powerpc64-linux-musl/template
@@ -1,30 +1,31 @@
# Template file for 'cross-powerpc64-linux-musl'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.2.0
_musl_version=1.1.24
_linux_version=5.10.4
_libucontext_version=1.0
pkgname=cross-powerpc64-linux-musl
-version=0.34
-revision=4
+version=0.35
+revision=1
build_style=void-cross
configure_args="--enable-secureplt --disable-vtable-verify
--disable-decimal-float --with-abi=elfv2 --enable-targets=powerpc-linux"
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
-homepage="https://www.voidlinux.org/"
license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
+homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz
https://github.com/kaniini/libucontext/archive/libucontext-${_libucontext_version}.tar.gz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec
23714e99a87f6dea82e8a073c526325161dd65462459820b16a6162be91955bb"
From fbabcfd41d8545a730c9ee4fe19151503fc834d4 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:29 -0800
Subject: [PATCH 32/39] cross-powerpc64le-linux-gnu: update to gcc 12.2.0.
---
srcpkgs/cross-powerpc64le-linux-gnu/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-powerpc64le-linux-gnu/template b/srcpkgs/cross-powerpc64le-linux-gnu/template
index 463d7e92d20d..8d8e010e15c0 100644
--- a/srcpkgs/cross-powerpc64le-linux-gnu/template
+++ b/srcpkgs/cross-powerpc64le-linux-gnu/template
@@ -1,16 +1,17 @@
# Template file for 'cross-powerpc64le-linux-gnu'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
-_glibc_version=2.32
+_binutils_version=2.39
+_gcc_version=12.2.0
+_glibc_version=2.36
_linux_version=5.10.4
pkgname=cross-powerpc64le-linux-gnu
-version=0.34
+version=0.35
revision=1
build_style=void-cross
configure_args="--enable-secureplt --disable-vtable-verify --with-abi=elfv2
--enable-targets=powerpcle-linux"
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
@@ -18,12 +19,12 @@ license="GPL-2.0-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
+ 1c959fea240906226062cb4b1e7ebce71a9f0e3c0836c09e7e3423d434fcfe75
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
From eb06605be44c26f0811c99047ccefeb096ad045d Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:29 -0800
Subject: [PATCH 33/39] cross-powerpc64le-linux-musl: update to gcc 12.2.0.
---
srcpkgs/cross-powerpc64le-linux-musl/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-powerpc64le-linux-musl/template b/srcpkgs/cross-powerpc64le-linux-musl/template
index c17a3cccfe29..0915e524545f 100644
--- a/srcpkgs/cross-powerpc64le-linux-musl/template
+++ b/srcpkgs/cross-powerpc64le-linux-musl/template
@@ -1,30 +1,31 @@
# Template file for 'cross-powerpc64le-linux-musl'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.2.0
_musl_version=1.1.24
_linux_version=5.10.4
_libucontext_version=1.0
pkgname=cross-powerpc64le-linux-musl
-version=0.34
-revision=4
+version=0.35
+revision=1
build_style=void-cross
configure_args="--enable-secureplt --disable-vtable-verify
--disable-decimal-float --with-abi=elfv2 --enable-targets=powerpcle-linux"
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
-homepage="https://www.voidlinux.org/"
license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
+homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz
https://github.com/kaniini/libucontext/archive/libucontext-${_libucontext_version}.tar.gz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec
23714e99a87f6dea82e8a073c526325161dd65462459820b16a6162be91955bb"
From 164d6960a595e50c29170a08f709c7add654547f Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:29 -0800
Subject: [PATCH 34/39] cross-powerpcle-linux-gnu: update to gcc 12.2.0.
---
srcpkgs/cross-powerpcle-linux-gnu/template | 21 ++++++++++++---------
1 file changed, 12 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-powerpcle-linux-gnu/template b/srcpkgs/cross-powerpcle-linux-gnu/template
index 9aede3c465ce..687be8a44c6c 100644
--- a/srcpkgs/cross-powerpcle-linux-gnu/template
+++ b/srcpkgs/cross-powerpcle-linux-gnu/template
@@ -1,15 +1,16 @@
# Template file for 'cross-powerpcle-linux-gnu'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
-_glibc_version=2.32
+_binutils_version=2.39
+_gcc_version=12.2.0
+_glibc_version=2.36
_linux_version=5.10.4
pkgname=cross-powerpcle-linux-gnu
-version=0.34
+version=0.35
revision=1
build_style=void-cross
configure_args="--enable-secureplt --disable-vtable-verify"
hostmakedepends="texinfo tar gcc-objc flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
@@ -17,12 +18,12 @@ license="GPL-2.0-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
+ 1c959fea240906226062cb4b1e7ebce71a9f0e3c0836c09e7e3423d434fcfe75
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
@@ -35,6 +36,8 @@ if [ "$XBPS_TARGET_MACHINE" = "ppcle" ]; then
broken="Can't build crosstoolchain to itself"
fi
+broken="glibc uses big-endian specific instructions on 32-bit powerpc"
+
cross-powerpcle-linux-gnu-libc_package() {
short_desc+=" - glibc files"
nostrip=yes
From c12f0cc08974f7043bd082059f73368248e95b50 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:29 -0800
Subject: [PATCH 35/39] cross-powerpcle-linux-musl: update to gcc 12.2.0.
---
srcpkgs/cross-powerpcle-linux-musl/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-powerpcle-linux-musl/template b/srcpkgs/cross-powerpcle-linux-musl/template
index 045cfda987fe..bb984b9c42eb 100644
--- a/srcpkgs/cross-powerpcle-linux-musl/template
+++ b/srcpkgs/cross-powerpcle-linux-musl/template
@@ -1,28 +1,29 @@
# Template file for 'cross-powerpcle-linux-musl'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.2.0
_musl_version=1.1.24
_linux_version=5.10.4
pkgname=cross-powerpcle-linux-musl
-version=0.34
-revision=3
+version=0.35
+revision=1
build_style=void-cross
configure_args="--enable-secureplt --disable-vtable-verify
--disable-decimal-float"
hostmakedepends="texinfo tar gcc-objc flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
-homepage="https://www.voidlinux.org/"
license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
+homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
From ac4c9b7269356a6958cf256344951ec31dbcfcc1 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:30 -0800
Subject: [PATCH 36/39] cross-x86_64-linux-gnu: update to gcc 12.2.0.
---
srcpkgs/cross-x86_64-linux-gnu/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-x86_64-linux-gnu/template b/srcpkgs/cross-x86_64-linux-gnu/template
index 8918f3c22a1c..930aaf2a508b 100644
--- a/srcpkgs/cross-x86_64-linux-gnu/template
+++ b/srcpkgs/cross-x86_64-linux-gnu/template
@@ -1,14 +1,15 @@
# Template file for 'cross-x86_64-linux-gnu'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
-_glibc_version=2.32
+_binutils_version=2.39
+_gcc_version=12.2.0
+_glibc_version=2.36
_linux_version=5.10.4
pkgname=cross-x86_64-linux-gnu
-version=0.34
+version=0.35
revision=1
build_style=void-cross
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
@@ -16,12 +17,12 @@ license="GPL-2.0-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
+ 1c959fea240906226062cb4b1e7ebce71a9f0e3c0836c09e7e3423d434fcfe75
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
nocross=yes
From 885036f9d764904a2abd2ef5a48934bb82e4bfc3 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 6 Nov 2022 11:33:30 -0800
Subject: [PATCH 37/39] cross-x86_64-linux-musl: update to gcc 12.2.0.
---
srcpkgs/cross-x86_64-linux-musl/template | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/srcpkgs/cross-x86_64-linux-musl/template b/srcpkgs/cross-x86_64-linux-musl/template
index a941e7e02f6f..ac5b1c46ab82 100644
--- a/srcpkgs/cross-x86_64-linux-musl/template
+++ b/srcpkgs/cross-x86_64-linux-musl/template
@@ -1,28 +1,29 @@
# Template file for 'cross-x86_64-linux-musl'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.2.0
_musl_version=1.1.24
_linux_version=5.10.4
_libucontext_version=1.0
pkgname=cross-x86_64-linux-musl
-version=0.34
-revision=3
+version=0.35
+revision=1
build_style=void-cross
hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl15-devel libmpc-devel gmp-devel mpfr-devel
+ zlib-devel libzstd-devel"
depends="${pkgname}-libc-${version}_${revision}"
short_desc="Void cross toolchain for ${pkgname/cross-}"
maintainer="Orphaned <orphan@voidlinux.org>"
-homepage="https://www.voidlinux.org/"
license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
+homepage="https://www.voidlinux.org/"
distfiles="
${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz
https://github.com/kaniini/libucontext/archive/libucontext-${_libucontext_version}.tar.gz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec
23714e99a87f6dea82e8a073c526325161dd65462459820b16a6162be91955bb"
From ddac00b7224565066701fd3a4d7e72f6a63bd0b9 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Fri, 18 Nov 2022 02:01:19 -0800
Subject: [PATCH 38/39] cross-vpkg-dummy: update to 0.39.
---
srcpkgs/cross-vpkg-dummy/template | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/srcpkgs/cross-vpkg-dummy/template b/srcpkgs/cross-vpkg-dummy/template
index d83e38dc63ac..aeafb749dd5f 100644
--- a/srcpkgs/cross-vpkg-dummy/template
+++ b/srcpkgs/cross-vpkg-dummy/template
@@ -1,6 +1,6 @@
# Template file for 'cross-vpkg-dummy'
pkgname=cross-vpkg-dummy
-version=0.38
+version=0.39
revision=1
build_style=meta
short_desc="Dummy meta-pkg for cross building packages with xbps-src"
@@ -54,8 +54,8 @@ conflicts="
gcc-objc++>=0"
shlib_provides="
libgcc_s.so.1
- libgnat-10.so
- libgnarl-10.so
+ libgnat-12.so
+ libgnarl-12.so
libstdc++.so.6
libgfortran.so.5"
From 9946827e507def83a3ac2a9be2b51ba1baad20dc Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Sun, 27 Nov 2022 22:59:45 +0100
Subject: [PATCH 39/39] llvm: update to 15.0.6
---
common/shlibs | 7 +-
srcpkgs/clang | 2 +-
srcpkgs/clang-analyzer | 2 +-
srcpkgs/clang-tools-extra | 2 +-
srcpkgs/libclang | 2 +-
srcpkgs/libclang-cpp | 2 +-
srcpkgs/libcxx | 2 +-
srcpkgs/libcxx-devel | 2 +-
srcpkgs/libcxxabi | 2 +-
srcpkgs/libcxxabi-devel | 2 +-
srcpkgs/libllvm15 | 1 +
srcpkgs/libomp | 2 +-
srcpkgs/libomp-devel | 2 +-
srcpkgs/lld | 2 +-
srcpkgs/lld-devel | 2 +-
srcpkgs/lldb | 2 +-
srcpkgs/lldb-devel | 2 +-
srcpkgs/llvm-libunwind | 2 +-
srcpkgs/llvm-libunwind-devel | 2 +-
srcpkgs/llvm/template | 6 +-
.../llvm15/files/llvm-Config-llvm-config.h | 9 +
...clang-001-fix-unwind-chain-inclusion.patch | 44 ++
.../patches/clang-002-add-musl-triples.patch | 110 +++++
.../clang-003-ppc64-dynamic-linker-path.patch | 13 +
.../patches/clang-004-ppc64-musl-elfv2.patch | 48 ++
.../compiler-rt-sanitizer-ppc64-musl.patch | 35 ++
.../compiler-rt-xray-ppc64-musl.patch.skip | 62 +++
srcpkgs/llvm15/patches/libcxx-musl.patch | 26 ++
srcpkgs/llvm15/patches/libcxx-ppc.patch | 22 +
.../llvm15/patches/libcxx-ssp-nonshared.patch | 11 +
srcpkgs/llvm15/patches/libcxxabi-dl.patch | 25 +
.../llvm15/patches/libunwind-ppc32.patch.skip | 63 +++
srcpkgs/llvm15/patches/lldb-musl.patch | 40 ++
srcpkgs/llvm15/patches/llvm-001-musl.patch | 57 +++
.../patches/llvm-002-musl-ppc64-elfv2.patch | 30 ++
.../patches/llvm-003-ppc-secureplt.patch | 11 +
.../patches/llvm-004-override-opt.patch | 18 +
.../llvm15/patches/llvm-005-ppc-bigpic.patch | 36 ++
.../patches/llvm-006-aarch64-mf_exec.patch | 25 +
srcpkgs/llvm15/template | 434 ++++++++++++++++++
srcpkgs/llvm15/update | 3 +
41 files changed, 1147 insertions(+), 23 deletions(-)
create mode 120000 srcpkgs/libllvm15
create mode 100644 srcpkgs/llvm15/files/llvm-Config-llvm-config.h
create mode 100644 srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch
create mode 100644 srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch
create mode 100644 srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch
create mode 100644 srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch
create mode 100644 srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch
create mode 100644 srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip
create mode 100644 srcpkgs/llvm15/patches/libcxx-musl.patch
create mode 100644 srcpkgs/llvm15/patches/libcxx-ppc.patch
create mode 100644 srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch
create mode 100644 srcpkgs/llvm15/patches/libcxxabi-dl.patch
create mode 100644 srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip
create mode 100644 srcpkgs/llvm15/patches/lldb-musl.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-001-musl.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-004-override-opt.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch
create mode 100644 srcpkgs/llvm15/template
create mode 100644 srcpkgs/llvm15/update
diff --git a/common/shlibs b/common/shlibs
index 7ce556ce7ac2..883377b1bbf5 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -985,11 +985,12 @@ 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.12 lldb-12.0.0_1
-libclang.so.12 libclang-12.0.0_1
-libclang-cpp.so.12 libclang-cpp-12.0.0_1
+liblldb.so.15 lldb-15.0.5_1
+libclang.so.15 libclang-15.0.5_1
+libclang-cpp.so.15 libclang-cpp-15.0.5_1
libLLVM-11.so libllvm11-11.0.0_1
libLLVM-12.so libllvm12-12.0.0_1
+libLLVM-15.so libllvm15-15.0.5_1
libisofs.so.6 libisofs-0.6.24_1
libmpack.so.0 libmpack-1.0.5_1
libGeoIP.so.1 libgeoip-1.4.8_1
diff --git a/srcpkgs/clang b/srcpkgs/clang
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/clang
+++ b/srcpkgs/clang
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/clang-analyzer b/srcpkgs/clang-analyzer
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/clang-analyzer
+++ b/srcpkgs/clang-analyzer
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/clang-tools-extra b/srcpkgs/clang-tools-extra
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/clang-tools-extra
+++ b/srcpkgs/clang-tools-extra
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libclang b/srcpkgs/libclang
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libclang
+++ b/srcpkgs/libclang
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libclang-cpp b/srcpkgs/libclang-cpp
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libclang-cpp
+++ b/srcpkgs/libclang-cpp
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxx b/srcpkgs/libcxx
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxx
+++ b/srcpkgs/libcxx
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxx-devel b/srcpkgs/libcxx-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxx-devel
+++ b/srcpkgs/libcxx-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxxabi b/srcpkgs/libcxxabi
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxxabi
+++ b/srcpkgs/libcxxabi
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxxabi-devel b/srcpkgs/libcxxabi-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxxabi-devel
+++ b/srcpkgs/libcxxabi-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libllvm15 b/srcpkgs/libllvm15
new file mode 120000
index 000000000000..ad57a969b9f9
--- /dev/null
+++ b/srcpkgs/libllvm15
@@ -0,0 +1 @@
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libomp b/srcpkgs/libomp
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libomp
+++ b/srcpkgs/libomp
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libomp-devel b/srcpkgs/libomp-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libomp-devel
+++ b/srcpkgs/libomp-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lld b/srcpkgs/lld
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lld
+++ b/srcpkgs/lld
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lld-devel b/srcpkgs/lld-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lld-devel
+++ b/srcpkgs/lld-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lldb b/srcpkgs/lldb
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lldb
+++ b/srcpkgs/lldb
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lldb-devel b/srcpkgs/lldb-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lldb-devel
+++ b/srcpkgs/lldb-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm-libunwind b/srcpkgs/llvm-libunwind
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/llvm-libunwind
+++ b/srcpkgs/llvm-libunwind
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm-libunwind-devel b/srcpkgs/llvm-libunwind-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/llvm-libunwind-devel
+++ b/srcpkgs/llvm-libunwind-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm/template b/srcpkgs/llvm/template
index a92db6f94f9f..d14430090161 100644
--- a/srcpkgs/llvm/template
+++ b/srcpkgs/llvm/template
@@ -1,10 +1,10 @@
# Template file for 'llvm'
pkgname=llvm
-version=12.0.0
+version=15.0.0
revision=1
build_style=meta
-depends="llvm12"
-replaces="llvm11>=0 llvm10>=0 llvm9>=0 llvm8>=0 llvm7>=0 llvm6.0>=0 llvm3.9>=0"
+depends="llvm15"
+replaces="llvm12>=0 llvm11>=0 llvm10>=0 llvm9>=0 llvm8>=0 llvm7>=0 llvm6.0>=0 llvm3.9>=0"
short_desc="LLVM meta package"
maintainer="Enno Boland <gottox@voidlinux.org>"
license="Public Domain"
diff --git a/srcpkgs/llvm15/files/llvm-Config-llvm-config.h b/srcpkgs/llvm15/files/llvm-Config-llvm-config.h
new file mode 100644
index 000000000000..2fa08c9be696
--- /dev/null
+++ b/srcpkgs/llvm15/files/llvm-Config-llvm-config.h
@@ -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
diff --git a/srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch b/srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch
new file mode 100644
index 000000000000..e4eaa7783e7a
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch
@@ -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
diff --git a/srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch b/srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch
new file mode 100644
index 000000000000..25688d40dbc2
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch
@@ -0,0 +1,110 @@
+--- a/clang/lib/Driver/ToolChains/Gnu.cpp
++++ b/clang/lib/Driver/ToolChains/Gnu.cpp
+@@ -2086,7 +2086,8 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
+ static const char *const ARMHFTriples[] = {"arm-linux-gnueabihf",
+ "armv7hl-redhat-linux-gnueabi",
+ "armv6hl-suse-linux-gnueabi",
+- "armv7hl-suse-linux-gnueabi"};
++ "armv7hl-suse-linux-gnueabi",
++ "armv7l-linux-gnueabihf"};
+ static const char *const ARMebLibDirs[] = {"/lib"};
+ static const char *const ARMebTriples[] = {"armeb-linux-gnueabi",
+ "armeb-linux-androideabi"};
+@@ -2153,8 +2154,7 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
+ "powerpc64-suse-linux", "powerpc-montavista-linuxspe"};
+ static const char *const PPCLELibDirs[] = {"/lib32", "/lib"};
+ static const char *const PPCLETriples[] = {"powerpcle-linux-gnu",
+- "powerpcle-unknown-linux-gnu",
+- "powerpcle-linux-musl"};
++ "powerpcle-unknown-linux-gnu"};
+
+ static const char *const PPC64LibDirs[] = {"/lib64", "/lib"};
+ static const char *const PPC64Triples[] = {
+@@ -2235,6 +2235,87 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
+ return;
+ }
+
++ if (TargetTriple.isMusl()) {
++ static const char *const AArch64MuslTriples[] = {"aarch64-linux-musl"};
++ static const char *const ARMHFMuslTriples[] = {
++ "arm-linux-musleabihf", "armv7l-linux-musleabihf"
++ };
++ static const char *const ARMMuslTriples[] = {"arm-linux-musleabi"};
++ static const char *const X86_64MuslTriples[] = {"x86_64-linux-musl"};
++ static const char *const X86MuslTriples[] = {"i686-linux-musl"};
++ static const char *const MIPSMuslTriples[] = {
++ "mips-linux-musl", "mipsel-linux-musl",
++ "mipsel-linux-muslhf", "mips-linux-muslhf"
++ };
++ static const char *const PPCMuslTriples[] = {"powerpc-linux-musl"};
++ static const char *const PPCLEMuslTriples[] = {"powerpcle-linux-musl"};
++ static const char *const PPC64MuslTriples[] = {"powerpc64-linux-musl"};
++ static const char *const PPC64LEMuslTriples[] = {"powerpc64le-linux-musl"};
++
++ switch (TargetTriple.getArch()) {
++ case llvm::Triple::aarch64:
++ LibDirs.append(begin(AArch64LibDirs), end(AArch64LibDirs));
++ TripleAliases.append(begin(AArch64MuslTriples), end(AArch64MuslTriples));
++ BiarchLibDirs.append(begin(AArch64LibDirs), end(AArch64LibDirs));
++ BiarchTripleAliases.append(begin(AArch64MuslTriples), end(AArch64MuslTriples));
++ break;
++ case llvm::Triple::arm:
++ LibDirs.append(begin(ARMLibDirs), end(ARMLibDirs));
++ if (TargetTriple.getEnvironment() == llvm::Triple::MuslEABIHF) {
++ TripleAliases.append(begin(ARMHFMuslTriples), end(ARMHFMuslTriples));
++ } else {
++ TripleAliases.append(begin(ARMMuslTriples), end(ARMMuslTriples));
++ }
++ break;
++ case llvm::Triple::x86_64:
++ LibDirs.append(begin(X86_64LibDirs), end(X86_64LibDirs));
++ TripleAliases.append(begin(X86_64MuslTriples), end(X86_64MuslTriples));
++ BiarchLibDirs.append(begin(X86LibDirs), end(X86LibDirs));
++ BiarchTripleAliases.append(begin(X86MuslTriples), end(X86MuslTriples));
++ break;
++ case llvm::Triple::x86:
++ LibDirs.append(begin(X86LibDirs), end(X86LibDirs));
++ TripleAliases.append(begin(X86MuslTriples), end(X86MuslTriples));
++ BiarchLibDirs.append(begin(X86_64LibDirs), end(X86_64LibDirs));
++ BiarchTripleAliases.append(begin(X86_64MuslTriples), end(X86_64MuslTriples));
++ break;
++ case llvm::Triple::mips:
++ LibDirs.append(begin(MIPSLibDirs), end(MIPSLibDirs));
++ TripleAliases.append(begin(MIPSMuslTriples), end(MIPSMuslTriples));
++ break;
++ case llvm::Triple::ppc:
++ LibDirs.append(begin(PPCLibDirs), end(PPCLibDirs));
++ TripleAliases.append(begin(PPCMuslTriples), end(PPCMuslTriples));
++ BiarchLibDirs.append(begin(PPC64LibDirs), end(PPC64LibDirs));
++ BiarchTripleAliases.append(begin(PPC64MuslTriples), end(PPC64MuslTriples));
++ break;
++ case llvm::Triple::ppcle:
++ LibDirs.append(begin(PPCLELibDirs), end(PPCLELibDirs));
++ TripleAliases.append(begin(PPCLEMuslTriples), end(PPCLEMuslTriples));
++ BiarchLibDirs.append(begin(PPC64LELibDirs), end(PPC64LELibDirs));
++ BiarchTripleAliases.append(begin(PPC64LEMuslTriples), end(PPC64LEMuslTriples));
++ break;
++ case llvm::Triple::ppc64:
++ LibDirs.append(begin(PPC64LibDirs), end(PPC64LibDirs));
++ TripleAliases.append(begin(PPC64MuslTriples), end(PPC64MuslTriples));
++ BiarchLibDirs.append(begin(PPCLibDirs), end(PPCLibDirs));
++ BiarchTripleAliases.append(begin(PPCMuslTriples), end(PPCMuslTriples));
++ break;
++ case llvm::Triple::ppc64le:
++ LibDirs.append(begin(PPC64LELibDirs), end(PPC64LELibDirs));
++ TripleAliases.append(begin(PPC64LEMuslTriples), end(PPC64LEMuslTriples));
++ BiarchLibDirs.append(begin(PPCLELibDirs), end(PPCLELibDirs));
++ BiarchTripleAliases.append(begin(PPCLEMuslTriples), end(PPCLEMuslTriples));
++ break;
++ default:
++ break;
++ }
++ TripleAliases.push_back(TargetTriple.str());
++ if (TargetTriple.str() != BiarchTriple.str())
++ BiarchTripleAliases.push_back(BiarchTriple.str());
++ return;
++ }
++
+ // Android targets should not use GNU/Linux tools or libraries.
+ if (TargetTriple.isAndroid()) {
+ static const char *const AArch64AndroidTriples[] = {
diff --git a/srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch b/srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch
new file mode 100644
index 000000000000..4ad6412d1e6c
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch
@@ -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 =
diff --git a/srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch b/srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch
new file mode 100644
index 000000000000..21fc8003c5f1
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch
@@ -0,0 +1,48 @@
+--- a/clang/lib/Basic/Targets/PPC.h
++++ b/clang/lib/Basic/Targets/PPC.h
+@@ -415,11 +415,10 @@ public:
+ LongDoubleFormat = &llvm::APFloat::IEEEdouble();
+ } else if ((Triple.getArch() == llvm::Triple::ppc64le)) {
+ DataLayout = "e-m:e-i64:64-n32:64";
+- ABI = "elfv2";
+ } else {
+ DataLayout = "E-m:e-i64:64-n32:64";
+- ABI = "elfv1";
+ }
++ ABI = "elfv2";
+
+ if (Triple.isOSFreeBSD() || Triple.isOSOpenBSD() || Triple.isMusl()) {
+ LongDoubleWidth = LongDoubleAlign = 64;
+--- a/clang/lib/CodeGen/TargetInfo.cpp
++++ b/clang/lib/CodeGen/TargetInfo.cpp
+@@ -10927,9 +10927,9 @@ const TargetCodeGenInfo &CodeGenModule::getTargetCodeGenInfo() {
+ return SetCGInfo(new AIXTargetCodeGenInfo(Types, /*Is64Bit*/ true));
+
+ if (Triple.isOSBinFormatELF()) {
+- PPC64_SVR4_ABIInfo::ABIKind Kind = PPC64_SVR4_ABIInfo::ELFv1;
+- if (getTarget().getABI() == "elfv2")
+- Kind = PPC64_SVR4_ABIInfo::ELFv2;
++ PPC64_SVR4_ABIInfo::ABIKind Kind = PPC64_SVR4_ABIInfo::ELFv2;
++ if (getTarget().getABI() == "elfv1")
++ Kind = PPC64_SVR4_ABIInfo::ELFv1;
+ bool IsSoftFloat = CodeGenOpts.FloatABI == "soft";
+
+ return SetCGInfo(
+--- a/clang/lib/Driver/ToolChains/Clang.cpp
++++ b/clang/lib/Driver/ToolChains/Clang.cpp
+@@ -1920,14 +1920,7 @@ void Clang::AddPPCTargetArgs(const ArgList &Args,
+ const llvm::Triple &T = getToolChain().getTriple();
+ if (T.isOSBinFormatELF()) {
+ switch (getToolChain().getArch()) {
+- case llvm::Triple::ppc64: {
+- if ((T.isOSFreeBSD() && T.getOSMajorVersion() >= 13) ||
+- T.isOSOpenBSD() || T.isMusl())
+- ABIName = "elfv2";
+- else
+- ABIName = "elfv1";
+- break;
+- }
++ case llvm::Triple::ppc64:
+ case llvm::Triple::ppc64le:
+ ABIName = "elfv2";
+ break;
diff --git a/srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch b/srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch
new file mode 100644
index 000000000000..360cfc1ba7f1
--- /dev/null
+++ b/srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch
@@ -0,0 +1,35 @@
+--- 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__) || SANITIZER_RISCV64
++ defined(__hexagon__) || defined(__powerpc__) || 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_ANDROID
++#if (defined(__aarch64__) || defined(__powerpc__) || SANITIZER_RISCV64) && !SANITIZER_ANDROID
+ // GLIBC 2.20+ sys/user does not include asm/ptrace.h
+ # include <asm/ptrace.h>
+ #endif
diff --git a/srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip b/srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip
new file mode 100644
index 000000000000..d0b61c80c897
--- /dev/null
+++ b/srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip
@@ -0,0 +1,62 @@
+--- a/compiler-rt/lib/xray/xray_powerpc64.inc
++++ b/compiler-rt/lib/xray/xray_powerpc64.inc
+@@ -12,7 +12,13 @@
+
+ #include <cstdint>
+ #include <mutex>
++#ifdef __GLIBC__
+ #include <sys/platform/ppc.h>
++#else
++#include <cctype>
++#include <cstring>
++#include <cstdlib>
++#endif
+
+ #include "xray_defs.h"
+
+@@ -20,13 +26,45 @@ namespace __xray {
+
+ ALWAYS_INLINE uint64_t readTSC(uint8_t &CPU) XRAY_NEVER_INSTRUMENT {
+ CPU = 0;
++#ifdef __GLIBC__
+ return __ppc_get_timebase();
++#else
++ return __builtin_ppc_get_timebase();
++#endif
+ }
+
+ inline uint64_t getTSCFrequency() XRAY_NEVER_INSTRUMENT {
+ static std::mutex M;
+ std::lock_guard<std::mutex> Guard(M);
++#ifdef __GLIBC__
+ return __ppc_get_timebase_freq();
++#else
++ /* FIXME: a less dirty implementation? */
++ static uint64_t base;
++ if (!base) {
++ FILE *f = fopen("/proc/cpuinfo", "rb");
++ if (f) {
++ ssize_t nr;
++ /* virtually always big enough to hold the line */
++ char buf[512];
++ while (fgets(buf, sizeof(buf), f)) {
++ char *ret = strstr(buf, "timebase");
++ if (!ret) {
++ continue;
++ }
++ ret += sizeof("timebase") - 1;
++ ret = strchr(ret, ':');
++ if (!ret) {
++ continue;
++ }
++ base = strtoul(ret + 1, nullptr, 10);
++ break;
++ }
++ fclose(f);
++ }
++ }
++ return base;
++#endif
+ }
+
+ inline bool probeRequiredCPUFeatures() XRAY_NEVER_INSTRUMENT {
diff --git a/srcpkgs/llvm15/patches/libcxx-musl.patch b/srcpkgs/llvm15/patches/libcxx-musl.patch
new file mode 100644
index 000000000000..bbd31ffc2cb1
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxx-musl.patch
@@ -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,
+ typename remove_reference<decltype(errno)>::type __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
+ typename remove_reference<decltype(errno)>::type __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,
+ typename remove_reference<decltype(errno)>::type __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
+ typename remove_reference<decltype(errno)>::type __current_errno = errno;
+ if (__current_errno == 0)
+ errno = __save_errno;
diff --git a/srcpkgs/llvm15/patches/libcxx-ppc.patch b/srcpkgs/llvm15/patches/libcxx-ppc.patch
new file mode 100644
index 000000000000..7a92f8004e1c
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxx-ppc.patch
@@ -0,0 +1,22 @@
+This ensures `is_iec559` is defined correctly under all long double ABIs,
+including musl and its 64-bit long double. Also, `__ppc__` or `__ppc64__`
+is not defined on gcc.
+
+--- a/libcxx/include/limits
++++ b/libcxx/include/limits
+@@ -426,8 +426,14 @@ protected:
+ _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type signaling_NaN() _NOEXCEPT {return __builtin_nansl("");}
+ _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type denorm_min() _NOEXCEPT {return __LDBL_DENORM_MIN__;}
+
+-#if (defined(__ppc__) || defined(__ppc64__))
++#if defined(__powerpc__) || defined(__powerpc64__)
++#if (__LDBL_MAX_EXP__ > __DBL_MAX_EXP__) || (__LDBL_MANT_DIG__ == __DBL_MANT_DIG__)
++ /* IEEE 754 quadruple or double precision */
++ static _LIBCPP_CONSTEXPR const bool is_iec559 = true;
++#else
++ /* 128-bit IBM double-double */
+ static _LIBCPP_CONSTEXPR const bool is_iec559 = false;
++#endif
+ #else
+ static _LIBCPP_CONSTEXPR const bool is_iec559 = true;
+ #endif
diff --git a/srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch b/srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch
new file mode 100644
index 000000000000..70292beb2fcd
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch
@@ -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()
diff --git a/srcpkgs/llvm15/patches/libcxxabi-dl.patch b/srcpkgs/llvm15/patches/libcxxabi-dl.patch
new file mode 100644
index 000000000000..3a15f9db8c98
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxxabi-dl.patch
@@ -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 @@
+ target_link_libraries(${target} PRIVATE m)
+ endif()
+
++ if (LIBCXX_HAS_C_LIB)
++ target_link_libraries(${target} PRIVATE dl)
++ endif()
++
+ if (LIBCXX_HAS_RT_LIB)
+ target_link_libraries(${target} PRIVATE rt)
+ endif()
diff --git a/srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip b/srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip
new file mode 100644
index 000000000000..74aa7576ecf9
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip
@@ -0,0 +1,63 @@
+This fixes build at least with gcc9 which does not define `__ppc__`.
+
+--- a/libunwind/include/__libunwind_config.h
++++ b/libunwind/include/__libunwind_config.h
+@@ -49,7 +49,7 @@
+ # define _LIBUNWIND_CONTEXT_SIZE 167
+ # define _LIBUNWIND_CURSOR_SIZE 179
+ # define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_PPC64
+-# elif defined(__ppc__)
++# elif defined(__powerpc__)
+ # define _LIBUNWIND_TARGET_PPC 1
+ # define _LIBUNWIND_CONTEXT_SIZE 117
+ # define _LIBUNWIND_CURSOR_SIZE 124
+--- a/libunwind/src/UnwindRegistersRestore.S
++++ b/libunwind/src/UnwindRegistersRestore.S
+@@ -392,7 +392,7 @@ Lnovec:
+ PPC64_LR(3)
+ bctr
+
+-#elif defined(__ppc__)
++#elif defined(__powerpc__)
+
+ DEFINE_LIBUNWIND_FUNCTION(_ZN9libunwind13Registers_ppc6jumptoEv)
+ //
+--- a/libunwind/src/UnwindRegistersSave.S
++++ b/libunwind/src/UnwindRegistersSave.S
+@@ -554,7 +554,7 @@ DEFINE_LIBUNWIND_FUNCTION(__unw_getcontext)
+ blr
+
+
+-#elif defined(__ppc__)
++#elif defined(__powerpc__)
+
+ //
+ // extern int unw_getcontext(unw_context_t* thread_state)
+--- a/libunwind/src/config.h
++++ b/libunwind/src/config.h
+@@ -95,12 +95,12 @@
+ #define _LIBUNWIND_BUILD_SJLJ_APIS
+ #endif
+
+-#if defined(__i386__) || defined(__x86_64__) || defined(__ppc__) || defined(__ppc64__) || defined(__powerpc64__)
++#if defined(__i386__) || defined(__x86_64__) || defined(__powerpc__) || defined(__powerpc64__)
+ #define _LIBUNWIND_SUPPORT_FRAME_APIS
+ #endif
+
+ #if defined(__i386__) || defined(__x86_64__) || \
+- defined(__ppc__) || defined(__ppc64__) || defined(__powerpc64__) || \
++ defined(__powerpc__) || defined(__powerpc64__) || \
+ (!defined(__APPLE__) && defined(__arm__)) || \
+ (defined(__arm64__) || defined(__aarch64__)) || \
+ defined(__mips__)
+--- a/libunwind/src/libunwind.cpp
++++ b/libunwind/src/libunwind.cpp
+@@ -42,7 +42,7 @@ _LIBUNWIND_HIDDEN int __unw_init_local(unw_cursor_t *cursor,
+ # define REGISTER_KIND Registers_x86_64
+ #elif defined(__powerpc64__)
+ # define REGISTER_KIND Registers_ppc64
+-#elif defined(__ppc__)
++#elif defined(__powerpc__)
+ # define REGISTER_KIND Registers_ppc
+ #elif defined(__aarch64__)
+ # define REGISTER_KIND Registers_arm64
diff --git a/srcpkgs/llvm15/patches/lldb-musl.patch b/srcpkgs/llvm15/patches/lldb-musl.patch
new file mode 100644
index 000000000000..026c5e1e61ba
--- /dev/null
+++ b/srcpkgs/llvm15/patches/lldb-musl.patch
@@ -0,0 +1,40 @@
+--- a/lldb/source/Plugins/Process/Linux/Procfs.h
++++ b/lldb/source/Plugins/Process/Linux/Procfs.h
+@@ -10,6 +10,7 @@
+ // sys/procfs.h on Android/Linux for all supported architectures.
+
+ #include <sys/ptrace.h>
++#include <asm/ptrace.h>
+
+ #include "lldb/lldb-types.h"
+
+@@ -17,23 +18,13 @@
+
+ #include <vector>
+
+-#ifdef __ANDROID__
+-#if defined(__arm64__) || defined(__aarch64__)
+-typedef unsigned long elf_greg_t;
+-typedef elf_greg_t
+- elf_gregset_t[(sizeof(struct user_pt_regs) / sizeof(elf_greg_t))];
+-typedef struct user_fpsimd_state elf_fpregset_t;
+-#ifndef NT_FPREGSET
+-#define NT_FPREGSET NT_PRFPREG
+-#endif // NT_FPREGSET
+-#elif defined(__mips__)
+-#ifndef NT_FPREGSET
+-#define NT_FPREGSET NT_PRFPREG
+-#endif // NT_FPREGSET
+-#endif
+-#else // __ANDROID__
++#if !defined(__GLIBC__) && defined(__powerpc__)
++#define pt_regs musl_pt_regs
++#include <sys/procfs.h>
++#undef pt_regs
++#else
+ #include <sys/procfs.h>
+-#endif // __ANDROID__
++#endif
+
+ namespace lldb_private {
+ namespace process_linux {
diff --git a/srcpkgs/llvm15/patches/llvm-001-musl.patch b/srcpkgs/llvm15/patches/llvm-001-musl.patch
new file mode 100644
index 000000000000..f2a3f8d62813
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-001-musl.patch
@@ -0,0 +1,57 @@
+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;
+diff --git a/lib/Support/Unix/DynamicLibrary.inc b/lib/Support/Unix/DynamicLibrary.inc
+index a2a37996..2f86c470 100644
+--- a/llvm/lib/Support/Unix/DynamicLibrary.inc
++++ b/llvm/lib/Support/Unix/DynamicLibrary.inc
+@@ -102,7 +102,7 @@ static void *DoSearch(const char* SymbolName) {
+
+ // This macro returns the address of a well-known, explicit symbol
+ #define EXPLICIT_SYMBOL(SYM) \
+- if (!strcmp(SymbolName, #SYM)) return &SYM
++ if (!strcmp(SymbolName, #SYM)) return (void *)&SYM
+
+ // Under glibc we have a weird situation. The stderr/out/in symbols are both
+ // macros and global variables because of standards requirements. So, we
+diff --git a/utils/unittest/googletest/src/gtest.cc b/utils/unittest/googletest/src/gtest.cc
+index d882ab2e..f1fb12d0 100644
+--- a/llvm/utils/unittest/googletest/src/gtest.cc
++++ b/llvm/utils/unittest/googletest/src/gtest.cc
+@@ -128,6 +128,7 @@
+
+ #if GTEST_CAN_STREAM_RESULTS_
+ # include <arpa/inet.h> // NOLINT
++# include <sys/socket.h> // NOLINT
+ # include <netdb.h> // NOLINT
+ # include <sys/socket.h> // NOLINT
+ # include <sys/types.h> // NOLINT
diff --git a/srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch b/srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch
new file mode 100644
index 000000000000..0071d964bd37
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch
@@ -0,0 +1,30 @@
+This patches LLVM to use ELFv2 on ppc64 unconditionally unless overridden. We
+need this because unlike most distros we use ELFv2 for both glibc and musl
+on big endian ppc64.
+
+diff --git a/lib/Target/PowerPC/PPCTargetMachine.cpp b/lib/Target/PowerPC/PPCTargetMachine.cpp
+index 0634833e..b7cbc2e7 100644
+--- a/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp
++++ b/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp
+@@ -222,9 +222,8 @@ static PPCTargetMachine::PPCABI computeTargetABI(const Triple &TT,
+
+ switch (TT.getArch()) {
+ case Triple::ppc64le:
+- return PPCTargetMachine::PPC_ABI_ELFv2;
+ case Triple::ppc64:
+- return PPCTargetMachine::PPC_ABI_ELFv1;
++ return PPCTargetMachine::PPC_ABI_ELFv2;
+ default:
+ return PPCTargetMachine::PPC_ABI_UNKNOWN;
+ }
+diff --git a/test/CodeGen/PowerPC/ppc64-elf-abi.ll b/test/CodeGen/PowerPC/ppc64-elf-abi.ll
+index 8b1cf6b5..296a2afa 100644
+--- a/llvm/test/CodeGen/PowerPC/ppc64-elf-abi.ll
++++ b/llvm/test/CodeGen/PowerPC/ppc64-elf-abi.ll
+@@ -1,4 +1,5 @@
+-; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv1
++; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv2
++; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-musl < %s | FileCheck %s -check-prefix=CHECK-ELFv2
+ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu -target-abi elfv1 < %s | FileCheck %s -check-prefix=CHECK-ELFv1
+ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu -target-abi elfv2 < %s | FileCheck %s -check-prefix=CHECK-ELFv2
+ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv2
diff --git a/srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch b/srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch
new file mode 100644
index 000000000000..b5d15974375d
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch
@@ -0,0 +1,11 @@
+--- a/llvm/lib/Target/PowerPC/PPCSubtarget.cpp
++++ b/llvm/lib/Target/PowerPC/PPCSubtarget.cpp
+@@ -165,7 +165,7 @@ void PPCSubtarget::initSubtargetFeatures(StringRef CPU, StringRef FS) {
+
+ if ((TargetTriple.isOSFreeBSD() && TargetTriple.getOSMajorVersion() >= 13) ||
+ TargetTriple.isOSNetBSD() || TargetTriple.isOSOpenBSD() ||
+- TargetTriple.isMusl())
++ isTargetLinux())
+ SecurePlt = true;
+
+ if (HasSPE && IsPPC64)
diff --git a/srcpkgs/llvm15/patches/llvm-004-override-opt.patch b/srcpkgs/llvm15/patches/llvm-004-override-opt.patch
new file mode 100644
index 000000000000..51d0e4b31b32
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-004-override-opt.patch
@@ -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)
diff --git a/srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch b/srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch
new file mode 100644
index 000000000000..d332687b9d92
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch
@@ -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);
diff --git a/srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch b/srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch
new file mode 100644
index 000000000000..a00abd216665
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch
@@ -0,0 +1,25 @@
+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__) || defined (__ppc__) || \
+- defined(_POWER) || defined(_ARCH_PPC))
++ defined(_POWER) || defined(_ARCH_PPC) || (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
diff --git a/srcpkgs/llvm15/template b/srcpkgs/llvm15/template
new file mode 100644
index 000000000000..5ed8be136668
--- /dev/null
+++ b/srcpkgs/llvm15/template
@@ -0,0 +1,434 @@
+# Template file for 'llvm15'
+pkgname=llvm15
+version=15.0.6
+revision=1
+build_wrksrc=llvm
+build_style=cmake
+configure_args="
+ -DCMAKE_BUILD_TYPE=Release -Wno-dev
+ -DENABLE_LINKER_BUILD_ID=YES
+ -DLLDB_USE_SYSTEM_SIX=YES
+ -DLIBCXX_CXX_ABI=libcxxabi
+ -DLIBCXX_ENABLE_STATIC_ABI_LIBRARY=YES
+ -DLIBCXXABI_USE_LLVM_UNWINDER=YES
+ -DLIBCXXABI_ENABLE_STATIC_UNWINDER=YES
+ -DLIBOMP_ENABLE_SHARED=YES
+ -DLIBOMP_INSTALL_ALIASES=NO
+ -DLLVM_INCLUDE_DOCS=YES
+ -DLLVM_BUILD_DOCS=YES
+ -DLLVM_ENABLE_SPHINX=YES
+ -DSPHINX_WARNINGS_AS_ERRORS=NO
+ -DLLVM_INSTALL_UTILS=YES
+ -DLLVM_BUILD_LLVM_DYLIB=YES
+ -DLLVM_LINK_LLVM_DYLIB=YES
+ -DLLVM_ENABLE_RTTI=YES
+ -DLLVM_ENABLE_FFI=YES
+ -DLLVM_BINUTILS_INCDIR=/usr/include"
+hostmakedepends="perl python3 zlib-devel libffi-devel swig python3-Sphinx
+ python3-recommonmark python3-sphinx-automodapi"
+makedepends="python3-devel zlib-devel elfutils-devel libffi-devel libedit-devel
+ libxml2-devel binutils-devel libatomic-devel"
+depends="libllvm15>=${version}_${revision}"
+short_desc="Low Level Virtual Machine"
+maintainer="Orphaned <orphan@voidlinux.org>"
+license="Apache-2.0"
+homepage="https://www.llvm.org"
+distfiles="https://github.com/llvm/llvm-project/releases/download/llvmorg-${version}/llvm-project-${version}.src.tar.xz"
+checksum=9d53ad04dc60cb7b30e810faf64c5ab8157dadef46c8766f67f286238256ff92
+lib32disabled=yes
+python_version=3
+
+if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
+ configure_args+=" -DLIBCXX_HAS_MUSL_LIBC=YES"
+ makedepends+=" libexecinfo-devel"
+ depends+=" libexecinfo-devel"
+fi
+
+# "operand out of range" assembler failures
+case "$XBPS_TARGET_MACHINE" in
+ ppc64*) ;;
+ ppc*) configure_args+=" -DCLANG_ENABLE_CLANGD=OFF" ;;
+esac
+
+_enabled_projects="clang;clang-tools-extra;compiler-rt;libcxx;libcxxabi;libunwind;lld"
+
+_lldb_enable=yes
+_libomp_enable=no
+
+case "$XBPS_TARGET_MACHINE" in
+ ppc64le*) ;;
+ ppc*|i686*) _lldb_enable=no ;;
+esac
+
+case "$XBPS_TARGET_MACHINE" in
+ x86_64*|aarch64*|ppc64*) _libomp_enable=yes;;
+esac
+
+subpackages="clang-tools-extra"
+
+# must go before clang
+if [ "$_libomp_enable" = "yes" ]; then
+ _enabled_projects+=";openmp"
+ subpackages+=" libomp libomp-devel"
+ # because of cmake nonsense referencing libomptarget.so.*
+ depends+=" libomp>=${version}_${revision}"
+fi
+
+subpackages+=" clang clang-analyzer libclang libclang-cpp
+ llvm-libunwind llvm-libunwind-devel libcxx libcxx-devel
+ libcxxabi libcxxabi-devel libllvm15"
+
+if [ "$_lldb_enable" = "yes" ]; then
+ # XXX fails to cross compile due to python
+ _enabled_projects+=";lldb"
+ subpackages+=" lldb lldb-devel"
+fi
+
+subpackages+=" lld lld-devel"
+
+configure_args+=" -DLLVM_ENABLE_PROJECTS=${_enabled_projects}"
+
+post_patch() {
+ if [ "$_lldb_enable" = "yes" ]; then
+ if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
+ vsed -i 's|__ptrace_request|int|g' \
+ ${wrksrc}/lldb/source/Plugins/Process/Linux/NativeProcessLinux.cpp
+ fi
+ # disable docs for lldb as they fail to generate
+ vsed -i '/add_subdirectory(docs)/d' \
+ ${wrksrc}/lldb/CMakeLists.txt
+ fi
+
+ # update config.guess for better platform detection
+ cp $XBPS_COMMONDIR/environment/configure/automake/config.guess \
+ ${wrksrc}/llvm/cmake
+
+ # fix linker failures on some archs
+ vsed -i 's,check_library_exists(gcc_s .*,set(LIBCXXABI_HAS_GCC_S_LIB ON),' \
+ ${wrksrc}/libcxxabi/cmake/config-ix.cmake
+ vsed -i 's,check_library_exists(gcc .*,set(LIBCXXABI_HAS_GCC_LIB ON),' \
+ ${wrksrc}/libcxxabi/cmake/config-ix.cmake
+
+ # need libssp_nonshared on some musl platforms (because of nodefaultlibs)
+ case "$XBPS_TARGET_MACHINE" in
+ ppc64*) ;;
+ ppc*-musl|i686-musl|mips*-musl)
+ vsed -i 's,^# Setup flags.$,add_library_flags(ssp_nonshared),' \
+ ${wrksrc}/libunwind/src/CMakeLists.txt
+ vsed -i 's,^# Setup flags.$,add_library_flags(ssp_nonshared),' \
+ ${wrksrc}/libcxxabi/src/CMakeLists.txt
+ vsed -i 's,#ssp,,' ${wrksrc}/libcxx/CMakeLists.txt
+ ;;
+ esac
+
+ case "$XBPS_TARGET_MACHINE" in
+ x86_64-musl) # some sanitizer currently only on x86_64 stuff needs backtrace
+ vsed -i 's,# Set common link flags.,list(APPEND SANITIZER_COMMON_LINK_LIBS execinfo),' \
+ ${wrksrc}/compiler-rt/CMakeLists.txt
+ ;;
+ arm*-musl|i686-musl) # sanitizer code is broken since it duplicates some libc bits
+ vsed -i 's/set(COMPILER_RT_HAS_SANITIZER_COMMON TRUE)/set(COMPILER_RT_HAS_SANITIZER_COMMON FALSE)/' \
+ ${wrksrc}/compiler-rt/cmake/config-ix.cmake
+ ;;
+ esac
+}
+
+pre_configure() {
+ local triplet
+
+ # Vastly reduce size of debugging symbols:
+ CFLAGS=${CFLAGS/ -g/ -g1}
+ CXXFLAGS=${CXXFLAGS/ -g/ -g1}
+
+ # since gcc9, the build likes to blow up for ppc32 apparently because
+ # of clang being too large for a 24-bit relative call to the PLT, so
+ # optimize for size instead
+ case "$XBPS_TARGET_MACHINE" in
+ ppc64*) ;;
+ mips*-musl|ppc*) configure_args+=" -DVOID_CXX_OPT_FLAGS=-Os" ;;
+ esac
+
+ if [ "$CROSS_BUILD" ]; then
+ msg_normal "Building host tblgen\n"
+ mkdir -p build/HOST
+ cd build/HOST
+ CC="$BUILD_CC" CXX="$BUILD_CXX" CFLAGS="$BUILD_CFLAGS" \
+ CXXFLAGS="$BUILD_CXXFLAGS" LDFLAGS="$BUILD_LDFLAGS" \
+ cmake ../.. -DCMAKE_BUILD_TYPE=Release \
+ -DLLVM_ENABLE_PROJECTS=${_enabled_projects}
+ make ${makejobs} -C utils/TableGen
+ make ${makejobs} -C tools/clang/utils/TableGen
+ [ "$_lldb_enable" = "yes" ] && make ${makejobs} -C tools/lldb/utils/TableGen
+ configure_args+=" -DLLVM_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/llvm-tblgen"
+ configure_args+=" -DCLANG_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/clang-tblgen"
+ [ "$_lldb_enable" = "yes" ] && configure_args+=" -DLLDB_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/lldb-tblgen"
+ cd ../..
+ fi
+
+ case "$XBPS_TARGET_MACHINE" in
+ i686*) _arch="X86";;
+ x86_64*) _arch="X86";;
+ armv5*) _arch="Armv5te";;
+ armv6*) _arch="Armv6";;
+ armv7*) _arch="Armv7";;
+ aarch64*) _arch="AArch64";;
+ mips*) _arch="Mips";;
+ ppc*) _arch="PowerPC";;
+ riscv64*) _arch="RISCV64";;
+ esac
+
+ triplet=${XBPS_CROSS_TRIPLET:-$XBPS_TRIPLET}
+
+ configure_args+=" -DLLVM_TARGET_ARCH=${_arch}"
+ configure_args+=" -DLLVM_HOST_TRIPLE=${triplet}"
+ configure_args+=" -DLLVM_DEFAULT_TARGET_TRIPLE=${triplet}"
+}
+
+do_install() {
+ cd build
+ cmake -DCMAKE_INSTALL_PREFIX=${DESTDIR}/usr -P cmake_install.cmake
+
+ # Required for multilib.
+ if [ "$XBPS_TARGET_MACHINE" = "x86_64" ]; then
+ for _header in llvm-config; do
+ mv ${DESTDIR}/usr/include/llvm/Config/${_header}{,-64}.h
+ vinstall ${FILESDIR}/llvm-Config-${_header}.h 644 \
+ usr/include/llvm/Config ${_header}.h
+ done
+ fi
+
+ # Remove llvm-config-host in cross builds.
+ if [ "$CROSS_BUILD" ]; then
+ rm -f ${DESTDIR}/usr/bin/llvm-config-host
+ fi
+
+ # Install libcxxabi headers
+ vinstall ${wrksrc}/libcxxabi/include/__cxxabi_config.h 644 usr/include
+ vinstall ${wrksrc}/libcxxabi/include/cxxabi.h 644 usr/include
+
+ # Install libunwind headers
+ vinstall ${wrksrc}/libunwind/include/__libunwind_config.h 644 usr/include
+ vinstall ${wrksrc}/libunwind/include/libunwind.h 644 usr/include
+ vinstall ${wrksrc}/libunwind/include/unwind.h 644 usr/include
+ vinstall ${wrksrc}/libunwind/include/mach-o/compact_unwind_encoding.h \
+ 644 usr/include/mach-o
+}
+
+clang-analyzer_package() {
+ pycompile_dirs="usr/share/scan-view"
+ depends="clang-${version}_${revision} python3 perl"
+ short_desc+=" - A source code analysis framework"
+ homepage="https://clang-analyzer.llvm.org/"
+ pkg_install() {
+ vmove "usr/bin/scan-*"
+ vmove "usr/libexec/*analyzer"
+ vmove "usr/share/scan-*"
+ vmove usr/share/man/man1/scan-build.1
+ }
+}
+
+clang-tools-extra_package() {
+ lib32disabled=yes
+ depends="clang-${version}_${revision} python3"
+ short_desc+=" - Extra Clang tools"
+ homepage="https://clang.llvm.org/extra/"
+ pkg_install() {
+ vmove usr/bin/clang-apply-replacements
+ vmove usr/bin/clang-doc
+ vmove usr/bin/clang-include-fixer
+ vmove usr/bin/clang-query
+ vmove usr/bin/clang-rename
+ vmove usr/bin/clang-reorder-fields
+ vmove usr/bin/clang-tidy
+ vmove usr/bin/clangd
+ vmove usr/bin/diagtool
+ vmove usr/bin/find-all-symbols
+ vmove usr/bin/hmaptool
+ vmove usr/bin/modularize
+ vmove usr/bin/pp-trace
+ vmove usr/bin/sancov
+ vmove usr/include/clang-tidy
+ vmove "usr/lib/libclangApplyReplacements*"
+ vmove "usr/lib/libclangDoc*"
+ vmove "usr/lib/libclangIncludeFixer*"
+ vmove "usr/lib/libclangReorderFields*"
+ vmove "usr/lib/libclangQuery*"
+ vmove "usr/lib/libclangTidy*"
+ vmove "usr/share/clang/*include-fixer*"
+ vmove "usr/share/clang/*rename*"
+ vmove "usr/share/clang/*tidy*"
+ vmove usr/share/doc/LLVM/clang-tools
+ vmove usr/share/man/man1/diagtool.1
+ vmove usr/share/man/man1/extraclangtools.1
+ }
+}
+
+clang_package() {
+ lib32disabled=yes
+ depends="libstdc++-devel libgcc-devel binutils ${XBPS_TARGET_LIBC}-devel
+ libclang-${version}_${revision}"
+ short_desc+=" - C language family frontend"
+ homepage="https://clang.llvm.org/"
+ pkg_install() {
+ vmove "usr/bin/*clang*"
+ vmove usr/bin/c-index-test
+ vmove usr/include/clang
+ vmove usr/include/clang-c
+ vmove usr/lib/clang
+ vmove usr/lib/cmake/clang
+ vmove "usr/lib/libclang*.a"
+ vmove "usr/lib/libclang*.so"
+ vmove usr/share/clang
+ vmove usr/share/doc/LLVM/clang
+ vmove usr/share/man/man1/clang.1
+ }
+}
+
+libclang_package() {
+ short_desc+=" - C frontend runtime library"
+ pkg_install() {
+ vmove "usr/lib/libclang.so.*"
+ }
+}
+
+libclang-cpp_package() {
+ short_desc+=" - C frontend runtime library (C++ interface)"
+ pkg_install() {
+ vmove "usr/lib/libclang-cpp.so.*"
+ }
+}
+
+lld_package() {
+ lib32disabled=yes
+ short_desc+=" - linker"
+ homepage="https://lld.llvm.org"
+ pkg_install() {
+ vmove usr/bin/ld.lld*
+ vmove usr/bin/ld64.lld*
+ vmove usr/bin/lld*
+ vmove usr/bin/wasm-ld
+ vmove usr/share/doc/LLVM/lld
+ }
+}
+
+lld-devel_package() {
+ lib32disabled=yes
+ short_desc+=" - linker - development files"
+ homepage="https://lld.llvm.org"
+ depends="lld>=${version}_${revision}"
+ pkg_install() {
+ vmove usr/include/lld
+ vmove usr/lib/cmake/lld
+ vmove "usr/lib/liblld*a"
+ }
+}
+
+lldb_package() {
+ lib32disabled=yes
+ depends+=" python3-six"
+ short_desc+=" - LLDB debugger"
+ homepage="https://lldb.llvm.org/"
+ pkg_install() {
+ vmove usr/bin/*lldb*
+ vmove usr/lib/liblldb*so.*
+ vmove /usr/lib/python*
+ }
+}
+
+lldb-devel_package() {
+ lib32disabled=yes
+ depends="lldb>=${version}_${revision}"
+ short_desc+=" - LLDB debugger - development files"
+ pkg_install() {
+ vmove usr/include/lldb
+ vmove "usr/lib/liblldb*.so"
+ }
+}
+
+llvm-libunwind_package() {
+ short_desc+=" - libunwind"
+ pkg_install() {
+ vmove "usr/lib/${XBPS_TRIPLET}/libunwind.so.*"
+ }
+}
+
+llvm-libunwind-devel_package() {
+ short_desc+=" - libunwind - development files"
+ depends="llvm-libunwind>=${version}_${revision}"
+ conflicts="libunwind-devel>=0"
+ pkg_install() {
+ vmove usr/include/mach-o
+ vmove "usr/include/*unwind*"
+ vmove "usr/lib/${XBPS_TRIPLET}/libunwind.a"
+ vmove "usr/lib/${XBPS_TRIPLET}/libunwind.so"
+ vmove usr/share/doc/LLVM/libunwind
+ }
+}
+
+libcxxabi_package() {
+ short_desc+=" - low level support for libc++"
+ pkg_install() {
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++abi.so.*"
+ }
+}
+
+libcxxabi-devel_package() {
+ short_desc+=" - low level support for libc++ - development files"
+ depends="libcxxabi>=${version}_${revision}"
+ pkg_install() {
+ vmove "usr/include/*cxxabi*"
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++abi.so"
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++abi.a"
+ }
+}
+
+libcxx_package() {
+ short_desc+=" - C++ standard library"
+ pkg_install() {
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++.so.*"
+ }
+}
+
+libcxx-devel_package() {
+ short_desc+=" - C++ standard library - development files"
+ depends="libcxx>=${version}_${revision}"
+ pkg_install() {
+ vmove usr/include/c++
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++.so"
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++.a"
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++experimental.a"
+ vmove usr/share/doc/LLVM/libcxx
+ }
+}
+
+libomp_package() {
+ short_desc+=" - Clang OpenMP support library"
+ pkg_install() {
+ vmove usr/lib/libarcher.so
+ vmove usr/lib/libomp.so
+ vmove usr/lib/libompd.so
+ vmove "usr/lib/libomptarget.rtl.*.so"
+ vmove "usr/lib/libomp*.so.*"
+ }
+}
+
+libomp-devel_package() {
+ short_desc+=" - Clang OpenMP support library - development files"
+ depends="libomp>=${version}_${revision}"
+ pkg_install() {
+ vmove "usr/include/omp*.h"
+ vmove "usr/lib/clang/${version}/include/omp*.h"
+ vmove "usr/lib/libarcher*"
+ vmove "usr/lib/libomp*.so"
+ vmove usr/lib/cmake/openmp
+ vmove usr/share/doc/LLVM/openmp
+ vmove usr/share/man/man1/llvmopenmp.1
+ }
+}
+
+libllvm15_package() {
+ short_desc+=" - runtime library"
+ pkg_install() {
+ vmove "usr/lib/libLLVM-*.so*"
+ }
+}
diff --git a/srcpkgs/llvm15/update b/srcpkgs/llvm15/update
new file mode 100644
index 000000000000..e95cf26b3586
--- /dev/null
+++ b/srcpkgs/llvm15/update
@@ -0,0 +1,3 @@
+site="https://github.com/llvm/llvm-project/releases"
+pattern="llvmorg-\K(\d+.){2}\d+(-rc\d+)?"
+ignore="*-rc*"
^ permalink raw reply [flat|nested] 96+ messages in thread
* Re: [PR PATCH] [Updated] [WIP] LLVM 15
2022-11-28 15:30 [PR PATCH] [WIP] LLVM 15 tranzystorek-io
` (19 preceding siblings ...)
2022-12-12 18:26 ` [PR PATCH] [Updated] " tranzystorek-io
@ 2022-12-17 8:56 ` tranzystorek-io
2022-12-17 9:00 ` tranzystorek-io
` (73 subsequent siblings)
94 siblings, 0 replies; 96+ messages in thread
From: tranzystorek-io @ 2022-12-17 8:56 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 502 bytes --]
There is an updated pull request by tranzystorek-io against master on the void-packages repository
https://github.com/tranzystorek-io/void-packages llvm15
https://github.com/void-linux/void-packages/pull/40821
[WIP] LLVM 15
[ci skip]
TODO:
- [ ] Adjust patches marked as `.patch.skip`
- [ ] Make libomp a shlib (change so file name and install a symlink)
- [ ] Avoid creating triplet dirs under /usr/
A patch file from https://github.com/void-linux/void-packages/pull/40821.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-llvm15-40821.patch --]
[-- Type: text/x-diff, Size: 55123 bytes --]
From 4dc58e5e8ffc45bc179f1a77861800574a63536b Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Sun, 27 Nov 2022 22:59:45 +0100
Subject: [PATCH] llvm: update to 15.0.6
---
common/shlibs | 7 +-
srcpkgs/clang | 2 +-
srcpkgs/clang-analyzer | 2 +-
srcpkgs/clang-tools-extra | 2 +-
srcpkgs/libclang | 2 +-
srcpkgs/libclang-cpp | 2 +-
srcpkgs/libcxx | 2 +-
srcpkgs/libcxx-devel | 2 +-
srcpkgs/libcxxabi | 2 +-
srcpkgs/libcxxabi-devel | 2 +-
srcpkgs/libllvm15 | 1 +
srcpkgs/libomp | 2 +-
srcpkgs/libomp-devel | 2 +-
srcpkgs/lld | 2 +-
srcpkgs/lld-devel | 2 +-
srcpkgs/lldb | 2 +-
srcpkgs/lldb-devel | 2 +-
srcpkgs/llvm-libunwind | 2 +-
srcpkgs/llvm-libunwind-devel | 2 +-
srcpkgs/llvm/template | 6 +-
.../llvm15/files/llvm-Config-llvm-config.h | 9 +
...clang-001-fix-unwind-chain-inclusion.patch | 44 ++
.../patches/clang-002-add-musl-triples.patch | 110 +++++
.../clang-003-ppc64-dynamic-linker-path.patch | 13 +
.../patches/clang-004-ppc64-musl-elfv2.patch | 48 ++
.../compiler-rt-sanitizer-ppc64-musl.patch | 35 ++
.../compiler-rt-xray-ppc64-musl.patch.skip | 62 +++
srcpkgs/llvm15/patches/libcxx-musl.patch | 26 ++
srcpkgs/llvm15/patches/libcxx-ppc.patch | 22 +
.../llvm15/patches/libcxx-ssp-nonshared.patch | 11 +
srcpkgs/llvm15/patches/libcxxabi-dl.patch | 25 +
.../llvm15/patches/libunwind-ppc32.patch.skip | 63 +++
srcpkgs/llvm15/patches/lldb-musl.patch | 40 ++
srcpkgs/llvm15/patches/llvm-001-musl.patch | 57 +++
.../patches/llvm-002-musl-ppc64-elfv2.patch | 30 ++
.../patches/llvm-003-ppc-secureplt.patch | 11 +
.../patches/llvm-004-override-opt.patch | 18 +
.../llvm15/patches/llvm-005-ppc-bigpic.patch | 36 ++
.../patches/llvm-006-aarch64-mf_exec.patch | 25 +
srcpkgs/llvm15/template | 434 ++++++++++++++++++
srcpkgs/llvm15/update | 3 +
41 files changed, 1147 insertions(+), 23 deletions(-)
create mode 120000 srcpkgs/libllvm15
create mode 100644 srcpkgs/llvm15/files/llvm-Config-llvm-config.h
create mode 100644 srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch
create mode 100644 srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch
create mode 100644 srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch
create mode 100644 srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch
create mode 100644 srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch
create mode 100644 srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip
create mode 100644 srcpkgs/llvm15/patches/libcxx-musl.patch
create mode 100644 srcpkgs/llvm15/patches/libcxx-ppc.patch
create mode 100644 srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch
create mode 100644 srcpkgs/llvm15/patches/libcxxabi-dl.patch
create mode 100644 srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip
create mode 100644 srcpkgs/llvm15/patches/lldb-musl.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-001-musl.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-004-override-opt.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch
create mode 100644 srcpkgs/llvm15/template
create mode 100644 srcpkgs/llvm15/update
diff --git a/common/shlibs b/common/shlibs
index ba5c89ee3bad..fe79d476f1dd 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -982,11 +982,12 @@ 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.12 lldb-12.0.0_1
-libclang.so.12 libclang-12.0.0_1
-libclang-cpp.so.12 libclang-cpp-12.0.0_1
+liblldb.so.15 lldb-15.0.5_1
+libclang.so.15 libclang-15.0.5_1
+libclang-cpp.so.15 libclang-cpp-15.0.5_1
libLLVM-11.so libllvm11-11.0.0_1
libLLVM-12.so libllvm12-12.0.0_1
+libLLVM-15.so libllvm15-15.0.5_1
libisofs.so.6 libisofs-0.6.24_1
libmpack.so.0 libmpack-1.0.5_1
libGeoIP.so.1 libgeoip-1.4.8_1
diff --git a/srcpkgs/clang b/srcpkgs/clang
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/clang
+++ b/srcpkgs/clang
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/clang-analyzer b/srcpkgs/clang-analyzer
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/clang-analyzer
+++ b/srcpkgs/clang-analyzer
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/clang-tools-extra b/srcpkgs/clang-tools-extra
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/clang-tools-extra
+++ b/srcpkgs/clang-tools-extra
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libclang b/srcpkgs/libclang
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libclang
+++ b/srcpkgs/libclang
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libclang-cpp b/srcpkgs/libclang-cpp
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libclang-cpp
+++ b/srcpkgs/libclang-cpp
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxx b/srcpkgs/libcxx
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxx
+++ b/srcpkgs/libcxx
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxx-devel b/srcpkgs/libcxx-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxx-devel
+++ b/srcpkgs/libcxx-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxxabi b/srcpkgs/libcxxabi
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxxabi
+++ b/srcpkgs/libcxxabi
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxxabi-devel b/srcpkgs/libcxxabi-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxxabi-devel
+++ b/srcpkgs/libcxxabi-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libllvm15 b/srcpkgs/libllvm15
new file mode 120000
index 000000000000..ad57a969b9f9
--- /dev/null
+++ b/srcpkgs/libllvm15
@@ -0,0 +1 @@
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libomp b/srcpkgs/libomp
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libomp
+++ b/srcpkgs/libomp
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libomp-devel b/srcpkgs/libomp-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libomp-devel
+++ b/srcpkgs/libomp-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lld b/srcpkgs/lld
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lld
+++ b/srcpkgs/lld
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lld-devel b/srcpkgs/lld-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lld-devel
+++ b/srcpkgs/lld-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lldb b/srcpkgs/lldb
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lldb
+++ b/srcpkgs/lldb
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lldb-devel b/srcpkgs/lldb-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lldb-devel
+++ b/srcpkgs/lldb-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm-libunwind b/srcpkgs/llvm-libunwind
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/llvm-libunwind
+++ b/srcpkgs/llvm-libunwind
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm-libunwind-devel b/srcpkgs/llvm-libunwind-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/llvm-libunwind-devel
+++ b/srcpkgs/llvm-libunwind-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm/template b/srcpkgs/llvm/template
index a92db6f94f9f..d14430090161 100644
--- a/srcpkgs/llvm/template
+++ b/srcpkgs/llvm/template
@@ -1,10 +1,10 @@
# Template file for 'llvm'
pkgname=llvm
-version=12.0.0
+version=15.0.0
revision=1
build_style=meta
-depends="llvm12"
-replaces="llvm11>=0 llvm10>=0 llvm9>=0 llvm8>=0 llvm7>=0 llvm6.0>=0 llvm3.9>=0"
+depends="llvm15"
+replaces="llvm12>=0 llvm11>=0 llvm10>=0 llvm9>=0 llvm8>=0 llvm7>=0 llvm6.0>=0 llvm3.9>=0"
short_desc="LLVM meta package"
maintainer="Enno Boland <gottox@voidlinux.org>"
license="Public Domain"
diff --git a/srcpkgs/llvm15/files/llvm-Config-llvm-config.h b/srcpkgs/llvm15/files/llvm-Config-llvm-config.h
new file mode 100644
index 000000000000..2fa08c9be696
--- /dev/null
+++ b/srcpkgs/llvm15/files/llvm-Config-llvm-config.h
@@ -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
diff --git a/srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch b/srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch
new file mode 100644
index 000000000000..e4eaa7783e7a
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch
@@ -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
diff --git a/srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch b/srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch
new file mode 100644
index 000000000000..25688d40dbc2
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch
@@ -0,0 +1,110 @@
+--- a/clang/lib/Driver/ToolChains/Gnu.cpp
++++ b/clang/lib/Driver/ToolChains/Gnu.cpp
+@@ -2086,7 +2086,8 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
+ static const char *const ARMHFTriples[] = {"arm-linux-gnueabihf",
+ "armv7hl-redhat-linux-gnueabi",
+ "armv6hl-suse-linux-gnueabi",
+- "armv7hl-suse-linux-gnueabi"};
++ "armv7hl-suse-linux-gnueabi",
++ "armv7l-linux-gnueabihf"};
+ static const char *const ARMebLibDirs[] = {"/lib"};
+ static const char *const ARMebTriples[] = {"armeb-linux-gnueabi",
+ "armeb-linux-androideabi"};
+@@ -2153,8 +2154,7 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
+ "powerpc64-suse-linux", "powerpc-montavista-linuxspe"};
+ static const char *const PPCLELibDirs[] = {"/lib32", "/lib"};
+ static const char *const PPCLETriples[] = {"powerpcle-linux-gnu",
+- "powerpcle-unknown-linux-gnu",
+- "powerpcle-linux-musl"};
++ "powerpcle-unknown-linux-gnu"};
+
+ static const char *const PPC64LibDirs[] = {"/lib64", "/lib"};
+ static const char *const PPC64Triples[] = {
+@@ -2235,6 +2235,87 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
+ return;
+ }
+
++ if (TargetTriple.isMusl()) {
++ static const char *const AArch64MuslTriples[] = {"aarch64-linux-musl"};
++ static const char *const ARMHFMuslTriples[] = {
++ "arm-linux-musleabihf", "armv7l-linux-musleabihf"
++ };
++ static const char *const ARMMuslTriples[] = {"arm-linux-musleabi"};
++ static const char *const X86_64MuslTriples[] = {"x86_64-linux-musl"};
++ static const char *const X86MuslTriples[] = {"i686-linux-musl"};
++ static const char *const MIPSMuslTriples[] = {
++ "mips-linux-musl", "mipsel-linux-musl",
++ "mipsel-linux-muslhf", "mips-linux-muslhf"
++ };
++ static const char *const PPCMuslTriples[] = {"powerpc-linux-musl"};
++ static const char *const PPCLEMuslTriples[] = {"powerpcle-linux-musl"};
++ static const char *const PPC64MuslTriples[] = {"powerpc64-linux-musl"};
++ static const char *const PPC64LEMuslTriples[] = {"powerpc64le-linux-musl"};
++
++ switch (TargetTriple.getArch()) {
++ case llvm::Triple::aarch64:
++ LibDirs.append(begin(AArch64LibDirs), end(AArch64LibDirs));
++ TripleAliases.append(begin(AArch64MuslTriples), end(AArch64MuslTriples));
++ BiarchLibDirs.append(begin(AArch64LibDirs), end(AArch64LibDirs));
++ BiarchTripleAliases.append(begin(AArch64MuslTriples), end(AArch64MuslTriples));
++ break;
++ case llvm::Triple::arm:
++ LibDirs.append(begin(ARMLibDirs), end(ARMLibDirs));
++ if (TargetTriple.getEnvironment() == llvm::Triple::MuslEABIHF) {
++ TripleAliases.append(begin(ARMHFMuslTriples), end(ARMHFMuslTriples));
++ } else {
++ TripleAliases.append(begin(ARMMuslTriples), end(ARMMuslTriples));
++ }
++ break;
++ case llvm::Triple::x86_64:
++ LibDirs.append(begin(X86_64LibDirs), end(X86_64LibDirs));
++ TripleAliases.append(begin(X86_64MuslTriples), end(X86_64MuslTriples));
++ BiarchLibDirs.append(begin(X86LibDirs), end(X86LibDirs));
++ BiarchTripleAliases.append(begin(X86MuslTriples), end(X86MuslTriples));
++ break;
++ case llvm::Triple::x86:
++ LibDirs.append(begin(X86LibDirs), end(X86LibDirs));
++ TripleAliases.append(begin(X86MuslTriples), end(X86MuslTriples));
++ BiarchLibDirs.append(begin(X86_64LibDirs), end(X86_64LibDirs));
++ BiarchTripleAliases.append(begin(X86_64MuslTriples), end(X86_64MuslTriples));
++ break;
++ case llvm::Triple::mips:
++ LibDirs.append(begin(MIPSLibDirs), end(MIPSLibDirs));
++ TripleAliases.append(begin(MIPSMuslTriples), end(MIPSMuslTriples));
++ break;
++ case llvm::Triple::ppc:
++ LibDirs.append(begin(PPCLibDirs), end(PPCLibDirs));
++ TripleAliases.append(begin(PPCMuslTriples), end(PPCMuslTriples));
++ BiarchLibDirs.append(begin(PPC64LibDirs), end(PPC64LibDirs));
++ BiarchTripleAliases.append(begin(PPC64MuslTriples), end(PPC64MuslTriples));
++ break;
++ case llvm::Triple::ppcle:
++ LibDirs.append(begin(PPCLELibDirs), end(PPCLELibDirs));
++ TripleAliases.append(begin(PPCLEMuslTriples), end(PPCLEMuslTriples));
++ BiarchLibDirs.append(begin(PPC64LELibDirs), end(PPC64LELibDirs));
++ BiarchTripleAliases.append(begin(PPC64LEMuslTriples), end(PPC64LEMuslTriples));
++ break;
++ case llvm::Triple::ppc64:
++ LibDirs.append(begin(PPC64LibDirs), end(PPC64LibDirs));
++ TripleAliases.append(begin(PPC64MuslTriples), end(PPC64MuslTriples));
++ BiarchLibDirs.append(begin(PPCLibDirs), end(PPCLibDirs));
++ BiarchTripleAliases.append(begin(PPCMuslTriples), end(PPCMuslTriples));
++ break;
++ case llvm::Triple::ppc64le:
++ LibDirs.append(begin(PPC64LELibDirs), end(PPC64LELibDirs));
++ TripleAliases.append(begin(PPC64LEMuslTriples), end(PPC64LEMuslTriples));
++ BiarchLibDirs.append(begin(PPCLELibDirs), end(PPCLELibDirs));
++ BiarchTripleAliases.append(begin(PPCLEMuslTriples), end(PPCLEMuslTriples));
++ break;
++ default:
++ break;
++ }
++ TripleAliases.push_back(TargetTriple.str());
++ if (TargetTriple.str() != BiarchTriple.str())
++ BiarchTripleAliases.push_back(BiarchTriple.str());
++ return;
++ }
++
+ // Android targets should not use GNU/Linux tools or libraries.
+ if (TargetTriple.isAndroid()) {
+ static const char *const AArch64AndroidTriples[] = {
diff --git a/srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch b/srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch
new file mode 100644
index 000000000000..4ad6412d1e6c
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch
@@ -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 =
diff --git a/srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch b/srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch
new file mode 100644
index 000000000000..21fc8003c5f1
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch
@@ -0,0 +1,48 @@
+--- a/clang/lib/Basic/Targets/PPC.h
++++ b/clang/lib/Basic/Targets/PPC.h
+@@ -415,11 +415,10 @@ public:
+ LongDoubleFormat = &llvm::APFloat::IEEEdouble();
+ } else if ((Triple.getArch() == llvm::Triple::ppc64le)) {
+ DataLayout = "e-m:e-i64:64-n32:64";
+- ABI = "elfv2";
+ } else {
+ DataLayout = "E-m:e-i64:64-n32:64";
+- ABI = "elfv1";
+ }
++ ABI = "elfv2";
+
+ if (Triple.isOSFreeBSD() || Triple.isOSOpenBSD() || Triple.isMusl()) {
+ LongDoubleWidth = LongDoubleAlign = 64;
+--- a/clang/lib/CodeGen/TargetInfo.cpp
++++ b/clang/lib/CodeGen/TargetInfo.cpp
+@@ -10927,9 +10927,9 @@ const TargetCodeGenInfo &CodeGenModule::getTargetCodeGenInfo() {
+ return SetCGInfo(new AIXTargetCodeGenInfo(Types, /*Is64Bit*/ true));
+
+ if (Triple.isOSBinFormatELF()) {
+- PPC64_SVR4_ABIInfo::ABIKind Kind = PPC64_SVR4_ABIInfo::ELFv1;
+- if (getTarget().getABI() == "elfv2")
+- Kind = PPC64_SVR4_ABIInfo::ELFv2;
++ PPC64_SVR4_ABIInfo::ABIKind Kind = PPC64_SVR4_ABIInfo::ELFv2;
++ if (getTarget().getABI() == "elfv1")
++ Kind = PPC64_SVR4_ABIInfo::ELFv1;
+ bool IsSoftFloat = CodeGenOpts.FloatABI == "soft";
+
+ return SetCGInfo(
+--- a/clang/lib/Driver/ToolChains/Clang.cpp
++++ b/clang/lib/Driver/ToolChains/Clang.cpp
+@@ -1920,14 +1920,7 @@ void Clang::AddPPCTargetArgs(const ArgList &Args,
+ const llvm::Triple &T = getToolChain().getTriple();
+ if (T.isOSBinFormatELF()) {
+ switch (getToolChain().getArch()) {
+- case llvm::Triple::ppc64: {
+- if ((T.isOSFreeBSD() && T.getOSMajorVersion() >= 13) ||
+- T.isOSOpenBSD() || T.isMusl())
+- ABIName = "elfv2";
+- else
+- ABIName = "elfv1";
+- break;
+- }
++ case llvm::Triple::ppc64:
+ case llvm::Triple::ppc64le:
+ ABIName = "elfv2";
+ break;
diff --git a/srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch b/srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch
new file mode 100644
index 000000000000..360cfc1ba7f1
--- /dev/null
+++ b/srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch
@@ -0,0 +1,35 @@
+--- 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__) || SANITIZER_RISCV64
++ defined(__hexagon__) || defined(__powerpc__) || 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_ANDROID
++#if (defined(__aarch64__) || defined(__powerpc__) || SANITIZER_RISCV64) && !SANITIZER_ANDROID
+ // GLIBC 2.20+ sys/user does not include asm/ptrace.h
+ # include <asm/ptrace.h>
+ #endif
diff --git a/srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip b/srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip
new file mode 100644
index 000000000000..d0b61c80c897
--- /dev/null
+++ b/srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip
@@ -0,0 +1,62 @@
+--- a/compiler-rt/lib/xray/xray_powerpc64.inc
++++ b/compiler-rt/lib/xray/xray_powerpc64.inc
+@@ -12,7 +12,13 @@
+
+ #include <cstdint>
+ #include <mutex>
++#ifdef __GLIBC__
+ #include <sys/platform/ppc.h>
++#else
++#include <cctype>
++#include <cstring>
++#include <cstdlib>
++#endif
+
+ #include "xray_defs.h"
+
+@@ -20,13 +26,45 @@ namespace __xray {
+
+ ALWAYS_INLINE uint64_t readTSC(uint8_t &CPU) XRAY_NEVER_INSTRUMENT {
+ CPU = 0;
++#ifdef __GLIBC__
+ return __ppc_get_timebase();
++#else
++ return __builtin_ppc_get_timebase();
++#endif
+ }
+
+ inline uint64_t getTSCFrequency() XRAY_NEVER_INSTRUMENT {
+ static std::mutex M;
+ std::lock_guard<std::mutex> Guard(M);
++#ifdef __GLIBC__
+ return __ppc_get_timebase_freq();
++#else
++ /* FIXME: a less dirty implementation? */
++ static uint64_t base;
++ if (!base) {
++ FILE *f = fopen("/proc/cpuinfo", "rb");
++ if (f) {
++ ssize_t nr;
++ /* virtually always big enough to hold the line */
++ char buf[512];
++ while (fgets(buf, sizeof(buf), f)) {
++ char *ret = strstr(buf, "timebase");
++ if (!ret) {
++ continue;
++ }
++ ret += sizeof("timebase") - 1;
++ ret = strchr(ret, ':');
++ if (!ret) {
++ continue;
++ }
++ base = strtoul(ret + 1, nullptr, 10);
++ break;
++ }
++ fclose(f);
++ }
++ }
++ return base;
++#endif
+ }
+
+ inline bool probeRequiredCPUFeatures() XRAY_NEVER_INSTRUMENT {
diff --git a/srcpkgs/llvm15/patches/libcxx-musl.patch b/srcpkgs/llvm15/patches/libcxx-musl.patch
new file mode 100644
index 000000000000..bbd31ffc2cb1
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxx-musl.patch
@@ -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,
+ typename remove_reference<decltype(errno)>::type __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
+ typename remove_reference<decltype(errno)>::type __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,
+ typename remove_reference<decltype(errno)>::type __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
+ typename remove_reference<decltype(errno)>::type __current_errno = errno;
+ if (__current_errno == 0)
+ errno = __save_errno;
diff --git a/srcpkgs/llvm15/patches/libcxx-ppc.patch b/srcpkgs/llvm15/patches/libcxx-ppc.patch
new file mode 100644
index 000000000000..7a92f8004e1c
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxx-ppc.patch
@@ -0,0 +1,22 @@
+This ensures `is_iec559` is defined correctly under all long double ABIs,
+including musl and its 64-bit long double. Also, `__ppc__` or `__ppc64__`
+is not defined on gcc.
+
+--- a/libcxx/include/limits
++++ b/libcxx/include/limits
+@@ -426,8 +426,14 @@ protected:
+ _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type signaling_NaN() _NOEXCEPT {return __builtin_nansl("");}
+ _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type denorm_min() _NOEXCEPT {return __LDBL_DENORM_MIN__;}
+
+-#if (defined(__ppc__) || defined(__ppc64__))
++#if defined(__powerpc__) || defined(__powerpc64__)
++#if (__LDBL_MAX_EXP__ > __DBL_MAX_EXP__) || (__LDBL_MANT_DIG__ == __DBL_MANT_DIG__)
++ /* IEEE 754 quadruple or double precision */
++ static _LIBCPP_CONSTEXPR const bool is_iec559 = true;
++#else
++ /* 128-bit IBM double-double */
+ static _LIBCPP_CONSTEXPR const bool is_iec559 = false;
++#endif
+ #else
+ static _LIBCPP_CONSTEXPR const bool is_iec559 = true;
+ #endif
diff --git a/srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch b/srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch
new file mode 100644
index 000000000000..70292beb2fcd
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch
@@ -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()
diff --git a/srcpkgs/llvm15/patches/libcxxabi-dl.patch b/srcpkgs/llvm15/patches/libcxxabi-dl.patch
new file mode 100644
index 000000000000..3a15f9db8c98
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxxabi-dl.patch
@@ -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 @@
+ target_link_libraries(${target} PRIVATE m)
+ endif()
+
++ if (LIBCXX_HAS_C_LIB)
++ target_link_libraries(${target} PRIVATE dl)
++ endif()
++
+ if (LIBCXX_HAS_RT_LIB)
+ target_link_libraries(${target} PRIVATE rt)
+ endif()
diff --git a/srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip b/srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip
new file mode 100644
index 000000000000..74aa7576ecf9
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip
@@ -0,0 +1,63 @@
+This fixes build at least with gcc9 which does not define `__ppc__`.
+
+--- a/libunwind/include/__libunwind_config.h
++++ b/libunwind/include/__libunwind_config.h
+@@ -49,7 +49,7 @@
+ # define _LIBUNWIND_CONTEXT_SIZE 167
+ # define _LIBUNWIND_CURSOR_SIZE 179
+ # define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_PPC64
+-# elif defined(__ppc__)
++# elif defined(__powerpc__)
+ # define _LIBUNWIND_TARGET_PPC 1
+ # define _LIBUNWIND_CONTEXT_SIZE 117
+ # define _LIBUNWIND_CURSOR_SIZE 124
+--- a/libunwind/src/UnwindRegistersRestore.S
++++ b/libunwind/src/UnwindRegistersRestore.S
+@@ -392,7 +392,7 @@ Lnovec:
+ PPC64_LR(3)
+ bctr
+
+-#elif defined(__ppc__)
++#elif defined(__powerpc__)
+
+ DEFINE_LIBUNWIND_FUNCTION(_ZN9libunwind13Registers_ppc6jumptoEv)
+ //
+--- a/libunwind/src/UnwindRegistersSave.S
++++ b/libunwind/src/UnwindRegistersSave.S
+@@ -554,7 +554,7 @@ DEFINE_LIBUNWIND_FUNCTION(__unw_getcontext)
+ blr
+
+
+-#elif defined(__ppc__)
++#elif defined(__powerpc__)
+
+ //
+ // extern int unw_getcontext(unw_context_t* thread_state)
+--- a/libunwind/src/config.h
++++ b/libunwind/src/config.h
+@@ -95,12 +95,12 @@
+ #define _LIBUNWIND_BUILD_SJLJ_APIS
+ #endif
+
+-#if defined(__i386__) || defined(__x86_64__) || defined(__ppc__) || defined(__ppc64__) || defined(__powerpc64__)
++#if defined(__i386__) || defined(__x86_64__) || defined(__powerpc__) || defined(__powerpc64__)
+ #define _LIBUNWIND_SUPPORT_FRAME_APIS
+ #endif
+
+ #if defined(__i386__) || defined(__x86_64__) || \
+- defined(__ppc__) || defined(__ppc64__) || defined(__powerpc64__) || \
++ defined(__powerpc__) || defined(__powerpc64__) || \
+ (!defined(__APPLE__) && defined(__arm__)) || \
+ (defined(__arm64__) || defined(__aarch64__)) || \
+ defined(__mips__)
+--- a/libunwind/src/libunwind.cpp
++++ b/libunwind/src/libunwind.cpp
+@@ -42,7 +42,7 @@ _LIBUNWIND_HIDDEN int __unw_init_local(unw_cursor_t *cursor,
+ # define REGISTER_KIND Registers_x86_64
+ #elif defined(__powerpc64__)
+ # define REGISTER_KIND Registers_ppc64
+-#elif defined(__ppc__)
++#elif defined(__powerpc__)
+ # define REGISTER_KIND Registers_ppc
+ #elif defined(__aarch64__)
+ # define REGISTER_KIND Registers_arm64
diff --git a/srcpkgs/llvm15/patches/lldb-musl.patch b/srcpkgs/llvm15/patches/lldb-musl.patch
new file mode 100644
index 000000000000..026c5e1e61ba
--- /dev/null
+++ b/srcpkgs/llvm15/patches/lldb-musl.patch
@@ -0,0 +1,40 @@
+--- a/lldb/source/Plugins/Process/Linux/Procfs.h
++++ b/lldb/source/Plugins/Process/Linux/Procfs.h
+@@ -10,6 +10,7 @@
+ // sys/procfs.h on Android/Linux for all supported architectures.
+
+ #include <sys/ptrace.h>
++#include <asm/ptrace.h>
+
+ #include "lldb/lldb-types.h"
+
+@@ -17,23 +18,13 @@
+
+ #include <vector>
+
+-#ifdef __ANDROID__
+-#if defined(__arm64__) || defined(__aarch64__)
+-typedef unsigned long elf_greg_t;
+-typedef elf_greg_t
+- elf_gregset_t[(sizeof(struct user_pt_regs) / sizeof(elf_greg_t))];
+-typedef struct user_fpsimd_state elf_fpregset_t;
+-#ifndef NT_FPREGSET
+-#define NT_FPREGSET NT_PRFPREG
+-#endif // NT_FPREGSET
+-#elif defined(__mips__)
+-#ifndef NT_FPREGSET
+-#define NT_FPREGSET NT_PRFPREG
+-#endif // NT_FPREGSET
+-#endif
+-#else // __ANDROID__
++#if !defined(__GLIBC__) && defined(__powerpc__)
++#define pt_regs musl_pt_regs
++#include <sys/procfs.h>
++#undef pt_regs
++#else
+ #include <sys/procfs.h>
+-#endif // __ANDROID__
++#endif
+
+ namespace lldb_private {
+ namespace process_linux {
diff --git a/srcpkgs/llvm15/patches/llvm-001-musl.patch b/srcpkgs/llvm15/patches/llvm-001-musl.patch
new file mode 100644
index 000000000000..f2a3f8d62813
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-001-musl.patch
@@ -0,0 +1,57 @@
+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;
+diff --git a/lib/Support/Unix/DynamicLibrary.inc b/lib/Support/Unix/DynamicLibrary.inc
+index a2a37996..2f86c470 100644
+--- a/llvm/lib/Support/Unix/DynamicLibrary.inc
++++ b/llvm/lib/Support/Unix/DynamicLibrary.inc
+@@ -102,7 +102,7 @@ static void *DoSearch(const char* SymbolName) {
+
+ // This macro returns the address of a well-known, explicit symbol
+ #define EXPLICIT_SYMBOL(SYM) \
+- if (!strcmp(SymbolName, #SYM)) return &SYM
++ if (!strcmp(SymbolName, #SYM)) return (void *)&SYM
+
+ // Under glibc we have a weird situation. The stderr/out/in symbols are both
+ // macros and global variables because of standards requirements. So, we
+diff --git a/utils/unittest/googletest/src/gtest.cc b/utils/unittest/googletest/src/gtest.cc
+index d882ab2e..f1fb12d0 100644
+--- a/llvm/utils/unittest/googletest/src/gtest.cc
++++ b/llvm/utils/unittest/googletest/src/gtest.cc
+@@ -128,6 +128,7 @@
+
+ #if GTEST_CAN_STREAM_RESULTS_
+ # include <arpa/inet.h> // NOLINT
++# include <sys/socket.h> // NOLINT
+ # include <netdb.h> // NOLINT
+ # include <sys/socket.h> // NOLINT
+ # include <sys/types.h> // NOLINT
diff --git a/srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch b/srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch
new file mode 100644
index 000000000000..0071d964bd37
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch
@@ -0,0 +1,30 @@
+This patches LLVM to use ELFv2 on ppc64 unconditionally unless overridden. We
+need this because unlike most distros we use ELFv2 for both glibc and musl
+on big endian ppc64.
+
+diff --git a/lib/Target/PowerPC/PPCTargetMachine.cpp b/lib/Target/PowerPC/PPCTargetMachine.cpp
+index 0634833e..b7cbc2e7 100644
+--- a/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp
++++ b/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp
+@@ -222,9 +222,8 @@ static PPCTargetMachine::PPCABI computeTargetABI(const Triple &TT,
+
+ switch (TT.getArch()) {
+ case Triple::ppc64le:
+- return PPCTargetMachine::PPC_ABI_ELFv2;
+ case Triple::ppc64:
+- return PPCTargetMachine::PPC_ABI_ELFv1;
++ return PPCTargetMachine::PPC_ABI_ELFv2;
+ default:
+ return PPCTargetMachine::PPC_ABI_UNKNOWN;
+ }
+diff --git a/test/CodeGen/PowerPC/ppc64-elf-abi.ll b/test/CodeGen/PowerPC/ppc64-elf-abi.ll
+index 8b1cf6b5..296a2afa 100644
+--- a/llvm/test/CodeGen/PowerPC/ppc64-elf-abi.ll
++++ b/llvm/test/CodeGen/PowerPC/ppc64-elf-abi.ll
+@@ -1,4 +1,5 @@
+-; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv1
++; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv2
++; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-musl < %s | FileCheck %s -check-prefix=CHECK-ELFv2
+ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu -target-abi elfv1 < %s | FileCheck %s -check-prefix=CHECK-ELFv1
+ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu -target-abi elfv2 < %s | FileCheck %s -check-prefix=CHECK-ELFv2
+ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv2
diff --git a/srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch b/srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch
new file mode 100644
index 000000000000..b5d15974375d
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch
@@ -0,0 +1,11 @@
+--- a/llvm/lib/Target/PowerPC/PPCSubtarget.cpp
++++ b/llvm/lib/Target/PowerPC/PPCSubtarget.cpp
+@@ -165,7 +165,7 @@ void PPCSubtarget::initSubtargetFeatures(StringRef CPU, StringRef FS) {
+
+ if ((TargetTriple.isOSFreeBSD() && TargetTriple.getOSMajorVersion() >= 13) ||
+ TargetTriple.isOSNetBSD() || TargetTriple.isOSOpenBSD() ||
+- TargetTriple.isMusl())
++ isTargetLinux())
+ SecurePlt = true;
+
+ if (HasSPE && IsPPC64)
diff --git a/srcpkgs/llvm15/patches/llvm-004-override-opt.patch b/srcpkgs/llvm15/patches/llvm-004-override-opt.patch
new file mode 100644
index 000000000000..51d0e4b31b32
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-004-override-opt.patch
@@ -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)
diff --git a/srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch b/srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch
new file mode 100644
index 000000000000..d332687b9d92
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch
@@ -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);
diff --git a/srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch b/srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch
new file mode 100644
index 000000000000..a00abd216665
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch
@@ -0,0 +1,25 @@
+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__) || defined (__ppc__) || \
+- defined(_POWER) || defined(_ARCH_PPC))
++ defined(_POWER) || defined(_ARCH_PPC) || (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
diff --git a/srcpkgs/llvm15/template b/srcpkgs/llvm15/template
new file mode 100644
index 000000000000..5ed8be136668
--- /dev/null
+++ b/srcpkgs/llvm15/template
@@ -0,0 +1,434 @@
+# Template file for 'llvm15'
+pkgname=llvm15
+version=15.0.6
+revision=1
+build_wrksrc=llvm
+build_style=cmake
+configure_args="
+ -DCMAKE_BUILD_TYPE=Release -Wno-dev
+ -DENABLE_LINKER_BUILD_ID=YES
+ -DLLDB_USE_SYSTEM_SIX=YES
+ -DLIBCXX_CXX_ABI=libcxxabi
+ -DLIBCXX_ENABLE_STATIC_ABI_LIBRARY=YES
+ -DLIBCXXABI_USE_LLVM_UNWINDER=YES
+ -DLIBCXXABI_ENABLE_STATIC_UNWINDER=YES
+ -DLIBOMP_ENABLE_SHARED=YES
+ -DLIBOMP_INSTALL_ALIASES=NO
+ -DLLVM_INCLUDE_DOCS=YES
+ -DLLVM_BUILD_DOCS=YES
+ -DLLVM_ENABLE_SPHINX=YES
+ -DSPHINX_WARNINGS_AS_ERRORS=NO
+ -DLLVM_INSTALL_UTILS=YES
+ -DLLVM_BUILD_LLVM_DYLIB=YES
+ -DLLVM_LINK_LLVM_DYLIB=YES
+ -DLLVM_ENABLE_RTTI=YES
+ -DLLVM_ENABLE_FFI=YES
+ -DLLVM_BINUTILS_INCDIR=/usr/include"
+hostmakedepends="perl python3 zlib-devel libffi-devel swig python3-Sphinx
+ python3-recommonmark python3-sphinx-automodapi"
+makedepends="python3-devel zlib-devel elfutils-devel libffi-devel libedit-devel
+ libxml2-devel binutils-devel libatomic-devel"
+depends="libllvm15>=${version}_${revision}"
+short_desc="Low Level Virtual Machine"
+maintainer="Orphaned <orphan@voidlinux.org>"
+license="Apache-2.0"
+homepage="https://www.llvm.org"
+distfiles="https://github.com/llvm/llvm-project/releases/download/llvmorg-${version}/llvm-project-${version}.src.tar.xz"
+checksum=9d53ad04dc60cb7b30e810faf64c5ab8157dadef46c8766f67f286238256ff92
+lib32disabled=yes
+python_version=3
+
+if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
+ configure_args+=" -DLIBCXX_HAS_MUSL_LIBC=YES"
+ makedepends+=" libexecinfo-devel"
+ depends+=" libexecinfo-devel"
+fi
+
+# "operand out of range" assembler failures
+case "$XBPS_TARGET_MACHINE" in
+ ppc64*) ;;
+ ppc*) configure_args+=" -DCLANG_ENABLE_CLANGD=OFF" ;;
+esac
+
+_enabled_projects="clang;clang-tools-extra;compiler-rt;libcxx;libcxxabi;libunwind;lld"
+
+_lldb_enable=yes
+_libomp_enable=no
+
+case "$XBPS_TARGET_MACHINE" in
+ ppc64le*) ;;
+ ppc*|i686*) _lldb_enable=no ;;
+esac
+
+case "$XBPS_TARGET_MACHINE" in
+ x86_64*|aarch64*|ppc64*) _libomp_enable=yes;;
+esac
+
+subpackages="clang-tools-extra"
+
+# must go before clang
+if [ "$_libomp_enable" = "yes" ]; then
+ _enabled_projects+=";openmp"
+ subpackages+=" libomp libomp-devel"
+ # because of cmake nonsense referencing libomptarget.so.*
+ depends+=" libomp>=${version}_${revision}"
+fi
+
+subpackages+=" clang clang-analyzer libclang libclang-cpp
+ llvm-libunwind llvm-libunwind-devel libcxx libcxx-devel
+ libcxxabi libcxxabi-devel libllvm15"
+
+if [ "$_lldb_enable" = "yes" ]; then
+ # XXX fails to cross compile due to python
+ _enabled_projects+=";lldb"
+ subpackages+=" lldb lldb-devel"
+fi
+
+subpackages+=" lld lld-devel"
+
+configure_args+=" -DLLVM_ENABLE_PROJECTS=${_enabled_projects}"
+
+post_patch() {
+ if [ "$_lldb_enable" = "yes" ]; then
+ if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
+ vsed -i 's|__ptrace_request|int|g' \
+ ${wrksrc}/lldb/source/Plugins/Process/Linux/NativeProcessLinux.cpp
+ fi
+ # disable docs for lldb as they fail to generate
+ vsed -i '/add_subdirectory(docs)/d' \
+ ${wrksrc}/lldb/CMakeLists.txt
+ fi
+
+ # update config.guess for better platform detection
+ cp $XBPS_COMMONDIR/environment/configure/automake/config.guess \
+ ${wrksrc}/llvm/cmake
+
+ # fix linker failures on some archs
+ vsed -i 's,check_library_exists(gcc_s .*,set(LIBCXXABI_HAS_GCC_S_LIB ON),' \
+ ${wrksrc}/libcxxabi/cmake/config-ix.cmake
+ vsed -i 's,check_library_exists(gcc .*,set(LIBCXXABI_HAS_GCC_LIB ON),' \
+ ${wrksrc}/libcxxabi/cmake/config-ix.cmake
+
+ # need libssp_nonshared on some musl platforms (because of nodefaultlibs)
+ case "$XBPS_TARGET_MACHINE" in
+ ppc64*) ;;
+ ppc*-musl|i686-musl|mips*-musl)
+ vsed -i 's,^# Setup flags.$,add_library_flags(ssp_nonshared),' \
+ ${wrksrc}/libunwind/src/CMakeLists.txt
+ vsed -i 's,^# Setup flags.$,add_library_flags(ssp_nonshared),' \
+ ${wrksrc}/libcxxabi/src/CMakeLists.txt
+ vsed -i 's,#ssp,,' ${wrksrc}/libcxx/CMakeLists.txt
+ ;;
+ esac
+
+ case "$XBPS_TARGET_MACHINE" in
+ x86_64-musl) # some sanitizer currently only on x86_64 stuff needs backtrace
+ vsed -i 's,# Set common link flags.,list(APPEND SANITIZER_COMMON_LINK_LIBS execinfo),' \
+ ${wrksrc}/compiler-rt/CMakeLists.txt
+ ;;
+ arm*-musl|i686-musl) # sanitizer code is broken since it duplicates some libc bits
+ vsed -i 's/set(COMPILER_RT_HAS_SANITIZER_COMMON TRUE)/set(COMPILER_RT_HAS_SANITIZER_COMMON FALSE)/' \
+ ${wrksrc}/compiler-rt/cmake/config-ix.cmake
+ ;;
+ esac
+}
+
+pre_configure() {
+ local triplet
+
+ # Vastly reduce size of debugging symbols:
+ CFLAGS=${CFLAGS/ -g/ -g1}
+ CXXFLAGS=${CXXFLAGS/ -g/ -g1}
+
+ # since gcc9, the build likes to blow up for ppc32 apparently because
+ # of clang being too large for a 24-bit relative call to the PLT, so
+ # optimize for size instead
+ case "$XBPS_TARGET_MACHINE" in
+ ppc64*) ;;
+ mips*-musl|ppc*) configure_args+=" -DVOID_CXX_OPT_FLAGS=-Os" ;;
+ esac
+
+ if [ "$CROSS_BUILD" ]; then
+ msg_normal "Building host tblgen\n"
+ mkdir -p build/HOST
+ cd build/HOST
+ CC="$BUILD_CC" CXX="$BUILD_CXX" CFLAGS="$BUILD_CFLAGS" \
+ CXXFLAGS="$BUILD_CXXFLAGS" LDFLAGS="$BUILD_LDFLAGS" \
+ cmake ../.. -DCMAKE_BUILD_TYPE=Release \
+ -DLLVM_ENABLE_PROJECTS=${_enabled_projects}
+ make ${makejobs} -C utils/TableGen
+ make ${makejobs} -C tools/clang/utils/TableGen
+ [ "$_lldb_enable" = "yes" ] && make ${makejobs} -C tools/lldb/utils/TableGen
+ configure_args+=" -DLLVM_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/llvm-tblgen"
+ configure_args+=" -DCLANG_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/clang-tblgen"
+ [ "$_lldb_enable" = "yes" ] && configure_args+=" -DLLDB_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/lldb-tblgen"
+ cd ../..
+ fi
+
+ case "$XBPS_TARGET_MACHINE" in
+ i686*) _arch="X86";;
+ x86_64*) _arch="X86";;
+ armv5*) _arch="Armv5te";;
+ armv6*) _arch="Armv6";;
+ armv7*) _arch="Armv7";;
+ aarch64*) _arch="AArch64";;
+ mips*) _arch="Mips";;
+ ppc*) _arch="PowerPC";;
+ riscv64*) _arch="RISCV64";;
+ esac
+
+ triplet=${XBPS_CROSS_TRIPLET:-$XBPS_TRIPLET}
+
+ configure_args+=" -DLLVM_TARGET_ARCH=${_arch}"
+ configure_args+=" -DLLVM_HOST_TRIPLE=${triplet}"
+ configure_args+=" -DLLVM_DEFAULT_TARGET_TRIPLE=${triplet}"
+}
+
+do_install() {
+ cd build
+ cmake -DCMAKE_INSTALL_PREFIX=${DESTDIR}/usr -P cmake_install.cmake
+
+ # Required for multilib.
+ if [ "$XBPS_TARGET_MACHINE" = "x86_64" ]; then
+ for _header in llvm-config; do
+ mv ${DESTDIR}/usr/include/llvm/Config/${_header}{,-64}.h
+ vinstall ${FILESDIR}/llvm-Config-${_header}.h 644 \
+ usr/include/llvm/Config ${_header}.h
+ done
+ fi
+
+ # Remove llvm-config-host in cross builds.
+ if [ "$CROSS_BUILD" ]; then
+ rm -f ${DESTDIR}/usr/bin/llvm-config-host
+ fi
+
+ # Install libcxxabi headers
+ vinstall ${wrksrc}/libcxxabi/include/__cxxabi_config.h 644 usr/include
+ vinstall ${wrksrc}/libcxxabi/include/cxxabi.h 644 usr/include
+
+ # Install libunwind headers
+ vinstall ${wrksrc}/libunwind/include/__libunwind_config.h 644 usr/include
+ vinstall ${wrksrc}/libunwind/include/libunwind.h 644 usr/include
+ vinstall ${wrksrc}/libunwind/include/unwind.h 644 usr/include
+ vinstall ${wrksrc}/libunwind/include/mach-o/compact_unwind_encoding.h \
+ 644 usr/include/mach-o
+}
+
+clang-analyzer_package() {
+ pycompile_dirs="usr/share/scan-view"
+ depends="clang-${version}_${revision} python3 perl"
+ short_desc+=" - A source code analysis framework"
+ homepage="https://clang-analyzer.llvm.org/"
+ pkg_install() {
+ vmove "usr/bin/scan-*"
+ vmove "usr/libexec/*analyzer"
+ vmove "usr/share/scan-*"
+ vmove usr/share/man/man1/scan-build.1
+ }
+}
+
+clang-tools-extra_package() {
+ lib32disabled=yes
+ depends="clang-${version}_${revision} python3"
+ short_desc+=" - Extra Clang tools"
+ homepage="https://clang.llvm.org/extra/"
+ pkg_install() {
+ vmove usr/bin/clang-apply-replacements
+ vmove usr/bin/clang-doc
+ vmove usr/bin/clang-include-fixer
+ vmove usr/bin/clang-query
+ vmove usr/bin/clang-rename
+ vmove usr/bin/clang-reorder-fields
+ vmove usr/bin/clang-tidy
+ vmove usr/bin/clangd
+ vmove usr/bin/diagtool
+ vmove usr/bin/find-all-symbols
+ vmove usr/bin/hmaptool
+ vmove usr/bin/modularize
+ vmove usr/bin/pp-trace
+ vmove usr/bin/sancov
+ vmove usr/include/clang-tidy
+ vmove "usr/lib/libclangApplyReplacements*"
+ vmove "usr/lib/libclangDoc*"
+ vmove "usr/lib/libclangIncludeFixer*"
+ vmove "usr/lib/libclangReorderFields*"
+ vmove "usr/lib/libclangQuery*"
+ vmove "usr/lib/libclangTidy*"
+ vmove "usr/share/clang/*include-fixer*"
+ vmove "usr/share/clang/*rename*"
+ vmove "usr/share/clang/*tidy*"
+ vmove usr/share/doc/LLVM/clang-tools
+ vmove usr/share/man/man1/diagtool.1
+ vmove usr/share/man/man1/extraclangtools.1
+ }
+}
+
+clang_package() {
+ lib32disabled=yes
+ depends="libstdc++-devel libgcc-devel binutils ${XBPS_TARGET_LIBC}-devel
+ libclang-${version}_${revision}"
+ short_desc+=" - C language family frontend"
+ homepage="https://clang.llvm.org/"
+ pkg_install() {
+ vmove "usr/bin/*clang*"
+ vmove usr/bin/c-index-test
+ vmove usr/include/clang
+ vmove usr/include/clang-c
+ vmove usr/lib/clang
+ vmove usr/lib/cmake/clang
+ vmove "usr/lib/libclang*.a"
+ vmove "usr/lib/libclang*.so"
+ vmove usr/share/clang
+ vmove usr/share/doc/LLVM/clang
+ vmove usr/share/man/man1/clang.1
+ }
+}
+
+libclang_package() {
+ short_desc+=" - C frontend runtime library"
+ pkg_install() {
+ vmove "usr/lib/libclang.so.*"
+ }
+}
+
+libclang-cpp_package() {
+ short_desc+=" - C frontend runtime library (C++ interface)"
+ pkg_install() {
+ vmove "usr/lib/libclang-cpp.so.*"
+ }
+}
+
+lld_package() {
+ lib32disabled=yes
+ short_desc+=" - linker"
+ homepage="https://lld.llvm.org"
+ pkg_install() {
+ vmove usr/bin/ld.lld*
+ vmove usr/bin/ld64.lld*
+ vmove usr/bin/lld*
+ vmove usr/bin/wasm-ld
+ vmove usr/share/doc/LLVM/lld
+ }
+}
+
+lld-devel_package() {
+ lib32disabled=yes
+ short_desc+=" - linker - development files"
+ homepage="https://lld.llvm.org"
+ depends="lld>=${version}_${revision}"
+ pkg_install() {
+ vmove usr/include/lld
+ vmove usr/lib/cmake/lld
+ vmove "usr/lib/liblld*a"
+ }
+}
+
+lldb_package() {
+ lib32disabled=yes
+ depends+=" python3-six"
+ short_desc+=" - LLDB debugger"
+ homepage="https://lldb.llvm.org/"
+ pkg_install() {
+ vmove usr/bin/*lldb*
+ vmove usr/lib/liblldb*so.*
+ vmove /usr/lib/python*
+ }
+}
+
+lldb-devel_package() {
+ lib32disabled=yes
+ depends="lldb>=${version}_${revision}"
+ short_desc+=" - LLDB debugger - development files"
+ pkg_install() {
+ vmove usr/include/lldb
+ vmove "usr/lib/liblldb*.so"
+ }
+}
+
+llvm-libunwind_package() {
+ short_desc+=" - libunwind"
+ pkg_install() {
+ vmove "usr/lib/${XBPS_TRIPLET}/libunwind.so.*"
+ }
+}
+
+llvm-libunwind-devel_package() {
+ short_desc+=" - libunwind - development files"
+ depends="llvm-libunwind>=${version}_${revision}"
+ conflicts="libunwind-devel>=0"
+ pkg_install() {
+ vmove usr/include/mach-o
+ vmove "usr/include/*unwind*"
+ vmove "usr/lib/${XBPS_TRIPLET}/libunwind.a"
+ vmove "usr/lib/${XBPS_TRIPLET}/libunwind.so"
+ vmove usr/share/doc/LLVM/libunwind
+ }
+}
+
+libcxxabi_package() {
+ short_desc+=" - low level support for libc++"
+ pkg_install() {
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++abi.so.*"
+ }
+}
+
+libcxxabi-devel_package() {
+ short_desc+=" - low level support for libc++ - development files"
+ depends="libcxxabi>=${version}_${revision}"
+ pkg_install() {
+ vmove "usr/include/*cxxabi*"
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++abi.so"
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++abi.a"
+ }
+}
+
+libcxx_package() {
+ short_desc+=" - C++ standard library"
+ pkg_install() {
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++.so.*"
+ }
+}
+
+libcxx-devel_package() {
+ short_desc+=" - C++ standard library - development files"
+ depends="libcxx>=${version}_${revision}"
+ pkg_install() {
+ vmove usr/include/c++
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++.so"
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++.a"
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++experimental.a"
+ vmove usr/share/doc/LLVM/libcxx
+ }
+}
+
+libomp_package() {
+ short_desc+=" - Clang OpenMP support library"
+ pkg_install() {
+ vmove usr/lib/libarcher.so
+ vmove usr/lib/libomp.so
+ vmove usr/lib/libompd.so
+ vmove "usr/lib/libomptarget.rtl.*.so"
+ vmove "usr/lib/libomp*.so.*"
+ }
+}
+
+libomp-devel_package() {
+ short_desc+=" - Clang OpenMP support library - development files"
+ depends="libomp>=${version}_${revision}"
+ pkg_install() {
+ vmove "usr/include/omp*.h"
+ vmove "usr/lib/clang/${version}/include/omp*.h"
+ vmove "usr/lib/libarcher*"
+ vmove "usr/lib/libomp*.so"
+ vmove usr/lib/cmake/openmp
+ vmove usr/share/doc/LLVM/openmp
+ vmove usr/share/man/man1/llvmopenmp.1
+ }
+}
+
+libllvm15_package() {
+ short_desc+=" - runtime library"
+ pkg_install() {
+ vmove "usr/lib/libLLVM-*.so*"
+ }
+}
diff --git a/srcpkgs/llvm15/update b/srcpkgs/llvm15/update
new file mode 100644
index 000000000000..e95cf26b3586
--- /dev/null
+++ b/srcpkgs/llvm15/update
@@ -0,0 +1,3 @@
+site="https://github.com/llvm/llvm-project/releases"
+pattern="llvmorg-\K(\d+.){2}\d+(-rc\d+)?"
+ignore="*-rc*"
^ permalink raw reply [flat|nested] 96+ messages in thread
* Re: [PR PATCH] [Updated] [WIP] LLVM 15
2022-11-28 15:30 [PR PATCH] [WIP] LLVM 15 tranzystorek-io
` (20 preceding siblings ...)
2022-12-17 8:56 ` tranzystorek-io
@ 2022-12-17 9:00 ` tranzystorek-io
2022-12-17 9:09 ` tranzystorek-io
` (72 subsequent siblings)
94 siblings, 0 replies; 96+ messages in thread
From: tranzystorek-io @ 2022-12-17 9:00 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 502 bytes --]
There is an updated pull request by tranzystorek-io against master on the void-packages repository
https://github.com/tranzystorek-io/void-packages llvm15
https://github.com/void-linux/void-packages/pull/40821
[WIP] LLVM 15
[ci skip]
TODO:
- [ ] Adjust patches marked as `.patch.skip`
- [ ] Make libomp a shlib (change so file name and install a symlink)
- [ ] Avoid creating triplet dirs under /usr/
A patch file from https://github.com/void-linux/void-packages/pull/40821.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-llvm15-40821.patch --]
[-- Type: text/x-diff, Size: 55161 bytes --]
From b5ebe5cfe7ba9c658cda2026a6eac110dc11ba10 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Sun, 27 Nov 2022 22:59:45 +0100
Subject: [PATCH] llvm: update to 15.0.6
---
common/shlibs | 7 +-
srcpkgs/clang | 2 +-
srcpkgs/clang-analyzer | 2 +-
| 2 +-
srcpkgs/libclang | 2 +-
srcpkgs/libclang-cpp | 2 +-
srcpkgs/libcxx | 2 +-
srcpkgs/libcxx-devel | 2 +-
srcpkgs/libcxxabi | 2 +-
srcpkgs/libcxxabi-devel | 2 +-
srcpkgs/libllvm15 | 1 +
srcpkgs/libomp | 2 +-
srcpkgs/libomp-devel | 2 +-
srcpkgs/lld | 2 +-
srcpkgs/lld-devel | 2 +-
srcpkgs/lldb | 2 +-
srcpkgs/lldb-devel | 2 +-
srcpkgs/llvm-libunwind | 2 +-
srcpkgs/llvm-libunwind-devel | 2 +-
srcpkgs/llvm/template | 6 +-
.../llvm15/files/llvm-Config-llvm-config.h | 9 +
...clang-001-fix-unwind-chain-inclusion.patch | 44 ++
.../patches/clang-002-add-musl-triples.patch | 110 +++++
.../clang-003-ppc64-dynamic-linker-path.patch | 13 +
.../patches/clang-004-ppc64-musl-elfv2.patch | 48 ++
.../compiler-rt-sanitizer-ppc64-musl.patch | 35 ++
.../compiler-rt-xray-ppc64-musl.patch.skip | 62 +++
srcpkgs/llvm15/patches/libcxx-musl.patch | 26 ++
srcpkgs/llvm15/patches/libcxx-ppc.patch | 22 +
.../llvm15/patches/libcxx-ssp-nonshared.patch | 11 +
srcpkgs/llvm15/patches/libcxxabi-dl.patch | 25 +
.../llvm15/patches/libunwind-ppc32.patch.skip | 63 +++
srcpkgs/llvm15/patches/lldb-musl.patch | 40 ++
srcpkgs/llvm15/patches/llvm-001-musl.patch | 57 +++
.../patches/llvm-002-musl-ppc64-elfv2.patch | 30 ++
.../patches/llvm-003-ppc-secureplt.patch | 11 +
.../patches/llvm-004-override-opt.patch | 18 +
.../llvm15/patches/llvm-005-ppc-bigpic.patch | 36 ++
.../patches/llvm-006-aarch64-mf_exec.patch | 25 +
srcpkgs/llvm15/template | 434 ++++++++++++++++++
srcpkgs/llvm15/update | 3 +
41 files changed, 1147 insertions(+), 23 deletions(-)
create mode 120000 srcpkgs/libllvm15
create mode 100644 srcpkgs/llvm15/files/llvm-Config-llvm-config.h
create mode 100644 srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch
create mode 100644 srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch
create mode 100644 srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch
create mode 100644 srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch
create mode 100644 srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch
create mode 100644 srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip
create mode 100644 srcpkgs/llvm15/patches/libcxx-musl.patch
create mode 100644 srcpkgs/llvm15/patches/libcxx-ppc.patch
create mode 100644 srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch
create mode 100644 srcpkgs/llvm15/patches/libcxxabi-dl.patch
create mode 100644 srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip
create mode 100644 srcpkgs/llvm15/patches/lldb-musl.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-001-musl.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-004-override-opt.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch
create mode 100644 srcpkgs/llvm15/template
create mode 100644 srcpkgs/llvm15/update
diff --git a/common/shlibs b/common/shlibs
index ba5c89ee3bad..fe79d476f1dd 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -982,11 +982,12 @@ 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.12 lldb-12.0.0_1
-libclang.so.12 libclang-12.0.0_1
-libclang-cpp.so.12 libclang-cpp-12.0.0_1
+liblldb.so.15 lldb-15.0.5_1
+libclang.so.15 libclang-15.0.5_1
+libclang-cpp.so.15 libclang-cpp-15.0.5_1
libLLVM-11.so libllvm11-11.0.0_1
libLLVM-12.so libllvm12-12.0.0_1
+libLLVM-15.so libllvm15-15.0.5_1
libisofs.so.6 libisofs-0.6.24_1
libmpack.so.0 libmpack-1.0.5_1
libGeoIP.so.1 libgeoip-1.4.8_1
diff --git a/srcpkgs/clang b/srcpkgs/clang
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/clang
+++ b/srcpkgs/clang
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/clang-analyzer b/srcpkgs/clang-analyzer
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/clang-analyzer
+++ b/srcpkgs/clang-analyzer
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
--git a/srcpkgs/clang-tools-extra b/srcpkgs/clang-tools-extra
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/clang-tools-extra
+++ b/srcpkgs/clang-tools-extra
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libclang b/srcpkgs/libclang
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libclang
+++ b/srcpkgs/libclang
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libclang-cpp b/srcpkgs/libclang-cpp
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libclang-cpp
+++ b/srcpkgs/libclang-cpp
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxx b/srcpkgs/libcxx
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxx
+++ b/srcpkgs/libcxx
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxx-devel b/srcpkgs/libcxx-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxx-devel
+++ b/srcpkgs/libcxx-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxxabi b/srcpkgs/libcxxabi
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxxabi
+++ b/srcpkgs/libcxxabi
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxxabi-devel b/srcpkgs/libcxxabi-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxxabi-devel
+++ b/srcpkgs/libcxxabi-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libllvm15 b/srcpkgs/libllvm15
new file mode 120000
index 000000000000..ad57a969b9f9
--- /dev/null
+++ b/srcpkgs/libllvm15
@@ -0,0 +1 @@
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libomp b/srcpkgs/libomp
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libomp
+++ b/srcpkgs/libomp
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libomp-devel b/srcpkgs/libomp-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libomp-devel
+++ b/srcpkgs/libomp-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lld b/srcpkgs/lld
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lld
+++ b/srcpkgs/lld
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lld-devel b/srcpkgs/lld-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lld-devel
+++ b/srcpkgs/lld-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lldb b/srcpkgs/lldb
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lldb
+++ b/srcpkgs/lldb
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lldb-devel b/srcpkgs/lldb-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lldb-devel
+++ b/srcpkgs/lldb-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm-libunwind b/srcpkgs/llvm-libunwind
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/llvm-libunwind
+++ b/srcpkgs/llvm-libunwind
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm-libunwind-devel b/srcpkgs/llvm-libunwind-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/llvm-libunwind-devel
+++ b/srcpkgs/llvm-libunwind-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm/template b/srcpkgs/llvm/template
index a92db6f94f9f..3e050c14d38f 100644
--- a/srcpkgs/llvm/template
+++ b/srcpkgs/llvm/template
@@ -1,11 +1,11 @@
# Template file for 'llvm'
pkgname=llvm
-version=12.0.0
+version=15.0.0
revision=1
build_style=meta
-depends="llvm12"
-replaces="llvm11>=0 llvm10>=0 llvm9>=0 llvm8>=0 llvm7>=0 llvm6.0>=0 llvm3.9>=0"
+depends="llvm15"
short_desc="LLVM meta package"
maintainer="Enno Boland <gottox@voidlinux.org>"
license="Public Domain"
homepage="https://www.voidlinux.org"
+replaces="llvm12>=0 llvm11>=0 llvm10>=0 llvm9>=0 llvm8>=0 llvm7>=0 llvm6.0>=0 llvm3.9>=0"
diff --git a/srcpkgs/llvm15/files/llvm-Config-llvm-config.h b/srcpkgs/llvm15/files/llvm-Config-llvm-config.h
new file mode 100644
index 000000000000..2fa08c9be696
--- /dev/null
+++ b/srcpkgs/llvm15/files/llvm-Config-llvm-config.h
@@ -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
diff --git a/srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch b/srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch
new file mode 100644
index 000000000000..e4eaa7783e7a
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch
@@ -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
diff --git a/srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch b/srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch
new file mode 100644
index 000000000000..25688d40dbc2
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch
@@ -0,0 +1,110 @@
+--- a/clang/lib/Driver/ToolChains/Gnu.cpp
++++ b/clang/lib/Driver/ToolChains/Gnu.cpp
+@@ -2086,7 +2086,8 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
+ static const char *const ARMHFTriples[] = {"arm-linux-gnueabihf",
+ "armv7hl-redhat-linux-gnueabi",
+ "armv6hl-suse-linux-gnueabi",
+- "armv7hl-suse-linux-gnueabi"};
++ "armv7hl-suse-linux-gnueabi",
++ "armv7l-linux-gnueabihf"};
+ static const char *const ARMebLibDirs[] = {"/lib"};
+ static const char *const ARMebTriples[] = {"armeb-linux-gnueabi",
+ "armeb-linux-androideabi"};
+@@ -2153,8 +2154,7 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
+ "powerpc64-suse-linux", "powerpc-montavista-linuxspe"};
+ static const char *const PPCLELibDirs[] = {"/lib32", "/lib"};
+ static const char *const PPCLETriples[] = {"powerpcle-linux-gnu",
+- "powerpcle-unknown-linux-gnu",
+- "powerpcle-linux-musl"};
++ "powerpcle-unknown-linux-gnu"};
+
+ static const char *const PPC64LibDirs[] = {"/lib64", "/lib"};
+ static const char *const PPC64Triples[] = {
+@@ -2235,6 +2235,87 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
+ return;
+ }
+
++ if (TargetTriple.isMusl()) {
++ static const char *const AArch64MuslTriples[] = {"aarch64-linux-musl"};
++ static const char *const ARMHFMuslTriples[] = {
++ "arm-linux-musleabihf", "armv7l-linux-musleabihf"
++ };
++ static const char *const ARMMuslTriples[] = {"arm-linux-musleabi"};
++ static const char *const X86_64MuslTriples[] = {"x86_64-linux-musl"};
++ static const char *const X86MuslTriples[] = {"i686-linux-musl"};
++ static const char *const MIPSMuslTriples[] = {
++ "mips-linux-musl", "mipsel-linux-musl",
++ "mipsel-linux-muslhf", "mips-linux-muslhf"
++ };
++ static const char *const PPCMuslTriples[] = {"powerpc-linux-musl"};
++ static const char *const PPCLEMuslTriples[] = {"powerpcle-linux-musl"};
++ static const char *const PPC64MuslTriples[] = {"powerpc64-linux-musl"};
++ static const char *const PPC64LEMuslTriples[] = {"powerpc64le-linux-musl"};
++
++ switch (TargetTriple.getArch()) {
++ case llvm::Triple::aarch64:
++ LibDirs.append(begin(AArch64LibDirs), end(AArch64LibDirs));
++ TripleAliases.append(begin(AArch64MuslTriples), end(AArch64MuslTriples));
++ BiarchLibDirs.append(begin(AArch64LibDirs), end(AArch64LibDirs));
++ BiarchTripleAliases.append(begin(AArch64MuslTriples), end(AArch64MuslTriples));
++ break;
++ case llvm::Triple::arm:
++ LibDirs.append(begin(ARMLibDirs), end(ARMLibDirs));
++ if (TargetTriple.getEnvironment() == llvm::Triple::MuslEABIHF) {
++ TripleAliases.append(begin(ARMHFMuslTriples), end(ARMHFMuslTriples));
++ } else {
++ TripleAliases.append(begin(ARMMuslTriples), end(ARMMuslTriples));
++ }
++ break;
++ case llvm::Triple::x86_64:
++ LibDirs.append(begin(X86_64LibDirs), end(X86_64LibDirs));
++ TripleAliases.append(begin(X86_64MuslTriples), end(X86_64MuslTriples));
++ BiarchLibDirs.append(begin(X86LibDirs), end(X86LibDirs));
++ BiarchTripleAliases.append(begin(X86MuslTriples), end(X86MuslTriples));
++ break;
++ case llvm::Triple::x86:
++ LibDirs.append(begin(X86LibDirs), end(X86LibDirs));
++ TripleAliases.append(begin(X86MuslTriples), end(X86MuslTriples));
++ BiarchLibDirs.append(begin(X86_64LibDirs), end(X86_64LibDirs));
++ BiarchTripleAliases.append(begin(X86_64MuslTriples), end(X86_64MuslTriples));
++ break;
++ case llvm::Triple::mips:
++ LibDirs.append(begin(MIPSLibDirs), end(MIPSLibDirs));
++ TripleAliases.append(begin(MIPSMuslTriples), end(MIPSMuslTriples));
++ break;
++ case llvm::Triple::ppc:
++ LibDirs.append(begin(PPCLibDirs), end(PPCLibDirs));
++ TripleAliases.append(begin(PPCMuslTriples), end(PPCMuslTriples));
++ BiarchLibDirs.append(begin(PPC64LibDirs), end(PPC64LibDirs));
++ BiarchTripleAliases.append(begin(PPC64MuslTriples), end(PPC64MuslTriples));
++ break;
++ case llvm::Triple::ppcle:
++ LibDirs.append(begin(PPCLELibDirs), end(PPCLELibDirs));
++ TripleAliases.append(begin(PPCLEMuslTriples), end(PPCLEMuslTriples));
++ BiarchLibDirs.append(begin(PPC64LELibDirs), end(PPC64LELibDirs));
++ BiarchTripleAliases.append(begin(PPC64LEMuslTriples), end(PPC64LEMuslTriples));
++ break;
++ case llvm::Triple::ppc64:
++ LibDirs.append(begin(PPC64LibDirs), end(PPC64LibDirs));
++ TripleAliases.append(begin(PPC64MuslTriples), end(PPC64MuslTriples));
++ BiarchLibDirs.append(begin(PPCLibDirs), end(PPCLibDirs));
++ BiarchTripleAliases.append(begin(PPCMuslTriples), end(PPCMuslTriples));
++ break;
++ case llvm::Triple::ppc64le:
++ LibDirs.append(begin(PPC64LELibDirs), end(PPC64LELibDirs));
++ TripleAliases.append(begin(PPC64LEMuslTriples), end(PPC64LEMuslTriples));
++ BiarchLibDirs.append(begin(PPCLELibDirs), end(PPCLELibDirs));
++ BiarchTripleAliases.append(begin(PPCLEMuslTriples), end(PPCLEMuslTriples));
++ break;
++ default:
++ break;
++ }
++ TripleAliases.push_back(TargetTriple.str());
++ if (TargetTriple.str() != BiarchTriple.str())
++ BiarchTripleAliases.push_back(BiarchTriple.str());
++ return;
++ }
++
+ // Android targets should not use GNU/Linux tools or libraries.
+ if (TargetTriple.isAndroid()) {
+ static const char *const AArch64AndroidTriples[] = {
diff --git a/srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch b/srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch
new file mode 100644
index 000000000000..4ad6412d1e6c
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch
@@ -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 =
diff --git a/srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch b/srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch
new file mode 100644
index 000000000000..21fc8003c5f1
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch
@@ -0,0 +1,48 @@
+--- a/clang/lib/Basic/Targets/PPC.h
++++ b/clang/lib/Basic/Targets/PPC.h
+@@ -415,11 +415,10 @@ public:
+ LongDoubleFormat = &llvm::APFloat::IEEEdouble();
+ } else if ((Triple.getArch() == llvm::Triple::ppc64le)) {
+ DataLayout = "e-m:e-i64:64-n32:64";
+- ABI = "elfv2";
+ } else {
+ DataLayout = "E-m:e-i64:64-n32:64";
+- ABI = "elfv1";
+ }
++ ABI = "elfv2";
+
+ if (Triple.isOSFreeBSD() || Triple.isOSOpenBSD() || Triple.isMusl()) {
+ LongDoubleWidth = LongDoubleAlign = 64;
+--- a/clang/lib/CodeGen/TargetInfo.cpp
++++ b/clang/lib/CodeGen/TargetInfo.cpp
+@@ -10927,9 +10927,9 @@ const TargetCodeGenInfo &CodeGenModule::getTargetCodeGenInfo() {
+ return SetCGInfo(new AIXTargetCodeGenInfo(Types, /*Is64Bit*/ true));
+
+ if (Triple.isOSBinFormatELF()) {
+- PPC64_SVR4_ABIInfo::ABIKind Kind = PPC64_SVR4_ABIInfo::ELFv1;
+- if (getTarget().getABI() == "elfv2")
+- Kind = PPC64_SVR4_ABIInfo::ELFv2;
++ PPC64_SVR4_ABIInfo::ABIKind Kind = PPC64_SVR4_ABIInfo::ELFv2;
++ if (getTarget().getABI() == "elfv1")
++ Kind = PPC64_SVR4_ABIInfo::ELFv1;
+ bool IsSoftFloat = CodeGenOpts.FloatABI == "soft";
+
+ return SetCGInfo(
+--- a/clang/lib/Driver/ToolChains/Clang.cpp
++++ b/clang/lib/Driver/ToolChains/Clang.cpp
+@@ -1920,14 +1920,7 @@ void Clang::AddPPCTargetArgs(const ArgList &Args,
+ const llvm::Triple &T = getToolChain().getTriple();
+ if (T.isOSBinFormatELF()) {
+ switch (getToolChain().getArch()) {
+- case llvm::Triple::ppc64: {
+- if ((T.isOSFreeBSD() && T.getOSMajorVersion() >= 13) ||
+- T.isOSOpenBSD() || T.isMusl())
+- ABIName = "elfv2";
+- else
+- ABIName = "elfv1";
+- break;
+- }
++ case llvm::Triple::ppc64:
+ case llvm::Triple::ppc64le:
+ ABIName = "elfv2";
+ break;
diff --git a/srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch b/srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch
new file mode 100644
index 000000000000..360cfc1ba7f1
--- /dev/null
+++ b/srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch
@@ -0,0 +1,35 @@
+--- 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__) || SANITIZER_RISCV64
++ defined(__hexagon__) || defined(__powerpc__) || 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_ANDROID
++#if (defined(__aarch64__) || defined(__powerpc__) || SANITIZER_RISCV64) && !SANITIZER_ANDROID
+ // GLIBC 2.20+ sys/user does not include asm/ptrace.h
+ # include <asm/ptrace.h>
+ #endif
diff --git a/srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip b/srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip
new file mode 100644
index 000000000000..d0b61c80c897
--- /dev/null
+++ b/srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip
@@ -0,0 +1,62 @@
+--- a/compiler-rt/lib/xray/xray_powerpc64.inc
++++ b/compiler-rt/lib/xray/xray_powerpc64.inc
+@@ -12,7 +12,13 @@
+
+ #include <cstdint>
+ #include <mutex>
++#ifdef __GLIBC__
+ #include <sys/platform/ppc.h>
++#else
++#include <cctype>
++#include <cstring>
++#include <cstdlib>
++#endif
+
+ #include "xray_defs.h"
+
+@@ -20,13 +26,45 @@ namespace __xray {
+
+ ALWAYS_INLINE uint64_t readTSC(uint8_t &CPU) XRAY_NEVER_INSTRUMENT {
+ CPU = 0;
++#ifdef __GLIBC__
+ return __ppc_get_timebase();
++#else
++ return __builtin_ppc_get_timebase();
++#endif
+ }
+
+ inline uint64_t getTSCFrequency() XRAY_NEVER_INSTRUMENT {
+ static std::mutex M;
+ std::lock_guard<std::mutex> Guard(M);
++#ifdef __GLIBC__
+ return __ppc_get_timebase_freq();
++#else
++ /* FIXME: a less dirty implementation? */
++ static uint64_t base;
++ if (!base) {
++ FILE *f = fopen("/proc/cpuinfo", "rb");
++ if (f) {
++ ssize_t nr;
++ /* virtually always big enough to hold the line */
++ char buf[512];
++ while (fgets(buf, sizeof(buf), f)) {
++ char *ret = strstr(buf, "timebase");
++ if (!ret) {
++ continue;
++ }
++ ret += sizeof("timebase") - 1;
++ ret = strchr(ret, ':');
++ if (!ret) {
++ continue;
++ }
++ base = strtoul(ret + 1, nullptr, 10);
++ break;
++ }
++ fclose(f);
++ }
++ }
++ return base;
++#endif
+ }
+
+ inline bool probeRequiredCPUFeatures() XRAY_NEVER_INSTRUMENT {
diff --git a/srcpkgs/llvm15/patches/libcxx-musl.patch b/srcpkgs/llvm15/patches/libcxx-musl.patch
new file mode 100644
index 000000000000..bbd31ffc2cb1
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxx-musl.patch
@@ -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,
+ typename remove_reference<decltype(errno)>::type __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
+ typename remove_reference<decltype(errno)>::type __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,
+ typename remove_reference<decltype(errno)>::type __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
+ typename remove_reference<decltype(errno)>::type __current_errno = errno;
+ if (__current_errno == 0)
+ errno = __save_errno;
diff --git a/srcpkgs/llvm15/patches/libcxx-ppc.patch b/srcpkgs/llvm15/patches/libcxx-ppc.patch
new file mode 100644
index 000000000000..7a92f8004e1c
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxx-ppc.patch
@@ -0,0 +1,22 @@
+This ensures `is_iec559` is defined correctly under all long double ABIs,
+including musl and its 64-bit long double. Also, `__ppc__` or `__ppc64__`
+is not defined on gcc.
+
+--- a/libcxx/include/limits
++++ b/libcxx/include/limits
+@@ -426,8 +426,14 @@ protected:
+ _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type signaling_NaN() _NOEXCEPT {return __builtin_nansl("");}
+ _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type denorm_min() _NOEXCEPT {return __LDBL_DENORM_MIN__;}
+
+-#if (defined(__ppc__) || defined(__ppc64__))
++#if defined(__powerpc__) || defined(__powerpc64__)
++#if (__LDBL_MAX_EXP__ > __DBL_MAX_EXP__) || (__LDBL_MANT_DIG__ == __DBL_MANT_DIG__)
++ /* IEEE 754 quadruple or double precision */
++ static _LIBCPP_CONSTEXPR const bool is_iec559 = true;
++#else
++ /* 128-bit IBM double-double */
+ static _LIBCPP_CONSTEXPR const bool is_iec559 = false;
++#endif
+ #else
+ static _LIBCPP_CONSTEXPR const bool is_iec559 = true;
+ #endif
diff --git a/srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch b/srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch
new file mode 100644
index 000000000000..70292beb2fcd
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch
@@ -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()
diff --git a/srcpkgs/llvm15/patches/libcxxabi-dl.patch b/srcpkgs/llvm15/patches/libcxxabi-dl.patch
new file mode 100644
index 000000000000..3a15f9db8c98
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxxabi-dl.patch
@@ -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 @@
+ target_link_libraries(${target} PRIVATE m)
+ endif()
+
++ if (LIBCXX_HAS_C_LIB)
++ target_link_libraries(${target} PRIVATE dl)
++ endif()
++
+ if (LIBCXX_HAS_RT_LIB)
+ target_link_libraries(${target} PRIVATE rt)
+ endif()
diff --git a/srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip b/srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip
new file mode 100644
index 000000000000..74aa7576ecf9
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip
@@ -0,0 +1,63 @@
+This fixes build at least with gcc9 which does not define `__ppc__`.
+
+--- a/libunwind/include/__libunwind_config.h
++++ b/libunwind/include/__libunwind_config.h
+@@ -49,7 +49,7 @@
+ # define _LIBUNWIND_CONTEXT_SIZE 167
+ # define _LIBUNWIND_CURSOR_SIZE 179
+ # define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_PPC64
+-# elif defined(__ppc__)
++# elif defined(__powerpc__)
+ # define _LIBUNWIND_TARGET_PPC 1
+ # define _LIBUNWIND_CONTEXT_SIZE 117
+ # define _LIBUNWIND_CURSOR_SIZE 124
+--- a/libunwind/src/UnwindRegistersRestore.S
++++ b/libunwind/src/UnwindRegistersRestore.S
+@@ -392,7 +392,7 @@ Lnovec:
+ PPC64_LR(3)
+ bctr
+
+-#elif defined(__ppc__)
++#elif defined(__powerpc__)
+
+ DEFINE_LIBUNWIND_FUNCTION(_ZN9libunwind13Registers_ppc6jumptoEv)
+ //
+--- a/libunwind/src/UnwindRegistersSave.S
++++ b/libunwind/src/UnwindRegistersSave.S
+@@ -554,7 +554,7 @@ DEFINE_LIBUNWIND_FUNCTION(__unw_getcontext)
+ blr
+
+
+-#elif defined(__ppc__)
++#elif defined(__powerpc__)
+
+ //
+ // extern int unw_getcontext(unw_context_t* thread_state)
+--- a/libunwind/src/config.h
++++ b/libunwind/src/config.h
+@@ -95,12 +95,12 @@
+ #define _LIBUNWIND_BUILD_SJLJ_APIS
+ #endif
+
+-#if defined(__i386__) || defined(__x86_64__) || defined(__ppc__) || defined(__ppc64__) || defined(__powerpc64__)
++#if defined(__i386__) || defined(__x86_64__) || defined(__powerpc__) || defined(__powerpc64__)
+ #define _LIBUNWIND_SUPPORT_FRAME_APIS
+ #endif
+
+ #if defined(__i386__) || defined(__x86_64__) || \
+- defined(__ppc__) || defined(__ppc64__) || defined(__powerpc64__) || \
++ defined(__powerpc__) || defined(__powerpc64__) || \
+ (!defined(__APPLE__) && defined(__arm__)) || \
+ (defined(__arm64__) || defined(__aarch64__)) || \
+ defined(__mips__)
+--- a/libunwind/src/libunwind.cpp
++++ b/libunwind/src/libunwind.cpp
+@@ -42,7 +42,7 @@ _LIBUNWIND_HIDDEN int __unw_init_local(unw_cursor_t *cursor,
+ # define REGISTER_KIND Registers_x86_64
+ #elif defined(__powerpc64__)
+ # define REGISTER_KIND Registers_ppc64
+-#elif defined(__ppc__)
++#elif defined(__powerpc__)
+ # define REGISTER_KIND Registers_ppc
+ #elif defined(__aarch64__)
+ # define REGISTER_KIND Registers_arm64
diff --git a/srcpkgs/llvm15/patches/lldb-musl.patch b/srcpkgs/llvm15/patches/lldb-musl.patch
new file mode 100644
index 000000000000..026c5e1e61ba
--- /dev/null
+++ b/srcpkgs/llvm15/patches/lldb-musl.patch
@@ -0,0 +1,40 @@
+--- a/lldb/source/Plugins/Process/Linux/Procfs.h
++++ b/lldb/source/Plugins/Process/Linux/Procfs.h
+@@ -10,6 +10,7 @@
+ // sys/procfs.h on Android/Linux for all supported architectures.
+
+ #include <sys/ptrace.h>
++#include <asm/ptrace.h>
+
+ #include "lldb/lldb-types.h"
+
+@@ -17,23 +18,13 @@
+
+ #include <vector>
+
+-#ifdef __ANDROID__
+-#if defined(__arm64__) || defined(__aarch64__)
+-typedef unsigned long elf_greg_t;
+-typedef elf_greg_t
+- elf_gregset_t[(sizeof(struct user_pt_regs) / sizeof(elf_greg_t))];
+-typedef struct user_fpsimd_state elf_fpregset_t;
+-#ifndef NT_FPREGSET
+-#define NT_FPREGSET NT_PRFPREG
+-#endif // NT_FPREGSET
+-#elif defined(__mips__)
+-#ifndef NT_FPREGSET
+-#define NT_FPREGSET NT_PRFPREG
+-#endif // NT_FPREGSET
+-#endif
+-#else // __ANDROID__
++#if !defined(__GLIBC__) && defined(__powerpc__)
++#define pt_regs musl_pt_regs
++#include <sys/procfs.h>
++#undef pt_regs
++#else
+ #include <sys/procfs.h>
+-#endif // __ANDROID__
++#endif
+
+ namespace lldb_private {
+ namespace process_linux {
diff --git a/srcpkgs/llvm15/patches/llvm-001-musl.patch b/srcpkgs/llvm15/patches/llvm-001-musl.patch
new file mode 100644
index 000000000000..f2a3f8d62813
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-001-musl.patch
@@ -0,0 +1,57 @@
+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;
+diff --git a/lib/Support/Unix/DynamicLibrary.inc b/lib/Support/Unix/DynamicLibrary.inc
+index a2a37996..2f86c470 100644
+--- a/llvm/lib/Support/Unix/DynamicLibrary.inc
++++ b/llvm/lib/Support/Unix/DynamicLibrary.inc
+@@ -102,7 +102,7 @@ static void *DoSearch(const char* SymbolName) {
+
+ // This macro returns the address of a well-known, explicit symbol
+ #define EXPLICIT_SYMBOL(SYM) \
+- if (!strcmp(SymbolName, #SYM)) return &SYM
++ if (!strcmp(SymbolName, #SYM)) return (void *)&SYM
+
+ // Under glibc we have a weird situation. The stderr/out/in symbols are both
+ // macros and global variables because of standards requirements. So, we
+diff --git a/utils/unittest/googletest/src/gtest.cc b/utils/unittest/googletest/src/gtest.cc
+index d882ab2e..f1fb12d0 100644
+--- a/llvm/utils/unittest/googletest/src/gtest.cc
++++ b/llvm/utils/unittest/googletest/src/gtest.cc
+@@ -128,6 +128,7 @@
+
+ #if GTEST_CAN_STREAM_RESULTS_
+ # include <arpa/inet.h> // NOLINT
++# include <sys/socket.h> // NOLINT
+ # include <netdb.h> // NOLINT
+ # include <sys/socket.h> // NOLINT
+ # include <sys/types.h> // NOLINT
diff --git a/srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch b/srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch
new file mode 100644
index 000000000000..0071d964bd37
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch
@@ -0,0 +1,30 @@
+This patches LLVM to use ELFv2 on ppc64 unconditionally unless overridden. We
+need this because unlike most distros we use ELFv2 for both glibc and musl
+on big endian ppc64.
+
+diff --git a/lib/Target/PowerPC/PPCTargetMachine.cpp b/lib/Target/PowerPC/PPCTargetMachine.cpp
+index 0634833e..b7cbc2e7 100644
+--- a/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp
++++ b/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp
+@@ -222,9 +222,8 @@ static PPCTargetMachine::PPCABI computeTargetABI(const Triple &TT,
+
+ switch (TT.getArch()) {
+ case Triple::ppc64le:
+- return PPCTargetMachine::PPC_ABI_ELFv2;
+ case Triple::ppc64:
+- return PPCTargetMachine::PPC_ABI_ELFv1;
++ return PPCTargetMachine::PPC_ABI_ELFv2;
+ default:
+ return PPCTargetMachine::PPC_ABI_UNKNOWN;
+ }
+diff --git a/test/CodeGen/PowerPC/ppc64-elf-abi.ll b/test/CodeGen/PowerPC/ppc64-elf-abi.ll
+index 8b1cf6b5..296a2afa 100644
+--- a/llvm/test/CodeGen/PowerPC/ppc64-elf-abi.ll
++++ b/llvm/test/CodeGen/PowerPC/ppc64-elf-abi.ll
+@@ -1,4 +1,5 @@
+-; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv1
++; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv2
++; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-musl < %s | FileCheck %s -check-prefix=CHECK-ELFv2
+ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu -target-abi elfv1 < %s | FileCheck %s -check-prefix=CHECK-ELFv1
+ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu -target-abi elfv2 < %s | FileCheck %s -check-prefix=CHECK-ELFv2
+ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv2
diff --git a/srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch b/srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch
new file mode 100644
index 000000000000..b5d15974375d
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch
@@ -0,0 +1,11 @@
+--- a/llvm/lib/Target/PowerPC/PPCSubtarget.cpp
++++ b/llvm/lib/Target/PowerPC/PPCSubtarget.cpp
+@@ -165,7 +165,7 @@ void PPCSubtarget::initSubtargetFeatures(StringRef CPU, StringRef FS) {
+
+ if ((TargetTriple.isOSFreeBSD() && TargetTriple.getOSMajorVersion() >= 13) ||
+ TargetTriple.isOSNetBSD() || TargetTriple.isOSOpenBSD() ||
+- TargetTriple.isMusl())
++ isTargetLinux())
+ SecurePlt = true;
+
+ if (HasSPE && IsPPC64)
diff --git a/srcpkgs/llvm15/patches/llvm-004-override-opt.patch b/srcpkgs/llvm15/patches/llvm-004-override-opt.patch
new file mode 100644
index 000000000000..51d0e4b31b32
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-004-override-opt.patch
@@ -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)
diff --git a/srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch b/srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch
new file mode 100644
index 000000000000..d332687b9d92
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch
@@ -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);
diff --git a/srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch b/srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch
new file mode 100644
index 000000000000..a00abd216665
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch
@@ -0,0 +1,25 @@
+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__) || defined (__ppc__) || \
+- defined(_POWER) || defined(_ARCH_PPC))
++ defined(_POWER) || defined(_ARCH_PPC) || (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
diff --git a/srcpkgs/llvm15/template b/srcpkgs/llvm15/template
new file mode 100644
index 000000000000..5ed8be136668
--- /dev/null
+++ b/srcpkgs/llvm15/template
@@ -0,0 +1,434 @@
+# Template file for 'llvm15'
+pkgname=llvm15
+version=15.0.6
+revision=1
+build_wrksrc=llvm
+build_style=cmake
+configure_args="
+ -DCMAKE_BUILD_TYPE=Release -Wno-dev
+ -DENABLE_LINKER_BUILD_ID=YES
+ -DLLDB_USE_SYSTEM_SIX=YES
+ -DLIBCXX_CXX_ABI=libcxxabi
+ -DLIBCXX_ENABLE_STATIC_ABI_LIBRARY=YES
+ -DLIBCXXABI_USE_LLVM_UNWINDER=YES
+ -DLIBCXXABI_ENABLE_STATIC_UNWINDER=YES
+ -DLIBOMP_ENABLE_SHARED=YES
+ -DLIBOMP_INSTALL_ALIASES=NO
+ -DLLVM_INCLUDE_DOCS=YES
+ -DLLVM_BUILD_DOCS=YES
+ -DLLVM_ENABLE_SPHINX=YES
+ -DSPHINX_WARNINGS_AS_ERRORS=NO
+ -DLLVM_INSTALL_UTILS=YES
+ -DLLVM_BUILD_LLVM_DYLIB=YES
+ -DLLVM_LINK_LLVM_DYLIB=YES
+ -DLLVM_ENABLE_RTTI=YES
+ -DLLVM_ENABLE_FFI=YES
+ -DLLVM_BINUTILS_INCDIR=/usr/include"
+hostmakedepends="perl python3 zlib-devel libffi-devel swig python3-Sphinx
+ python3-recommonmark python3-sphinx-automodapi"
+makedepends="python3-devel zlib-devel elfutils-devel libffi-devel libedit-devel
+ libxml2-devel binutils-devel libatomic-devel"
+depends="libllvm15>=${version}_${revision}"
+short_desc="Low Level Virtual Machine"
+maintainer="Orphaned <orphan@voidlinux.org>"
+license="Apache-2.0"
+homepage="https://www.llvm.org"
+distfiles="https://github.com/llvm/llvm-project/releases/download/llvmorg-${version}/llvm-project-${version}.src.tar.xz"
+checksum=9d53ad04dc60cb7b30e810faf64c5ab8157dadef46c8766f67f286238256ff92
+lib32disabled=yes
+python_version=3
+
+if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
+ configure_args+=" -DLIBCXX_HAS_MUSL_LIBC=YES"
+ makedepends+=" libexecinfo-devel"
+ depends+=" libexecinfo-devel"
+fi
+
+# "operand out of range" assembler failures
+case "$XBPS_TARGET_MACHINE" in
+ ppc64*) ;;
+ ppc*) configure_args+=" -DCLANG_ENABLE_CLANGD=OFF" ;;
+esac
+
+_enabled_projects="clang;clang-tools-extra;compiler-rt;libcxx;libcxxabi;libunwind;lld"
+
+_lldb_enable=yes
+_libomp_enable=no
+
+case "$XBPS_TARGET_MACHINE" in
+ ppc64le*) ;;
+ ppc*|i686*) _lldb_enable=no ;;
+esac
+
+case "$XBPS_TARGET_MACHINE" in
+ x86_64*|aarch64*|ppc64*) _libomp_enable=yes;;
+esac
+
+subpackages="clang-tools-extra"
+
+# must go before clang
+if [ "$_libomp_enable" = "yes" ]; then
+ _enabled_projects+=";openmp"
+ subpackages+=" libomp libomp-devel"
+ # because of cmake nonsense referencing libomptarget.so.*
+ depends+=" libomp>=${version}_${revision}"
+fi
+
+subpackages+=" clang clang-analyzer libclang libclang-cpp
+ llvm-libunwind llvm-libunwind-devel libcxx libcxx-devel
+ libcxxabi libcxxabi-devel libllvm15"
+
+if [ "$_lldb_enable" = "yes" ]; then
+ # XXX fails to cross compile due to python
+ _enabled_projects+=";lldb"
+ subpackages+=" lldb lldb-devel"
+fi
+
+subpackages+=" lld lld-devel"
+
+configure_args+=" -DLLVM_ENABLE_PROJECTS=${_enabled_projects}"
+
+post_patch() {
+ if [ "$_lldb_enable" = "yes" ]; then
+ if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
+ vsed -i 's|__ptrace_request|int|g' \
+ ${wrksrc}/lldb/source/Plugins/Process/Linux/NativeProcessLinux.cpp
+ fi
+ # disable docs for lldb as they fail to generate
+ vsed -i '/add_subdirectory(docs)/d' \
+ ${wrksrc}/lldb/CMakeLists.txt
+ fi
+
+ # update config.guess for better platform detection
+ cp $XBPS_COMMONDIR/environment/configure/automake/config.guess \
+ ${wrksrc}/llvm/cmake
+
+ # fix linker failures on some archs
+ vsed -i 's,check_library_exists(gcc_s .*,set(LIBCXXABI_HAS_GCC_S_LIB ON),' \
+ ${wrksrc}/libcxxabi/cmake/config-ix.cmake
+ vsed -i 's,check_library_exists(gcc .*,set(LIBCXXABI_HAS_GCC_LIB ON),' \
+ ${wrksrc}/libcxxabi/cmake/config-ix.cmake
+
+ # need libssp_nonshared on some musl platforms (because of nodefaultlibs)
+ case "$XBPS_TARGET_MACHINE" in
+ ppc64*) ;;
+ ppc*-musl|i686-musl|mips*-musl)
+ vsed -i 's,^# Setup flags.$,add_library_flags(ssp_nonshared),' \
+ ${wrksrc}/libunwind/src/CMakeLists.txt
+ vsed -i 's,^# Setup flags.$,add_library_flags(ssp_nonshared),' \
+ ${wrksrc}/libcxxabi/src/CMakeLists.txt
+ vsed -i 's,#ssp,,' ${wrksrc}/libcxx/CMakeLists.txt
+ ;;
+ esac
+
+ case "$XBPS_TARGET_MACHINE" in
+ x86_64-musl) # some sanitizer currently only on x86_64 stuff needs backtrace
+ vsed -i 's,# Set common link flags.,list(APPEND SANITIZER_COMMON_LINK_LIBS execinfo),' \
+ ${wrksrc}/compiler-rt/CMakeLists.txt
+ ;;
+ arm*-musl|i686-musl) # sanitizer code is broken since it duplicates some libc bits
+ vsed -i 's/set(COMPILER_RT_HAS_SANITIZER_COMMON TRUE)/set(COMPILER_RT_HAS_SANITIZER_COMMON FALSE)/' \
+ ${wrksrc}/compiler-rt/cmake/config-ix.cmake
+ ;;
+ esac
+}
+
+pre_configure() {
+ local triplet
+
+ # Vastly reduce size of debugging symbols:
+ CFLAGS=${CFLAGS/ -g/ -g1}
+ CXXFLAGS=${CXXFLAGS/ -g/ -g1}
+
+ # since gcc9, the build likes to blow up for ppc32 apparently because
+ # of clang being too large for a 24-bit relative call to the PLT, so
+ # optimize for size instead
+ case "$XBPS_TARGET_MACHINE" in
+ ppc64*) ;;
+ mips*-musl|ppc*) configure_args+=" -DVOID_CXX_OPT_FLAGS=-Os" ;;
+ esac
+
+ if [ "$CROSS_BUILD" ]; then
+ msg_normal "Building host tblgen\n"
+ mkdir -p build/HOST
+ cd build/HOST
+ CC="$BUILD_CC" CXX="$BUILD_CXX" CFLAGS="$BUILD_CFLAGS" \
+ CXXFLAGS="$BUILD_CXXFLAGS" LDFLAGS="$BUILD_LDFLAGS" \
+ cmake ../.. -DCMAKE_BUILD_TYPE=Release \
+ -DLLVM_ENABLE_PROJECTS=${_enabled_projects}
+ make ${makejobs} -C utils/TableGen
+ make ${makejobs} -C tools/clang/utils/TableGen
+ [ "$_lldb_enable" = "yes" ] && make ${makejobs} -C tools/lldb/utils/TableGen
+ configure_args+=" -DLLVM_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/llvm-tblgen"
+ configure_args+=" -DCLANG_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/clang-tblgen"
+ [ "$_lldb_enable" = "yes" ] && configure_args+=" -DLLDB_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/lldb-tblgen"
+ cd ../..
+ fi
+
+ case "$XBPS_TARGET_MACHINE" in
+ i686*) _arch="X86";;
+ x86_64*) _arch="X86";;
+ armv5*) _arch="Armv5te";;
+ armv6*) _arch="Armv6";;
+ armv7*) _arch="Armv7";;
+ aarch64*) _arch="AArch64";;
+ mips*) _arch="Mips";;
+ ppc*) _arch="PowerPC";;
+ riscv64*) _arch="RISCV64";;
+ esac
+
+ triplet=${XBPS_CROSS_TRIPLET:-$XBPS_TRIPLET}
+
+ configure_args+=" -DLLVM_TARGET_ARCH=${_arch}"
+ configure_args+=" -DLLVM_HOST_TRIPLE=${triplet}"
+ configure_args+=" -DLLVM_DEFAULT_TARGET_TRIPLE=${triplet}"
+}
+
+do_install() {
+ cd build
+ cmake -DCMAKE_INSTALL_PREFIX=${DESTDIR}/usr -P cmake_install.cmake
+
+ # Required for multilib.
+ if [ "$XBPS_TARGET_MACHINE" = "x86_64" ]; then
+ for _header in llvm-config; do
+ mv ${DESTDIR}/usr/include/llvm/Config/${_header}{,-64}.h
+ vinstall ${FILESDIR}/llvm-Config-${_header}.h 644 \
+ usr/include/llvm/Config ${_header}.h
+ done
+ fi
+
+ # Remove llvm-config-host in cross builds.
+ if [ "$CROSS_BUILD" ]; then
+ rm -f ${DESTDIR}/usr/bin/llvm-config-host
+ fi
+
+ # Install libcxxabi headers
+ vinstall ${wrksrc}/libcxxabi/include/__cxxabi_config.h 644 usr/include
+ vinstall ${wrksrc}/libcxxabi/include/cxxabi.h 644 usr/include
+
+ # Install libunwind headers
+ vinstall ${wrksrc}/libunwind/include/__libunwind_config.h 644 usr/include
+ vinstall ${wrksrc}/libunwind/include/libunwind.h 644 usr/include
+ vinstall ${wrksrc}/libunwind/include/unwind.h 644 usr/include
+ vinstall ${wrksrc}/libunwind/include/mach-o/compact_unwind_encoding.h \
+ 644 usr/include/mach-o
+}
+
+clang-analyzer_package() {
+ pycompile_dirs="usr/share/scan-view"
+ depends="clang-${version}_${revision} python3 perl"
+ short_desc+=" - A source code analysis framework"
+ homepage="https://clang-analyzer.llvm.org/"
+ pkg_install() {
+ vmove "usr/bin/scan-*"
+ vmove "usr/libexec/*analyzer"
+ vmove "usr/share/scan-*"
+ vmove usr/share/man/man1/scan-build.1
+ }
+}
+
+clang-tools-extra_package() {
+ lib32disabled=yes
+ depends="clang-${version}_${revision} python3"
+ short_desc+=" - Extra Clang tools"
+ homepage="https://clang.llvm.org/extra/"
+ pkg_install() {
+ vmove usr/bin/clang-apply-replacements
+ vmove usr/bin/clang-doc
+ vmove usr/bin/clang-include-fixer
+ vmove usr/bin/clang-query
+ vmove usr/bin/clang-rename
+ vmove usr/bin/clang-reorder-fields
+ vmove usr/bin/clang-tidy
+ vmove usr/bin/clangd
+ vmove usr/bin/diagtool
+ vmove usr/bin/find-all-symbols
+ vmove usr/bin/hmaptool
+ vmove usr/bin/modularize
+ vmove usr/bin/pp-trace
+ vmove usr/bin/sancov
+ vmove usr/include/clang-tidy
+ vmove "usr/lib/libclangApplyReplacements*"
+ vmove "usr/lib/libclangDoc*"
+ vmove "usr/lib/libclangIncludeFixer*"
+ vmove "usr/lib/libclangReorderFields*"
+ vmove "usr/lib/libclangQuery*"
+ vmove "usr/lib/libclangTidy*"
+ vmove "usr/share/clang/*include-fixer*"
+ vmove "usr/share/clang/*rename*"
+ vmove "usr/share/clang/*tidy*"
+ vmove usr/share/doc/LLVM/clang-tools
+ vmove usr/share/man/man1/diagtool.1
+ vmove usr/share/man/man1/extraclangtools.1
+ }
+}
+
+clang_package() {
+ lib32disabled=yes
+ depends="libstdc++-devel libgcc-devel binutils ${XBPS_TARGET_LIBC}-devel
+ libclang-${version}_${revision}"
+ short_desc+=" - C language family frontend"
+ homepage="https://clang.llvm.org/"
+ pkg_install() {
+ vmove "usr/bin/*clang*"
+ vmove usr/bin/c-index-test
+ vmove usr/include/clang
+ vmove usr/include/clang-c
+ vmove usr/lib/clang
+ vmove usr/lib/cmake/clang
+ vmove "usr/lib/libclang*.a"
+ vmove "usr/lib/libclang*.so"
+ vmove usr/share/clang
+ vmove usr/share/doc/LLVM/clang
+ vmove usr/share/man/man1/clang.1
+ }
+}
+
+libclang_package() {
+ short_desc+=" - C frontend runtime library"
+ pkg_install() {
+ vmove "usr/lib/libclang.so.*"
+ }
+}
+
+libclang-cpp_package() {
+ short_desc+=" - C frontend runtime library (C++ interface)"
+ pkg_install() {
+ vmove "usr/lib/libclang-cpp.so.*"
+ }
+}
+
+lld_package() {
+ lib32disabled=yes
+ short_desc+=" - linker"
+ homepage="https://lld.llvm.org"
+ pkg_install() {
+ vmove usr/bin/ld.lld*
+ vmove usr/bin/ld64.lld*
+ vmove usr/bin/lld*
+ vmove usr/bin/wasm-ld
+ vmove usr/share/doc/LLVM/lld
+ }
+}
+
+lld-devel_package() {
+ lib32disabled=yes
+ short_desc+=" - linker - development files"
+ homepage="https://lld.llvm.org"
+ depends="lld>=${version}_${revision}"
+ pkg_install() {
+ vmove usr/include/lld
+ vmove usr/lib/cmake/lld
+ vmove "usr/lib/liblld*a"
+ }
+}
+
+lldb_package() {
+ lib32disabled=yes
+ depends+=" python3-six"
+ short_desc+=" - LLDB debugger"
+ homepage="https://lldb.llvm.org/"
+ pkg_install() {
+ vmove usr/bin/*lldb*
+ vmove usr/lib/liblldb*so.*
+ vmove /usr/lib/python*
+ }
+}
+
+lldb-devel_package() {
+ lib32disabled=yes
+ depends="lldb>=${version}_${revision}"
+ short_desc+=" - LLDB debugger - development files"
+ pkg_install() {
+ vmove usr/include/lldb
+ vmove "usr/lib/liblldb*.so"
+ }
+}
+
+llvm-libunwind_package() {
+ short_desc+=" - libunwind"
+ pkg_install() {
+ vmove "usr/lib/${XBPS_TRIPLET}/libunwind.so.*"
+ }
+}
+
+llvm-libunwind-devel_package() {
+ short_desc+=" - libunwind - development files"
+ depends="llvm-libunwind>=${version}_${revision}"
+ conflicts="libunwind-devel>=0"
+ pkg_install() {
+ vmove usr/include/mach-o
+ vmove "usr/include/*unwind*"
+ vmove "usr/lib/${XBPS_TRIPLET}/libunwind.a"
+ vmove "usr/lib/${XBPS_TRIPLET}/libunwind.so"
+ vmove usr/share/doc/LLVM/libunwind
+ }
+}
+
+libcxxabi_package() {
+ short_desc+=" - low level support for libc++"
+ pkg_install() {
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++abi.so.*"
+ }
+}
+
+libcxxabi-devel_package() {
+ short_desc+=" - low level support for libc++ - development files"
+ depends="libcxxabi>=${version}_${revision}"
+ pkg_install() {
+ vmove "usr/include/*cxxabi*"
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++abi.so"
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++abi.a"
+ }
+}
+
+libcxx_package() {
+ short_desc+=" - C++ standard library"
+ pkg_install() {
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++.so.*"
+ }
+}
+
+libcxx-devel_package() {
+ short_desc+=" - C++ standard library - development files"
+ depends="libcxx>=${version}_${revision}"
+ pkg_install() {
+ vmove usr/include/c++
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++.so"
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++.a"
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++experimental.a"
+ vmove usr/share/doc/LLVM/libcxx
+ }
+}
+
+libomp_package() {
+ short_desc+=" - Clang OpenMP support library"
+ pkg_install() {
+ vmove usr/lib/libarcher.so
+ vmove usr/lib/libomp.so
+ vmove usr/lib/libompd.so
+ vmove "usr/lib/libomptarget.rtl.*.so"
+ vmove "usr/lib/libomp*.so.*"
+ }
+}
+
+libomp-devel_package() {
+ short_desc+=" - Clang OpenMP support library - development files"
+ depends="libomp>=${version}_${revision}"
+ pkg_install() {
+ vmove "usr/include/omp*.h"
+ vmove "usr/lib/clang/${version}/include/omp*.h"
+ vmove "usr/lib/libarcher*"
+ vmove "usr/lib/libomp*.so"
+ vmove usr/lib/cmake/openmp
+ vmove usr/share/doc/LLVM/openmp
+ vmove usr/share/man/man1/llvmopenmp.1
+ }
+}
+
+libllvm15_package() {
+ short_desc+=" - runtime library"
+ pkg_install() {
+ vmove "usr/lib/libLLVM-*.so*"
+ }
+}
diff --git a/srcpkgs/llvm15/update b/srcpkgs/llvm15/update
new file mode 100644
index 000000000000..e95cf26b3586
--- /dev/null
+++ b/srcpkgs/llvm15/update
@@ -0,0 +1,3 @@
+site="https://github.com/llvm/llvm-project/releases"
+pattern="llvmorg-\K(\d+.){2}\d+(-rc\d+)?"
+ignore="*-rc*"
^ permalink raw reply [flat|nested] 96+ messages in thread
* Re: [PR PATCH] [Updated] [WIP] LLVM 15
2022-11-28 15:30 [PR PATCH] [WIP] LLVM 15 tranzystorek-io
` (21 preceding siblings ...)
2022-12-17 9:00 ` tranzystorek-io
@ 2022-12-17 9:09 ` tranzystorek-io
2022-12-17 10:44 ` [PR REVIEW] " paper42
` (71 subsequent siblings)
94 siblings, 0 replies; 96+ messages in thread
From: tranzystorek-io @ 2022-12-17 9:09 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 502 bytes --]
There is an updated pull request by tranzystorek-io against master on the void-packages repository
https://github.com/tranzystorek-io/void-packages llvm15
https://github.com/void-linux/void-packages/pull/40821
[WIP] LLVM 15
[ci skip]
TODO:
- [ ] Adjust patches marked as `.patch.skip`
- [ ] Make libomp a shlib (change so file name and install a symlink)
- [ ] Avoid creating triplet dirs under /usr/
A patch file from https://github.com/void-linux/void-packages/pull/40821.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-llvm15-40821.patch --]
[-- Type: text/x-diff, Size: 55161 bytes --]
From b6dd9ce03bb933fe662c97d20c7e082e9532de32 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Sun, 27 Nov 2022 22:59:45 +0100
Subject: [PATCH] llvm: update to 15.0.6
---
common/shlibs | 7 +-
srcpkgs/clang | 2 +-
srcpkgs/clang-analyzer | 2 +-
| 2 +-
srcpkgs/libclang | 2 +-
srcpkgs/libclang-cpp | 2 +-
srcpkgs/libcxx | 2 +-
srcpkgs/libcxx-devel | 2 +-
srcpkgs/libcxxabi | 2 +-
srcpkgs/libcxxabi-devel | 2 +-
srcpkgs/libllvm15 | 1 +
srcpkgs/libomp | 2 +-
srcpkgs/libomp-devel | 2 +-
srcpkgs/lld | 2 +-
srcpkgs/lld-devel | 2 +-
srcpkgs/lldb | 2 +-
srcpkgs/lldb-devel | 2 +-
srcpkgs/llvm-libunwind | 2 +-
srcpkgs/llvm-libunwind-devel | 2 +-
srcpkgs/llvm/template | 6 +-
.../llvm15/files/llvm-Config-llvm-config.h | 9 +
...clang-001-fix-unwind-chain-inclusion.patch | 44 ++
.../patches/clang-002-add-musl-triples.patch | 110 +++++
.../clang-003-ppc64-dynamic-linker-path.patch | 13 +
.../patches/clang-004-ppc64-musl-elfv2.patch | 48 ++
.../compiler-rt-sanitizer-ppc64-musl.patch | 35 ++
.../compiler-rt-xray-ppc64-musl.patch.skip | 62 +++
srcpkgs/llvm15/patches/libcxx-musl.patch | 26 ++
srcpkgs/llvm15/patches/libcxx-ppc.patch | 22 +
.../llvm15/patches/libcxx-ssp-nonshared.patch | 11 +
srcpkgs/llvm15/patches/libcxxabi-dl.patch | 25 +
.../llvm15/patches/libunwind-ppc32.patch.skip | 63 +++
srcpkgs/llvm15/patches/lldb-musl.patch | 40 ++
srcpkgs/llvm15/patches/llvm-001-musl.patch | 57 +++
.../patches/llvm-002-musl-ppc64-elfv2.patch | 30 ++
.../patches/llvm-003-ppc-secureplt.patch | 11 +
.../patches/llvm-004-override-opt.patch | 18 +
.../llvm15/patches/llvm-005-ppc-bigpic.patch | 36 ++
.../patches/llvm-006-aarch64-mf_exec.patch | 25 +
srcpkgs/llvm15/template | 434 ++++++++++++++++++
srcpkgs/llvm15/update | 3 +
41 files changed, 1147 insertions(+), 23 deletions(-)
create mode 120000 srcpkgs/libllvm15
create mode 100644 srcpkgs/llvm15/files/llvm-Config-llvm-config.h
create mode 100644 srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch
create mode 100644 srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch
create mode 100644 srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch
create mode 100644 srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch
create mode 100644 srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch
create mode 100644 srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip
create mode 100644 srcpkgs/llvm15/patches/libcxx-musl.patch
create mode 100644 srcpkgs/llvm15/patches/libcxx-ppc.patch
create mode 100644 srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch
create mode 100644 srcpkgs/llvm15/patches/libcxxabi-dl.patch
create mode 100644 srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip
create mode 100644 srcpkgs/llvm15/patches/lldb-musl.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-001-musl.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-004-override-opt.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch
create mode 100644 srcpkgs/llvm15/template
create mode 100644 srcpkgs/llvm15/update
diff --git a/common/shlibs b/common/shlibs
index ba5c89ee3bad..7b8d77766f0f 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -982,11 +982,12 @@ 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.12 lldb-12.0.0_1
-libclang.so.12 libclang-12.0.0_1
-libclang-cpp.so.12 libclang-cpp-12.0.0_1
+liblldb.so.15 lldb-15.0.6_1
+libclang.so.15 libclang-15.0.6_1
+libclang-cpp.so.15 libclang-cpp-15.0.6_1
libLLVM-11.so libllvm11-11.0.0_1
libLLVM-12.so libllvm12-12.0.0_1
+libLLVM-15.so libllvm15-15.0.6_1
libisofs.so.6 libisofs-0.6.24_1
libmpack.so.0 libmpack-1.0.5_1
libGeoIP.so.1 libgeoip-1.4.8_1
diff --git a/srcpkgs/clang b/srcpkgs/clang
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/clang
+++ b/srcpkgs/clang
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/clang-analyzer b/srcpkgs/clang-analyzer
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/clang-analyzer
+++ b/srcpkgs/clang-analyzer
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
--git a/srcpkgs/clang-tools-extra b/srcpkgs/clang-tools-extra
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/clang-tools-extra
+++ b/srcpkgs/clang-tools-extra
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libclang b/srcpkgs/libclang
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libclang
+++ b/srcpkgs/libclang
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libclang-cpp b/srcpkgs/libclang-cpp
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libclang-cpp
+++ b/srcpkgs/libclang-cpp
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxx b/srcpkgs/libcxx
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxx
+++ b/srcpkgs/libcxx
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxx-devel b/srcpkgs/libcxx-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxx-devel
+++ b/srcpkgs/libcxx-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxxabi b/srcpkgs/libcxxabi
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxxabi
+++ b/srcpkgs/libcxxabi
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxxabi-devel b/srcpkgs/libcxxabi-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxxabi-devel
+++ b/srcpkgs/libcxxabi-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libllvm15 b/srcpkgs/libllvm15
new file mode 120000
index 000000000000..ad57a969b9f9
--- /dev/null
+++ b/srcpkgs/libllvm15
@@ -0,0 +1 @@
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libomp b/srcpkgs/libomp
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libomp
+++ b/srcpkgs/libomp
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libomp-devel b/srcpkgs/libomp-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libomp-devel
+++ b/srcpkgs/libomp-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lld b/srcpkgs/lld
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lld
+++ b/srcpkgs/lld
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lld-devel b/srcpkgs/lld-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lld-devel
+++ b/srcpkgs/lld-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lldb b/srcpkgs/lldb
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lldb
+++ b/srcpkgs/lldb
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lldb-devel b/srcpkgs/lldb-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lldb-devel
+++ b/srcpkgs/lldb-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm-libunwind b/srcpkgs/llvm-libunwind
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/llvm-libunwind
+++ b/srcpkgs/llvm-libunwind
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm-libunwind-devel b/srcpkgs/llvm-libunwind-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/llvm-libunwind-devel
+++ b/srcpkgs/llvm-libunwind-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm/template b/srcpkgs/llvm/template
index a92db6f94f9f..3e050c14d38f 100644
--- a/srcpkgs/llvm/template
+++ b/srcpkgs/llvm/template
@@ -1,11 +1,11 @@
# Template file for 'llvm'
pkgname=llvm
-version=12.0.0
+version=15.0.0
revision=1
build_style=meta
-depends="llvm12"
-replaces="llvm11>=0 llvm10>=0 llvm9>=0 llvm8>=0 llvm7>=0 llvm6.0>=0 llvm3.9>=0"
+depends="llvm15"
short_desc="LLVM meta package"
maintainer="Enno Boland <gottox@voidlinux.org>"
license="Public Domain"
homepage="https://www.voidlinux.org"
+replaces="llvm12>=0 llvm11>=0 llvm10>=0 llvm9>=0 llvm8>=0 llvm7>=0 llvm6.0>=0 llvm3.9>=0"
diff --git a/srcpkgs/llvm15/files/llvm-Config-llvm-config.h b/srcpkgs/llvm15/files/llvm-Config-llvm-config.h
new file mode 100644
index 000000000000..2fa08c9be696
--- /dev/null
+++ b/srcpkgs/llvm15/files/llvm-Config-llvm-config.h
@@ -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
diff --git a/srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch b/srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch
new file mode 100644
index 000000000000..e4eaa7783e7a
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch
@@ -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
diff --git a/srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch b/srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch
new file mode 100644
index 000000000000..25688d40dbc2
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch
@@ -0,0 +1,110 @@
+--- a/clang/lib/Driver/ToolChains/Gnu.cpp
++++ b/clang/lib/Driver/ToolChains/Gnu.cpp
+@@ -2086,7 +2086,8 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
+ static const char *const ARMHFTriples[] = {"arm-linux-gnueabihf",
+ "armv7hl-redhat-linux-gnueabi",
+ "armv6hl-suse-linux-gnueabi",
+- "armv7hl-suse-linux-gnueabi"};
++ "armv7hl-suse-linux-gnueabi",
++ "armv7l-linux-gnueabihf"};
+ static const char *const ARMebLibDirs[] = {"/lib"};
+ static const char *const ARMebTriples[] = {"armeb-linux-gnueabi",
+ "armeb-linux-androideabi"};
+@@ -2153,8 +2154,7 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
+ "powerpc64-suse-linux", "powerpc-montavista-linuxspe"};
+ static const char *const PPCLELibDirs[] = {"/lib32", "/lib"};
+ static const char *const PPCLETriples[] = {"powerpcle-linux-gnu",
+- "powerpcle-unknown-linux-gnu",
+- "powerpcle-linux-musl"};
++ "powerpcle-unknown-linux-gnu"};
+
+ static const char *const PPC64LibDirs[] = {"/lib64", "/lib"};
+ static const char *const PPC64Triples[] = {
+@@ -2235,6 +2235,87 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
+ return;
+ }
+
++ if (TargetTriple.isMusl()) {
++ static const char *const AArch64MuslTriples[] = {"aarch64-linux-musl"};
++ static const char *const ARMHFMuslTriples[] = {
++ "arm-linux-musleabihf", "armv7l-linux-musleabihf"
++ };
++ static const char *const ARMMuslTriples[] = {"arm-linux-musleabi"};
++ static const char *const X86_64MuslTriples[] = {"x86_64-linux-musl"};
++ static const char *const X86MuslTriples[] = {"i686-linux-musl"};
++ static const char *const MIPSMuslTriples[] = {
++ "mips-linux-musl", "mipsel-linux-musl",
++ "mipsel-linux-muslhf", "mips-linux-muslhf"
++ };
++ static const char *const PPCMuslTriples[] = {"powerpc-linux-musl"};
++ static const char *const PPCLEMuslTriples[] = {"powerpcle-linux-musl"};
++ static const char *const PPC64MuslTriples[] = {"powerpc64-linux-musl"};
++ static const char *const PPC64LEMuslTriples[] = {"powerpc64le-linux-musl"};
++
++ switch (TargetTriple.getArch()) {
++ case llvm::Triple::aarch64:
++ LibDirs.append(begin(AArch64LibDirs), end(AArch64LibDirs));
++ TripleAliases.append(begin(AArch64MuslTriples), end(AArch64MuslTriples));
++ BiarchLibDirs.append(begin(AArch64LibDirs), end(AArch64LibDirs));
++ BiarchTripleAliases.append(begin(AArch64MuslTriples), end(AArch64MuslTriples));
++ break;
++ case llvm::Triple::arm:
++ LibDirs.append(begin(ARMLibDirs), end(ARMLibDirs));
++ if (TargetTriple.getEnvironment() == llvm::Triple::MuslEABIHF) {
++ TripleAliases.append(begin(ARMHFMuslTriples), end(ARMHFMuslTriples));
++ } else {
++ TripleAliases.append(begin(ARMMuslTriples), end(ARMMuslTriples));
++ }
++ break;
++ case llvm::Triple::x86_64:
++ LibDirs.append(begin(X86_64LibDirs), end(X86_64LibDirs));
++ TripleAliases.append(begin(X86_64MuslTriples), end(X86_64MuslTriples));
++ BiarchLibDirs.append(begin(X86LibDirs), end(X86LibDirs));
++ BiarchTripleAliases.append(begin(X86MuslTriples), end(X86MuslTriples));
++ break;
++ case llvm::Triple::x86:
++ LibDirs.append(begin(X86LibDirs), end(X86LibDirs));
++ TripleAliases.append(begin(X86MuslTriples), end(X86MuslTriples));
++ BiarchLibDirs.append(begin(X86_64LibDirs), end(X86_64LibDirs));
++ BiarchTripleAliases.append(begin(X86_64MuslTriples), end(X86_64MuslTriples));
++ break;
++ case llvm::Triple::mips:
++ LibDirs.append(begin(MIPSLibDirs), end(MIPSLibDirs));
++ TripleAliases.append(begin(MIPSMuslTriples), end(MIPSMuslTriples));
++ break;
++ case llvm::Triple::ppc:
++ LibDirs.append(begin(PPCLibDirs), end(PPCLibDirs));
++ TripleAliases.append(begin(PPCMuslTriples), end(PPCMuslTriples));
++ BiarchLibDirs.append(begin(PPC64LibDirs), end(PPC64LibDirs));
++ BiarchTripleAliases.append(begin(PPC64MuslTriples), end(PPC64MuslTriples));
++ break;
++ case llvm::Triple::ppcle:
++ LibDirs.append(begin(PPCLELibDirs), end(PPCLELibDirs));
++ TripleAliases.append(begin(PPCLEMuslTriples), end(PPCLEMuslTriples));
++ BiarchLibDirs.append(begin(PPC64LELibDirs), end(PPC64LELibDirs));
++ BiarchTripleAliases.append(begin(PPC64LEMuslTriples), end(PPC64LEMuslTriples));
++ break;
++ case llvm::Triple::ppc64:
++ LibDirs.append(begin(PPC64LibDirs), end(PPC64LibDirs));
++ TripleAliases.append(begin(PPC64MuslTriples), end(PPC64MuslTriples));
++ BiarchLibDirs.append(begin(PPCLibDirs), end(PPCLibDirs));
++ BiarchTripleAliases.append(begin(PPCMuslTriples), end(PPCMuslTriples));
++ break;
++ case llvm::Triple::ppc64le:
++ LibDirs.append(begin(PPC64LELibDirs), end(PPC64LELibDirs));
++ TripleAliases.append(begin(PPC64LEMuslTriples), end(PPC64LEMuslTriples));
++ BiarchLibDirs.append(begin(PPCLELibDirs), end(PPCLELibDirs));
++ BiarchTripleAliases.append(begin(PPCLEMuslTriples), end(PPCLEMuslTriples));
++ break;
++ default:
++ break;
++ }
++ TripleAliases.push_back(TargetTriple.str());
++ if (TargetTriple.str() != BiarchTriple.str())
++ BiarchTripleAliases.push_back(BiarchTriple.str());
++ return;
++ }
++
+ // Android targets should not use GNU/Linux tools or libraries.
+ if (TargetTriple.isAndroid()) {
+ static const char *const AArch64AndroidTriples[] = {
diff --git a/srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch b/srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch
new file mode 100644
index 000000000000..4ad6412d1e6c
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch
@@ -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 =
diff --git a/srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch b/srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch
new file mode 100644
index 000000000000..21fc8003c5f1
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch
@@ -0,0 +1,48 @@
+--- a/clang/lib/Basic/Targets/PPC.h
++++ b/clang/lib/Basic/Targets/PPC.h
+@@ -415,11 +415,10 @@ public:
+ LongDoubleFormat = &llvm::APFloat::IEEEdouble();
+ } else if ((Triple.getArch() == llvm::Triple::ppc64le)) {
+ DataLayout = "e-m:e-i64:64-n32:64";
+- ABI = "elfv2";
+ } else {
+ DataLayout = "E-m:e-i64:64-n32:64";
+- ABI = "elfv1";
+ }
++ ABI = "elfv2";
+
+ if (Triple.isOSFreeBSD() || Triple.isOSOpenBSD() || Triple.isMusl()) {
+ LongDoubleWidth = LongDoubleAlign = 64;
+--- a/clang/lib/CodeGen/TargetInfo.cpp
++++ b/clang/lib/CodeGen/TargetInfo.cpp
+@@ -10927,9 +10927,9 @@ const TargetCodeGenInfo &CodeGenModule::getTargetCodeGenInfo() {
+ return SetCGInfo(new AIXTargetCodeGenInfo(Types, /*Is64Bit*/ true));
+
+ if (Triple.isOSBinFormatELF()) {
+- PPC64_SVR4_ABIInfo::ABIKind Kind = PPC64_SVR4_ABIInfo::ELFv1;
+- if (getTarget().getABI() == "elfv2")
+- Kind = PPC64_SVR4_ABIInfo::ELFv2;
++ PPC64_SVR4_ABIInfo::ABIKind Kind = PPC64_SVR4_ABIInfo::ELFv2;
++ if (getTarget().getABI() == "elfv1")
++ Kind = PPC64_SVR4_ABIInfo::ELFv1;
+ bool IsSoftFloat = CodeGenOpts.FloatABI == "soft";
+
+ return SetCGInfo(
+--- a/clang/lib/Driver/ToolChains/Clang.cpp
++++ b/clang/lib/Driver/ToolChains/Clang.cpp
+@@ -1920,14 +1920,7 @@ void Clang::AddPPCTargetArgs(const ArgList &Args,
+ const llvm::Triple &T = getToolChain().getTriple();
+ if (T.isOSBinFormatELF()) {
+ switch (getToolChain().getArch()) {
+- case llvm::Triple::ppc64: {
+- if ((T.isOSFreeBSD() && T.getOSMajorVersion() >= 13) ||
+- T.isOSOpenBSD() || T.isMusl())
+- ABIName = "elfv2";
+- else
+- ABIName = "elfv1";
+- break;
+- }
++ case llvm::Triple::ppc64:
+ case llvm::Triple::ppc64le:
+ ABIName = "elfv2";
+ break;
diff --git a/srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch b/srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch
new file mode 100644
index 000000000000..360cfc1ba7f1
--- /dev/null
+++ b/srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch
@@ -0,0 +1,35 @@
+--- 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__) || SANITIZER_RISCV64
++ defined(__hexagon__) || defined(__powerpc__) || 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_ANDROID
++#if (defined(__aarch64__) || defined(__powerpc__) || SANITIZER_RISCV64) && !SANITIZER_ANDROID
+ // GLIBC 2.20+ sys/user does not include asm/ptrace.h
+ # include <asm/ptrace.h>
+ #endif
diff --git a/srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip b/srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip
new file mode 100644
index 000000000000..d0b61c80c897
--- /dev/null
+++ b/srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip
@@ -0,0 +1,62 @@
+--- a/compiler-rt/lib/xray/xray_powerpc64.inc
++++ b/compiler-rt/lib/xray/xray_powerpc64.inc
+@@ -12,7 +12,13 @@
+
+ #include <cstdint>
+ #include <mutex>
++#ifdef __GLIBC__
+ #include <sys/platform/ppc.h>
++#else
++#include <cctype>
++#include <cstring>
++#include <cstdlib>
++#endif
+
+ #include "xray_defs.h"
+
+@@ -20,13 +26,45 @@ namespace __xray {
+
+ ALWAYS_INLINE uint64_t readTSC(uint8_t &CPU) XRAY_NEVER_INSTRUMENT {
+ CPU = 0;
++#ifdef __GLIBC__
+ return __ppc_get_timebase();
++#else
++ return __builtin_ppc_get_timebase();
++#endif
+ }
+
+ inline uint64_t getTSCFrequency() XRAY_NEVER_INSTRUMENT {
+ static std::mutex M;
+ std::lock_guard<std::mutex> Guard(M);
++#ifdef __GLIBC__
+ return __ppc_get_timebase_freq();
++#else
++ /* FIXME: a less dirty implementation? */
++ static uint64_t base;
++ if (!base) {
++ FILE *f = fopen("/proc/cpuinfo", "rb");
++ if (f) {
++ ssize_t nr;
++ /* virtually always big enough to hold the line */
++ char buf[512];
++ while (fgets(buf, sizeof(buf), f)) {
++ char *ret = strstr(buf, "timebase");
++ if (!ret) {
++ continue;
++ }
++ ret += sizeof("timebase") - 1;
++ ret = strchr(ret, ':');
++ if (!ret) {
++ continue;
++ }
++ base = strtoul(ret + 1, nullptr, 10);
++ break;
++ }
++ fclose(f);
++ }
++ }
++ return base;
++#endif
+ }
+
+ inline bool probeRequiredCPUFeatures() XRAY_NEVER_INSTRUMENT {
diff --git a/srcpkgs/llvm15/patches/libcxx-musl.patch b/srcpkgs/llvm15/patches/libcxx-musl.patch
new file mode 100644
index 000000000000..bbd31ffc2cb1
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxx-musl.patch
@@ -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,
+ typename remove_reference<decltype(errno)>::type __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
+ typename remove_reference<decltype(errno)>::type __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,
+ typename remove_reference<decltype(errno)>::type __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
+ typename remove_reference<decltype(errno)>::type __current_errno = errno;
+ if (__current_errno == 0)
+ errno = __save_errno;
diff --git a/srcpkgs/llvm15/patches/libcxx-ppc.patch b/srcpkgs/llvm15/patches/libcxx-ppc.patch
new file mode 100644
index 000000000000..7a92f8004e1c
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxx-ppc.patch
@@ -0,0 +1,22 @@
+This ensures `is_iec559` is defined correctly under all long double ABIs,
+including musl and its 64-bit long double. Also, `__ppc__` or `__ppc64__`
+is not defined on gcc.
+
+--- a/libcxx/include/limits
++++ b/libcxx/include/limits
+@@ -426,8 +426,14 @@ protected:
+ _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type signaling_NaN() _NOEXCEPT {return __builtin_nansl("");}
+ _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type denorm_min() _NOEXCEPT {return __LDBL_DENORM_MIN__;}
+
+-#if (defined(__ppc__) || defined(__ppc64__))
++#if defined(__powerpc__) || defined(__powerpc64__)
++#if (__LDBL_MAX_EXP__ > __DBL_MAX_EXP__) || (__LDBL_MANT_DIG__ == __DBL_MANT_DIG__)
++ /* IEEE 754 quadruple or double precision */
++ static _LIBCPP_CONSTEXPR const bool is_iec559 = true;
++#else
++ /* 128-bit IBM double-double */
+ static _LIBCPP_CONSTEXPR const bool is_iec559 = false;
++#endif
+ #else
+ static _LIBCPP_CONSTEXPR const bool is_iec559 = true;
+ #endif
diff --git a/srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch b/srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch
new file mode 100644
index 000000000000..70292beb2fcd
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch
@@ -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()
diff --git a/srcpkgs/llvm15/patches/libcxxabi-dl.patch b/srcpkgs/llvm15/patches/libcxxabi-dl.patch
new file mode 100644
index 000000000000..3a15f9db8c98
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxxabi-dl.patch
@@ -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 @@
+ target_link_libraries(${target} PRIVATE m)
+ endif()
+
++ if (LIBCXX_HAS_C_LIB)
++ target_link_libraries(${target} PRIVATE dl)
++ endif()
++
+ if (LIBCXX_HAS_RT_LIB)
+ target_link_libraries(${target} PRIVATE rt)
+ endif()
diff --git a/srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip b/srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip
new file mode 100644
index 000000000000..74aa7576ecf9
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip
@@ -0,0 +1,63 @@
+This fixes build at least with gcc9 which does not define `__ppc__`.
+
+--- a/libunwind/include/__libunwind_config.h
++++ b/libunwind/include/__libunwind_config.h
+@@ -49,7 +49,7 @@
+ # define _LIBUNWIND_CONTEXT_SIZE 167
+ # define _LIBUNWIND_CURSOR_SIZE 179
+ # define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_PPC64
+-# elif defined(__ppc__)
++# elif defined(__powerpc__)
+ # define _LIBUNWIND_TARGET_PPC 1
+ # define _LIBUNWIND_CONTEXT_SIZE 117
+ # define _LIBUNWIND_CURSOR_SIZE 124
+--- a/libunwind/src/UnwindRegistersRestore.S
++++ b/libunwind/src/UnwindRegistersRestore.S
+@@ -392,7 +392,7 @@ Lnovec:
+ PPC64_LR(3)
+ bctr
+
+-#elif defined(__ppc__)
++#elif defined(__powerpc__)
+
+ DEFINE_LIBUNWIND_FUNCTION(_ZN9libunwind13Registers_ppc6jumptoEv)
+ //
+--- a/libunwind/src/UnwindRegistersSave.S
++++ b/libunwind/src/UnwindRegistersSave.S
+@@ -554,7 +554,7 @@ DEFINE_LIBUNWIND_FUNCTION(__unw_getcontext)
+ blr
+
+
+-#elif defined(__ppc__)
++#elif defined(__powerpc__)
+
+ //
+ // extern int unw_getcontext(unw_context_t* thread_state)
+--- a/libunwind/src/config.h
++++ b/libunwind/src/config.h
+@@ -95,12 +95,12 @@
+ #define _LIBUNWIND_BUILD_SJLJ_APIS
+ #endif
+
+-#if defined(__i386__) || defined(__x86_64__) || defined(__ppc__) || defined(__ppc64__) || defined(__powerpc64__)
++#if defined(__i386__) || defined(__x86_64__) || defined(__powerpc__) || defined(__powerpc64__)
+ #define _LIBUNWIND_SUPPORT_FRAME_APIS
+ #endif
+
+ #if defined(__i386__) || defined(__x86_64__) || \
+- defined(__ppc__) || defined(__ppc64__) || defined(__powerpc64__) || \
++ defined(__powerpc__) || defined(__powerpc64__) || \
+ (!defined(__APPLE__) && defined(__arm__)) || \
+ (defined(__arm64__) || defined(__aarch64__)) || \
+ defined(__mips__)
+--- a/libunwind/src/libunwind.cpp
++++ b/libunwind/src/libunwind.cpp
+@@ -42,7 +42,7 @@ _LIBUNWIND_HIDDEN int __unw_init_local(unw_cursor_t *cursor,
+ # define REGISTER_KIND Registers_x86_64
+ #elif defined(__powerpc64__)
+ # define REGISTER_KIND Registers_ppc64
+-#elif defined(__ppc__)
++#elif defined(__powerpc__)
+ # define REGISTER_KIND Registers_ppc
+ #elif defined(__aarch64__)
+ # define REGISTER_KIND Registers_arm64
diff --git a/srcpkgs/llvm15/patches/lldb-musl.patch b/srcpkgs/llvm15/patches/lldb-musl.patch
new file mode 100644
index 000000000000..026c5e1e61ba
--- /dev/null
+++ b/srcpkgs/llvm15/patches/lldb-musl.patch
@@ -0,0 +1,40 @@
+--- a/lldb/source/Plugins/Process/Linux/Procfs.h
++++ b/lldb/source/Plugins/Process/Linux/Procfs.h
+@@ -10,6 +10,7 @@
+ // sys/procfs.h on Android/Linux for all supported architectures.
+
+ #include <sys/ptrace.h>
++#include <asm/ptrace.h>
+
+ #include "lldb/lldb-types.h"
+
+@@ -17,23 +18,13 @@
+
+ #include <vector>
+
+-#ifdef __ANDROID__
+-#if defined(__arm64__) || defined(__aarch64__)
+-typedef unsigned long elf_greg_t;
+-typedef elf_greg_t
+- elf_gregset_t[(sizeof(struct user_pt_regs) / sizeof(elf_greg_t))];
+-typedef struct user_fpsimd_state elf_fpregset_t;
+-#ifndef NT_FPREGSET
+-#define NT_FPREGSET NT_PRFPREG
+-#endif // NT_FPREGSET
+-#elif defined(__mips__)
+-#ifndef NT_FPREGSET
+-#define NT_FPREGSET NT_PRFPREG
+-#endif // NT_FPREGSET
+-#endif
+-#else // __ANDROID__
++#if !defined(__GLIBC__) && defined(__powerpc__)
++#define pt_regs musl_pt_regs
++#include <sys/procfs.h>
++#undef pt_regs
++#else
+ #include <sys/procfs.h>
+-#endif // __ANDROID__
++#endif
+
+ namespace lldb_private {
+ namespace process_linux {
diff --git a/srcpkgs/llvm15/patches/llvm-001-musl.patch b/srcpkgs/llvm15/patches/llvm-001-musl.patch
new file mode 100644
index 000000000000..f2a3f8d62813
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-001-musl.patch
@@ -0,0 +1,57 @@
+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;
+diff --git a/lib/Support/Unix/DynamicLibrary.inc b/lib/Support/Unix/DynamicLibrary.inc
+index a2a37996..2f86c470 100644
+--- a/llvm/lib/Support/Unix/DynamicLibrary.inc
++++ b/llvm/lib/Support/Unix/DynamicLibrary.inc
+@@ -102,7 +102,7 @@ static void *DoSearch(const char* SymbolName) {
+
+ // This macro returns the address of a well-known, explicit symbol
+ #define EXPLICIT_SYMBOL(SYM) \
+- if (!strcmp(SymbolName, #SYM)) return &SYM
++ if (!strcmp(SymbolName, #SYM)) return (void *)&SYM
+
+ // Under glibc we have a weird situation. The stderr/out/in symbols are both
+ // macros and global variables because of standards requirements. So, we
+diff --git a/utils/unittest/googletest/src/gtest.cc b/utils/unittest/googletest/src/gtest.cc
+index d882ab2e..f1fb12d0 100644
+--- a/llvm/utils/unittest/googletest/src/gtest.cc
++++ b/llvm/utils/unittest/googletest/src/gtest.cc
+@@ -128,6 +128,7 @@
+
+ #if GTEST_CAN_STREAM_RESULTS_
+ # include <arpa/inet.h> // NOLINT
++# include <sys/socket.h> // NOLINT
+ # include <netdb.h> // NOLINT
+ # include <sys/socket.h> // NOLINT
+ # include <sys/types.h> // NOLINT
diff --git a/srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch b/srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch
new file mode 100644
index 000000000000..0071d964bd37
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch
@@ -0,0 +1,30 @@
+This patches LLVM to use ELFv2 on ppc64 unconditionally unless overridden. We
+need this because unlike most distros we use ELFv2 for both glibc and musl
+on big endian ppc64.
+
+diff --git a/lib/Target/PowerPC/PPCTargetMachine.cpp b/lib/Target/PowerPC/PPCTargetMachine.cpp
+index 0634833e..b7cbc2e7 100644
+--- a/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp
++++ b/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp
+@@ -222,9 +222,8 @@ static PPCTargetMachine::PPCABI computeTargetABI(const Triple &TT,
+
+ switch (TT.getArch()) {
+ case Triple::ppc64le:
+- return PPCTargetMachine::PPC_ABI_ELFv2;
+ case Triple::ppc64:
+- return PPCTargetMachine::PPC_ABI_ELFv1;
++ return PPCTargetMachine::PPC_ABI_ELFv2;
+ default:
+ return PPCTargetMachine::PPC_ABI_UNKNOWN;
+ }
+diff --git a/test/CodeGen/PowerPC/ppc64-elf-abi.ll b/test/CodeGen/PowerPC/ppc64-elf-abi.ll
+index 8b1cf6b5..296a2afa 100644
+--- a/llvm/test/CodeGen/PowerPC/ppc64-elf-abi.ll
++++ b/llvm/test/CodeGen/PowerPC/ppc64-elf-abi.ll
+@@ -1,4 +1,5 @@
+-; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv1
++; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv2
++; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-musl < %s | FileCheck %s -check-prefix=CHECK-ELFv2
+ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu -target-abi elfv1 < %s | FileCheck %s -check-prefix=CHECK-ELFv1
+ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu -target-abi elfv2 < %s | FileCheck %s -check-prefix=CHECK-ELFv2
+ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv2
diff --git a/srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch b/srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch
new file mode 100644
index 000000000000..b5d15974375d
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch
@@ -0,0 +1,11 @@
+--- a/llvm/lib/Target/PowerPC/PPCSubtarget.cpp
++++ b/llvm/lib/Target/PowerPC/PPCSubtarget.cpp
+@@ -165,7 +165,7 @@ void PPCSubtarget::initSubtargetFeatures(StringRef CPU, StringRef FS) {
+
+ if ((TargetTriple.isOSFreeBSD() && TargetTriple.getOSMajorVersion() >= 13) ||
+ TargetTriple.isOSNetBSD() || TargetTriple.isOSOpenBSD() ||
+- TargetTriple.isMusl())
++ isTargetLinux())
+ SecurePlt = true;
+
+ if (HasSPE && IsPPC64)
diff --git a/srcpkgs/llvm15/patches/llvm-004-override-opt.patch b/srcpkgs/llvm15/patches/llvm-004-override-opt.patch
new file mode 100644
index 000000000000..51d0e4b31b32
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-004-override-opt.patch
@@ -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)
diff --git a/srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch b/srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch
new file mode 100644
index 000000000000..d332687b9d92
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch
@@ -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);
diff --git a/srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch b/srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch
new file mode 100644
index 000000000000..a00abd216665
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch
@@ -0,0 +1,25 @@
+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__) || defined (__ppc__) || \
+- defined(_POWER) || defined(_ARCH_PPC))
++ defined(_POWER) || defined(_ARCH_PPC) || (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
diff --git a/srcpkgs/llvm15/template b/srcpkgs/llvm15/template
new file mode 100644
index 000000000000..5ed8be136668
--- /dev/null
+++ b/srcpkgs/llvm15/template
@@ -0,0 +1,434 @@
+# Template file for 'llvm15'
+pkgname=llvm15
+version=15.0.6
+revision=1
+build_wrksrc=llvm
+build_style=cmake
+configure_args="
+ -DCMAKE_BUILD_TYPE=Release -Wno-dev
+ -DENABLE_LINKER_BUILD_ID=YES
+ -DLLDB_USE_SYSTEM_SIX=YES
+ -DLIBCXX_CXX_ABI=libcxxabi
+ -DLIBCXX_ENABLE_STATIC_ABI_LIBRARY=YES
+ -DLIBCXXABI_USE_LLVM_UNWINDER=YES
+ -DLIBCXXABI_ENABLE_STATIC_UNWINDER=YES
+ -DLIBOMP_ENABLE_SHARED=YES
+ -DLIBOMP_INSTALL_ALIASES=NO
+ -DLLVM_INCLUDE_DOCS=YES
+ -DLLVM_BUILD_DOCS=YES
+ -DLLVM_ENABLE_SPHINX=YES
+ -DSPHINX_WARNINGS_AS_ERRORS=NO
+ -DLLVM_INSTALL_UTILS=YES
+ -DLLVM_BUILD_LLVM_DYLIB=YES
+ -DLLVM_LINK_LLVM_DYLIB=YES
+ -DLLVM_ENABLE_RTTI=YES
+ -DLLVM_ENABLE_FFI=YES
+ -DLLVM_BINUTILS_INCDIR=/usr/include"
+hostmakedepends="perl python3 zlib-devel libffi-devel swig python3-Sphinx
+ python3-recommonmark python3-sphinx-automodapi"
+makedepends="python3-devel zlib-devel elfutils-devel libffi-devel libedit-devel
+ libxml2-devel binutils-devel libatomic-devel"
+depends="libllvm15>=${version}_${revision}"
+short_desc="Low Level Virtual Machine"
+maintainer="Orphaned <orphan@voidlinux.org>"
+license="Apache-2.0"
+homepage="https://www.llvm.org"
+distfiles="https://github.com/llvm/llvm-project/releases/download/llvmorg-${version}/llvm-project-${version}.src.tar.xz"
+checksum=9d53ad04dc60cb7b30e810faf64c5ab8157dadef46c8766f67f286238256ff92
+lib32disabled=yes
+python_version=3
+
+if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
+ configure_args+=" -DLIBCXX_HAS_MUSL_LIBC=YES"
+ makedepends+=" libexecinfo-devel"
+ depends+=" libexecinfo-devel"
+fi
+
+# "operand out of range" assembler failures
+case "$XBPS_TARGET_MACHINE" in
+ ppc64*) ;;
+ ppc*) configure_args+=" -DCLANG_ENABLE_CLANGD=OFF" ;;
+esac
+
+_enabled_projects="clang;clang-tools-extra;compiler-rt;libcxx;libcxxabi;libunwind;lld"
+
+_lldb_enable=yes
+_libomp_enable=no
+
+case "$XBPS_TARGET_MACHINE" in
+ ppc64le*) ;;
+ ppc*|i686*) _lldb_enable=no ;;
+esac
+
+case "$XBPS_TARGET_MACHINE" in
+ x86_64*|aarch64*|ppc64*) _libomp_enable=yes;;
+esac
+
+subpackages="clang-tools-extra"
+
+# must go before clang
+if [ "$_libomp_enable" = "yes" ]; then
+ _enabled_projects+=";openmp"
+ subpackages+=" libomp libomp-devel"
+ # because of cmake nonsense referencing libomptarget.so.*
+ depends+=" libomp>=${version}_${revision}"
+fi
+
+subpackages+=" clang clang-analyzer libclang libclang-cpp
+ llvm-libunwind llvm-libunwind-devel libcxx libcxx-devel
+ libcxxabi libcxxabi-devel libllvm15"
+
+if [ "$_lldb_enable" = "yes" ]; then
+ # XXX fails to cross compile due to python
+ _enabled_projects+=";lldb"
+ subpackages+=" lldb lldb-devel"
+fi
+
+subpackages+=" lld lld-devel"
+
+configure_args+=" -DLLVM_ENABLE_PROJECTS=${_enabled_projects}"
+
+post_patch() {
+ if [ "$_lldb_enable" = "yes" ]; then
+ if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
+ vsed -i 's|__ptrace_request|int|g' \
+ ${wrksrc}/lldb/source/Plugins/Process/Linux/NativeProcessLinux.cpp
+ fi
+ # disable docs for lldb as they fail to generate
+ vsed -i '/add_subdirectory(docs)/d' \
+ ${wrksrc}/lldb/CMakeLists.txt
+ fi
+
+ # update config.guess for better platform detection
+ cp $XBPS_COMMONDIR/environment/configure/automake/config.guess \
+ ${wrksrc}/llvm/cmake
+
+ # fix linker failures on some archs
+ vsed -i 's,check_library_exists(gcc_s .*,set(LIBCXXABI_HAS_GCC_S_LIB ON),' \
+ ${wrksrc}/libcxxabi/cmake/config-ix.cmake
+ vsed -i 's,check_library_exists(gcc .*,set(LIBCXXABI_HAS_GCC_LIB ON),' \
+ ${wrksrc}/libcxxabi/cmake/config-ix.cmake
+
+ # need libssp_nonshared on some musl platforms (because of nodefaultlibs)
+ case "$XBPS_TARGET_MACHINE" in
+ ppc64*) ;;
+ ppc*-musl|i686-musl|mips*-musl)
+ vsed -i 's,^# Setup flags.$,add_library_flags(ssp_nonshared),' \
+ ${wrksrc}/libunwind/src/CMakeLists.txt
+ vsed -i 's,^# Setup flags.$,add_library_flags(ssp_nonshared),' \
+ ${wrksrc}/libcxxabi/src/CMakeLists.txt
+ vsed -i 's,#ssp,,' ${wrksrc}/libcxx/CMakeLists.txt
+ ;;
+ esac
+
+ case "$XBPS_TARGET_MACHINE" in
+ x86_64-musl) # some sanitizer currently only on x86_64 stuff needs backtrace
+ vsed -i 's,# Set common link flags.,list(APPEND SANITIZER_COMMON_LINK_LIBS execinfo),' \
+ ${wrksrc}/compiler-rt/CMakeLists.txt
+ ;;
+ arm*-musl|i686-musl) # sanitizer code is broken since it duplicates some libc bits
+ vsed -i 's/set(COMPILER_RT_HAS_SANITIZER_COMMON TRUE)/set(COMPILER_RT_HAS_SANITIZER_COMMON FALSE)/' \
+ ${wrksrc}/compiler-rt/cmake/config-ix.cmake
+ ;;
+ esac
+}
+
+pre_configure() {
+ local triplet
+
+ # Vastly reduce size of debugging symbols:
+ CFLAGS=${CFLAGS/ -g/ -g1}
+ CXXFLAGS=${CXXFLAGS/ -g/ -g1}
+
+ # since gcc9, the build likes to blow up for ppc32 apparently because
+ # of clang being too large for a 24-bit relative call to the PLT, so
+ # optimize for size instead
+ case "$XBPS_TARGET_MACHINE" in
+ ppc64*) ;;
+ mips*-musl|ppc*) configure_args+=" -DVOID_CXX_OPT_FLAGS=-Os" ;;
+ esac
+
+ if [ "$CROSS_BUILD" ]; then
+ msg_normal "Building host tblgen\n"
+ mkdir -p build/HOST
+ cd build/HOST
+ CC="$BUILD_CC" CXX="$BUILD_CXX" CFLAGS="$BUILD_CFLAGS" \
+ CXXFLAGS="$BUILD_CXXFLAGS" LDFLAGS="$BUILD_LDFLAGS" \
+ cmake ../.. -DCMAKE_BUILD_TYPE=Release \
+ -DLLVM_ENABLE_PROJECTS=${_enabled_projects}
+ make ${makejobs} -C utils/TableGen
+ make ${makejobs} -C tools/clang/utils/TableGen
+ [ "$_lldb_enable" = "yes" ] && make ${makejobs} -C tools/lldb/utils/TableGen
+ configure_args+=" -DLLVM_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/llvm-tblgen"
+ configure_args+=" -DCLANG_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/clang-tblgen"
+ [ "$_lldb_enable" = "yes" ] && configure_args+=" -DLLDB_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/lldb-tblgen"
+ cd ../..
+ fi
+
+ case "$XBPS_TARGET_MACHINE" in
+ i686*) _arch="X86";;
+ x86_64*) _arch="X86";;
+ armv5*) _arch="Armv5te";;
+ armv6*) _arch="Armv6";;
+ armv7*) _arch="Armv7";;
+ aarch64*) _arch="AArch64";;
+ mips*) _arch="Mips";;
+ ppc*) _arch="PowerPC";;
+ riscv64*) _arch="RISCV64";;
+ esac
+
+ triplet=${XBPS_CROSS_TRIPLET:-$XBPS_TRIPLET}
+
+ configure_args+=" -DLLVM_TARGET_ARCH=${_arch}"
+ configure_args+=" -DLLVM_HOST_TRIPLE=${triplet}"
+ configure_args+=" -DLLVM_DEFAULT_TARGET_TRIPLE=${triplet}"
+}
+
+do_install() {
+ cd build
+ cmake -DCMAKE_INSTALL_PREFIX=${DESTDIR}/usr -P cmake_install.cmake
+
+ # Required for multilib.
+ if [ "$XBPS_TARGET_MACHINE" = "x86_64" ]; then
+ for _header in llvm-config; do
+ mv ${DESTDIR}/usr/include/llvm/Config/${_header}{,-64}.h
+ vinstall ${FILESDIR}/llvm-Config-${_header}.h 644 \
+ usr/include/llvm/Config ${_header}.h
+ done
+ fi
+
+ # Remove llvm-config-host in cross builds.
+ if [ "$CROSS_BUILD" ]; then
+ rm -f ${DESTDIR}/usr/bin/llvm-config-host
+ fi
+
+ # Install libcxxabi headers
+ vinstall ${wrksrc}/libcxxabi/include/__cxxabi_config.h 644 usr/include
+ vinstall ${wrksrc}/libcxxabi/include/cxxabi.h 644 usr/include
+
+ # Install libunwind headers
+ vinstall ${wrksrc}/libunwind/include/__libunwind_config.h 644 usr/include
+ vinstall ${wrksrc}/libunwind/include/libunwind.h 644 usr/include
+ vinstall ${wrksrc}/libunwind/include/unwind.h 644 usr/include
+ vinstall ${wrksrc}/libunwind/include/mach-o/compact_unwind_encoding.h \
+ 644 usr/include/mach-o
+}
+
+clang-analyzer_package() {
+ pycompile_dirs="usr/share/scan-view"
+ depends="clang-${version}_${revision} python3 perl"
+ short_desc+=" - A source code analysis framework"
+ homepage="https://clang-analyzer.llvm.org/"
+ pkg_install() {
+ vmove "usr/bin/scan-*"
+ vmove "usr/libexec/*analyzer"
+ vmove "usr/share/scan-*"
+ vmove usr/share/man/man1/scan-build.1
+ }
+}
+
+clang-tools-extra_package() {
+ lib32disabled=yes
+ depends="clang-${version}_${revision} python3"
+ short_desc+=" - Extra Clang tools"
+ homepage="https://clang.llvm.org/extra/"
+ pkg_install() {
+ vmove usr/bin/clang-apply-replacements
+ vmove usr/bin/clang-doc
+ vmove usr/bin/clang-include-fixer
+ vmove usr/bin/clang-query
+ vmove usr/bin/clang-rename
+ vmove usr/bin/clang-reorder-fields
+ vmove usr/bin/clang-tidy
+ vmove usr/bin/clangd
+ vmove usr/bin/diagtool
+ vmove usr/bin/find-all-symbols
+ vmove usr/bin/hmaptool
+ vmove usr/bin/modularize
+ vmove usr/bin/pp-trace
+ vmove usr/bin/sancov
+ vmove usr/include/clang-tidy
+ vmove "usr/lib/libclangApplyReplacements*"
+ vmove "usr/lib/libclangDoc*"
+ vmove "usr/lib/libclangIncludeFixer*"
+ vmove "usr/lib/libclangReorderFields*"
+ vmove "usr/lib/libclangQuery*"
+ vmove "usr/lib/libclangTidy*"
+ vmove "usr/share/clang/*include-fixer*"
+ vmove "usr/share/clang/*rename*"
+ vmove "usr/share/clang/*tidy*"
+ vmove usr/share/doc/LLVM/clang-tools
+ vmove usr/share/man/man1/diagtool.1
+ vmove usr/share/man/man1/extraclangtools.1
+ }
+}
+
+clang_package() {
+ lib32disabled=yes
+ depends="libstdc++-devel libgcc-devel binutils ${XBPS_TARGET_LIBC}-devel
+ libclang-${version}_${revision}"
+ short_desc+=" - C language family frontend"
+ homepage="https://clang.llvm.org/"
+ pkg_install() {
+ vmove "usr/bin/*clang*"
+ vmove usr/bin/c-index-test
+ vmove usr/include/clang
+ vmove usr/include/clang-c
+ vmove usr/lib/clang
+ vmove usr/lib/cmake/clang
+ vmove "usr/lib/libclang*.a"
+ vmove "usr/lib/libclang*.so"
+ vmove usr/share/clang
+ vmove usr/share/doc/LLVM/clang
+ vmove usr/share/man/man1/clang.1
+ }
+}
+
+libclang_package() {
+ short_desc+=" - C frontend runtime library"
+ pkg_install() {
+ vmove "usr/lib/libclang.so.*"
+ }
+}
+
+libclang-cpp_package() {
+ short_desc+=" - C frontend runtime library (C++ interface)"
+ pkg_install() {
+ vmove "usr/lib/libclang-cpp.so.*"
+ }
+}
+
+lld_package() {
+ lib32disabled=yes
+ short_desc+=" - linker"
+ homepage="https://lld.llvm.org"
+ pkg_install() {
+ vmove usr/bin/ld.lld*
+ vmove usr/bin/ld64.lld*
+ vmove usr/bin/lld*
+ vmove usr/bin/wasm-ld
+ vmove usr/share/doc/LLVM/lld
+ }
+}
+
+lld-devel_package() {
+ lib32disabled=yes
+ short_desc+=" - linker - development files"
+ homepage="https://lld.llvm.org"
+ depends="lld>=${version}_${revision}"
+ pkg_install() {
+ vmove usr/include/lld
+ vmove usr/lib/cmake/lld
+ vmove "usr/lib/liblld*a"
+ }
+}
+
+lldb_package() {
+ lib32disabled=yes
+ depends+=" python3-six"
+ short_desc+=" - LLDB debugger"
+ homepage="https://lldb.llvm.org/"
+ pkg_install() {
+ vmove usr/bin/*lldb*
+ vmove usr/lib/liblldb*so.*
+ vmove /usr/lib/python*
+ }
+}
+
+lldb-devel_package() {
+ lib32disabled=yes
+ depends="lldb>=${version}_${revision}"
+ short_desc+=" - LLDB debugger - development files"
+ pkg_install() {
+ vmove usr/include/lldb
+ vmove "usr/lib/liblldb*.so"
+ }
+}
+
+llvm-libunwind_package() {
+ short_desc+=" - libunwind"
+ pkg_install() {
+ vmove "usr/lib/${XBPS_TRIPLET}/libunwind.so.*"
+ }
+}
+
+llvm-libunwind-devel_package() {
+ short_desc+=" - libunwind - development files"
+ depends="llvm-libunwind>=${version}_${revision}"
+ conflicts="libunwind-devel>=0"
+ pkg_install() {
+ vmove usr/include/mach-o
+ vmove "usr/include/*unwind*"
+ vmove "usr/lib/${XBPS_TRIPLET}/libunwind.a"
+ vmove "usr/lib/${XBPS_TRIPLET}/libunwind.so"
+ vmove usr/share/doc/LLVM/libunwind
+ }
+}
+
+libcxxabi_package() {
+ short_desc+=" - low level support for libc++"
+ pkg_install() {
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++abi.so.*"
+ }
+}
+
+libcxxabi-devel_package() {
+ short_desc+=" - low level support for libc++ - development files"
+ depends="libcxxabi>=${version}_${revision}"
+ pkg_install() {
+ vmove "usr/include/*cxxabi*"
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++abi.so"
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++abi.a"
+ }
+}
+
+libcxx_package() {
+ short_desc+=" - C++ standard library"
+ pkg_install() {
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++.so.*"
+ }
+}
+
+libcxx-devel_package() {
+ short_desc+=" - C++ standard library - development files"
+ depends="libcxx>=${version}_${revision}"
+ pkg_install() {
+ vmove usr/include/c++
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++.so"
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++.a"
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++experimental.a"
+ vmove usr/share/doc/LLVM/libcxx
+ }
+}
+
+libomp_package() {
+ short_desc+=" - Clang OpenMP support library"
+ pkg_install() {
+ vmove usr/lib/libarcher.so
+ vmove usr/lib/libomp.so
+ vmove usr/lib/libompd.so
+ vmove "usr/lib/libomptarget.rtl.*.so"
+ vmove "usr/lib/libomp*.so.*"
+ }
+}
+
+libomp-devel_package() {
+ short_desc+=" - Clang OpenMP support library - development files"
+ depends="libomp>=${version}_${revision}"
+ pkg_install() {
+ vmove "usr/include/omp*.h"
+ vmove "usr/lib/clang/${version}/include/omp*.h"
+ vmove "usr/lib/libarcher*"
+ vmove "usr/lib/libomp*.so"
+ vmove usr/lib/cmake/openmp
+ vmove usr/share/doc/LLVM/openmp
+ vmove usr/share/man/man1/llvmopenmp.1
+ }
+}
+
+libllvm15_package() {
+ short_desc+=" - runtime library"
+ pkg_install() {
+ vmove "usr/lib/libLLVM-*.so*"
+ }
+}
diff --git a/srcpkgs/llvm15/update b/srcpkgs/llvm15/update
new file mode 100644
index 000000000000..e95cf26b3586
--- /dev/null
+++ b/srcpkgs/llvm15/update
@@ -0,0 +1,3 @@
+site="https://github.com/llvm/llvm-project/releases"
+pattern="llvmorg-\K(\d+.){2}\d+(-rc\d+)?"
+ignore="*-rc*"
^ permalink raw reply [flat|nested] 96+ messages in thread
* Re: [PR REVIEW] [WIP] LLVM 15
2022-11-28 15:30 [PR PATCH] [WIP] LLVM 15 tranzystorek-io
` (22 preceding siblings ...)
2022-12-17 9:09 ` tranzystorek-io
@ 2022-12-17 10:44 ` paper42
2022-12-17 23:41 ` [PR PATCH] [Updated] " tranzystorek-io
` (70 subsequent siblings)
94 siblings, 0 replies; 96+ messages in thread
From: paper42 @ 2022-12-17 10:44 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 213 bytes --]
New review comment by paper42 on void-packages repository
https://github.com/void-linux/void-packages/pull/40821#discussion_r1051382686
Comment:
this should be in a separate commit, "New package: llvm15-15.0.6"
^ permalink raw reply [flat|nested] 96+ messages in thread
* Re: [PR PATCH] [Updated] [WIP] LLVM 15
2022-11-28 15:30 [PR PATCH] [WIP] LLVM 15 tranzystorek-io
` (23 preceding siblings ...)
2022-12-17 10:44 ` [PR REVIEW] " paper42
@ 2022-12-17 23:41 ` tranzystorek-io
2022-12-18 0:02 ` [PR REVIEW] " oreo639
` (69 subsequent siblings)
94 siblings, 0 replies; 96+ messages in thread
From: tranzystorek-io @ 2022-12-17 23:41 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 502 bytes --]
There is an updated pull request by tranzystorek-io against master on the void-packages repository
https://github.com/tranzystorek-io/void-packages llvm15
https://github.com/void-linux/void-packages/pull/40821
[WIP] LLVM 15
[ci skip]
TODO:
- [ ] Adjust patches marked as `.patch.skip`
- [ ] Make libomp a shlib (change so file name and install a symlink)
- [ ] Avoid creating triplet dirs under /usr/
A patch file from https://github.com/void-linux/void-packages/pull/40821.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-llvm15-40821.patch --]
[-- Type: text/x-diff, Size: 55435 bytes --]
From d2840687e08adbad5a91eace4e52709c74d094e4 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Sun, 18 Dec 2022 00:36:59 +0100
Subject: [PATCH 1/2] New package: llvm15-15.0.6
---
common/shlibs | 1 +
srcpkgs/libllvm15 | 1 +
.../llvm15/files/llvm-Config-llvm-config.h | 9 +
...clang-001-fix-unwind-chain-inclusion.patch | 44 ++
.../patches/clang-002-add-musl-triples.patch | 110 +++++
.../clang-003-ppc64-dynamic-linker-path.patch | 13 +
.../patches/clang-004-ppc64-musl-elfv2.patch | 48 ++
.../compiler-rt-sanitizer-ppc64-musl.patch | 35 ++
.../compiler-rt-xray-ppc64-musl.patch.skip | 62 +++
srcpkgs/llvm15/patches/libcxx-musl.patch | 26 ++
srcpkgs/llvm15/patches/libcxx-ppc.patch | 22 +
.../llvm15/patches/libcxx-ssp-nonshared.patch | 11 +
srcpkgs/llvm15/patches/libcxxabi-dl.patch | 25 +
.../llvm15/patches/libunwind-ppc32.patch.skip | 63 +++
srcpkgs/llvm15/patches/lldb-musl.patch | 40 ++
srcpkgs/llvm15/patches/llvm-001-musl.patch | 57 +++
.../patches/llvm-002-musl-ppc64-elfv2.patch | 30 ++
.../patches/llvm-003-ppc-secureplt.patch | 11 +
.../patches/llvm-004-override-opt.patch | 18 +
.../llvm15/patches/llvm-005-ppc-bigpic.patch | 36 ++
.../patches/llvm-006-aarch64-mf_exec.patch | 25 +
srcpkgs/llvm15/template | 434 ++++++++++++++++++
srcpkgs/llvm15/update | 3 +
23 files changed, 1124 insertions(+)
create mode 120000 srcpkgs/libllvm15
create mode 100644 srcpkgs/llvm15/files/llvm-Config-llvm-config.h
create mode 100644 srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch
create mode 100644 srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch
create mode 100644 srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch
create mode 100644 srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch
create mode 100644 srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch
create mode 100644 srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip
create mode 100644 srcpkgs/llvm15/patches/libcxx-musl.patch
create mode 100644 srcpkgs/llvm15/patches/libcxx-ppc.patch
create mode 100644 srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch
create mode 100644 srcpkgs/llvm15/patches/libcxxabi-dl.patch
create mode 100644 srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip
create mode 100644 srcpkgs/llvm15/patches/lldb-musl.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-001-musl.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-004-override-opt.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch
create mode 100644 srcpkgs/llvm15/template
create mode 100644 srcpkgs/llvm15/update
diff --git a/common/shlibs b/common/shlibs
index ba5c89ee3bad..3cb919b3ce3b 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -987,6 +987,7 @@ libclang.so.12 libclang-12.0.0_1
libclang-cpp.so.12 libclang-cpp-12.0.0_1
libLLVM-11.so libllvm11-11.0.0_1
libLLVM-12.so libllvm12-12.0.0_1
+libLLVM-15.so libllvm15-15.0.6_1
libisofs.so.6 libisofs-0.6.24_1
libmpack.so.0 libmpack-1.0.5_1
libGeoIP.so.1 libgeoip-1.4.8_1
diff --git a/srcpkgs/libllvm15 b/srcpkgs/libllvm15
new file mode 120000
index 000000000000..ad57a969b9f9
--- /dev/null
+++ b/srcpkgs/libllvm15
@@ -0,0 +1 @@
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm15/files/llvm-Config-llvm-config.h b/srcpkgs/llvm15/files/llvm-Config-llvm-config.h
new file mode 100644
index 000000000000..2fa08c9be696
--- /dev/null
+++ b/srcpkgs/llvm15/files/llvm-Config-llvm-config.h
@@ -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
diff --git a/srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch b/srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch
new file mode 100644
index 000000000000..e4eaa7783e7a
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch
@@ -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
diff --git a/srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch b/srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch
new file mode 100644
index 000000000000..25688d40dbc2
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch
@@ -0,0 +1,110 @@
+--- a/clang/lib/Driver/ToolChains/Gnu.cpp
++++ b/clang/lib/Driver/ToolChains/Gnu.cpp
+@@ -2086,7 +2086,8 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
+ static const char *const ARMHFTriples[] = {"arm-linux-gnueabihf",
+ "armv7hl-redhat-linux-gnueabi",
+ "armv6hl-suse-linux-gnueabi",
+- "armv7hl-suse-linux-gnueabi"};
++ "armv7hl-suse-linux-gnueabi",
++ "armv7l-linux-gnueabihf"};
+ static const char *const ARMebLibDirs[] = {"/lib"};
+ static const char *const ARMebTriples[] = {"armeb-linux-gnueabi",
+ "armeb-linux-androideabi"};
+@@ -2153,8 +2154,7 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
+ "powerpc64-suse-linux", "powerpc-montavista-linuxspe"};
+ static const char *const PPCLELibDirs[] = {"/lib32", "/lib"};
+ static const char *const PPCLETriples[] = {"powerpcle-linux-gnu",
+- "powerpcle-unknown-linux-gnu",
+- "powerpcle-linux-musl"};
++ "powerpcle-unknown-linux-gnu"};
+
+ static const char *const PPC64LibDirs[] = {"/lib64", "/lib"};
+ static const char *const PPC64Triples[] = {
+@@ -2235,6 +2235,87 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
+ return;
+ }
+
++ if (TargetTriple.isMusl()) {
++ static const char *const AArch64MuslTriples[] = {"aarch64-linux-musl"};
++ static const char *const ARMHFMuslTriples[] = {
++ "arm-linux-musleabihf", "armv7l-linux-musleabihf"
++ };
++ static const char *const ARMMuslTriples[] = {"arm-linux-musleabi"};
++ static const char *const X86_64MuslTriples[] = {"x86_64-linux-musl"};
++ static const char *const X86MuslTriples[] = {"i686-linux-musl"};
++ static const char *const MIPSMuslTriples[] = {
++ "mips-linux-musl", "mipsel-linux-musl",
++ "mipsel-linux-muslhf", "mips-linux-muslhf"
++ };
++ static const char *const PPCMuslTriples[] = {"powerpc-linux-musl"};
++ static const char *const PPCLEMuslTriples[] = {"powerpcle-linux-musl"};
++ static const char *const PPC64MuslTriples[] = {"powerpc64-linux-musl"};
++ static const char *const PPC64LEMuslTriples[] = {"powerpc64le-linux-musl"};
++
++ switch (TargetTriple.getArch()) {
++ case llvm::Triple::aarch64:
++ LibDirs.append(begin(AArch64LibDirs), end(AArch64LibDirs));
++ TripleAliases.append(begin(AArch64MuslTriples), end(AArch64MuslTriples));
++ BiarchLibDirs.append(begin(AArch64LibDirs), end(AArch64LibDirs));
++ BiarchTripleAliases.append(begin(AArch64MuslTriples), end(AArch64MuslTriples));
++ break;
++ case llvm::Triple::arm:
++ LibDirs.append(begin(ARMLibDirs), end(ARMLibDirs));
++ if (TargetTriple.getEnvironment() == llvm::Triple::MuslEABIHF) {
++ TripleAliases.append(begin(ARMHFMuslTriples), end(ARMHFMuslTriples));
++ } else {
++ TripleAliases.append(begin(ARMMuslTriples), end(ARMMuslTriples));
++ }
++ break;
++ case llvm::Triple::x86_64:
++ LibDirs.append(begin(X86_64LibDirs), end(X86_64LibDirs));
++ TripleAliases.append(begin(X86_64MuslTriples), end(X86_64MuslTriples));
++ BiarchLibDirs.append(begin(X86LibDirs), end(X86LibDirs));
++ BiarchTripleAliases.append(begin(X86MuslTriples), end(X86MuslTriples));
++ break;
++ case llvm::Triple::x86:
++ LibDirs.append(begin(X86LibDirs), end(X86LibDirs));
++ TripleAliases.append(begin(X86MuslTriples), end(X86MuslTriples));
++ BiarchLibDirs.append(begin(X86_64LibDirs), end(X86_64LibDirs));
++ BiarchTripleAliases.append(begin(X86_64MuslTriples), end(X86_64MuslTriples));
++ break;
++ case llvm::Triple::mips:
++ LibDirs.append(begin(MIPSLibDirs), end(MIPSLibDirs));
++ TripleAliases.append(begin(MIPSMuslTriples), end(MIPSMuslTriples));
++ break;
++ case llvm::Triple::ppc:
++ LibDirs.append(begin(PPCLibDirs), end(PPCLibDirs));
++ TripleAliases.append(begin(PPCMuslTriples), end(PPCMuslTriples));
++ BiarchLibDirs.append(begin(PPC64LibDirs), end(PPC64LibDirs));
++ BiarchTripleAliases.append(begin(PPC64MuslTriples), end(PPC64MuslTriples));
++ break;
++ case llvm::Triple::ppcle:
++ LibDirs.append(begin(PPCLELibDirs), end(PPCLELibDirs));
++ TripleAliases.append(begin(PPCLEMuslTriples), end(PPCLEMuslTriples));
++ BiarchLibDirs.append(begin(PPC64LELibDirs), end(PPC64LELibDirs));
++ BiarchTripleAliases.append(begin(PPC64LEMuslTriples), end(PPC64LEMuslTriples));
++ break;
++ case llvm::Triple::ppc64:
++ LibDirs.append(begin(PPC64LibDirs), end(PPC64LibDirs));
++ TripleAliases.append(begin(PPC64MuslTriples), end(PPC64MuslTriples));
++ BiarchLibDirs.append(begin(PPCLibDirs), end(PPCLibDirs));
++ BiarchTripleAliases.append(begin(PPCMuslTriples), end(PPCMuslTriples));
++ break;
++ case llvm::Triple::ppc64le:
++ LibDirs.append(begin(PPC64LELibDirs), end(PPC64LELibDirs));
++ TripleAliases.append(begin(PPC64LEMuslTriples), end(PPC64LEMuslTriples));
++ BiarchLibDirs.append(begin(PPCLELibDirs), end(PPCLELibDirs));
++ BiarchTripleAliases.append(begin(PPCLEMuslTriples), end(PPCLEMuslTriples));
++ break;
++ default:
++ break;
++ }
++ TripleAliases.push_back(TargetTriple.str());
++ if (TargetTriple.str() != BiarchTriple.str())
++ BiarchTripleAliases.push_back(BiarchTriple.str());
++ return;
++ }
++
+ // Android targets should not use GNU/Linux tools or libraries.
+ if (TargetTriple.isAndroid()) {
+ static const char *const AArch64AndroidTriples[] = {
diff --git a/srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch b/srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch
new file mode 100644
index 000000000000..4ad6412d1e6c
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch
@@ -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 =
diff --git a/srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch b/srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch
new file mode 100644
index 000000000000..21fc8003c5f1
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch
@@ -0,0 +1,48 @@
+--- a/clang/lib/Basic/Targets/PPC.h
++++ b/clang/lib/Basic/Targets/PPC.h
+@@ -415,11 +415,10 @@ public:
+ LongDoubleFormat = &llvm::APFloat::IEEEdouble();
+ } else if ((Triple.getArch() == llvm::Triple::ppc64le)) {
+ DataLayout = "e-m:e-i64:64-n32:64";
+- ABI = "elfv2";
+ } else {
+ DataLayout = "E-m:e-i64:64-n32:64";
+- ABI = "elfv1";
+ }
++ ABI = "elfv2";
+
+ if (Triple.isOSFreeBSD() || Triple.isOSOpenBSD() || Triple.isMusl()) {
+ LongDoubleWidth = LongDoubleAlign = 64;
+--- a/clang/lib/CodeGen/TargetInfo.cpp
++++ b/clang/lib/CodeGen/TargetInfo.cpp
+@@ -10927,9 +10927,9 @@ const TargetCodeGenInfo &CodeGenModule::getTargetCodeGenInfo() {
+ return SetCGInfo(new AIXTargetCodeGenInfo(Types, /*Is64Bit*/ true));
+
+ if (Triple.isOSBinFormatELF()) {
+- PPC64_SVR4_ABIInfo::ABIKind Kind = PPC64_SVR4_ABIInfo::ELFv1;
+- if (getTarget().getABI() == "elfv2")
+- Kind = PPC64_SVR4_ABIInfo::ELFv2;
++ PPC64_SVR4_ABIInfo::ABIKind Kind = PPC64_SVR4_ABIInfo::ELFv2;
++ if (getTarget().getABI() == "elfv1")
++ Kind = PPC64_SVR4_ABIInfo::ELFv1;
+ bool IsSoftFloat = CodeGenOpts.FloatABI == "soft";
+
+ return SetCGInfo(
+--- a/clang/lib/Driver/ToolChains/Clang.cpp
++++ b/clang/lib/Driver/ToolChains/Clang.cpp
+@@ -1920,14 +1920,7 @@ void Clang::AddPPCTargetArgs(const ArgList &Args,
+ const llvm::Triple &T = getToolChain().getTriple();
+ if (T.isOSBinFormatELF()) {
+ switch (getToolChain().getArch()) {
+- case llvm::Triple::ppc64: {
+- if ((T.isOSFreeBSD() && T.getOSMajorVersion() >= 13) ||
+- T.isOSOpenBSD() || T.isMusl())
+- ABIName = "elfv2";
+- else
+- ABIName = "elfv1";
+- break;
+- }
++ case llvm::Triple::ppc64:
+ case llvm::Triple::ppc64le:
+ ABIName = "elfv2";
+ break;
diff --git a/srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch b/srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch
new file mode 100644
index 000000000000..360cfc1ba7f1
--- /dev/null
+++ b/srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch
@@ -0,0 +1,35 @@
+--- 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__) || SANITIZER_RISCV64
++ defined(__hexagon__) || defined(__powerpc__) || 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_ANDROID
++#if (defined(__aarch64__) || defined(__powerpc__) || SANITIZER_RISCV64) && !SANITIZER_ANDROID
+ // GLIBC 2.20+ sys/user does not include asm/ptrace.h
+ # include <asm/ptrace.h>
+ #endif
diff --git a/srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip b/srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip
new file mode 100644
index 000000000000..d0b61c80c897
--- /dev/null
+++ b/srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip
@@ -0,0 +1,62 @@
+--- a/compiler-rt/lib/xray/xray_powerpc64.inc
++++ b/compiler-rt/lib/xray/xray_powerpc64.inc
+@@ -12,7 +12,13 @@
+
+ #include <cstdint>
+ #include <mutex>
++#ifdef __GLIBC__
+ #include <sys/platform/ppc.h>
++#else
++#include <cctype>
++#include <cstring>
++#include <cstdlib>
++#endif
+
+ #include "xray_defs.h"
+
+@@ -20,13 +26,45 @@ namespace __xray {
+
+ ALWAYS_INLINE uint64_t readTSC(uint8_t &CPU) XRAY_NEVER_INSTRUMENT {
+ CPU = 0;
++#ifdef __GLIBC__
+ return __ppc_get_timebase();
++#else
++ return __builtin_ppc_get_timebase();
++#endif
+ }
+
+ inline uint64_t getTSCFrequency() XRAY_NEVER_INSTRUMENT {
+ static std::mutex M;
+ std::lock_guard<std::mutex> Guard(M);
++#ifdef __GLIBC__
+ return __ppc_get_timebase_freq();
++#else
++ /* FIXME: a less dirty implementation? */
++ static uint64_t base;
++ if (!base) {
++ FILE *f = fopen("/proc/cpuinfo", "rb");
++ if (f) {
++ ssize_t nr;
++ /* virtually always big enough to hold the line */
++ char buf[512];
++ while (fgets(buf, sizeof(buf), f)) {
++ char *ret = strstr(buf, "timebase");
++ if (!ret) {
++ continue;
++ }
++ ret += sizeof("timebase") - 1;
++ ret = strchr(ret, ':');
++ if (!ret) {
++ continue;
++ }
++ base = strtoul(ret + 1, nullptr, 10);
++ break;
++ }
++ fclose(f);
++ }
++ }
++ return base;
++#endif
+ }
+
+ inline bool probeRequiredCPUFeatures() XRAY_NEVER_INSTRUMENT {
diff --git a/srcpkgs/llvm15/patches/libcxx-musl.patch b/srcpkgs/llvm15/patches/libcxx-musl.patch
new file mode 100644
index 000000000000..bbd31ffc2cb1
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxx-musl.patch
@@ -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,
+ typename remove_reference<decltype(errno)>::type __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
+ typename remove_reference<decltype(errno)>::type __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,
+ typename remove_reference<decltype(errno)>::type __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
+ typename remove_reference<decltype(errno)>::type __current_errno = errno;
+ if (__current_errno == 0)
+ errno = __save_errno;
diff --git a/srcpkgs/llvm15/patches/libcxx-ppc.patch b/srcpkgs/llvm15/patches/libcxx-ppc.patch
new file mode 100644
index 000000000000..7a92f8004e1c
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxx-ppc.patch
@@ -0,0 +1,22 @@
+This ensures `is_iec559` is defined correctly under all long double ABIs,
+including musl and its 64-bit long double. Also, `__ppc__` or `__ppc64__`
+is not defined on gcc.
+
+--- a/libcxx/include/limits
++++ b/libcxx/include/limits
+@@ -426,8 +426,14 @@ protected:
+ _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type signaling_NaN() _NOEXCEPT {return __builtin_nansl("");}
+ _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type denorm_min() _NOEXCEPT {return __LDBL_DENORM_MIN__;}
+
+-#if (defined(__ppc__) || defined(__ppc64__))
++#if defined(__powerpc__) || defined(__powerpc64__)
++#if (__LDBL_MAX_EXP__ > __DBL_MAX_EXP__) || (__LDBL_MANT_DIG__ == __DBL_MANT_DIG__)
++ /* IEEE 754 quadruple or double precision */
++ static _LIBCPP_CONSTEXPR const bool is_iec559 = true;
++#else
++ /* 128-bit IBM double-double */
+ static _LIBCPP_CONSTEXPR const bool is_iec559 = false;
++#endif
+ #else
+ static _LIBCPP_CONSTEXPR const bool is_iec559 = true;
+ #endif
diff --git a/srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch b/srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch
new file mode 100644
index 000000000000..70292beb2fcd
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch
@@ -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()
diff --git a/srcpkgs/llvm15/patches/libcxxabi-dl.patch b/srcpkgs/llvm15/patches/libcxxabi-dl.patch
new file mode 100644
index 000000000000..3a15f9db8c98
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxxabi-dl.patch
@@ -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 @@
+ target_link_libraries(${target} PRIVATE m)
+ endif()
+
++ if (LIBCXX_HAS_C_LIB)
++ target_link_libraries(${target} PRIVATE dl)
++ endif()
++
+ if (LIBCXX_HAS_RT_LIB)
+ target_link_libraries(${target} PRIVATE rt)
+ endif()
diff --git a/srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip b/srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip
new file mode 100644
index 000000000000..74aa7576ecf9
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip
@@ -0,0 +1,63 @@
+This fixes build at least with gcc9 which does not define `__ppc__`.
+
+--- a/libunwind/include/__libunwind_config.h
++++ b/libunwind/include/__libunwind_config.h
+@@ -49,7 +49,7 @@
+ # define _LIBUNWIND_CONTEXT_SIZE 167
+ # define _LIBUNWIND_CURSOR_SIZE 179
+ # define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_PPC64
+-# elif defined(__ppc__)
++# elif defined(__powerpc__)
+ # define _LIBUNWIND_TARGET_PPC 1
+ # define _LIBUNWIND_CONTEXT_SIZE 117
+ # define _LIBUNWIND_CURSOR_SIZE 124
+--- a/libunwind/src/UnwindRegistersRestore.S
++++ b/libunwind/src/UnwindRegistersRestore.S
+@@ -392,7 +392,7 @@ Lnovec:
+ PPC64_LR(3)
+ bctr
+
+-#elif defined(__ppc__)
++#elif defined(__powerpc__)
+
+ DEFINE_LIBUNWIND_FUNCTION(_ZN9libunwind13Registers_ppc6jumptoEv)
+ //
+--- a/libunwind/src/UnwindRegistersSave.S
++++ b/libunwind/src/UnwindRegistersSave.S
+@@ -554,7 +554,7 @@ DEFINE_LIBUNWIND_FUNCTION(__unw_getcontext)
+ blr
+
+
+-#elif defined(__ppc__)
++#elif defined(__powerpc__)
+
+ //
+ // extern int unw_getcontext(unw_context_t* thread_state)
+--- a/libunwind/src/config.h
++++ b/libunwind/src/config.h
+@@ -95,12 +95,12 @@
+ #define _LIBUNWIND_BUILD_SJLJ_APIS
+ #endif
+
+-#if defined(__i386__) || defined(__x86_64__) || defined(__ppc__) || defined(__ppc64__) || defined(__powerpc64__)
++#if defined(__i386__) || defined(__x86_64__) || defined(__powerpc__) || defined(__powerpc64__)
+ #define _LIBUNWIND_SUPPORT_FRAME_APIS
+ #endif
+
+ #if defined(__i386__) || defined(__x86_64__) || \
+- defined(__ppc__) || defined(__ppc64__) || defined(__powerpc64__) || \
++ defined(__powerpc__) || defined(__powerpc64__) || \
+ (!defined(__APPLE__) && defined(__arm__)) || \
+ (defined(__arm64__) || defined(__aarch64__)) || \
+ defined(__mips__)
+--- a/libunwind/src/libunwind.cpp
++++ b/libunwind/src/libunwind.cpp
+@@ -42,7 +42,7 @@ _LIBUNWIND_HIDDEN int __unw_init_local(unw_cursor_t *cursor,
+ # define REGISTER_KIND Registers_x86_64
+ #elif defined(__powerpc64__)
+ # define REGISTER_KIND Registers_ppc64
+-#elif defined(__ppc__)
++#elif defined(__powerpc__)
+ # define REGISTER_KIND Registers_ppc
+ #elif defined(__aarch64__)
+ # define REGISTER_KIND Registers_arm64
diff --git a/srcpkgs/llvm15/patches/lldb-musl.patch b/srcpkgs/llvm15/patches/lldb-musl.patch
new file mode 100644
index 000000000000..026c5e1e61ba
--- /dev/null
+++ b/srcpkgs/llvm15/patches/lldb-musl.patch
@@ -0,0 +1,40 @@
+--- a/lldb/source/Plugins/Process/Linux/Procfs.h
++++ b/lldb/source/Plugins/Process/Linux/Procfs.h
+@@ -10,6 +10,7 @@
+ // sys/procfs.h on Android/Linux for all supported architectures.
+
+ #include <sys/ptrace.h>
++#include <asm/ptrace.h>
+
+ #include "lldb/lldb-types.h"
+
+@@ -17,23 +18,13 @@
+
+ #include <vector>
+
+-#ifdef __ANDROID__
+-#if defined(__arm64__) || defined(__aarch64__)
+-typedef unsigned long elf_greg_t;
+-typedef elf_greg_t
+- elf_gregset_t[(sizeof(struct user_pt_regs) / sizeof(elf_greg_t))];
+-typedef struct user_fpsimd_state elf_fpregset_t;
+-#ifndef NT_FPREGSET
+-#define NT_FPREGSET NT_PRFPREG
+-#endif // NT_FPREGSET
+-#elif defined(__mips__)
+-#ifndef NT_FPREGSET
+-#define NT_FPREGSET NT_PRFPREG
+-#endif // NT_FPREGSET
+-#endif
+-#else // __ANDROID__
++#if !defined(__GLIBC__) && defined(__powerpc__)
++#define pt_regs musl_pt_regs
++#include <sys/procfs.h>
++#undef pt_regs
++#else
+ #include <sys/procfs.h>
+-#endif // __ANDROID__
++#endif
+
+ namespace lldb_private {
+ namespace process_linux {
diff --git a/srcpkgs/llvm15/patches/llvm-001-musl.patch b/srcpkgs/llvm15/patches/llvm-001-musl.patch
new file mode 100644
index 000000000000..f2a3f8d62813
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-001-musl.patch
@@ -0,0 +1,57 @@
+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;
+diff --git a/lib/Support/Unix/DynamicLibrary.inc b/lib/Support/Unix/DynamicLibrary.inc
+index a2a37996..2f86c470 100644
+--- a/llvm/lib/Support/Unix/DynamicLibrary.inc
++++ b/llvm/lib/Support/Unix/DynamicLibrary.inc
+@@ -102,7 +102,7 @@ static void *DoSearch(const char* SymbolName) {
+
+ // This macro returns the address of a well-known, explicit symbol
+ #define EXPLICIT_SYMBOL(SYM) \
+- if (!strcmp(SymbolName, #SYM)) return &SYM
++ if (!strcmp(SymbolName, #SYM)) return (void *)&SYM
+
+ // Under glibc we have a weird situation. The stderr/out/in symbols are both
+ // macros and global variables because of standards requirements. So, we
+diff --git a/utils/unittest/googletest/src/gtest.cc b/utils/unittest/googletest/src/gtest.cc
+index d882ab2e..f1fb12d0 100644
+--- a/llvm/utils/unittest/googletest/src/gtest.cc
++++ b/llvm/utils/unittest/googletest/src/gtest.cc
+@@ -128,6 +128,7 @@
+
+ #if GTEST_CAN_STREAM_RESULTS_
+ # include <arpa/inet.h> // NOLINT
++# include <sys/socket.h> // NOLINT
+ # include <netdb.h> // NOLINT
+ # include <sys/socket.h> // NOLINT
+ # include <sys/types.h> // NOLINT
diff --git a/srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch b/srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch
new file mode 100644
index 000000000000..0071d964bd37
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch
@@ -0,0 +1,30 @@
+This patches LLVM to use ELFv2 on ppc64 unconditionally unless overridden. We
+need this because unlike most distros we use ELFv2 for both glibc and musl
+on big endian ppc64.
+
+diff --git a/lib/Target/PowerPC/PPCTargetMachine.cpp b/lib/Target/PowerPC/PPCTargetMachine.cpp
+index 0634833e..b7cbc2e7 100644
+--- a/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp
++++ b/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp
+@@ -222,9 +222,8 @@ static PPCTargetMachine::PPCABI computeTargetABI(const Triple &TT,
+
+ switch (TT.getArch()) {
+ case Triple::ppc64le:
+- return PPCTargetMachine::PPC_ABI_ELFv2;
+ case Triple::ppc64:
+- return PPCTargetMachine::PPC_ABI_ELFv1;
++ return PPCTargetMachine::PPC_ABI_ELFv2;
+ default:
+ return PPCTargetMachine::PPC_ABI_UNKNOWN;
+ }
+diff --git a/test/CodeGen/PowerPC/ppc64-elf-abi.ll b/test/CodeGen/PowerPC/ppc64-elf-abi.ll
+index 8b1cf6b5..296a2afa 100644
+--- a/llvm/test/CodeGen/PowerPC/ppc64-elf-abi.ll
++++ b/llvm/test/CodeGen/PowerPC/ppc64-elf-abi.ll
+@@ -1,4 +1,5 @@
+-; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv1
++; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv2
++; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-musl < %s | FileCheck %s -check-prefix=CHECK-ELFv2
+ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu -target-abi elfv1 < %s | FileCheck %s -check-prefix=CHECK-ELFv1
+ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu -target-abi elfv2 < %s | FileCheck %s -check-prefix=CHECK-ELFv2
+ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv2
diff --git a/srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch b/srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch
new file mode 100644
index 000000000000..b5d15974375d
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch
@@ -0,0 +1,11 @@
+--- a/llvm/lib/Target/PowerPC/PPCSubtarget.cpp
++++ b/llvm/lib/Target/PowerPC/PPCSubtarget.cpp
+@@ -165,7 +165,7 @@ void PPCSubtarget::initSubtargetFeatures(StringRef CPU, StringRef FS) {
+
+ if ((TargetTriple.isOSFreeBSD() && TargetTriple.getOSMajorVersion() >= 13) ||
+ TargetTriple.isOSNetBSD() || TargetTriple.isOSOpenBSD() ||
+- TargetTriple.isMusl())
++ isTargetLinux())
+ SecurePlt = true;
+
+ if (HasSPE && IsPPC64)
diff --git a/srcpkgs/llvm15/patches/llvm-004-override-opt.patch b/srcpkgs/llvm15/patches/llvm-004-override-opt.patch
new file mode 100644
index 000000000000..51d0e4b31b32
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-004-override-opt.patch
@@ -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)
diff --git a/srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch b/srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch
new file mode 100644
index 000000000000..d332687b9d92
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch
@@ -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);
diff --git a/srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch b/srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch
new file mode 100644
index 000000000000..a00abd216665
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch
@@ -0,0 +1,25 @@
+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__) || defined (__ppc__) || \
+- defined(_POWER) || defined(_ARCH_PPC))
++ defined(_POWER) || defined(_ARCH_PPC) || (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
diff --git a/srcpkgs/llvm15/template b/srcpkgs/llvm15/template
new file mode 100644
index 000000000000..5ed8be136668
--- /dev/null
+++ b/srcpkgs/llvm15/template
@@ -0,0 +1,434 @@
+# Template file for 'llvm15'
+pkgname=llvm15
+version=15.0.6
+revision=1
+build_wrksrc=llvm
+build_style=cmake
+configure_args="
+ -DCMAKE_BUILD_TYPE=Release -Wno-dev
+ -DENABLE_LINKER_BUILD_ID=YES
+ -DLLDB_USE_SYSTEM_SIX=YES
+ -DLIBCXX_CXX_ABI=libcxxabi
+ -DLIBCXX_ENABLE_STATIC_ABI_LIBRARY=YES
+ -DLIBCXXABI_USE_LLVM_UNWINDER=YES
+ -DLIBCXXABI_ENABLE_STATIC_UNWINDER=YES
+ -DLIBOMP_ENABLE_SHARED=YES
+ -DLIBOMP_INSTALL_ALIASES=NO
+ -DLLVM_INCLUDE_DOCS=YES
+ -DLLVM_BUILD_DOCS=YES
+ -DLLVM_ENABLE_SPHINX=YES
+ -DSPHINX_WARNINGS_AS_ERRORS=NO
+ -DLLVM_INSTALL_UTILS=YES
+ -DLLVM_BUILD_LLVM_DYLIB=YES
+ -DLLVM_LINK_LLVM_DYLIB=YES
+ -DLLVM_ENABLE_RTTI=YES
+ -DLLVM_ENABLE_FFI=YES
+ -DLLVM_BINUTILS_INCDIR=/usr/include"
+hostmakedepends="perl python3 zlib-devel libffi-devel swig python3-Sphinx
+ python3-recommonmark python3-sphinx-automodapi"
+makedepends="python3-devel zlib-devel elfutils-devel libffi-devel libedit-devel
+ libxml2-devel binutils-devel libatomic-devel"
+depends="libllvm15>=${version}_${revision}"
+short_desc="Low Level Virtual Machine"
+maintainer="Orphaned <orphan@voidlinux.org>"
+license="Apache-2.0"
+homepage="https://www.llvm.org"
+distfiles="https://github.com/llvm/llvm-project/releases/download/llvmorg-${version}/llvm-project-${version}.src.tar.xz"
+checksum=9d53ad04dc60cb7b30e810faf64c5ab8157dadef46c8766f67f286238256ff92
+lib32disabled=yes
+python_version=3
+
+if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
+ configure_args+=" -DLIBCXX_HAS_MUSL_LIBC=YES"
+ makedepends+=" libexecinfo-devel"
+ depends+=" libexecinfo-devel"
+fi
+
+# "operand out of range" assembler failures
+case "$XBPS_TARGET_MACHINE" in
+ ppc64*) ;;
+ ppc*) configure_args+=" -DCLANG_ENABLE_CLANGD=OFF" ;;
+esac
+
+_enabled_projects="clang;clang-tools-extra;compiler-rt;libcxx;libcxxabi;libunwind;lld"
+
+_lldb_enable=yes
+_libomp_enable=no
+
+case "$XBPS_TARGET_MACHINE" in
+ ppc64le*) ;;
+ ppc*|i686*) _lldb_enable=no ;;
+esac
+
+case "$XBPS_TARGET_MACHINE" in
+ x86_64*|aarch64*|ppc64*) _libomp_enable=yes;;
+esac
+
+subpackages="clang-tools-extra"
+
+# must go before clang
+if [ "$_libomp_enable" = "yes" ]; then
+ _enabled_projects+=";openmp"
+ subpackages+=" libomp libomp-devel"
+ # because of cmake nonsense referencing libomptarget.so.*
+ depends+=" libomp>=${version}_${revision}"
+fi
+
+subpackages+=" clang clang-analyzer libclang libclang-cpp
+ llvm-libunwind llvm-libunwind-devel libcxx libcxx-devel
+ libcxxabi libcxxabi-devel libllvm15"
+
+if [ "$_lldb_enable" = "yes" ]; then
+ # XXX fails to cross compile due to python
+ _enabled_projects+=";lldb"
+ subpackages+=" lldb lldb-devel"
+fi
+
+subpackages+=" lld lld-devel"
+
+configure_args+=" -DLLVM_ENABLE_PROJECTS=${_enabled_projects}"
+
+post_patch() {
+ if [ "$_lldb_enable" = "yes" ]; then
+ if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
+ vsed -i 's|__ptrace_request|int|g' \
+ ${wrksrc}/lldb/source/Plugins/Process/Linux/NativeProcessLinux.cpp
+ fi
+ # disable docs for lldb as they fail to generate
+ vsed -i '/add_subdirectory(docs)/d' \
+ ${wrksrc}/lldb/CMakeLists.txt
+ fi
+
+ # update config.guess for better platform detection
+ cp $XBPS_COMMONDIR/environment/configure/automake/config.guess \
+ ${wrksrc}/llvm/cmake
+
+ # fix linker failures on some archs
+ vsed -i 's,check_library_exists(gcc_s .*,set(LIBCXXABI_HAS_GCC_S_LIB ON),' \
+ ${wrksrc}/libcxxabi/cmake/config-ix.cmake
+ vsed -i 's,check_library_exists(gcc .*,set(LIBCXXABI_HAS_GCC_LIB ON),' \
+ ${wrksrc}/libcxxabi/cmake/config-ix.cmake
+
+ # need libssp_nonshared on some musl platforms (because of nodefaultlibs)
+ case "$XBPS_TARGET_MACHINE" in
+ ppc64*) ;;
+ ppc*-musl|i686-musl|mips*-musl)
+ vsed -i 's,^# Setup flags.$,add_library_flags(ssp_nonshared),' \
+ ${wrksrc}/libunwind/src/CMakeLists.txt
+ vsed -i 's,^# Setup flags.$,add_library_flags(ssp_nonshared),' \
+ ${wrksrc}/libcxxabi/src/CMakeLists.txt
+ vsed -i 's,#ssp,,' ${wrksrc}/libcxx/CMakeLists.txt
+ ;;
+ esac
+
+ case "$XBPS_TARGET_MACHINE" in
+ x86_64-musl) # some sanitizer currently only on x86_64 stuff needs backtrace
+ vsed -i 's,# Set common link flags.,list(APPEND SANITIZER_COMMON_LINK_LIBS execinfo),' \
+ ${wrksrc}/compiler-rt/CMakeLists.txt
+ ;;
+ arm*-musl|i686-musl) # sanitizer code is broken since it duplicates some libc bits
+ vsed -i 's/set(COMPILER_RT_HAS_SANITIZER_COMMON TRUE)/set(COMPILER_RT_HAS_SANITIZER_COMMON FALSE)/' \
+ ${wrksrc}/compiler-rt/cmake/config-ix.cmake
+ ;;
+ esac
+}
+
+pre_configure() {
+ local triplet
+
+ # Vastly reduce size of debugging symbols:
+ CFLAGS=${CFLAGS/ -g/ -g1}
+ CXXFLAGS=${CXXFLAGS/ -g/ -g1}
+
+ # since gcc9, the build likes to blow up for ppc32 apparently because
+ # of clang being too large for a 24-bit relative call to the PLT, so
+ # optimize for size instead
+ case "$XBPS_TARGET_MACHINE" in
+ ppc64*) ;;
+ mips*-musl|ppc*) configure_args+=" -DVOID_CXX_OPT_FLAGS=-Os" ;;
+ esac
+
+ if [ "$CROSS_BUILD" ]; then
+ msg_normal "Building host tblgen\n"
+ mkdir -p build/HOST
+ cd build/HOST
+ CC="$BUILD_CC" CXX="$BUILD_CXX" CFLAGS="$BUILD_CFLAGS" \
+ CXXFLAGS="$BUILD_CXXFLAGS" LDFLAGS="$BUILD_LDFLAGS" \
+ cmake ../.. -DCMAKE_BUILD_TYPE=Release \
+ -DLLVM_ENABLE_PROJECTS=${_enabled_projects}
+ make ${makejobs} -C utils/TableGen
+ make ${makejobs} -C tools/clang/utils/TableGen
+ [ "$_lldb_enable" = "yes" ] && make ${makejobs} -C tools/lldb/utils/TableGen
+ configure_args+=" -DLLVM_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/llvm-tblgen"
+ configure_args+=" -DCLANG_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/clang-tblgen"
+ [ "$_lldb_enable" = "yes" ] && configure_args+=" -DLLDB_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/lldb-tblgen"
+ cd ../..
+ fi
+
+ case "$XBPS_TARGET_MACHINE" in
+ i686*) _arch="X86";;
+ x86_64*) _arch="X86";;
+ armv5*) _arch="Armv5te";;
+ armv6*) _arch="Armv6";;
+ armv7*) _arch="Armv7";;
+ aarch64*) _arch="AArch64";;
+ mips*) _arch="Mips";;
+ ppc*) _arch="PowerPC";;
+ riscv64*) _arch="RISCV64";;
+ esac
+
+ triplet=${XBPS_CROSS_TRIPLET:-$XBPS_TRIPLET}
+
+ configure_args+=" -DLLVM_TARGET_ARCH=${_arch}"
+ configure_args+=" -DLLVM_HOST_TRIPLE=${triplet}"
+ configure_args+=" -DLLVM_DEFAULT_TARGET_TRIPLE=${triplet}"
+}
+
+do_install() {
+ cd build
+ cmake -DCMAKE_INSTALL_PREFIX=${DESTDIR}/usr -P cmake_install.cmake
+
+ # Required for multilib.
+ if [ "$XBPS_TARGET_MACHINE" = "x86_64" ]; then
+ for _header in llvm-config; do
+ mv ${DESTDIR}/usr/include/llvm/Config/${_header}{,-64}.h
+ vinstall ${FILESDIR}/llvm-Config-${_header}.h 644 \
+ usr/include/llvm/Config ${_header}.h
+ done
+ fi
+
+ # Remove llvm-config-host in cross builds.
+ if [ "$CROSS_BUILD" ]; then
+ rm -f ${DESTDIR}/usr/bin/llvm-config-host
+ fi
+
+ # Install libcxxabi headers
+ vinstall ${wrksrc}/libcxxabi/include/__cxxabi_config.h 644 usr/include
+ vinstall ${wrksrc}/libcxxabi/include/cxxabi.h 644 usr/include
+
+ # Install libunwind headers
+ vinstall ${wrksrc}/libunwind/include/__libunwind_config.h 644 usr/include
+ vinstall ${wrksrc}/libunwind/include/libunwind.h 644 usr/include
+ vinstall ${wrksrc}/libunwind/include/unwind.h 644 usr/include
+ vinstall ${wrksrc}/libunwind/include/mach-o/compact_unwind_encoding.h \
+ 644 usr/include/mach-o
+}
+
+clang-analyzer_package() {
+ pycompile_dirs="usr/share/scan-view"
+ depends="clang-${version}_${revision} python3 perl"
+ short_desc+=" - A source code analysis framework"
+ homepage="https://clang-analyzer.llvm.org/"
+ pkg_install() {
+ vmove "usr/bin/scan-*"
+ vmove "usr/libexec/*analyzer"
+ vmove "usr/share/scan-*"
+ vmove usr/share/man/man1/scan-build.1
+ }
+}
+
+clang-tools-extra_package() {
+ lib32disabled=yes
+ depends="clang-${version}_${revision} python3"
+ short_desc+=" - Extra Clang tools"
+ homepage="https://clang.llvm.org/extra/"
+ pkg_install() {
+ vmove usr/bin/clang-apply-replacements
+ vmove usr/bin/clang-doc
+ vmove usr/bin/clang-include-fixer
+ vmove usr/bin/clang-query
+ vmove usr/bin/clang-rename
+ vmove usr/bin/clang-reorder-fields
+ vmove usr/bin/clang-tidy
+ vmove usr/bin/clangd
+ vmove usr/bin/diagtool
+ vmove usr/bin/find-all-symbols
+ vmove usr/bin/hmaptool
+ vmove usr/bin/modularize
+ vmove usr/bin/pp-trace
+ vmove usr/bin/sancov
+ vmove usr/include/clang-tidy
+ vmove "usr/lib/libclangApplyReplacements*"
+ vmove "usr/lib/libclangDoc*"
+ vmove "usr/lib/libclangIncludeFixer*"
+ vmove "usr/lib/libclangReorderFields*"
+ vmove "usr/lib/libclangQuery*"
+ vmove "usr/lib/libclangTidy*"
+ vmove "usr/share/clang/*include-fixer*"
+ vmove "usr/share/clang/*rename*"
+ vmove "usr/share/clang/*tidy*"
+ vmove usr/share/doc/LLVM/clang-tools
+ vmove usr/share/man/man1/diagtool.1
+ vmove usr/share/man/man1/extraclangtools.1
+ }
+}
+
+clang_package() {
+ lib32disabled=yes
+ depends="libstdc++-devel libgcc-devel binutils ${XBPS_TARGET_LIBC}-devel
+ libclang-${version}_${revision}"
+ short_desc+=" - C language family frontend"
+ homepage="https://clang.llvm.org/"
+ pkg_install() {
+ vmove "usr/bin/*clang*"
+ vmove usr/bin/c-index-test
+ vmove usr/include/clang
+ vmove usr/include/clang-c
+ vmove usr/lib/clang
+ vmove usr/lib/cmake/clang
+ vmove "usr/lib/libclang*.a"
+ vmove "usr/lib/libclang*.so"
+ vmove usr/share/clang
+ vmove usr/share/doc/LLVM/clang
+ vmove usr/share/man/man1/clang.1
+ }
+}
+
+libclang_package() {
+ short_desc+=" - C frontend runtime library"
+ pkg_install() {
+ vmove "usr/lib/libclang.so.*"
+ }
+}
+
+libclang-cpp_package() {
+ short_desc+=" - C frontend runtime library (C++ interface)"
+ pkg_install() {
+ vmove "usr/lib/libclang-cpp.so.*"
+ }
+}
+
+lld_package() {
+ lib32disabled=yes
+ short_desc+=" - linker"
+ homepage="https://lld.llvm.org"
+ pkg_install() {
+ vmove usr/bin/ld.lld*
+ vmove usr/bin/ld64.lld*
+ vmove usr/bin/lld*
+ vmove usr/bin/wasm-ld
+ vmove usr/share/doc/LLVM/lld
+ }
+}
+
+lld-devel_package() {
+ lib32disabled=yes
+ short_desc+=" - linker - development files"
+ homepage="https://lld.llvm.org"
+ depends="lld>=${version}_${revision}"
+ pkg_install() {
+ vmove usr/include/lld
+ vmove usr/lib/cmake/lld
+ vmove "usr/lib/liblld*a"
+ }
+}
+
+lldb_package() {
+ lib32disabled=yes
+ depends+=" python3-six"
+ short_desc+=" - LLDB debugger"
+ homepage="https://lldb.llvm.org/"
+ pkg_install() {
+ vmove usr/bin/*lldb*
+ vmove usr/lib/liblldb*so.*
+ vmove /usr/lib/python*
+ }
+}
+
+lldb-devel_package() {
+ lib32disabled=yes
+ depends="lldb>=${version}_${revision}"
+ short_desc+=" - LLDB debugger - development files"
+ pkg_install() {
+ vmove usr/include/lldb
+ vmove "usr/lib/liblldb*.so"
+ }
+}
+
+llvm-libunwind_package() {
+ short_desc+=" - libunwind"
+ pkg_install() {
+ vmove "usr/lib/${XBPS_TRIPLET}/libunwind.so.*"
+ }
+}
+
+llvm-libunwind-devel_package() {
+ short_desc+=" - libunwind - development files"
+ depends="llvm-libunwind>=${version}_${revision}"
+ conflicts="libunwind-devel>=0"
+ pkg_install() {
+ vmove usr/include/mach-o
+ vmove "usr/include/*unwind*"
+ vmove "usr/lib/${XBPS_TRIPLET}/libunwind.a"
+ vmove "usr/lib/${XBPS_TRIPLET}/libunwind.so"
+ vmove usr/share/doc/LLVM/libunwind
+ }
+}
+
+libcxxabi_package() {
+ short_desc+=" - low level support for libc++"
+ pkg_install() {
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++abi.so.*"
+ }
+}
+
+libcxxabi-devel_package() {
+ short_desc+=" - low level support for libc++ - development files"
+ depends="libcxxabi>=${version}_${revision}"
+ pkg_install() {
+ vmove "usr/include/*cxxabi*"
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++abi.so"
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++abi.a"
+ }
+}
+
+libcxx_package() {
+ short_desc+=" - C++ standard library"
+ pkg_install() {
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++.so.*"
+ }
+}
+
+libcxx-devel_package() {
+ short_desc+=" - C++ standard library - development files"
+ depends="libcxx>=${version}_${revision}"
+ pkg_install() {
+ vmove usr/include/c++
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++.so"
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++.a"
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++experimental.a"
+ vmove usr/share/doc/LLVM/libcxx
+ }
+}
+
+libomp_package() {
+ short_desc+=" - Clang OpenMP support library"
+ pkg_install() {
+ vmove usr/lib/libarcher.so
+ vmove usr/lib/libomp.so
+ vmove usr/lib/libompd.so
+ vmove "usr/lib/libomptarget.rtl.*.so"
+ vmove "usr/lib/libomp*.so.*"
+ }
+}
+
+libomp-devel_package() {
+ short_desc+=" - Clang OpenMP support library - development files"
+ depends="libomp>=${version}_${revision}"
+ pkg_install() {
+ vmove "usr/include/omp*.h"
+ vmove "usr/lib/clang/${version}/include/omp*.h"
+ vmove "usr/lib/libarcher*"
+ vmove "usr/lib/libomp*.so"
+ vmove usr/lib/cmake/openmp
+ vmove usr/share/doc/LLVM/openmp
+ vmove usr/share/man/man1/llvmopenmp.1
+ }
+}
+
+libllvm15_package() {
+ short_desc+=" - runtime library"
+ pkg_install() {
+ vmove "usr/lib/libLLVM-*.so*"
+ }
+}
diff --git a/srcpkgs/llvm15/update b/srcpkgs/llvm15/update
new file mode 100644
index 000000000000..e95cf26b3586
--- /dev/null
+++ b/srcpkgs/llvm15/update
@@ -0,0 +1,3 @@
+site="https://github.com/llvm/llvm-project/releases"
+pattern="llvmorg-\K(\d+.){2}\d+(-rc\d+)?"
+ignore="*-rc*"
From 0fd6e120ba3576b7f8ed6fc8ec9a64a26b7bca6b Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Sun, 18 Dec 2022 00:40:18 +0100
Subject: [PATCH 2/2] llvm: update to 15.0.6
---
common/shlibs | 6 +++---
srcpkgs/clang | 2 +-
srcpkgs/clang-analyzer | 2 +-
srcpkgs/clang-tools-extra | 2 +-
srcpkgs/libclang | 2 +-
srcpkgs/libclang-cpp | 2 +-
srcpkgs/libcxx | 2 +-
srcpkgs/libcxx-devel | 2 +-
srcpkgs/libcxxabi | 2 +-
srcpkgs/libcxxabi-devel | 2 +-
srcpkgs/libomp | 2 +-
srcpkgs/libomp-devel | 2 +-
srcpkgs/lld | 2 +-
srcpkgs/lld-devel | 2 +-
srcpkgs/lldb | 2 +-
srcpkgs/lldb-devel | 2 +-
srcpkgs/llvm-libunwind | 2 +-
srcpkgs/llvm-libunwind-devel | 2 +-
srcpkgs/llvm/template | 6 +++---
19 files changed, 23 insertions(+), 23 deletions(-)
diff --git a/common/shlibs b/common/shlibs
index 3cb919b3ce3b..7b8d77766f0f 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -982,9 +982,9 @@ 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.12 lldb-12.0.0_1
-libclang.so.12 libclang-12.0.0_1
-libclang-cpp.so.12 libclang-cpp-12.0.0_1
+liblldb.so.15 lldb-15.0.6_1
+libclang.so.15 libclang-15.0.6_1
+libclang-cpp.so.15 libclang-cpp-15.0.6_1
libLLVM-11.so libllvm11-11.0.0_1
libLLVM-12.so libllvm12-12.0.0_1
libLLVM-15.so libllvm15-15.0.6_1
diff --git a/srcpkgs/clang b/srcpkgs/clang
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/clang
+++ b/srcpkgs/clang
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/clang-analyzer b/srcpkgs/clang-analyzer
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/clang-analyzer
+++ b/srcpkgs/clang-analyzer
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/clang-tools-extra b/srcpkgs/clang-tools-extra
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/clang-tools-extra
+++ b/srcpkgs/clang-tools-extra
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libclang b/srcpkgs/libclang
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libclang
+++ b/srcpkgs/libclang
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libclang-cpp b/srcpkgs/libclang-cpp
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libclang-cpp
+++ b/srcpkgs/libclang-cpp
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxx b/srcpkgs/libcxx
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxx
+++ b/srcpkgs/libcxx
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxx-devel b/srcpkgs/libcxx-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxx-devel
+++ b/srcpkgs/libcxx-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxxabi b/srcpkgs/libcxxabi
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxxabi
+++ b/srcpkgs/libcxxabi
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxxabi-devel b/srcpkgs/libcxxabi-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxxabi-devel
+++ b/srcpkgs/libcxxabi-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libomp b/srcpkgs/libomp
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libomp
+++ b/srcpkgs/libomp
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libomp-devel b/srcpkgs/libomp-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libomp-devel
+++ b/srcpkgs/libomp-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lld b/srcpkgs/lld
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lld
+++ b/srcpkgs/lld
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lld-devel b/srcpkgs/lld-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lld-devel
+++ b/srcpkgs/lld-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lldb b/srcpkgs/lldb
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lldb
+++ b/srcpkgs/lldb
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lldb-devel b/srcpkgs/lldb-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lldb-devel
+++ b/srcpkgs/lldb-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm-libunwind b/srcpkgs/llvm-libunwind
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/llvm-libunwind
+++ b/srcpkgs/llvm-libunwind
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm-libunwind-devel b/srcpkgs/llvm-libunwind-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/llvm-libunwind-devel
+++ b/srcpkgs/llvm-libunwind-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm/template b/srcpkgs/llvm/template
index a92db6f94f9f..7f04a8f8a7a4 100644
--- a/srcpkgs/llvm/template
+++ b/srcpkgs/llvm/template
@@ -1,11 +1,11 @@
# Template file for 'llvm'
pkgname=llvm
-version=12.0.0
+version=15.0.6
revision=1
build_style=meta
-depends="llvm12"
-replaces="llvm11>=0 llvm10>=0 llvm9>=0 llvm8>=0 llvm7>=0 llvm6.0>=0 llvm3.9>=0"
+depends="llvm15"
short_desc="LLVM meta package"
maintainer="Enno Boland <gottox@voidlinux.org>"
license="Public Domain"
homepage="https://www.voidlinux.org"
+replaces="llvm12>=0 llvm11>=0 llvm10>=0 llvm9>=0 llvm8>=0 llvm7>=0 llvm6.0>=0 llvm3.9>=0"
^ permalink raw reply [flat|nested] 96+ messages in thread
* Re: [PR REVIEW] [WIP] LLVM 15
2022-11-28 15:30 [PR PATCH] [WIP] LLVM 15 tranzystorek-io
` (24 preceding siblings ...)
2022-12-17 23:41 ` [PR PATCH] [Updated] " tranzystorek-io
@ 2022-12-18 0:02 ` oreo639
2022-12-18 0:03 ` oreo639
` (68 subsequent siblings)
94 siblings, 0 replies; 96+ messages in thread
From: oreo639 @ 2022-12-18 0:02 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 601 bytes --]
New review comment by oreo639 on void-packages repository
https://github.com/void-linux/void-packages/pull/40821#discussion_r1051500505
Comment:
llvm12 currently provides clang et al, which should be removed:
https://github.com/void-linux/void-packages/commit/0d9f8330b556561ee38de7d6a0d4280f56cdd58e
Also, you need to rebuild/update everything depending on llvm.
Here is the llvm12 update for reference:
https://github.com/void-linux/void-packages/commits/e8c2d0e32888730ad5fa16e1441de1a4e1a3a64a
Ofc a bunch of stuff was updated after that (i.e. rust, ldc, etc) but just for reference.
^ permalink raw reply [flat|nested] 96+ messages in thread
* Re: [PR REVIEW] [WIP] LLVM 15
2022-11-28 15:30 [PR PATCH] [WIP] LLVM 15 tranzystorek-io
` (25 preceding siblings ...)
2022-12-18 0:02 ` [PR REVIEW] " oreo639
@ 2022-12-18 0:03 ` oreo639
2022-12-18 0:05 ` oreo639
` (67 subsequent siblings)
94 siblings, 0 replies; 96+ messages in thread
From: oreo639 @ 2022-12-18 0:03 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 654 bytes --]
New review comment by oreo639 on void-packages repository
https://github.com/void-linux/void-packages/pull/40821#discussion_r1051500505
Comment:
llvm12 currently provides clang et al, which should be removed:
https://github.com/void-linux/void-packages/commit/0d9f8330b556561ee38de7d6a0d4280f56cdd58e
Also, you need to rebuild/update everything depending on llvm.
Here is the llvm12 update for reference:
https://github.com/void-linux/void-packages/commits/e8c2d0e32888730ad5fa16e1441de1a4e1a3a64a
Ofc a bunch of stuff was updated after that which depended on llvm11 instead of the llvm package (i.e. rust, ldc, etc) but just for reference.
^ permalink raw reply [flat|nested] 96+ messages in thread
* Re: [PR REVIEW] [WIP] LLVM 15
2022-11-28 15:30 [PR PATCH] [WIP] LLVM 15 tranzystorek-io
` (26 preceding siblings ...)
2022-12-18 0:03 ` oreo639
@ 2022-12-18 0:05 ` oreo639
2022-12-18 11:24 ` [PR PATCH] [Updated] " tranzystorek-io
` (66 subsequent siblings)
94 siblings, 0 replies; 96+ messages in thread
From: oreo639 @ 2022-12-18 0:05 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 695 bytes --]
New review comment by oreo639 on void-packages repository
https://github.com/void-linux/void-packages/pull/40821#discussion_r1051500505
Comment:
llvm12 currently provides clang et al, which should be removed:
https://github.com/void-linux/void-packages/commit/0d9f8330b556561ee38de7d6a0d4280f56cdd58e
Also, you need to rebuild/update everything depending on llvm.
Here is the llvm12 update for reference:
https://github.com/void-linux/void-packages/commits/e8c2d0e32888730ad5fa16e1441de1a4e1a3a64a
Ofc a bunch of stuff was updated after that which depended on llvm11 instead of the llvm package (i.e. rust, ldc, etc) which should probably be updated as well but just for reference.
^ permalink raw reply [flat|nested] 96+ messages in thread
* Re: [PR PATCH] [Updated] [WIP] LLVM 15
2022-11-28 15:30 [PR PATCH] [WIP] LLVM 15 tranzystorek-io
` (27 preceding siblings ...)
2022-12-18 0:05 ` oreo639
@ 2022-12-18 11:24 ` tranzystorek-io
2022-12-18 23:30 ` tranzystorek-io
` (65 subsequent siblings)
94 siblings, 0 replies; 96+ messages in thread
From: tranzystorek-io @ 2022-12-18 11:24 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 502 bytes --]
There is an updated pull request by tranzystorek-io against master on the void-packages repository
https://github.com/tranzystorek-io/void-packages llvm15
https://github.com/void-linux/void-packages/pull/40821
[WIP] LLVM 15
[ci skip]
TODO:
- [ ] Adjust patches marked as `.patch.skip`
- [ ] Make libomp a shlib (change so file name and install a symlink)
- [ ] Avoid creating triplet dirs under /usr/
A patch file from https://github.com/void-linux/void-packages/pull/40821.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-llvm15-40821.patch --]
[-- Type: text/x-diff, Size: 63865 bytes --]
From d2840687e08adbad5a91eace4e52709c74d094e4 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Sun, 18 Dec 2022 00:36:59 +0100
Subject: [PATCH 1/3] New package: llvm15-15.0.6
---
common/shlibs | 1 +
srcpkgs/libllvm15 | 1 +
.../llvm15/files/llvm-Config-llvm-config.h | 9 +
...clang-001-fix-unwind-chain-inclusion.patch | 44 ++
.../patches/clang-002-add-musl-triples.patch | 110 +++++
.../clang-003-ppc64-dynamic-linker-path.patch | 13 +
.../patches/clang-004-ppc64-musl-elfv2.patch | 48 ++
.../compiler-rt-sanitizer-ppc64-musl.patch | 35 ++
.../compiler-rt-xray-ppc64-musl.patch.skip | 62 +++
srcpkgs/llvm15/patches/libcxx-musl.patch | 26 ++
srcpkgs/llvm15/patches/libcxx-ppc.patch | 22 +
.../llvm15/patches/libcxx-ssp-nonshared.patch | 11 +
srcpkgs/llvm15/patches/libcxxabi-dl.patch | 25 +
.../llvm15/patches/libunwind-ppc32.patch.skip | 63 +++
srcpkgs/llvm15/patches/lldb-musl.patch | 40 ++
srcpkgs/llvm15/patches/llvm-001-musl.patch | 57 +++
.../patches/llvm-002-musl-ppc64-elfv2.patch | 30 ++
.../patches/llvm-003-ppc-secureplt.patch | 11 +
.../patches/llvm-004-override-opt.patch | 18 +
.../llvm15/patches/llvm-005-ppc-bigpic.patch | 36 ++
.../patches/llvm-006-aarch64-mf_exec.patch | 25 +
srcpkgs/llvm15/template | 434 ++++++++++++++++++
srcpkgs/llvm15/update | 3 +
23 files changed, 1124 insertions(+)
create mode 120000 srcpkgs/libllvm15
create mode 100644 srcpkgs/llvm15/files/llvm-Config-llvm-config.h
create mode 100644 srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch
create mode 100644 srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch
create mode 100644 srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch
create mode 100644 srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch
create mode 100644 srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch
create mode 100644 srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip
create mode 100644 srcpkgs/llvm15/patches/libcxx-musl.patch
create mode 100644 srcpkgs/llvm15/patches/libcxx-ppc.patch
create mode 100644 srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch
create mode 100644 srcpkgs/llvm15/patches/libcxxabi-dl.patch
create mode 100644 srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip
create mode 100644 srcpkgs/llvm15/patches/lldb-musl.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-001-musl.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-004-override-opt.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch
create mode 100644 srcpkgs/llvm15/template
create mode 100644 srcpkgs/llvm15/update
diff --git a/common/shlibs b/common/shlibs
index ba5c89ee3bad..3cb919b3ce3b 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -987,6 +987,7 @@ libclang.so.12 libclang-12.0.0_1
libclang-cpp.so.12 libclang-cpp-12.0.0_1
libLLVM-11.so libllvm11-11.0.0_1
libLLVM-12.so libllvm12-12.0.0_1
+libLLVM-15.so libllvm15-15.0.6_1
libisofs.so.6 libisofs-0.6.24_1
libmpack.so.0 libmpack-1.0.5_1
libGeoIP.so.1 libgeoip-1.4.8_1
diff --git a/srcpkgs/libllvm15 b/srcpkgs/libllvm15
new file mode 120000
index 000000000000..ad57a969b9f9
--- /dev/null
+++ b/srcpkgs/libllvm15
@@ -0,0 +1 @@
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm15/files/llvm-Config-llvm-config.h b/srcpkgs/llvm15/files/llvm-Config-llvm-config.h
new file mode 100644
index 000000000000..2fa08c9be696
--- /dev/null
+++ b/srcpkgs/llvm15/files/llvm-Config-llvm-config.h
@@ -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
diff --git a/srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch b/srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch
new file mode 100644
index 000000000000..e4eaa7783e7a
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch
@@ -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
diff --git a/srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch b/srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch
new file mode 100644
index 000000000000..25688d40dbc2
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch
@@ -0,0 +1,110 @@
+--- a/clang/lib/Driver/ToolChains/Gnu.cpp
++++ b/clang/lib/Driver/ToolChains/Gnu.cpp
+@@ -2086,7 +2086,8 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
+ static const char *const ARMHFTriples[] = {"arm-linux-gnueabihf",
+ "armv7hl-redhat-linux-gnueabi",
+ "armv6hl-suse-linux-gnueabi",
+- "armv7hl-suse-linux-gnueabi"};
++ "armv7hl-suse-linux-gnueabi",
++ "armv7l-linux-gnueabihf"};
+ static const char *const ARMebLibDirs[] = {"/lib"};
+ static const char *const ARMebTriples[] = {"armeb-linux-gnueabi",
+ "armeb-linux-androideabi"};
+@@ -2153,8 +2154,7 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
+ "powerpc64-suse-linux", "powerpc-montavista-linuxspe"};
+ static const char *const PPCLELibDirs[] = {"/lib32", "/lib"};
+ static const char *const PPCLETriples[] = {"powerpcle-linux-gnu",
+- "powerpcle-unknown-linux-gnu",
+- "powerpcle-linux-musl"};
++ "powerpcle-unknown-linux-gnu"};
+
+ static const char *const PPC64LibDirs[] = {"/lib64", "/lib"};
+ static const char *const PPC64Triples[] = {
+@@ -2235,6 +2235,87 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
+ return;
+ }
+
++ if (TargetTriple.isMusl()) {
++ static const char *const AArch64MuslTriples[] = {"aarch64-linux-musl"};
++ static const char *const ARMHFMuslTriples[] = {
++ "arm-linux-musleabihf", "armv7l-linux-musleabihf"
++ };
++ static const char *const ARMMuslTriples[] = {"arm-linux-musleabi"};
++ static const char *const X86_64MuslTriples[] = {"x86_64-linux-musl"};
++ static const char *const X86MuslTriples[] = {"i686-linux-musl"};
++ static const char *const MIPSMuslTriples[] = {
++ "mips-linux-musl", "mipsel-linux-musl",
++ "mipsel-linux-muslhf", "mips-linux-muslhf"
++ };
++ static const char *const PPCMuslTriples[] = {"powerpc-linux-musl"};
++ static const char *const PPCLEMuslTriples[] = {"powerpcle-linux-musl"};
++ static const char *const PPC64MuslTriples[] = {"powerpc64-linux-musl"};
++ static const char *const PPC64LEMuslTriples[] = {"powerpc64le-linux-musl"};
++
++ switch (TargetTriple.getArch()) {
++ case llvm::Triple::aarch64:
++ LibDirs.append(begin(AArch64LibDirs), end(AArch64LibDirs));
++ TripleAliases.append(begin(AArch64MuslTriples), end(AArch64MuslTriples));
++ BiarchLibDirs.append(begin(AArch64LibDirs), end(AArch64LibDirs));
++ BiarchTripleAliases.append(begin(AArch64MuslTriples), end(AArch64MuslTriples));
++ break;
++ case llvm::Triple::arm:
++ LibDirs.append(begin(ARMLibDirs), end(ARMLibDirs));
++ if (TargetTriple.getEnvironment() == llvm::Triple::MuslEABIHF) {
++ TripleAliases.append(begin(ARMHFMuslTriples), end(ARMHFMuslTriples));
++ } else {
++ TripleAliases.append(begin(ARMMuslTriples), end(ARMMuslTriples));
++ }
++ break;
++ case llvm::Triple::x86_64:
++ LibDirs.append(begin(X86_64LibDirs), end(X86_64LibDirs));
++ TripleAliases.append(begin(X86_64MuslTriples), end(X86_64MuslTriples));
++ BiarchLibDirs.append(begin(X86LibDirs), end(X86LibDirs));
++ BiarchTripleAliases.append(begin(X86MuslTriples), end(X86MuslTriples));
++ break;
++ case llvm::Triple::x86:
++ LibDirs.append(begin(X86LibDirs), end(X86LibDirs));
++ TripleAliases.append(begin(X86MuslTriples), end(X86MuslTriples));
++ BiarchLibDirs.append(begin(X86_64LibDirs), end(X86_64LibDirs));
++ BiarchTripleAliases.append(begin(X86_64MuslTriples), end(X86_64MuslTriples));
++ break;
++ case llvm::Triple::mips:
++ LibDirs.append(begin(MIPSLibDirs), end(MIPSLibDirs));
++ TripleAliases.append(begin(MIPSMuslTriples), end(MIPSMuslTriples));
++ break;
++ case llvm::Triple::ppc:
++ LibDirs.append(begin(PPCLibDirs), end(PPCLibDirs));
++ TripleAliases.append(begin(PPCMuslTriples), end(PPCMuslTriples));
++ BiarchLibDirs.append(begin(PPC64LibDirs), end(PPC64LibDirs));
++ BiarchTripleAliases.append(begin(PPC64MuslTriples), end(PPC64MuslTriples));
++ break;
++ case llvm::Triple::ppcle:
++ LibDirs.append(begin(PPCLELibDirs), end(PPCLELibDirs));
++ TripleAliases.append(begin(PPCLEMuslTriples), end(PPCLEMuslTriples));
++ BiarchLibDirs.append(begin(PPC64LELibDirs), end(PPC64LELibDirs));
++ BiarchTripleAliases.append(begin(PPC64LEMuslTriples), end(PPC64LEMuslTriples));
++ break;
++ case llvm::Triple::ppc64:
++ LibDirs.append(begin(PPC64LibDirs), end(PPC64LibDirs));
++ TripleAliases.append(begin(PPC64MuslTriples), end(PPC64MuslTriples));
++ BiarchLibDirs.append(begin(PPCLibDirs), end(PPCLibDirs));
++ BiarchTripleAliases.append(begin(PPCMuslTriples), end(PPCMuslTriples));
++ break;
++ case llvm::Triple::ppc64le:
++ LibDirs.append(begin(PPC64LELibDirs), end(PPC64LELibDirs));
++ TripleAliases.append(begin(PPC64LEMuslTriples), end(PPC64LEMuslTriples));
++ BiarchLibDirs.append(begin(PPCLELibDirs), end(PPCLELibDirs));
++ BiarchTripleAliases.append(begin(PPCLEMuslTriples), end(PPCLEMuslTriples));
++ break;
++ default:
++ break;
++ }
++ TripleAliases.push_back(TargetTriple.str());
++ if (TargetTriple.str() != BiarchTriple.str())
++ BiarchTripleAliases.push_back(BiarchTriple.str());
++ return;
++ }
++
+ // Android targets should not use GNU/Linux tools or libraries.
+ if (TargetTriple.isAndroid()) {
+ static const char *const AArch64AndroidTriples[] = {
diff --git a/srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch b/srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch
new file mode 100644
index 000000000000..4ad6412d1e6c
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch
@@ -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 =
diff --git a/srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch b/srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch
new file mode 100644
index 000000000000..21fc8003c5f1
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch
@@ -0,0 +1,48 @@
+--- a/clang/lib/Basic/Targets/PPC.h
++++ b/clang/lib/Basic/Targets/PPC.h
+@@ -415,11 +415,10 @@ public:
+ LongDoubleFormat = &llvm::APFloat::IEEEdouble();
+ } else if ((Triple.getArch() == llvm::Triple::ppc64le)) {
+ DataLayout = "e-m:e-i64:64-n32:64";
+- ABI = "elfv2";
+ } else {
+ DataLayout = "E-m:e-i64:64-n32:64";
+- ABI = "elfv1";
+ }
++ ABI = "elfv2";
+
+ if (Triple.isOSFreeBSD() || Triple.isOSOpenBSD() || Triple.isMusl()) {
+ LongDoubleWidth = LongDoubleAlign = 64;
+--- a/clang/lib/CodeGen/TargetInfo.cpp
++++ b/clang/lib/CodeGen/TargetInfo.cpp
+@@ -10927,9 +10927,9 @@ const TargetCodeGenInfo &CodeGenModule::getTargetCodeGenInfo() {
+ return SetCGInfo(new AIXTargetCodeGenInfo(Types, /*Is64Bit*/ true));
+
+ if (Triple.isOSBinFormatELF()) {
+- PPC64_SVR4_ABIInfo::ABIKind Kind = PPC64_SVR4_ABIInfo::ELFv1;
+- if (getTarget().getABI() == "elfv2")
+- Kind = PPC64_SVR4_ABIInfo::ELFv2;
++ PPC64_SVR4_ABIInfo::ABIKind Kind = PPC64_SVR4_ABIInfo::ELFv2;
++ if (getTarget().getABI() == "elfv1")
++ Kind = PPC64_SVR4_ABIInfo::ELFv1;
+ bool IsSoftFloat = CodeGenOpts.FloatABI == "soft";
+
+ return SetCGInfo(
+--- a/clang/lib/Driver/ToolChains/Clang.cpp
++++ b/clang/lib/Driver/ToolChains/Clang.cpp
+@@ -1920,14 +1920,7 @@ void Clang::AddPPCTargetArgs(const ArgList &Args,
+ const llvm::Triple &T = getToolChain().getTriple();
+ if (T.isOSBinFormatELF()) {
+ switch (getToolChain().getArch()) {
+- case llvm::Triple::ppc64: {
+- if ((T.isOSFreeBSD() && T.getOSMajorVersion() >= 13) ||
+- T.isOSOpenBSD() || T.isMusl())
+- ABIName = "elfv2";
+- else
+- ABIName = "elfv1";
+- break;
+- }
++ case llvm::Triple::ppc64:
+ case llvm::Triple::ppc64le:
+ ABIName = "elfv2";
+ break;
diff --git a/srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch b/srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch
new file mode 100644
index 000000000000..360cfc1ba7f1
--- /dev/null
+++ b/srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch
@@ -0,0 +1,35 @@
+--- 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__) || SANITIZER_RISCV64
++ defined(__hexagon__) || defined(__powerpc__) || 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_ANDROID
++#if (defined(__aarch64__) || defined(__powerpc__) || SANITIZER_RISCV64) && !SANITIZER_ANDROID
+ // GLIBC 2.20+ sys/user does not include asm/ptrace.h
+ # include <asm/ptrace.h>
+ #endif
diff --git a/srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip b/srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip
new file mode 100644
index 000000000000..d0b61c80c897
--- /dev/null
+++ b/srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip
@@ -0,0 +1,62 @@
+--- a/compiler-rt/lib/xray/xray_powerpc64.inc
++++ b/compiler-rt/lib/xray/xray_powerpc64.inc
+@@ -12,7 +12,13 @@
+
+ #include <cstdint>
+ #include <mutex>
++#ifdef __GLIBC__
+ #include <sys/platform/ppc.h>
++#else
++#include <cctype>
++#include <cstring>
++#include <cstdlib>
++#endif
+
+ #include "xray_defs.h"
+
+@@ -20,13 +26,45 @@ namespace __xray {
+
+ ALWAYS_INLINE uint64_t readTSC(uint8_t &CPU) XRAY_NEVER_INSTRUMENT {
+ CPU = 0;
++#ifdef __GLIBC__
+ return __ppc_get_timebase();
++#else
++ return __builtin_ppc_get_timebase();
++#endif
+ }
+
+ inline uint64_t getTSCFrequency() XRAY_NEVER_INSTRUMENT {
+ static std::mutex M;
+ std::lock_guard<std::mutex> Guard(M);
++#ifdef __GLIBC__
+ return __ppc_get_timebase_freq();
++#else
++ /* FIXME: a less dirty implementation? */
++ static uint64_t base;
++ if (!base) {
++ FILE *f = fopen("/proc/cpuinfo", "rb");
++ if (f) {
++ ssize_t nr;
++ /* virtually always big enough to hold the line */
++ char buf[512];
++ while (fgets(buf, sizeof(buf), f)) {
++ char *ret = strstr(buf, "timebase");
++ if (!ret) {
++ continue;
++ }
++ ret += sizeof("timebase") - 1;
++ ret = strchr(ret, ':');
++ if (!ret) {
++ continue;
++ }
++ base = strtoul(ret + 1, nullptr, 10);
++ break;
++ }
++ fclose(f);
++ }
++ }
++ return base;
++#endif
+ }
+
+ inline bool probeRequiredCPUFeatures() XRAY_NEVER_INSTRUMENT {
diff --git a/srcpkgs/llvm15/patches/libcxx-musl.patch b/srcpkgs/llvm15/patches/libcxx-musl.patch
new file mode 100644
index 000000000000..bbd31ffc2cb1
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxx-musl.patch
@@ -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,
+ typename remove_reference<decltype(errno)>::type __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
+ typename remove_reference<decltype(errno)>::type __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,
+ typename remove_reference<decltype(errno)>::type __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
+ typename remove_reference<decltype(errno)>::type __current_errno = errno;
+ if (__current_errno == 0)
+ errno = __save_errno;
diff --git a/srcpkgs/llvm15/patches/libcxx-ppc.patch b/srcpkgs/llvm15/patches/libcxx-ppc.patch
new file mode 100644
index 000000000000..7a92f8004e1c
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxx-ppc.patch
@@ -0,0 +1,22 @@
+This ensures `is_iec559` is defined correctly under all long double ABIs,
+including musl and its 64-bit long double. Also, `__ppc__` or `__ppc64__`
+is not defined on gcc.
+
+--- a/libcxx/include/limits
++++ b/libcxx/include/limits
+@@ -426,8 +426,14 @@ protected:
+ _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type signaling_NaN() _NOEXCEPT {return __builtin_nansl("");}
+ _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type denorm_min() _NOEXCEPT {return __LDBL_DENORM_MIN__;}
+
+-#if (defined(__ppc__) || defined(__ppc64__))
++#if defined(__powerpc__) || defined(__powerpc64__)
++#if (__LDBL_MAX_EXP__ > __DBL_MAX_EXP__) || (__LDBL_MANT_DIG__ == __DBL_MANT_DIG__)
++ /* IEEE 754 quadruple or double precision */
++ static _LIBCPP_CONSTEXPR const bool is_iec559 = true;
++#else
++ /* 128-bit IBM double-double */
+ static _LIBCPP_CONSTEXPR const bool is_iec559 = false;
++#endif
+ #else
+ static _LIBCPP_CONSTEXPR const bool is_iec559 = true;
+ #endif
diff --git a/srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch b/srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch
new file mode 100644
index 000000000000..70292beb2fcd
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch
@@ -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()
diff --git a/srcpkgs/llvm15/patches/libcxxabi-dl.patch b/srcpkgs/llvm15/patches/libcxxabi-dl.patch
new file mode 100644
index 000000000000..3a15f9db8c98
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxxabi-dl.patch
@@ -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 @@
+ target_link_libraries(${target} PRIVATE m)
+ endif()
+
++ if (LIBCXX_HAS_C_LIB)
++ target_link_libraries(${target} PRIVATE dl)
++ endif()
++
+ if (LIBCXX_HAS_RT_LIB)
+ target_link_libraries(${target} PRIVATE rt)
+ endif()
diff --git a/srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip b/srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip
new file mode 100644
index 000000000000..74aa7576ecf9
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip
@@ -0,0 +1,63 @@
+This fixes build at least with gcc9 which does not define `__ppc__`.
+
+--- a/libunwind/include/__libunwind_config.h
++++ b/libunwind/include/__libunwind_config.h
+@@ -49,7 +49,7 @@
+ # define _LIBUNWIND_CONTEXT_SIZE 167
+ # define _LIBUNWIND_CURSOR_SIZE 179
+ # define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_PPC64
+-# elif defined(__ppc__)
++# elif defined(__powerpc__)
+ # define _LIBUNWIND_TARGET_PPC 1
+ # define _LIBUNWIND_CONTEXT_SIZE 117
+ # define _LIBUNWIND_CURSOR_SIZE 124
+--- a/libunwind/src/UnwindRegistersRestore.S
++++ b/libunwind/src/UnwindRegistersRestore.S
+@@ -392,7 +392,7 @@ Lnovec:
+ PPC64_LR(3)
+ bctr
+
+-#elif defined(__ppc__)
++#elif defined(__powerpc__)
+
+ DEFINE_LIBUNWIND_FUNCTION(_ZN9libunwind13Registers_ppc6jumptoEv)
+ //
+--- a/libunwind/src/UnwindRegistersSave.S
++++ b/libunwind/src/UnwindRegistersSave.S
+@@ -554,7 +554,7 @@ DEFINE_LIBUNWIND_FUNCTION(__unw_getcontext)
+ blr
+
+
+-#elif defined(__ppc__)
++#elif defined(__powerpc__)
+
+ //
+ // extern int unw_getcontext(unw_context_t* thread_state)
+--- a/libunwind/src/config.h
++++ b/libunwind/src/config.h
+@@ -95,12 +95,12 @@
+ #define _LIBUNWIND_BUILD_SJLJ_APIS
+ #endif
+
+-#if defined(__i386__) || defined(__x86_64__) || defined(__ppc__) || defined(__ppc64__) || defined(__powerpc64__)
++#if defined(__i386__) || defined(__x86_64__) || defined(__powerpc__) || defined(__powerpc64__)
+ #define _LIBUNWIND_SUPPORT_FRAME_APIS
+ #endif
+
+ #if defined(__i386__) || defined(__x86_64__) || \
+- defined(__ppc__) || defined(__ppc64__) || defined(__powerpc64__) || \
++ defined(__powerpc__) || defined(__powerpc64__) || \
+ (!defined(__APPLE__) && defined(__arm__)) || \
+ (defined(__arm64__) || defined(__aarch64__)) || \
+ defined(__mips__)
+--- a/libunwind/src/libunwind.cpp
++++ b/libunwind/src/libunwind.cpp
+@@ -42,7 +42,7 @@ _LIBUNWIND_HIDDEN int __unw_init_local(unw_cursor_t *cursor,
+ # define REGISTER_KIND Registers_x86_64
+ #elif defined(__powerpc64__)
+ # define REGISTER_KIND Registers_ppc64
+-#elif defined(__ppc__)
++#elif defined(__powerpc__)
+ # define REGISTER_KIND Registers_ppc
+ #elif defined(__aarch64__)
+ # define REGISTER_KIND Registers_arm64
diff --git a/srcpkgs/llvm15/patches/lldb-musl.patch b/srcpkgs/llvm15/patches/lldb-musl.patch
new file mode 100644
index 000000000000..026c5e1e61ba
--- /dev/null
+++ b/srcpkgs/llvm15/patches/lldb-musl.patch
@@ -0,0 +1,40 @@
+--- a/lldb/source/Plugins/Process/Linux/Procfs.h
++++ b/lldb/source/Plugins/Process/Linux/Procfs.h
+@@ -10,6 +10,7 @@
+ // sys/procfs.h on Android/Linux for all supported architectures.
+
+ #include <sys/ptrace.h>
++#include <asm/ptrace.h>
+
+ #include "lldb/lldb-types.h"
+
+@@ -17,23 +18,13 @@
+
+ #include <vector>
+
+-#ifdef __ANDROID__
+-#if defined(__arm64__) || defined(__aarch64__)
+-typedef unsigned long elf_greg_t;
+-typedef elf_greg_t
+- elf_gregset_t[(sizeof(struct user_pt_regs) / sizeof(elf_greg_t))];
+-typedef struct user_fpsimd_state elf_fpregset_t;
+-#ifndef NT_FPREGSET
+-#define NT_FPREGSET NT_PRFPREG
+-#endif // NT_FPREGSET
+-#elif defined(__mips__)
+-#ifndef NT_FPREGSET
+-#define NT_FPREGSET NT_PRFPREG
+-#endif // NT_FPREGSET
+-#endif
+-#else // __ANDROID__
++#if !defined(__GLIBC__) && defined(__powerpc__)
++#define pt_regs musl_pt_regs
++#include <sys/procfs.h>
++#undef pt_regs
++#else
+ #include <sys/procfs.h>
+-#endif // __ANDROID__
++#endif
+
+ namespace lldb_private {
+ namespace process_linux {
diff --git a/srcpkgs/llvm15/patches/llvm-001-musl.patch b/srcpkgs/llvm15/patches/llvm-001-musl.patch
new file mode 100644
index 000000000000..f2a3f8d62813
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-001-musl.patch
@@ -0,0 +1,57 @@
+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;
+diff --git a/lib/Support/Unix/DynamicLibrary.inc b/lib/Support/Unix/DynamicLibrary.inc
+index a2a37996..2f86c470 100644
+--- a/llvm/lib/Support/Unix/DynamicLibrary.inc
++++ b/llvm/lib/Support/Unix/DynamicLibrary.inc
+@@ -102,7 +102,7 @@ static void *DoSearch(const char* SymbolName) {
+
+ // This macro returns the address of a well-known, explicit symbol
+ #define EXPLICIT_SYMBOL(SYM) \
+- if (!strcmp(SymbolName, #SYM)) return &SYM
++ if (!strcmp(SymbolName, #SYM)) return (void *)&SYM
+
+ // Under glibc we have a weird situation. The stderr/out/in symbols are both
+ // macros and global variables because of standards requirements. So, we
+diff --git a/utils/unittest/googletest/src/gtest.cc b/utils/unittest/googletest/src/gtest.cc
+index d882ab2e..f1fb12d0 100644
+--- a/llvm/utils/unittest/googletest/src/gtest.cc
++++ b/llvm/utils/unittest/googletest/src/gtest.cc
+@@ -128,6 +128,7 @@
+
+ #if GTEST_CAN_STREAM_RESULTS_
+ # include <arpa/inet.h> // NOLINT
++# include <sys/socket.h> // NOLINT
+ # include <netdb.h> // NOLINT
+ # include <sys/socket.h> // NOLINT
+ # include <sys/types.h> // NOLINT
diff --git a/srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch b/srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch
new file mode 100644
index 000000000000..0071d964bd37
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch
@@ -0,0 +1,30 @@
+This patches LLVM to use ELFv2 on ppc64 unconditionally unless overridden. We
+need this because unlike most distros we use ELFv2 for both glibc and musl
+on big endian ppc64.
+
+diff --git a/lib/Target/PowerPC/PPCTargetMachine.cpp b/lib/Target/PowerPC/PPCTargetMachine.cpp
+index 0634833e..b7cbc2e7 100644
+--- a/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp
++++ b/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp
+@@ -222,9 +222,8 @@ static PPCTargetMachine::PPCABI computeTargetABI(const Triple &TT,
+
+ switch (TT.getArch()) {
+ case Triple::ppc64le:
+- return PPCTargetMachine::PPC_ABI_ELFv2;
+ case Triple::ppc64:
+- return PPCTargetMachine::PPC_ABI_ELFv1;
++ return PPCTargetMachine::PPC_ABI_ELFv2;
+ default:
+ return PPCTargetMachine::PPC_ABI_UNKNOWN;
+ }
+diff --git a/test/CodeGen/PowerPC/ppc64-elf-abi.ll b/test/CodeGen/PowerPC/ppc64-elf-abi.ll
+index 8b1cf6b5..296a2afa 100644
+--- a/llvm/test/CodeGen/PowerPC/ppc64-elf-abi.ll
++++ b/llvm/test/CodeGen/PowerPC/ppc64-elf-abi.ll
+@@ -1,4 +1,5 @@
+-; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv1
++; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv2
++; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-musl < %s | FileCheck %s -check-prefix=CHECK-ELFv2
+ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu -target-abi elfv1 < %s | FileCheck %s -check-prefix=CHECK-ELFv1
+ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu -target-abi elfv2 < %s | FileCheck %s -check-prefix=CHECK-ELFv2
+ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv2
diff --git a/srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch b/srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch
new file mode 100644
index 000000000000..b5d15974375d
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch
@@ -0,0 +1,11 @@
+--- a/llvm/lib/Target/PowerPC/PPCSubtarget.cpp
++++ b/llvm/lib/Target/PowerPC/PPCSubtarget.cpp
+@@ -165,7 +165,7 @@ void PPCSubtarget::initSubtargetFeatures(StringRef CPU, StringRef FS) {
+
+ if ((TargetTriple.isOSFreeBSD() && TargetTriple.getOSMajorVersion() >= 13) ||
+ TargetTriple.isOSNetBSD() || TargetTriple.isOSOpenBSD() ||
+- TargetTriple.isMusl())
++ isTargetLinux())
+ SecurePlt = true;
+
+ if (HasSPE && IsPPC64)
diff --git a/srcpkgs/llvm15/patches/llvm-004-override-opt.patch b/srcpkgs/llvm15/patches/llvm-004-override-opt.patch
new file mode 100644
index 000000000000..51d0e4b31b32
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-004-override-opt.patch
@@ -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)
diff --git a/srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch b/srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch
new file mode 100644
index 000000000000..d332687b9d92
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch
@@ -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);
diff --git a/srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch b/srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch
new file mode 100644
index 000000000000..a00abd216665
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch
@@ -0,0 +1,25 @@
+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__) || defined (__ppc__) || \
+- defined(_POWER) || defined(_ARCH_PPC))
++ defined(_POWER) || defined(_ARCH_PPC) || (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
diff --git a/srcpkgs/llvm15/template b/srcpkgs/llvm15/template
new file mode 100644
index 000000000000..5ed8be136668
--- /dev/null
+++ b/srcpkgs/llvm15/template
@@ -0,0 +1,434 @@
+# Template file for 'llvm15'
+pkgname=llvm15
+version=15.0.6
+revision=1
+build_wrksrc=llvm
+build_style=cmake
+configure_args="
+ -DCMAKE_BUILD_TYPE=Release -Wno-dev
+ -DENABLE_LINKER_BUILD_ID=YES
+ -DLLDB_USE_SYSTEM_SIX=YES
+ -DLIBCXX_CXX_ABI=libcxxabi
+ -DLIBCXX_ENABLE_STATIC_ABI_LIBRARY=YES
+ -DLIBCXXABI_USE_LLVM_UNWINDER=YES
+ -DLIBCXXABI_ENABLE_STATIC_UNWINDER=YES
+ -DLIBOMP_ENABLE_SHARED=YES
+ -DLIBOMP_INSTALL_ALIASES=NO
+ -DLLVM_INCLUDE_DOCS=YES
+ -DLLVM_BUILD_DOCS=YES
+ -DLLVM_ENABLE_SPHINX=YES
+ -DSPHINX_WARNINGS_AS_ERRORS=NO
+ -DLLVM_INSTALL_UTILS=YES
+ -DLLVM_BUILD_LLVM_DYLIB=YES
+ -DLLVM_LINK_LLVM_DYLIB=YES
+ -DLLVM_ENABLE_RTTI=YES
+ -DLLVM_ENABLE_FFI=YES
+ -DLLVM_BINUTILS_INCDIR=/usr/include"
+hostmakedepends="perl python3 zlib-devel libffi-devel swig python3-Sphinx
+ python3-recommonmark python3-sphinx-automodapi"
+makedepends="python3-devel zlib-devel elfutils-devel libffi-devel libedit-devel
+ libxml2-devel binutils-devel libatomic-devel"
+depends="libllvm15>=${version}_${revision}"
+short_desc="Low Level Virtual Machine"
+maintainer="Orphaned <orphan@voidlinux.org>"
+license="Apache-2.0"
+homepage="https://www.llvm.org"
+distfiles="https://github.com/llvm/llvm-project/releases/download/llvmorg-${version}/llvm-project-${version}.src.tar.xz"
+checksum=9d53ad04dc60cb7b30e810faf64c5ab8157dadef46c8766f67f286238256ff92
+lib32disabled=yes
+python_version=3
+
+if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
+ configure_args+=" -DLIBCXX_HAS_MUSL_LIBC=YES"
+ makedepends+=" libexecinfo-devel"
+ depends+=" libexecinfo-devel"
+fi
+
+# "operand out of range" assembler failures
+case "$XBPS_TARGET_MACHINE" in
+ ppc64*) ;;
+ ppc*) configure_args+=" -DCLANG_ENABLE_CLANGD=OFF" ;;
+esac
+
+_enabled_projects="clang;clang-tools-extra;compiler-rt;libcxx;libcxxabi;libunwind;lld"
+
+_lldb_enable=yes
+_libomp_enable=no
+
+case "$XBPS_TARGET_MACHINE" in
+ ppc64le*) ;;
+ ppc*|i686*) _lldb_enable=no ;;
+esac
+
+case "$XBPS_TARGET_MACHINE" in
+ x86_64*|aarch64*|ppc64*) _libomp_enable=yes;;
+esac
+
+subpackages="clang-tools-extra"
+
+# must go before clang
+if [ "$_libomp_enable" = "yes" ]; then
+ _enabled_projects+=";openmp"
+ subpackages+=" libomp libomp-devel"
+ # because of cmake nonsense referencing libomptarget.so.*
+ depends+=" libomp>=${version}_${revision}"
+fi
+
+subpackages+=" clang clang-analyzer libclang libclang-cpp
+ llvm-libunwind llvm-libunwind-devel libcxx libcxx-devel
+ libcxxabi libcxxabi-devel libllvm15"
+
+if [ "$_lldb_enable" = "yes" ]; then
+ # XXX fails to cross compile due to python
+ _enabled_projects+=";lldb"
+ subpackages+=" lldb lldb-devel"
+fi
+
+subpackages+=" lld lld-devel"
+
+configure_args+=" -DLLVM_ENABLE_PROJECTS=${_enabled_projects}"
+
+post_patch() {
+ if [ "$_lldb_enable" = "yes" ]; then
+ if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
+ vsed -i 's|__ptrace_request|int|g' \
+ ${wrksrc}/lldb/source/Plugins/Process/Linux/NativeProcessLinux.cpp
+ fi
+ # disable docs for lldb as they fail to generate
+ vsed -i '/add_subdirectory(docs)/d' \
+ ${wrksrc}/lldb/CMakeLists.txt
+ fi
+
+ # update config.guess for better platform detection
+ cp $XBPS_COMMONDIR/environment/configure/automake/config.guess \
+ ${wrksrc}/llvm/cmake
+
+ # fix linker failures on some archs
+ vsed -i 's,check_library_exists(gcc_s .*,set(LIBCXXABI_HAS_GCC_S_LIB ON),' \
+ ${wrksrc}/libcxxabi/cmake/config-ix.cmake
+ vsed -i 's,check_library_exists(gcc .*,set(LIBCXXABI_HAS_GCC_LIB ON),' \
+ ${wrksrc}/libcxxabi/cmake/config-ix.cmake
+
+ # need libssp_nonshared on some musl platforms (because of nodefaultlibs)
+ case "$XBPS_TARGET_MACHINE" in
+ ppc64*) ;;
+ ppc*-musl|i686-musl|mips*-musl)
+ vsed -i 's,^# Setup flags.$,add_library_flags(ssp_nonshared),' \
+ ${wrksrc}/libunwind/src/CMakeLists.txt
+ vsed -i 's,^# Setup flags.$,add_library_flags(ssp_nonshared),' \
+ ${wrksrc}/libcxxabi/src/CMakeLists.txt
+ vsed -i 's,#ssp,,' ${wrksrc}/libcxx/CMakeLists.txt
+ ;;
+ esac
+
+ case "$XBPS_TARGET_MACHINE" in
+ x86_64-musl) # some sanitizer currently only on x86_64 stuff needs backtrace
+ vsed -i 's,# Set common link flags.,list(APPEND SANITIZER_COMMON_LINK_LIBS execinfo),' \
+ ${wrksrc}/compiler-rt/CMakeLists.txt
+ ;;
+ arm*-musl|i686-musl) # sanitizer code is broken since it duplicates some libc bits
+ vsed -i 's/set(COMPILER_RT_HAS_SANITIZER_COMMON TRUE)/set(COMPILER_RT_HAS_SANITIZER_COMMON FALSE)/' \
+ ${wrksrc}/compiler-rt/cmake/config-ix.cmake
+ ;;
+ esac
+}
+
+pre_configure() {
+ local triplet
+
+ # Vastly reduce size of debugging symbols:
+ CFLAGS=${CFLAGS/ -g/ -g1}
+ CXXFLAGS=${CXXFLAGS/ -g/ -g1}
+
+ # since gcc9, the build likes to blow up for ppc32 apparently because
+ # of clang being too large for a 24-bit relative call to the PLT, so
+ # optimize for size instead
+ case "$XBPS_TARGET_MACHINE" in
+ ppc64*) ;;
+ mips*-musl|ppc*) configure_args+=" -DVOID_CXX_OPT_FLAGS=-Os" ;;
+ esac
+
+ if [ "$CROSS_BUILD" ]; then
+ msg_normal "Building host tblgen\n"
+ mkdir -p build/HOST
+ cd build/HOST
+ CC="$BUILD_CC" CXX="$BUILD_CXX" CFLAGS="$BUILD_CFLAGS" \
+ CXXFLAGS="$BUILD_CXXFLAGS" LDFLAGS="$BUILD_LDFLAGS" \
+ cmake ../.. -DCMAKE_BUILD_TYPE=Release \
+ -DLLVM_ENABLE_PROJECTS=${_enabled_projects}
+ make ${makejobs} -C utils/TableGen
+ make ${makejobs} -C tools/clang/utils/TableGen
+ [ "$_lldb_enable" = "yes" ] && make ${makejobs} -C tools/lldb/utils/TableGen
+ configure_args+=" -DLLVM_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/llvm-tblgen"
+ configure_args+=" -DCLANG_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/clang-tblgen"
+ [ "$_lldb_enable" = "yes" ] && configure_args+=" -DLLDB_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/lldb-tblgen"
+ cd ../..
+ fi
+
+ case "$XBPS_TARGET_MACHINE" in
+ i686*) _arch="X86";;
+ x86_64*) _arch="X86";;
+ armv5*) _arch="Armv5te";;
+ armv6*) _arch="Armv6";;
+ armv7*) _arch="Armv7";;
+ aarch64*) _arch="AArch64";;
+ mips*) _arch="Mips";;
+ ppc*) _arch="PowerPC";;
+ riscv64*) _arch="RISCV64";;
+ esac
+
+ triplet=${XBPS_CROSS_TRIPLET:-$XBPS_TRIPLET}
+
+ configure_args+=" -DLLVM_TARGET_ARCH=${_arch}"
+ configure_args+=" -DLLVM_HOST_TRIPLE=${triplet}"
+ configure_args+=" -DLLVM_DEFAULT_TARGET_TRIPLE=${triplet}"
+}
+
+do_install() {
+ cd build
+ cmake -DCMAKE_INSTALL_PREFIX=${DESTDIR}/usr -P cmake_install.cmake
+
+ # Required for multilib.
+ if [ "$XBPS_TARGET_MACHINE" = "x86_64" ]; then
+ for _header in llvm-config; do
+ mv ${DESTDIR}/usr/include/llvm/Config/${_header}{,-64}.h
+ vinstall ${FILESDIR}/llvm-Config-${_header}.h 644 \
+ usr/include/llvm/Config ${_header}.h
+ done
+ fi
+
+ # Remove llvm-config-host in cross builds.
+ if [ "$CROSS_BUILD" ]; then
+ rm -f ${DESTDIR}/usr/bin/llvm-config-host
+ fi
+
+ # Install libcxxabi headers
+ vinstall ${wrksrc}/libcxxabi/include/__cxxabi_config.h 644 usr/include
+ vinstall ${wrksrc}/libcxxabi/include/cxxabi.h 644 usr/include
+
+ # Install libunwind headers
+ vinstall ${wrksrc}/libunwind/include/__libunwind_config.h 644 usr/include
+ vinstall ${wrksrc}/libunwind/include/libunwind.h 644 usr/include
+ vinstall ${wrksrc}/libunwind/include/unwind.h 644 usr/include
+ vinstall ${wrksrc}/libunwind/include/mach-o/compact_unwind_encoding.h \
+ 644 usr/include/mach-o
+}
+
+clang-analyzer_package() {
+ pycompile_dirs="usr/share/scan-view"
+ depends="clang-${version}_${revision} python3 perl"
+ short_desc+=" - A source code analysis framework"
+ homepage="https://clang-analyzer.llvm.org/"
+ pkg_install() {
+ vmove "usr/bin/scan-*"
+ vmove "usr/libexec/*analyzer"
+ vmove "usr/share/scan-*"
+ vmove usr/share/man/man1/scan-build.1
+ }
+}
+
+clang-tools-extra_package() {
+ lib32disabled=yes
+ depends="clang-${version}_${revision} python3"
+ short_desc+=" - Extra Clang tools"
+ homepage="https://clang.llvm.org/extra/"
+ pkg_install() {
+ vmove usr/bin/clang-apply-replacements
+ vmove usr/bin/clang-doc
+ vmove usr/bin/clang-include-fixer
+ vmove usr/bin/clang-query
+ vmove usr/bin/clang-rename
+ vmove usr/bin/clang-reorder-fields
+ vmove usr/bin/clang-tidy
+ vmove usr/bin/clangd
+ vmove usr/bin/diagtool
+ vmove usr/bin/find-all-symbols
+ vmove usr/bin/hmaptool
+ vmove usr/bin/modularize
+ vmove usr/bin/pp-trace
+ vmove usr/bin/sancov
+ vmove usr/include/clang-tidy
+ vmove "usr/lib/libclangApplyReplacements*"
+ vmove "usr/lib/libclangDoc*"
+ vmove "usr/lib/libclangIncludeFixer*"
+ vmove "usr/lib/libclangReorderFields*"
+ vmove "usr/lib/libclangQuery*"
+ vmove "usr/lib/libclangTidy*"
+ vmove "usr/share/clang/*include-fixer*"
+ vmove "usr/share/clang/*rename*"
+ vmove "usr/share/clang/*tidy*"
+ vmove usr/share/doc/LLVM/clang-tools
+ vmove usr/share/man/man1/diagtool.1
+ vmove usr/share/man/man1/extraclangtools.1
+ }
+}
+
+clang_package() {
+ lib32disabled=yes
+ depends="libstdc++-devel libgcc-devel binutils ${XBPS_TARGET_LIBC}-devel
+ libclang-${version}_${revision}"
+ short_desc+=" - C language family frontend"
+ homepage="https://clang.llvm.org/"
+ pkg_install() {
+ vmove "usr/bin/*clang*"
+ vmove usr/bin/c-index-test
+ vmove usr/include/clang
+ vmove usr/include/clang-c
+ vmove usr/lib/clang
+ vmove usr/lib/cmake/clang
+ vmove "usr/lib/libclang*.a"
+ vmove "usr/lib/libclang*.so"
+ vmove usr/share/clang
+ vmove usr/share/doc/LLVM/clang
+ vmove usr/share/man/man1/clang.1
+ }
+}
+
+libclang_package() {
+ short_desc+=" - C frontend runtime library"
+ pkg_install() {
+ vmove "usr/lib/libclang.so.*"
+ }
+}
+
+libclang-cpp_package() {
+ short_desc+=" - C frontend runtime library (C++ interface)"
+ pkg_install() {
+ vmove "usr/lib/libclang-cpp.so.*"
+ }
+}
+
+lld_package() {
+ lib32disabled=yes
+ short_desc+=" - linker"
+ homepage="https://lld.llvm.org"
+ pkg_install() {
+ vmove usr/bin/ld.lld*
+ vmove usr/bin/ld64.lld*
+ vmove usr/bin/lld*
+ vmove usr/bin/wasm-ld
+ vmove usr/share/doc/LLVM/lld
+ }
+}
+
+lld-devel_package() {
+ lib32disabled=yes
+ short_desc+=" - linker - development files"
+ homepage="https://lld.llvm.org"
+ depends="lld>=${version}_${revision}"
+ pkg_install() {
+ vmove usr/include/lld
+ vmove usr/lib/cmake/lld
+ vmove "usr/lib/liblld*a"
+ }
+}
+
+lldb_package() {
+ lib32disabled=yes
+ depends+=" python3-six"
+ short_desc+=" - LLDB debugger"
+ homepage="https://lldb.llvm.org/"
+ pkg_install() {
+ vmove usr/bin/*lldb*
+ vmove usr/lib/liblldb*so.*
+ vmove /usr/lib/python*
+ }
+}
+
+lldb-devel_package() {
+ lib32disabled=yes
+ depends="lldb>=${version}_${revision}"
+ short_desc+=" - LLDB debugger - development files"
+ pkg_install() {
+ vmove usr/include/lldb
+ vmove "usr/lib/liblldb*.so"
+ }
+}
+
+llvm-libunwind_package() {
+ short_desc+=" - libunwind"
+ pkg_install() {
+ vmove "usr/lib/${XBPS_TRIPLET}/libunwind.so.*"
+ }
+}
+
+llvm-libunwind-devel_package() {
+ short_desc+=" - libunwind - development files"
+ depends="llvm-libunwind>=${version}_${revision}"
+ conflicts="libunwind-devel>=0"
+ pkg_install() {
+ vmove usr/include/mach-o
+ vmove "usr/include/*unwind*"
+ vmove "usr/lib/${XBPS_TRIPLET}/libunwind.a"
+ vmove "usr/lib/${XBPS_TRIPLET}/libunwind.so"
+ vmove usr/share/doc/LLVM/libunwind
+ }
+}
+
+libcxxabi_package() {
+ short_desc+=" - low level support for libc++"
+ pkg_install() {
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++abi.so.*"
+ }
+}
+
+libcxxabi-devel_package() {
+ short_desc+=" - low level support for libc++ - development files"
+ depends="libcxxabi>=${version}_${revision}"
+ pkg_install() {
+ vmove "usr/include/*cxxabi*"
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++abi.so"
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++abi.a"
+ }
+}
+
+libcxx_package() {
+ short_desc+=" - C++ standard library"
+ pkg_install() {
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++.so.*"
+ }
+}
+
+libcxx-devel_package() {
+ short_desc+=" - C++ standard library - development files"
+ depends="libcxx>=${version}_${revision}"
+ pkg_install() {
+ vmove usr/include/c++
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++.so"
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++.a"
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++experimental.a"
+ vmove usr/share/doc/LLVM/libcxx
+ }
+}
+
+libomp_package() {
+ short_desc+=" - Clang OpenMP support library"
+ pkg_install() {
+ vmove usr/lib/libarcher.so
+ vmove usr/lib/libomp.so
+ vmove usr/lib/libompd.so
+ vmove "usr/lib/libomptarget.rtl.*.so"
+ vmove "usr/lib/libomp*.so.*"
+ }
+}
+
+libomp-devel_package() {
+ short_desc+=" - Clang OpenMP support library - development files"
+ depends="libomp>=${version}_${revision}"
+ pkg_install() {
+ vmove "usr/include/omp*.h"
+ vmove "usr/lib/clang/${version}/include/omp*.h"
+ vmove "usr/lib/libarcher*"
+ vmove "usr/lib/libomp*.so"
+ vmove usr/lib/cmake/openmp
+ vmove usr/share/doc/LLVM/openmp
+ vmove usr/share/man/man1/llvmopenmp.1
+ }
+}
+
+libllvm15_package() {
+ short_desc+=" - runtime library"
+ pkg_install() {
+ vmove "usr/lib/libLLVM-*.so*"
+ }
+}
diff --git a/srcpkgs/llvm15/update b/srcpkgs/llvm15/update
new file mode 100644
index 000000000000..e95cf26b3586
--- /dev/null
+++ b/srcpkgs/llvm15/update
@@ -0,0 +1,3 @@
+site="https://github.com/llvm/llvm-project/releases"
+pattern="llvmorg-\K(\d+.){2}\d+(-rc\d+)?"
+ignore="*-rc*"
From 0fd6e120ba3576b7f8ed6fc8ec9a64a26b7bca6b Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Sun, 18 Dec 2022 00:40:18 +0100
Subject: [PATCH 2/3] llvm: update to 15.0.6
---
common/shlibs | 6 +++---
srcpkgs/clang | 2 +-
srcpkgs/clang-analyzer | 2 +-
srcpkgs/clang-tools-extra | 2 +-
srcpkgs/libclang | 2 +-
srcpkgs/libclang-cpp | 2 +-
srcpkgs/libcxx | 2 +-
srcpkgs/libcxx-devel | 2 +-
srcpkgs/libcxxabi | 2 +-
srcpkgs/libcxxabi-devel | 2 +-
srcpkgs/libomp | 2 +-
srcpkgs/libomp-devel | 2 +-
srcpkgs/lld | 2 +-
srcpkgs/lld-devel | 2 +-
srcpkgs/lldb | 2 +-
srcpkgs/lldb-devel | 2 +-
srcpkgs/llvm-libunwind | 2 +-
srcpkgs/llvm-libunwind-devel | 2 +-
srcpkgs/llvm/template | 6 +++---
19 files changed, 23 insertions(+), 23 deletions(-)
diff --git a/common/shlibs b/common/shlibs
index 3cb919b3ce3b..7b8d77766f0f 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -982,9 +982,9 @@ 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.12 lldb-12.0.0_1
-libclang.so.12 libclang-12.0.0_1
-libclang-cpp.so.12 libclang-cpp-12.0.0_1
+liblldb.so.15 lldb-15.0.6_1
+libclang.so.15 libclang-15.0.6_1
+libclang-cpp.so.15 libclang-cpp-15.0.6_1
libLLVM-11.so libllvm11-11.0.0_1
libLLVM-12.so libllvm12-12.0.0_1
libLLVM-15.so libllvm15-15.0.6_1
diff --git a/srcpkgs/clang b/srcpkgs/clang
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/clang
+++ b/srcpkgs/clang
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/clang-analyzer b/srcpkgs/clang-analyzer
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/clang-analyzer
+++ b/srcpkgs/clang-analyzer
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/clang-tools-extra b/srcpkgs/clang-tools-extra
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/clang-tools-extra
+++ b/srcpkgs/clang-tools-extra
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libclang b/srcpkgs/libclang
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libclang
+++ b/srcpkgs/libclang
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libclang-cpp b/srcpkgs/libclang-cpp
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libclang-cpp
+++ b/srcpkgs/libclang-cpp
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxx b/srcpkgs/libcxx
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxx
+++ b/srcpkgs/libcxx
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxx-devel b/srcpkgs/libcxx-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxx-devel
+++ b/srcpkgs/libcxx-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxxabi b/srcpkgs/libcxxabi
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxxabi
+++ b/srcpkgs/libcxxabi
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxxabi-devel b/srcpkgs/libcxxabi-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxxabi-devel
+++ b/srcpkgs/libcxxabi-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libomp b/srcpkgs/libomp
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libomp
+++ b/srcpkgs/libomp
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libomp-devel b/srcpkgs/libomp-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libomp-devel
+++ b/srcpkgs/libomp-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lld b/srcpkgs/lld
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lld
+++ b/srcpkgs/lld
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lld-devel b/srcpkgs/lld-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lld-devel
+++ b/srcpkgs/lld-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lldb b/srcpkgs/lldb
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lldb
+++ b/srcpkgs/lldb
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lldb-devel b/srcpkgs/lldb-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lldb-devel
+++ b/srcpkgs/lldb-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm-libunwind b/srcpkgs/llvm-libunwind
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/llvm-libunwind
+++ b/srcpkgs/llvm-libunwind
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm-libunwind-devel b/srcpkgs/llvm-libunwind-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/llvm-libunwind-devel
+++ b/srcpkgs/llvm-libunwind-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm/template b/srcpkgs/llvm/template
index a92db6f94f9f..7f04a8f8a7a4 100644
--- a/srcpkgs/llvm/template
+++ b/srcpkgs/llvm/template
@@ -1,11 +1,11 @@
# Template file for 'llvm'
pkgname=llvm
-version=12.0.0
+version=15.0.6
revision=1
build_style=meta
-depends="llvm12"
-replaces="llvm11>=0 llvm10>=0 llvm9>=0 llvm8>=0 llvm7>=0 llvm6.0>=0 llvm3.9>=0"
+depends="llvm15"
short_desc="LLVM meta package"
maintainer="Enno Boland <gottox@voidlinux.org>"
license="Public Domain"
homepage="https://www.voidlinux.org"
+replaces="llvm12>=0 llvm11>=0 llvm10>=0 llvm9>=0 llvm8>=0 llvm7>=0 llvm6.0>=0 llvm3.9>=0"
From 4841f398dbf0dd717032b816410d00dc3aef4c4d Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Sun, 18 Dec 2022 12:20:08 +0100
Subject: [PATCH 3/3] llvm12: remove bumped subpackages
---
srcpkgs/llvm12/template | 264 +---------------------------------------
1 file changed, 1 insertion(+), 263 deletions(-)
diff --git a/srcpkgs/llvm12/template b/srcpkgs/llvm12/template
index f8ea3ba641ae..aea0b43cf573 100644
--- a/srcpkgs/llvm12/template
+++ b/srcpkgs/llvm12/template
@@ -50,55 +50,7 @@ case "$XBPS_TARGET_MACHINE" in
ppc*) configure_args+=" -DCLANG_ENABLE_CLANGD=OFF" ;;
esac
-_enabled_projects="clang;clang-tools-extra;compiler-rt;libcxx;libcxxabi;libunwind;lld"
-
-_lldb_enable=yes
-_libomp_enable=no
-
-case "$XBPS_TARGET_MACHINE" in
- ppc64le*) ;;
- ppc*|i686*) _lldb_enable=no ;;
-esac
-
-case "$XBPS_TARGET_MACHINE" in
- x86_64*|aarch64*|ppc64*) _libomp_enable=yes;;
-esac
-
-subpackages="clang-tools-extra"
-
-# must go before clang
-if [ "$_libomp_enable" = "yes" ]; then
- _enabled_projects+=";openmp"
- subpackages+=" libomp libomp-devel"
- # because of cmake nonsense referencing libomptarget.so.*
- depends+=" libomp>=${version}_${revision}"
-fi
-
-subpackages+=" clang clang-analyzer libclang libclang-cpp
- llvm-libunwind llvm-libunwind-devel libcxx libcxx-devel
- libcxxabi libcxxabi-devel libllvm12"
-
-if [ "$_lldb_enable" = "yes" ]; then
- # XXX fails to cross compile due to python
- _enabled_projects+=";lldb"
- subpackages+=" lldb lldb-devel"
-fi
-
-subpackages+=" lld lld-devel"
-
-configure_args+=" -DLLVM_ENABLE_PROJECTS=${_enabled_projects}"
-
post_patch() {
- if [ "$_lldb_enable" = "yes" ]; then
- if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
- vsed -i 's|__ptrace_request|int|g' \
- ${wrksrc}/lldb/source/Plugins/Process/Linux/NativeProcessLinux.cpp
- fi
- # disable docs for lldb as they fail to generate
- vsed -i '/add_subdirectory(docs)/d' \
- ${wrksrc}/lldb/CMakeLists.txt
- fi
-
# update config.guess for better platform detection
cp $XBPS_COMMONDIR/environment/configure/automake/config.guess \
${wrksrc}/llvm/cmake
@@ -154,14 +106,12 @@ pre_configure() {
cd build/HOST
CC="$BUILD_CC" CXX="$BUILD_CXX" CFLAGS="$BUILD_CFLAGS" \
CXXFLAGS="$BUILD_CXXFLAGS" LDFLAGS="$BUILD_LDFLAGS" \
- cmake ../.. -DCMAKE_BUILD_TYPE=Release \
- -DLLVM_ENABLE_PROJECTS=${_enabled_projects}
+ cmake ../.. -DCMAKE_BUILD_TYPE=Release
make ${makejobs} -C utils/TableGen
make ${makejobs} -C tools/clang/utils/TableGen
[ "$_lldb_enable" = "yes" ] && make ${makejobs} -C tools/lldb/utils/TableGen
configure_args+=" -DLLVM_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/llvm-tblgen"
configure_args+=" -DCLANG_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/clang-tblgen"
- [ "$_lldb_enable" = "yes" ] && configure_args+=" -DLLDB_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/lldb-tblgen"
cd ../..
fi
@@ -201,218 +151,6 @@ do_install() {
if [ "$CROSS_BUILD" ]; then
rm -f ${DESTDIR}/usr/bin/llvm-config-host
fi
-
- # Install libcxxabi headers
- vinstall ${wrksrc}/libcxxabi/include/__cxxabi_config.h 644 usr/include
- vinstall ${wrksrc}/libcxxabi/include/cxxabi.h 644 usr/include
-
- # Install libunwind headers
- vinstall ${wrksrc}/libunwind/include/__libunwind_config.h 644 usr/include
- vinstall ${wrksrc}/libunwind/include/libunwind.h 644 usr/include
- vinstall ${wrksrc}/libunwind/include/unwind.h 644 usr/include
- vinstall ${wrksrc}/libunwind/include/mach-o/compact_unwind_encoding.h \
- 644 usr/include/mach-o
-}
-
-clang-analyzer_package() {
- pycompile_dirs="usr/share/scan-view"
- depends="clang-${version}_${revision} python3 perl"
- short_desc+=" - A source code analysis framework"
- homepage="https://clang-analyzer.llvm.org/"
- pkg_install() {
- vmove usr/share/man/man1/scan-build.1
- vmove "/usr/bin/scan-*"
- vmove "/usr/share/scan-*"
- vmove "/usr/libexec/*analyzer"
- }
-}
-
-clang-tools-extra_package() {
- lib32disabled=yes
- depends="clang-${version}_${revision} python3"
- short_desc+=" - Extra Clang tools"
- homepage="https://clang.llvm.org/extra/"
- pkg_install() {
- vmove usr/include/clang-tidy
- vmove usr/bin/clang-apply-replacements
- vmove usr/bin/clang-query
- vmove usr/bin/clang-rename
- vmove usr/bin/clang-tidy
- vmove usr/bin/diagtool
- vmove usr/bin/find-all-symbols
- vmove usr/bin/hmaptool
- vmove usr/bin/modularize
- vmove usr/bin/pp-trace
- vmove usr/bin/sancov
- vmove "usr/lib/libclangApplyReplacements*"
- vmove "usr/lib/libclangQuery*"
- vmove "usr/lib/libclangTidy*"
- vmove "usr/share/clang/*tidy*"
- vmove usr/share/doc/clang-tools
- vmove usr/share/man/man1/extraclangtools.1
- vmove usr/share/man/man1/diagtool.1
- }
-}
-
-clang_package() {
- lib32disabled=yes
- depends="libstdc++-devel libgcc-devel binutils ${XBPS_TARGET_LIBC}-devel
- libclang-${version}_${revision}"
- short_desc+=" - C language family frontend"
- homepage="https://clang.llvm.org/"
- pkg_install() {
- vmove usr/include/clang
- vmove usr/include/clang-c
- vmove "usr/bin/*clang*"
- vmove usr/bin/c-index-test
- vmove usr/lib/clang
- vmove usr/lib/cmake/clang
- vmove "usr/lib/libclang*.a"
- vmove "usr/lib/libclang*.so"
- vmove usr/share/clang
- vmove usr/share/doc/clang
- vmove usr/share/man/man1/clang.1
- }
-}
-
-libclang_package() {
- short_desc+=" - C frontend runtime library"
- pkg_install() {
- vmove "usr/lib/libclang.so.*"
- }
-}
-
-libclang-cpp_package() {
- short_desc+=" - C frontend runtime library (C++ interface)"
- pkg_install() {
- vmove "usr/lib/libclang-cpp.so.*"
- }
-}
-
-lld_package() {
- lib32disabled=yes
- short_desc+=" - linker"
- homepage="https://lld.llvm.org"
- pkg_install() {
- vmove usr/bin/lld*
- vmove usr/bin/wasm-ld
- vmove usr/bin/ld.lld*
- vmove usr/bin/ld64.lld*
- vmove usr/share/doc/lld
- }
-}
-
-lld-devel_package() {
- lib32disabled=yes
- short_desc+=" - linker - development files"
- homepage="https://lld.llvm.org"
- depends="lld>=${version}_${revision}"
- pkg_install() {
- vmove usr/include/lld
- vmove usr/lib/cmake/lld
- vmove "usr/lib/liblld*a"
- }
-}
-
-lldb_package() {
- lib32disabled=yes
- depends+=" python3-six"
- short_desc+=" - LLDB debugger"
- homepage="https://lldb.llvm.org/"
- pkg_install() {
- vmove usr/bin/*lldb*
- vmove usr/lib/liblldb*so.*
- vmove /usr/lib/python*
- }
-}
-
-lldb-devel_package() {
- lib32disabled=yes
- depends="lldb>=${version}_${revision}"
- short_desc+=" - LLDB debugger - development files"
- pkg_install() {
- vmove usr/include/lldb
- vmove "usr/lib/liblldb*.so"
- }
-}
-
-llvm-libunwind_package() {
- short_desc+=" - libunwind"
- pkg_install() {
- vmove "usr/lib/libunwind.so.*"
- }
-}
-
-llvm-libunwind-devel_package() {
- short_desc+=" - libunwind - development files"
- depends="llvm-libunwind>=${version}_${revision}"
- conflicts="libunwind-devel>=0"
- pkg_install() {
- vmove usr/lib/libunwind.so
- vmove usr/lib/libunwind.a
- vmove "usr/include/*unwind*"
- vmove usr/include/mach-o
- vmove usr/share/doc/libunwind
- }
-}
-
-libcxxabi_package() {
- short_desc+=" - low level support for libc++"
- pkg_install() {
- vmove "usr/lib/libc++abi.so.*"
- }
-}
-
-libcxxabi-devel_package() {
- short_desc+=" - low level support for libc++ - development files"
- depends="libcxxabi>=${version}_${revision}"
- pkg_install() {
- vmove usr/lib/libc++abi.so
- vmove usr/lib/libc++abi.a
- vmove "usr/include/*cxxabi*"
- }
-}
-
-libcxx_package() {
- short_desc+=" - C++ standard library"
- pkg_install() {
- vmove "usr/lib/libc++.so.*"
- }
-}
-
-libcxx-devel_package() {
- short_desc+=" - C++ standard library - development files"
- depends="libcxx>=${version}_${revision}"
- pkg_install() {
- vmove usr/lib/libc++.so
- vmove usr/lib/libc++.a
- vmove usr/lib/libc++experimental.a
- vmove usr/include/c++
- vmove usr/share/doc/libcxx
- }
-}
-
-libomp_package() {
- short_desc+=" - Clang OpenMP support library"
- pkg_install() {
- vmove usr/lib/libomp.so
- vmove "usr/lib/libomptarget.rtl.*.so"
- vmove usr/lib/libarcher.so
- vmove "usr/lib/libomp*.so.*"
- }
-}
-
-libomp-devel_package() {
- short_desc+=" - Clang OpenMP support library - development files"
- depends="libomp>=${version}_${revision}"
- pkg_install() {
- vmove "usr/lib/libomp*.so"
- vmove "usr/lib/libarcher*"
- vmove "usr/include/omp*.h"
- vmove "usr/lib/clang/${version}/include/omp*.h"
- vmove usr/share/man/man1/llvmopenmp.1
- vmove usr/share/doc/openmp
- }
}
libllvm12_package() {
^ permalink raw reply [flat|nested] 96+ messages in thread
* Re: [PR PATCH] [Updated] [WIP] LLVM 15
2022-11-28 15:30 [PR PATCH] [WIP] LLVM 15 tranzystorek-io
` (28 preceding siblings ...)
2022-12-18 11:24 ` [PR PATCH] [Updated] " tranzystorek-io
@ 2022-12-18 23:30 ` tranzystorek-io
2022-12-19 23:58 ` oreo639
` (64 subsequent siblings)
94 siblings, 0 replies; 96+ messages in thread
From: tranzystorek-io @ 2022-12-18 23:30 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 502 bytes --]
There is an updated pull request by tranzystorek-io against master on the void-packages repository
https://github.com/tranzystorek-io/void-packages llvm15
https://github.com/void-linux/void-packages/pull/40821
[WIP] LLVM 15
[ci skip]
TODO:
- [ ] Adjust patches marked as `.patch.skip`
- [ ] Make libomp a shlib (change so file name and install a symlink)
- [ ] Avoid creating triplet dirs under /usr/
A patch file from https://github.com/void-linux/void-packages/pull/40821.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-llvm15-40821.patch --]
[-- Type: text/x-diff, Size: 63857 bytes --]
From 6026474aac3020c009c9d0bc13cf3f159a29e915 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Sun, 18 Dec 2022 00:36:59 +0100
Subject: [PATCH 1/3] New package: llvm15-15.0.6
---
common/shlibs | 1 +
srcpkgs/libllvm15 | 1 +
.../llvm15/files/llvm-Config-llvm-config.h | 9 +
...clang-001-fix-unwind-chain-inclusion.patch | 44 ++
.../patches/clang-002-add-musl-triples.patch | 110 +++++
.../clang-003-ppc64-dynamic-linker-path.patch | 13 +
.../patches/clang-004-ppc64-musl-elfv2.patch | 48 ++
.../compiler-rt-sanitizer-ppc64-musl.patch | 35 ++
.../compiler-rt-xray-ppc64-musl.patch.skip | 62 +++
srcpkgs/llvm15/patches/libcxx-musl.patch | 26 ++
srcpkgs/llvm15/patches/libcxx-ppc.patch | 22 +
.../llvm15/patches/libcxx-ssp-nonshared.patch | 11 +
srcpkgs/llvm15/patches/libcxxabi-dl.patch | 25 +
.../llvm15/patches/libunwind-ppc32.patch.skip | 63 +++
srcpkgs/llvm15/patches/lldb-musl.patch | 40 ++
srcpkgs/llvm15/patches/llvm-001-musl.patch | 57 +++
.../patches/llvm-002-musl-ppc64-elfv2.patch | 30 ++
.../patches/llvm-003-ppc-secureplt.patch | 11 +
.../patches/llvm-004-override-opt.patch | 18 +
.../llvm15/patches/llvm-005-ppc-bigpic.patch | 36 ++
.../patches/llvm-006-aarch64-mf_exec.patch | 25 +
srcpkgs/llvm15/template | 434 ++++++++++++++++++
srcpkgs/llvm15/update | 3 +
23 files changed, 1124 insertions(+)
create mode 120000 srcpkgs/libllvm15
create mode 100644 srcpkgs/llvm15/files/llvm-Config-llvm-config.h
create mode 100644 srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch
create mode 100644 srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch
create mode 100644 srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch
create mode 100644 srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch
create mode 100644 srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch
create mode 100644 srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip
create mode 100644 srcpkgs/llvm15/patches/libcxx-musl.patch
create mode 100644 srcpkgs/llvm15/patches/libcxx-ppc.patch
create mode 100644 srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch
create mode 100644 srcpkgs/llvm15/patches/libcxxabi-dl.patch
create mode 100644 srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip
create mode 100644 srcpkgs/llvm15/patches/lldb-musl.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-001-musl.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-004-override-opt.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch
create mode 100644 srcpkgs/llvm15/template
create mode 100644 srcpkgs/llvm15/update
diff --git a/common/shlibs b/common/shlibs
index ba5c89ee3bad..3cb919b3ce3b 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -987,6 +987,7 @@ libclang.so.12 libclang-12.0.0_1
libclang-cpp.so.12 libclang-cpp-12.0.0_1
libLLVM-11.so libllvm11-11.0.0_1
libLLVM-12.so libllvm12-12.0.0_1
+libLLVM-15.so libllvm15-15.0.6_1
libisofs.so.6 libisofs-0.6.24_1
libmpack.so.0 libmpack-1.0.5_1
libGeoIP.so.1 libgeoip-1.4.8_1
diff --git a/srcpkgs/libllvm15 b/srcpkgs/libllvm15
new file mode 120000
index 000000000000..ad57a969b9f9
--- /dev/null
+++ b/srcpkgs/libllvm15
@@ -0,0 +1 @@
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm15/files/llvm-Config-llvm-config.h b/srcpkgs/llvm15/files/llvm-Config-llvm-config.h
new file mode 100644
index 000000000000..2fa08c9be696
--- /dev/null
+++ b/srcpkgs/llvm15/files/llvm-Config-llvm-config.h
@@ -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
diff --git a/srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch b/srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch
new file mode 100644
index 000000000000..e4eaa7783e7a
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch
@@ -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
diff --git a/srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch b/srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch
new file mode 100644
index 000000000000..25688d40dbc2
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch
@@ -0,0 +1,110 @@
+--- a/clang/lib/Driver/ToolChains/Gnu.cpp
++++ b/clang/lib/Driver/ToolChains/Gnu.cpp
+@@ -2086,7 +2086,8 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
+ static const char *const ARMHFTriples[] = {"arm-linux-gnueabihf",
+ "armv7hl-redhat-linux-gnueabi",
+ "armv6hl-suse-linux-gnueabi",
+- "armv7hl-suse-linux-gnueabi"};
++ "armv7hl-suse-linux-gnueabi",
++ "armv7l-linux-gnueabihf"};
+ static const char *const ARMebLibDirs[] = {"/lib"};
+ static const char *const ARMebTriples[] = {"armeb-linux-gnueabi",
+ "armeb-linux-androideabi"};
+@@ -2153,8 +2154,7 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
+ "powerpc64-suse-linux", "powerpc-montavista-linuxspe"};
+ static const char *const PPCLELibDirs[] = {"/lib32", "/lib"};
+ static const char *const PPCLETriples[] = {"powerpcle-linux-gnu",
+- "powerpcle-unknown-linux-gnu",
+- "powerpcle-linux-musl"};
++ "powerpcle-unknown-linux-gnu"};
+
+ static const char *const PPC64LibDirs[] = {"/lib64", "/lib"};
+ static const char *const PPC64Triples[] = {
+@@ -2235,6 +2235,87 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
+ return;
+ }
+
++ if (TargetTriple.isMusl()) {
++ static const char *const AArch64MuslTriples[] = {"aarch64-linux-musl"};
++ static const char *const ARMHFMuslTriples[] = {
++ "arm-linux-musleabihf", "armv7l-linux-musleabihf"
++ };
++ static const char *const ARMMuslTriples[] = {"arm-linux-musleabi"};
++ static const char *const X86_64MuslTriples[] = {"x86_64-linux-musl"};
++ static const char *const X86MuslTriples[] = {"i686-linux-musl"};
++ static const char *const MIPSMuslTriples[] = {
++ "mips-linux-musl", "mipsel-linux-musl",
++ "mipsel-linux-muslhf", "mips-linux-muslhf"
++ };
++ static const char *const PPCMuslTriples[] = {"powerpc-linux-musl"};
++ static const char *const PPCLEMuslTriples[] = {"powerpcle-linux-musl"};
++ static const char *const PPC64MuslTriples[] = {"powerpc64-linux-musl"};
++ static const char *const PPC64LEMuslTriples[] = {"powerpc64le-linux-musl"};
++
++ switch (TargetTriple.getArch()) {
++ case llvm::Triple::aarch64:
++ LibDirs.append(begin(AArch64LibDirs), end(AArch64LibDirs));
++ TripleAliases.append(begin(AArch64MuslTriples), end(AArch64MuslTriples));
++ BiarchLibDirs.append(begin(AArch64LibDirs), end(AArch64LibDirs));
++ BiarchTripleAliases.append(begin(AArch64MuslTriples), end(AArch64MuslTriples));
++ break;
++ case llvm::Triple::arm:
++ LibDirs.append(begin(ARMLibDirs), end(ARMLibDirs));
++ if (TargetTriple.getEnvironment() == llvm::Triple::MuslEABIHF) {
++ TripleAliases.append(begin(ARMHFMuslTriples), end(ARMHFMuslTriples));
++ } else {
++ TripleAliases.append(begin(ARMMuslTriples), end(ARMMuslTriples));
++ }
++ break;
++ case llvm::Triple::x86_64:
++ LibDirs.append(begin(X86_64LibDirs), end(X86_64LibDirs));
++ TripleAliases.append(begin(X86_64MuslTriples), end(X86_64MuslTriples));
++ BiarchLibDirs.append(begin(X86LibDirs), end(X86LibDirs));
++ BiarchTripleAliases.append(begin(X86MuslTriples), end(X86MuslTriples));
++ break;
++ case llvm::Triple::x86:
++ LibDirs.append(begin(X86LibDirs), end(X86LibDirs));
++ TripleAliases.append(begin(X86MuslTriples), end(X86MuslTriples));
++ BiarchLibDirs.append(begin(X86_64LibDirs), end(X86_64LibDirs));
++ BiarchTripleAliases.append(begin(X86_64MuslTriples), end(X86_64MuslTriples));
++ break;
++ case llvm::Triple::mips:
++ LibDirs.append(begin(MIPSLibDirs), end(MIPSLibDirs));
++ TripleAliases.append(begin(MIPSMuslTriples), end(MIPSMuslTriples));
++ break;
++ case llvm::Triple::ppc:
++ LibDirs.append(begin(PPCLibDirs), end(PPCLibDirs));
++ TripleAliases.append(begin(PPCMuslTriples), end(PPCMuslTriples));
++ BiarchLibDirs.append(begin(PPC64LibDirs), end(PPC64LibDirs));
++ BiarchTripleAliases.append(begin(PPC64MuslTriples), end(PPC64MuslTriples));
++ break;
++ case llvm::Triple::ppcle:
++ LibDirs.append(begin(PPCLELibDirs), end(PPCLELibDirs));
++ TripleAliases.append(begin(PPCLEMuslTriples), end(PPCLEMuslTriples));
++ BiarchLibDirs.append(begin(PPC64LELibDirs), end(PPC64LELibDirs));
++ BiarchTripleAliases.append(begin(PPC64LEMuslTriples), end(PPC64LEMuslTriples));
++ break;
++ case llvm::Triple::ppc64:
++ LibDirs.append(begin(PPC64LibDirs), end(PPC64LibDirs));
++ TripleAliases.append(begin(PPC64MuslTriples), end(PPC64MuslTriples));
++ BiarchLibDirs.append(begin(PPCLibDirs), end(PPCLibDirs));
++ BiarchTripleAliases.append(begin(PPCMuslTriples), end(PPCMuslTriples));
++ break;
++ case llvm::Triple::ppc64le:
++ LibDirs.append(begin(PPC64LELibDirs), end(PPC64LELibDirs));
++ TripleAliases.append(begin(PPC64LEMuslTriples), end(PPC64LEMuslTriples));
++ BiarchLibDirs.append(begin(PPCLELibDirs), end(PPCLELibDirs));
++ BiarchTripleAliases.append(begin(PPCLEMuslTriples), end(PPCLEMuslTriples));
++ break;
++ default:
++ break;
++ }
++ TripleAliases.push_back(TargetTriple.str());
++ if (TargetTriple.str() != BiarchTriple.str())
++ BiarchTripleAliases.push_back(BiarchTriple.str());
++ return;
++ }
++
+ // Android targets should not use GNU/Linux tools or libraries.
+ if (TargetTriple.isAndroid()) {
+ static const char *const AArch64AndroidTriples[] = {
diff --git a/srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch b/srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch
new file mode 100644
index 000000000000..4ad6412d1e6c
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch
@@ -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 =
diff --git a/srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch b/srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch
new file mode 100644
index 000000000000..21fc8003c5f1
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch
@@ -0,0 +1,48 @@
+--- a/clang/lib/Basic/Targets/PPC.h
++++ b/clang/lib/Basic/Targets/PPC.h
+@@ -415,11 +415,10 @@ public:
+ LongDoubleFormat = &llvm::APFloat::IEEEdouble();
+ } else if ((Triple.getArch() == llvm::Triple::ppc64le)) {
+ DataLayout = "e-m:e-i64:64-n32:64";
+- ABI = "elfv2";
+ } else {
+ DataLayout = "E-m:e-i64:64-n32:64";
+- ABI = "elfv1";
+ }
++ ABI = "elfv2";
+
+ if (Triple.isOSFreeBSD() || Triple.isOSOpenBSD() || Triple.isMusl()) {
+ LongDoubleWidth = LongDoubleAlign = 64;
+--- a/clang/lib/CodeGen/TargetInfo.cpp
++++ b/clang/lib/CodeGen/TargetInfo.cpp
+@@ -10927,9 +10927,9 @@ const TargetCodeGenInfo &CodeGenModule::getTargetCodeGenInfo() {
+ return SetCGInfo(new AIXTargetCodeGenInfo(Types, /*Is64Bit*/ true));
+
+ if (Triple.isOSBinFormatELF()) {
+- PPC64_SVR4_ABIInfo::ABIKind Kind = PPC64_SVR4_ABIInfo::ELFv1;
+- if (getTarget().getABI() == "elfv2")
+- Kind = PPC64_SVR4_ABIInfo::ELFv2;
++ PPC64_SVR4_ABIInfo::ABIKind Kind = PPC64_SVR4_ABIInfo::ELFv2;
++ if (getTarget().getABI() == "elfv1")
++ Kind = PPC64_SVR4_ABIInfo::ELFv1;
+ bool IsSoftFloat = CodeGenOpts.FloatABI == "soft";
+
+ return SetCGInfo(
+--- a/clang/lib/Driver/ToolChains/Clang.cpp
++++ b/clang/lib/Driver/ToolChains/Clang.cpp
+@@ -1920,14 +1920,7 @@ void Clang::AddPPCTargetArgs(const ArgList &Args,
+ const llvm::Triple &T = getToolChain().getTriple();
+ if (T.isOSBinFormatELF()) {
+ switch (getToolChain().getArch()) {
+- case llvm::Triple::ppc64: {
+- if ((T.isOSFreeBSD() && T.getOSMajorVersion() >= 13) ||
+- T.isOSOpenBSD() || T.isMusl())
+- ABIName = "elfv2";
+- else
+- ABIName = "elfv1";
+- break;
+- }
++ case llvm::Triple::ppc64:
+ case llvm::Triple::ppc64le:
+ ABIName = "elfv2";
+ break;
diff --git a/srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch b/srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch
new file mode 100644
index 000000000000..360cfc1ba7f1
--- /dev/null
+++ b/srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch
@@ -0,0 +1,35 @@
+--- 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__) || SANITIZER_RISCV64
++ defined(__hexagon__) || defined(__powerpc__) || 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_ANDROID
++#if (defined(__aarch64__) || defined(__powerpc__) || SANITIZER_RISCV64) && !SANITIZER_ANDROID
+ // GLIBC 2.20+ sys/user does not include asm/ptrace.h
+ # include <asm/ptrace.h>
+ #endif
diff --git a/srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip b/srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip
new file mode 100644
index 000000000000..d0b61c80c897
--- /dev/null
+++ b/srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip
@@ -0,0 +1,62 @@
+--- a/compiler-rt/lib/xray/xray_powerpc64.inc
++++ b/compiler-rt/lib/xray/xray_powerpc64.inc
+@@ -12,7 +12,13 @@
+
+ #include <cstdint>
+ #include <mutex>
++#ifdef __GLIBC__
+ #include <sys/platform/ppc.h>
++#else
++#include <cctype>
++#include <cstring>
++#include <cstdlib>
++#endif
+
+ #include "xray_defs.h"
+
+@@ -20,13 +26,45 @@ namespace __xray {
+
+ ALWAYS_INLINE uint64_t readTSC(uint8_t &CPU) XRAY_NEVER_INSTRUMENT {
+ CPU = 0;
++#ifdef __GLIBC__
+ return __ppc_get_timebase();
++#else
++ return __builtin_ppc_get_timebase();
++#endif
+ }
+
+ inline uint64_t getTSCFrequency() XRAY_NEVER_INSTRUMENT {
+ static std::mutex M;
+ std::lock_guard<std::mutex> Guard(M);
++#ifdef __GLIBC__
+ return __ppc_get_timebase_freq();
++#else
++ /* FIXME: a less dirty implementation? */
++ static uint64_t base;
++ if (!base) {
++ FILE *f = fopen("/proc/cpuinfo", "rb");
++ if (f) {
++ ssize_t nr;
++ /* virtually always big enough to hold the line */
++ char buf[512];
++ while (fgets(buf, sizeof(buf), f)) {
++ char *ret = strstr(buf, "timebase");
++ if (!ret) {
++ continue;
++ }
++ ret += sizeof("timebase") - 1;
++ ret = strchr(ret, ':');
++ if (!ret) {
++ continue;
++ }
++ base = strtoul(ret + 1, nullptr, 10);
++ break;
++ }
++ fclose(f);
++ }
++ }
++ return base;
++#endif
+ }
+
+ inline bool probeRequiredCPUFeatures() XRAY_NEVER_INSTRUMENT {
diff --git a/srcpkgs/llvm15/patches/libcxx-musl.patch b/srcpkgs/llvm15/patches/libcxx-musl.patch
new file mode 100644
index 000000000000..bbd31ffc2cb1
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxx-musl.patch
@@ -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,
+ typename remove_reference<decltype(errno)>::type __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
+ typename remove_reference<decltype(errno)>::type __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,
+ typename remove_reference<decltype(errno)>::type __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
+ typename remove_reference<decltype(errno)>::type __current_errno = errno;
+ if (__current_errno == 0)
+ errno = __save_errno;
diff --git a/srcpkgs/llvm15/patches/libcxx-ppc.patch b/srcpkgs/llvm15/patches/libcxx-ppc.patch
new file mode 100644
index 000000000000..7a92f8004e1c
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxx-ppc.patch
@@ -0,0 +1,22 @@
+This ensures `is_iec559` is defined correctly under all long double ABIs,
+including musl and its 64-bit long double. Also, `__ppc__` or `__ppc64__`
+is not defined on gcc.
+
+--- a/libcxx/include/limits
++++ b/libcxx/include/limits
+@@ -426,8 +426,14 @@ protected:
+ _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type signaling_NaN() _NOEXCEPT {return __builtin_nansl("");}
+ _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type denorm_min() _NOEXCEPT {return __LDBL_DENORM_MIN__;}
+
+-#if (defined(__ppc__) || defined(__ppc64__))
++#if defined(__powerpc__) || defined(__powerpc64__)
++#if (__LDBL_MAX_EXP__ > __DBL_MAX_EXP__) || (__LDBL_MANT_DIG__ == __DBL_MANT_DIG__)
++ /* IEEE 754 quadruple or double precision */
++ static _LIBCPP_CONSTEXPR const bool is_iec559 = true;
++#else
++ /* 128-bit IBM double-double */
+ static _LIBCPP_CONSTEXPR const bool is_iec559 = false;
++#endif
+ #else
+ static _LIBCPP_CONSTEXPR const bool is_iec559 = true;
+ #endif
diff --git a/srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch b/srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch
new file mode 100644
index 000000000000..70292beb2fcd
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch
@@ -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()
diff --git a/srcpkgs/llvm15/patches/libcxxabi-dl.patch b/srcpkgs/llvm15/patches/libcxxabi-dl.patch
new file mode 100644
index 000000000000..3a15f9db8c98
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxxabi-dl.patch
@@ -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 @@
+ target_link_libraries(${target} PRIVATE m)
+ endif()
+
++ if (LIBCXX_HAS_C_LIB)
++ target_link_libraries(${target} PRIVATE dl)
++ endif()
++
+ if (LIBCXX_HAS_RT_LIB)
+ target_link_libraries(${target} PRIVATE rt)
+ endif()
diff --git a/srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip b/srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip
new file mode 100644
index 000000000000..74aa7576ecf9
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip
@@ -0,0 +1,63 @@
+This fixes build at least with gcc9 which does not define `__ppc__`.
+
+--- a/libunwind/include/__libunwind_config.h
++++ b/libunwind/include/__libunwind_config.h
+@@ -49,7 +49,7 @@
+ # define _LIBUNWIND_CONTEXT_SIZE 167
+ # define _LIBUNWIND_CURSOR_SIZE 179
+ # define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_PPC64
+-# elif defined(__ppc__)
++# elif defined(__powerpc__)
+ # define _LIBUNWIND_TARGET_PPC 1
+ # define _LIBUNWIND_CONTEXT_SIZE 117
+ # define _LIBUNWIND_CURSOR_SIZE 124
+--- a/libunwind/src/UnwindRegistersRestore.S
++++ b/libunwind/src/UnwindRegistersRestore.S
+@@ -392,7 +392,7 @@ Lnovec:
+ PPC64_LR(3)
+ bctr
+
+-#elif defined(__ppc__)
++#elif defined(__powerpc__)
+
+ DEFINE_LIBUNWIND_FUNCTION(_ZN9libunwind13Registers_ppc6jumptoEv)
+ //
+--- a/libunwind/src/UnwindRegistersSave.S
++++ b/libunwind/src/UnwindRegistersSave.S
+@@ -554,7 +554,7 @@ DEFINE_LIBUNWIND_FUNCTION(__unw_getcontext)
+ blr
+
+
+-#elif defined(__ppc__)
++#elif defined(__powerpc__)
+
+ //
+ // extern int unw_getcontext(unw_context_t* thread_state)
+--- a/libunwind/src/config.h
++++ b/libunwind/src/config.h
+@@ -95,12 +95,12 @@
+ #define _LIBUNWIND_BUILD_SJLJ_APIS
+ #endif
+
+-#if defined(__i386__) || defined(__x86_64__) || defined(__ppc__) || defined(__ppc64__) || defined(__powerpc64__)
++#if defined(__i386__) || defined(__x86_64__) || defined(__powerpc__) || defined(__powerpc64__)
+ #define _LIBUNWIND_SUPPORT_FRAME_APIS
+ #endif
+
+ #if defined(__i386__) || defined(__x86_64__) || \
+- defined(__ppc__) || defined(__ppc64__) || defined(__powerpc64__) || \
++ defined(__powerpc__) || defined(__powerpc64__) || \
+ (!defined(__APPLE__) && defined(__arm__)) || \
+ (defined(__arm64__) || defined(__aarch64__)) || \
+ defined(__mips__)
+--- a/libunwind/src/libunwind.cpp
++++ b/libunwind/src/libunwind.cpp
+@@ -42,7 +42,7 @@ _LIBUNWIND_HIDDEN int __unw_init_local(unw_cursor_t *cursor,
+ # define REGISTER_KIND Registers_x86_64
+ #elif defined(__powerpc64__)
+ # define REGISTER_KIND Registers_ppc64
+-#elif defined(__ppc__)
++#elif defined(__powerpc__)
+ # define REGISTER_KIND Registers_ppc
+ #elif defined(__aarch64__)
+ # define REGISTER_KIND Registers_arm64
diff --git a/srcpkgs/llvm15/patches/lldb-musl.patch b/srcpkgs/llvm15/patches/lldb-musl.patch
new file mode 100644
index 000000000000..026c5e1e61ba
--- /dev/null
+++ b/srcpkgs/llvm15/patches/lldb-musl.patch
@@ -0,0 +1,40 @@
+--- a/lldb/source/Plugins/Process/Linux/Procfs.h
++++ b/lldb/source/Plugins/Process/Linux/Procfs.h
+@@ -10,6 +10,7 @@
+ // sys/procfs.h on Android/Linux for all supported architectures.
+
+ #include <sys/ptrace.h>
++#include <asm/ptrace.h>
+
+ #include "lldb/lldb-types.h"
+
+@@ -17,23 +18,13 @@
+
+ #include <vector>
+
+-#ifdef __ANDROID__
+-#if defined(__arm64__) || defined(__aarch64__)
+-typedef unsigned long elf_greg_t;
+-typedef elf_greg_t
+- elf_gregset_t[(sizeof(struct user_pt_regs) / sizeof(elf_greg_t))];
+-typedef struct user_fpsimd_state elf_fpregset_t;
+-#ifndef NT_FPREGSET
+-#define NT_FPREGSET NT_PRFPREG
+-#endif // NT_FPREGSET
+-#elif defined(__mips__)
+-#ifndef NT_FPREGSET
+-#define NT_FPREGSET NT_PRFPREG
+-#endif // NT_FPREGSET
+-#endif
+-#else // __ANDROID__
++#if !defined(__GLIBC__) && defined(__powerpc__)
++#define pt_regs musl_pt_regs
++#include <sys/procfs.h>
++#undef pt_regs
++#else
+ #include <sys/procfs.h>
+-#endif // __ANDROID__
++#endif
+
+ namespace lldb_private {
+ namespace process_linux {
diff --git a/srcpkgs/llvm15/patches/llvm-001-musl.patch b/srcpkgs/llvm15/patches/llvm-001-musl.patch
new file mode 100644
index 000000000000..f2a3f8d62813
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-001-musl.patch
@@ -0,0 +1,57 @@
+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;
+diff --git a/lib/Support/Unix/DynamicLibrary.inc b/lib/Support/Unix/DynamicLibrary.inc
+index a2a37996..2f86c470 100644
+--- a/llvm/lib/Support/Unix/DynamicLibrary.inc
++++ b/llvm/lib/Support/Unix/DynamicLibrary.inc
+@@ -102,7 +102,7 @@ static void *DoSearch(const char* SymbolName) {
+
+ // This macro returns the address of a well-known, explicit symbol
+ #define EXPLICIT_SYMBOL(SYM) \
+- if (!strcmp(SymbolName, #SYM)) return &SYM
++ if (!strcmp(SymbolName, #SYM)) return (void *)&SYM
+
+ // Under glibc we have a weird situation. The stderr/out/in symbols are both
+ // macros and global variables because of standards requirements. So, we
+diff --git a/utils/unittest/googletest/src/gtest.cc b/utils/unittest/googletest/src/gtest.cc
+index d882ab2e..f1fb12d0 100644
+--- a/llvm/utils/unittest/googletest/src/gtest.cc
++++ b/llvm/utils/unittest/googletest/src/gtest.cc
+@@ -128,6 +128,7 @@
+
+ #if GTEST_CAN_STREAM_RESULTS_
+ # include <arpa/inet.h> // NOLINT
++# include <sys/socket.h> // NOLINT
+ # include <netdb.h> // NOLINT
+ # include <sys/socket.h> // NOLINT
+ # include <sys/types.h> // NOLINT
diff --git a/srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch b/srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch
new file mode 100644
index 000000000000..0071d964bd37
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch
@@ -0,0 +1,30 @@
+This patches LLVM to use ELFv2 on ppc64 unconditionally unless overridden. We
+need this because unlike most distros we use ELFv2 for both glibc and musl
+on big endian ppc64.
+
+diff --git a/lib/Target/PowerPC/PPCTargetMachine.cpp b/lib/Target/PowerPC/PPCTargetMachine.cpp
+index 0634833e..b7cbc2e7 100644
+--- a/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp
++++ b/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp
+@@ -222,9 +222,8 @@ static PPCTargetMachine::PPCABI computeTargetABI(const Triple &TT,
+
+ switch (TT.getArch()) {
+ case Triple::ppc64le:
+- return PPCTargetMachine::PPC_ABI_ELFv2;
+ case Triple::ppc64:
+- return PPCTargetMachine::PPC_ABI_ELFv1;
++ return PPCTargetMachine::PPC_ABI_ELFv2;
+ default:
+ return PPCTargetMachine::PPC_ABI_UNKNOWN;
+ }
+diff --git a/test/CodeGen/PowerPC/ppc64-elf-abi.ll b/test/CodeGen/PowerPC/ppc64-elf-abi.ll
+index 8b1cf6b5..296a2afa 100644
+--- a/llvm/test/CodeGen/PowerPC/ppc64-elf-abi.ll
++++ b/llvm/test/CodeGen/PowerPC/ppc64-elf-abi.ll
+@@ -1,4 +1,5 @@
+-; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv1
++; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv2
++; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-musl < %s | FileCheck %s -check-prefix=CHECK-ELFv2
+ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu -target-abi elfv1 < %s | FileCheck %s -check-prefix=CHECK-ELFv1
+ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu -target-abi elfv2 < %s | FileCheck %s -check-prefix=CHECK-ELFv2
+ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv2
diff --git a/srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch b/srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch
new file mode 100644
index 000000000000..b5d15974375d
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch
@@ -0,0 +1,11 @@
+--- a/llvm/lib/Target/PowerPC/PPCSubtarget.cpp
++++ b/llvm/lib/Target/PowerPC/PPCSubtarget.cpp
+@@ -165,7 +165,7 @@ void PPCSubtarget::initSubtargetFeatures(StringRef CPU, StringRef FS) {
+
+ if ((TargetTriple.isOSFreeBSD() && TargetTriple.getOSMajorVersion() >= 13) ||
+ TargetTriple.isOSNetBSD() || TargetTriple.isOSOpenBSD() ||
+- TargetTriple.isMusl())
++ isTargetLinux())
+ SecurePlt = true;
+
+ if (HasSPE && IsPPC64)
diff --git a/srcpkgs/llvm15/patches/llvm-004-override-opt.patch b/srcpkgs/llvm15/patches/llvm-004-override-opt.patch
new file mode 100644
index 000000000000..51d0e4b31b32
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-004-override-opt.patch
@@ -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)
diff --git a/srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch b/srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch
new file mode 100644
index 000000000000..d332687b9d92
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch
@@ -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);
diff --git a/srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch b/srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch
new file mode 100644
index 000000000000..a00abd216665
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch
@@ -0,0 +1,25 @@
+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__) || defined (__ppc__) || \
+- defined(_POWER) || defined(_ARCH_PPC))
++ defined(_POWER) || defined(_ARCH_PPC) || (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
diff --git a/srcpkgs/llvm15/template b/srcpkgs/llvm15/template
new file mode 100644
index 000000000000..5ed8be136668
--- /dev/null
+++ b/srcpkgs/llvm15/template
@@ -0,0 +1,434 @@
+# Template file for 'llvm15'
+pkgname=llvm15
+version=15.0.6
+revision=1
+build_wrksrc=llvm
+build_style=cmake
+configure_args="
+ -DCMAKE_BUILD_TYPE=Release -Wno-dev
+ -DENABLE_LINKER_BUILD_ID=YES
+ -DLLDB_USE_SYSTEM_SIX=YES
+ -DLIBCXX_CXX_ABI=libcxxabi
+ -DLIBCXX_ENABLE_STATIC_ABI_LIBRARY=YES
+ -DLIBCXXABI_USE_LLVM_UNWINDER=YES
+ -DLIBCXXABI_ENABLE_STATIC_UNWINDER=YES
+ -DLIBOMP_ENABLE_SHARED=YES
+ -DLIBOMP_INSTALL_ALIASES=NO
+ -DLLVM_INCLUDE_DOCS=YES
+ -DLLVM_BUILD_DOCS=YES
+ -DLLVM_ENABLE_SPHINX=YES
+ -DSPHINX_WARNINGS_AS_ERRORS=NO
+ -DLLVM_INSTALL_UTILS=YES
+ -DLLVM_BUILD_LLVM_DYLIB=YES
+ -DLLVM_LINK_LLVM_DYLIB=YES
+ -DLLVM_ENABLE_RTTI=YES
+ -DLLVM_ENABLE_FFI=YES
+ -DLLVM_BINUTILS_INCDIR=/usr/include"
+hostmakedepends="perl python3 zlib-devel libffi-devel swig python3-Sphinx
+ python3-recommonmark python3-sphinx-automodapi"
+makedepends="python3-devel zlib-devel elfutils-devel libffi-devel libedit-devel
+ libxml2-devel binutils-devel libatomic-devel"
+depends="libllvm15>=${version}_${revision}"
+short_desc="Low Level Virtual Machine"
+maintainer="Orphaned <orphan@voidlinux.org>"
+license="Apache-2.0"
+homepage="https://www.llvm.org"
+distfiles="https://github.com/llvm/llvm-project/releases/download/llvmorg-${version}/llvm-project-${version}.src.tar.xz"
+checksum=9d53ad04dc60cb7b30e810faf64c5ab8157dadef46c8766f67f286238256ff92
+lib32disabled=yes
+python_version=3
+
+if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
+ configure_args+=" -DLIBCXX_HAS_MUSL_LIBC=YES"
+ makedepends+=" libexecinfo-devel"
+ depends+=" libexecinfo-devel"
+fi
+
+# "operand out of range" assembler failures
+case "$XBPS_TARGET_MACHINE" in
+ ppc64*) ;;
+ ppc*) configure_args+=" -DCLANG_ENABLE_CLANGD=OFF" ;;
+esac
+
+_enabled_projects="clang;clang-tools-extra;compiler-rt;libcxx;libcxxabi;libunwind;lld"
+
+_lldb_enable=yes
+_libomp_enable=no
+
+case "$XBPS_TARGET_MACHINE" in
+ ppc64le*) ;;
+ ppc*|i686*) _lldb_enable=no ;;
+esac
+
+case "$XBPS_TARGET_MACHINE" in
+ x86_64*|aarch64*|ppc64*) _libomp_enable=yes;;
+esac
+
+subpackages="clang-tools-extra"
+
+# must go before clang
+if [ "$_libomp_enable" = "yes" ]; then
+ _enabled_projects+=";openmp"
+ subpackages+=" libomp libomp-devel"
+ # because of cmake nonsense referencing libomptarget.so.*
+ depends+=" libomp>=${version}_${revision}"
+fi
+
+subpackages+=" clang clang-analyzer libclang libclang-cpp
+ llvm-libunwind llvm-libunwind-devel libcxx libcxx-devel
+ libcxxabi libcxxabi-devel libllvm15"
+
+if [ "$_lldb_enable" = "yes" ]; then
+ # XXX fails to cross compile due to python
+ _enabled_projects+=";lldb"
+ subpackages+=" lldb lldb-devel"
+fi
+
+subpackages+=" lld lld-devel"
+
+configure_args+=" -DLLVM_ENABLE_PROJECTS=${_enabled_projects}"
+
+post_patch() {
+ if [ "$_lldb_enable" = "yes" ]; then
+ if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
+ vsed -i 's|__ptrace_request|int|g' \
+ ${wrksrc}/lldb/source/Plugins/Process/Linux/NativeProcessLinux.cpp
+ fi
+ # disable docs for lldb as they fail to generate
+ vsed -i '/add_subdirectory(docs)/d' \
+ ${wrksrc}/lldb/CMakeLists.txt
+ fi
+
+ # update config.guess for better platform detection
+ cp $XBPS_COMMONDIR/environment/configure/automake/config.guess \
+ ${wrksrc}/llvm/cmake
+
+ # fix linker failures on some archs
+ vsed -i 's,check_library_exists(gcc_s .*,set(LIBCXXABI_HAS_GCC_S_LIB ON),' \
+ ${wrksrc}/libcxxabi/cmake/config-ix.cmake
+ vsed -i 's,check_library_exists(gcc .*,set(LIBCXXABI_HAS_GCC_LIB ON),' \
+ ${wrksrc}/libcxxabi/cmake/config-ix.cmake
+
+ # need libssp_nonshared on some musl platforms (because of nodefaultlibs)
+ case "$XBPS_TARGET_MACHINE" in
+ ppc64*) ;;
+ ppc*-musl|i686-musl|mips*-musl)
+ vsed -i 's,^# Setup flags.$,add_library_flags(ssp_nonshared),' \
+ ${wrksrc}/libunwind/src/CMakeLists.txt
+ vsed -i 's,^# Setup flags.$,add_library_flags(ssp_nonshared),' \
+ ${wrksrc}/libcxxabi/src/CMakeLists.txt
+ vsed -i 's,#ssp,,' ${wrksrc}/libcxx/CMakeLists.txt
+ ;;
+ esac
+
+ case "$XBPS_TARGET_MACHINE" in
+ x86_64-musl) # some sanitizer currently only on x86_64 stuff needs backtrace
+ vsed -i 's,# Set common link flags.,list(APPEND SANITIZER_COMMON_LINK_LIBS execinfo),' \
+ ${wrksrc}/compiler-rt/CMakeLists.txt
+ ;;
+ arm*-musl|i686-musl) # sanitizer code is broken since it duplicates some libc bits
+ vsed -i 's/set(COMPILER_RT_HAS_SANITIZER_COMMON TRUE)/set(COMPILER_RT_HAS_SANITIZER_COMMON FALSE)/' \
+ ${wrksrc}/compiler-rt/cmake/config-ix.cmake
+ ;;
+ esac
+}
+
+pre_configure() {
+ local triplet
+
+ # Vastly reduce size of debugging symbols:
+ CFLAGS=${CFLAGS/ -g/ -g1}
+ CXXFLAGS=${CXXFLAGS/ -g/ -g1}
+
+ # since gcc9, the build likes to blow up for ppc32 apparently because
+ # of clang being too large for a 24-bit relative call to the PLT, so
+ # optimize for size instead
+ case "$XBPS_TARGET_MACHINE" in
+ ppc64*) ;;
+ mips*-musl|ppc*) configure_args+=" -DVOID_CXX_OPT_FLAGS=-Os" ;;
+ esac
+
+ if [ "$CROSS_BUILD" ]; then
+ msg_normal "Building host tblgen\n"
+ mkdir -p build/HOST
+ cd build/HOST
+ CC="$BUILD_CC" CXX="$BUILD_CXX" CFLAGS="$BUILD_CFLAGS" \
+ CXXFLAGS="$BUILD_CXXFLAGS" LDFLAGS="$BUILD_LDFLAGS" \
+ cmake ../.. -DCMAKE_BUILD_TYPE=Release \
+ -DLLVM_ENABLE_PROJECTS=${_enabled_projects}
+ make ${makejobs} -C utils/TableGen
+ make ${makejobs} -C tools/clang/utils/TableGen
+ [ "$_lldb_enable" = "yes" ] && make ${makejobs} -C tools/lldb/utils/TableGen
+ configure_args+=" -DLLVM_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/llvm-tblgen"
+ configure_args+=" -DCLANG_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/clang-tblgen"
+ [ "$_lldb_enable" = "yes" ] && configure_args+=" -DLLDB_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/lldb-tblgen"
+ cd ../..
+ fi
+
+ case "$XBPS_TARGET_MACHINE" in
+ i686*) _arch="X86";;
+ x86_64*) _arch="X86";;
+ armv5*) _arch="Armv5te";;
+ armv6*) _arch="Armv6";;
+ armv7*) _arch="Armv7";;
+ aarch64*) _arch="AArch64";;
+ mips*) _arch="Mips";;
+ ppc*) _arch="PowerPC";;
+ riscv64*) _arch="RISCV64";;
+ esac
+
+ triplet=${XBPS_CROSS_TRIPLET:-$XBPS_TRIPLET}
+
+ configure_args+=" -DLLVM_TARGET_ARCH=${_arch}"
+ configure_args+=" -DLLVM_HOST_TRIPLE=${triplet}"
+ configure_args+=" -DLLVM_DEFAULT_TARGET_TRIPLE=${triplet}"
+}
+
+do_install() {
+ cd build
+ cmake -DCMAKE_INSTALL_PREFIX=${DESTDIR}/usr -P cmake_install.cmake
+
+ # Required for multilib.
+ if [ "$XBPS_TARGET_MACHINE" = "x86_64" ]; then
+ for _header in llvm-config; do
+ mv ${DESTDIR}/usr/include/llvm/Config/${_header}{,-64}.h
+ vinstall ${FILESDIR}/llvm-Config-${_header}.h 644 \
+ usr/include/llvm/Config ${_header}.h
+ done
+ fi
+
+ # Remove llvm-config-host in cross builds.
+ if [ "$CROSS_BUILD" ]; then
+ rm -f ${DESTDIR}/usr/bin/llvm-config-host
+ fi
+
+ # Install libcxxabi headers
+ vinstall ${wrksrc}/libcxxabi/include/__cxxabi_config.h 644 usr/include
+ vinstall ${wrksrc}/libcxxabi/include/cxxabi.h 644 usr/include
+
+ # Install libunwind headers
+ vinstall ${wrksrc}/libunwind/include/__libunwind_config.h 644 usr/include
+ vinstall ${wrksrc}/libunwind/include/libunwind.h 644 usr/include
+ vinstall ${wrksrc}/libunwind/include/unwind.h 644 usr/include
+ vinstall ${wrksrc}/libunwind/include/mach-o/compact_unwind_encoding.h \
+ 644 usr/include/mach-o
+}
+
+clang-analyzer_package() {
+ pycompile_dirs="usr/share/scan-view"
+ depends="clang-${version}_${revision} python3 perl"
+ short_desc+=" - A source code analysis framework"
+ homepage="https://clang-analyzer.llvm.org/"
+ pkg_install() {
+ vmove "usr/bin/scan-*"
+ vmove "usr/libexec/*analyzer"
+ vmove "usr/share/scan-*"
+ vmove usr/share/man/man1/scan-build.1
+ }
+}
+
+clang-tools-extra_package() {
+ lib32disabled=yes
+ depends="clang-${version}_${revision} python3"
+ short_desc+=" - Extra Clang tools"
+ homepage="https://clang.llvm.org/extra/"
+ pkg_install() {
+ vmove usr/bin/clang-apply-replacements
+ vmove usr/bin/clang-doc
+ vmove usr/bin/clang-include-fixer
+ vmove usr/bin/clang-query
+ vmove usr/bin/clang-rename
+ vmove usr/bin/clang-reorder-fields
+ vmove usr/bin/clang-tidy
+ vmove usr/bin/clangd
+ vmove usr/bin/diagtool
+ vmove usr/bin/find-all-symbols
+ vmove usr/bin/hmaptool
+ vmove usr/bin/modularize
+ vmove usr/bin/pp-trace
+ vmove usr/bin/sancov
+ vmove usr/include/clang-tidy
+ vmove "usr/lib/libclangApplyReplacements*"
+ vmove "usr/lib/libclangDoc*"
+ vmove "usr/lib/libclangIncludeFixer*"
+ vmove "usr/lib/libclangReorderFields*"
+ vmove "usr/lib/libclangQuery*"
+ vmove "usr/lib/libclangTidy*"
+ vmove "usr/share/clang/*include-fixer*"
+ vmove "usr/share/clang/*rename*"
+ vmove "usr/share/clang/*tidy*"
+ vmove usr/share/doc/LLVM/clang-tools
+ vmove usr/share/man/man1/diagtool.1
+ vmove usr/share/man/man1/extraclangtools.1
+ }
+}
+
+clang_package() {
+ lib32disabled=yes
+ depends="libstdc++-devel libgcc-devel binutils ${XBPS_TARGET_LIBC}-devel
+ libclang-${version}_${revision}"
+ short_desc+=" - C language family frontend"
+ homepage="https://clang.llvm.org/"
+ pkg_install() {
+ vmove "usr/bin/*clang*"
+ vmove usr/bin/c-index-test
+ vmove usr/include/clang
+ vmove usr/include/clang-c
+ vmove usr/lib/clang
+ vmove usr/lib/cmake/clang
+ vmove "usr/lib/libclang*.a"
+ vmove "usr/lib/libclang*.so"
+ vmove usr/share/clang
+ vmove usr/share/doc/LLVM/clang
+ vmove usr/share/man/man1/clang.1
+ }
+}
+
+libclang_package() {
+ short_desc+=" - C frontend runtime library"
+ pkg_install() {
+ vmove "usr/lib/libclang.so.*"
+ }
+}
+
+libclang-cpp_package() {
+ short_desc+=" - C frontend runtime library (C++ interface)"
+ pkg_install() {
+ vmove "usr/lib/libclang-cpp.so.*"
+ }
+}
+
+lld_package() {
+ lib32disabled=yes
+ short_desc+=" - linker"
+ homepage="https://lld.llvm.org"
+ pkg_install() {
+ vmove usr/bin/ld.lld*
+ vmove usr/bin/ld64.lld*
+ vmove usr/bin/lld*
+ vmove usr/bin/wasm-ld
+ vmove usr/share/doc/LLVM/lld
+ }
+}
+
+lld-devel_package() {
+ lib32disabled=yes
+ short_desc+=" - linker - development files"
+ homepage="https://lld.llvm.org"
+ depends="lld>=${version}_${revision}"
+ pkg_install() {
+ vmove usr/include/lld
+ vmove usr/lib/cmake/lld
+ vmove "usr/lib/liblld*a"
+ }
+}
+
+lldb_package() {
+ lib32disabled=yes
+ depends+=" python3-six"
+ short_desc+=" - LLDB debugger"
+ homepage="https://lldb.llvm.org/"
+ pkg_install() {
+ vmove usr/bin/*lldb*
+ vmove usr/lib/liblldb*so.*
+ vmove /usr/lib/python*
+ }
+}
+
+lldb-devel_package() {
+ lib32disabled=yes
+ depends="lldb>=${version}_${revision}"
+ short_desc+=" - LLDB debugger - development files"
+ pkg_install() {
+ vmove usr/include/lldb
+ vmove "usr/lib/liblldb*.so"
+ }
+}
+
+llvm-libunwind_package() {
+ short_desc+=" - libunwind"
+ pkg_install() {
+ vmove "usr/lib/${XBPS_TRIPLET}/libunwind.so.*"
+ }
+}
+
+llvm-libunwind-devel_package() {
+ short_desc+=" - libunwind - development files"
+ depends="llvm-libunwind>=${version}_${revision}"
+ conflicts="libunwind-devel>=0"
+ pkg_install() {
+ vmove usr/include/mach-o
+ vmove "usr/include/*unwind*"
+ vmove "usr/lib/${XBPS_TRIPLET}/libunwind.a"
+ vmove "usr/lib/${XBPS_TRIPLET}/libunwind.so"
+ vmove usr/share/doc/LLVM/libunwind
+ }
+}
+
+libcxxabi_package() {
+ short_desc+=" - low level support for libc++"
+ pkg_install() {
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++abi.so.*"
+ }
+}
+
+libcxxabi-devel_package() {
+ short_desc+=" - low level support for libc++ - development files"
+ depends="libcxxabi>=${version}_${revision}"
+ pkg_install() {
+ vmove "usr/include/*cxxabi*"
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++abi.so"
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++abi.a"
+ }
+}
+
+libcxx_package() {
+ short_desc+=" - C++ standard library"
+ pkg_install() {
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++.so.*"
+ }
+}
+
+libcxx-devel_package() {
+ short_desc+=" - C++ standard library - development files"
+ depends="libcxx>=${version}_${revision}"
+ pkg_install() {
+ vmove usr/include/c++
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++.so"
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++.a"
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++experimental.a"
+ vmove usr/share/doc/LLVM/libcxx
+ }
+}
+
+libomp_package() {
+ short_desc+=" - Clang OpenMP support library"
+ pkg_install() {
+ vmove usr/lib/libarcher.so
+ vmove usr/lib/libomp.so
+ vmove usr/lib/libompd.so
+ vmove "usr/lib/libomptarget.rtl.*.so"
+ vmove "usr/lib/libomp*.so.*"
+ }
+}
+
+libomp-devel_package() {
+ short_desc+=" - Clang OpenMP support library - development files"
+ depends="libomp>=${version}_${revision}"
+ pkg_install() {
+ vmove "usr/include/omp*.h"
+ vmove "usr/lib/clang/${version}/include/omp*.h"
+ vmove "usr/lib/libarcher*"
+ vmove "usr/lib/libomp*.so"
+ vmove usr/lib/cmake/openmp
+ vmove usr/share/doc/LLVM/openmp
+ vmove usr/share/man/man1/llvmopenmp.1
+ }
+}
+
+libllvm15_package() {
+ short_desc+=" - runtime library"
+ pkg_install() {
+ vmove "usr/lib/libLLVM-*.so*"
+ }
+}
diff --git a/srcpkgs/llvm15/update b/srcpkgs/llvm15/update
new file mode 100644
index 000000000000..e95cf26b3586
--- /dev/null
+++ b/srcpkgs/llvm15/update
@@ -0,0 +1,3 @@
+site="https://github.com/llvm/llvm-project/releases"
+pattern="llvmorg-\K(\d+.){2}\d+(-rc\d+)?"
+ignore="*-rc*"
From d0d21076330cc6c196457358c1cec9d2bd3608e3 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Sun, 18 Dec 2022 00:40:18 +0100
Subject: [PATCH 2/3] llvm: update to 15
---
common/shlibs | 6 +++---
srcpkgs/clang | 2 +-
srcpkgs/clang-analyzer | 2 +-
srcpkgs/clang-tools-extra | 2 +-
srcpkgs/libclang | 2 +-
srcpkgs/libclang-cpp | 2 +-
srcpkgs/libcxx | 2 +-
srcpkgs/libcxx-devel | 2 +-
srcpkgs/libcxxabi | 2 +-
srcpkgs/libcxxabi-devel | 2 +-
srcpkgs/libomp | 2 +-
srcpkgs/libomp-devel | 2 +-
srcpkgs/lld | 2 +-
srcpkgs/lld-devel | 2 +-
srcpkgs/lldb | 2 +-
srcpkgs/lldb-devel | 2 +-
srcpkgs/llvm-libunwind | 2 +-
srcpkgs/llvm-libunwind-devel | 2 +-
srcpkgs/llvm/template | 6 +++---
19 files changed, 23 insertions(+), 23 deletions(-)
diff --git a/common/shlibs b/common/shlibs
index 3cb919b3ce3b..7b8d77766f0f 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -982,9 +982,9 @@ 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.12 lldb-12.0.0_1
-libclang.so.12 libclang-12.0.0_1
-libclang-cpp.so.12 libclang-cpp-12.0.0_1
+liblldb.so.15 lldb-15.0.6_1
+libclang.so.15 libclang-15.0.6_1
+libclang-cpp.so.15 libclang-cpp-15.0.6_1
libLLVM-11.so libllvm11-11.0.0_1
libLLVM-12.so libllvm12-12.0.0_1
libLLVM-15.so libllvm15-15.0.6_1
diff --git a/srcpkgs/clang b/srcpkgs/clang
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/clang
+++ b/srcpkgs/clang
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/clang-analyzer b/srcpkgs/clang-analyzer
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/clang-analyzer
+++ b/srcpkgs/clang-analyzer
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/clang-tools-extra b/srcpkgs/clang-tools-extra
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/clang-tools-extra
+++ b/srcpkgs/clang-tools-extra
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libclang b/srcpkgs/libclang
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libclang
+++ b/srcpkgs/libclang
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libclang-cpp b/srcpkgs/libclang-cpp
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libclang-cpp
+++ b/srcpkgs/libclang-cpp
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxx b/srcpkgs/libcxx
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxx
+++ b/srcpkgs/libcxx
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxx-devel b/srcpkgs/libcxx-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxx-devel
+++ b/srcpkgs/libcxx-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxxabi b/srcpkgs/libcxxabi
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxxabi
+++ b/srcpkgs/libcxxabi
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxxabi-devel b/srcpkgs/libcxxabi-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxxabi-devel
+++ b/srcpkgs/libcxxabi-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libomp b/srcpkgs/libomp
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libomp
+++ b/srcpkgs/libomp
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libomp-devel b/srcpkgs/libomp-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libomp-devel
+++ b/srcpkgs/libomp-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lld b/srcpkgs/lld
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lld
+++ b/srcpkgs/lld
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lld-devel b/srcpkgs/lld-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lld-devel
+++ b/srcpkgs/lld-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lldb b/srcpkgs/lldb
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lldb
+++ b/srcpkgs/lldb
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lldb-devel b/srcpkgs/lldb-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lldb-devel
+++ b/srcpkgs/lldb-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm-libunwind b/srcpkgs/llvm-libunwind
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/llvm-libunwind
+++ b/srcpkgs/llvm-libunwind
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm-libunwind-devel b/srcpkgs/llvm-libunwind-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/llvm-libunwind-devel
+++ b/srcpkgs/llvm-libunwind-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm/template b/srcpkgs/llvm/template
index a92db6f94f9f..fc1c850bd26f 100644
--- a/srcpkgs/llvm/template
+++ b/srcpkgs/llvm/template
@@ -1,11 +1,11 @@
# Template file for 'llvm'
pkgname=llvm
-version=12.0.0
+version=15
revision=1
build_style=meta
-depends="llvm12"
-replaces="llvm11>=0 llvm10>=0 llvm9>=0 llvm8>=0 llvm7>=0 llvm6.0>=0 llvm3.9>=0"
+depends="llvm15"
short_desc="LLVM meta package"
maintainer="Enno Boland <gottox@voidlinux.org>"
license="Public Domain"
homepage="https://www.voidlinux.org"
+replaces="llvm12>=0 llvm11>=0 llvm10>=0 llvm9>=0 llvm8>=0 llvm7>=0 llvm6.0>=0 llvm3.9>=0"
From 4fa6150a5648d2767756f973b775a3856648426a Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Sun, 18 Dec 2022 12:20:08 +0100
Subject: [PATCH 3/3] llvm12: remove bumped subpackages
---
srcpkgs/llvm12/template | 264 +---------------------------------------
1 file changed, 1 insertion(+), 263 deletions(-)
diff --git a/srcpkgs/llvm12/template b/srcpkgs/llvm12/template
index f8ea3ba641ae..aea0b43cf573 100644
--- a/srcpkgs/llvm12/template
+++ b/srcpkgs/llvm12/template
@@ -50,55 +50,7 @@ case "$XBPS_TARGET_MACHINE" in
ppc*) configure_args+=" -DCLANG_ENABLE_CLANGD=OFF" ;;
esac
-_enabled_projects="clang;clang-tools-extra;compiler-rt;libcxx;libcxxabi;libunwind;lld"
-
-_lldb_enable=yes
-_libomp_enable=no
-
-case "$XBPS_TARGET_MACHINE" in
- ppc64le*) ;;
- ppc*|i686*) _lldb_enable=no ;;
-esac
-
-case "$XBPS_TARGET_MACHINE" in
- x86_64*|aarch64*|ppc64*) _libomp_enable=yes;;
-esac
-
-subpackages="clang-tools-extra"
-
-# must go before clang
-if [ "$_libomp_enable" = "yes" ]; then
- _enabled_projects+=";openmp"
- subpackages+=" libomp libomp-devel"
- # because of cmake nonsense referencing libomptarget.so.*
- depends+=" libomp>=${version}_${revision}"
-fi
-
-subpackages+=" clang clang-analyzer libclang libclang-cpp
- llvm-libunwind llvm-libunwind-devel libcxx libcxx-devel
- libcxxabi libcxxabi-devel libllvm12"
-
-if [ "$_lldb_enable" = "yes" ]; then
- # XXX fails to cross compile due to python
- _enabled_projects+=";lldb"
- subpackages+=" lldb lldb-devel"
-fi
-
-subpackages+=" lld lld-devel"
-
-configure_args+=" -DLLVM_ENABLE_PROJECTS=${_enabled_projects}"
-
post_patch() {
- if [ "$_lldb_enable" = "yes" ]; then
- if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
- vsed -i 's|__ptrace_request|int|g' \
- ${wrksrc}/lldb/source/Plugins/Process/Linux/NativeProcessLinux.cpp
- fi
- # disable docs for lldb as they fail to generate
- vsed -i '/add_subdirectory(docs)/d' \
- ${wrksrc}/lldb/CMakeLists.txt
- fi
-
# update config.guess for better platform detection
cp $XBPS_COMMONDIR/environment/configure/automake/config.guess \
${wrksrc}/llvm/cmake
@@ -154,14 +106,12 @@ pre_configure() {
cd build/HOST
CC="$BUILD_CC" CXX="$BUILD_CXX" CFLAGS="$BUILD_CFLAGS" \
CXXFLAGS="$BUILD_CXXFLAGS" LDFLAGS="$BUILD_LDFLAGS" \
- cmake ../.. -DCMAKE_BUILD_TYPE=Release \
- -DLLVM_ENABLE_PROJECTS=${_enabled_projects}
+ cmake ../.. -DCMAKE_BUILD_TYPE=Release
make ${makejobs} -C utils/TableGen
make ${makejobs} -C tools/clang/utils/TableGen
[ "$_lldb_enable" = "yes" ] && make ${makejobs} -C tools/lldb/utils/TableGen
configure_args+=" -DLLVM_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/llvm-tblgen"
configure_args+=" -DCLANG_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/clang-tblgen"
- [ "$_lldb_enable" = "yes" ] && configure_args+=" -DLLDB_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/lldb-tblgen"
cd ../..
fi
@@ -201,218 +151,6 @@ do_install() {
if [ "$CROSS_BUILD" ]; then
rm -f ${DESTDIR}/usr/bin/llvm-config-host
fi
-
- # Install libcxxabi headers
- vinstall ${wrksrc}/libcxxabi/include/__cxxabi_config.h 644 usr/include
- vinstall ${wrksrc}/libcxxabi/include/cxxabi.h 644 usr/include
-
- # Install libunwind headers
- vinstall ${wrksrc}/libunwind/include/__libunwind_config.h 644 usr/include
- vinstall ${wrksrc}/libunwind/include/libunwind.h 644 usr/include
- vinstall ${wrksrc}/libunwind/include/unwind.h 644 usr/include
- vinstall ${wrksrc}/libunwind/include/mach-o/compact_unwind_encoding.h \
- 644 usr/include/mach-o
-}
-
-clang-analyzer_package() {
- pycompile_dirs="usr/share/scan-view"
- depends="clang-${version}_${revision} python3 perl"
- short_desc+=" - A source code analysis framework"
- homepage="https://clang-analyzer.llvm.org/"
- pkg_install() {
- vmove usr/share/man/man1/scan-build.1
- vmove "/usr/bin/scan-*"
- vmove "/usr/share/scan-*"
- vmove "/usr/libexec/*analyzer"
- }
-}
-
-clang-tools-extra_package() {
- lib32disabled=yes
- depends="clang-${version}_${revision} python3"
- short_desc+=" - Extra Clang tools"
- homepage="https://clang.llvm.org/extra/"
- pkg_install() {
- vmove usr/include/clang-tidy
- vmove usr/bin/clang-apply-replacements
- vmove usr/bin/clang-query
- vmove usr/bin/clang-rename
- vmove usr/bin/clang-tidy
- vmove usr/bin/diagtool
- vmove usr/bin/find-all-symbols
- vmove usr/bin/hmaptool
- vmove usr/bin/modularize
- vmove usr/bin/pp-trace
- vmove usr/bin/sancov
- vmove "usr/lib/libclangApplyReplacements*"
- vmove "usr/lib/libclangQuery*"
- vmove "usr/lib/libclangTidy*"
- vmove "usr/share/clang/*tidy*"
- vmove usr/share/doc/clang-tools
- vmove usr/share/man/man1/extraclangtools.1
- vmove usr/share/man/man1/diagtool.1
- }
-}
-
-clang_package() {
- lib32disabled=yes
- depends="libstdc++-devel libgcc-devel binutils ${XBPS_TARGET_LIBC}-devel
- libclang-${version}_${revision}"
- short_desc+=" - C language family frontend"
- homepage="https://clang.llvm.org/"
- pkg_install() {
- vmove usr/include/clang
- vmove usr/include/clang-c
- vmove "usr/bin/*clang*"
- vmove usr/bin/c-index-test
- vmove usr/lib/clang
- vmove usr/lib/cmake/clang
- vmove "usr/lib/libclang*.a"
- vmove "usr/lib/libclang*.so"
- vmove usr/share/clang
- vmove usr/share/doc/clang
- vmove usr/share/man/man1/clang.1
- }
-}
-
-libclang_package() {
- short_desc+=" - C frontend runtime library"
- pkg_install() {
- vmove "usr/lib/libclang.so.*"
- }
-}
-
-libclang-cpp_package() {
- short_desc+=" - C frontend runtime library (C++ interface)"
- pkg_install() {
- vmove "usr/lib/libclang-cpp.so.*"
- }
-}
-
-lld_package() {
- lib32disabled=yes
- short_desc+=" - linker"
- homepage="https://lld.llvm.org"
- pkg_install() {
- vmove usr/bin/lld*
- vmove usr/bin/wasm-ld
- vmove usr/bin/ld.lld*
- vmove usr/bin/ld64.lld*
- vmove usr/share/doc/lld
- }
-}
-
-lld-devel_package() {
- lib32disabled=yes
- short_desc+=" - linker - development files"
- homepage="https://lld.llvm.org"
- depends="lld>=${version}_${revision}"
- pkg_install() {
- vmove usr/include/lld
- vmove usr/lib/cmake/lld
- vmove "usr/lib/liblld*a"
- }
-}
-
-lldb_package() {
- lib32disabled=yes
- depends+=" python3-six"
- short_desc+=" - LLDB debugger"
- homepage="https://lldb.llvm.org/"
- pkg_install() {
- vmove usr/bin/*lldb*
- vmove usr/lib/liblldb*so.*
- vmove /usr/lib/python*
- }
-}
-
-lldb-devel_package() {
- lib32disabled=yes
- depends="lldb>=${version}_${revision}"
- short_desc+=" - LLDB debugger - development files"
- pkg_install() {
- vmove usr/include/lldb
- vmove "usr/lib/liblldb*.so"
- }
-}
-
-llvm-libunwind_package() {
- short_desc+=" - libunwind"
- pkg_install() {
- vmove "usr/lib/libunwind.so.*"
- }
-}
-
-llvm-libunwind-devel_package() {
- short_desc+=" - libunwind - development files"
- depends="llvm-libunwind>=${version}_${revision}"
- conflicts="libunwind-devel>=0"
- pkg_install() {
- vmove usr/lib/libunwind.so
- vmove usr/lib/libunwind.a
- vmove "usr/include/*unwind*"
- vmove usr/include/mach-o
- vmove usr/share/doc/libunwind
- }
-}
-
-libcxxabi_package() {
- short_desc+=" - low level support for libc++"
- pkg_install() {
- vmove "usr/lib/libc++abi.so.*"
- }
-}
-
-libcxxabi-devel_package() {
- short_desc+=" - low level support for libc++ - development files"
- depends="libcxxabi>=${version}_${revision}"
- pkg_install() {
- vmove usr/lib/libc++abi.so
- vmove usr/lib/libc++abi.a
- vmove "usr/include/*cxxabi*"
- }
-}
-
-libcxx_package() {
- short_desc+=" - C++ standard library"
- pkg_install() {
- vmove "usr/lib/libc++.so.*"
- }
-}
-
-libcxx-devel_package() {
- short_desc+=" - C++ standard library - development files"
- depends="libcxx>=${version}_${revision}"
- pkg_install() {
- vmove usr/lib/libc++.so
- vmove usr/lib/libc++.a
- vmove usr/lib/libc++experimental.a
- vmove usr/include/c++
- vmove usr/share/doc/libcxx
- }
-}
-
-libomp_package() {
- short_desc+=" - Clang OpenMP support library"
- pkg_install() {
- vmove usr/lib/libomp.so
- vmove "usr/lib/libomptarget.rtl.*.so"
- vmove usr/lib/libarcher.so
- vmove "usr/lib/libomp*.so.*"
- }
-}
-
-libomp-devel_package() {
- short_desc+=" - Clang OpenMP support library - development files"
- depends="libomp>=${version}_${revision}"
- pkg_install() {
- vmove "usr/lib/libomp*.so"
- vmove "usr/lib/libarcher*"
- vmove "usr/include/omp*.h"
- vmove "usr/lib/clang/${version}/include/omp*.h"
- vmove usr/share/man/man1/llvmopenmp.1
- vmove usr/share/doc/openmp
- }
}
libllvm12_package() {
^ permalink raw reply [flat|nested] 96+ messages in thread
* Re: [WIP] LLVM 15
2022-11-28 15:30 [PR PATCH] [WIP] LLVM 15 tranzystorek-io
` (29 preceding siblings ...)
2022-12-18 23:30 ` tranzystorek-io
@ 2022-12-19 23:58 ` oreo639
2022-12-19 23:59 ` oreo639
` (63 subsequent siblings)
94 siblings, 0 replies; 96+ messages in thread
From: oreo639 @ 2022-12-19 23:58 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 718 bytes --]
New comment by oreo639 on void-packages repository
https://github.com/void-linux/void-packages/pull/40821#issuecomment-1358644729
Comment:
Here is a patch to fix building on musl:
https://gist.github.com/oreo639/a43b23916774fe58910bffce6a848190
It includes a patch that partially reverts:
https://github.com/llvm/llvm-project/commit/67b0b02ec9f2bbc57bf8f0550828d97f460ac11f
That is necessary to fix usage of abi_tag() on an extern "C" declaration which is explicitly not allowed in gcc:
https://github.com/gcc-mirror/gcc/blob/master/gcc/cp/tree.cc#L5350-L5355
This also disables GWP-ASan/`-fsanitize=scudo` since it depends on the broken libexecinfo and GWP-ASan also gets into an infinite loop on musl.
^ permalink raw reply [flat|nested] 96+ messages in thread
* Re: [WIP] LLVM 15
2022-11-28 15:30 [PR PATCH] [WIP] LLVM 15 tranzystorek-io
` (30 preceding siblings ...)
2022-12-19 23:58 ` oreo639
@ 2022-12-19 23:59 ` oreo639
2022-12-20 0:04 ` oreo639
` (62 subsequent siblings)
94 siblings, 0 replies; 96+ messages in thread
From: oreo639 @ 2022-12-19 23:59 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 738 bytes --]
New comment by oreo639 on void-packages repository
https://github.com/void-linux/void-packages/pull/40821#issuecomment-1358644729
Comment:
Here is a patch to fix building on musl:
https://gist.github.com/oreo639/a43b23916774fe58910bffce6a848190
It includes a patch that partially reverts:
https://github.com/llvm/llvm-project/commit/67b0b02ec9f2bbc57bf8f0550828d97f460ac11f
That is necessary to fix usage of abi_tag() on an extern "C" declaration which is explicitly not allowed in gcc:
https://github.com/gcc-mirror/gcc/blob/master/gcc/cp/tree.cc#L5350-L5355
This also disables GWP-ASan/`-fsanitize=scudo` since it depends on libexecinfo (which doesn't work correctly) and GWP-ASan also gets into an infinite loop on musl.
^ permalink raw reply [flat|nested] 96+ messages in thread
* Re: [WIP] LLVM 15
2022-11-28 15:30 [PR PATCH] [WIP] LLVM 15 tranzystorek-io
` (31 preceding siblings ...)
2022-12-19 23:59 ` oreo639
@ 2022-12-20 0:04 ` oreo639
2022-12-20 0:09 ` oreo639
` (61 subsequent siblings)
94 siblings, 0 replies; 96+ messages in thread
From: oreo639 @ 2022-12-20 0:04 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 686 bytes --]
New comment by oreo639 on void-packages repository
https://github.com/void-linux/void-packages/pull/40821#issuecomment-1358644729
Comment:
Here is a patch to fix building on musl:
https://gist.github.com/oreo639/a43b23916774fe58910bffce6a848190
It includes a patch that partially reverts:
https://reviews.llvm.org/D124227
That is necessary to fix usage of abi_tag() on an extern "C" declaration which is explicitly not allowed in gcc:
https://github.com/gcc-mirror/gcc/blob/master/gcc/cp/tree.cc#L5350-L5355
This also disables GWP-ASan/`-fsanitize=scudo` since it depends on libexecinfo (which doesn't work correctly) and GWP-ASan also gets into an infinite loop on musl.
^ permalink raw reply [flat|nested] 96+ messages in thread
* Re: [WIP] LLVM 15
2022-11-28 15:30 [PR PATCH] [WIP] LLVM 15 tranzystorek-io
` (32 preceding siblings ...)
2022-12-20 0:04 ` oreo639
@ 2022-12-20 0:09 ` oreo639
2022-12-22 4:26 ` simvux
` (60 subsequent siblings)
94 siblings, 0 replies; 96+ messages in thread
From: oreo639 @ 2022-12-20 0:09 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 694 bytes --]
New comment by oreo639 on void-packages repository
https://github.com/void-linux/void-packages/pull/40821#issuecomment-1358644729
Comment:
Here is a patch to fix building on musl:
https://gist.github.com/oreo639/a43b23916774fe58910bffce6a848190
It includes a patch that partially reverts:
https://reviews.llvm.org/D124227
That is necessary to fix usage of abi_tag() on an extern "C" declaration which is explicitly not allowed in gcc:
https://github.com/gcc-mirror/gcc/blob/master/gcc/cp/tree.cc#L5350-L5355
This also disables GWP-ASan/`-fsanitize=scudo` on musl since it depends on libexecinfo (which doesn't work correctly) and GWP-ASan also gets into an infinite loop on musl.
^ permalink raw reply [flat|nested] 96+ messages in thread
* Re: [WIP] LLVM 15
2022-11-28 15:30 [PR PATCH] [WIP] LLVM 15 tranzystorek-io
` (33 preceding siblings ...)
2022-12-20 0:09 ` oreo639
@ 2022-12-22 4:26 ` simvux
2022-12-22 4:48 ` oreo639
` (59 subsequent siblings)
94 siblings, 0 replies; 96+ messages in thread
From: simvux @ 2022-12-22 4:26 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 608 bytes --]
New comment by simvux on void-packages repository
https://github.com/void-linux/void-packages/pull/40821#issuecomment-1362396404
Comment:
I believe this is required for mesa to work correctly with the new rx 7000s series amd GPU's. So to make them plug ń play we'll need to both merge this and swap the depedency in `mesa` from `llvm` to `llvm15`.
FWIW; merging this branch into #41084 and changing #41084 to `llvm15` worked for me, but I also needed to fetch the latest `linux-firmware-amd` blobs, update `SPIRV-{Headers,LLVM-Translator}`, hack some stuff into `shlibs` which I'm not familiar with.
^ permalink raw reply [flat|nested] 96+ messages in thread
* Re: [WIP] LLVM 15
2022-11-28 15:30 [PR PATCH] [WIP] LLVM 15 tranzystorek-io
` (34 preceding siblings ...)
2022-12-22 4:26 ` simvux
@ 2022-12-22 4:48 ` oreo639
2022-12-22 10:15 ` ardadem
` (58 subsequent siblings)
94 siblings, 0 replies; 96+ messages in thread
From: oreo639 @ 2022-12-22 4:48 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 199 bytes --]
New comment by oreo639 on void-packages repository
https://github.com/void-linux/void-packages/pull/40821#issuecomment-1362413705
Comment:
llvm is llvm15 in this PR. mesa just needs to be rebuilt.
^ permalink raw reply [flat|nested] 96+ messages in thread
* Re: [WIP] LLVM 15
2022-11-28 15:30 [PR PATCH] [WIP] LLVM 15 tranzystorek-io
` (35 preceding siblings ...)
2022-12-22 4:48 ` oreo639
@ 2022-12-22 10:15 ` ardadem
2023-01-05 14:13 ` [PR PATCH] [Updated] " tranzystorek-io
` (57 subsequent siblings)
94 siblings, 0 replies; 96+ messages in thread
From: ardadem @ 2022-12-22 10:15 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 224 bytes --]
New comment by ardadem on void-packages repository
https://github.com/void-linux/void-packages/pull/40821#issuecomment-1362656204
Comment:
SPIRV-LLVM-Translator should match the llvm version so please update that as well.
^ permalink raw reply [flat|nested] 96+ messages in thread
* Re: [PR PATCH] [Updated] [WIP] LLVM 15
2022-11-28 15:30 [PR PATCH] [WIP] LLVM 15 tranzystorek-io
` (36 preceding siblings ...)
2022-12-22 10:15 ` ardadem
@ 2023-01-05 14:13 ` tranzystorek-io
2023-01-06 12:39 ` [PR REVIEW] " tranzystorek-io
` (56 subsequent siblings)
94 siblings, 0 replies; 96+ messages in thread
From: tranzystorek-io @ 2023-01-05 14:13 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 502 bytes --]
There is an updated pull request by tranzystorek-io against master on the void-packages repository
https://github.com/tranzystorek-io/void-packages llvm15
https://github.com/void-linux/void-packages/pull/40821
[WIP] LLVM 15
[ci skip]
TODO:
- [ ] Adjust patches marked as `.patch.skip`
- [ ] Make libomp a shlib (change so file name and install a symlink)
- [ ] Avoid creating triplet dirs under /usr/
A patch file from https://github.com/void-linux/void-packages/pull/40821.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-llvm15-40821.patch --]
[-- Type: text/x-diff, Size: 72425 bytes --]
From c78c44c4056f5ede523e8776941e680c38ee12e8 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Sun, 18 Dec 2022 00:36:59 +0100
Subject: [PATCH 01/10] New package: llvm15-15.0.6
---
common/shlibs | 3 +
srcpkgs/libllvm15 | 1 +
.../llvm15/files/llvm-Config-llvm-config.h | 9 +
...clang-001-fix-unwind-chain-inclusion.patch | 44 ++
.../patches/clang-002-add-musl-triples.patch | 110 +++++
.../clang-003-ppc64-dynamic-linker-path.patch | 13 +
.../patches/clang-004-ppc64-musl-elfv2.patch | 48 ++
.../compiler-rt-sanitizer-ppc64-musl.patch | 35 ++
.../compiler-rt-xray-ppc64-musl.patch.skip | 62 +++
srcpkgs/llvm15/patches/libcxx-musl.patch | 26 ++
srcpkgs/llvm15/patches/libcxx-ppc.patch | 22 +
.../llvm15/patches/libcxx-ssp-nonshared.patch | 11 +
srcpkgs/llvm15/patches/libcxxabi-dl.patch | 25 +
srcpkgs/llvm15/patches/libomp-soname.patch | 12 +
.../llvm15/patches/libunwind-ppc32.patch.skip | 63 +++
srcpkgs/llvm15/patches/lldb-musl.patch | 40 ++
srcpkgs/llvm15/patches/llvm-001-musl.patch | 57 +++
.../patches/llvm-002-musl-ppc64-elfv2.patch | 30 ++
.../patches/llvm-003-ppc-secureplt.patch | 11 +
.../patches/llvm-004-override-opt.patch | 18 +
.../llvm15/patches/llvm-005-ppc-bigpic.patch | 36 ++
.../patches/llvm-006-aarch64-mf_exec.patch | 25 +
srcpkgs/llvm15/template | 433 ++++++++++++++++++
srcpkgs/llvm15/update | 3 +
24 files changed, 1137 insertions(+)
create mode 120000 srcpkgs/libllvm15
create mode 100644 srcpkgs/llvm15/files/llvm-Config-llvm-config.h
create mode 100644 srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch
create mode 100644 srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch
create mode 100644 srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch
create mode 100644 srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch
create mode 100644 srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch
create mode 100644 srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip
create mode 100644 srcpkgs/llvm15/patches/libcxx-musl.patch
create mode 100644 srcpkgs/llvm15/patches/libcxx-ppc.patch
create mode 100644 srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch
create mode 100644 srcpkgs/llvm15/patches/libcxxabi-dl.patch
create mode 100644 srcpkgs/llvm15/patches/libomp-soname.patch
create mode 100644 srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip
create mode 100644 srcpkgs/llvm15/patches/lldb-musl.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-001-musl.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-004-override-opt.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch
create mode 100644 srcpkgs/llvm15/template
create mode 100644 srcpkgs/llvm15/update
diff --git a/common/shlibs b/common/shlibs
index 52a6d3e6d5fb..58c36a7bf2a7 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -991,6 +991,9 @@ libclang.so.12 libclang-12.0.0_1
libclang-cpp.so.12 libclang-cpp-12.0.0_1
libLLVM-11.so libllvm11-11.0.0_1
libLLVM-12.so libllvm12-12.0.0_1
+libLLVM-15.so libllvm15-15.0.6_1
+libomp.so.5 libomp-15.0.6_1
+libomptarget.so.15 libomp-15.0.6_1
libisofs.so.6 libisofs-0.6.24_1
libmpack.so.0 libmpack-1.0.5_1
libGeoIP.so.1 libgeoip-1.4.8_1
diff --git a/srcpkgs/libllvm15 b/srcpkgs/libllvm15
new file mode 120000
index 000000000000..ad57a969b9f9
--- /dev/null
+++ b/srcpkgs/libllvm15
@@ -0,0 +1 @@
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm15/files/llvm-Config-llvm-config.h b/srcpkgs/llvm15/files/llvm-Config-llvm-config.h
new file mode 100644
index 000000000000..2fa08c9be696
--- /dev/null
+++ b/srcpkgs/llvm15/files/llvm-Config-llvm-config.h
@@ -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
diff --git a/srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch b/srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch
new file mode 100644
index 000000000000..e4eaa7783e7a
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch
@@ -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
diff --git a/srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch b/srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch
new file mode 100644
index 000000000000..25688d40dbc2
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch
@@ -0,0 +1,110 @@
+--- a/clang/lib/Driver/ToolChains/Gnu.cpp
++++ b/clang/lib/Driver/ToolChains/Gnu.cpp
+@@ -2086,7 +2086,8 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
+ static const char *const ARMHFTriples[] = {"arm-linux-gnueabihf",
+ "armv7hl-redhat-linux-gnueabi",
+ "armv6hl-suse-linux-gnueabi",
+- "armv7hl-suse-linux-gnueabi"};
++ "armv7hl-suse-linux-gnueabi",
++ "armv7l-linux-gnueabihf"};
+ static const char *const ARMebLibDirs[] = {"/lib"};
+ static const char *const ARMebTriples[] = {"armeb-linux-gnueabi",
+ "armeb-linux-androideabi"};
+@@ -2153,8 +2154,7 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
+ "powerpc64-suse-linux", "powerpc-montavista-linuxspe"};
+ static const char *const PPCLELibDirs[] = {"/lib32", "/lib"};
+ static const char *const PPCLETriples[] = {"powerpcle-linux-gnu",
+- "powerpcle-unknown-linux-gnu",
+- "powerpcle-linux-musl"};
++ "powerpcle-unknown-linux-gnu"};
+
+ static const char *const PPC64LibDirs[] = {"/lib64", "/lib"};
+ static const char *const PPC64Triples[] = {
+@@ -2235,6 +2235,87 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
+ return;
+ }
+
++ if (TargetTriple.isMusl()) {
++ static const char *const AArch64MuslTriples[] = {"aarch64-linux-musl"};
++ static const char *const ARMHFMuslTriples[] = {
++ "arm-linux-musleabihf", "armv7l-linux-musleabihf"
++ };
++ static const char *const ARMMuslTriples[] = {"arm-linux-musleabi"};
++ static const char *const X86_64MuslTriples[] = {"x86_64-linux-musl"};
++ static const char *const X86MuslTriples[] = {"i686-linux-musl"};
++ static const char *const MIPSMuslTriples[] = {
++ "mips-linux-musl", "mipsel-linux-musl",
++ "mipsel-linux-muslhf", "mips-linux-muslhf"
++ };
++ static const char *const PPCMuslTriples[] = {"powerpc-linux-musl"};
++ static const char *const PPCLEMuslTriples[] = {"powerpcle-linux-musl"};
++ static const char *const PPC64MuslTriples[] = {"powerpc64-linux-musl"};
++ static const char *const PPC64LEMuslTriples[] = {"powerpc64le-linux-musl"};
++
++ switch (TargetTriple.getArch()) {
++ case llvm::Triple::aarch64:
++ LibDirs.append(begin(AArch64LibDirs), end(AArch64LibDirs));
++ TripleAliases.append(begin(AArch64MuslTriples), end(AArch64MuslTriples));
++ BiarchLibDirs.append(begin(AArch64LibDirs), end(AArch64LibDirs));
++ BiarchTripleAliases.append(begin(AArch64MuslTriples), end(AArch64MuslTriples));
++ break;
++ case llvm::Triple::arm:
++ LibDirs.append(begin(ARMLibDirs), end(ARMLibDirs));
++ if (TargetTriple.getEnvironment() == llvm::Triple::MuslEABIHF) {
++ TripleAliases.append(begin(ARMHFMuslTriples), end(ARMHFMuslTriples));
++ } else {
++ TripleAliases.append(begin(ARMMuslTriples), end(ARMMuslTriples));
++ }
++ break;
++ case llvm::Triple::x86_64:
++ LibDirs.append(begin(X86_64LibDirs), end(X86_64LibDirs));
++ TripleAliases.append(begin(X86_64MuslTriples), end(X86_64MuslTriples));
++ BiarchLibDirs.append(begin(X86LibDirs), end(X86LibDirs));
++ BiarchTripleAliases.append(begin(X86MuslTriples), end(X86MuslTriples));
++ break;
++ case llvm::Triple::x86:
++ LibDirs.append(begin(X86LibDirs), end(X86LibDirs));
++ TripleAliases.append(begin(X86MuslTriples), end(X86MuslTriples));
++ BiarchLibDirs.append(begin(X86_64LibDirs), end(X86_64LibDirs));
++ BiarchTripleAliases.append(begin(X86_64MuslTriples), end(X86_64MuslTriples));
++ break;
++ case llvm::Triple::mips:
++ LibDirs.append(begin(MIPSLibDirs), end(MIPSLibDirs));
++ TripleAliases.append(begin(MIPSMuslTriples), end(MIPSMuslTriples));
++ break;
++ case llvm::Triple::ppc:
++ LibDirs.append(begin(PPCLibDirs), end(PPCLibDirs));
++ TripleAliases.append(begin(PPCMuslTriples), end(PPCMuslTriples));
++ BiarchLibDirs.append(begin(PPC64LibDirs), end(PPC64LibDirs));
++ BiarchTripleAliases.append(begin(PPC64MuslTriples), end(PPC64MuslTriples));
++ break;
++ case llvm::Triple::ppcle:
++ LibDirs.append(begin(PPCLELibDirs), end(PPCLELibDirs));
++ TripleAliases.append(begin(PPCLEMuslTriples), end(PPCLEMuslTriples));
++ BiarchLibDirs.append(begin(PPC64LELibDirs), end(PPC64LELibDirs));
++ BiarchTripleAliases.append(begin(PPC64LEMuslTriples), end(PPC64LEMuslTriples));
++ break;
++ case llvm::Triple::ppc64:
++ LibDirs.append(begin(PPC64LibDirs), end(PPC64LibDirs));
++ TripleAliases.append(begin(PPC64MuslTriples), end(PPC64MuslTriples));
++ BiarchLibDirs.append(begin(PPCLibDirs), end(PPCLibDirs));
++ BiarchTripleAliases.append(begin(PPCMuslTriples), end(PPCMuslTriples));
++ break;
++ case llvm::Triple::ppc64le:
++ LibDirs.append(begin(PPC64LELibDirs), end(PPC64LELibDirs));
++ TripleAliases.append(begin(PPC64LEMuslTriples), end(PPC64LEMuslTriples));
++ BiarchLibDirs.append(begin(PPCLELibDirs), end(PPCLELibDirs));
++ BiarchTripleAliases.append(begin(PPCLEMuslTriples), end(PPCLEMuslTriples));
++ break;
++ default:
++ break;
++ }
++ TripleAliases.push_back(TargetTriple.str());
++ if (TargetTriple.str() != BiarchTriple.str())
++ BiarchTripleAliases.push_back(BiarchTriple.str());
++ return;
++ }
++
+ // Android targets should not use GNU/Linux tools or libraries.
+ if (TargetTriple.isAndroid()) {
+ static const char *const AArch64AndroidTriples[] = {
diff --git a/srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch b/srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch
new file mode 100644
index 000000000000..4ad6412d1e6c
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch
@@ -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 =
diff --git a/srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch b/srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch
new file mode 100644
index 000000000000..21fc8003c5f1
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch
@@ -0,0 +1,48 @@
+--- a/clang/lib/Basic/Targets/PPC.h
++++ b/clang/lib/Basic/Targets/PPC.h
+@@ -415,11 +415,10 @@ public:
+ LongDoubleFormat = &llvm::APFloat::IEEEdouble();
+ } else if ((Triple.getArch() == llvm::Triple::ppc64le)) {
+ DataLayout = "e-m:e-i64:64-n32:64";
+- ABI = "elfv2";
+ } else {
+ DataLayout = "E-m:e-i64:64-n32:64";
+- ABI = "elfv1";
+ }
++ ABI = "elfv2";
+
+ if (Triple.isOSFreeBSD() || Triple.isOSOpenBSD() || Triple.isMusl()) {
+ LongDoubleWidth = LongDoubleAlign = 64;
+--- a/clang/lib/CodeGen/TargetInfo.cpp
++++ b/clang/lib/CodeGen/TargetInfo.cpp
+@@ -10927,9 +10927,9 @@ const TargetCodeGenInfo &CodeGenModule::getTargetCodeGenInfo() {
+ return SetCGInfo(new AIXTargetCodeGenInfo(Types, /*Is64Bit*/ true));
+
+ if (Triple.isOSBinFormatELF()) {
+- PPC64_SVR4_ABIInfo::ABIKind Kind = PPC64_SVR4_ABIInfo::ELFv1;
+- if (getTarget().getABI() == "elfv2")
+- Kind = PPC64_SVR4_ABIInfo::ELFv2;
++ PPC64_SVR4_ABIInfo::ABIKind Kind = PPC64_SVR4_ABIInfo::ELFv2;
++ if (getTarget().getABI() == "elfv1")
++ Kind = PPC64_SVR4_ABIInfo::ELFv1;
+ bool IsSoftFloat = CodeGenOpts.FloatABI == "soft";
+
+ return SetCGInfo(
+--- a/clang/lib/Driver/ToolChains/Clang.cpp
++++ b/clang/lib/Driver/ToolChains/Clang.cpp
+@@ -1920,14 +1920,7 @@ void Clang::AddPPCTargetArgs(const ArgList &Args,
+ const llvm::Triple &T = getToolChain().getTriple();
+ if (T.isOSBinFormatELF()) {
+ switch (getToolChain().getArch()) {
+- case llvm::Triple::ppc64: {
+- if ((T.isOSFreeBSD() && T.getOSMajorVersion() >= 13) ||
+- T.isOSOpenBSD() || T.isMusl())
+- ABIName = "elfv2";
+- else
+- ABIName = "elfv1";
+- break;
+- }
++ case llvm::Triple::ppc64:
+ case llvm::Triple::ppc64le:
+ ABIName = "elfv2";
+ break;
diff --git a/srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch b/srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch
new file mode 100644
index 000000000000..360cfc1ba7f1
--- /dev/null
+++ b/srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch
@@ -0,0 +1,35 @@
+--- 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__) || SANITIZER_RISCV64
++ defined(__hexagon__) || defined(__powerpc__) || 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_ANDROID
++#if (defined(__aarch64__) || defined(__powerpc__) || SANITIZER_RISCV64) && !SANITIZER_ANDROID
+ // GLIBC 2.20+ sys/user does not include asm/ptrace.h
+ # include <asm/ptrace.h>
+ #endif
diff --git a/srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip b/srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip
new file mode 100644
index 000000000000..d0b61c80c897
--- /dev/null
+++ b/srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip
@@ -0,0 +1,62 @@
+--- a/compiler-rt/lib/xray/xray_powerpc64.inc
++++ b/compiler-rt/lib/xray/xray_powerpc64.inc
+@@ -12,7 +12,13 @@
+
+ #include <cstdint>
+ #include <mutex>
++#ifdef __GLIBC__
+ #include <sys/platform/ppc.h>
++#else
++#include <cctype>
++#include <cstring>
++#include <cstdlib>
++#endif
+
+ #include "xray_defs.h"
+
+@@ -20,13 +26,45 @@ namespace __xray {
+
+ ALWAYS_INLINE uint64_t readTSC(uint8_t &CPU) XRAY_NEVER_INSTRUMENT {
+ CPU = 0;
++#ifdef __GLIBC__
+ return __ppc_get_timebase();
++#else
++ return __builtin_ppc_get_timebase();
++#endif
+ }
+
+ inline uint64_t getTSCFrequency() XRAY_NEVER_INSTRUMENT {
+ static std::mutex M;
+ std::lock_guard<std::mutex> Guard(M);
++#ifdef __GLIBC__
+ return __ppc_get_timebase_freq();
++#else
++ /* FIXME: a less dirty implementation? */
++ static uint64_t base;
++ if (!base) {
++ FILE *f = fopen("/proc/cpuinfo", "rb");
++ if (f) {
++ ssize_t nr;
++ /* virtually always big enough to hold the line */
++ char buf[512];
++ while (fgets(buf, sizeof(buf), f)) {
++ char *ret = strstr(buf, "timebase");
++ if (!ret) {
++ continue;
++ }
++ ret += sizeof("timebase") - 1;
++ ret = strchr(ret, ':');
++ if (!ret) {
++ continue;
++ }
++ base = strtoul(ret + 1, nullptr, 10);
++ break;
++ }
++ fclose(f);
++ }
++ }
++ return base;
++#endif
+ }
+
+ inline bool probeRequiredCPUFeatures() XRAY_NEVER_INSTRUMENT {
diff --git a/srcpkgs/llvm15/patches/libcxx-musl.patch b/srcpkgs/llvm15/patches/libcxx-musl.patch
new file mode 100644
index 000000000000..bbd31ffc2cb1
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxx-musl.patch
@@ -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,
+ typename remove_reference<decltype(errno)>::type __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
+ typename remove_reference<decltype(errno)>::type __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,
+ typename remove_reference<decltype(errno)>::type __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
+ typename remove_reference<decltype(errno)>::type __current_errno = errno;
+ if (__current_errno == 0)
+ errno = __save_errno;
diff --git a/srcpkgs/llvm15/patches/libcxx-ppc.patch b/srcpkgs/llvm15/patches/libcxx-ppc.patch
new file mode 100644
index 000000000000..7a92f8004e1c
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxx-ppc.patch
@@ -0,0 +1,22 @@
+This ensures `is_iec559` is defined correctly under all long double ABIs,
+including musl and its 64-bit long double. Also, `__ppc__` or `__ppc64__`
+is not defined on gcc.
+
+--- a/libcxx/include/limits
++++ b/libcxx/include/limits
+@@ -426,8 +426,14 @@ protected:
+ _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type signaling_NaN() _NOEXCEPT {return __builtin_nansl("");}
+ _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type denorm_min() _NOEXCEPT {return __LDBL_DENORM_MIN__;}
+
+-#if (defined(__ppc__) || defined(__ppc64__))
++#if defined(__powerpc__) || defined(__powerpc64__)
++#if (__LDBL_MAX_EXP__ > __DBL_MAX_EXP__) || (__LDBL_MANT_DIG__ == __DBL_MANT_DIG__)
++ /* IEEE 754 quadruple or double precision */
++ static _LIBCPP_CONSTEXPR const bool is_iec559 = true;
++#else
++ /* 128-bit IBM double-double */
+ static _LIBCPP_CONSTEXPR const bool is_iec559 = false;
++#endif
+ #else
+ static _LIBCPP_CONSTEXPR const bool is_iec559 = true;
+ #endif
diff --git a/srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch b/srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch
new file mode 100644
index 000000000000..70292beb2fcd
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch
@@ -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()
diff --git a/srcpkgs/llvm15/patches/libcxxabi-dl.patch b/srcpkgs/llvm15/patches/libcxxabi-dl.patch
new file mode 100644
index 000000000000..3a15f9db8c98
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxxabi-dl.patch
@@ -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 @@
+ target_link_libraries(${target} PRIVATE m)
+ endif()
+
++ if (LIBCXX_HAS_C_LIB)
++ target_link_libraries(${target} PRIVATE dl)
++ endif()
++
+ if (LIBCXX_HAS_RT_LIB)
+ target_link_libraries(${target} PRIVATE rt)
+ endif()
diff --git a/srcpkgs/llvm15/patches/libomp-soname.patch b/srcpkgs/llvm15/patches/libomp-soname.patch
new file mode 100644
index 000000000000..9a622cd9254c
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libomp-soname.patch
@@ -0,0 +1,12 @@
+diff --git a/openmp/runtime/src/CMakeLists.txt b/openmp/runtime/src/CMakeLists.txt
+index df1ca9d90..9d2c3b7b9 100644
+--- a/openmp/runtime/src/CMakeLists.txt
++++ b/openmp/runtime/src/CMakeLists.txt
+@@ -150,6 +150,7 @@ libomp_get_libflags(LIBOMP_CONFIGURED_LIBFLAGS)
+ # Build libomp library. Add LLVMSupport dependency if building in-tree with libomptarget profiling enabled.
+ if(OPENMP_STANDALONE_BUILD OR (NOT OPENMP_ENABLE_LIBOMP_PROFILING))
+ add_library(omp ${LIBOMP_LIBRARY_KIND} ${LIBOMP_SOURCE_FILES})
++ set_target_properties(omp PROPERTIES VERSION ${LIBOMP_VERSION_MAJOR} SOVERSION ${LIBOMP_VERSION_MAJOR})
+ # Linking command will include libraries in LIBOMP_CONFIGURED_LIBFLAGS
+ target_link_libraries(omp ${LIBOMP_CONFIGURED_LIBFLAGS} ${LIBOMP_DL_LIBS})
+ else()
diff --git a/srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip b/srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip
new file mode 100644
index 000000000000..74aa7576ecf9
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip
@@ -0,0 +1,63 @@
+This fixes build at least with gcc9 which does not define `__ppc__`.
+
+--- a/libunwind/include/__libunwind_config.h
++++ b/libunwind/include/__libunwind_config.h
+@@ -49,7 +49,7 @@
+ # define _LIBUNWIND_CONTEXT_SIZE 167
+ # define _LIBUNWIND_CURSOR_SIZE 179
+ # define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_PPC64
+-# elif defined(__ppc__)
++# elif defined(__powerpc__)
+ # define _LIBUNWIND_TARGET_PPC 1
+ # define _LIBUNWIND_CONTEXT_SIZE 117
+ # define _LIBUNWIND_CURSOR_SIZE 124
+--- a/libunwind/src/UnwindRegistersRestore.S
++++ b/libunwind/src/UnwindRegistersRestore.S
+@@ -392,7 +392,7 @@ Lnovec:
+ PPC64_LR(3)
+ bctr
+
+-#elif defined(__ppc__)
++#elif defined(__powerpc__)
+
+ DEFINE_LIBUNWIND_FUNCTION(_ZN9libunwind13Registers_ppc6jumptoEv)
+ //
+--- a/libunwind/src/UnwindRegistersSave.S
++++ b/libunwind/src/UnwindRegistersSave.S
+@@ -554,7 +554,7 @@ DEFINE_LIBUNWIND_FUNCTION(__unw_getcontext)
+ blr
+
+
+-#elif defined(__ppc__)
++#elif defined(__powerpc__)
+
+ //
+ // extern int unw_getcontext(unw_context_t* thread_state)
+--- a/libunwind/src/config.h
++++ b/libunwind/src/config.h
+@@ -95,12 +95,12 @@
+ #define _LIBUNWIND_BUILD_SJLJ_APIS
+ #endif
+
+-#if defined(__i386__) || defined(__x86_64__) || defined(__ppc__) || defined(__ppc64__) || defined(__powerpc64__)
++#if defined(__i386__) || defined(__x86_64__) || defined(__powerpc__) || defined(__powerpc64__)
+ #define _LIBUNWIND_SUPPORT_FRAME_APIS
+ #endif
+
+ #if defined(__i386__) || defined(__x86_64__) || \
+- defined(__ppc__) || defined(__ppc64__) || defined(__powerpc64__) || \
++ defined(__powerpc__) || defined(__powerpc64__) || \
+ (!defined(__APPLE__) && defined(__arm__)) || \
+ (defined(__arm64__) || defined(__aarch64__)) || \
+ defined(__mips__)
+--- a/libunwind/src/libunwind.cpp
++++ b/libunwind/src/libunwind.cpp
+@@ -42,7 +42,7 @@ _LIBUNWIND_HIDDEN int __unw_init_local(unw_cursor_t *cursor,
+ # define REGISTER_KIND Registers_x86_64
+ #elif defined(__powerpc64__)
+ # define REGISTER_KIND Registers_ppc64
+-#elif defined(__ppc__)
++#elif defined(__powerpc__)
+ # define REGISTER_KIND Registers_ppc
+ #elif defined(__aarch64__)
+ # define REGISTER_KIND Registers_arm64
diff --git a/srcpkgs/llvm15/patches/lldb-musl.patch b/srcpkgs/llvm15/patches/lldb-musl.patch
new file mode 100644
index 000000000000..026c5e1e61ba
--- /dev/null
+++ b/srcpkgs/llvm15/patches/lldb-musl.patch
@@ -0,0 +1,40 @@
+--- a/lldb/source/Plugins/Process/Linux/Procfs.h
++++ b/lldb/source/Plugins/Process/Linux/Procfs.h
+@@ -10,6 +10,7 @@
+ // sys/procfs.h on Android/Linux for all supported architectures.
+
+ #include <sys/ptrace.h>
++#include <asm/ptrace.h>
+
+ #include "lldb/lldb-types.h"
+
+@@ -17,23 +18,13 @@
+
+ #include <vector>
+
+-#ifdef __ANDROID__
+-#if defined(__arm64__) || defined(__aarch64__)
+-typedef unsigned long elf_greg_t;
+-typedef elf_greg_t
+- elf_gregset_t[(sizeof(struct user_pt_regs) / sizeof(elf_greg_t))];
+-typedef struct user_fpsimd_state elf_fpregset_t;
+-#ifndef NT_FPREGSET
+-#define NT_FPREGSET NT_PRFPREG
+-#endif // NT_FPREGSET
+-#elif defined(__mips__)
+-#ifndef NT_FPREGSET
+-#define NT_FPREGSET NT_PRFPREG
+-#endif // NT_FPREGSET
+-#endif
+-#else // __ANDROID__
++#if !defined(__GLIBC__) && defined(__powerpc__)
++#define pt_regs musl_pt_regs
++#include <sys/procfs.h>
++#undef pt_regs
++#else
+ #include <sys/procfs.h>
+-#endif // __ANDROID__
++#endif
+
+ namespace lldb_private {
+ namespace process_linux {
diff --git a/srcpkgs/llvm15/patches/llvm-001-musl.patch b/srcpkgs/llvm15/patches/llvm-001-musl.patch
new file mode 100644
index 000000000000..f2a3f8d62813
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-001-musl.patch
@@ -0,0 +1,57 @@
+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;
+diff --git a/lib/Support/Unix/DynamicLibrary.inc b/lib/Support/Unix/DynamicLibrary.inc
+index a2a37996..2f86c470 100644
+--- a/llvm/lib/Support/Unix/DynamicLibrary.inc
++++ b/llvm/lib/Support/Unix/DynamicLibrary.inc
+@@ -102,7 +102,7 @@ static void *DoSearch(const char* SymbolName) {
+
+ // This macro returns the address of a well-known, explicit symbol
+ #define EXPLICIT_SYMBOL(SYM) \
+- if (!strcmp(SymbolName, #SYM)) return &SYM
++ if (!strcmp(SymbolName, #SYM)) return (void *)&SYM
+
+ // Under glibc we have a weird situation. The stderr/out/in symbols are both
+ // macros and global variables because of standards requirements. So, we
+diff --git a/utils/unittest/googletest/src/gtest.cc b/utils/unittest/googletest/src/gtest.cc
+index d882ab2e..f1fb12d0 100644
+--- a/llvm/utils/unittest/googletest/src/gtest.cc
++++ b/llvm/utils/unittest/googletest/src/gtest.cc
+@@ -128,6 +128,7 @@
+
+ #if GTEST_CAN_STREAM_RESULTS_
+ # include <arpa/inet.h> // NOLINT
++# include <sys/socket.h> // NOLINT
+ # include <netdb.h> // NOLINT
+ # include <sys/socket.h> // NOLINT
+ # include <sys/types.h> // NOLINT
diff --git a/srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch b/srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch
new file mode 100644
index 000000000000..0071d964bd37
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch
@@ -0,0 +1,30 @@
+This patches LLVM to use ELFv2 on ppc64 unconditionally unless overridden. We
+need this because unlike most distros we use ELFv2 for both glibc and musl
+on big endian ppc64.
+
+diff --git a/lib/Target/PowerPC/PPCTargetMachine.cpp b/lib/Target/PowerPC/PPCTargetMachine.cpp
+index 0634833e..b7cbc2e7 100644
+--- a/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp
++++ b/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp
+@@ -222,9 +222,8 @@ static PPCTargetMachine::PPCABI computeTargetABI(const Triple &TT,
+
+ switch (TT.getArch()) {
+ case Triple::ppc64le:
+- return PPCTargetMachine::PPC_ABI_ELFv2;
+ case Triple::ppc64:
+- return PPCTargetMachine::PPC_ABI_ELFv1;
++ return PPCTargetMachine::PPC_ABI_ELFv2;
+ default:
+ return PPCTargetMachine::PPC_ABI_UNKNOWN;
+ }
+diff --git a/test/CodeGen/PowerPC/ppc64-elf-abi.ll b/test/CodeGen/PowerPC/ppc64-elf-abi.ll
+index 8b1cf6b5..296a2afa 100644
+--- a/llvm/test/CodeGen/PowerPC/ppc64-elf-abi.ll
++++ b/llvm/test/CodeGen/PowerPC/ppc64-elf-abi.ll
+@@ -1,4 +1,5 @@
+-; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv1
++; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv2
++; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-musl < %s | FileCheck %s -check-prefix=CHECK-ELFv2
+ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu -target-abi elfv1 < %s | FileCheck %s -check-prefix=CHECK-ELFv1
+ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu -target-abi elfv2 < %s | FileCheck %s -check-prefix=CHECK-ELFv2
+ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv2
diff --git a/srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch b/srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch
new file mode 100644
index 000000000000..b5d15974375d
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch
@@ -0,0 +1,11 @@
+--- a/llvm/lib/Target/PowerPC/PPCSubtarget.cpp
++++ b/llvm/lib/Target/PowerPC/PPCSubtarget.cpp
+@@ -165,7 +165,7 @@ void PPCSubtarget::initSubtargetFeatures(StringRef CPU, StringRef FS) {
+
+ if ((TargetTriple.isOSFreeBSD() && TargetTriple.getOSMajorVersion() >= 13) ||
+ TargetTriple.isOSNetBSD() || TargetTriple.isOSOpenBSD() ||
+- TargetTriple.isMusl())
++ isTargetLinux())
+ SecurePlt = true;
+
+ if (HasSPE && IsPPC64)
diff --git a/srcpkgs/llvm15/patches/llvm-004-override-opt.patch b/srcpkgs/llvm15/patches/llvm-004-override-opt.patch
new file mode 100644
index 000000000000..51d0e4b31b32
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-004-override-opt.patch
@@ -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)
diff --git a/srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch b/srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch
new file mode 100644
index 000000000000..d332687b9d92
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch
@@ -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);
diff --git a/srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch b/srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch
new file mode 100644
index 000000000000..a00abd216665
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch
@@ -0,0 +1,25 @@
+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__) || defined (__ppc__) || \
+- defined(_POWER) || defined(_ARCH_PPC))
++ defined(_POWER) || defined(_ARCH_PPC) || (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
diff --git a/srcpkgs/llvm15/template b/srcpkgs/llvm15/template
new file mode 100644
index 000000000000..09952c5f4233
--- /dev/null
+++ b/srcpkgs/llvm15/template
@@ -0,0 +1,433 @@
+# Template file for 'llvm15'
+pkgname=llvm15
+version=15.0.6
+revision=1
+build_wrksrc=llvm
+build_style=cmake
+configure_args="
+ -DCMAKE_BUILD_TYPE=Release -Wno-dev
+ -DENABLE_LINKER_BUILD_ID=YES
+ -DLLDB_USE_SYSTEM_SIX=YES
+ -DLIBCXX_CXX_ABI=libcxxabi
+ -DLIBCXX_ENABLE_STATIC_ABI_LIBRARY=YES
+ -DLIBCXXABI_USE_LLVM_UNWINDER=YES
+ -DLIBCXXABI_ENABLE_STATIC_UNWINDER=YES
+ -DLIBOMP_ENABLE_SHARED=YES
+ -DLIBOMP_INSTALL_ALIASES=NO
+ -DLLVM_INCLUDE_DOCS=YES
+ -DLLVM_BUILD_DOCS=YES
+ -DLLVM_ENABLE_SPHINX=YES
+ -DSPHINX_WARNINGS_AS_ERRORS=NO
+ -DLLVM_INSTALL_UTILS=YES
+ -DLLVM_BUILD_LLVM_DYLIB=YES
+ -DLLVM_LINK_LLVM_DYLIB=YES
+ -DLLVM_ENABLE_RTTI=YES
+ -DLLVM_ENABLE_FFI=YES
+ -DLLVM_BINUTILS_INCDIR=/usr/include"
+hostmakedepends="perl python3 zlib-devel libffi-devel swig python3-Sphinx
+ python3-recommonmark python3-sphinx-automodapi"
+makedepends="python3-devel zlib-devel elfutils-devel libffi-devel libedit-devel
+ libxml2-devel binutils-devel libatomic-devel"
+depends="libllvm15>=${version}_${revision}"
+short_desc="Low Level Virtual Machine"
+maintainer="Orphaned <orphan@voidlinux.org>"
+license="Apache-2.0"
+homepage="https://www.llvm.org"
+distfiles="https://github.com/llvm/llvm-project/releases/download/llvmorg-${version}/llvm-project-${version}.src.tar.xz"
+checksum=9d53ad04dc60cb7b30e810faf64c5ab8157dadef46c8766f67f286238256ff92
+lib32disabled=yes
+python_version=3
+
+if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
+ configure_args+=" -DLIBCXX_HAS_MUSL_LIBC=YES"
+ makedepends+=" libexecinfo-devel"
+ depends+=" libexecinfo-devel"
+fi
+
+# "operand out of range" assembler failures
+case "$XBPS_TARGET_MACHINE" in
+ ppc64*) ;;
+ ppc*) configure_args+=" -DCLANG_ENABLE_CLANGD=OFF" ;;
+esac
+
+_enabled_projects="clang;clang-tools-extra;compiler-rt;libcxx;libcxxabi;libunwind;lld"
+
+_lldb_enable=yes
+_libomp_enable=no
+
+case "$XBPS_TARGET_MACHINE" in
+ ppc64le*) ;;
+ ppc*|i686*) _lldb_enable=no ;;
+esac
+
+case "$XBPS_TARGET_MACHINE" in
+ x86_64*|aarch64*|ppc64*) _libomp_enable=yes;;
+esac
+
+subpackages="clang-tools-extra"
+
+# must go before clang
+if [ "$_libomp_enable" = "yes" ]; then
+ _enabled_projects+=";openmp"
+ subpackages+=" libomp libomp-devel"
+ # because of cmake nonsense referencing libomptarget.so.*
+ depends+=" libomp>=${version}_${revision}"
+fi
+
+subpackages+=" clang clang-analyzer libclang libclang-cpp
+ llvm-libunwind llvm-libunwind-devel libcxx libcxx-devel
+ libcxxabi libcxxabi-devel libllvm15"
+
+if [ "$_lldb_enable" = "yes" ]; then
+ # XXX fails to cross compile due to python
+ _enabled_projects+=";lldb"
+ subpackages+=" lldb lldb-devel"
+fi
+
+subpackages+=" lld lld-devel"
+
+configure_args+=" -DLLVM_ENABLE_PROJECTS=${_enabled_projects}"
+
+post_patch() {
+ if [ "$_lldb_enable" = "yes" ]; then
+ if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
+ vsed -i 's|__ptrace_request|int|g' \
+ ${wrksrc}/lldb/source/Plugins/Process/Linux/NativeProcessLinux.cpp
+ fi
+ # disable docs for lldb as they fail to generate
+ vsed -i '/add_subdirectory(docs)/d' \
+ ${wrksrc}/lldb/CMakeLists.txt
+ fi
+
+ # update config.guess for better platform detection
+ cp $XBPS_COMMONDIR/environment/configure/automake/config.guess \
+ ${wrksrc}/llvm/cmake
+
+ # fix linker failures on some archs
+ vsed -i 's,check_library_exists(gcc_s .*,set(LIBCXXABI_HAS_GCC_S_LIB ON),' \
+ ${wrksrc}/libcxxabi/cmake/config-ix.cmake
+ vsed -i 's,check_library_exists(gcc .*,set(LIBCXXABI_HAS_GCC_LIB ON),' \
+ ${wrksrc}/libcxxabi/cmake/config-ix.cmake
+
+ # need libssp_nonshared on some musl platforms (because of nodefaultlibs)
+ case "$XBPS_TARGET_MACHINE" in
+ ppc64*) ;;
+ ppc*-musl|i686-musl|mips*-musl)
+ vsed -i 's,^# Setup flags.$,add_library_flags(ssp_nonshared),' \
+ ${wrksrc}/libunwind/src/CMakeLists.txt
+ vsed -i 's,^# Setup flags.$,add_library_flags(ssp_nonshared),' \
+ ${wrksrc}/libcxxabi/src/CMakeLists.txt
+ vsed -i 's,#ssp,,' ${wrksrc}/libcxx/CMakeLists.txt
+ ;;
+ esac
+
+ case "$XBPS_TARGET_MACHINE" in
+ x86_64-musl) # some sanitizer currently only on x86_64 stuff needs backtrace
+ vsed -i 's,# Set common link flags.,list(APPEND SANITIZER_COMMON_LINK_LIBS execinfo),' \
+ ${wrksrc}/compiler-rt/CMakeLists.txt
+ ;;
+ arm*-musl|i686-musl) # sanitizer code is broken since it duplicates some libc bits
+ vsed -i 's/set(COMPILER_RT_HAS_SANITIZER_COMMON TRUE)/set(COMPILER_RT_HAS_SANITIZER_COMMON FALSE)/' \
+ ${wrksrc}/compiler-rt/cmake/config-ix.cmake
+ ;;
+ esac
+}
+
+pre_configure() {
+ local triplet
+
+ # Vastly reduce size of debugging symbols:
+ CFLAGS=${CFLAGS/ -g/ -g1}
+ CXXFLAGS=${CXXFLAGS/ -g/ -g1}
+
+ # since gcc9, the build likes to blow up for ppc32 apparently because
+ # of clang being too large for a 24-bit relative call to the PLT, so
+ # optimize for size instead
+ case "$XBPS_TARGET_MACHINE" in
+ ppc64*) ;;
+ mips*-musl|ppc*) configure_args+=" -DVOID_CXX_OPT_FLAGS=-Os" ;;
+ esac
+
+ if [ "$CROSS_BUILD" ]; then
+ msg_normal "Building host tblgen\n"
+ mkdir -p build/HOST
+ cd build/HOST
+ CC="$BUILD_CC" CXX="$BUILD_CXX" CFLAGS="$BUILD_CFLAGS" \
+ CXXFLAGS="$BUILD_CXXFLAGS" LDFLAGS="$BUILD_LDFLAGS" \
+ cmake ../.. -DCMAKE_BUILD_TYPE=Release \
+ -DLLVM_ENABLE_PROJECTS=${_enabled_projects}
+ make ${makejobs} -C utils/TableGen
+ make ${makejobs} -C tools/clang/utils/TableGen
+ [ "$_lldb_enable" = "yes" ] && make ${makejobs} -C tools/lldb/utils/TableGen
+ configure_args+=" -DLLVM_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/llvm-tblgen"
+ configure_args+=" -DCLANG_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/clang-tblgen"
+ [ "$_lldb_enable" = "yes" ] && configure_args+=" -DLLDB_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/lldb-tblgen"
+ cd ../..
+ fi
+
+ case "$XBPS_TARGET_MACHINE" in
+ i686*) _arch="X86";;
+ x86_64*) _arch="X86";;
+ armv5*) _arch="Armv5te";;
+ armv6*) _arch="Armv6";;
+ armv7*) _arch="Armv7";;
+ aarch64*) _arch="AArch64";;
+ mips*) _arch="Mips";;
+ ppc*) _arch="PowerPC";;
+ riscv64*) _arch="RISCV64";;
+ esac
+
+ triplet=${XBPS_CROSS_TRIPLET:-$XBPS_TRIPLET}
+
+ configure_args+=" -DLLVM_TARGET_ARCH=${_arch}"
+ configure_args+=" -DLLVM_HOST_TRIPLE=${triplet}"
+ configure_args+=" -DLLVM_DEFAULT_TARGET_TRIPLE=${triplet}"
+}
+
+do_install() {
+ cd build
+ cmake -DCMAKE_INSTALL_PREFIX=${DESTDIR}/usr -P cmake_install.cmake
+
+ # Required for multilib.
+ if [ "$XBPS_TARGET_MACHINE" = "x86_64" ]; then
+ for _header in llvm-config; do
+ mv ${DESTDIR}/usr/include/llvm/Config/${_header}{,-64}.h
+ vinstall ${FILESDIR}/llvm-Config-${_header}.h 644 \
+ usr/include/llvm/Config ${_header}.h
+ done
+ fi
+
+ # Remove llvm-config-host in cross builds.
+ if [ "$CROSS_BUILD" ]; then
+ rm -f ${DESTDIR}/usr/bin/llvm-config-host
+ fi
+
+ # Install libcxxabi headers
+ vinstall ${wrksrc}/libcxxabi/include/__cxxabi_config.h 644 usr/include
+ vinstall ${wrksrc}/libcxxabi/include/cxxabi.h 644 usr/include
+
+ # Install libunwind headers
+ vinstall ${wrksrc}/libunwind/include/__libunwind_config.h 644 usr/include
+ vinstall ${wrksrc}/libunwind/include/libunwind.h 644 usr/include
+ vinstall ${wrksrc}/libunwind/include/unwind.h 644 usr/include
+ vinstall ${wrksrc}/libunwind/include/mach-o/compact_unwind_encoding.h \
+ 644 usr/include/mach-o
+}
+
+clang-analyzer_package() {
+ pycompile_dirs="usr/share/scan-view"
+ depends="clang-${version}_${revision} python3 perl"
+ short_desc+=" - A source code analysis framework"
+ homepage="https://clang-analyzer.llvm.org/"
+ pkg_install() {
+ vmove "usr/bin/scan-*"
+ vmove "usr/libexec/*analyzer"
+ vmove "usr/share/scan-*"
+ vmove usr/share/man/man1/scan-build.1
+ }
+}
+
+clang-tools-extra_package() {
+ lib32disabled=yes
+ depends="clang-${version}_${revision} python3"
+ short_desc+=" - Extra Clang tools"
+ homepage="https://clang.llvm.org/extra/"
+ pkg_install() {
+ vmove usr/bin/clang-apply-replacements
+ vmove usr/bin/clang-doc
+ vmove usr/bin/clang-include-fixer
+ vmove usr/bin/clang-query
+ vmove usr/bin/clang-rename
+ vmove usr/bin/clang-reorder-fields
+ vmove usr/bin/clang-tidy
+ vmove usr/bin/clangd
+ vmove usr/bin/diagtool
+ vmove usr/bin/find-all-symbols
+ vmove usr/bin/hmaptool
+ vmove usr/bin/modularize
+ vmove usr/bin/pp-trace
+ vmove usr/bin/sancov
+ vmove usr/include/clang-tidy
+ vmove "usr/lib/libclangApplyReplacements*"
+ vmove "usr/lib/libclangDoc*"
+ vmove "usr/lib/libclangIncludeFixer*"
+ vmove "usr/lib/libclangReorderFields*"
+ vmove "usr/lib/libclangQuery*"
+ vmove "usr/lib/libclangTidy*"
+ vmove "usr/share/clang/*include-fixer*"
+ vmove "usr/share/clang/*rename*"
+ vmove "usr/share/clang/*tidy*"
+ vmove usr/share/doc/LLVM/clang-tools
+ vmove usr/share/man/man1/diagtool.1
+ vmove usr/share/man/man1/extraclangtools.1
+ }
+}
+
+clang_package() {
+ lib32disabled=yes
+ depends="libstdc++-devel libgcc-devel binutils ${XBPS_TARGET_LIBC}-devel
+ libclang-${version}_${revision}"
+ short_desc+=" - C language family frontend"
+ homepage="https://clang.llvm.org/"
+ pkg_install() {
+ vmove "usr/bin/*clang*"
+ vmove usr/bin/c-index-test
+ vmove usr/include/clang
+ vmove usr/include/clang-c
+ vmove usr/lib/clang
+ vmove usr/lib/cmake/clang
+ vmove "usr/lib/libclang*.a"
+ vmove "usr/lib/libclang*.so"
+ vmove usr/share/clang
+ vmove usr/share/doc/LLVM/clang
+ vmove usr/share/man/man1/clang.1
+ }
+}
+
+libclang_package() {
+ short_desc+=" - C frontend runtime library"
+ pkg_install() {
+ vmove "usr/lib/libclang.so.*"
+ }
+}
+
+libclang-cpp_package() {
+ short_desc+=" - C frontend runtime library (C++ interface)"
+ pkg_install() {
+ vmove "usr/lib/libclang-cpp.so.*"
+ }
+}
+
+lld_package() {
+ lib32disabled=yes
+ short_desc+=" - linker"
+ homepage="https://lld.llvm.org"
+ pkg_install() {
+ vmove usr/bin/ld.lld*
+ vmove usr/bin/ld64.lld*
+ vmove usr/bin/lld*
+ vmove usr/bin/wasm-ld
+ vmove usr/share/doc/LLVM/lld
+ }
+}
+
+lld-devel_package() {
+ lib32disabled=yes
+ short_desc+=" - linker - development files"
+ homepage="https://lld.llvm.org"
+ depends="lld>=${version}_${revision}"
+ pkg_install() {
+ vmove usr/include/lld
+ vmove usr/lib/cmake/lld
+ vmove "usr/lib/liblld*a"
+ }
+}
+
+lldb_package() {
+ lib32disabled=yes
+ depends+=" python3-six"
+ short_desc+=" - LLDB debugger"
+ homepage="https://lldb.llvm.org/"
+ pkg_install() {
+ vmove usr/bin/*lldb*
+ vmove usr/lib/liblldb*so.*
+ vmove /usr/lib/python*
+ }
+}
+
+lldb-devel_package() {
+ lib32disabled=yes
+ depends="lldb>=${version}_${revision}"
+ short_desc+=" - LLDB debugger - development files"
+ pkg_install() {
+ vmove usr/include/lldb
+ vmove "usr/lib/liblldb*.so"
+ }
+}
+
+llvm-libunwind_package() {
+ short_desc+=" - libunwind"
+ pkg_install() {
+ vmove "usr/lib/${XBPS_TRIPLET}/libunwind.so.*"
+ }
+}
+
+llvm-libunwind-devel_package() {
+ short_desc+=" - libunwind - development files"
+ depends="llvm-libunwind>=${version}_${revision}"
+ conflicts="libunwind-devel>=0"
+ pkg_install() {
+ vmove usr/include/mach-o
+ vmove "usr/include/*unwind*"
+ vmove "usr/lib/${XBPS_TRIPLET}/libunwind.a"
+ vmove "usr/lib/${XBPS_TRIPLET}/libunwind.so"
+ vmove usr/share/doc/LLVM/libunwind
+ }
+}
+
+libcxxabi_package() {
+ short_desc+=" - low level support for libc++"
+ pkg_install() {
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++abi.so.*"
+ }
+}
+
+libcxxabi-devel_package() {
+ short_desc+=" - low level support for libc++ - development files"
+ depends="libcxxabi>=${version}_${revision}"
+ pkg_install() {
+ vmove "usr/include/*cxxabi*"
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++abi.so"
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++abi.a"
+ }
+}
+
+libcxx_package() {
+ short_desc+=" - C++ standard library"
+ pkg_install() {
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++.so.*"
+ }
+}
+
+libcxx-devel_package() {
+ short_desc+=" - C++ standard library - development files"
+ depends="libcxx>=${version}_${revision}"
+ pkg_install() {
+ vmove usr/include/c++
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++.so"
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++.a"
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++experimental.a"
+ vmove usr/share/doc/LLVM/libcxx
+ }
+}
+
+libomp_package() {
+ short_desc+=" - Clang OpenMP support library"
+ pkg_install() {
+ vmove usr/lib/libarcher.so
+ vmove usr/lib/libompd.so
+ vmove "usr/lib/libomptarget.rtl.*.so"
+ vmove "usr/lib/libomp*.so.*"
+ }
+}
+
+libomp-devel_package() {
+ short_desc+=" - Clang OpenMP support library - development files"
+ depends="libomp>=${version}_${revision}"
+ pkg_install() {
+ vmove "usr/include/omp*.h"
+ vmove "usr/lib/clang/${version}/include/omp*.h"
+ vmove "usr/lib/libarcher*"
+ vmove "usr/lib/libomp*.so"
+ vmove usr/lib/cmake/openmp
+ vmove usr/share/doc/LLVM/openmp
+ vmove usr/share/man/man1/llvmopenmp.1
+ }
+}
+
+libllvm15_package() {
+ short_desc+=" - runtime library"
+ pkg_install() {
+ vmove "usr/lib/libLLVM-*.so*"
+ }
+}
diff --git a/srcpkgs/llvm15/update b/srcpkgs/llvm15/update
new file mode 100644
index 000000000000..e95cf26b3586
--- /dev/null
+++ b/srcpkgs/llvm15/update
@@ -0,0 +1,3 @@
+site="https://github.com/llvm/llvm-project/releases"
+pattern="llvmorg-\K(\d+.){2}\d+(-rc\d+)?"
+ignore="*-rc*"
From 64c69680cc8d9717e9e0af146dc6d19bd19c527d Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Sun, 18 Dec 2022 00:40:18 +0100
Subject: [PATCH 02/10] llvm: update to 15
---
common/shlibs | 6 +++---
srcpkgs/clang | 2 +-
srcpkgs/clang-analyzer | 2 +-
srcpkgs/clang-tools-extra | 2 +-
srcpkgs/libclang | 2 +-
srcpkgs/libclang-cpp | 2 +-
srcpkgs/libcxx | 2 +-
srcpkgs/libcxx-devel | 2 +-
srcpkgs/libcxxabi | 2 +-
srcpkgs/libcxxabi-devel | 2 +-
srcpkgs/libomp | 2 +-
srcpkgs/libomp-devel | 2 +-
srcpkgs/lld | 2 +-
srcpkgs/lld-devel | 2 +-
srcpkgs/lldb | 2 +-
srcpkgs/lldb-devel | 2 +-
srcpkgs/llvm-libunwind | 2 +-
srcpkgs/llvm-libunwind-devel | 2 +-
srcpkgs/llvm/template | 6 +++---
19 files changed, 23 insertions(+), 23 deletions(-)
diff --git a/common/shlibs b/common/shlibs
index 58c36a7bf2a7..d57773d41d08 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -986,9 +986,9 @@ 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.12 lldb-12.0.0_1
-libclang.so.12 libclang-12.0.0_1
-libclang-cpp.so.12 libclang-cpp-12.0.0_1
+liblldb.so.15 lldb-15.0.6_1
+libclang.so.15 libclang-15.0.6_1
+libclang-cpp.so.15 libclang-cpp-15.0.6_1
libLLVM-11.so libllvm11-11.0.0_1
libLLVM-12.so libllvm12-12.0.0_1
libLLVM-15.so libllvm15-15.0.6_1
diff --git a/srcpkgs/clang b/srcpkgs/clang
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/clang
+++ b/srcpkgs/clang
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/clang-analyzer b/srcpkgs/clang-analyzer
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/clang-analyzer
+++ b/srcpkgs/clang-analyzer
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/clang-tools-extra b/srcpkgs/clang-tools-extra
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/clang-tools-extra
+++ b/srcpkgs/clang-tools-extra
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libclang b/srcpkgs/libclang
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libclang
+++ b/srcpkgs/libclang
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libclang-cpp b/srcpkgs/libclang-cpp
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libclang-cpp
+++ b/srcpkgs/libclang-cpp
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxx b/srcpkgs/libcxx
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxx
+++ b/srcpkgs/libcxx
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxx-devel b/srcpkgs/libcxx-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxx-devel
+++ b/srcpkgs/libcxx-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxxabi b/srcpkgs/libcxxabi
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxxabi
+++ b/srcpkgs/libcxxabi
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxxabi-devel b/srcpkgs/libcxxabi-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxxabi-devel
+++ b/srcpkgs/libcxxabi-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libomp b/srcpkgs/libomp
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libomp
+++ b/srcpkgs/libomp
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libomp-devel b/srcpkgs/libomp-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libomp-devel
+++ b/srcpkgs/libomp-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lld b/srcpkgs/lld
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lld
+++ b/srcpkgs/lld
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lld-devel b/srcpkgs/lld-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lld-devel
+++ b/srcpkgs/lld-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lldb b/srcpkgs/lldb
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lldb
+++ b/srcpkgs/lldb
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lldb-devel b/srcpkgs/lldb-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lldb-devel
+++ b/srcpkgs/lldb-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm-libunwind b/srcpkgs/llvm-libunwind
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/llvm-libunwind
+++ b/srcpkgs/llvm-libunwind
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm-libunwind-devel b/srcpkgs/llvm-libunwind-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/llvm-libunwind-devel
+++ b/srcpkgs/llvm-libunwind-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm/template b/srcpkgs/llvm/template
index a92db6f94f9f..fc1c850bd26f 100644
--- a/srcpkgs/llvm/template
+++ b/srcpkgs/llvm/template
@@ -1,11 +1,11 @@
# Template file for 'llvm'
pkgname=llvm
-version=12.0.0
+version=15
revision=1
build_style=meta
-depends="llvm12"
-replaces="llvm11>=0 llvm10>=0 llvm9>=0 llvm8>=0 llvm7>=0 llvm6.0>=0 llvm3.9>=0"
+depends="llvm15"
short_desc="LLVM meta package"
maintainer="Enno Boland <gottox@voidlinux.org>"
license="Public Domain"
homepage="https://www.voidlinux.org"
+replaces="llvm12>=0 llvm11>=0 llvm10>=0 llvm9>=0 llvm8>=0 llvm7>=0 llvm6.0>=0 llvm3.9>=0"
From 188a2b43323fee70fddc5190d58e9a75c742487c Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Sun, 18 Dec 2022 12:20:08 +0100
Subject: [PATCH 03/10] llvm12: remove bumped subpackages
---
srcpkgs/llvm12/template | 264 +---------------------------------------
1 file changed, 1 insertion(+), 263 deletions(-)
diff --git a/srcpkgs/llvm12/template b/srcpkgs/llvm12/template
index f8ea3ba641ae..aea0b43cf573 100644
--- a/srcpkgs/llvm12/template
+++ b/srcpkgs/llvm12/template
@@ -50,55 +50,7 @@ case "$XBPS_TARGET_MACHINE" in
ppc*) configure_args+=" -DCLANG_ENABLE_CLANGD=OFF" ;;
esac
-_enabled_projects="clang;clang-tools-extra;compiler-rt;libcxx;libcxxabi;libunwind;lld"
-
-_lldb_enable=yes
-_libomp_enable=no
-
-case "$XBPS_TARGET_MACHINE" in
- ppc64le*) ;;
- ppc*|i686*) _lldb_enable=no ;;
-esac
-
-case "$XBPS_TARGET_MACHINE" in
- x86_64*|aarch64*|ppc64*) _libomp_enable=yes;;
-esac
-
-subpackages="clang-tools-extra"
-
-# must go before clang
-if [ "$_libomp_enable" = "yes" ]; then
- _enabled_projects+=";openmp"
- subpackages+=" libomp libomp-devel"
- # because of cmake nonsense referencing libomptarget.so.*
- depends+=" libomp>=${version}_${revision}"
-fi
-
-subpackages+=" clang clang-analyzer libclang libclang-cpp
- llvm-libunwind llvm-libunwind-devel libcxx libcxx-devel
- libcxxabi libcxxabi-devel libllvm12"
-
-if [ "$_lldb_enable" = "yes" ]; then
- # XXX fails to cross compile due to python
- _enabled_projects+=";lldb"
- subpackages+=" lldb lldb-devel"
-fi
-
-subpackages+=" lld lld-devel"
-
-configure_args+=" -DLLVM_ENABLE_PROJECTS=${_enabled_projects}"
-
post_patch() {
- if [ "$_lldb_enable" = "yes" ]; then
- if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
- vsed -i 's|__ptrace_request|int|g' \
- ${wrksrc}/lldb/source/Plugins/Process/Linux/NativeProcessLinux.cpp
- fi
- # disable docs for lldb as they fail to generate
- vsed -i '/add_subdirectory(docs)/d' \
- ${wrksrc}/lldb/CMakeLists.txt
- fi
-
# update config.guess for better platform detection
cp $XBPS_COMMONDIR/environment/configure/automake/config.guess \
${wrksrc}/llvm/cmake
@@ -154,14 +106,12 @@ pre_configure() {
cd build/HOST
CC="$BUILD_CC" CXX="$BUILD_CXX" CFLAGS="$BUILD_CFLAGS" \
CXXFLAGS="$BUILD_CXXFLAGS" LDFLAGS="$BUILD_LDFLAGS" \
- cmake ../.. -DCMAKE_BUILD_TYPE=Release \
- -DLLVM_ENABLE_PROJECTS=${_enabled_projects}
+ cmake ../.. -DCMAKE_BUILD_TYPE=Release
make ${makejobs} -C utils/TableGen
make ${makejobs} -C tools/clang/utils/TableGen
[ "$_lldb_enable" = "yes" ] && make ${makejobs} -C tools/lldb/utils/TableGen
configure_args+=" -DLLVM_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/llvm-tblgen"
configure_args+=" -DCLANG_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/clang-tblgen"
- [ "$_lldb_enable" = "yes" ] && configure_args+=" -DLLDB_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/lldb-tblgen"
cd ../..
fi
@@ -201,218 +151,6 @@ do_install() {
if [ "$CROSS_BUILD" ]; then
rm -f ${DESTDIR}/usr/bin/llvm-config-host
fi
-
- # Install libcxxabi headers
- vinstall ${wrksrc}/libcxxabi/include/__cxxabi_config.h 644 usr/include
- vinstall ${wrksrc}/libcxxabi/include/cxxabi.h 644 usr/include
-
- # Install libunwind headers
- vinstall ${wrksrc}/libunwind/include/__libunwind_config.h 644 usr/include
- vinstall ${wrksrc}/libunwind/include/libunwind.h 644 usr/include
- vinstall ${wrksrc}/libunwind/include/unwind.h 644 usr/include
- vinstall ${wrksrc}/libunwind/include/mach-o/compact_unwind_encoding.h \
- 644 usr/include/mach-o
-}
-
-clang-analyzer_package() {
- pycompile_dirs="usr/share/scan-view"
- depends="clang-${version}_${revision} python3 perl"
- short_desc+=" - A source code analysis framework"
- homepage="https://clang-analyzer.llvm.org/"
- pkg_install() {
- vmove usr/share/man/man1/scan-build.1
- vmove "/usr/bin/scan-*"
- vmove "/usr/share/scan-*"
- vmove "/usr/libexec/*analyzer"
- }
-}
-
-clang-tools-extra_package() {
- lib32disabled=yes
- depends="clang-${version}_${revision} python3"
- short_desc+=" - Extra Clang tools"
- homepage="https://clang.llvm.org/extra/"
- pkg_install() {
- vmove usr/include/clang-tidy
- vmove usr/bin/clang-apply-replacements
- vmove usr/bin/clang-query
- vmove usr/bin/clang-rename
- vmove usr/bin/clang-tidy
- vmove usr/bin/diagtool
- vmove usr/bin/find-all-symbols
- vmove usr/bin/hmaptool
- vmove usr/bin/modularize
- vmove usr/bin/pp-trace
- vmove usr/bin/sancov
- vmove "usr/lib/libclangApplyReplacements*"
- vmove "usr/lib/libclangQuery*"
- vmove "usr/lib/libclangTidy*"
- vmove "usr/share/clang/*tidy*"
- vmove usr/share/doc/clang-tools
- vmove usr/share/man/man1/extraclangtools.1
- vmove usr/share/man/man1/diagtool.1
- }
-}
-
-clang_package() {
- lib32disabled=yes
- depends="libstdc++-devel libgcc-devel binutils ${XBPS_TARGET_LIBC}-devel
- libclang-${version}_${revision}"
- short_desc+=" - C language family frontend"
- homepage="https://clang.llvm.org/"
- pkg_install() {
- vmove usr/include/clang
- vmove usr/include/clang-c
- vmove "usr/bin/*clang*"
- vmove usr/bin/c-index-test
- vmove usr/lib/clang
- vmove usr/lib/cmake/clang
- vmove "usr/lib/libclang*.a"
- vmove "usr/lib/libclang*.so"
- vmove usr/share/clang
- vmove usr/share/doc/clang
- vmove usr/share/man/man1/clang.1
- }
-}
-
-libclang_package() {
- short_desc+=" - C frontend runtime library"
- pkg_install() {
- vmove "usr/lib/libclang.so.*"
- }
-}
-
-libclang-cpp_package() {
- short_desc+=" - C frontend runtime library (C++ interface)"
- pkg_install() {
- vmove "usr/lib/libclang-cpp.so.*"
- }
-}
-
-lld_package() {
- lib32disabled=yes
- short_desc+=" - linker"
- homepage="https://lld.llvm.org"
- pkg_install() {
- vmove usr/bin/lld*
- vmove usr/bin/wasm-ld
- vmove usr/bin/ld.lld*
- vmove usr/bin/ld64.lld*
- vmove usr/share/doc/lld
- }
-}
-
-lld-devel_package() {
- lib32disabled=yes
- short_desc+=" - linker - development files"
- homepage="https://lld.llvm.org"
- depends="lld>=${version}_${revision}"
- pkg_install() {
- vmove usr/include/lld
- vmove usr/lib/cmake/lld
- vmove "usr/lib/liblld*a"
- }
-}
-
-lldb_package() {
- lib32disabled=yes
- depends+=" python3-six"
- short_desc+=" - LLDB debugger"
- homepage="https://lldb.llvm.org/"
- pkg_install() {
- vmove usr/bin/*lldb*
- vmove usr/lib/liblldb*so.*
- vmove /usr/lib/python*
- }
-}
-
-lldb-devel_package() {
- lib32disabled=yes
- depends="lldb>=${version}_${revision}"
- short_desc+=" - LLDB debugger - development files"
- pkg_install() {
- vmove usr/include/lldb
- vmove "usr/lib/liblldb*.so"
- }
-}
-
-llvm-libunwind_package() {
- short_desc+=" - libunwind"
- pkg_install() {
- vmove "usr/lib/libunwind.so.*"
- }
-}
-
-llvm-libunwind-devel_package() {
- short_desc+=" - libunwind - development files"
- depends="llvm-libunwind>=${version}_${revision}"
- conflicts="libunwind-devel>=0"
- pkg_install() {
- vmove usr/lib/libunwind.so
- vmove usr/lib/libunwind.a
- vmove "usr/include/*unwind*"
- vmove usr/include/mach-o
- vmove usr/share/doc/libunwind
- }
-}
-
-libcxxabi_package() {
- short_desc+=" - low level support for libc++"
- pkg_install() {
- vmove "usr/lib/libc++abi.so.*"
- }
-}
-
-libcxxabi-devel_package() {
- short_desc+=" - low level support for libc++ - development files"
- depends="libcxxabi>=${version}_${revision}"
- pkg_install() {
- vmove usr/lib/libc++abi.so
- vmove usr/lib/libc++abi.a
- vmove "usr/include/*cxxabi*"
- }
-}
-
-libcxx_package() {
- short_desc+=" - C++ standard library"
- pkg_install() {
- vmove "usr/lib/libc++.so.*"
- }
-}
-
-libcxx-devel_package() {
- short_desc+=" - C++ standard library - development files"
- depends="libcxx>=${version}_${revision}"
- pkg_install() {
- vmove usr/lib/libc++.so
- vmove usr/lib/libc++.a
- vmove usr/lib/libc++experimental.a
- vmove usr/include/c++
- vmove usr/share/doc/libcxx
- }
-}
-
-libomp_package() {
- short_desc+=" - Clang OpenMP support library"
- pkg_install() {
- vmove usr/lib/libomp.so
- vmove "usr/lib/libomptarget.rtl.*.so"
- vmove usr/lib/libarcher.so
- vmove "usr/lib/libomp*.so.*"
- }
-}
-
-libomp-devel_package() {
- short_desc+=" - Clang OpenMP support library - development files"
- depends="libomp>=${version}_${revision}"
- pkg_install() {
- vmove "usr/lib/libomp*.so"
- vmove "usr/lib/libarcher*"
- vmove "usr/include/omp*.h"
- vmove "usr/lib/clang/${version}/include/omp*.h"
- vmove usr/share/man/man1/llvmopenmp.1
- vmove usr/share/doc/openmp
- }
}
libllvm12_package() {
From 0b9296ded577b6f826e847e1c1818cf10259099f Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:27:03 +0100
Subject: [PATCH 04/10] mesa: rebuild for llvm15
---
srcpkgs/mesa/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/mesa/template b/srcpkgs/mesa/template
index 4c3c9ec6039e..0641b28a80d6 100644
--- a/srcpkgs/mesa/template
+++ b/srcpkgs/mesa/template
@@ -1,7 +1,7 @@
# Template file for 'mesa'
pkgname=mesa
version=22.2.4
-revision=2
+revision=3
build_style=meson
configure_args="-Dglvnd=true -Dshared-glapi=enabled -Dgbm=enabled -Degl=enabled
-Dosmesa=true -Dgles1=enabled -Dgles2=enabled -Dglx=dri -Ddri3=enabled
From 78361ec2b1ee091b3d34699d6086af909fd9dbce Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:34:04 +0100
Subject: [PATCH 05/10] bcc: rebuild for llvm15
---
srcpkgs/bcc/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/bcc/template b/srcpkgs/bcc/template
index 168a67389bba..219ab9b50219 100644
--- a/srcpkgs/bcc/template
+++ b/srcpkgs/bcc/template
@@ -1,7 +1,7 @@
# Template file for 'bcc'
pkgname=bcc
version=0.25.0
-revision=2
+revision=3
build_style=cmake
configure_args="-DREVISION=${version} -DENABLE_LLVM_SHARED=1"
hostmakedepends="flex python3"
From c60040bdbaa7b8b9101836c814afa798af61e6f2 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:37:25 +0100
Subject: [PATCH 06/10] bpftrace: rebuild for llvm15
---
srcpkgs/bpftrace/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/bpftrace/template b/srcpkgs/bpftrace/template
index 190cebb8e3bc..6c1b3386d358 100644
--- a/srcpkgs/bpftrace/template
+++ b/srcpkgs/bpftrace/template
@@ -1,7 +1,7 @@
# Template file for 'bpftrace'
pkgname=bpftrace
version=0.15.0
-revision=1
+revision=2
archs="x86_64* aarch64* ppc64*"
build_style=cmake
configure_args="-DBUILD_TESTING=OFF" # needs root to run
@@ -11,7 +11,7 @@ short_desc="High-level tracing language for Linux enhanced Berkeley Packet Filte
maintainer="Leah Neukirchen <leah@vuxu.org>"
license="Apache-2.0"
homepage="https://github.com/iovisor/bpftrace/"
-distfiles="https://github.com/iovisor/bpftrace/archive/v${version}.tar.gz"
+distfiles="https://github.com/iovisor/bpftrace/archive/refs/tags/v${version}.tar.gz"
checksum=64f67e615998d8150f5ee28614bea9ed303f20f6887bc4cdffa5f9c9477ef52a
nostrip=yes # needs to read own symbol table
From 7c2849d9bd34a615b51132d8371d06304b098259 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:43:53 +0100
Subject: [PATCH 07/10] CastXML: rebuild for llvm15
---
srcpkgs/CastXML/template | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/srcpkgs/CastXML/template b/srcpkgs/CastXML/template
index 5d7d9503658c..28c424c78073 100644
--- a/srcpkgs/CastXML/template
+++ b/srcpkgs/CastXML/template
@@ -1,7 +1,7 @@
# Template file for 'CastXML'
pkgname=CastXML
version=0.4.6
-revision=1
+revision=2
build_style=cmake
configure_args="-DSPHINX_MAN=YES -DCastXML_INSTALL_MAN_DIR=share/man"
hostmakedepends="clang python3-Sphinx"
@@ -12,8 +12,8 @@ short_desc="C-family abstract syntax tree XML output tool"
maintainer="Evgeny Ermakov <evgeny.v.ermakov@gmail.com>"
license="Apache-2.0"
homepage="https://github.com/CastXML/CastXML"
-distfiles="https://github.com/CastXML/CastXML/archive/v${version}.tar.gz"
-checksum=8dcdbc1f23a130e4bdb0b09f57c30761a02a346b4db4037555048af2a293d66a
+distfiles="https://github.com/CastXML/CastXML/archive/refs/tags/v${version}.tar.gz"
+checksum=bb9024ec9ea5082e0d527f19bf3c2df79f1699f54b6cec168c024e727b32e6d1
post_install() {
rm -r ${DESTDIR}/usr/share/castxml/clang/include
From 4634152c07ff9a3239b41b14527afb7e97268b68 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:48:55 +0100
Subject: [PATCH 08/10] ccls: rebuild for llvm15
---
srcpkgs/ccls/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/ccls/template b/srcpkgs/ccls/template
index 82fa61933878..ecc9f3e38a5d 100644
--- a/srcpkgs/ccls/template
+++ b/srcpkgs/ccls/template
@@ -1,7 +1,7 @@
# Template file for 'ccls'
pkgname=ccls
version=0.20220729
-revision=1
+revision=2
build_style=cmake
hostmakedepends="clang-tools-extra"
makedepends="clang-tools-extra libxml2-devel llvm ncurses-devel rapidjson zlib-devel"
From 344403776bfe54b1e12f579d6b6daa3734165522 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:52:14 +0100
Subject: [PATCH 09/10] include-what-you-use: update to 0.19
---
srcpkgs/include-what-you-use/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/include-what-you-use/template b/srcpkgs/include-what-you-use/template
index d3655709c20c..1a30bc04bb2d 100644
--- a/srcpkgs/include-what-you-use/template
+++ b/srcpkgs/include-what-you-use/template
@@ -1,6 +1,6 @@
# Template file for 'include-what-you-use'
pkgname=include-what-you-use
-version=0.16
+version=0.19
revision=1
build_style=cmake
configure_args="-DIWYU_LLVM_ROOT_PATH=${XBPS_CROSS_BASE}/usr "
@@ -11,7 +11,7 @@ maintainer="Leah Neukirchen <leah@vuxu.org>"
license="NCSA"
homepage="https://include-what-you-use.org/"
distfiles="https://include-what-you-use.org/downloads/${pkgname}-${version}.src.tar.gz"
-checksum=8d6fc9b255343bc1e5ec459e39512df1d51c60e03562985e0076036119ff5a1c
+checksum=2b10157b60ea08adc08e3896b4921c73fcadd5ec4eb652b29a34129d501e5ee0
python_version=3
post_install() {
From e2459d3b620336891f4d70a3a0931e74e029289e Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 15:11:06 +0100
Subject: [PATCH 10/10] SPIRV-LLVM-Translator: update to 15.0.0
---
srcpkgs/SPIRV-LLVM-Translator/template | 13 +++++++------
1 file changed, 7 insertions(+), 6 deletions(-)
diff --git a/srcpkgs/SPIRV-LLVM-Translator/template b/srcpkgs/SPIRV-LLVM-Translator/template
index a2754e58c0e8..bee99f9bcbb2 100644
--- a/srcpkgs/SPIRV-LLVM-Translator/template
+++ b/srcpkgs/SPIRV-LLVM-Translator/template
@@ -1,19 +1,20 @@
# Template file for 'SPIRV-LLVM-Translator'
pkgname=SPIRV-LLVM-Translator
-version=12.0.0
-revision=2
+version=15.0.0
+revision=1
build_style=cmake
make_build_args="llvm-spirv"
configure_args="-Wno-dev -DLLVM_LINK_LLVM_DYLIB=ON -DCMAKE_SKIP_RPATH=ON
- -DLLVM_SPIRV_INCLUDE_TESTS=OFF -DBUILD_SHARED_LIBS=ON"
+ -DLLVM_SPIRV_INCLUDE_TESTS=OFF -DBUILD_SHARED_LIBS=ON
+ -DLLVM_EXTERNAL_SPIRV_HEADERS_SOURCE_DIR=/usr"
hostmakedepends="clang llvm"
-makedepends="clang-tools-extra llvm"
+makedepends="clang-tools-extra llvm SPIRV-Headers"
short_desc="API and commands for processing SPIR-V modules"
maintainer="Orphaned <orphan@voidlinux.org>"
license="NCSA"
homepage="https://github.com/KhronosGroup/SPIRV-LLVM-Translator"
-distfiles="https://github.com/KhronosGroup/${pkgname}/archive/refs/tags/v${version}.tar.gz"
-checksum=6e4fad04203f25fcde4c308c53e9f59bd05a390978992db3212d4b63aff62108
+distfiles="https://github.com/KhronosGroup/SPIRV-LLVM-Translator/archive/refs/tags/v${version}.tar.gz"
+checksum=b1bebd77f72988758c00852e78c2ddc545815a612169a0cb377d021e2f846d88
post_install() {
vlicense LICENSE.TXT
^ permalink raw reply [flat|nested] 96+ messages in thread
* Re: [PR REVIEW] [WIP] LLVM 15
2022-11-28 15:30 [PR PATCH] [WIP] LLVM 15 tranzystorek-io
` (37 preceding siblings ...)
2023-01-05 14:13 ` [PR PATCH] [Updated] " tranzystorek-io
@ 2023-01-06 12:39 ` tranzystorek-io
2023-01-06 12:56 ` [PR PATCH] [Updated] " tranzystorek-io
` (55 subsequent siblings)
94 siblings, 0 replies; 96+ messages in thread
From: tranzystorek-io @ 2023-01-06 12:39 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 209 bytes --]
New review comment by tranzystorek-io on void-packages repository
https://github.com/void-linux/void-packages/pull/40821#discussion_r1063404490
Comment:
The submodules have been removed from llvm12, thanks!
^ permalink raw reply [flat|nested] 96+ messages in thread
* Re: [PR PATCH] [Updated] [WIP] LLVM 15
2022-11-28 15:30 [PR PATCH] [WIP] LLVM 15 tranzystorek-io
` (38 preceding siblings ...)
2023-01-06 12:39 ` [PR REVIEW] " tranzystorek-io
@ 2023-01-06 12:56 ` tranzystorek-io
2023-01-06 16:15 ` tranzystorek-io
` (54 subsequent siblings)
94 siblings, 0 replies; 96+ messages in thread
From: tranzystorek-io @ 2023-01-06 12:56 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 699 bytes --]
There is an updated pull request by tranzystorek-io against master on the void-packages repository
https://github.com/tranzystorek-io/void-packages llvm15
https://github.com/void-linux/void-packages/pull/40821
[WIP] LLVM 15
[ci skip]
TODO:
- [ ] Adjust patches marked as `.patch.skip`
- [x] Make libomp a shlib (change so file name and install a symlink)
- [ ] Avoid creating triplet dirs under /usr/
TODO LLVM rdeps:
- [ ] clazy
- [ ] beignet
- [ ] ispc (1.18.1 supports LLVM `<= 14`)
- [ ] ldc (1.30.0 supports LLVM `<= 14`)
- [ ] ghdl (2.0.0 supports LLVM `<=14`)
- [ ] qt, qtcreator
A patch file from https://github.com/void-linux/void-packages/pull/40821.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-llvm15-40821.patch --]
[-- Type: text/x-diff, Size: 74013 bytes --]
From 63170afa46b67df47b4cc6d4dadcd54eb1661e24 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Sun, 18 Dec 2022 00:36:59 +0100
Subject: [PATCH 01/10] New package: llvm15-15.0.6
---
common/shlibs | 3 +
srcpkgs/libllvm15 | 1 +
.../llvm15/files/llvm-Config-llvm-config.h | 9 +
...clang-001-fix-unwind-chain-inclusion.patch | 44 ++
.../patches/clang-002-add-musl-triples.patch | 110 +++++
.../clang-003-ppc64-dynamic-linker-path.patch | 13 +
.../patches/clang-004-ppc64-musl-elfv2.patch | 48 ++
.../compiler-rt-sanitizer-ppc64-musl.patch | 35 ++
.../compiler-rt-xray-ppc64-musl.patch.skip | 62 +++
srcpkgs/llvm15/patches/libcxx-musl.patch | 26 ++
srcpkgs/llvm15/patches/libcxx-ppc.patch | 22 +
.../llvm15/patches/libcxx-ssp-nonshared.patch | 11 +
srcpkgs/llvm15/patches/libcxxabi-dl.patch | 25 +
srcpkgs/llvm15/patches/libcxxabi-musl.patch | 38 ++
srcpkgs/llvm15/patches/libomp-soname.patch | 12 +
.../llvm15/patches/libunwind-ppc32.patch.skip | 63 +++
srcpkgs/llvm15/patches/lldb-musl.patch | 40 ++
srcpkgs/llvm15/patches/llvm-001-musl.patch | 57 +++
.../patches/llvm-002-musl-ppc64-elfv2.patch | 30 ++
.../patches/llvm-003-ppc-secureplt.patch | 11 +
.../patches/llvm-004-override-opt.patch | 18 +
.../llvm15/patches/llvm-005-ppc-bigpic.patch | 36 ++
.../patches/llvm-006-aarch64-mf_exec.patch | 25 +
srcpkgs/llvm15/template | 428 ++++++++++++++++++
srcpkgs/llvm15/update | 3 +
25 files changed, 1170 insertions(+)
create mode 120000 srcpkgs/libllvm15
create mode 100644 srcpkgs/llvm15/files/llvm-Config-llvm-config.h
create mode 100644 srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch
create mode 100644 srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch
create mode 100644 srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch
create mode 100644 srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch
create mode 100644 srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch
create mode 100644 srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip
create mode 100644 srcpkgs/llvm15/patches/libcxx-musl.patch
create mode 100644 srcpkgs/llvm15/patches/libcxx-ppc.patch
create mode 100644 srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch
create mode 100644 srcpkgs/llvm15/patches/libcxxabi-dl.patch
create mode 100644 srcpkgs/llvm15/patches/libcxxabi-musl.patch
create mode 100644 srcpkgs/llvm15/patches/libomp-soname.patch
create mode 100644 srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip
create mode 100644 srcpkgs/llvm15/patches/lldb-musl.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-001-musl.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-004-override-opt.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch
create mode 100644 srcpkgs/llvm15/template
create mode 100644 srcpkgs/llvm15/update
diff --git a/common/shlibs b/common/shlibs
index f0917a476aa5..33c2dcdd3f43 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -990,6 +990,9 @@ libclang.so.12 libclang-12.0.0_1
libclang-cpp.so.12 libclang-cpp-12.0.0_1
libLLVM-11.so libllvm11-11.0.0_1
libLLVM-12.so libllvm12-12.0.0_1
+libLLVM-15.so libllvm15-15.0.6_1
+libomp.so.5 libomp-15.0.6_1
+libomptarget.so.15 libomp-15.0.6_1
libisofs.so.6 libisofs-0.6.24_1
libmpack.so.0 libmpack-1.0.5_1
libGeoIP.so.1 libgeoip-1.4.8_1
diff --git a/srcpkgs/libllvm15 b/srcpkgs/libllvm15
new file mode 120000
index 000000000000..ad57a969b9f9
--- /dev/null
+++ b/srcpkgs/libllvm15
@@ -0,0 +1 @@
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm15/files/llvm-Config-llvm-config.h b/srcpkgs/llvm15/files/llvm-Config-llvm-config.h
new file mode 100644
index 000000000000..2fa08c9be696
--- /dev/null
+++ b/srcpkgs/llvm15/files/llvm-Config-llvm-config.h
@@ -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
diff --git a/srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch b/srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch
new file mode 100644
index 000000000000..e4eaa7783e7a
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch
@@ -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
diff --git a/srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch b/srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch
new file mode 100644
index 000000000000..25688d40dbc2
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch
@@ -0,0 +1,110 @@
+--- a/clang/lib/Driver/ToolChains/Gnu.cpp
++++ b/clang/lib/Driver/ToolChains/Gnu.cpp
+@@ -2086,7 +2086,8 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
+ static const char *const ARMHFTriples[] = {"arm-linux-gnueabihf",
+ "armv7hl-redhat-linux-gnueabi",
+ "armv6hl-suse-linux-gnueabi",
+- "armv7hl-suse-linux-gnueabi"};
++ "armv7hl-suse-linux-gnueabi",
++ "armv7l-linux-gnueabihf"};
+ static const char *const ARMebLibDirs[] = {"/lib"};
+ static const char *const ARMebTriples[] = {"armeb-linux-gnueabi",
+ "armeb-linux-androideabi"};
+@@ -2153,8 +2154,7 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
+ "powerpc64-suse-linux", "powerpc-montavista-linuxspe"};
+ static const char *const PPCLELibDirs[] = {"/lib32", "/lib"};
+ static const char *const PPCLETriples[] = {"powerpcle-linux-gnu",
+- "powerpcle-unknown-linux-gnu",
+- "powerpcle-linux-musl"};
++ "powerpcle-unknown-linux-gnu"};
+
+ static const char *const PPC64LibDirs[] = {"/lib64", "/lib"};
+ static const char *const PPC64Triples[] = {
+@@ -2235,6 +2235,87 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
+ return;
+ }
+
++ if (TargetTriple.isMusl()) {
++ static const char *const AArch64MuslTriples[] = {"aarch64-linux-musl"};
++ static const char *const ARMHFMuslTriples[] = {
++ "arm-linux-musleabihf", "armv7l-linux-musleabihf"
++ };
++ static const char *const ARMMuslTriples[] = {"arm-linux-musleabi"};
++ static const char *const X86_64MuslTriples[] = {"x86_64-linux-musl"};
++ static const char *const X86MuslTriples[] = {"i686-linux-musl"};
++ static const char *const MIPSMuslTriples[] = {
++ "mips-linux-musl", "mipsel-linux-musl",
++ "mipsel-linux-muslhf", "mips-linux-muslhf"
++ };
++ static const char *const PPCMuslTriples[] = {"powerpc-linux-musl"};
++ static const char *const PPCLEMuslTriples[] = {"powerpcle-linux-musl"};
++ static const char *const PPC64MuslTriples[] = {"powerpc64-linux-musl"};
++ static const char *const PPC64LEMuslTriples[] = {"powerpc64le-linux-musl"};
++
++ switch (TargetTriple.getArch()) {
++ case llvm::Triple::aarch64:
++ LibDirs.append(begin(AArch64LibDirs), end(AArch64LibDirs));
++ TripleAliases.append(begin(AArch64MuslTriples), end(AArch64MuslTriples));
++ BiarchLibDirs.append(begin(AArch64LibDirs), end(AArch64LibDirs));
++ BiarchTripleAliases.append(begin(AArch64MuslTriples), end(AArch64MuslTriples));
++ break;
++ case llvm::Triple::arm:
++ LibDirs.append(begin(ARMLibDirs), end(ARMLibDirs));
++ if (TargetTriple.getEnvironment() == llvm::Triple::MuslEABIHF) {
++ TripleAliases.append(begin(ARMHFMuslTriples), end(ARMHFMuslTriples));
++ } else {
++ TripleAliases.append(begin(ARMMuslTriples), end(ARMMuslTriples));
++ }
++ break;
++ case llvm::Triple::x86_64:
++ LibDirs.append(begin(X86_64LibDirs), end(X86_64LibDirs));
++ TripleAliases.append(begin(X86_64MuslTriples), end(X86_64MuslTriples));
++ BiarchLibDirs.append(begin(X86LibDirs), end(X86LibDirs));
++ BiarchTripleAliases.append(begin(X86MuslTriples), end(X86MuslTriples));
++ break;
++ case llvm::Triple::x86:
++ LibDirs.append(begin(X86LibDirs), end(X86LibDirs));
++ TripleAliases.append(begin(X86MuslTriples), end(X86MuslTriples));
++ BiarchLibDirs.append(begin(X86_64LibDirs), end(X86_64LibDirs));
++ BiarchTripleAliases.append(begin(X86_64MuslTriples), end(X86_64MuslTriples));
++ break;
++ case llvm::Triple::mips:
++ LibDirs.append(begin(MIPSLibDirs), end(MIPSLibDirs));
++ TripleAliases.append(begin(MIPSMuslTriples), end(MIPSMuslTriples));
++ break;
++ case llvm::Triple::ppc:
++ LibDirs.append(begin(PPCLibDirs), end(PPCLibDirs));
++ TripleAliases.append(begin(PPCMuslTriples), end(PPCMuslTriples));
++ BiarchLibDirs.append(begin(PPC64LibDirs), end(PPC64LibDirs));
++ BiarchTripleAliases.append(begin(PPC64MuslTriples), end(PPC64MuslTriples));
++ break;
++ case llvm::Triple::ppcle:
++ LibDirs.append(begin(PPCLELibDirs), end(PPCLELibDirs));
++ TripleAliases.append(begin(PPCLEMuslTriples), end(PPCLEMuslTriples));
++ BiarchLibDirs.append(begin(PPC64LELibDirs), end(PPC64LELibDirs));
++ BiarchTripleAliases.append(begin(PPC64LEMuslTriples), end(PPC64LEMuslTriples));
++ break;
++ case llvm::Triple::ppc64:
++ LibDirs.append(begin(PPC64LibDirs), end(PPC64LibDirs));
++ TripleAliases.append(begin(PPC64MuslTriples), end(PPC64MuslTriples));
++ BiarchLibDirs.append(begin(PPCLibDirs), end(PPCLibDirs));
++ BiarchTripleAliases.append(begin(PPCMuslTriples), end(PPCMuslTriples));
++ break;
++ case llvm::Triple::ppc64le:
++ LibDirs.append(begin(PPC64LELibDirs), end(PPC64LELibDirs));
++ TripleAliases.append(begin(PPC64LEMuslTriples), end(PPC64LEMuslTriples));
++ BiarchLibDirs.append(begin(PPCLELibDirs), end(PPCLELibDirs));
++ BiarchTripleAliases.append(begin(PPCLEMuslTriples), end(PPCLEMuslTriples));
++ break;
++ default:
++ break;
++ }
++ TripleAliases.push_back(TargetTriple.str());
++ if (TargetTriple.str() != BiarchTriple.str())
++ BiarchTripleAliases.push_back(BiarchTriple.str());
++ return;
++ }
++
+ // Android targets should not use GNU/Linux tools or libraries.
+ if (TargetTriple.isAndroid()) {
+ static const char *const AArch64AndroidTriples[] = {
diff --git a/srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch b/srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch
new file mode 100644
index 000000000000..4ad6412d1e6c
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch
@@ -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 =
diff --git a/srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch b/srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch
new file mode 100644
index 000000000000..21fc8003c5f1
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch
@@ -0,0 +1,48 @@
+--- a/clang/lib/Basic/Targets/PPC.h
++++ b/clang/lib/Basic/Targets/PPC.h
+@@ -415,11 +415,10 @@ public:
+ LongDoubleFormat = &llvm::APFloat::IEEEdouble();
+ } else if ((Triple.getArch() == llvm::Triple::ppc64le)) {
+ DataLayout = "e-m:e-i64:64-n32:64";
+- ABI = "elfv2";
+ } else {
+ DataLayout = "E-m:e-i64:64-n32:64";
+- ABI = "elfv1";
+ }
++ ABI = "elfv2";
+
+ if (Triple.isOSFreeBSD() || Triple.isOSOpenBSD() || Triple.isMusl()) {
+ LongDoubleWidth = LongDoubleAlign = 64;
+--- a/clang/lib/CodeGen/TargetInfo.cpp
++++ b/clang/lib/CodeGen/TargetInfo.cpp
+@@ -10927,9 +10927,9 @@ const TargetCodeGenInfo &CodeGenModule::getTargetCodeGenInfo() {
+ return SetCGInfo(new AIXTargetCodeGenInfo(Types, /*Is64Bit*/ true));
+
+ if (Triple.isOSBinFormatELF()) {
+- PPC64_SVR4_ABIInfo::ABIKind Kind = PPC64_SVR4_ABIInfo::ELFv1;
+- if (getTarget().getABI() == "elfv2")
+- Kind = PPC64_SVR4_ABIInfo::ELFv2;
++ PPC64_SVR4_ABIInfo::ABIKind Kind = PPC64_SVR4_ABIInfo::ELFv2;
++ if (getTarget().getABI() == "elfv1")
++ Kind = PPC64_SVR4_ABIInfo::ELFv1;
+ bool IsSoftFloat = CodeGenOpts.FloatABI == "soft";
+
+ return SetCGInfo(
+--- a/clang/lib/Driver/ToolChains/Clang.cpp
++++ b/clang/lib/Driver/ToolChains/Clang.cpp
+@@ -1920,14 +1920,7 @@ void Clang::AddPPCTargetArgs(const ArgList &Args,
+ const llvm::Triple &T = getToolChain().getTriple();
+ if (T.isOSBinFormatELF()) {
+ switch (getToolChain().getArch()) {
+- case llvm::Triple::ppc64: {
+- if ((T.isOSFreeBSD() && T.getOSMajorVersion() >= 13) ||
+- T.isOSOpenBSD() || T.isMusl())
+- ABIName = "elfv2";
+- else
+- ABIName = "elfv1";
+- break;
+- }
++ case llvm::Triple::ppc64:
+ case llvm::Triple::ppc64le:
+ ABIName = "elfv2";
+ break;
diff --git a/srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch b/srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch
new file mode 100644
index 000000000000..360cfc1ba7f1
--- /dev/null
+++ b/srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch
@@ -0,0 +1,35 @@
+--- 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__) || SANITIZER_RISCV64
++ defined(__hexagon__) || defined(__powerpc__) || 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_ANDROID
++#if (defined(__aarch64__) || defined(__powerpc__) || SANITIZER_RISCV64) && !SANITIZER_ANDROID
+ // GLIBC 2.20+ sys/user does not include asm/ptrace.h
+ # include <asm/ptrace.h>
+ #endif
diff --git a/srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip b/srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip
new file mode 100644
index 000000000000..d0b61c80c897
--- /dev/null
+++ b/srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip
@@ -0,0 +1,62 @@
+--- a/compiler-rt/lib/xray/xray_powerpc64.inc
++++ b/compiler-rt/lib/xray/xray_powerpc64.inc
+@@ -12,7 +12,13 @@
+
+ #include <cstdint>
+ #include <mutex>
++#ifdef __GLIBC__
+ #include <sys/platform/ppc.h>
++#else
++#include <cctype>
++#include <cstring>
++#include <cstdlib>
++#endif
+
+ #include "xray_defs.h"
+
+@@ -20,13 +26,45 @@ namespace __xray {
+
+ ALWAYS_INLINE uint64_t readTSC(uint8_t &CPU) XRAY_NEVER_INSTRUMENT {
+ CPU = 0;
++#ifdef __GLIBC__
+ return __ppc_get_timebase();
++#else
++ return __builtin_ppc_get_timebase();
++#endif
+ }
+
+ inline uint64_t getTSCFrequency() XRAY_NEVER_INSTRUMENT {
+ static std::mutex M;
+ std::lock_guard<std::mutex> Guard(M);
++#ifdef __GLIBC__
+ return __ppc_get_timebase_freq();
++#else
++ /* FIXME: a less dirty implementation? */
++ static uint64_t base;
++ if (!base) {
++ FILE *f = fopen("/proc/cpuinfo", "rb");
++ if (f) {
++ ssize_t nr;
++ /* virtually always big enough to hold the line */
++ char buf[512];
++ while (fgets(buf, sizeof(buf), f)) {
++ char *ret = strstr(buf, "timebase");
++ if (!ret) {
++ continue;
++ }
++ ret += sizeof("timebase") - 1;
++ ret = strchr(ret, ':');
++ if (!ret) {
++ continue;
++ }
++ base = strtoul(ret + 1, nullptr, 10);
++ break;
++ }
++ fclose(f);
++ }
++ }
++ return base;
++#endif
+ }
+
+ inline bool probeRequiredCPUFeatures() XRAY_NEVER_INSTRUMENT {
diff --git a/srcpkgs/llvm15/patches/libcxx-musl.patch b/srcpkgs/llvm15/patches/libcxx-musl.patch
new file mode 100644
index 000000000000..bbd31ffc2cb1
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxx-musl.patch
@@ -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,
+ typename remove_reference<decltype(errno)>::type __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
+ typename remove_reference<decltype(errno)>::type __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,
+ typename remove_reference<decltype(errno)>::type __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
+ typename remove_reference<decltype(errno)>::type __current_errno = errno;
+ if (__current_errno == 0)
+ errno = __save_errno;
diff --git a/srcpkgs/llvm15/patches/libcxx-ppc.patch b/srcpkgs/llvm15/patches/libcxx-ppc.patch
new file mode 100644
index 000000000000..7a92f8004e1c
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxx-ppc.patch
@@ -0,0 +1,22 @@
+This ensures `is_iec559` is defined correctly under all long double ABIs,
+including musl and its 64-bit long double. Also, `__ppc__` or `__ppc64__`
+is not defined on gcc.
+
+--- a/libcxx/include/limits
++++ b/libcxx/include/limits
+@@ -426,8 +426,14 @@ protected:
+ _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type signaling_NaN() _NOEXCEPT {return __builtin_nansl("");}
+ _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type denorm_min() _NOEXCEPT {return __LDBL_DENORM_MIN__;}
+
+-#if (defined(__ppc__) || defined(__ppc64__))
++#if defined(__powerpc__) || defined(__powerpc64__)
++#if (__LDBL_MAX_EXP__ > __DBL_MAX_EXP__) || (__LDBL_MANT_DIG__ == __DBL_MANT_DIG__)
++ /* IEEE 754 quadruple or double precision */
++ static _LIBCPP_CONSTEXPR const bool is_iec559 = true;
++#else
++ /* 128-bit IBM double-double */
+ static _LIBCPP_CONSTEXPR const bool is_iec559 = false;
++#endif
+ #else
+ static _LIBCPP_CONSTEXPR const bool is_iec559 = true;
+ #endif
diff --git a/srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch b/srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch
new file mode 100644
index 000000000000..70292beb2fcd
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch
@@ -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()
diff --git a/srcpkgs/llvm15/patches/libcxxabi-dl.patch b/srcpkgs/llvm15/patches/libcxxabi-dl.patch
new file mode 100644
index 000000000000..3a15f9db8c98
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxxabi-dl.patch
@@ -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 @@
+ target_link_libraries(${target} PRIVATE m)
+ endif()
+
++ if (LIBCXX_HAS_C_LIB)
++ target_link_libraries(${target} PRIVATE dl)
++ endif()
++
+ if (LIBCXX_HAS_RT_LIB)
+ target_link_libraries(${target} PRIVATE rt)
+ endif()
diff --git a/srcpkgs/llvm15/patches/libcxxabi-musl.patch b/srcpkgs/llvm15/patches/libcxxabi-musl.patch
new file mode 100644
index 000000000000..7f89340b8bdf
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxxabi-musl.patch
@@ -0,0 +1,38 @@
+gcc does not support using abi_tag in an extern "C" declaration
+https://github.com/gcc-mirror/gcc/blob/cf59c8983ef6590f0d69014f8dc8778b5b7691c6/gcc/cp/tree.cc#L5354-L5359
+diff -rup libcxx/include/__support/musl/xlocale.h.orig libcxx/include/__support/musl/xlocale.h
+--- a/libcxx/include/__support/musl/xlocale.h.orig 2022-12-19 14:44:34.049044339 -0800
++++ b/libcxx/include/__support/musl/xlocale.h 2022-12-19 14:45:24.211247988 -0800
+@@ -24,27 +24,27 @@
+ extern "C" {
+ #endif
+
+-inline _LIBCPP_HIDE_FROM_ABI long long
++static inline long long
+ strtoll_l(const char *__nptr, char **__endptr, int __base, locale_t) {
+ return ::strtoll(__nptr, __endptr, __base);
+ }
+
+-inline _LIBCPP_HIDE_FROM_ABI unsigned long long
++static inline unsigned long long
+ strtoull_l(const char *__nptr, char **__endptr, int __base, locale_t) {
+ return ::strtoull(__nptr, __endptr, __base);
+ }
+
+-inline _LIBCPP_HIDE_FROM_ABI long long
++static inline long long
+ wcstoll_l(const wchar_t *__nptr, wchar_t **__endptr, int __base, locale_t) {
+ return ::wcstoll(__nptr, __endptr, __base);
+ }
+
+-inline _LIBCPP_HIDE_FROM_ABI long long
++static inline long long
+ wcstoull_l(const wchar_t *__nptr, wchar_t **__endptr, int __base, locale_t) {
+ return ::wcstoull(__nptr, __endptr, __base);
+ }
+
+-inline _LIBCPP_HIDE_FROM_ABI long double
++static inline long double
+ wcstold_l(const wchar_t *__nptr, wchar_t **__endptr, locale_t) {
+ return ::wcstold(__nptr, __endptr);
+ }
diff --git a/srcpkgs/llvm15/patches/libomp-soname.patch b/srcpkgs/llvm15/patches/libomp-soname.patch
new file mode 100644
index 000000000000..9a622cd9254c
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libomp-soname.patch
@@ -0,0 +1,12 @@
+diff --git a/openmp/runtime/src/CMakeLists.txt b/openmp/runtime/src/CMakeLists.txt
+index df1ca9d90..9d2c3b7b9 100644
+--- a/openmp/runtime/src/CMakeLists.txt
++++ b/openmp/runtime/src/CMakeLists.txt
+@@ -150,6 +150,7 @@ libomp_get_libflags(LIBOMP_CONFIGURED_LIBFLAGS)
+ # Build libomp library. Add LLVMSupport dependency if building in-tree with libomptarget profiling enabled.
+ if(OPENMP_STANDALONE_BUILD OR (NOT OPENMP_ENABLE_LIBOMP_PROFILING))
+ add_library(omp ${LIBOMP_LIBRARY_KIND} ${LIBOMP_SOURCE_FILES})
++ set_target_properties(omp PROPERTIES VERSION ${LIBOMP_VERSION_MAJOR} SOVERSION ${LIBOMP_VERSION_MAJOR})
+ # Linking command will include libraries in LIBOMP_CONFIGURED_LIBFLAGS
+ target_link_libraries(omp ${LIBOMP_CONFIGURED_LIBFLAGS} ${LIBOMP_DL_LIBS})
+ else()
diff --git a/srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip b/srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip
new file mode 100644
index 000000000000..74aa7576ecf9
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip
@@ -0,0 +1,63 @@
+This fixes build at least with gcc9 which does not define `__ppc__`.
+
+--- a/libunwind/include/__libunwind_config.h
++++ b/libunwind/include/__libunwind_config.h
+@@ -49,7 +49,7 @@
+ # define _LIBUNWIND_CONTEXT_SIZE 167
+ # define _LIBUNWIND_CURSOR_SIZE 179
+ # define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_PPC64
+-# elif defined(__ppc__)
++# elif defined(__powerpc__)
+ # define _LIBUNWIND_TARGET_PPC 1
+ # define _LIBUNWIND_CONTEXT_SIZE 117
+ # define _LIBUNWIND_CURSOR_SIZE 124
+--- a/libunwind/src/UnwindRegistersRestore.S
++++ b/libunwind/src/UnwindRegistersRestore.S
+@@ -392,7 +392,7 @@ Lnovec:
+ PPC64_LR(3)
+ bctr
+
+-#elif defined(__ppc__)
++#elif defined(__powerpc__)
+
+ DEFINE_LIBUNWIND_FUNCTION(_ZN9libunwind13Registers_ppc6jumptoEv)
+ //
+--- a/libunwind/src/UnwindRegistersSave.S
++++ b/libunwind/src/UnwindRegistersSave.S
+@@ -554,7 +554,7 @@ DEFINE_LIBUNWIND_FUNCTION(__unw_getcontext)
+ blr
+
+
+-#elif defined(__ppc__)
++#elif defined(__powerpc__)
+
+ //
+ // extern int unw_getcontext(unw_context_t* thread_state)
+--- a/libunwind/src/config.h
++++ b/libunwind/src/config.h
+@@ -95,12 +95,12 @@
+ #define _LIBUNWIND_BUILD_SJLJ_APIS
+ #endif
+
+-#if defined(__i386__) || defined(__x86_64__) || defined(__ppc__) || defined(__ppc64__) || defined(__powerpc64__)
++#if defined(__i386__) || defined(__x86_64__) || defined(__powerpc__) || defined(__powerpc64__)
+ #define _LIBUNWIND_SUPPORT_FRAME_APIS
+ #endif
+
+ #if defined(__i386__) || defined(__x86_64__) || \
+- defined(__ppc__) || defined(__ppc64__) || defined(__powerpc64__) || \
++ defined(__powerpc__) || defined(__powerpc64__) || \
+ (!defined(__APPLE__) && defined(__arm__)) || \
+ (defined(__arm64__) || defined(__aarch64__)) || \
+ defined(__mips__)
+--- a/libunwind/src/libunwind.cpp
++++ b/libunwind/src/libunwind.cpp
+@@ -42,7 +42,7 @@ _LIBUNWIND_HIDDEN int __unw_init_local(unw_cursor_t *cursor,
+ # define REGISTER_KIND Registers_x86_64
+ #elif defined(__powerpc64__)
+ # define REGISTER_KIND Registers_ppc64
+-#elif defined(__ppc__)
++#elif defined(__powerpc__)
+ # define REGISTER_KIND Registers_ppc
+ #elif defined(__aarch64__)
+ # define REGISTER_KIND Registers_arm64
diff --git a/srcpkgs/llvm15/patches/lldb-musl.patch b/srcpkgs/llvm15/patches/lldb-musl.patch
new file mode 100644
index 000000000000..026c5e1e61ba
--- /dev/null
+++ b/srcpkgs/llvm15/patches/lldb-musl.patch
@@ -0,0 +1,40 @@
+--- a/lldb/source/Plugins/Process/Linux/Procfs.h
++++ b/lldb/source/Plugins/Process/Linux/Procfs.h
+@@ -10,6 +10,7 @@
+ // sys/procfs.h on Android/Linux for all supported architectures.
+
+ #include <sys/ptrace.h>
++#include <asm/ptrace.h>
+
+ #include "lldb/lldb-types.h"
+
+@@ -17,23 +18,13 @@
+
+ #include <vector>
+
+-#ifdef __ANDROID__
+-#if defined(__arm64__) || defined(__aarch64__)
+-typedef unsigned long elf_greg_t;
+-typedef elf_greg_t
+- elf_gregset_t[(sizeof(struct user_pt_regs) / sizeof(elf_greg_t))];
+-typedef struct user_fpsimd_state elf_fpregset_t;
+-#ifndef NT_FPREGSET
+-#define NT_FPREGSET NT_PRFPREG
+-#endif // NT_FPREGSET
+-#elif defined(__mips__)
+-#ifndef NT_FPREGSET
+-#define NT_FPREGSET NT_PRFPREG
+-#endif // NT_FPREGSET
+-#endif
+-#else // __ANDROID__
++#if !defined(__GLIBC__) && defined(__powerpc__)
++#define pt_regs musl_pt_regs
++#include <sys/procfs.h>
++#undef pt_regs
++#else
+ #include <sys/procfs.h>
+-#endif // __ANDROID__
++#endif
+
+ namespace lldb_private {
+ namespace process_linux {
diff --git a/srcpkgs/llvm15/patches/llvm-001-musl.patch b/srcpkgs/llvm15/patches/llvm-001-musl.patch
new file mode 100644
index 000000000000..f2a3f8d62813
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-001-musl.patch
@@ -0,0 +1,57 @@
+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;
+diff --git a/lib/Support/Unix/DynamicLibrary.inc b/lib/Support/Unix/DynamicLibrary.inc
+index a2a37996..2f86c470 100644
+--- a/llvm/lib/Support/Unix/DynamicLibrary.inc
++++ b/llvm/lib/Support/Unix/DynamicLibrary.inc
+@@ -102,7 +102,7 @@ static void *DoSearch(const char* SymbolName) {
+
+ // This macro returns the address of a well-known, explicit symbol
+ #define EXPLICIT_SYMBOL(SYM) \
+- if (!strcmp(SymbolName, #SYM)) return &SYM
++ if (!strcmp(SymbolName, #SYM)) return (void *)&SYM
+
+ // Under glibc we have a weird situation. The stderr/out/in symbols are both
+ // macros and global variables because of standards requirements. So, we
+diff --git a/utils/unittest/googletest/src/gtest.cc b/utils/unittest/googletest/src/gtest.cc
+index d882ab2e..f1fb12d0 100644
+--- a/llvm/utils/unittest/googletest/src/gtest.cc
++++ b/llvm/utils/unittest/googletest/src/gtest.cc
+@@ -128,6 +128,7 @@
+
+ #if GTEST_CAN_STREAM_RESULTS_
+ # include <arpa/inet.h> // NOLINT
++# include <sys/socket.h> // NOLINT
+ # include <netdb.h> // NOLINT
+ # include <sys/socket.h> // NOLINT
+ # include <sys/types.h> // NOLINT
diff --git a/srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch b/srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch
new file mode 100644
index 000000000000..0071d964bd37
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch
@@ -0,0 +1,30 @@
+This patches LLVM to use ELFv2 on ppc64 unconditionally unless overridden. We
+need this because unlike most distros we use ELFv2 for both glibc and musl
+on big endian ppc64.
+
+diff --git a/lib/Target/PowerPC/PPCTargetMachine.cpp b/lib/Target/PowerPC/PPCTargetMachine.cpp
+index 0634833e..b7cbc2e7 100644
+--- a/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp
++++ b/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp
+@@ -222,9 +222,8 @@ static PPCTargetMachine::PPCABI computeTargetABI(const Triple &TT,
+
+ switch (TT.getArch()) {
+ case Triple::ppc64le:
+- return PPCTargetMachine::PPC_ABI_ELFv2;
+ case Triple::ppc64:
+- return PPCTargetMachine::PPC_ABI_ELFv1;
++ return PPCTargetMachine::PPC_ABI_ELFv2;
+ default:
+ return PPCTargetMachine::PPC_ABI_UNKNOWN;
+ }
+diff --git a/test/CodeGen/PowerPC/ppc64-elf-abi.ll b/test/CodeGen/PowerPC/ppc64-elf-abi.ll
+index 8b1cf6b5..296a2afa 100644
+--- a/llvm/test/CodeGen/PowerPC/ppc64-elf-abi.ll
++++ b/llvm/test/CodeGen/PowerPC/ppc64-elf-abi.ll
+@@ -1,4 +1,5 @@
+-; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv1
++; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv2
++; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-musl < %s | FileCheck %s -check-prefix=CHECK-ELFv2
+ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu -target-abi elfv1 < %s | FileCheck %s -check-prefix=CHECK-ELFv1
+ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu -target-abi elfv2 < %s | FileCheck %s -check-prefix=CHECK-ELFv2
+ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv2
diff --git a/srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch b/srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch
new file mode 100644
index 000000000000..b5d15974375d
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch
@@ -0,0 +1,11 @@
+--- a/llvm/lib/Target/PowerPC/PPCSubtarget.cpp
++++ b/llvm/lib/Target/PowerPC/PPCSubtarget.cpp
+@@ -165,7 +165,7 @@ void PPCSubtarget::initSubtargetFeatures(StringRef CPU, StringRef FS) {
+
+ if ((TargetTriple.isOSFreeBSD() && TargetTriple.getOSMajorVersion() >= 13) ||
+ TargetTriple.isOSNetBSD() || TargetTriple.isOSOpenBSD() ||
+- TargetTriple.isMusl())
++ isTargetLinux())
+ SecurePlt = true;
+
+ if (HasSPE && IsPPC64)
diff --git a/srcpkgs/llvm15/patches/llvm-004-override-opt.patch b/srcpkgs/llvm15/patches/llvm-004-override-opt.patch
new file mode 100644
index 000000000000..51d0e4b31b32
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-004-override-opt.patch
@@ -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)
diff --git a/srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch b/srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch
new file mode 100644
index 000000000000..d332687b9d92
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch
@@ -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);
diff --git a/srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch b/srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch
new file mode 100644
index 000000000000..a00abd216665
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch
@@ -0,0 +1,25 @@
+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__) || defined (__ppc__) || \
+- defined(_POWER) || defined(_ARCH_PPC))
++ defined(_POWER) || defined(_ARCH_PPC) || (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
diff --git a/srcpkgs/llvm15/template b/srcpkgs/llvm15/template
new file mode 100644
index 000000000000..db510bbd2477
--- /dev/null
+++ b/srcpkgs/llvm15/template
@@ -0,0 +1,428 @@
+# Template file for 'llvm15'
+pkgname=llvm15
+version=15.0.6
+revision=1
+build_wrksrc=llvm
+build_style=cmake
+configure_args="
+ -DCMAKE_BUILD_TYPE=Release -Wno-dev
+ -DENABLE_LINKER_BUILD_ID=YES
+ -DLLDB_USE_SYSTEM_SIX=YES
+ -DLIBCXX_CXX_ABI=libcxxabi
+ -DLIBCXX_ENABLE_STATIC_ABI_LIBRARY=YES
+ -DLIBCXXABI_USE_LLVM_UNWINDER=YES
+ -DLIBCXXABI_ENABLE_STATIC_UNWINDER=YES
+ -DLIBOMP_ENABLE_SHARED=YES
+ -DLIBOMP_INSTALL_ALIASES=NO
+ -DLLVM_INCLUDE_DOCS=YES
+ -DLLVM_BUILD_DOCS=YES
+ -DLLVM_ENABLE_SPHINX=YES
+ -DSPHINX_WARNINGS_AS_ERRORS=NO
+ -DLLVM_INSTALL_UTILS=YES
+ -DLLVM_BUILD_LLVM_DYLIB=YES
+ -DLLVM_LINK_LLVM_DYLIB=YES
+ -DLLVM_ENABLE_RTTI=YES
+ -DLLVM_ENABLE_FFI=YES
+ -DLLVM_BINUTILS_INCDIR=/usr/include"
+hostmakedepends="perl python3 zlib-devel libffi-devel swig python3-Sphinx
+ python3-recommonmark python3-sphinx-automodapi"
+makedepends="python3-devel zlib-devel elfutils-devel libffi-devel libedit-devel
+ libxml2-devel binutils-devel libatomic-devel"
+depends="libllvm15>=${version}_${revision}"
+short_desc="Low Level Virtual Machine"
+maintainer="Orphaned <orphan@voidlinux.org>"
+license="Apache-2.0"
+homepage="https://www.llvm.org"
+distfiles="https://github.com/llvm/llvm-project/releases/download/llvmorg-${version}/llvm-project-${version}.src.tar.xz"
+checksum=9d53ad04dc60cb7b30e810faf64c5ab8157dadef46c8766f67f286238256ff92
+lib32disabled=yes
+python_version=3
+
+if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
+ configure_args+=" -DLIBCXX_HAS_MUSL_LIBC=YES
+ -DCOMPILER_RT_BUILD_GWP_ASAN=OFF"
+fi
+
+# "operand out of range" assembler failures
+case "$XBPS_TARGET_MACHINE" in
+ ppc64*) ;;
+ ppc*) configure_args+=" -DCLANG_ENABLE_CLANGD=OFF" ;;
+esac
+
+_enabled_projects="clang;clang-tools-extra;compiler-rt;libcxx;libcxxabi;libunwind;lld"
+
+_lldb_enable=yes
+_libomp_enable=no
+
+case "$XBPS_TARGET_MACHINE" in
+ ppc64le*) ;;
+ ppc*|i686*) _lldb_enable=no ;;
+esac
+
+case "$XBPS_TARGET_MACHINE" in
+ x86_64*|aarch64*|ppc64*) _libomp_enable=yes;;
+esac
+
+subpackages="clang-tools-extra"
+
+# must go before clang
+if [ "$_libomp_enable" = "yes" ]; then
+ _enabled_projects+=";openmp"
+ subpackages+=" libomp libomp-devel"
+ # because of cmake nonsense referencing libomptarget.so.*
+ depends+=" libomp>=${version}_${revision}"
+fi
+
+subpackages+=" clang clang-analyzer libclang libclang-cpp
+ llvm-libunwind llvm-libunwind-devel libcxx libcxx-devel
+ libcxxabi libcxxabi-devel libllvm15"
+
+if [ "$_lldb_enable" = "yes" ]; then
+ # XXX fails to cross compile due to python
+ _enabled_projects+=";lldb"
+ subpackages+=" lldb lldb-devel"
+fi
+
+subpackages+=" lld lld-devel"
+
+configure_args+=" -DLLVM_ENABLE_PROJECTS=${_enabled_projects}"
+
+post_patch() {
+ if [ "$_lldb_enable" = "yes" ]; then
+ if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
+ vsed -i 's|__ptrace_request|int|g' \
+ ${wrksrc}/lldb/source/Plugins/Process/Linux/NativeProcessLinux.cpp
+ fi
+ # disable docs for lldb as they fail to generate
+ vsed -i '/add_subdirectory(docs)/d' \
+ ${wrksrc}/lldb/CMakeLists.txt
+ fi
+
+ # update config.guess for better platform detection
+ cp $XBPS_COMMONDIR/environment/configure/automake/config.guess \
+ ${wrksrc}/llvm/cmake
+
+ # fix linker failures on some archs
+ vsed -i 's,check_library_exists(gcc_s .*,set(LIBCXXABI_HAS_GCC_S_LIB ON),' \
+ ${wrksrc}/libcxxabi/cmake/config-ix.cmake
+ vsed -i 's,check_library_exists(gcc .*,set(LIBCXXABI_HAS_GCC_LIB ON),' \
+ ${wrksrc}/libcxxabi/cmake/config-ix.cmake
+
+ # need libssp_nonshared on some musl platforms (because of nodefaultlibs)
+ case "$XBPS_TARGET_MACHINE" in
+ ppc64*) ;;
+ ppc*-musl|i686-musl|mips*-musl)
+ vsed -i 's,^# Setup flags.$,add_library_flags(ssp_nonshared),' \
+ ${wrksrc}/libunwind/src/CMakeLists.txt
+ vsed -i 's,^# Setup flags.$,add_library_flags(ssp_nonshared),' \
+ ${wrksrc}/libcxxabi/src/CMakeLists.txt
+ vsed -i 's,#ssp,,' ${wrksrc}/libcxx/CMakeLists.txt
+ ;;
+ esac
+
+ case "$XBPS_TARGET_MACHINE" in
+ arm*-musl|i686-musl) # sanitizer code is broken since it duplicates some libc bits
+ vsed -i 's/set(COMPILER_RT_HAS_SANITIZER_COMMON TRUE)/set(COMPILER_RT_HAS_SANITIZER_COMMON FALSE)/' \
+ ${wrksrc}/compiler-rt/cmake/config-ix.cmake
+ ;;
+ esac
+}
+
+pre_configure() {
+ local triplet
+
+ # Vastly reduce size of debugging symbols:
+ CFLAGS=${CFLAGS/ -g/ -g1}
+ CXXFLAGS=${CXXFLAGS/ -g/ -g1}
+
+ # since gcc9, the build likes to blow up for ppc32 apparently because
+ # of clang being too large for a 24-bit relative call to the PLT, so
+ # optimize for size instead
+ case "$XBPS_TARGET_MACHINE" in
+ ppc64*) ;;
+ mips*-musl|ppc*) configure_args+=" -DVOID_CXX_OPT_FLAGS=-Os" ;;
+ esac
+
+ if [ "$CROSS_BUILD" ]; then
+ msg_normal "Building host tblgen\n"
+ mkdir -p build/HOST
+ cd build/HOST
+ CC="$BUILD_CC" CXX="$BUILD_CXX" CFLAGS="$BUILD_CFLAGS" \
+ CXXFLAGS="$BUILD_CXXFLAGS" LDFLAGS="$BUILD_LDFLAGS" \
+ cmake ../.. -DCMAKE_BUILD_TYPE=Release \
+ -DLLVM_ENABLE_PROJECTS=${_enabled_projects}
+ make ${makejobs} -C utils/TableGen
+ make ${makejobs} -C tools/clang/utils/TableGen
+ [ "$_lldb_enable" = "yes" ] && make ${makejobs} -C tools/lldb/utils/TableGen
+ configure_args+=" -DLLVM_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/llvm-tblgen"
+ configure_args+=" -DCLANG_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/clang-tblgen"
+ [ "$_lldb_enable" = "yes" ] && configure_args+=" -DLLDB_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/lldb-tblgen"
+ cd ../..
+ fi
+
+ case "$XBPS_TARGET_MACHINE" in
+ i686*) _arch="X86";;
+ x86_64*) _arch="X86";;
+ armv5*) _arch="Armv5te";;
+ armv6*) _arch="Armv6";;
+ armv7*) _arch="Armv7";;
+ aarch64*) _arch="AArch64";;
+ mips*) _arch="Mips";;
+ ppc*) _arch="PowerPC";;
+ riscv64*) _arch="RISCV64";;
+ esac
+
+ triplet=${XBPS_CROSS_TRIPLET:-$XBPS_TRIPLET}
+
+ configure_args+=" -DLLVM_TARGET_ARCH=${_arch}"
+ configure_args+=" -DLLVM_HOST_TRIPLE=${triplet}"
+ configure_args+=" -DLLVM_DEFAULT_TARGET_TRIPLE=${triplet}"
+}
+
+do_install() {
+ cd build
+ cmake -DCMAKE_INSTALL_PREFIX=${DESTDIR}/usr -P cmake_install.cmake
+
+ # Required for multilib.
+ if [ "$XBPS_TARGET_MACHINE" = "x86_64" ]; then
+ for _header in llvm-config; do
+ mv ${DESTDIR}/usr/include/llvm/Config/${_header}{,-64}.h
+ vinstall ${FILESDIR}/llvm-Config-${_header}.h 644 \
+ usr/include/llvm/Config ${_header}.h
+ done
+ fi
+
+ # Remove llvm-config-host in cross builds.
+ if [ "$CROSS_BUILD" ]; then
+ rm -f ${DESTDIR}/usr/bin/llvm-config-host
+ fi
+
+ # Install libcxxabi headers
+ vinstall ${wrksrc}/libcxxabi/include/__cxxabi_config.h 644 usr/include
+ vinstall ${wrksrc}/libcxxabi/include/cxxabi.h 644 usr/include
+
+ # Install libunwind headers
+ vinstall ${wrksrc}/libunwind/include/__libunwind_config.h 644 usr/include
+ vinstall ${wrksrc}/libunwind/include/libunwind.h 644 usr/include
+ vinstall ${wrksrc}/libunwind/include/unwind.h 644 usr/include
+ vinstall ${wrksrc}/libunwind/include/mach-o/compact_unwind_encoding.h \
+ 644 usr/include/mach-o
+}
+
+clang-analyzer_package() {
+ pycompile_dirs="usr/share/scan-view"
+ depends="clang-${version}_${revision} python3 perl"
+ short_desc+=" - A source code analysis framework"
+ homepage="https://clang-analyzer.llvm.org/"
+ pkg_install() {
+ vmove "usr/bin/scan-*"
+ vmove "usr/libexec/*analyzer"
+ vmove "usr/share/scan-*"
+ vmove usr/share/man/man1/scan-build.1
+ }
+}
+
+clang-tools-extra_package() {
+ lib32disabled=yes
+ depends="clang-${version}_${revision} python3"
+ short_desc+=" - Extra Clang tools"
+ homepage="https://clang.llvm.org/extra/"
+ pkg_install() {
+ vmove usr/bin/clang-apply-replacements
+ vmove usr/bin/clang-doc
+ vmove usr/bin/clang-include-fixer
+ vmove usr/bin/clang-query
+ vmove usr/bin/clang-rename
+ vmove usr/bin/clang-reorder-fields
+ vmove usr/bin/clang-tidy
+ vmove usr/bin/clangd
+ vmove usr/bin/diagtool
+ vmove usr/bin/find-all-symbols
+ vmove usr/bin/hmaptool
+ vmove usr/bin/modularize
+ vmove usr/bin/pp-trace
+ vmove usr/bin/sancov
+ vmove usr/include/clang-tidy
+ vmove "usr/lib/libclangApplyReplacements*"
+ vmove "usr/lib/libclangDoc*"
+ vmove "usr/lib/libclangIncludeFixer*"
+ vmove "usr/lib/libclangReorderFields*"
+ vmove "usr/lib/libclangQuery*"
+ vmove "usr/lib/libclangTidy*"
+ vmove "usr/share/clang/*include-fixer*"
+ vmove "usr/share/clang/*rename*"
+ vmove "usr/share/clang/*tidy*"
+ vmove usr/share/doc/LLVM/clang-tools
+ vmove usr/share/man/man1/diagtool.1
+ vmove usr/share/man/man1/extraclangtools.1
+ }
+}
+
+clang_package() {
+ lib32disabled=yes
+ depends="libstdc++-devel libgcc-devel binutils ${XBPS_TARGET_LIBC}-devel
+ libclang-${version}_${revision}"
+ short_desc+=" - C language family frontend"
+ homepage="https://clang.llvm.org/"
+ pkg_install() {
+ vmove "usr/bin/*clang*"
+ vmove usr/bin/c-index-test
+ vmove usr/include/clang
+ vmove usr/include/clang-c
+ vmove usr/lib/clang
+ vmove usr/lib/cmake/clang
+ vmove "usr/lib/libclang*.a"
+ vmove "usr/lib/libclang*.so"
+ vmove usr/share/clang
+ vmove usr/share/doc/LLVM/clang
+ vmove usr/share/man/man1/clang.1
+ }
+}
+
+libclang_package() {
+ short_desc+=" - C frontend runtime library"
+ pkg_install() {
+ vmove "usr/lib/libclang.so.*"
+ }
+}
+
+libclang-cpp_package() {
+ short_desc+=" - C frontend runtime library (C++ interface)"
+ pkg_install() {
+ vmove "usr/lib/libclang-cpp.so.*"
+ }
+}
+
+lld_package() {
+ lib32disabled=yes
+ short_desc+=" - linker"
+ homepage="https://lld.llvm.org"
+ pkg_install() {
+ vmove usr/bin/ld.lld*
+ vmove usr/bin/ld64.lld*
+ vmove usr/bin/lld*
+ vmove usr/bin/wasm-ld
+ vmove usr/share/doc/LLVM/lld
+ }
+}
+
+lld-devel_package() {
+ lib32disabled=yes
+ short_desc+=" - linker - development files"
+ homepage="https://lld.llvm.org"
+ depends="lld>=${version}_${revision}"
+ pkg_install() {
+ vmove usr/include/lld
+ vmove usr/lib/cmake/lld
+ vmove "usr/lib/liblld*a"
+ }
+}
+
+lldb_package() {
+ lib32disabled=yes
+ depends+=" python3-six"
+ short_desc+=" - LLDB debugger"
+ homepage="https://lldb.llvm.org/"
+ pkg_install() {
+ vmove usr/bin/*lldb*
+ vmove usr/lib/liblldb*so.*
+ vmove /usr/lib/python*
+ }
+}
+
+lldb-devel_package() {
+ lib32disabled=yes
+ depends="lldb>=${version}_${revision}"
+ short_desc+=" - LLDB debugger - development files"
+ pkg_install() {
+ vmove usr/include/lldb
+ vmove "usr/lib/liblldb*.so"
+ }
+}
+
+llvm-libunwind_package() {
+ short_desc+=" - libunwind"
+ pkg_install() {
+ vmove "usr/lib/${XBPS_TRIPLET}/libunwind.so.*"
+ }
+}
+
+llvm-libunwind-devel_package() {
+ short_desc+=" - libunwind - development files"
+ depends="llvm-libunwind>=${version}_${revision}"
+ conflicts="libunwind-devel>=0"
+ pkg_install() {
+ vmove usr/include/mach-o
+ vmove "usr/include/*unwind*"
+ vmove "usr/lib/${XBPS_TRIPLET}/libunwind.a"
+ vmove "usr/lib/${XBPS_TRIPLET}/libunwind.so"
+ vmove usr/share/doc/LLVM/libunwind
+ }
+}
+
+libcxxabi_package() {
+ short_desc+=" - low level support for libc++"
+ pkg_install() {
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++abi.so.*"
+ }
+}
+
+libcxxabi-devel_package() {
+ short_desc+=" - low level support for libc++ - development files"
+ depends="libcxxabi>=${version}_${revision}"
+ pkg_install() {
+ vmove "usr/include/*cxxabi*"
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++abi.so"
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++abi.a"
+ }
+}
+
+libcxx_package() {
+ short_desc+=" - C++ standard library"
+ pkg_install() {
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++.so.*"
+ }
+}
+
+libcxx-devel_package() {
+ short_desc+=" - C++ standard library - development files"
+ depends="libcxx>=${version}_${revision}"
+ pkg_install() {
+ vmove usr/include/c++
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++.so"
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++.a"
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++experimental.a"
+ vmove usr/share/doc/LLVM/libcxx
+ }
+}
+
+libomp_package() {
+ short_desc+=" - Clang OpenMP support library"
+ pkg_install() {
+ vmove usr/lib/libarcher.so
+ vmove usr/lib/libompd.so
+ vmove "usr/lib/libomptarget.rtl.*.so"
+ vmove "usr/lib/libomp*.so.*"
+ }
+}
+
+libomp-devel_package() {
+ short_desc+=" - Clang OpenMP support library - development files"
+ depends="libomp>=${version}_${revision}"
+ pkg_install() {
+ vmove "usr/include/omp*.h"
+ vmove "usr/lib/clang/${version}/include/omp*.h"
+ vmove "usr/lib/libarcher*"
+ vmove "usr/lib/libomp*.so"
+ vmove usr/lib/cmake/openmp
+ vmove usr/share/doc/LLVM/openmp
+ vmove usr/share/man/man1/llvmopenmp.1
+ }
+}
+
+libllvm15_package() {
+ short_desc+=" - runtime library"
+ pkg_install() {
+ vmove "usr/lib/libLLVM-*.so*"
+ }
+}
diff --git a/srcpkgs/llvm15/update b/srcpkgs/llvm15/update
new file mode 100644
index 000000000000..e95cf26b3586
--- /dev/null
+++ b/srcpkgs/llvm15/update
@@ -0,0 +1,3 @@
+site="https://github.com/llvm/llvm-project/releases"
+pattern="llvmorg-\K(\d+.){2}\d+(-rc\d+)?"
+ignore="*-rc*"
From d853a3fdcc302937e10b48d237646e9dcc76ba3e Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Sun, 18 Dec 2022 00:40:18 +0100
Subject: [PATCH 02/10] llvm: update to 15
---
common/shlibs | 6 +++---
srcpkgs/clang | 2 +-
srcpkgs/clang-analyzer | 2 +-
srcpkgs/clang-tools-extra | 2 +-
srcpkgs/libclang | 2 +-
srcpkgs/libclang-cpp | 2 +-
srcpkgs/libcxx | 2 +-
srcpkgs/libcxx-devel | 2 +-
srcpkgs/libcxxabi | 2 +-
srcpkgs/libcxxabi-devel | 2 +-
srcpkgs/libomp | 2 +-
srcpkgs/libomp-devel | 2 +-
srcpkgs/lld | 2 +-
srcpkgs/lld-devel | 2 +-
srcpkgs/lldb | 2 +-
srcpkgs/lldb-devel | 2 +-
srcpkgs/llvm-libunwind | 2 +-
srcpkgs/llvm-libunwind-devel | 2 +-
srcpkgs/llvm/template | 6 +++---
19 files changed, 23 insertions(+), 23 deletions(-)
diff --git a/common/shlibs b/common/shlibs
index 33c2dcdd3f43..9d0dc1c25cff 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -985,9 +985,9 @@ 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.12 lldb-12.0.0_1
-libclang.so.12 libclang-12.0.0_1
-libclang-cpp.so.12 libclang-cpp-12.0.0_1
+liblldb.so.15 lldb-15.0.6_1
+libclang.so.15 libclang-15.0.6_1
+libclang-cpp.so.15 libclang-cpp-15.0.6_1
libLLVM-11.so libllvm11-11.0.0_1
libLLVM-12.so libllvm12-12.0.0_1
libLLVM-15.so libllvm15-15.0.6_1
diff --git a/srcpkgs/clang b/srcpkgs/clang
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/clang
+++ b/srcpkgs/clang
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/clang-analyzer b/srcpkgs/clang-analyzer
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/clang-analyzer
+++ b/srcpkgs/clang-analyzer
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/clang-tools-extra b/srcpkgs/clang-tools-extra
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/clang-tools-extra
+++ b/srcpkgs/clang-tools-extra
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libclang b/srcpkgs/libclang
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libclang
+++ b/srcpkgs/libclang
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libclang-cpp b/srcpkgs/libclang-cpp
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libclang-cpp
+++ b/srcpkgs/libclang-cpp
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxx b/srcpkgs/libcxx
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxx
+++ b/srcpkgs/libcxx
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxx-devel b/srcpkgs/libcxx-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxx-devel
+++ b/srcpkgs/libcxx-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxxabi b/srcpkgs/libcxxabi
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxxabi
+++ b/srcpkgs/libcxxabi
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxxabi-devel b/srcpkgs/libcxxabi-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxxabi-devel
+++ b/srcpkgs/libcxxabi-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libomp b/srcpkgs/libomp
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libomp
+++ b/srcpkgs/libomp
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libomp-devel b/srcpkgs/libomp-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libomp-devel
+++ b/srcpkgs/libomp-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lld b/srcpkgs/lld
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lld
+++ b/srcpkgs/lld
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lld-devel b/srcpkgs/lld-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lld-devel
+++ b/srcpkgs/lld-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lldb b/srcpkgs/lldb
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lldb
+++ b/srcpkgs/lldb
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lldb-devel b/srcpkgs/lldb-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lldb-devel
+++ b/srcpkgs/lldb-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm-libunwind b/srcpkgs/llvm-libunwind
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/llvm-libunwind
+++ b/srcpkgs/llvm-libunwind
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm-libunwind-devel b/srcpkgs/llvm-libunwind-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/llvm-libunwind-devel
+++ b/srcpkgs/llvm-libunwind-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm/template b/srcpkgs/llvm/template
index a92db6f94f9f..fc1c850bd26f 100644
--- a/srcpkgs/llvm/template
+++ b/srcpkgs/llvm/template
@@ -1,11 +1,11 @@
# Template file for 'llvm'
pkgname=llvm
-version=12.0.0
+version=15
revision=1
build_style=meta
-depends="llvm12"
-replaces="llvm11>=0 llvm10>=0 llvm9>=0 llvm8>=0 llvm7>=0 llvm6.0>=0 llvm3.9>=0"
+depends="llvm15"
short_desc="LLVM meta package"
maintainer="Enno Boland <gottox@voidlinux.org>"
license="Public Domain"
homepage="https://www.voidlinux.org"
+replaces="llvm12>=0 llvm11>=0 llvm10>=0 llvm9>=0 llvm8>=0 llvm7>=0 llvm6.0>=0 llvm3.9>=0"
From d0eecab28039d4a54929aebeae7e53883851df56 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Sun, 18 Dec 2022 12:20:08 +0100
Subject: [PATCH 03/10] llvm12: remove bumped subpackages
---
srcpkgs/llvm12/template | 264 +---------------------------------------
1 file changed, 1 insertion(+), 263 deletions(-)
diff --git a/srcpkgs/llvm12/template b/srcpkgs/llvm12/template
index f8ea3ba641ae..aea0b43cf573 100644
--- a/srcpkgs/llvm12/template
+++ b/srcpkgs/llvm12/template
@@ -50,55 +50,7 @@ case "$XBPS_TARGET_MACHINE" in
ppc*) configure_args+=" -DCLANG_ENABLE_CLANGD=OFF" ;;
esac
-_enabled_projects="clang;clang-tools-extra;compiler-rt;libcxx;libcxxabi;libunwind;lld"
-
-_lldb_enable=yes
-_libomp_enable=no
-
-case "$XBPS_TARGET_MACHINE" in
- ppc64le*) ;;
- ppc*|i686*) _lldb_enable=no ;;
-esac
-
-case "$XBPS_TARGET_MACHINE" in
- x86_64*|aarch64*|ppc64*) _libomp_enable=yes;;
-esac
-
-subpackages="clang-tools-extra"
-
-# must go before clang
-if [ "$_libomp_enable" = "yes" ]; then
- _enabled_projects+=";openmp"
- subpackages+=" libomp libomp-devel"
- # because of cmake nonsense referencing libomptarget.so.*
- depends+=" libomp>=${version}_${revision}"
-fi
-
-subpackages+=" clang clang-analyzer libclang libclang-cpp
- llvm-libunwind llvm-libunwind-devel libcxx libcxx-devel
- libcxxabi libcxxabi-devel libllvm12"
-
-if [ "$_lldb_enable" = "yes" ]; then
- # XXX fails to cross compile due to python
- _enabled_projects+=";lldb"
- subpackages+=" lldb lldb-devel"
-fi
-
-subpackages+=" lld lld-devel"
-
-configure_args+=" -DLLVM_ENABLE_PROJECTS=${_enabled_projects}"
-
post_patch() {
- if [ "$_lldb_enable" = "yes" ]; then
- if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
- vsed -i 's|__ptrace_request|int|g' \
- ${wrksrc}/lldb/source/Plugins/Process/Linux/NativeProcessLinux.cpp
- fi
- # disable docs for lldb as they fail to generate
- vsed -i '/add_subdirectory(docs)/d' \
- ${wrksrc}/lldb/CMakeLists.txt
- fi
-
# update config.guess for better platform detection
cp $XBPS_COMMONDIR/environment/configure/automake/config.guess \
${wrksrc}/llvm/cmake
@@ -154,14 +106,12 @@ pre_configure() {
cd build/HOST
CC="$BUILD_CC" CXX="$BUILD_CXX" CFLAGS="$BUILD_CFLAGS" \
CXXFLAGS="$BUILD_CXXFLAGS" LDFLAGS="$BUILD_LDFLAGS" \
- cmake ../.. -DCMAKE_BUILD_TYPE=Release \
- -DLLVM_ENABLE_PROJECTS=${_enabled_projects}
+ cmake ../.. -DCMAKE_BUILD_TYPE=Release
make ${makejobs} -C utils/TableGen
make ${makejobs} -C tools/clang/utils/TableGen
[ "$_lldb_enable" = "yes" ] && make ${makejobs} -C tools/lldb/utils/TableGen
configure_args+=" -DLLVM_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/llvm-tblgen"
configure_args+=" -DCLANG_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/clang-tblgen"
- [ "$_lldb_enable" = "yes" ] && configure_args+=" -DLLDB_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/lldb-tblgen"
cd ../..
fi
@@ -201,218 +151,6 @@ do_install() {
if [ "$CROSS_BUILD" ]; then
rm -f ${DESTDIR}/usr/bin/llvm-config-host
fi
-
- # Install libcxxabi headers
- vinstall ${wrksrc}/libcxxabi/include/__cxxabi_config.h 644 usr/include
- vinstall ${wrksrc}/libcxxabi/include/cxxabi.h 644 usr/include
-
- # Install libunwind headers
- vinstall ${wrksrc}/libunwind/include/__libunwind_config.h 644 usr/include
- vinstall ${wrksrc}/libunwind/include/libunwind.h 644 usr/include
- vinstall ${wrksrc}/libunwind/include/unwind.h 644 usr/include
- vinstall ${wrksrc}/libunwind/include/mach-o/compact_unwind_encoding.h \
- 644 usr/include/mach-o
-}
-
-clang-analyzer_package() {
- pycompile_dirs="usr/share/scan-view"
- depends="clang-${version}_${revision} python3 perl"
- short_desc+=" - A source code analysis framework"
- homepage="https://clang-analyzer.llvm.org/"
- pkg_install() {
- vmove usr/share/man/man1/scan-build.1
- vmove "/usr/bin/scan-*"
- vmove "/usr/share/scan-*"
- vmove "/usr/libexec/*analyzer"
- }
-}
-
-clang-tools-extra_package() {
- lib32disabled=yes
- depends="clang-${version}_${revision} python3"
- short_desc+=" - Extra Clang tools"
- homepage="https://clang.llvm.org/extra/"
- pkg_install() {
- vmove usr/include/clang-tidy
- vmove usr/bin/clang-apply-replacements
- vmove usr/bin/clang-query
- vmove usr/bin/clang-rename
- vmove usr/bin/clang-tidy
- vmove usr/bin/diagtool
- vmove usr/bin/find-all-symbols
- vmove usr/bin/hmaptool
- vmove usr/bin/modularize
- vmove usr/bin/pp-trace
- vmove usr/bin/sancov
- vmove "usr/lib/libclangApplyReplacements*"
- vmove "usr/lib/libclangQuery*"
- vmove "usr/lib/libclangTidy*"
- vmove "usr/share/clang/*tidy*"
- vmove usr/share/doc/clang-tools
- vmove usr/share/man/man1/extraclangtools.1
- vmove usr/share/man/man1/diagtool.1
- }
-}
-
-clang_package() {
- lib32disabled=yes
- depends="libstdc++-devel libgcc-devel binutils ${XBPS_TARGET_LIBC}-devel
- libclang-${version}_${revision}"
- short_desc+=" - C language family frontend"
- homepage="https://clang.llvm.org/"
- pkg_install() {
- vmove usr/include/clang
- vmove usr/include/clang-c
- vmove "usr/bin/*clang*"
- vmove usr/bin/c-index-test
- vmove usr/lib/clang
- vmove usr/lib/cmake/clang
- vmove "usr/lib/libclang*.a"
- vmove "usr/lib/libclang*.so"
- vmove usr/share/clang
- vmove usr/share/doc/clang
- vmove usr/share/man/man1/clang.1
- }
-}
-
-libclang_package() {
- short_desc+=" - C frontend runtime library"
- pkg_install() {
- vmove "usr/lib/libclang.so.*"
- }
-}
-
-libclang-cpp_package() {
- short_desc+=" - C frontend runtime library (C++ interface)"
- pkg_install() {
- vmove "usr/lib/libclang-cpp.so.*"
- }
-}
-
-lld_package() {
- lib32disabled=yes
- short_desc+=" - linker"
- homepage="https://lld.llvm.org"
- pkg_install() {
- vmove usr/bin/lld*
- vmove usr/bin/wasm-ld
- vmove usr/bin/ld.lld*
- vmove usr/bin/ld64.lld*
- vmove usr/share/doc/lld
- }
-}
-
-lld-devel_package() {
- lib32disabled=yes
- short_desc+=" - linker - development files"
- homepage="https://lld.llvm.org"
- depends="lld>=${version}_${revision}"
- pkg_install() {
- vmove usr/include/lld
- vmove usr/lib/cmake/lld
- vmove "usr/lib/liblld*a"
- }
-}
-
-lldb_package() {
- lib32disabled=yes
- depends+=" python3-six"
- short_desc+=" - LLDB debugger"
- homepage="https://lldb.llvm.org/"
- pkg_install() {
- vmove usr/bin/*lldb*
- vmove usr/lib/liblldb*so.*
- vmove /usr/lib/python*
- }
-}
-
-lldb-devel_package() {
- lib32disabled=yes
- depends="lldb>=${version}_${revision}"
- short_desc+=" - LLDB debugger - development files"
- pkg_install() {
- vmove usr/include/lldb
- vmove "usr/lib/liblldb*.so"
- }
-}
-
-llvm-libunwind_package() {
- short_desc+=" - libunwind"
- pkg_install() {
- vmove "usr/lib/libunwind.so.*"
- }
-}
-
-llvm-libunwind-devel_package() {
- short_desc+=" - libunwind - development files"
- depends="llvm-libunwind>=${version}_${revision}"
- conflicts="libunwind-devel>=0"
- pkg_install() {
- vmove usr/lib/libunwind.so
- vmove usr/lib/libunwind.a
- vmove "usr/include/*unwind*"
- vmove usr/include/mach-o
- vmove usr/share/doc/libunwind
- }
-}
-
-libcxxabi_package() {
- short_desc+=" - low level support for libc++"
- pkg_install() {
- vmove "usr/lib/libc++abi.so.*"
- }
-}
-
-libcxxabi-devel_package() {
- short_desc+=" - low level support for libc++ - development files"
- depends="libcxxabi>=${version}_${revision}"
- pkg_install() {
- vmove usr/lib/libc++abi.so
- vmove usr/lib/libc++abi.a
- vmove "usr/include/*cxxabi*"
- }
-}
-
-libcxx_package() {
- short_desc+=" - C++ standard library"
- pkg_install() {
- vmove "usr/lib/libc++.so.*"
- }
-}
-
-libcxx-devel_package() {
- short_desc+=" - C++ standard library - development files"
- depends="libcxx>=${version}_${revision}"
- pkg_install() {
- vmove usr/lib/libc++.so
- vmove usr/lib/libc++.a
- vmove usr/lib/libc++experimental.a
- vmove usr/include/c++
- vmove usr/share/doc/libcxx
- }
-}
-
-libomp_package() {
- short_desc+=" - Clang OpenMP support library"
- pkg_install() {
- vmove usr/lib/libomp.so
- vmove "usr/lib/libomptarget.rtl.*.so"
- vmove usr/lib/libarcher.so
- vmove "usr/lib/libomp*.so.*"
- }
-}
-
-libomp-devel_package() {
- short_desc+=" - Clang OpenMP support library - development files"
- depends="libomp>=${version}_${revision}"
- pkg_install() {
- vmove "usr/lib/libomp*.so"
- vmove "usr/lib/libarcher*"
- vmove "usr/include/omp*.h"
- vmove "usr/lib/clang/${version}/include/omp*.h"
- vmove usr/share/man/man1/llvmopenmp.1
- vmove usr/share/doc/openmp
- }
}
libllvm12_package() {
From 6d69faefe1897edae9d93b3ab3d437d563f415b5 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:27:03 +0100
Subject: [PATCH 04/10] mesa: rebuild for llvm15
---
srcpkgs/mesa/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/mesa/template b/srcpkgs/mesa/template
index 4c3c9ec6039e..0641b28a80d6 100644
--- a/srcpkgs/mesa/template
+++ b/srcpkgs/mesa/template
@@ -1,7 +1,7 @@
# Template file for 'mesa'
pkgname=mesa
version=22.2.4
-revision=2
+revision=3
build_style=meson
configure_args="-Dglvnd=true -Dshared-glapi=enabled -Dgbm=enabled -Degl=enabled
-Dosmesa=true -Dgles1=enabled -Dgles2=enabled -Dglx=dri -Ddri3=enabled
From fd691eb26f96f2cdbb110d8189ac6c4f43e7b434 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:34:04 +0100
Subject: [PATCH 05/10] bcc: rebuild for llvm15
---
srcpkgs/bcc/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/bcc/template b/srcpkgs/bcc/template
index 168a67389bba..219ab9b50219 100644
--- a/srcpkgs/bcc/template
+++ b/srcpkgs/bcc/template
@@ -1,7 +1,7 @@
# Template file for 'bcc'
pkgname=bcc
version=0.25.0
-revision=2
+revision=3
build_style=cmake
configure_args="-DREVISION=${version} -DENABLE_LLVM_SHARED=1"
hostmakedepends="flex python3"
From 9c18635faba0f34851ae42328b2385b09e744a7f Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:37:25 +0100
Subject: [PATCH 06/10] bpftrace: rebuild for llvm15
---
srcpkgs/bpftrace/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/bpftrace/template b/srcpkgs/bpftrace/template
index 190cebb8e3bc..6c1b3386d358 100644
--- a/srcpkgs/bpftrace/template
+++ b/srcpkgs/bpftrace/template
@@ -1,7 +1,7 @@
# Template file for 'bpftrace'
pkgname=bpftrace
version=0.15.0
-revision=1
+revision=2
archs="x86_64* aarch64* ppc64*"
build_style=cmake
configure_args="-DBUILD_TESTING=OFF" # needs root to run
@@ -11,7 +11,7 @@ short_desc="High-level tracing language for Linux enhanced Berkeley Packet Filte
maintainer="Leah Neukirchen <leah@vuxu.org>"
license="Apache-2.0"
homepage="https://github.com/iovisor/bpftrace/"
-distfiles="https://github.com/iovisor/bpftrace/archive/v${version}.tar.gz"
+distfiles="https://github.com/iovisor/bpftrace/archive/refs/tags/v${version}.tar.gz"
checksum=64f67e615998d8150f5ee28614bea9ed303f20f6887bc4cdffa5f9c9477ef52a
nostrip=yes # needs to read own symbol table
From f83c63f58dd37208b4efe5c5e6909233b2414685 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:43:53 +0100
Subject: [PATCH 07/10] CastXML: rebuild for llvm15
---
srcpkgs/CastXML/template | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/srcpkgs/CastXML/template b/srcpkgs/CastXML/template
index 5d7d9503658c..28c424c78073 100644
--- a/srcpkgs/CastXML/template
+++ b/srcpkgs/CastXML/template
@@ -1,7 +1,7 @@
# Template file for 'CastXML'
pkgname=CastXML
version=0.4.6
-revision=1
+revision=2
build_style=cmake
configure_args="-DSPHINX_MAN=YES -DCastXML_INSTALL_MAN_DIR=share/man"
hostmakedepends="clang python3-Sphinx"
@@ -12,8 +12,8 @@ short_desc="C-family abstract syntax tree XML output tool"
maintainer="Evgeny Ermakov <evgeny.v.ermakov@gmail.com>"
license="Apache-2.0"
homepage="https://github.com/CastXML/CastXML"
-distfiles="https://github.com/CastXML/CastXML/archive/v${version}.tar.gz"
-checksum=8dcdbc1f23a130e4bdb0b09f57c30761a02a346b4db4037555048af2a293d66a
+distfiles="https://github.com/CastXML/CastXML/archive/refs/tags/v${version}.tar.gz"
+checksum=bb9024ec9ea5082e0d527f19bf3c2df79f1699f54b6cec168c024e727b32e6d1
post_install() {
rm -r ${DESTDIR}/usr/share/castxml/clang/include
From 0295fbeda543458631068bc0accf7802fad1e611 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:48:55 +0100
Subject: [PATCH 08/10] ccls: rebuild for llvm15
---
srcpkgs/ccls/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/ccls/template b/srcpkgs/ccls/template
index 82fa61933878..ecc9f3e38a5d 100644
--- a/srcpkgs/ccls/template
+++ b/srcpkgs/ccls/template
@@ -1,7 +1,7 @@
# Template file for 'ccls'
pkgname=ccls
version=0.20220729
-revision=1
+revision=2
build_style=cmake
hostmakedepends="clang-tools-extra"
makedepends="clang-tools-extra libxml2-devel llvm ncurses-devel rapidjson zlib-devel"
From 1486242530b7748f6d1e1599aad2eb1f08afd805 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:52:14 +0100
Subject: [PATCH 09/10] include-what-you-use: update to 0.19
---
srcpkgs/include-what-you-use/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/include-what-you-use/template b/srcpkgs/include-what-you-use/template
index d3655709c20c..1a30bc04bb2d 100644
--- a/srcpkgs/include-what-you-use/template
+++ b/srcpkgs/include-what-you-use/template
@@ -1,6 +1,6 @@
# Template file for 'include-what-you-use'
pkgname=include-what-you-use
-version=0.16
+version=0.19
revision=1
build_style=cmake
configure_args="-DIWYU_LLVM_ROOT_PATH=${XBPS_CROSS_BASE}/usr "
@@ -11,7 +11,7 @@ maintainer="Leah Neukirchen <leah@vuxu.org>"
license="NCSA"
homepage="https://include-what-you-use.org/"
distfiles="https://include-what-you-use.org/downloads/${pkgname}-${version}.src.tar.gz"
-checksum=8d6fc9b255343bc1e5ec459e39512df1d51c60e03562985e0076036119ff5a1c
+checksum=2b10157b60ea08adc08e3896b4921c73fcadd5ec4eb652b29a34129d501e5ee0
python_version=3
post_install() {
From 11d2d7c20a646304f57bcf24e4220f50db56b8d2 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 15:11:06 +0100
Subject: [PATCH 10/10] SPIRV-LLVM-Translator: update to 15.0.0
---
srcpkgs/SPIRV-LLVM-Translator/template | 13 +++++++------
1 file changed, 7 insertions(+), 6 deletions(-)
diff --git a/srcpkgs/SPIRV-LLVM-Translator/template b/srcpkgs/SPIRV-LLVM-Translator/template
index a2754e58c0e8..bee99f9bcbb2 100644
--- a/srcpkgs/SPIRV-LLVM-Translator/template
+++ b/srcpkgs/SPIRV-LLVM-Translator/template
@@ -1,19 +1,20 @@
# Template file for 'SPIRV-LLVM-Translator'
pkgname=SPIRV-LLVM-Translator
-version=12.0.0
-revision=2
+version=15.0.0
+revision=1
build_style=cmake
make_build_args="llvm-spirv"
configure_args="-Wno-dev -DLLVM_LINK_LLVM_DYLIB=ON -DCMAKE_SKIP_RPATH=ON
- -DLLVM_SPIRV_INCLUDE_TESTS=OFF -DBUILD_SHARED_LIBS=ON"
+ -DLLVM_SPIRV_INCLUDE_TESTS=OFF -DBUILD_SHARED_LIBS=ON
+ -DLLVM_EXTERNAL_SPIRV_HEADERS_SOURCE_DIR=/usr"
hostmakedepends="clang llvm"
-makedepends="clang-tools-extra llvm"
+makedepends="clang-tools-extra llvm SPIRV-Headers"
short_desc="API and commands for processing SPIR-V modules"
maintainer="Orphaned <orphan@voidlinux.org>"
license="NCSA"
homepage="https://github.com/KhronosGroup/SPIRV-LLVM-Translator"
-distfiles="https://github.com/KhronosGroup/${pkgname}/archive/refs/tags/v${version}.tar.gz"
-checksum=6e4fad04203f25fcde4c308c53e9f59bd05a390978992db3212d4b63aff62108
+distfiles="https://github.com/KhronosGroup/SPIRV-LLVM-Translator/archive/refs/tags/v${version}.tar.gz"
+checksum=b1bebd77f72988758c00852e78c2ddc545815a612169a0cb377d021e2f846d88
post_install() {
vlicense LICENSE.TXT
^ permalink raw reply [flat|nested] 96+ messages in thread
* Re: [PR PATCH] [Updated] [WIP] LLVM 15
2022-11-28 15:30 [PR PATCH] [WIP] LLVM 15 tranzystorek-io
` (39 preceding siblings ...)
2023-01-06 12:56 ` [PR PATCH] [Updated] " tranzystorek-io
@ 2023-01-06 16:15 ` tranzystorek-io
2023-01-07 10:31 ` tranzystorek-io
` (53 subsequent siblings)
94 siblings, 0 replies; 96+ messages in thread
From: tranzystorek-io @ 2023-01-06 16:15 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 772 bytes --]
There is an updated pull request by tranzystorek-io against master on the void-packages repository
https://github.com/tranzystorek-io/void-packages llvm15
https://github.com/void-linux/void-packages/pull/40821
[WIP] LLVM 15
[ci skip]
TODO:
- [ ] Adjust patches marked as `.patch.skip`
- [x] Make libomp a shlib (change so file name and install a symlink)
- [ ] Avoid creating triplet dirs under /usr/
TODO LLVM rdeps:
- [ ] clazy
- [ ] beignet
- [ ] ispc (1.18.1 supports LLVM `<= 14`)
- [ ] ldc (1.30.0 supports LLVM `<= 14`)
- [ ] ghdl (2.0.0 supports LLVM `<=14`)
- [ ] qt, qtcreator
- [ ] bpftrace (https://github.com/void-linux/void-packages/pull/39002)
A patch file from https://github.com/void-linux/void-packages/pull/40821.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-llvm15-40821.patch --]
[-- Type: text/x-diff, Size: 75356 bytes --]
From 63170afa46b67df47b4cc6d4dadcd54eb1661e24 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Sun, 18 Dec 2022 00:36:59 +0100
Subject: [PATCH 01/12] New package: llvm15-15.0.6
---
common/shlibs | 3 +
srcpkgs/libllvm15 | 1 +
.../llvm15/files/llvm-Config-llvm-config.h | 9 +
...clang-001-fix-unwind-chain-inclusion.patch | 44 ++
.../patches/clang-002-add-musl-triples.patch | 110 +++++
.../clang-003-ppc64-dynamic-linker-path.patch | 13 +
.../patches/clang-004-ppc64-musl-elfv2.patch | 48 ++
.../compiler-rt-sanitizer-ppc64-musl.patch | 35 ++
.../compiler-rt-xray-ppc64-musl.patch.skip | 62 +++
srcpkgs/llvm15/patches/libcxx-musl.patch | 26 ++
srcpkgs/llvm15/patches/libcxx-ppc.patch | 22 +
.../llvm15/patches/libcxx-ssp-nonshared.patch | 11 +
srcpkgs/llvm15/patches/libcxxabi-dl.patch | 25 +
srcpkgs/llvm15/patches/libcxxabi-musl.patch | 38 ++
srcpkgs/llvm15/patches/libomp-soname.patch | 12 +
.../llvm15/patches/libunwind-ppc32.patch.skip | 63 +++
srcpkgs/llvm15/patches/lldb-musl.patch | 40 ++
srcpkgs/llvm15/patches/llvm-001-musl.patch | 57 +++
.../patches/llvm-002-musl-ppc64-elfv2.patch | 30 ++
.../patches/llvm-003-ppc-secureplt.patch | 11 +
.../patches/llvm-004-override-opt.patch | 18 +
.../llvm15/patches/llvm-005-ppc-bigpic.patch | 36 ++
.../patches/llvm-006-aarch64-mf_exec.patch | 25 +
srcpkgs/llvm15/template | 428 ++++++++++++++++++
srcpkgs/llvm15/update | 3 +
25 files changed, 1170 insertions(+)
create mode 120000 srcpkgs/libllvm15
create mode 100644 srcpkgs/llvm15/files/llvm-Config-llvm-config.h
create mode 100644 srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch
create mode 100644 srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch
create mode 100644 srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch
create mode 100644 srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch
create mode 100644 srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch
create mode 100644 srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip
create mode 100644 srcpkgs/llvm15/patches/libcxx-musl.patch
create mode 100644 srcpkgs/llvm15/patches/libcxx-ppc.patch
create mode 100644 srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch
create mode 100644 srcpkgs/llvm15/patches/libcxxabi-dl.patch
create mode 100644 srcpkgs/llvm15/patches/libcxxabi-musl.patch
create mode 100644 srcpkgs/llvm15/patches/libomp-soname.patch
create mode 100644 srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip
create mode 100644 srcpkgs/llvm15/patches/lldb-musl.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-001-musl.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-004-override-opt.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch
create mode 100644 srcpkgs/llvm15/template
create mode 100644 srcpkgs/llvm15/update
diff --git a/common/shlibs b/common/shlibs
index f0917a476aa5..33c2dcdd3f43 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -990,6 +990,9 @@ libclang.so.12 libclang-12.0.0_1
libclang-cpp.so.12 libclang-cpp-12.0.0_1
libLLVM-11.so libllvm11-11.0.0_1
libLLVM-12.so libllvm12-12.0.0_1
+libLLVM-15.so libllvm15-15.0.6_1
+libomp.so.5 libomp-15.0.6_1
+libomptarget.so.15 libomp-15.0.6_1
libisofs.so.6 libisofs-0.6.24_1
libmpack.so.0 libmpack-1.0.5_1
libGeoIP.so.1 libgeoip-1.4.8_1
diff --git a/srcpkgs/libllvm15 b/srcpkgs/libllvm15
new file mode 120000
index 000000000000..ad57a969b9f9
--- /dev/null
+++ b/srcpkgs/libllvm15
@@ -0,0 +1 @@
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm15/files/llvm-Config-llvm-config.h b/srcpkgs/llvm15/files/llvm-Config-llvm-config.h
new file mode 100644
index 000000000000..2fa08c9be696
--- /dev/null
+++ b/srcpkgs/llvm15/files/llvm-Config-llvm-config.h
@@ -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
diff --git a/srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch b/srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch
new file mode 100644
index 000000000000..e4eaa7783e7a
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch
@@ -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
diff --git a/srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch b/srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch
new file mode 100644
index 000000000000..25688d40dbc2
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch
@@ -0,0 +1,110 @@
+--- a/clang/lib/Driver/ToolChains/Gnu.cpp
++++ b/clang/lib/Driver/ToolChains/Gnu.cpp
+@@ -2086,7 +2086,8 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
+ static const char *const ARMHFTriples[] = {"arm-linux-gnueabihf",
+ "armv7hl-redhat-linux-gnueabi",
+ "armv6hl-suse-linux-gnueabi",
+- "armv7hl-suse-linux-gnueabi"};
++ "armv7hl-suse-linux-gnueabi",
++ "armv7l-linux-gnueabihf"};
+ static const char *const ARMebLibDirs[] = {"/lib"};
+ static const char *const ARMebTriples[] = {"armeb-linux-gnueabi",
+ "armeb-linux-androideabi"};
+@@ -2153,8 +2154,7 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
+ "powerpc64-suse-linux", "powerpc-montavista-linuxspe"};
+ static const char *const PPCLELibDirs[] = {"/lib32", "/lib"};
+ static const char *const PPCLETriples[] = {"powerpcle-linux-gnu",
+- "powerpcle-unknown-linux-gnu",
+- "powerpcle-linux-musl"};
++ "powerpcle-unknown-linux-gnu"};
+
+ static const char *const PPC64LibDirs[] = {"/lib64", "/lib"};
+ static const char *const PPC64Triples[] = {
+@@ -2235,6 +2235,87 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
+ return;
+ }
+
++ if (TargetTriple.isMusl()) {
++ static const char *const AArch64MuslTriples[] = {"aarch64-linux-musl"};
++ static const char *const ARMHFMuslTriples[] = {
++ "arm-linux-musleabihf", "armv7l-linux-musleabihf"
++ };
++ static const char *const ARMMuslTriples[] = {"arm-linux-musleabi"};
++ static const char *const X86_64MuslTriples[] = {"x86_64-linux-musl"};
++ static const char *const X86MuslTriples[] = {"i686-linux-musl"};
++ static const char *const MIPSMuslTriples[] = {
++ "mips-linux-musl", "mipsel-linux-musl",
++ "mipsel-linux-muslhf", "mips-linux-muslhf"
++ };
++ static const char *const PPCMuslTriples[] = {"powerpc-linux-musl"};
++ static const char *const PPCLEMuslTriples[] = {"powerpcle-linux-musl"};
++ static const char *const PPC64MuslTriples[] = {"powerpc64-linux-musl"};
++ static const char *const PPC64LEMuslTriples[] = {"powerpc64le-linux-musl"};
++
++ switch (TargetTriple.getArch()) {
++ case llvm::Triple::aarch64:
++ LibDirs.append(begin(AArch64LibDirs), end(AArch64LibDirs));
++ TripleAliases.append(begin(AArch64MuslTriples), end(AArch64MuslTriples));
++ BiarchLibDirs.append(begin(AArch64LibDirs), end(AArch64LibDirs));
++ BiarchTripleAliases.append(begin(AArch64MuslTriples), end(AArch64MuslTriples));
++ break;
++ case llvm::Triple::arm:
++ LibDirs.append(begin(ARMLibDirs), end(ARMLibDirs));
++ if (TargetTriple.getEnvironment() == llvm::Triple::MuslEABIHF) {
++ TripleAliases.append(begin(ARMHFMuslTriples), end(ARMHFMuslTriples));
++ } else {
++ TripleAliases.append(begin(ARMMuslTriples), end(ARMMuslTriples));
++ }
++ break;
++ case llvm::Triple::x86_64:
++ LibDirs.append(begin(X86_64LibDirs), end(X86_64LibDirs));
++ TripleAliases.append(begin(X86_64MuslTriples), end(X86_64MuslTriples));
++ BiarchLibDirs.append(begin(X86LibDirs), end(X86LibDirs));
++ BiarchTripleAliases.append(begin(X86MuslTriples), end(X86MuslTriples));
++ break;
++ case llvm::Triple::x86:
++ LibDirs.append(begin(X86LibDirs), end(X86LibDirs));
++ TripleAliases.append(begin(X86MuslTriples), end(X86MuslTriples));
++ BiarchLibDirs.append(begin(X86_64LibDirs), end(X86_64LibDirs));
++ BiarchTripleAliases.append(begin(X86_64MuslTriples), end(X86_64MuslTriples));
++ break;
++ case llvm::Triple::mips:
++ LibDirs.append(begin(MIPSLibDirs), end(MIPSLibDirs));
++ TripleAliases.append(begin(MIPSMuslTriples), end(MIPSMuslTriples));
++ break;
++ case llvm::Triple::ppc:
++ LibDirs.append(begin(PPCLibDirs), end(PPCLibDirs));
++ TripleAliases.append(begin(PPCMuslTriples), end(PPCMuslTriples));
++ BiarchLibDirs.append(begin(PPC64LibDirs), end(PPC64LibDirs));
++ BiarchTripleAliases.append(begin(PPC64MuslTriples), end(PPC64MuslTriples));
++ break;
++ case llvm::Triple::ppcle:
++ LibDirs.append(begin(PPCLELibDirs), end(PPCLELibDirs));
++ TripleAliases.append(begin(PPCLEMuslTriples), end(PPCLEMuslTriples));
++ BiarchLibDirs.append(begin(PPC64LELibDirs), end(PPC64LELibDirs));
++ BiarchTripleAliases.append(begin(PPC64LEMuslTriples), end(PPC64LEMuslTriples));
++ break;
++ case llvm::Triple::ppc64:
++ LibDirs.append(begin(PPC64LibDirs), end(PPC64LibDirs));
++ TripleAliases.append(begin(PPC64MuslTriples), end(PPC64MuslTriples));
++ BiarchLibDirs.append(begin(PPCLibDirs), end(PPCLibDirs));
++ BiarchTripleAliases.append(begin(PPCMuslTriples), end(PPCMuslTriples));
++ break;
++ case llvm::Triple::ppc64le:
++ LibDirs.append(begin(PPC64LELibDirs), end(PPC64LELibDirs));
++ TripleAliases.append(begin(PPC64LEMuslTriples), end(PPC64LEMuslTriples));
++ BiarchLibDirs.append(begin(PPCLELibDirs), end(PPCLELibDirs));
++ BiarchTripleAliases.append(begin(PPCLEMuslTriples), end(PPCLEMuslTriples));
++ break;
++ default:
++ break;
++ }
++ TripleAliases.push_back(TargetTriple.str());
++ if (TargetTriple.str() != BiarchTriple.str())
++ BiarchTripleAliases.push_back(BiarchTriple.str());
++ return;
++ }
++
+ // Android targets should not use GNU/Linux tools or libraries.
+ if (TargetTriple.isAndroid()) {
+ static const char *const AArch64AndroidTriples[] = {
diff --git a/srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch b/srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch
new file mode 100644
index 000000000000..4ad6412d1e6c
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch
@@ -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 =
diff --git a/srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch b/srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch
new file mode 100644
index 000000000000..21fc8003c5f1
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch
@@ -0,0 +1,48 @@
+--- a/clang/lib/Basic/Targets/PPC.h
++++ b/clang/lib/Basic/Targets/PPC.h
+@@ -415,11 +415,10 @@ public:
+ LongDoubleFormat = &llvm::APFloat::IEEEdouble();
+ } else if ((Triple.getArch() == llvm::Triple::ppc64le)) {
+ DataLayout = "e-m:e-i64:64-n32:64";
+- ABI = "elfv2";
+ } else {
+ DataLayout = "E-m:e-i64:64-n32:64";
+- ABI = "elfv1";
+ }
++ ABI = "elfv2";
+
+ if (Triple.isOSFreeBSD() || Triple.isOSOpenBSD() || Triple.isMusl()) {
+ LongDoubleWidth = LongDoubleAlign = 64;
+--- a/clang/lib/CodeGen/TargetInfo.cpp
++++ b/clang/lib/CodeGen/TargetInfo.cpp
+@@ -10927,9 +10927,9 @@ const TargetCodeGenInfo &CodeGenModule::getTargetCodeGenInfo() {
+ return SetCGInfo(new AIXTargetCodeGenInfo(Types, /*Is64Bit*/ true));
+
+ if (Triple.isOSBinFormatELF()) {
+- PPC64_SVR4_ABIInfo::ABIKind Kind = PPC64_SVR4_ABIInfo::ELFv1;
+- if (getTarget().getABI() == "elfv2")
+- Kind = PPC64_SVR4_ABIInfo::ELFv2;
++ PPC64_SVR4_ABIInfo::ABIKind Kind = PPC64_SVR4_ABIInfo::ELFv2;
++ if (getTarget().getABI() == "elfv1")
++ Kind = PPC64_SVR4_ABIInfo::ELFv1;
+ bool IsSoftFloat = CodeGenOpts.FloatABI == "soft";
+
+ return SetCGInfo(
+--- a/clang/lib/Driver/ToolChains/Clang.cpp
++++ b/clang/lib/Driver/ToolChains/Clang.cpp
+@@ -1920,14 +1920,7 @@ void Clang::AddPPCTargetArgs(const ArgList &Args,
+ const llvm::Triple &T = getToolChain().getTriple();
+ if (T.isOSBinFormatELF()) {
+ switch (getToolChain().getArch()) {
+- case llvm::Triple::ppc64: {
+- if ((T.isOSFreeBSD() && T.getOSMajorVersion() >= 13) ||
+- T.isOSOpenBSD() || T.isMusl())
+- ABIName = "elfv2";
+- else
+- ABIName = "elfv1";
+- break;
+- }
++ case llvm::Triple::ppc64:
+ case llvm::Triple::ppc64le:
+ ABIName = "elfv2";
+ break;
diff --git a/srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch b/srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch
new file mode 100644
index 000000000000..360cfc1ba7f1
--- /dev/null
+++ b/srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch
@@ -0,0 +1,35 @@
+--- 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__) || SANITIZER_RISCV64
++ defined(__hexagon__) || defined(__powerpc__) || 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_ANDROID
++#if (defined(__aarch64__) || defined(__powerpc__) || SANITIZER_RISCV64) && !SANITIZER_ANDROID
+ // GLIBC 2.20+ sys/user does not include asm/ptrace.h
+ # include <asm/ptrace.h>
+ #endif
diff --git a/srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip b/srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip
new file mode 100644
index 000000000000..d0b61c80c897
--- /dev/null
+++ b/srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip
@@ -0,0 +1,62 @@
+--- a/compiler-rt/lib/xray/xray_powerpc64.inc
++++ b/compiler-rt/lib/xray/xray_powerpc64.inc
+@@ -12,7 +12,13 @@
+
+ #include <cstdint>
+ #include <mutex>
++#ifdef __GLIBC__
+ #include <sys/platform/ppc.h>
++#else
++#include <cctype>
++#include <cstring>
++#include <cstdlib>
++#endif
+
+ #include "xray_defs.h"
+
+@@ -20,13 +26,45 @@ namespace __xray {
+
+ ALWAYS_INLINE uint64_t readTSC(uint8_t &CPU) XRAY_NEVER_INSTRUMENT {
+ CPU = 0;
++#ifdef __GLIBC__
+ return __ppc_get_timebase();
++#else
++ return __builtin_ppc_get_timebase();
++#endif
+ }
+
+ inline uint64_t getTSCFrequency() XRAY_NEVER_INSTRUMENT {
+ static std::mutex M;
+ std::lock_guard<std::mutex> Guard(M);
++#ifdef __GLIBC__
+ return __ppc_get_timebase_freq();
++#else
++ /* FIXME: a less dirty implementation? */
++ static uint64_t base;
++ if (!base) {
++ FILE *f = fopen("/proc/cpuinfo", "rb");
++ if (f) {
++ ssize_t nr;
++ /* virtually always big enough to hold the line */
++ char buf[512];
++ while (fgets(buf, sizeof(buf), f)) {
++ char *ret = strstr(buf, "timebase");
++ if (!ret) {
++ continue;
++ }
++ ret += sizeof("timebase") - 1;
++ ret = strchr(ret, ':');
++ if (!ret) {
++ continue;
++ }
++ base = strtoul(ret + 1, nullptr, 10);
++ break;
++ }
++ fclose(f);
++ }
++ }
++ return base;
++#endif
+ }
+
+ inline bool probeRequiredCPUFeatures() XRAY_NEVER_INSTRUMENT {
diff --git a/srcpkgs/llvm15/patches/libcxx-musl.patch b/srcpkgs/llvm15/patches/libcxx-musl.patch
new file mode 100644
index 000000000000..bbd31ffc2cb1
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxx-musl.patch
@@ -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,
+ typename remove_reference<decltype(errno)>::type __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
+ typename remove_reference<decltype(errno)>::type __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,
+ typename remove_reference<decltype(errno)>::type __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
+ typename remove_reference<decltype(errno)>::type __current_errno = errno;
+ if (__current_errno == 0)
+ errno = __save_errno;
diff --git a/srcpkgs/llvm15/patches/libcxx-ppc.patch b/srcpkgs/llvm15/patches/libcxx-ppc.patch
new file mode 100644
index 000000000000..7a92f8004e1c
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxx-ppc.patch
@@ -0,0 +1,22 @@
+This ensures `is_iec559` is defined correctly under all long double ABIs,
+including musl and its 64-bit long double. Also, `__ppc__` or `__ppc64__`
+is not defined on gcc.
+
+--- a/libcxx/include/limits
++++ b/libcxx/include/limits
+@@ -426,8 +426,14 @@ protected:
+ _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type signaling_NaN() _NOEXCEPT {return __builtin_nansl("");}
+ _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type denorm_min() _NOEXCEPT {return __LDBL_DENORM_MIN__;}
+
+-#if (defined(__ppc__) || defined(__ppc64__))
++#if defined(__powerpc__) || defined(__powerpc64__)
++#if (__LDBL_MAX_EXP__ > __DBL_MAX_EXP__) || (__LDBL_MANT_DIG__ == __DBL_MANT_DIG__)
++ /* IEEE 754 quadruple or double precision */
++ static _LIBCPP_CONSTEXPR const bool is_iec559 = true;
++#else
++ /* 128-bit IBM double-double */
+ static _LIBCPP_CONSTEXPR const bool is_iec559 = false;
++#endif
+ #else
+ static _LIBCPP_CONSTEXPR const bool is_iec559 = true;
+ #endif
diff --git a/srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch b/srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch
new file mode 100644
index 000000000000..70292beb2fcd
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch
@@ -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()
diff --git a/srcpkgs/llvm15/patches/libcxxabi-dl.patch b/srcpkgs/llvm15/patches/libcxxabi-dl.patch
new file mode 100644
index 000000000000..3a15f9db8c98
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxxabi-dl.patch
@@ -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 @@
+ target_link_libraries(${target} PRIVATE m)
+ endif()
+
++ if (LIBCXX_HAS_C_LIB)
++ target_link_libraries(${target} PRIVATE dl)
++ endif()
++
+ if (LIBCXX_HAS_RT_LIB)
+ target_link_libraries(${target} PRIVATE rt)
+ endif()
diff --git a/srcpkgs/llvm15/patches/libcxxabi-musl.patch b/srcpkgs/llvm15/patches/libcxxabi-musl.patch
new file mode 100644
index 000000000000..7f89340b8bdf
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxxabi-musl.patch
@@ -0,0 +1,38 @@
+gcc does not support using abi_tag in an extern "C" declaration
+https://github.com/gcc-mirror/gcc/blob/cf59c8983ef6590f0d69014f8dc8778b5b7691c6/gcc/cp/tree.cc#L5354-L5359
+diff -rup libcxx/include/__support/musl/xlocale.h.orig libcxx/include/__support/musl/xlocale.h
+--- a/libcxx/include/__support/musl/xlocale.h.orig 2022-12-19 14:44:34.049044339 -0800
++++ b/libcxx/include/__support/musl/xlocale.h 2022-12-19 14:45:24.211247988 -0800
+@@ -24,27 +24,27 @@
+ extern "C" {
+ #endif
+
+-inline _LIBCPP_HIDE_FROM_ABI long long
++static inline long long
+ strtoll_l(const char *__nptr, char **__endptr, int __base, locale_t) {
+ return ::strtoll(__nptr, __endptr, __base);
+ }
+
+-inline _LIBCPP_HIDE_FROM_ABI unsigned long long
++static inline unsigned long long
+ strtoull_l(const char *__nptr, char **__endptr, int __base, locale_t) {
+ return ::strtoull(__nptr, __endptr, __base);
+ }
+
+-inline _LIBCPP_HIDE_FROM_ABI long long
++static inline long long
+ wcstoll_l(const wchar_t *__nptr, wchar_t **__endptr, int __base, locale_t) {
+ return ::wcstoll(__nptr, __endptr, __base);
+ }
+
+-inline _LIBCPP_HIDE_FROM_ABI long long
++static inline long long
+ wcstoull_l(const wchar_t *__nptr, wchar_t **__endptr, int __base, locale_t) {
+ return ::wcstoull(__nptr, __endptr, __base);
+ }
+
+-inline _LIBCPP_HIDE_FROM_ABI long double
++static inline long double
+ wcstold_l(const wchar_t *__nptr, wchar_t **__endptr, locale_t) {
+ return ::wcstold(__nptr, __endptr);
+ }
diff --git a/srcpkgs/llvm15/patches/libomp-soname.patch b/srcpkgs/llvm15/patches/libomp-soname.patch
new file mode 100644
index 000000000000..9a622cd9254c
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libomp-soname.patch
@@ -0,0 +1,12 @@
+diff --git a/openmp/runtime/src/CMakeLists.txt b/openmp/runtime/src/CMakeLists.txt
+index df1ca9d90..9d2c3b7b9 100644
+--- a/openmp/runtime/src/CMakeLists.txt
++++ b/openmp/runtime/src/CMakeLists.txt
+@@ -150,6 +150,7 @@ libomp_get_libflags(LIBOMP_CONFIGURED_LIBFLAGS)
+ # Build libomp library. Add LLVMSupport dependency if building in-tree with libomptarget profiling enabled.
+ if(OPENMP_STANDALONE_BUILD OR (NOT OPENMP_ENABLE_LIBOMP_PROFILING))
+ add_library(omp ${LIBOMP_LIBRARY_KIND} ${LIBOMP_SOURCE_FILES})
++ set_target_properties(omp PROPERTIES VERSION ${LIBOMP_VERSION_MAJOR} SOVERSION ${LIBOMP_VERSION_MAJOR})
+ # Linking command will include libraries in LIBOMP_CONFIGURED_LIBFLAGS
+ target_link_libraries(omp ${LIBOMP_CONFIGURED_LIBFLAGS} ${LIBOMP_DL_LIBS})
+ else()
diff --git a/srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip b/srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip
new file mode 100644
index 000000000000..74aa7576ecf9
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip
@@ -0,0 +1,63 @@
+This fixes build at least with gcc9 which does not define `__ppc__`.
+
+--- a/libunwind/include/__libunwind_config.h
++++ b/libunwind/include/__libunwind_config.h
+@@ -49,7 +49,7 @@
+ # define _LIBUNWIND_CONTEXT_SIZE 167
+ # define _LIBUNWIND_CURSOR_SIZE 179
+ # define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_PPC64
+-# elif defined(__ppc__)
++# elif defined(__powerpc__)
+ # define _LIBUNWIND_TARGET_PPC 1
+ # define _LIBUNWIND_CONTEXT_SIZE 117
+ # define _LIBUNWIND_CURSOR_SIZE 124
+--- a/libunwind/src/UnwindRegistersRestore.S
++++ b/libunwind/src/UnwindRegistersRestore.S
+@@ -392,7 +392,7 @@ Lnovec:
+ PPC64_LR(3)
+ bctr
+
+-#elif defined(__ppc__)
++#elif defined(__powerpc__)
+
+ DEFINE_LIBUNWIND_FUNCTION(_ZN9libunwind13Registers_ppc6jumptoEv)
+ //
+--- a/libunwind/src/UnwindRegistersSave.S
++++ b/libunwind/src/UnwindRegistersSave.S
+@@ -554,7 +554,7 @@ DEFINE_LIBUNWIND_FUNCTION(__unw_getcontext)
+ blr
+
+
+-#elif defined(__ppc__)
++#elif defined(__powerpc__)
+
+ //
+ // extern int unw_getcontext(unw_context_t* thread_state)
+--- a/libunwind/src/config.h
++++ b/libunwind/src/config.h
+@@ -95,12 +95,12 @@
+ #define _LIBUNWIND_BUILD_SJLJ_APIS
+ #endif
+
+-#if defined(__i386__) || defined(__x86_64__) || defined(__ppc__) || defined(__ppc64__) || defined(__powerpc64__)
++#if defined(__i386__) || defined(__x86_64__) || defined(__powerpc__) || defined(__powerpc64__)
+ #define _LIBUNWIND_SUPPORT_FRAME_APIS
+ #endif
+
+ #if defined(__i386__) || defined(__x86_64__) || \
+- defined(__ppc__) || defined(__ppc64__) || defined(__powerpc64__) || \
++ defined(__powerpc__) || defined(__powerpc64__) || \
+ (!defined(__APPLE__) && defined(__arm__)) || \
+ (defined(__arm64__) || defined(__aarch64__)) || \
+ defined(__mips__)
+--- a/libunwind/src/libunwind.cpp
++++ b/libunwind/src/libunwind.cpp
+@@ -42,7 +42,7 @@ _LIBUNWIND_HIDDEN int __unw_init_local(unw_cursor_t *cursor,
+ # define REGISTER_KIND Registers_x86_64
+ #elif defined(__powerpc64__)
+ # define REGISTER_KIND Registers_ppc64
+-#elif defined(__ppc__)
++#elif defined(__powerpc__)
+ # define REGISTER_KIND Registers_ppc
+ #elif defined(__aarch64__)
+ # define REGISTER_KIND Registers_arm64
diff --git a/srcpkgs/llvm15/patches/lldb-musl.patch b/srcpkgs/llvm15/patches/lldb-musl.patch
new file mode 100644
index 000000000000..026c5e1e61ba
--- /dev/null
+++ b/srcpkgs/llvm15/patches/lldb-musl.patch
@@ -0,0 +1,40 @@
+--- a/lldb/source/Plugins/Process/Linux/Procfs.h
++++ b/lldb/source/Plugins/Process/Linux/Procfs.h
+@@ -10,6 +10,7 @@
+ // sys/procfs.h on Android/Linux for all supported architectures.
+
+ #include <sys/ptrace.h>
++#include <asm/ptrace.h>
+
+ #include "lldb/lldb-types.h"
+
+@@ -17,23 +18,13 @@
+
+ #include <vector>
+
+-#ifdef __ANDROID__
+-#if defined(__arm64__) || defined(__aarch64__)
+-typedef unsigned long elf_greg_t;
+-typedef elf_greg_t
+- elf_gregset_t[(sizeof(struct user_pt_regs) / sizeof(elf_greg_t))];
+-typedef struct user_fpsimd_state elf_fpregset_t;
+-#ifndef NT_FPREGSET
+-#define NT_FPREGSET NT_PRFPREG
+-#endif // NT_FPREGSET
+-#elif defined(__mips__)
+-#ifndef NT_FPREGSET
+-#define NT_FPREGSET NT_PRFPREG
+-#endif // NT_FPREGSET
+-#endif
+-#else // __ANDROID__
++#if !defined(__GLIBC__) && defined(__powerpc__)
++#define pt_regs musl_pt_regs
++#include <sys/procfs.h>
++#undef pt_regs
++#else
+ #include <sys/procfs.h>
+-#endif // __ANDROID__
++#endif
+
+ namespace lldb_private {
+ namespace process_linux {
diff --git a/srcpkgs/llvm15/patches/llvm-001-musl.patch b/srcpkgs/llvm15/patches/llvm-001-musl.patch
new file mode 100644
index 000000000000..f2a3f8d62813
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-001-musl.patch
@@ -0,0 +1,57 @@
+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;
+diff --git a/lib/Support/Unix/DynamicLibrary.inc b/lib/Support/Unix/DynamicLibrary.inc
+index a2a37996..2f86c470 100644
+--- a/llvm/lib/Support/Unix/DynamicLibrary.inc
++++ b/llvm/lib/Support/Unix/DynamicLibrary.inc
+@@ -102,7 +102,7 @@ static void *DoSearch(const char* SymbolName) {
+
+ // This macro returns the address of a well-known, explicit symbol
+ #define EXPLICIT_SYMBOL(SYM) \
+- if (!strcmp(SymbolName, #SYM)) return &SYM
++ if (!strcmp(SymbolName, #SYM)) return (void *)&SYM
+
+ // Under glibc we have a weird situation. The stderr/out/in symbols are both
+ // macros and global variables because of standards requirements. So, we
+diff --git a/utils/unittest/googletest/src/gtest.cc b/utils/unittest/googletest/src/gtest.cc
+index d882ab2e..f1fb12d0 100644
+--- a/llvm/utils/unittest/googletest/src/gtest.cc
++++ b/llvm/utils/unittest/googletest/src/gtest.cc
+@@ -128,6 +128,7 @@
+
+ #if GTEST_CAN_STREAM_RESULTS_
+ # include <arpa/inet.h> // NOLINT
++# include <sys/socket.h> // NOLINT
+ # include <netdb.h> // NOLINT
+ # include <sys/socket.h> // NOLINT
+ # include <sys/types.h> // NOLINT
diff --git a/srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch b/srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch
new file mode 100644
index 000000000000..0071d964bd37
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch
@@ -0,0 +1,30 @@
+This patches LLVM to use ELFv2 on ppc64 unconditionally unless overridden. We
+need this because unlike most distros we use ELFv2 for both glibc and musl
+on big endian ppc64.
+
+diff --git a/lib/Target/PowerPC/PPCTargetMachine.cpp b/lib/Target/PowerPC/PPCTargetMachine.cpp
+index 0634833e..b7cbc2e7 100644
+--- a/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp
++++ b/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp
+@@ -222,9 +222,8 @@ static PPCTargetMachine::PPCABI computeTargetABI(const Triple &TT,
+
+ switch (TT.getArch()) {
+ case Triple::ppc64le:
+- return PPCTargetMachine::PPC_ABI_ELFv2;
+ case Triple::ppc64:
+- return PPCTargetMachine::PPC_ABI_ELFv1;
++ return PPCTargetMachine::PPC_ABI_ELFv2;
+ default:
+ return PPCTargetMachine::PPC_ABI_UNKNOWN;
+ }
+diff --git a/test/CodeGen/PowerPC/ppc64-elf-abi.ll b/test/CodeGen/PowerPC/ppc64-elf-abi.ll
+index 8b1cf6b5..296a2afa 100644
+--- a/llvm/test/CodeGen/PowerPC/ppc64-elf-abi.ll
++++ b/llvm/test/CodeGen/PowerPC/ppc64-elf-abi.ll
+@@ -1,4 +1,5 @@
+-; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv1
++; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv2
++; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-musl < %s | FileCheck %s -check-prefix=CHECK-ELFv2
+ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu -target-abi elfv1 < %s | FileCheck %s -check-prefix=CHECK-ELFv1
+ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu -target-abi elfv2 < %s | FileCheck %s -check-prefix=CHECK-ELFv2
+ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv2
diff --git a/srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch b/srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch
new file mode 100644
index 000000000000..b5d15974375d
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch
@@ -0,0 +1,11 @@
+--- a/llvm/lib/Target/PowerPC/PPCSubtarget.cpp
++++ b/llvm/lib/Target/PowerPC/PPCSubtarget.cpp
+@@ -165,7 +165,7 @@ void PPCSubtarget::initSubtargetFeatures(StringRef CPU, StringRef FS) {
+
+ if ((TargetTriple.isOSFreeBSD() && TargetTriple.getOSMajorVersion() >= 13) ||
+ TargetTriple.isOSNetBSD() || TargetTriple.isOSOpenBSD() ||
+- TargetTriple.isMusl())
++ isTargetLinux())
+ SecurePlt = true;
+
+ if (HasSPE && IsPPC64)
diff --git a/srcpkgs/llvm15/patches/llvm-004-override-opt.patch b/srcpkgs/llvm15/patches/llvm-004-override-opt.patch
new file mode 100644
index 000000000000..51d0e4b31b32
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-004-override-opt.patch
@@ -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)
diff --git a/srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch b/srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch
new file mode 100644
index 000000000000..d332687b9d92
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch
@@ -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);
diff --git a/srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch b/srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch
new file mode 100644
index 000000000000..a00abd216665
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch
@@ -0,0 +1,25 @@
+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__) || defined (__ppc__) || \
+- defined(_POWER) || defined(_ARCH_PPC))
++ defined(_POWER) || defined(_ARCH_PPC) || (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
diff --git a/srcpkgs/llvm15/template b/srcpkgs/llvm15/template
new file mode 100644
index 000000000000..db510bbd2477
--- /dev/null
+++ b/srcpkgs/llvm15/template
@@ -0,0 +1,428 @@
+# Template file for 'llvm15'
+pkgname=llvm15
+version=15.0.6
+revision=1
+build_wrksrc=llvm
+build_style=cmake
+configure_args="
+ -DCMAKE_BUILD_TYPE=Release -Wno-dev
+ -DENABLE_LINKER_BUILD_ID=YES
+ -DLLDB_USE_SYSTEM_SIX=YES
+ -DLIBCXX_CXX_ABI=libcxxabi
+ -DLIBCXX_ENABLE_STATIC_ABI_LIBRARY=YES
+ -DLIBCXXABI_USE_LLVM_UNWINDER=YES
+ -DLIBCXXABI_ENABLE_STATIC_UNWINDER=YES
+ -DLIBOMP_ENABLE_SHARED=YES
+ -DLIBOMP_INSTALL_ALIASES=NO
+ -DLLVM_INCLUDE_DOCS=YES
+ -DLLVM_BUILD_DOCS=YES
+ -DLLVM_ENABLE_SPHINX=YES
+ -DSPHINX_WARNINGS_AS_ERRORS=NO
+ -DLLVM_INSTALL_UTILS=YES
+ -DLLVM_BUILD_LLVM_DYLIB=YES
+ -DLLVM_LINK_LLVM_DYLIB=YES
+ -DLLVM_ENABLE_RTTI=YES
+ -DLLVM_ENABLE_FFI=YES
+ -DLLVM_BINUTILS_INCDIR=/usr/include"
+hostmakedepends="perl python3 zlib-devel libffi-devel swig python3-Sphinx
+ python3-recommonmark python3-sphinx-automodapi"
+makedepends="python3-devel zlib-devel elfutils-devel libffi-devel libedit-devel
+ libxml2-devel binutils-devel libatomic-devel"
+depends="libllvm15>=${version}_${revision}"
+short_desc="Low Level Virtual Machine"
+maintainer="Orphaned <orphan@voidlinux.org>"
+license="Apache-2.0"
+homepage="https://www.llvm.org"
+distfiles="https://github.com/llvm/llvm-project/releases/download/llvmorg-${version}/llvm-project-${version}.src.tar.xz"
+checksum=9d53ad04dc60cb7b30e810faf64c5ab8157dadef46c8766f67f286238256ff92
+lib32disabled=yes
+python_version=3
+
+if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
+ configure_args+=" -DLIBCXX_HAS_MUSL_LIBC=YES
+ -DCOMPILER_RT_BUILD_GWP_ASAN=OFF"
+fi
+
+# "operand out of range" assembler failures
+case "$XBPS_TARGET_MACHINE" in
+ ppc64*) ;;
+ ppc*) configure_args+=" -DCLANG_ENABLE_CLANGD=OFF" ;;
+esac
+
+_enabled_projects="clang;clang-tools-extra;compiler-rt;libcxx;libcxxabi;libunwind;lld"
+
+_lldb_enable=yes
+_libomp_enable=no
+
+case "$XBPS_TARGET_MACHINE" in
+ ppc64le*) ;;
+ ppc*|i686*) _lldb_enable=no ;;
+esac
+
+case "$XBPS_TARGET_MACHINE" in
+ x86_64*|aarch64*|ppc64*) _libomp_enable=yes;;
+esac
+
+subpackages="clang-tools-extra"
+
+# must go before clang
+if [ "$_libomp_enable" = "yes" ]; then
+ _enabled_projects+=";openmp"
+ subpackages+=" libomp libomp-devel"
+ # because of cmake nonsense referencing libomptarget.so.*
+ depends+=" libomp>=${version}_${revision}"
+fi
+
+subpackages+=" clang clang-analyzer libclang libclang-cpp
+ llvm-libunwind llvm-libunwind-devel libcxx libcxx-devel
+ libcxxabi libcxxabi-devel libllvm15"
+
+if [ "$_lldb_enable" = "yes" ]; then
+ # XXX fails to cross compile due to python
+ _enabled_projects+=";lldb"
+ subpackages+=" lldb lldb-devel"
+fi
+
+subpackages+=" lld lld-devel"
+
+configure_args+=" -DLLVM_ENABLE_PROJECTS=${_enabled_projects}"
+
+post_patch() {
+ if [ "$_lldb_enable" = "yes" ]; then
+ if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
+ vsed -i 's|__ptrace_request|int|g' \
+ ${wrksrc}/lldb/source/Plugins/Process/Linux/NativeProcessLinux.cpp
+ fi
+ # disable docs for lldb as they fail to generate
+ vsed -i '/add_subdirectory(docs)/d' \
+ ${wrksrc}/lldb/CMakeLists.txt
+ fi
+
+ # update config.guess for better platform detection
+ cp $XBPS_COMMONDIR/environment/configure/automake/config.guess \
+ ${wrksrc}/llvm/cmake
+
+ # fix linker failures on some archs
+ vsed -i 's,check_library_exists(gcc_s .*,set(LIBCXXABI_HAS_GCC_S_LIB ON),' \
+ ${wrksrc}/libcxxabi/cmake/config-ix.cmake
+ vsed -i 's,check_library_exists(gcc .*,set(LIBCXXABI_HAS_GCC_LIB ON),' \
+ ${wrksrc}/libcxxabi/cmake/config-ix.cmake
+
+ # need libssp_nonshared on some musl platforms (because of nodefaultlibs)
+ case "$XBPS_TARGET_MACHINE" in
+ ppc64*) ;;
+ ppc*-musl|i686-musl|mips*-musl)
+ vsed -i 's,^# Setup flags.$,add_library_flags(ssp_nonshared),' \
+ ${wrksrc}/libunwind/src/CMakeLists.txt
+ vsed -i 's,^# Setup flags.$,add_library_flags(ssp_nonshared),' \
+ ${wrksrc}/libcxxabi/src/CMakeLists.txt
+ vsed -i 's,#ssp,,' ${wrksrc}/libcxx/CMakeLists.txt
+ ;;
+ esac
+
+ case "$XBPS_TARGET_MACHINE" in
+ arm*-musl|i686-musl) # sanitizer code is broken since it duplicates some libc bits
+ vsed -i 's/set(COMPILER_RT_HAS_SANITIZER_COMMON TRUE)/set(COMPILER_RT_HAS_SANITIZER_COMMON FALSE)/' \
+ ${wrksrc}/compiler-rt/cmake/config-ix.cmake
+ ;;
+ esac
+}
+
+pre_configure() {
+ local triplet
+
+ # Vastly reduce size of debugging symbols:
+ CFLAGS=${CFLAGS/ -g/ -g1}
+ CXXFLAGS=${CXXFLAGS/ -g/ -g1}
+
+ # since gcc9, the build likes to blow up for ppc32 apparently because
+ # of clang being too large for a 24-bit relative call to the PLT, so
+ # optimize for size instead
+ case "$XBPS_TARGET_MACHINE" in
+ ppc64*) ;;
+ mips*-musl|ppc*) configure_args+=" -DVOID_CXX_OPT_FLAGS=-Os" ;;
+ esac
+
+ if [ "$CROSS_BUILD" ]; then
+ msg_normal "Building host tblgen\n"
+ mkdir -p build/HOST
+ cd build/HOST
+ CC="$BUILD_CC" CXX="$BUILD_CXX" CFLAGS="$BUILD_CFLAGS" \
+ CXXFLAGS="$BUILD_CXXFLAGS" LDFLAGS="$BUILD_LDFLAGS" \
+ cmake ../.. -DCMAKE_BUILD_TYPE=Release \
+ -DLLVM_ENABLE_PROJECTS=${_enabled_projects}
+ make ${makejobs} -C utils/TableGen
+ make ${makejobs} -C tools/clang/utils/TableGen
+ [ "$_lldb_enable" = "yes" ] && make ${makejobs} -C tools/lldb/utils/TableGen
+ configure_args+=" -DLLVM_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/llvm-tblgen"
+ configure_args+=" -DCLANG_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/clang-tblgen"
+ [ "$_lldb_enable" = "yes" ] && configure_args+=" -DLLDB_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/lldb-tblgen"
+ cd ../..
+ fi
+
+ case "$XBPS_TARGET_MACHINE" in
+ i686*) _arch="X86";;
+ x86_64*) _arch="X86";;
+ armv5*) _arch="Armv5te";;
+ armv6*) _arch="Armv6";;
+ armv7*) _arch="Armv7";;
+ aarch64*) _arch="AArch64";;
+ mips*) _arch="Mips";;
+ ppc*) _arch="PowerPC";;
+ riscv64*) _arch="RISCV64";;
+ esac
+
+ triplet=${XBPS_CROSS_TRIPLET:-$XBPS_TRIPLET}
+
+ configure_args+=" -DLLVM_TARGET_ARCH=${_arch}"
+ configure_args+=" -DLLVM_HOST_TRIPLE=${triplet}"
+ configure_args+=" -DLLVM_DEFAULT_TARGET_TRIPLE=${triplet}"
+}
+
+do_install() {
+ cd build
+ cmake -DCMAKE_INSTALL_PREFIX=${DESTDIR}/usr -P cmake_install.cmake
+
+ # Required for multilib.
+ if [ "$XBPS_TARGET_MACHINE" = "x86_64" ]; then
+ for _header in llvm-config; do
+ mv ${DESTDIR}/usr/include/llvm/Config/${_header}{,-64}.h
+ vinstall ${FILESDIR}/llvm-Config-${_header}.h 644 \
+ usr/include/llvm/Config ${_header}.h
+ done
+ fi
+
+ # Remove llvm-config-host in cross builds.
+ if [ "$CROSS_BUILD" ]; then
+ rm -f ${DESTDIR}/usr/bin/llvm-config-host
+ fi
+
+ # Install libcxxabi headers
+ vinstall ${wrksrc}/libcxxabi/include/__cxxabi_config.h 644 usr/include
+ vinstall ${wrksrc}/libcxxabi/include/cxxabi.h 644 usr/include
+
+ # Install libunwind headers
+ vinstall ${wrksrc}/libunwind/include/__libunwind_config.h 644 usr/include
+ vinstall ${wrksrc}/libunwind/include/libunwind.h 644 usr/include
+ vinstall ${wrksrc}/libunwind/include/unwind.h 644 usr/include
+ vinstall ${wrksrc}/libunwind/include/mach-o/compact_unwind_encoding.h \
+ 644 usr/include/mach-o
+}
+
+clang-analyzer_package() {
+ pycompile_dirs="usr/share/scan-view"
+ depends="clang-${version}_${revision} python3 perl"
+ short_desc+=" - A source code analysis framework"
+ homepage="https://clang-analyzer.llvm.org/"
+ pkg_install() {
+ vmove "usr/bin/scan-*"
+ vmove "usr/libexec/*analyzer"
+ vmove "usr/share/scan-*"
+ vmove usr/share/man/man1/scan-build.1
+ }
+}
+
+clang-tools-extra_package() {
+ lib32disabled=yes
+ depends="clang-${version}_${revision} python3"
+ short_desc+=" - Extra Clang tools"
+ homepage="https://clang.llvm.org/extra/"
+ pkg_install() {
+ vmove usr/bin/clang-apply-replacements
+ vmove usr/bin/clang-doc
+ vmove usr/bin/clang-include-fixer
+ vmove usr/bin/clang-query
+ vmove usr/bin/clang-rename
+ vmove usr/bin/clang-reorder-fields
+ vmove usr/bin/clang-tidy
+ vmove usr/bin/clangd
+ vmove usr/bin/diagtool
+ vmove usr/bin/find-all-symbols
+ vmove usr/bin/hmaptool
+ vmove usr/bin/modularize
+ vmove usr/bin/pp-trace
+ vmove usr/bin/sancov
+ vmove usr/include/clang-tidy
+ vmove "usr/lib/libclangApplyReplacements*"
+ vmove "usr/lib/libclangDoc*"
+ vmove "usr/lib/libclangIncludeFixer*"
+ vmove "usr/lib/libclangReorderFields*"
+ vmove "usr/lib/libclangQuery*"
+ vmove "usr/lib/libclangTidy*"
+ vmove "usr/share/clang/*include-fixer*"
+ vmove "usr/share/clang/*rename*"
+ vmove "usr/share/clang/*tidy*"
+ vmove usr/share/doc/LLVM/clang-tools
+ vmove usr/share/man/man1/diagtool.1
+ vmove usr/share/man/man1/extraclangtools.1
+ }
+}
+
+clang_package() {
+ lib32disabled=yes
+ depends="libstdc++-devel libgcc-devel binutils ${XBPS_TARGET_LIBC}-devel
+ libclang-${version}_${revision}"
+ short_desc+=" - C language family frontend"
+ homepage="https://clang.llvm.org/"
+ pkg_install() {
+ vmove "usr/bin/*clang*"
+ vmove usr/bin/c-index-test
+ vmove usr/include/clang
+ vmove usr/include/clang-c
+ vmove usr/lib/clang
+ vmove usr/lib/cmake/clang
+ vmove "usr/lib/libclang*.a"
+ vmove "usr/lib/libclang*.so"
+ vmove usr/share/clang
+ vmove usr/share/doc/LLVM/clang
+ vmove usr/share/man/man1/clang.1
+ }
+}
+
+libclang_package() {
+ short_desc+=" - C frontend runtime library"
+ pkg_install() {
+ vmove "usr/lib/libclang.so.*"
+ }
+}
+
+libclang-cpp_package() {
+ short_desc+=" - C frontend runtime library (C++ interface)"
+ pkg_install() {
+ vmove "usr/lib/libclang-cpp.so.*"
+ }
+}
+
+lld_package() {
+ lib32disabled=yes
+ short_desc+=" - linker"
+ homepage="https://lld.llvm.org"
+ pkg_install() {
+ vmove usr/bin/ld.lld*
+ vmove usr/bin/ld64.lld*
+ vmove usr/bin/lld*
+ vmove usr/bin/wasm-ld
+ vmove usr/share/doc/LLVM/lld
+ }
+}
+
+lld-devel_package() {
+ lib32disabled=yes
+ short_desc+=" - linker - development files"
+ homepage="https://lld.llvm.org"
+ depends="lld>=${version}_${revision}"
+ pkg_install() {
+ vmove usr/include/lld
+ vmove usr/lib/cmake/lld
+ vmove "usr/lib/liblld*a"
+ }
+}
+
+lldb_package() {
+ lib32disabled=yes
+ depends+=" python3-six"
+ short_desc+=" - LLDB debugger"
+ homepage="https://lldb.llvm.org/"
+ pkg_install() {
+ vmove usr/bin/*lldb*
+ vmove usr/lib/liblldb*so.*
+ vmove /usr/lib/python*
+ }
+}
+
+lldb-devel_package() {
+ lib32disabled=yes
+ depends="lldb>=${version}_${revision}"
+ short_desc+=" - LLDB debugger - development files"
+ pkg_install() {
+ vmove usr/include/lldb
+ vmove "usr/lib/liblldb*.so"
+ }
+}
+
+llvm-libunwind_package() {
+ short_desc+=" - libunwind"
+ pkg_install() {
+ vmove "usr/lib/${XBPS_TRIPLET}/libunwind.so.*"
+ }
+}
+
+llvm-libunwind-devel_package() {
+ short_desc+=" - libunwind - development files"
+ depends="llvm-libunwind>=${version}_${revision}"
+ conflicts="libunwind-devel>=0"
+ pkg_install() {
+ vmove usr/include/mach-o
+ vmove "usr/include/*unwind*"
+ vmove "usr/lib/${XBPS_TRIPLET}/libunwind.a"
+ vmove "usr/lib/${XBPS_TRIPLET}/libunwind.so"
+ vmove usr/share/doc/LLVM/libunwind
+ }
+}
+
+libcxxabi_package() {
+ short_desc+=" - low level support for libc++"
+ pkg_install() {
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++abi.so.*"
+ }
+}
+
+libcxxabi-devel_package() {
+ short_desc+=" - low level support for libc++ - development files"
+ depends="libcxxabi>=${version}_${revision}"
+ pkg_install() {
+ vmove "usr/include/*cxxabi*"
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++abi.so"
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++abi.a"
+ }
+}
+
+libcxx_package() {
+ short_desc+=" - C++ standard library"
+ pkg_install() {
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++.so.*"
+ }
+}
+
+libcxx-devel_package() {
+ short_desc+=" - C++ standard library - development files"
+ depends="libcxx>=${version}_${revision}"
+ pkg_install() {
+ vmove usr/include/c++
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++.so"
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++.a"
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++experimental.a"
+ vmove usr/share/doc/LLVM/libcxx
+ }
+}
+
+libomp_package() {
+ short_desc+=" - Clang OpenMP support library"
+ pkg_install() {
+ vmove usr/lib/libarcher.so
+ vmove usr/lib/libompd.so
+ vmove "usr/lib/libomptarget.rtl.*.so"
+ vmove "usr/lib/libomp*.so.*"
+ }
+}
+
+libomp-devel_package() {
+ short_desc+=" - Clang OpenMP support library - development files"
+ depends="libomp>=${version}_${revision}"
+ pkg_install() {
+ vmove "usr/include/omp*.h"
+ vmove "usr/lib/clang/${version}/include/omp*.h"
+ vmove "usr/lib/libarcher*"
+ vmove "usr/lib/libomp*.so"
+ vmove usr/lib/cmake/openmp
+ vmove usr/share/doc/LLVM/openmp
+ vmove usr/share/man/man1/llvmopenmp.1
+ }
+}
+
+libllvm15_package() {
+ short_desc+=" - runtime library"
+ pkg_install() {
+ vmove "usr/lib/libLLVM-*.so*"
+ }
+}
diff --git a/srcpkgs/llvm15/update b/srcpkgs/llvm15/update
new file mode 100644
index 000000000000..e95cf26b3586
--- /dev/null
+++ b/srcpkgs/llvm15/update
@@ -0,0 +1,3 @@
+site="https://github.com/llvm/llvm-project/releases"
+pattern="llvmorg-\K(\d+.){2}\d+(-rc\d+)?"
+ignore="*-rc*"
From d853a3fdcc302937e10b48d237646e9dcc76ba3e Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Sun, 18 Dec 2022 00:40:18 +0100
Subject: [PATCH 02/12] llvm: update to 15
---
common/shlibs | 6 +++---
srcpkgs/clang | 2 +-
srcpkgs/clang-analyzer | 2 +-
srcpkgs/clang-tools-extra | 2 +-
srcpkgs/libclang | 2 +-
srcpkgs/libclang-cpp | 2 +-
srcpkgs/libcxx | 2 +-
srcpkgs/libcxx-devel | 2 +-
srcpkgs/libcxxabi | 2 +-
srcpkgs/libcxxabi-devel | 2 +-
srcpkgs/libomp | 2 +-
srcpkgs/libomp-devel | 2 +-
srcpkgs/lld | 2 +-
srcpkgs/lld-devel | 2 +-
srcpkgs/lldb | 2 +-
srcpkgs/lldb-devel | 2 +-
srcpkgs/llvm-libunwind | 2 +-
srcpkgs/llvm-libunwind-devel | 2 +-
srcpkgs/llvm/template | 6 +++---
19 files changed, 23 insertions(+), 23 deletions(-)
diff --git a/common/shlibs b/common/shlibs
index 33c2dcdd3f43..9d0dc1c25cff 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -985,9 +985,9 @@ 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.12 lldb-12.0.0_1
-libclang.so.12 libclang-12.0.0_1
-libclang-cpp.so.12 libclang-cpp-12.0.0_1
+liblldb.so.15 lldb-15.0.6_1
+libclang.so.15 libclang-15.0.6_1
+libclang-cpp.so.15 libclang-cpp-15.0.6_1
libLLVM-11.so libllvm11-11.0.0_1
libLLVM-12.so libllvm12-12.0.0_1
libLLVM-15.so libllvm15-15.0.6_1
diff --git a/srcpkgs/clang b/srcpkgs/clang
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/clang
+++ b/srcpkgs/clang
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/clang-analyzer b/srcpkgs/clang-analyzer
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/clang-analyzer
+++ b/srcpkgs/clang-analyzer
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/clang-tools-extra b/srcpkgs/clang-tools-extra
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/clang-tools-extra
+++ b/srcpkgs/clang-tools-extra
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libclang b/srcpkgs/libclang
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libclang
+++ b/srcpkgs/libclang
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libclang-cpp b/srcpkgs/libclang-cpp
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libclang-cpp
+++ b/srcpkgs/libclang-cpp
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxx b/srcpkgs/libcxx
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxx
+++ b/srcpkgs/libcxx
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxx-devel b/srcpkgs/libcxx-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxx-devel
+++ b/srcpkgs/libcxx-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxxabi b/srcpkgs/libcxxabi
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxxabi
+++ b/srcpkgs/libcxxabi
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxxabi-devel b/srcpkgs/libcxxabi-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxxabi-devel
+++ b/srcpkgs/libcxxabi-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libomp b/srcpkgs/libomp
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libomp
+++ b/srcpkgs/libomp
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libomp-devel b/srcpkgs/libomp-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libomp-devel
+++ b/srcpkgs/libomp-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lld b/srcpkgs/lld
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lld
+++ b/srcpkgs/lld
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lld-devel b/srcpkgs/lld-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lld-devel
+++ b/srcpkgs/lld-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lldb b/srcpkgs/lldb
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lldb
+++ b/srcpkgs/lldb
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lldb-devel b/srcpkgs/lldb-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lldb-devel
+++ b/srcpkgs/lldb-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm-libunwind b/srcpkgs/llvm-libunwind
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/llvm-libunwind
+++ b/srcpkgs/llvm-libunwind
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm-libunwind-devel b/srcpkgs/llvm-libunwind-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/llvm-libunwind-devel
+++ b/srcpkgs/llvm-libunwind-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm/template b/srcpkgs/llvm/template
index a92db6f94f9f..fc1c850bd26f 100644
--- a/srcpkgs/llvm/template
+++ b/srcpkgs/llvm/template
@@ -1,11 +1,11 @@
# Template file for 'llvm'
pkgname=llvm
-version=12.0.0
+version=15
revision=1
build_style=meta
-depends="llvm12"
-replaces="llvm11>=0 llvm10>=0 llvm9>=0 llvm8>=0 llvm7>=0 llvm6.0>=0 llvm3.9>=0"
+depends="llvm15"
short_desc="LLVM meta package"
maintainer="Enno Boland <gottox@voidlinux.org>"
license="Public Domain"
homepage="https://www.voidlinux.org"
+replaces="llvm12>=0 llvm11>=0 llvm10>=0 llvm9>=0 llvm8>=0 llvm7>=0 llvm6.0>=0 llvm3.9>=0"
From d0eecab28039d4a54929aebeae7e53883851df56 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Sun, 18 Dec 2022 12:20:08 +0100
Subject: [PATCH 03/12] llvm12: remove bumped subpackages
---
srcpkgs/llvm12/template | 264 +---------------------------------------
1 file changed, 1 insertion(+), 263 deletions(-)
diff --git a/srcpkgs/llvm12/template b/srcpkgs/llvm12/template
index f8ea3ba641ae..aea0b43cf573 100644
--- a/srcpkgs/llvm12/template
+++ b/srcpkgs/llvm12/template
@@ -50,55 +50,7 @@ case "$XBPS_TARGET_MACHINE" in
ppc*) configure_args+=" -DCLANG_ENABLE_CLANGD=OFF" ;;
esac
-_enabled_projects="clang;clang-tools-extra;compiler-rt;libcxx;libcxxabi;libunwind;lld"
-
-_lldb_enable=yes
-_libomp_enable=no
-
-case "$XBPS_TARGET_MACHINE" in
- ppc64le*) ;;
- ppc*|i686*) _lldb_enable=no ;;
-esac
-
-case "$XBPS_TARGET_MACHINE" in
- x86_64*|aarch64*|ppc64*) _libomp_enable=yes;;
-esac
-
-subpackages="clang-tools-extra"
-
-# must go before clang
-if [ "$_libomp_enable" = "yes" ]; then
- _enabled_projects+=";openmp"
- subpackages+=" libomp libomp-devel"
- # because of cmake nonsense referencing libomptarget.so.*
- depends+=" libomp>=${version}_${revision}"
-fi
-
-subpackages+=" clang clang-analyzer libclang libclang-cpp
- llvm-libunwind llvm-libunwind-devel libcxx libcxx-devel
- libcxxabi libcxxabi-devel libllvm12"
-
-if [ "$_lldb_enable" = "yes" ]; then
- # XXX fails to cross compile due to python
- _enabled_projects+=";lldb"
- subpackages+=" lldb lldb-devel"
-fi
-
-subpackages+=" lld lld-devel"
-
-configure_args+=" -DLLVM_ENABLE_PROJECTS=${_enabled_projects}"
-
post_patch() {
- if [ "$_lldb_enable" = "yes" ]; then
- if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
- vsed -i 's|__ptrace_request|int|g' \
- ${wrksrc}/lldb/source/Plugins/Process/Linux/NativeProcessLinux.cpp
- fi
- # disable docs for lldb as they fail to generate
- vsed -i '/add_subdirectory(docs)/d' \
- ${wrksrc}/lldb/CMakeLists.txt
- fi
-
# update config.guess for better platform detection
cp $XBPS_COMMONDIR/environment/configure/automake/config.guess \
${wrksrc}/llvm/cmake
@@ -154,14 +106,12 @@ pre_configure() {
cd build/HOST
CC="$BUILD_CC" CXX="$BUILD_CXX" CFLAGS="$BUILD_CFLAGS" \
CXXFLAGS="$BUILD_CXXFLAGS" LDFLAGS="$BUILD_LDFLAGS" \
- cmake ../.. -DCMAKE_BUILD_TYPE=Release \
- -DLLVM_ENABLE_PROJECTS=${_enabled_projects}
+ cmake ../.. -DCMAKE_BUILD_TYPE=Release
make ${makejobs} -C utils/TableGen
make ${makejobs} -C tools/clang/utils/TableGen
[ "$_lldb_enable" = "yes" ] && make ${makejobs} -C tools/lldb/utils/TableGen
configure_args+=" -DLLVM_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/llvm-tblgen"
configure_args+=" -DCLANG_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/clang-tblgen"
- [ "$_lldb_enable" = "yes" ] && configure_args+=" -DLLDB_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/lldb-tblgen"
cd ../..
fi
@@ -201,218 +151,6 @@ do_install() {
if [ "$CROSS_BUILD" ]; then
rm -f ${DESTDIR}/usr/bin/llvm-config-host
fi
-
- # Install libcxxabi headers
- vinstall ${wrksrc}/libcxxabi/include/__cxxabi_config.h 644 usr/include
- vinstall ${wrksrc}/libcxxabi/include/cxxabi.h 644 usr/include
-
- # Install libunwind headers
- vinstall ${wrksrc}/libunwind/include/__libunwind_config.h 644 usr/include
- vinstall ${wrksrc}/libunwind/include/libunwind.h 644 usr/include
- vinstall ${wrksrc}/libunwind/include/unwind.h 644 usr/include
- vinstall ${wrksrc}/libunwind/include/mach-o/compact_unwind_encoding.h \
- 644 usr/include/mach-o
-}
-
-clang-analyzer_package() {
- pycompile_dirs="usr/share/scan-view"
- depends="clang-${version}_${revision} python3 perl"
- short_desc+=" - A source code analysis framework"
- homepage="https://clang-analyzer.llvm.org/"
- pkg_install() {
- vmove usr/share/man/man1/scan-build.1
- vmove "/usr/bin/scan-*"
- vmove "/usr/share/scan-*"
- vmove "/usr/libexec/*analyzer"
- }
-}
-
-clang-tools-extra_package() {
- lib32disabled=yes
- depends="clang-${version}_${revision} python3"
- short_desc+=" - Extra Clang tools"
- homepage="https://clang.llvm.org/extra/"
- pkg_install() {
- vmove usr/include/clang-tidy
- vmove usr/bin/clang-apply-replacements
- vmove usr/bin/clang-query
- vmove usr/bin/clang-rename
- vmove usr/bin/clang-tidy
- vmove usr/bin/diagtool
- vmove usr/bin/find-all-symbols
- vmove usr/bin/hmaptool
- vmove usr/bin/modularize
- vmove usr/bin/pp-trace
- vmove usr/bin/sancov
- vmove "usr/lib/libclangApplyReplacements*"
- vmove "usr/lib/libclangQuery*"
- vmove "usr/lib/libclangTidy*"
- vmove "usr/share/clang/*tidy*"
- vmove usr/share/doc/clang-tools
- vmove usr/share/man/man1/extraclangtools.1
- vmove usr/share/man/man1/diagtool.1
- }
-}
-
-clang_package() {
- lib32disabled=yes
- depends="libstdc++-devel libgcc-devel binutils ${XBPS_TARGET_LIBC}-devel
- libclang-${version}_${revision}"
- short_desc+=" - C language family frontend"
- homepage="https://clang.llvm.org/"
- pkg_install() {
- vmove usr/include/clang
- vmove usr/include/clang-c
- vmove "usr/bin/*clang*"
- vmove usr/bin/c-index-test
- vmove usr/lib/clang
- vmove usr/lib/cmake/clang
- vmove "usr/lib/libclang*.a"
- vmove "usr/lib/libclang*.so"
- vmove usr/share/clang
- vmove usr/share/doc/clang
- vmove usr/share/man/man1/clang.1
- }
-}
-
-libclang_package() {
- short_desc+=" - C frontend runtime library"
- pkg_install() {
- vmove "usr/lib/libclang.so.*"
- }
-}
-
-libclang-cpp_package() {
- short_desc+=" - C frontend runtime library (C++ interface)"
- pkg_install() {
- vmove "usr/lib/libclang-cpp.so.*"
- }
-}
-
-lld_package() {
- lib32disabled=yes
- short_desc+=" - linker"
- homepage="https://lld.llvm.org"
- pkg_install() {
- vmove usr/bin/lld*
- vmove usr/bin/wasm-ld
- vmove usr/bin/ld.lld*
- vmove usr/bin/ld64.lld*
- vmove usr/share/doc/lld
- }
-}
-
-lld-devel_package() {
- lib32disabled=yes
- short_desc+=" - linker - development files"
- homepage="https://lld.llvm.org"
- depends="lld>=${version}_${revision}"
- pkg_install() {
- vmove usr/include/lld
- vmove usr/lib/cmake/lld
- vmove "usr/lib/liblld*a"
- }
-}
-
-lldb_package() {
- lib32disabled=yes
- depends+=" python3-six"
- short_desc+=" - LLDB debugger"
- homepage="https://lldb.llvm.org/"
- pkg_install() {
- vmove usr/bin/*lldb*
- vmove usr/lib/liblldb*so.*
- vmove /usr/lib/python*
- }
-}
-
-lldb-devel_package() {
- lib32disabled=yes
- depends="lldb>=${version}_${revision}"
- short_desc+=" - LLDB debugger - development files"
- pkg_install() {
- vmove usr/include/lldb
- vmove "usr/lib/liblldb*.so"
- }
-}
-
-llvm-libunwind_package() {
- short_desc+=" - libunwind"
- pkg_install() {
- vmove "usr/lib/libunwind.so.*"
- }
-}
-
-llvm-libunwind-devel_package() {
- short_desc+=" - libunwind - development files"
- depends="llvm-libunwind>=${version}_${revision}"
- conflicts="libunwind-devel>=0"
- pkg_install() {
- vmove usr/lib/libunwind.so
- vmove usr/lib/libunwind.a
- vmove "usr/include/*unwind*"
- vmove usr/include/mach-o
- vmove usr/share/doc/libunwind
- }
-}
-
-libcxxabi_package() {
- short_desc+=" - low level support for libc++"
- pkg_install() {
- vmove "usr/lib/libc++abi.so.*"
- }
-}
-
-libcxxabi-devel_package() {
- short_desc+=" - low level support for libc++ - development files"
- depends="libcxxabi>=${version}_${revision}"
- pkg_install() {
- vmove usr/lib/libc++abi.so
- vmove usr/lib/libc++abi.a
- vmove "usr/include/*cxxabi*"
- }
-}
-
-libcxx_package() {
- short_desc+=" - C++ standard library"
- pkg_install() {
- vmove "usr/lib/libc++.so.*"
- }
-}
-
-libcxx-devel_package() {
- short_desc+=" - C++ standard library - development files"
- depends="libcxx>=${version}_${revision}"
- pkg_install() {
- vmove usr/lib/libc++.so
- vmove usr/lib/libc++.a
- vmove usr/lib/libc++experimental.a
- vmove usr/include/c++
- vmove usr/share/doc/libcxx
- }
-}
-
-libomp_package() {
- short_desc+=" - Clang OpenMP support library"
- pkg_install() {
- vmove usr/lib/libomp.so
- vmove "usr/lib/libomptarget.rtl.*.so"
- vmove usr/lib/libarcher.so
- vmove "usr/lib/libomp*.so.*"
- }
-}
-
-libomp-devel_package() {
- short_desc+=" - Clang OpenMP support library - development files"
- depends="libomp>=${version}_${revision}"
- pkg_install() {
- vmove "usr/lib/libomp*.so"
- vmove "usr/lib/libarcher*"
- vmove "usr/include/omp*.h"
- vmove "usr/lib/clang/${version}/include/omp*.h"
- vmove usr/share/man/man1/llvmopenmp.1
- vmove usr/share/doc/openmp
- }
}
libllvm12_package() {
From 6d69faefe1897edae9d93b3ab3d437d563f415b5 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:27:03 +0100
Subject: [PATCH 04/12] mesa: rebuild for llvm15
---
srcpkgs/mesa/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/mesa/template b/srcpkgs/mesa/template
index 4c3c9ec6039e..0641b28a80d6 100644
--- a/srcpkgs/mesa/template
+++ b/srcpkgs/mesa/template
@@ -1,7 +1,7 @@
# Template file for 'mesa'
pkgname=mesa
version=22.2.4
-revision=2
+revision=3
build_style=meson
configure_args="-Dglvnd=true -Dshared-glapi=enabled -Dgbm=enabled -Degl=enabled
-Dosmesa=true -Dgles1=enabled -Dgles2=enabled -Dglx=dri -Ddri3=enabled
From fd691eb26f96f2cdbb110d8189ac6c4f43e7b434 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:34:04 +0100
Subject: [PATCH 05/12] bcc: rebuild for llvm15
---
srcpkgs/bcc/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/bcc/template b/srcpkgs/bcc/template
index 168a67389bba..219ab9b50219 100644
--- a/srcpkgs/bcc/template
+++ b/srcpkgs/bcc/template
@@ -1,7 +1,7 @@
# Template file for 'bcc'
pkgname=bcc
version=0.25.0
-revision=2
+revision=3
build_style=cmake
configure_args="-DREVISION=${version} -DENABLE_LLVM_SHARED=1"
hostmakedepends="flex python3"
From 9c18635faba0f34851ae42328b2385b09e744a7f Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:37:25 +0100
Subject: [PATCH 06/12] bpftrace: rebuild for llvm15
---
srcpkgs/bpftrace/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/bpftrace/template b/srcpkgs/bpftrace/template
index 190cebb8e3bc..6c1b3386d358 100644
--- a/srcpkgs/bpftrace/template
+++ b/srcpkgs/bpftrace/template
@@ -1,7 +1,7 @@
# Template file for 'bpftrace'
pkgname=bpftrace
version=0.15.0
-revision=1
+revision=2
archs="x86_64* aarch64* ppc64*"
build_style=cmake
configure_args="-DBUILD_TESTING=OFF" # needs root to run
@@ -11,7 +11,7 @@ short_desc="High-level tracing language for Linux enhanced Berkeley Packet Filte
maintainer="Leah Neukirchen <leah@vuxu.org>"
license="Apache-2.0"
homepage="https://github.com/iovisor/bpftrace/"
-distfiles="https://github.com/iovisor/bpftrace/archive/v${version}.tar.gz"
+distfiles="https://github.com/iovisor/bpftrace/archive/refs/tags/v${version}.tar.gz"
checksum=64f67e615998d8150f5ee28614bea9ed303f20f6887bc4cdffa5f9c9477ef52a
nostrip=yes # needs to read own symbol table
From f83c63f58dd37208b4efe5c5e6909233b2414685 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:43:53 +0100
Subject: [PATCH 07/12] CastXML: rebuild for llvm15
---
srcpkgs/CastXML/template | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/srcpkgs/CastXML/template b/srcpkgs/CastXML/template
index 5d7d9503658c..28c424c78073 100644
--- a/srcpkgs/CastXML/template
+++ b/srcpkgs/CastXML/template
@@ -1,7 +1,7 @@
# Template file for 'CastXML'
pkgname=CastXML
version=0.4.6
-revision=1
+revision=2
build_style=cmake
configure_args="-DSPHINX_MAN=YES -DCastXML_INSTALL_MAN_DIR=share/man"
hostmakedepends="clang python3-Sphinx"
@@ -12,8 +12,8 @@ short_desc="C-family abstract syntax tree XML output tool"
maintainer="Evgeny Ermakov <evgeny.v.ermakov@gmail.com>"
license="Apache-2.0"
homepage="https://github.com/CastXML/CastXML"
-distfiles="https://github.com/CastXML/CastXML/archive/v${version}.tar.gz"
-checksum=8dcdbc1f23a130e4bdb0b09f57c30761a02a346b4db4037555048af2a293d66a
+distfiles="https://github.com/CastXML/CastXML/archive/refs/tags/v${version}.tar.gz"
+checksum=bb9024ec9ea5082e0d527f19bf3c2df79f1699f54b6cec168c024e727b32e6d1
post_install() {
rm -r ${DESTDIR}/usr/share/castxml/clang/include
From 0295fbeda543458631068bc0accf7802fad1e611 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:48:55 +0100
Subject: [PATCH 08/12] ccls: rebuild for llvm15
---
srcpkgs/ccls/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/ccls/template b/srcpkgs/ccls/template
index 82fa61933878..ecc9f3e38a5d 100644
--- a/srcpkgs/ccls/template
+++ b/srcpkgs/ccls/template
@@ -1,7 +1,7 @@
# Template file for 'ccls'
pkgname=ccls
version=0.20220729
-revision=1
+revision=2
build_style=cmake
hostmakedepends="clang-tools-extra"
makedepends="clang-tools-extra libxml2-devel llvm ncurses-devel rapidjson zlib-devel"
From 1486242530b7748f6d1e1599aad2eb1f08afd805 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:52:14 +0100
Subject: [PATCH 09/12] include-what-you-use: update to 0.19
---
srcpkgs/include-what-you-use/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/include-what-you-use/template b/srcpkgs/include-what-you-use/template
index d3655709c20c..1a30bc04bb2d 100644
--- a/srcpkgs/include-what-you-use/template
+++ b/srcpkgs/include-what-you-use/template
@@ -1,6 +1,6 @@
# Template file for 'include-what-you-use'
pkgname=include-what-you-use
-version=0.16
+version=0.19
revision=1
build_style=cmake
configure_args="-DIWYU_LLVM_ROOT_PATH=${XBPS_CROSS_BASE}/usr "
@@ -11,7 +11,7 @@ maintainer="Leah Neukirchen <leah@vuxu.org>"
license="NCSA"
homepage="https://include-what-you-use.org/"
distfiles="https://include-what-you-use.org/downloads/${pkgname}-${version}.src.tar.gz"
-checksum=8d6fc9b255343bc1e5ec459e39512df1d51c60e03562985e0076036119ff5a1c
+checksum=2b10157b60ea08adc08e3896b4921c73fcadd5ec4eb652b29a34129d501e5ee0
python_version=3
post_install() {
From 11d2d7c20a646304f57bcf24e4220f50db56b8d2 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 15:11:06 +0100
Subject: [PATCH 10/12] SPIRV-LLVM-Translator: update to 15.0.0
---
srcpkgs/SPIRV-LLVM-Translator/template | 13 +++++++------
1 file changed, 7 insertions(+), 6 deletions(-)
diff --git a/srcpkgs/SPIRV-LLVM-Translator/template b/srcpkgs/SPIRV-LLVM-Translator/template
index a2754e58c0e8..bee99f9bcbb2 100644
--- a/srcpkgs/SPIRV-LLVM-Translator/template
+++ b/srcpkgs/SPIRV-LLVM-Translator/template
@@ -1,19 +1,20 @@
# Template file for 'SPIRV-LLVM-Translator'
pkgname=SPIRV-LLVM-Translator
-version=12.0.0
-revision=2
+version=15.0.0
+revision=1
build_style=cmake
make_build_args="llvm-spirv"
configure_args="-Wno-dev -DLLVM_LINK_LLVM_DYLIB=ON -DCMAKE_SKIP_RPATH=ON
- -DLLVM_SPIRV_INCLUDE_TESTS=OFF -DBUILD_SHARED_LIBS=ON"
+ -DLLVM_SPIRV_INCLUDE_TESTS=OFF -DBUILD_SHARED_LIBS=ON
+ -DLLVM_EXTERNAL_SPIRV_HEADERS_SOURCE_DIR=/usr"
hostmakedepends="clang llvm"
-makedepends="clang-tools-extra llvm"
+makedepends="clang-tools-extra llvm SPIRV-Headers"
short_desc="API and commands for processing SPIR-V modules"
maintainer="Orphaned <orphan@voidlinux.org>"
license="NCSA"
homepage="https://github.com/KhronosGroup/SPIRV-LLVM-Translator"
-distfiles="https://github.com/KhronosGroup/${pkgname}/archive/refs/tags/v${version}.tar.gz"
-checksum=6e4fad04203f25fcde4c308c53e9f59bd05a390978992db3212d4b63aff62108
+distfiles="https://github.com/KhronosGroup/SPIRV-LLVM-Translator/archive/refs/tags/v${version}.tar.gz"
+checksum=b1bebd77f72988758c00852e78c2ddc545815a612169a0cb377d021e2f846d88
post_install() {
vlicense LICENSE.TXT
From ec0520198a20203ec6754624439f31f56741cbaf Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Fri, 6 Jan 2023 17:11:04 +0100
Subject: [PATCH 11/12] rtags: rebuild for llvm15
---
srcpkgs/rtags/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/rtags/template b/srcpkgs/rtags/template
index b496a1b0e721..9b161e690d76 100644
--- a/srcpkgs/rtags/template
+++ b/srcpkgs/rtags/template
@@ -1,7 +1,7 @@
# Template file for 'rtags'
pkgname=rtags
version=2.38
-revision=5
+revision=6
build_style=cmake
# Don't run tests in do_install, please.
configure_args="-DSKIP_CTEST=TRUE"
From 83bd90ce1259febe946c7aecc0195aa38145be4e Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Fri, 6 Jan 2023 17:14:14 +0100
Subject: [PATCH 12/12] juCi++: rebuild for llvm15
---
srcpkgs/juCi++/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/juCi++/template b/srcpkgs/juCi++/template
index c1969237f11d..416bde7cc4d0 100644
--- a/srcpkgs/juCi++/template
+++ b/srcpkgs/juCi++/template
@@ -1,7 +1,7 @@
# Template file for 'juCi++'
pkgname=juCi++
version=1.7.2
-revision=2
+revision=3
_libclangmm_commit="9704b9b6de0982a588fa41741157d5640afedf30"
_tiny_commit="839ff806dc447ff49af80f9a9eaa7949f770f8e5"
create_wrksrc=yes
^ permalink raw reply [flat|nested] 96+ messages in thread
* Re: [PR PATCH] [Updated] [WIP] LLVM 15
2022-11-28 15:30 [PR PATCH] [WIP] LLVM 15 tranzystorek-io
` (40 preceding siblings ...)
2023-01-06 16:15 ` tranzystorek-io
@ 2023-01-07 10:31 ` tranzystorek-io
2023-01-07 17:02 ` tranzystorek-io
` (52 subsequent siblings)
94 siblings, 0 replies; 96+ messages in thread
From: tranzystorek-io @ 2023-01-07 10:31 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 772 bytes --]
There is an updated pull request by tranzystorek-io against master on the void-packages repository
https://github.com/tranzystorek-io/void-packages llvm15
https://github.com/void-linux/void-packages/pull/40821
[WIP] LLVM 15
[ci skip]
TODO:
- [ ] Adjust patches marked as `.patch.skip`
- [x] Make libomp a shlib (change so file name and install a symlink)
- [ ] Avoid creating triplet dirs under /usr/
TODO LLVM rdeps:
- [ ] clazy
- [ ] beignet
- [ ] ispc (1.18.1 supports LLVM `<= 14`)
- [ ] ldc (1.30.0 supports LLVM `<= 14`)
- [ ] ghdl (2.0.0 supports LLVM `<=14`)
- [ ] qt, qtcreator
- [ ] bpftrace (https://github.com/void-linux/void-packages/pull/39002)
A patch file from https://github.com/void-linux/void-packages/pull/40821.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-llvm15-40821.patch --]
[-- Type: text/x-diff, Size: 76076 bytes --]
From 63170afa46b67df47b4cc6d4dadcd54eb1661e24 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Sun, 18 Dec 2022 00:36:59 +0100
Subject: [PATCH 01/13] New package: llvm15-15.0.6
---
common/shlibs | 3 +
srcpkgs/libllvm15 | 1 +
.../llvm15/files/llvm-Config-llvm-config.h | 9 +
...clang-001-fix-unwind-chain-inclusion.patch | 44 ++
.../patches/clang-002-add-musl-triples.patch | 110 +++++
.../clang-003-ppc64-dynamic-linker-path.patch | 13 +
.../patches/clang-004-ppc64-musl-elfv2.patch | 48 ++
.../compiler-rt-sanitizer-ppc64-musl.patch | 35 ++
.../compiler-rt-xray-ppc64-musl.patch.skip | 62 +++
srcpkgs/llvm15/patches/libcxx-musl.patch | 26 ++
srcpkgs/llvm15/patches/libcxx-ppc.patch | 22 +
.../llvm15/patches/libcxx-ssp-nonshared.patch | 11 +
srcpkgs/llvm15/patches/libcxxabi-dl.patch | 25 +
srcpkgs/llvm15/patches/libcxxabi-musl.patch | 38 ++
srcpkgs/llvm15/patches/libomp-soname.patch | 12 +
.../llvm15/patches/libunwind-ppc32.patch.skip | 63 +++
srcpkgs/llvm15/patches/lldb-musl.patch | 40 ++
srcpkgs/llvm15/patches/llvm-001-musl.patch | 57 +++
.../patches/llvm-002-musl-ppc64-elfv2.patch | 30 ++
.../patches/llvm-003-ppc-secureplt.patch | 11 +
.../patches/llvm-004-override-opt.patch | 18 +
.../llvm15/patches/llvm-005-ppc-bigpic.patch | 36 ++
.../patches/llvm-006-aarch64-mf_exec.patch | 25 +
srcpkgs/llvm15/template | 428 ++++++++++++++++++
srcpkgs/llvm15/update | 3 +
25 files changed, 1170 insertions(+)
create mode 120000 srcpkgs/libllvm15
create mode 100644 srcpkgs/llvm15/files/llvm-Config-llvm-config.h
create mode 100644 srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch
create mode 100644 srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch
create mode 100644 srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch
create mode 100644 srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch
create mode 100644 srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch
create mode 100644 srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip
create mode 100644 srcpkgs/llvm15/patches/libcxx-musl.patch
create mode 100644 srcpkgs/llvm15/patches/libcxx-ppc.patch
create mode 100644 srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch
create mode 100644 srcpkgs/llvm15/patches/libcxxabi-dl.patch
create mode 100644 srcpkgs/llvm15/patches/libcxxabi-musl.patch
create mode 100644 srcpkgs/llvm15/patches/libomp-soname.patch
create mode 100644 srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip
create mode 100644 srcpkgs/llvm15/patches/lldb-musl.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-001-musl.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-004-override-opt.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch
create mode 100644 srcpkgs/llvm15/template
create mode 100644 srcpkgs/llvm15/update
diff --git a/common/shlibs b/common/shlibs
index f0917a476aa5..33c2dcdd3f43 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -990,6 +990,9 @@ libclang.so.12 libclang-12.0.0_1
libclang-cpp.so.12 libclang-cpp-12.0.0_1
libLLVM-11.so libllvm11-11.0.0_1
libLLVM-12.so libllvm12-12.0.0_1
+libLLVM-15.so libllvm15-15.0.6_1
+libomp.so.5 libomp-15.0.6_1
+libomptarget.so.15 libomp-15.0.6_1
libisofs.so.6 libisofs-0.6.24_1
libmpack.so.0 libmpack-1.0.5_1
libGeoIP.so.1 libgeoip-1.4.8_1
diff --git a/srcpkgs/libllvm15 b/srcpkgs/libllvm15
new file mode 120000
index 000000000000..ad57a969b9f9
--- /dev/null
+++ b/srcpkgs/libllvm15
@@ -0,0 +1 @@
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm15/files/llvm-Config-llvm-config.h b/srcpkgs/llvm15/files/llvm-Config-llvm-config.h
new file mode 100644
index 000000000000..2fa08c9be696
--- /dev/null
+++ b/srcpkgs/llvm15/files/llvm-Config-llvm-config.h
@@ -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
diff --git a/srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch b/srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch
new file mode 100644
index 000000000000..e4eaa7783e7a
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch
@@ -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
diff --git a/srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch b/srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch
new file mode 100644
index 000000000000..25688d40dbc2
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch
@@ -0,0 +1,110 @@
+--- a/clang/lib/Driver/ToolChains/Gnu.cpp
++++ b/clang/lib/Driver/ToolChains/Gnu.cpp
+@@ -2086,7 +2086,8 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
+ static const char *const ARMHFTriples[] = {"arm-linux-gnueabihf",
+ "armv7hl-redhat-linux-gnueabi",
+ "armv6hl-suse-linux-gnueabi",
+- "armv7hl-suse-linux-gnueabi"};
++ "armv7hl-suse-linux-gnueabi",
++ "armv7l-linux-gnueabihf"};
+ static const char *const ARMebLibDirs[] = {"/lib"};
+ static const char *const ARMebTriples[] = {"armeb-linux-gnueabi",
+ "armeb-linux-androideabi"};
+@@ -2153,8 +2154,7 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
+ "powerpc64-suse-linux", "powerpc-montavista-linuxspe"};
+ static const char *const PPCLELibDirs[] = {"/lib32", "/lib"};
+ static const char *const PPCLETriples[] = {"powerpcle-linux-gnu",
+- "powerpcle-unknown-linux-gnu",
+- "powerpcle-linux-musl"};
++ "powerpcle-unknown-linux-gnu"};
+
+ static const char *const PPC64LibDirs[] = {"/lib64", "/lib"};
+ static const char *const PPC64Triples[] = {
+@@ -2235,6 +2235,87 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
+ return;
+ }
+
++ if (TargetTriple.isMusl()) {
++ static const char *const AArch64MuslTriples[] = {"aarch64-linux-musl"};
++ static const char *const ARMHFMuslTriples[] = {
++ "arm-linux-musleabihf", "armv7l-linux-musleabihf"
++ };
++ static const char *const ARMMuslTriples[] = {"arm-linux-musleabi"};
++ static const char *const X86_64MuslTriples[] = {"x86_64-linux-musl"};
++ static const char *const X86MuslTriples[] = {"i686-linux-musl"};
++ static const char *const MIPSMuslTriples[] = {
++ "mips-linux-musl", "mipsel-linux-musl",
++ "mipsel-linux-muslhf", "mips-linux-muslhf"
++ };
++ static const char *const PPCMuslTriples[] = {"powerpc-linux-musl"};
++ static const char *const PPCLEMuslTriples[] = {"powerpcle-linux-musl"};
++ static const char *const PPC64MuslTriples[] = {"powerpc64-linux-musl"};
++ static const char *const PPC64LEMuslTriples[] = {"powerpc64le-linux-musl"};
++
++ switch (TargetTriple.getArch()) {
++ case llvm::Triple::aarch64:
++ LibDirs.append(begin(AArch64LibDirs), end(AArch64LibDirs));
++ TripleAliases.append(begin(AArch64MuslTriples), end(AArch64MuslTriples));
++ BiarchLibDirs.append(begin(AArch64LibDirs), end(AArch64LibDirs));
++ BiarchTripleAliases.append(begin(AArch64MuslTriples), end(AArch64MuslTriples));
++ break;
++ case llvm::Triple::arm:
++ LibDirs.append(begin(ARMLibDirs), end(ARMLibDirs));
++ if (TargetTriple.getEnvironment() == llvm::Triple::MuslEABIHF) {
++ TripleAliases.append(begin(ARMHFMuslTriples), end(ARMHFMuslTriples));
++ } else {
++ TripleAliases.append(begin(ARMMuslTriples), end(ARMMuslTriples));
++ }
++ break;
++ case llvm::Triple::x86_64:
++ LibDirs.append(begin(X86_64LibDirs), end(X86_64LibDirs));
++ TripleAliases.append(begin(X86_64MuslTriples), end(X86_64MuslTriples));
++ BiarchLibDirs.append(begin(X86LibDirs), end(X86LibDirs));
++ BiarchTripleAliases.append(begin(X86MuslTriples), end(X86MuslTriples));
++ break;
++ case llvm::Triple::x86:
++ LibDirs.append(begin(X86LibDirs), end(X86LibDirs));
++ TripleAliases.append(begin(X86MuslTriples), end(X86MuslTriples));
++ BiarchLibDirs.append(begin(X86_64LibDirs), end(X86_64LibDirs));
++ BiarchTripleAliases.append(begin(X86_64MuslTriples), end(X86_64MuslTriples));
++ break;
++ case llvm::Triple::mips:
++ LibDirs.append(begin(MIPSLibDirs), end(MIPSLibDirs));
++ TripleAliases.append(begin(MIPSMuslTriples), end(MIPSMuslTriples));
++ break;
++ case llvm::Triple::ppc:
++ LibDirs.append(begin(PPCLibDirs), end(PPCLibDirs));
++ TripleAliases.append(begin(PPCMuslTriples), end(PPCMuslTriples));
++ BiarchLibDirs.append(begin(PPC64LibDirs), end(PPC64LibDirs));
++ BiarchTripleAliases.append(begin(PPC64MuslTriples), end(PPC64MuslTriples));
++ break;
++ case llvm::Triple::ppcle:
++ LibDirs.append(begin(PPCLELibDirs), end(PPCLELibDirs));
++ TripleAliases.append(begin(PPCLEMuslTriples), end(PPCLEMuslTriples));
++ BiarchLibDirs.append(begin(PPC64LELibDirs), end(PPC64LELibDirs));
++ BiarchTripleAliases.append(begin(PPC64LEMuslTriples), end(PPC64LEMuslTriples));
++ break;
++ case llvm::Triple::ppc64:
++ LibDirs.append(begin(PPC64LibDirs), end(PPC64LibDirs));
++ TripleAliases.append(begin(PPC64MuslTriples), end(PPC64MuslTriples));
++ BiarchLibDirs.append(begin(PPCLibDirs), end(PPCLibDirs));
++ BiarchTripleAliases.append(begin(PPCMuslTriples), end(PPCMuslTriples));
++ break;
++ case llvm::Triple::ppc64le:
++ LibDirs.append(begin(PPC64LELibDirs), end(PPC64LELibDirs));
++ TripleAliases.append(begin(PPC64LEMuslTriples), end(PPC64LEMuslTriples));
++ BiarchLibDirs.append(begin(PPCLELibDirs), end(PPCLELibDirs));
++ BiarchTripleAliases.append(begin(PPCLEMuslTriples), end(PPCLEMuslTriples));
++ break;
++ default:
++ break;
++ }
++ TripleAliases.push_back(TargetTriple.str());
++ if (TargetTriple.str() != BiarchTriple.str())
++ BiarchTripleAliases.push_back(BiarchTriple.str());
++ return;
++ }
++
+ // Android targets should not use GNU/Linux tools or libraries.
+ if (TargetTriple.isAndroid()) {
+ static const char *const AArch64AndroidTriples[] = {
diff --git a/srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch b/srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch
new file mode 100644
index 000000000000..4ad6412d1e6c
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch
@@ -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 =
diff --git a/srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch b/srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch
new file mode 100644
index 000000000000..21fc8003c5f1
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch
@@ -0,0 +1,48 @@
+--- a/clang/lib/Basic/Targets/PPC.h
++++ b/clang/lib/Basic/Targets/PPC.h
+@@ -415,11 +415,10 @@ public:
+ LongDoubleFormat = &llvm::APFloat::IEEEdouble();
+ } else if ((Triple.getArch() == llvm::Triple::ppc64le)) {
+ DataLayout = "e-m:e-i64:64-n32:64";
+- ABI = "elfv2";
+ } else {
+ DataLayout = "E-m:e-i64:64-n32:64";
+- ABI = "elfv1";
+ }
++ ABI = "elfv2";
+
+ if (Triple.isOSFreeBSD() || Triple.isOSOpenBSD() || Triple.isMusl()) {
+ LongDoubleWidth = LongDoubleAlign = 64;
+--- a/clang/lib/CodeGen/TargetInfo.cpp
++++ b/clang/lib/CodeGen/TargetInfo.cpp
+@@ -10927,9 +10927,9 @@ const TargetCodeGenInfo &CodeGenModule::getTargetCodeGenInfo() {
+ return SetCGInfo(new AIXTargetCodeGenInfo(Types, /*Is64Bit*/ true));
+
+ if (Triple.isOSBinFormatELF()) {
+- PPC64_SVR4_ABIInfo::ABIKind Kind = PPC64_SVR4_ABIInfo::ELFv1;
+- if (getTarget().getABI() == "elfv2")
+- Kind = PPC64_SVR4_ABIInfo::ELFv2;
++ PPC64_SVR4_ABIInfo::ABIKind Kind = PPC64_SVR4_ABIInfo::ELFv2;
++ if (getTarget().getABI() == "elfv1")
++ Kind = PPC64_SVR4_ABIInfo::ELFv1;
+ bool IsSoftFloat = CodeGenOpts.FloatABI == "soft";
+
+ return SetCGInfo(
+--- a/clang/lib/Driver/ToolChains/Clang.cpp
++++ b/clang/lib/Driver/ToolChains/Clang.cpp
+@@ -1920,14 +1920,7 @@ void Clang::AddPPCTargetArgs(const ArgList &Args,
+ const llvm::Triple &T = getToolChain().getTriple();
+ if (T.isOSBinFormatELF()) {
+ switch (getToolChain().getArch()) {
+- case llvm::Triple::ppc64: {
+- if ((T.isOSFreeBSD() && T.getOSMajorVersion() >= 13) ||
+- T.isOSOpenBSD() || T.isMusl())
+- ABIName = "elfv2";
+- else
+- ABIName = "elfv1";
+- break;
+- }
++ case llvm::Triple::ppc64:
+ case llvm::Triple::ppc64le:
+ ABIName = "elfv2";
+ break;
diff --git a/srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch b/srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch
new file mode 100644
index 000000000000..360cfc1ba7f1
--- /dev/null
+++ b/srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch
@@ -0,0 +1,35 @@
+--- 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__) || SANITIZER_RISCV64
++ defined(__hexagon__) || defined(__powerpc__) || 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_ANDROID
++#if (defined(__aarch64__) || defined(__powerpc__) || SANITIZER_RISCV64) && !SANITIZER_ANDROID
+ // GLIBC 2.20+ sys/user does not include asm/ptrace.h
+ # include <asm/ptrace.h>
+ #endif
diff --git a/srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip b/srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip
new file mode 100644
index 000000000000..d0b61c80c897
--- /dev/null
+++ b/srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip
@@ -0,0 +1,62 @@
+--- a/compiler-rt/lib/xray/xray_powerpc64.inc
++++ b/compiler-rt/lib/xray/xray_powerpc64.inc
+@@ -12,7 +12,13 @@
+
+ #include <cstdint>
+ #include <mutex>
++#ifdef __GLIBC__
+ #include <sys/platform/ppc.h>
++#else
++#include <cctype>
++#include <cstring>
++#include <cstdlib>
++#endif
+
+ #include "xray_defs.h"
+
+@@ -20,13 +26,45 @@ namespace __xray {
+
+ ALWAYS_INLINE uint64_t readTSC(uint8_t &CPU) XRAY_NEVER_INSTRUMENT {
+ CPU = 0;
++#ifdef __GLIBC__
+ return __ppc_get_timebase();
++#else
++ return __builtin_ppc_get_timebase();
++#endif
+ }
+
+ inline uint64_t getTSCFrequency() XRAY_NEVER_INSTRUMENT {
+ static std::mutex M;
+ std::lock_guard<std::mutex> Guard(M);
++#ifdef __GLIBC__
+ return __ppc_get_timebase_freq();
++#else
++ /* FIXME: a less dirty implementation? */
++ static uint64_t base;
++ if (!base) {
++ FILE *f = fopen("/proc/cpuinfo", "rb");
++ if (f) {
++ ssize_t nr;
++ /* virtually always big enough to hold the line */
++ char buf[512];
++ while (fgets(buf, sizeof(buf), f)) {
++ char *ret = strstr(buf, "timebase");
++ if (!ret) {
++ continue;
++ }
++ ret += sizeof("timebase") - 1;
++ ret = strchr(ret, ':');
++ if (!ret) {
++ continue;
++ }
++ base = strtoul(ret + 1, nullptr, 10);
++ break;
++ }
++ fclose(f);
++ }
++ }
++ return base;
++#endif
+ }
+
+ inline bool probeRequiredCPUFeatures() XRAY_NEVER_INSTRUMENT {
diff --git a/srcpkgs/llvm15/patches/libcxx-musl.patch b/srcpkgs/llvm15/patches/libcxx-musl.patch
new file mode 100644
index 000000000000..bbd31ffc2cb1
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxx-musl.patch
@@ -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,
+ typename remove_reference<decltype(errno)>::type __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
+ typename remove_reference<decltype(errno)>::type __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,
+ typename remove_reference<decltype(errno)>::type __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
+ typename remove_reference<decltype(errno)>::type __current_errno = errno;
+ if (__current_errno == 0)
+ errno = __save_errno;
diff --git a/srcpkgs/llvm15/patches/libcxx-ppc.patch b/srcpkgs/llvm15/patches/libcxx-ppc.patch
new file mode 100644
index 000000000000..7a92f8004e1c
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxx-ppc.patch
@@ -0,0 +1,22 @@
+This ensures `is_iec559` is defined correctly under all long double ABIs,
+including musl and its 64-bit long double. Also, `__ppc__` or `__ppc64__`
+is not defined on gcc.
+
+--- a/libcxx/include/limits
++++ b/libcxx/include/limits
+@@ -426,8 +426,14 @@ protected:
+ _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type signaling_NaN() _NOEXCEPT {return __builtin_nansl("");}
+ _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type denorm_min() _NOEXCEPT {return __LDBL_DENORM_MIN__;}
+
+-#if (defined(__ppc__) || defined(__ppc64__))
++#if defined(__powerpc__) || defined(__powerpc64__)
++#if (__LDBL_MAX_EXP__ > __DBL_MAX_EXP__) || (__LDBL_MANT_DIG__ == __DBL_MANT_DIG__)
++ /* IEEE 754 quadruple or double precision */
++ static _LIBCPP_CONSTEXPR const bool is_iec559 = true;
++#else
++ /* 128-bit IBM double-double */
+ static _LIBCPP_CONSTEXPR const bool is_iec559 = false;
++#endif
+ #else
+ static _LIBCPP_CONSTEXPR const bool is_iec559 = true;
+ #endif
diff --git a/srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch b/srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch
new file mode 100644
index 000000000000..70292beb2fcd
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch
@@ -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()
diff --git a/srcpkgs/llvm15/patches/libcxxabi-dl.patch b/srcpkgs/llvm15/patches/libcxxabi-dl.patch
new file mode 100644
index 000000000000..3a15f9db8c98
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxxabi-dl.patch
@@ -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 @@
+ target_link_libraries(${target} PRIVATE m)
+ endif()
+
++ if (LIBCXX_HAS_C_LIB)
++ target_link_libraries(${target} PRIVATE dl)
++ endif()
++
+ if (LIBCXX_HAS_RT_LIB)
+ target_link_libraries(${target} PRIVATE rt)
+ endif()
diff --git a/srcpkgs/llvm15/patches/libcxxabi-musl.patch b/srcpkgs/llvm15/patches/libcxxabi-musl.patch
new file mode 100644
index 000000000000..7f89340b8bdf
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxxabi-musl.patch
@@ -0,0 +1,38 @@
+gcc does not support using abi_tag in an extern "C" declaration
+https://github.com/gcc-mirror/gcc/blob/cf59c8983ef6590f0d69014f8dc8778b5b7691c6/gcc/cp/tree.cc#L5354-L5359
+diff -rup libcxx/include/__support/musl/xlocale.h.orig libcxx/include/__support/musl/xlocale.h
+--- a/libcxx/include/__support/musl/xlocale.h.orig 2022-12-19 14:44:34.049044339 -0800
++++ b/libcxx/include/__support/musl/xlocale.h 2022-12-19 14:45:24.211247988 -0800
+@@ -24,27 +24,27 @@
+ extern "C" {
+ #endif
+
+-inline _LIBCPP_HIDE_FROM_ABI long long
++static inline long long
+ strtoll_l(const char *__nptr, char **__endptr, int __base, locale_t) {
+ return ::strtoll(__nptr, __endptr, __base);
+ }
+
+-inline _LIBCPP_HIDE_FROM_ABI unsigned long long
++static inline unsigned long long
+ strtoull_l(const char *__nptr, char **__endptr, int __base, locale_t) {
+ return ::strtoull(__nptr, __endptr, __base);
+ }
+
+-inline _LIBCPP_HIDE_FROM_ABI long long
++static inline long long
+ wcstoll_l(const wchar_t *__nptr, wchar_t **__endptr, int __base, locale_t) {
+ return ::wcstoll(__nptr, __endptr, __base);
+ }
+
+-inline _LIBCPP_HIDE_FROM_ABI long long
++static inline long long
+ wcstoull_l(const wchar_t *__nptr, wchar_t **__endptr, int __base, locale_t) {
+ return ::wcstoull(__nptr, __endptr, __base);
+ }
+
+-inline _LIBCPP_HIDE_FROM_ABI long double
++static inline long double
+ wcstold_l(const wchar_t *__nptr, wchar_t **__endptr, locale_t) {
+ return ::wcstold(__nptr, __endptr);
+ }
diff --git a/srcpkgs/llvm15/patches/libomp-soname.patch b/srcpkgs/llvm15/patches/libomp-soname.patch
new file mode 100644
index 000000000000..9a622cd9254c
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libomp-soname.patch
@@ -0,0 +1,12 @@
+diff --git a/openmp/runtime/src/CMakeLists.txt b/openmp/runtime/src/CMakeLists.txt
+index df1ca9d90..9d2c3b7b9 100644
+--- a/openmp/runtime/src/CMakeLists.txt
++++ b/openmp/runtime/src/CMakeLists.txt
+@@ -150,6 +150,7 @@ libomp_get_libflags(LIBOMP_CONFIGURED_LIBFLAGS)
+ # Build libomp library. Add LLVMSupport dependency if building in-tree with libomptarget profiling enabled.
+ if(OPENMP_STANDALONE_BUILD OR (NOT OPENMP_ENABLE_LIBOMP_PROFILING))
+ add_library(omp ${LIBOMP_LIBRARY_KIND} ${LIBOMP_SOURCE_FILES})
++ set_target_properties(omp PROPERTIES VERSION ${LIBOMP_VERSION_MAJOR} SOVERSION ${LIBOMP_VERSION_MAJOR})
+ # Linking command will include libraries in LIBOMP_CONFIGURED_LIBFLAGS
+ target_link_libraries(omp ${LIBOMP_CONFIGURED_LIBFLAGS} ${LIBOMP_DL_LIBS})
+ else()
diff --git a/srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip b/srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip
new file mode 100644
index 000000000000..74aa7576ecf9
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip
@@ -0,0 +1,63 @@
+This fixes build at least with gcc9 which does not define `__ppc__`.
+
+--- a/libunwind/include/__libunwind_config.h
++++ b/libunwind/include/__libunwind_config.h
+@@ -49,7 +49,7 @@
+ # define _LIBUNWIND_CONTEXT_SIZE 167
+ # define _LIBUNWIND_CURSOR_SIZE 179
+ # define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_PPC64
+-# elif defined(__ppc__)
++# elif defined(__powerpc__)
+ # define _LIBUNWIND_TARGET_PPC 1
+ # define _LIBUNWIND_CONTEXT_SIZE 117
+ # define _LIBUNWIND_CURSOR_SIZE 124
+--- a/libunwind/src/UnwindRegistersRestore.S
++++ b/libunwind/src/UnwindRegistersRestore.S
+@@ -392,7 +392,7 @@ Lnovec:
+ PPC64_LR(3)
+ bctr
+
+-#elif defined(__ppc__)
++#elif defined(__powerpc__)
+
+ DEFINE_LIBUNWIND_FUNCTION(_ZN9libunwind13Registers_ppc6jumptoEv)
+ //
+--- a/libunwind/src/UnwindRegistersSave.S
++++ b/libunwind/src/UnwindRegistersSave.S
+@@ -554,7 +554,7 @@ DEFINE_LIBUNWIND_FUNCTION(__unw_getcontext)
+ blr
+
+
+-#elif defined(__ppc__)
++#elif defined(__powerpc__)
+
+ //
+ // extern int unw_getcontext(unw_context_t* thread_state)
+--- a/libunwind/src/config.h
++++ b/libunwind/src/config.h
+@@ -95,12 +95,12 @@
+ #define _LIBUNWIND_BUILD_SJLJ_APIS
+ #endif
+
+-#if defined(__i386__) || defined(__x86_64__) || defined(__ppc__) || defined(__ppc64__) || defined(__powerpc64__)
++#if defined(__i386__) || defined(__x86_64__) || defined(__powerpc__) || defined(__powerpc64__)
+ #define _LIBUNWIND_SUPPORT_FRAME_APIS
+ #endif
+
+ #if defined(__i386__) || defined(__x86_64__) || \
+- defined(__ppc__) || defined(__ppc64__) || defined(__powerpc64__) || \
++ defined(__powerpc__) || defined(__powerpc64__) || \
+ (!defined(__APPLE__) && defined(__arm__)) || \
+ (defined(__arm64__) || defined(__aarch64__)) || \
+ defined(__mips__)
+--- a/libunwind/src/libunwind.cpp
++++ b/libunwind/src/libunwind.cpp
+@@ -42,7 +42,7 @@ _LIBUNWIND_HIDDEN int __unw_init_local(unw_cursor_t *cursor,
+ # define REGISTER_KIND Registers_x86_64
+ #elif defined(__powerpc64__)
+ # define REGISTER_KIND Registers_ppc64
+-#elif defined(__ppc__)
++#elif defined(__powerpc__)
+ # define REGISTER_KIND Registers_ppc
+ #elif defined(__aarch64__)
+ # define REGISTER_KIND Registers_arm64
diff --git a/srcpkgs/llvm15/patches/lldb-musl.patch b/srcpkgs/llvm15/patches/lldb-musl.patch
new file mode 100644
index 000000000000..026c5e1e61ba
--- /dev/null
+++ b/srcpkgs/llvm15/patches/lldb-musl.patch
@@ -0,0 +1,40 @@
+--- a/lldb/source/Plugins/Process/Linux/Procfs.h
++++ b/lldb/source/Plugins/Process/Linux/Procfs.h
+@@ -10,6 +10,7 @@
+ // sys/procfs.h on Android/Linux for all supported architectures.
+
+ #include <sys/ptrace.h>
++#include <asm/ptrace.h>
+
+ #include "lldb/lldb-types.h"
+
+@@ -17,23 +18,13 @@
+
+ #include <vector>
+
+-#ifdef __ANDROID__
+-#if defined(__arm64__) || defined(__aarch64__)
+-typedef unsigned long elf_greg_t;
+-typedef elf_greg_t
+- elf_gregset_t[(sizeof(struct user_pt_regs) / sizeof(elf_greg_t))];
+-typedef struct user_fpsimd_state elf_fpregset_t;
+-#ifndef NT_FPREGSET
+-#define NT_FPREGSET NT_PRFPREG
+-#endif // NT_FPREGSET
+-#elif defined(__mips__)
+-#ifndef NT_FPREGSET
+-#define NT_FPREGSET NT_PRFPREG
+-#endif // NT_FPREGSET
+-#endif
+-#else // __ANDROID__
++#if !defined(__GLIBC__) && defined(__powerpc__)
++#define pt_regs musl_pt_regs
++#include <sys/procfs.h>
++#undef pt_regs
++#else
+ #include <sys/procfs.h>
+-#endif // __ANDROID__
++#endif
+
+ namespace lldb_private {
+ namespace process_linux {
diff --git a/srcpkgs/llvm15/patches/llvm-001-musl.patch b/srcpkgs/llvm15/patches/llvm-001-musl.patch
new file mode 100644
index 000000000000..f2a3f8d62813
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-001-musl.patch
@@ -0,0 +1,57 @@
+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;
+diff --git a/lib/Support/Unix/DynamicLibrary.inc b/lib/Support/Unix/DynamicLibrary.inc
+index a2a37996..2f86c470 100644
+--- a/llvm/lib/Support/Unix/DynamicLibrary.inc
++++ b/llvm/lib/Support/Unix/DynamicLibrary.inc
+@@ -102,7 +102,7 @@ static void *DoSearch(const char* SymbolName) {
+
+ // This macro returns the address of a well-known, explicit symbol
+ #define EXPLICIT_SYMBOL(SYM) \
+- if (!strcmp(SymbolName, #SYM)) return &SYM
++ if (!strcmp(SymbolName, #SYM)) return (void *)&SYM
+
+ // Under glibc we have a weird situation. The stderr/out/in symbols are both
+ // macros and global variables because of standards requirements. So, we
+diff --git a/utils/unittest/googletest/src/gtest.cc b/utils/unittest/googletest/src/gtest.cc
+index d882ab2e..f1fb12d0 100644
+--- a/llvm/utils/unittest/googletest/src/gtest.cc
++++ b/llvm/utils/unittest/googletest/src/gtest.cc
+@@ -128,6 +128,7 @@
+
+ #if GTEST_CAN_STREAM_RESULTS_
+ # include <arpa/inet.h> // NOLINT
++# include <sys/socket.h> // NOLINT
+ # include <netdb.h> // NOLINT
+ # include <sys/socket.h> // NOLINT
+ # include <sys/types.h> // NOLINT
diff --git a/srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch b/srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch
new file mode 100644
index 000000000000..0071d964bd37
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch
@@ -0,0 +1,30 @@
+This patches LLVM to use ELFv2 on ppc64 unconditionally unless overridden. We
+need this because unlike most distros we use ELFv2 for both glibc and musl
+on big endian ppc64.
+
+diff --git a/lib/Target/PowerPC/PPCTargetMachine.cpp b/lib/Target/PowerPC/PPCTargetMachine.cpp
+index 0634833e..b7cbc2e7 100644
+--- a/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp
++++ b/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp
+@@ -222,9 +222,8 @@ static PPCTargetMachine::PPCABI computeTargetABI(const Triple &TT,
+
+ switch (TT.getArch()) {
+ case Triple::ppc64le:
+- return PPCTargetMachine::PPC_ABI_ELFv2;
+ case Triple::ppc64:
+- return PPCTargetMachine::PPC_ABI_ELFv1;
++ return PPCTargetMachine::PPC_ABI_ELFv2;
+ default:
+ return PPCTargetMachine::PPC_ABI_UNKNOWN;
+ }
+diff --git a/test/CodeGen/PowerPC/ppc64-elf-abi.ll b/test/CodeGen/PowerPC/ppc64-elf-abi.ll
+index 8b1cf6b5..296a2afa 100644
+--- a/llvm/test/CodeGen/PowerPC/ppc64-elf-abi.ll
++++ b/llvm/test/CodeGen/PowerPC/ppc64-elf-abi.ll
+@@ -1,4 +1,5 @@
+-; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv1
++; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv2
++; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-musl < %s | FileCheck %s -check-prefix=CHECK-ELFv2
+ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu -target-abi elfv1 < %s | FileCheck %s -check-prefix=CHECK-ELFv1
+ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu -target-abi elfv2 < %s | FileCheck %s -check-prefix=CHECK-ELFv2
+ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv2
diff --git a/srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch b/srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch
new file mode 100644
index 000000000000..b5d15974375d
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch
@@ -0,0 +1,11 @@
+--- a/llvm/lib/Target/PowerPC/PPCSubtarget.cpp
++++ b/llvm/lib/Target/PowerPC/PPCSubtarget.cpp
+@@ -165,7 +165,7 @@ void PPCSubtarget::initSubtargetFeatures(StringRef CPU, StringRef FS) {
+
+ if ((TargetTriple.isOSFreeBSD() && TargetTriple.getOSMajorVersion() >= 13) ||
+ TargetTriple.isOSNetBSD() || TargetTriple.isOSOpenBSD() ||
+- TargetTriple.isMusl())
++ isTargetLinux())
+ SecurePlt = true;
+
+ if (HasSPE && IsPPC64)
diff --git a/srcpkgs/llvm15/patches/llvm-004-override-opt.patch b/srcpkgs/llvm15/patches/llvm-004-override-opt.patch
new file mode 100644
index 000000000000..51d0e4b31b32
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-004-override-opt.patch
@@ -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)
diff --git a/srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch b/srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch
new file mode 100644
index 000000000000..d332687b9d92
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch
@@ -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);
diff --git a/srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch b/srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch
new file mode 100644
index 000000000000..a00abd216665
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch
@@ -0,0 +1,25 @@
+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__) || defined (__ppc__) || \
+- defined(_POWER) || defined(_ARCH_PPC))
++ defined(_POWER) || defined(_ARCH_PPC) || (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
diff --git a/srcpkgs/llvm15/template b/srcpkgs/llvm15/template
new file mode 100644
index 000000000000..db510bbd2477
--- /dev/null
+++ b/srcpkgs/llvm15/template
@@ -0,0 +1,428 @@
+# Template file for 'llvm15'
+pkgname=llvm15
+version=15.0.6
+revision=1
+build_wrksrc=llvm
+build_style=cmake
+configure_args="
+ -DCMAKE_BUILD_TYPE=Release -Wno-dev
+ -DENABLE_LINKER_BUILD_ID=YES
+ -DLLDB_USE_SYSTEM_SIX=YES
+ -DLIBCXX_CXX_ABI=libcxxabi
+ -DLIBCXX_ENABLE_STATIC_ABI_LIBRARY=YES
+ -DLIBCXXABI_USE_LLVM_UNWINDER=YES
+ -DLIBCXXABI_ENABLE_STATIC_UNWINDER=YES
+ -DLIBOMP_ENABLE_SHARED=YES
+ -DLIBOMP_INSTALL_ALIASES=NO
+ -DLLVM_INCLUDE_DOCS=YES
+ -DLLVM_BUILD_DOCS=YES
+ -DLLVM_ENABLE_SPHINX=YES
+ -DSPHINX_WARNINGS_AS_ERRORS=NO
+ -DLLVM_INSTALL_UTILS=YES
+ -DLLVM_BUILD_LLVM_DYLIB=YES
+ -DLLVM_LINK_LLVM_DYLIB=YES
+ -DLLVM_ENABLE_RTTI=YES
+ -DLLVM_ENABLE_FFI=YES
+ -DLLVM_BINUTILS_INCDIR=/usr/include"
+hostmakedepends="perl python3 zlib-devel libffi-devel swig python3-Sphinx
+ python3-recommonmark python3-sphinx-automodapi"
+makedepends="python3-devel zlib-devel elfutils-devel libffi-devel libedit-devel
+ libxml2-devel binutils-devel libatomic-devel"
+depends="libllvm15>=${version}_${revision}"
+short_desc="Low Level Virtual Machine"
+maintainer="Orphaned <orphan@voidlinux.org>"
+license="Apache-2.0"
+homepage="https://www.llvm.org"
+distfiles="https://github.com/llvm/llvm-project/releases/download/llvmorg-${version}/llvm-project-${version}.src.tar.xz"
+checksum=9d53ad04dc60cb7b30e810faf64c5ab8157dadef46c8766f67f286238256ff92
+lib32disabled=yes
+python_version=3
+
+if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
+ configure_args+=" -DLIBCXX_HAS_MUSL_LIBC=YES
+ -DCOMPILER_RT_BUILD_GWP_ASAN=OFF"
+fi
+
+# "operand out of range" assembler failures
+case "$XBPS_TARGET_MACHINE" in
+ ppc64*) ;;
+ ppc*) configure_args+=" -DCLANG_ENABLE_CLANGD=OFF" ;;
+esac
+
+_enabled_projects="clang;clang-tools-extra;compiler-rt;libcxx;libcxxabi;libunwind;lld"
+
+_lldb_enable=yes
+_libomp_enable=no
+
+case "$XBPS_TARGET_MACHINE" in
+ ppc64le*) ;;
+ ppc*|i686*) _lldb_enable=no ;;
+esac
+
+case "$XBPS_TARGET_MACHINE" in
+ x86_64*|aarch64*|ppc64*) _libomp_enable=yes;;
+esac
+
+subpackages="clang-tools-extra"
+
+# must go before clang
+if [ "$_libomp_enable" = "yes" ]; then
+ _enabled_projects+=";openmp"
+ subpackages+=" libomp libomp-devel"
+ # because of cmake nonsense referencing libomptarget.so.*
+ depends+=" libomp>=${version}_${revision}"
+fi
+
+subpackages+=" clang clang-analyzer libclang libclang-cpp
+ llvm-libunwind llvm-libunwind-devel libcxx libcxx-devel
+ libcxxabi libcxxabi-devel libllvm15"
+
+if [ "$_lldb_enable" = "yes" ]; then
+ # XXX fails to cross compile due to python
+ _enabled_projects+=";lldb"
+ subpackages+=" lldb lldb-devel"
+fi
+
+subpackages+=" lld lld-devel"
+
+configure_args+=" -DLLVM_ENABLE_PROJECTS=${_enabled_projects}"
+
+post_patch() {
+ if [ "$_lldb_enable" = "yes" ]; then
+ if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
+ vsed -i 's|__ptrace_request|int|g' \
+ ${wrksrc}/lldb/source/Plugins/Process/Linux/NativeProcessLinux.cpp
+ fi
+ # disable docs for lldb as they fail to generate
+ vsed -i '/add_subdirectory(docs)/d' \
+ ${wrksrc}/lldb/CMakeLists.txt
+ fi
+
+ # update config.guess for better platform detection
+ cp $XBPS_COMMONDIR/environment/configure/automake/config.guess \
+ ${wrksrc}/llvm/cmake
+
+ # fix linker failures on some archs
+ vsed -i 's,check_library_exists(gcc_s .*,set(LIBCXXABI_HAS_GCC_S_LIB ON),' \
+ ${wrksrc}/libcxxabi/cmake/config-ix.cmake
+ vsed -i 's,check_library_exists(gcc .*,set(LIBCXXABI_HAS_GCC_LIB ON),' \
+ ${wrksrc}/libcxxabi/cmake/config-ix.cmake
+
+ # need libssp_nonshared on some musl platforms (because of nodefaultlibs)
+ case "$XBPS_TARGET_MACHINE" in
+ ppc64*) ;;
+ ppc*-musl|i686-musl|mips*-musl)
+ vsed -i 's,^# Setup flags.$,add_library_flags(ssp_nonshared),' \
+ ${wrksrc}/libunwind/src/CMakeLists.txt
+ vsed -i 's,^# Setup flags.$,add_library_flags(ssp_nonshared),' \
+ ${wrksrc}/libcxxabi/src/CMakeLists.txt
+ vsed -i 's,#ssp,,' ${wrksrc}/libcxx/CMakeLists.txt
+ ;;
+ esac
+
+ case "$XBPS_TARGET_MACHINE" in
+ arm*-musl|i686-musl) # sanitizer code is broken since it duplicates some libc bits
+ vsed -i 's/set(COMPILER_RT_HAS_SANITIZER_COMMON TRUE)/set(COMPILER_RT_HAS_SANITIZER_COMMON FALSE)/' \
+ ${wrksrc}/compiler-rt/cmake/config-ix.cmake
+ ;;
+ esac
+}
+
+pre_configure() {
+ local triplet
+
+ # Vastly reduce size of debugging symbols:
+ CFLAGS=${CFLAGS/ -g/ -g1}
+ CXXFLAGS=${CXXFLAGS/ -g/ -g1}
+
+ # since gcc9, the build likes to blow up for ppc32 apparently because
+ # of clang being too large for a 24-bit relative call to the PLT, so
+ # optimize for size instead
+ case "$XBPS_TARGET_MACHINE" in
+ ppc64*) ;;
+ mips*-musl|ppc*) configure_args+=" -DVOID_CXX_OPT_FLAGS=-Os" ;;
+ esac
+
+ if [ "$CROSS_BUILD" ]; then
+ msg_normal "Building host tblgen\n"
+ mkdir -p build/HOST
+ cd build/HOST
+ CC="$BUILD_CC" CXX="$BUILD_CXX" CFLAGS="$BUILD_CFLAGS" \
+ CXXFLAGS="$BUILD_CXXFLAGS" LDFLAGS="$BUILD_LDFLAGS" \
+ cmake ../.. -DCMAKE_BUILD_TYPE=Release \
+ -DLLVM_ENABLE_PROJECTS=${_enabled_projects}
+ make ${makejobs} -C utils/TableGen
+ make ${makejobs} -C tools/clang/utils/TableGen
+ [ "$_lldb_enable" = "yes" ] && make ${makejobs} -C tools/lldb/utils/TableGen
+ configure_args+=" -DLLVM_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/llvm-tblgen"
+ configure_args+=" -DCLANG_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/clang-tblgen"
+ [ "$_lldb_enable" = "yes" ] && configure_args+=" -DLLDB_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/lldb-tblgen"
+ cd ../..
+ fi
+
+ case "$XBPS_TARGET_MACHINE" in
+ i686*) _arch="X86";;
+ x86_64*) _arch="X86";;
+ armv5*) _arch="Armv5te";;
+ armv6*) _arch="Armv6";;
+ armv7*) _arch="Armv7";;
+ aarch64*) _arch="AArch64";;
+ mips*) _arch="Mips";;
+ ppc*) _arch="PowerPC";;
+ riscv64*) _arch="RISCV64";;
+ esac
+
+ triplet=${XBPS_CROSS_TRIPLET:-$XBPS_TRIPLET}
+
+ configure_args+=" -DLLVM_TARGET_ARCH=${_arch}"
+ configure_args+=" -DLLVM_HOST_TRIPLE=${triplet}"
+ configure_args+=" -DLLVM_DEFAULT_TARGET_TRIPLE=${triplet}"
+}
+
+do_install() {
+ cd build
+ cmake -DCMAKE_INSTALL_PREFIX=${DESTDIR}/usr -P cmake_install.cmake
+
+ # Required for multilib.
+ if [ "$XBPS_TARGET_MACHINE" = "x86_64" ]; then
+ for _header in llvm-config; do
+ mv ${DESTDIR}/usr/include/llvm/Config/${_header}{,-64}.h
+ vinstall ${FILESDIR}/llvm-Config-${_header}.h 644 \
+ usr/include/llvm/Config ${_header}.h
+ done
+ fi
+
+ # Remove llvm-config-host in cross builds.
+ if [ "$CROSS_BUILD" ]; then
+ rm -f ${DESTDIR}/usr/bin/llvm-config-host
+ fi
+
+ # Install libcxxabi headers
+ vinstall ${wrksrc}/libcxxabi/include/__cxxabi_config.h 644 usr/include
+ vinstall ${wrksrc}/libcxxabi/include/cxxabi.h 644 usr/include
+
+ # Install libunwind headers
+ vinstall ${wrksrc}/libunwind/include/__libunwind_config.h 644 usr/include
+ vinstall ${wrksrc}/libunwind/include/libunwind.h 644 usr/include
+ vinstall ${wrksrc}/libunwind/include/unwind.h 644 usr/include
+ vinstall ${wrksrc}/libunwind/include/mach-o/compact_unwind_encoding.h \
+ 644 usr/include/mach-o
+}
+
+clang-analyzer_package() {
+ pycompile_dirs="usr/share/scan-view"
+ depends="clang-${version}_${revision} python3 perl"
+ short_desc+=" - A source code analysis framework"
+ homepage="https://clang-analyzer.llvm.org/"
+ pkg_install() {
+ vmove "usr/bin/scan-*"
+ vmove "usr/libexec/*analyzer"
+ vmove "usr/share/scan-*"
+ vmove usr/share/man/man1/scan-build.1
+ }
+}
+
+clang-tools-extra_package() {
+ lib32disabled=yes
+ depends="clang-${version}_${revision} python3"
+ short_desc+=" - Extra Clang tools"
+ homepage="https://clang.llvm.org/extra/"
+ pkg_install() {
+ vmove usr/bin/clang-apply-replacements
+ vmove usr/bin/clang-doc
+ vmove usr/bin/clang-include-fixer
+ vmove usr/bin/clang-query
+ vmove usr/bin/clang-rename
+ vmove usr/bin/clang-reorder-fields
+ vmove usr/bin/clang-tidy
+ vmove usr/bin/clangd
+ vmove usr/bin/diagtool
+ vmove usr/bin/find-all-symbols
+ vmove usr/bin/hmaptool
+ vmove usr/bin/modularize
+ vmove usr/bin/pp-trace
+ vmove usr/bin/sancov
+ vmove usr/include/clang-tidy
+ vmove "usr/lib/libclangApplyReplacements*"
+ vmove "usr/lib/libclangDoc*"
+ vmove "usr/lib/libclangIncludeFixer*"
+ vmove "usr/lib/libclangReorderFields*"
+ vmove "usr/lib/libclangQuery*"
+ vmove "usr/lib/libclangTidy*"
+ vmove "usr/share/clang/*include-fixer*"
+ vmove "usr/share/clang/*rename*"
+ vmove "usr/share/clang/*tidy*"
+ vmove usr/share/doc/LLVM/clang-tools
+ vmove usr/share/man/man1/diagtool.1
+ vmove usr/share/man/man1/extraclangtools.1
+ }
+}
+
+clang_package() {
+ lib32disabled=yes
+ depends="libstdc++-devel libgcc-devel binutils ${XBPS_TARGET_LIBC}-devel
+ libclang-${version}_${revision}"
+ short_desc+=" - C language family frontend"
+ homepage="https://clang.llvm.org/"
+ pkg_install() {
+ vmove "usr/bin/*clang*"
+ vmove usr/bin/c-index-test
+ vmove usr/include/clang
+ vmove usr/include/clang-c
+ vmove usr/lib/clang
+ vmove usr/lib/cmake/clang
+ vmove "usr/lib/libclang*.a"
+ vmove "usr/lib/libclang*.so"
+ vmove usr/share/clang
+ vmove usr/share/doc/LLVM/clang
+ vmove usr/share/man/man1/clang.1
+ }
+}
+
+libclang_package() {
+ short_desc+=" - C frontend runtime library"
+ pkg_install() {
+ vmove "usr/lib/libclang.so.*"
+ }
+}
+
+libclang-cpp_package() {
+ short_desc+=" - C frontend runtime library (C++ interface)"
+ pkg_install() {
+ vmove "usr/lib/libclang-cpp.so.*"
+ }
+}
+
+lld_package() {
+ lib32disabled=yes
+ short_desc+=" - linker"
+ homepage="https://lld.llvm.org"
+ pkg_install() {
+ vmove usr/bin/ld.lld*
+ vmove usr/bin/ld64.lld*
+ vmove usr/bin/lld*
+ vmove usr/bin/wasm-ld
+ vmove usr/share/doc/LLVM/lld
+ }
+}
+
+lld-devel_package() {
+ lib32disabled=yes
+ short_desc+=" - linker - development files"
+ homepage="https://lld.llvm.org"
+ depends="lld>=${version}_${revision}"
+ pkg_install() {
+ vmove usr/include/lld
+ vmove usr/lib/cmake/lld
+ vmove "usr/lib/liblld*a"
+ }
+}
+
+lldb_package() {
+ lib32disabled=yes
+ depends+=" python3-six"
+ short_desc+=" - LLDB debugger"
+ homepage="https://lldb.llvm.org/"
+ pkg_install() {
+ vmove usr/bin/*lldb*
+ vmove usr/lib/liblldb*so.*
+ vmove /usr/lib/python*
+ }
+}
+
+lldb-devel_package() {
+ lib32disabled=yes
+ depends="lldb>=${version}_${revision}"
+ short_desc+=" - LLDB debugger - development files"
+ pkg_install() {
+ vmove usr/include/lldb
+ vmove "usr/lib/liblldb*.so"
+ }
+}
+
+llvm-libunwind_package() {
+ short_desc+=" - libunwind"
+ pkg_install() {
+ vmove "usr/lib/${XBPS_TRIPLET}/libunwind.so.*"
+ }
+}
+
+llvm-libunwind-devel_package() {
+ short_desc+=" - libunwind - development files"
+ depends="llvm-libunwind>=${version}_${revision}"
+ conflicts="libunwind-devel>=0"
+ pkg_install() {
+ vmove usr/include/mach-o
+ vmove "usr/include/*unwind*"
+ vmove "usr/lib/${XBPS_TRIPLET}/libunwind.a"
+ vmove "usr/lib/${XBPS_TRIPLET}/libunwind.so"
+ vmove usr/share/doc/LLVM/libunwind
+ }
+}
+
+libcxxabi_package() {
+ short_desc+=" - low level support for libc++"
+ pkg_install() {
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++abi.so.*"
+ }
+}
+
+libcxxabi-devel_package() {
+ short_desc+=" - low level support for libc++ - development files"
+ depends="libcxxabi>=${version}_${revision}"
+ pkg_install() {
+ vmove "usr/include/*cxxabi*"
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++abi.so"
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++abi.a"
+ }
+}
+
+libcxx_package() {
+ short_desc+=" - C++ standard library"
+ pkg_install() {
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++.so.*"
+ }
+}
+
+libcxx-devel_package() {
+ short_desc+=" - C++ standard library - development files"
+ depends="libcxx>=${version}_${revision}"
+ pkg_install() {
+ vmove usr/include/c++
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++.so"
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++.a"
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++experimental.a"
+ vmove usr/share/doc/LLVM/libcxx
+ }
+}
+
+libomp_package() {
+ short_desc+=" - Clang OpenMP support library"
+ pkg_install() {
+ vmove usr/lib/libarcher.so
+ vmove usr/lib/libompd.so
+ vmove "usr/lib/libomptarget.rtl.*.so"
+ vmove "usr/lib/libomp*.so.*"
+ }
+}
+
+libomp-devel_package() {
+ short_desc+=" - Clang OpenMP support library - development files"
+ depends="libomp>=${version}_${revision}"
+ pkg_install() {
+ vmove "usr/include/omp*.h"
+ vmove "usr/lib/clang/${version}/include/omp*.h"
+ vmove "usr/lib/libarcher*"
+ vmove "usr/lib/libomp*.so"
+ vmove usr/lib/cmake/openmp
+ vmove usr/share/doc/LLVM/openmp
+ vmove usr/share/man/man1/llvmopenmp.1
+ }
+}
+
+libllvm15_package() {
+ short_desc+=" - runtime library"
+ pkg_install() {
+ vmove "usr/lib/libLLVM-*.so*"
+ }
+}
diff --git a/srcpkgs/llvm15/update b/srcpkgs/llvm15/update
new file mode 100644
index 000000000000..e95cf26b3586
--- /dev/null
+++ b/srcpkgs/llvm15/update
@@ -0,0 +1,3 @@
+site="https://github.com/llvm/llvm-project/releases"
+pattern="llvmorg-\K(\d+.){2}\d+(-rc\d+)?"
+ignore="*-rc*"
From d853a3fdcc302937e10b48d237646e9dcc76ba3e Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Sun, 18 Dec 2022 00:40:18 +0100
Subject: [PATCH 02/13] llvm: update to 15
---
common/shlibs | 6 +++---
srcpkgs/clang | 2 +-
srcpkgs/clang-analyzer | 2 +-
srcpkgs/clang-tools-extra | 2 +-
srcpkgs/libclang | 2 +-
srcpkgs/libclang-cpp | 2 +-
srcpkgs/libcxx | 2 +-
srcpkgs/libcxx-devel | 2 +-
srcpkgs/libcxxabi | 2 +-
srcpkgs/libcxxabi-devel | 2 +-
srcpkgs/libomp | 2 +-
srcpkgs/libomp-devel | 2 +-
srcpkgs/lld | 2 +-
srcpkgs/lld-devel | 2 +-
srcpkgs/lldb | 2 +-
srcpkgs/lldb-devel | 2 +-
srcpkgs/llvm-libunwind | 2 +-
srcpkgs/llvm-libunwind-devel | 2 +-
srcpkgs/llvm/template | 6 +++---
19 files changed, 23 insertions(+), 23 deletions(-)
diff --git a/common/shlibs b/common/shlibs
index 33c2dcdd3f43..9d0dc1c25cff 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -985,9 +985,9 @@ 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.12 lldb-12.0.0_1
-libclang.so.12 libclang-12.0.0_1
-libclang-cpp.so.12 libclang-cpp-12.0.0_1
+liblldb.so.15 lldb-15.0.6_1
+libclang.so.15 libclang-15.0.6_1
+libclang-cpp.so.15 libclang-cpp-15.0.6_1
libLLVM-11.so libllvm11-11.0.0_1
libLLVM-12.so libllvm12-12.0.0_1
libLLVM-15.so libllvm15-15.0.6_1
diff --git a/srcpkgs/clang b/srcpkgs/clang
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/clang
+++ b/srcpkgs/clang
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/clang-analyzer b/srcpkgs/clang-analyzer
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/clang-analyzer
+++ b/srcpkgs/clang-analyzer
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/clang-tools-extra b/srcpkgs/clang-tools-extra
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/clang-tools-extra
+++ b/srcpkgs/clang-tools-extra
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libclang b/srcpkgs/libclang
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libclang
+++ b/srcpkgs/libclang
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libclang-cpp b/srcpkgs/libclang-cpp
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libclang-cpp
+++ b/srcpkgs/libclang-cpp
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxx b/srcpkgs/libcxx
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxx
+++ b/srcpkgs/libcxx
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxx-devel b/srcpkgs/libcxx-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxx-devel
+++ b/srcpkgs/libcxx-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxxabi b/srcpkgs/libcxxabi
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxxabi
+++ b/srcpkgs/libcxxabi
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxxabi-devel b/srcpkgs/libcxxabi-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxxabi-devel
+++ b/srcpkgs/libcxxabi-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libomp b/srcpkgs/libomp
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libomp
+++ b/srcpkgs/libomp
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libomp-devel b/srcpkgs/libomp-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libomp-devel
+++ b/srcpkgs/libomp-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lld b/srcpkgs/lld
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lld
+++ b/srcpkgs/lld
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lld-devel b/srcpkgs/lld-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lld-devel
+++ b/srcpkgs/lld-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lldb b/srcpkgs/lldb
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lldb
+++ b/srcpkgs/lldb
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lldb-devel b/srcpkgs/lldb-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lldb-devel
+++ b/srcpkgs/lldb-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm-libunwind b/srcpkgs/llvm-libunwind
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/llvm-libunwind
+++ b/srcpkgs/llvm-libunwind
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm-libunwind-devel b/srcpkgs/llvm-libunwind-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/llvm-libunwind-devel
+++ b/srcpkgs/llvm-libunwind-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm/template b/srcpkgs/llvm/template
index a92db6f94f9f..fc1c850bd26f 100644
--- a/srcpkgs/llvm/template
+++ b/srcpkgs/llvm/template
@@ -1,11 +1,11 @@
# Template file for 'llvm'
pkgname=llvm
-version=12.0.0
+version=15
revision=1
build_style=meta
-depends="llvm12"
-replaces="llvm11>=0 llvm10>=0 llvm9>=0 llvm8>=0 llvm7>=0 llvm6.0>=0 llvm3.9>=0"
+depends="llvm15"
short_desc="LLVM meta package"
maintainer="Enno Boland <gottox@voidlinux.org>"
license="Public Domain"
homepage="https://www.voidlinux.org"
+replaces="llvm12>=0 llvm11>=0 llvm10>=0 llvm9>=0 llvm8>=0 llvm7>=0 llvm6.0>=0 llvm3.9>=0"
From d0eecab28039d4a54929aebeae7e53883851df56 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Sun, 18 Dec 2022 12:20:08 +0100
Subject: [PATCH 03/13] llvm12: remove bumped subpackages
---
srcpkgs/llvm12/template | 264 +---------------------------------------
1 file changed, 1 insertion(+), 263 deletions(-)
diff --git a/srcpkgs/llvm12/template b/srcpkgs/llvm12/template
index f8ea3ba641ae..aea0b43cf573 100644
--- a/srcpkgs/llvm12/template
+++ b/srcpkgs/llvm12/template
@@ -50,55 +50,7 @@ case "$XBPS_TARGET_MACHINE" in
ppc*) configure_args+=" -DCLANG_ENABLE_CLANGD=OFF" ;;
esac
-_enabled_projects="clang;clang-tools-extra;compiler-rt;libcxx;libcxxabi;libunwind;lld"
-
-_lldb_enable=yes
-_libomp_enable=no
-
-case "$XBPS_TARGET_MACHINE" in
- ppc64le*) ;;
- ppc*|i686*) _lldb_enable=no ;;
-esac
-
-case "$XBPS_TARGET_MACHINE" in
- x86_64*|aarch64*|ppc64*) _libomp_enable=yes;;
-esac
-
-subpackages="clang-tools-extra"
-
-# must go before clang
-if [ "$_libomp_enable" = "yes" ]; then
- _enabled_projects+=";openmp"
- subpackages+=" libomp libomp-devel"
- # because of cmake nonsense referencing libomptarget.so.*
- depends+=" libomp>=${version}_${revision}"
-fi
-
-subpackages+=" clang clang-analyzer libclang libclang-cpp
- llvm-libunwind llvm-libunwind-devel libcxx libcxx-devel
- libcxxabi libcxxabi-devel libllvm12"
-
-if [ "$_lldb_enable" = "yes" ]; then
- # XXX fails to cross compile due to python
- _enabled_projects+=";lldb"
- subpackages+=" lldb lldb-devel"
-fi
-
-subpackages+=" lld lld-devel"
-
-configure_args+=" -DLLVM_ENABLE_PROJECTS=${_enabled_projects}"
-
post_patch() {
- if [ "$_lldb_enable" = "yes" ]; then
- if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
- vsed -i 's|__ptrace_request|int|g' \
- ${wrksrc}/lldb/source/Plugins/Process/Linux/NativeProcessLinux.cpp
- fi
- # disable docs for lldb as they fail to generate
- vsed -i '/add_subdirectory(docs)/d' \
- ${wrksrc}/lldb/CMakeLists.txt
- fi
-
# update config.guess for better platform detection
cp $XBPS_COMMONDIR/environment/configure/automake/config.guess \
${wrksrc}/llvm/cmake
@@ -154,14 +106,12 @@ pre_configure() {
cd build/HOST
CC="$BUILD_CC" CXX="$BUILD_CXX" CFLAGS="$BUILD_CFLAGS" \
CXXFLAGS="$BUILD_CXXFLAGS" LDFLAGS="$BUILD_LDFLAGS" \
- cmake ../.. -DCMAKE_BUILD_TYPE=Release \
- -DLLVM_ENABLE_PROJECTS=${_enabled_projects}
+ cmake ../.. -DCMAKE_BUILD_TYPE=Release
make ${makejobs} -C utils/TableGen
make ${makejobs} -C tools/clang/utils/TableGen
[ "$_lldb_enable" = "yes" ] && make ${makejobs} -C tools/lldb/utils/TableGen
configure_args+=" -DLLVM_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/llvm-tblgen"
configure_args+=" -DCLANG_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/clang-tblgen"
- [ "$_lldb_enable" = "yes" ] && configure_args+=" -DLLDB_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/lldb-tblgen"
cd ../..
fi
@@ -201,218 +151,6 @@ do_install() {
if [ "$CROSS_BUILD" ]; then
rm -f ${DESTDIR}/usr/bin/llvm-config-host
fi
-
- # Install libcxxabi headers
- vinstall ${wrksrc}/libcxxabi/include/__cxxabi_config.h 644 usr/include
- vinstall ${wrksrc}/libcxxabi/include/cxxabi.h 644 usr/include
-
- # Install libunwind headers
- vinstall ${wrksrc}/libunwind/include/__libunwind_config.h 644 usr/include
- vinstall ${wrksrc}/libunwind/include/libunwind.h 644 usr/include
- vinstall ${wrksrc}/libunwind/include/unwind.h 644 usr/include
- vinstall ${wrksrc}/libunwind/include/mach-o/compact_unwind_encoding.h \
- 644 usr/include/mach-o
-}
-
-clang-analyzer_package() {
- pycompile_dirs="usr/share/scan-view"
- depends="clang-${version}_${revision} python3 perl"
- short_desc+=" - A source code analysis framework"
- homepage="https://clang-analyzer.llvm.org/"
- pkg_install() {
- vmove usr/share/man/man1/scan-build.1
- vmove "/usr/bin/scan-*"
- vmove "/usr/share/scan-*"
- vmove "/usr/libexec/*analyzer"
- }
-}
-
-clang-tools-extra_package() {
- lib32disabled=yes
- depends="clang-${version}_${revision} python3"
- short_desc+=" - Extra Clang tools"
- homepage="https://clang.llvm.org/extra/"
- pkg_install() {
- vmove usr/include/clang-tidy
- vmove usr/bin/clang-apply-replacements
- vmove usr/bin/clang-query
- vmove usr/bin/clang-rename
- vmove usr/bin/clang-tidy
- vmove usr/bin/diagtool
- vmove usr/bin/find-all-symbols
- vmove usr/bin/hmaptool
- vmove usr/bin/modularize
- vmove usr/bin/pp-trace
- vmove usr/bin/sancov
- vmove "usr/lib/libclangApplyReplacements*"
- vmove "usr/lib/libclangQuery*"
- vmove "usr/lib/libclangTidy*"
- vmove "usr/share/clang/*tidy*"
- vmove usr/share/doc/clang-tools
- vmove usr/share/man/man1/extraclangtools.1
- vmove usr/share/man/man1/diagtool.1
- }
-}
-
-clang_package() {
- lib32disabled=yes
- depends="libstdc++-devel libgcc-devel binutils ${XBPS_TARGET_LIBC}-devel
- libclang-${version}_${revision}"
- short_desc+=" - C language family frontend"
- homepage="https://clang.llvm.org/"
- pkg_install() {
- vmove usr/include/clang
- vmove usr/include/clang-c
- vmove "usr/bin/*clang*"
- vmove usr/bin/c-index-test
- vmove usr/lib/clang
- vmove usr/lib/cmake/clang
- vmove "usr/lib/libclang*.a"
- vmove "usr/lib/libclang*.so"
- vmove usr/share/clang
- vmove usr/share/doc/clang
- vmove usr/share/man/man1/clang.1
- }
-}
-
-libclang_package() {
- short_desc+=" - C frontend runtime library"
- pkg_install() {
- vmove "usr/lib/libclang.so.*"
- }
-}
-
-libclang-cpp_package() {
- short_desc+=" - C frontend runtime library (C++ interface)"
- pkg_install() {
- vmove "usr/lib/libclang-cpp.so.*"
- }
-}
-
-lld_package() {
- lib32disabled=yes
- short_desc+=" - linker"
- homepage="https://lld.llvm.org"
- pkg_install() {
- vmove usr/bin/lld*
- vmove usr/bin/wasm-ld
- vmove usr/bin/ld.lld*
- vmove usr/bin/ld64.lld*
- vmove usr/share/doc/lld
- }
-}
-
-lld-devel_package() {
- lib32disabled=yes
- short_desc+=" - linker - development files"
- homepage="https://lld.llvm.org"
- depends="lld>=${version}_${revision}"
- pkg_install() {
- vmove usr/include/lld
- vmove usr/lib/cmake/lld
- vmove "usr/lib/liblld*a"
- }
-}
-
-lldb_package() {
- lib32disabled=yes
- depends+=" python3-six"
- short_desc+=" - LLDB debugger"
- homepage="https://lldb.llvm.org/"
- pkg_install() {
- vmove usr/bin/*lldb*
- vmove usr/lib/liblldb*so.*
- vmove /usr/lib/python*
- }
-}
-
-lldb-devel_package() {
- lib32disabled=yes
- depends="lldb>=${version}_${revision}"
- short_desc+=" - LLDB debugger - development files"
- pkg_install() {
- vmove usr/include/lldb
- vmove "usr/lib/liblldb*.so"
- }
-}
-
-llvm-libunwind_package() {
- short_desc+=" - libunwind"
- pkg_install() {
- vmove "usr/lib/libunwind.so.*"
- }
-}
-
-llvm-libunwind-devel_package() {
- short_desc+=" - libunwind - development files"
- depends="llvm-libunwind>=${version}_${revision}"
- conflicts="libunwind-devel>=0"
- pkg_install() {
- vmove usr/lib/libunwind.so
- vmove usr/lib/libunwind.a
- vmove "usr/include/*unwind*"
- vmove usr/include/mach-o
- vmove usr/share/doc/libunwind
- }
-}
-
-libcxxabi_package() {
- short_desc+=" - low level support for libc++"
- pkg_install() {
- vmove "usr/lib/libc++abi.so.*"
- }
-}
-
-libcxxabi-devel_package() {
- short_desc+=" - low level support for libc++ - development files"
- depends="libcxxabi>=${version}_${revision}"
- pkg_install() {
- vmove usr/lib/libc++abi.so
- vmove usr/lib/libc++abi.a
- vmove "usr/include/*cxxabi*"
- }
-}
-
-libcxx_package() {
- short_desc+=" - C++ standard library"
- pkg_install() {
- vmove "usr/lib/libc++.so.*"
- }
-}
-
-libcxx-devel_package() {
- short_desc+=" - C++ standard library - development files"
- depends="libcxx>=${version}_${revision}"
- pkg_install() {
- vmove usr/lib/libc++.so
- vmove usr/lib/libc++.a
- vmove usr/lib/libc++experimental.a
- vmove usr/include/c++
- vmove usr/share/doc/libcxx
- }
-}
-
-libomp_package() {
- short_desc+=" - Clang OpenMP support library"
- pkg_install() {
- vmove usr/lib/libomp.so
- vmove "usr/lib/libomptarget.rtl.*.so"
- vmove usr/lib/libarcher.so
- vmove "usr/lib/libomp*.so.*"
- }
-}
-
-libomp-devel_package() {
- short_desc+=" - Clang OpenMP support library - development files"
- depends="libomp>=${version}_${revision}"
- pkg_install() {
- vmove "usr/lib/libomp*.so"
- vmove "usr/lib/libarcher*"
- vmove "usr/include/omp*.h"
- vmove "usr/lib/clang/${version}/include/omp*.h"
- vmove usr/share/man/man1/llvmopenmp.1
- vmove usr/share/doc/openmp
- }
}
libllvm12_package() {
From 6d69faefe1897edae9d93b3ab3d437d563f415b5 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:27:03 +0100
Subject: [PATCH 04/13] mesa: rebuild for llvm15
---
srcpkgs/mesa/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/mesa/template b/srcpkgs/mesa/template
index 4c3c9ec6039e..0641b28a80d6 100644
--- a/srcpkgs/mesa/template
+++ b/srcpkgs/mesa/template
@@ -1,7 +1,7 @@
# Template file for 'mesa'
pkgname=mesa
version=22.2.4
-revision=2
+revision=3
build_style=meson
configure_args="-Dglvnd=true -Dshared-glapi=enabled -Dgbm=enabled -Degl=enabled
-Dosmesa=true -Dgles1=enabled -Dgles2=enabled -Dglx=dri -Ddri3=enabled
From fd691eb26f96f2cdbb110d8189ac6c4f43e7b434 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:34:04 +0100
Subject: [PATCH 05/13] bcc: rebuild for llvm15
---
srcpkgs/bcc/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/bcc/template b/srcpkgs/bcc/template
index 168a67389bba..219ab9b50219 100644
--- a/srcpkgs/bcc/template
+++ b/srcpkgs/bcc/template
@@ -1,7 +1,7 @@
# Template file for 'bcc'
pkgname=bcc
version=0.25.0
-revision=2
+revision=3
build_style=cmake
configure_args="-DREVISION=${version} -DENABLE_LLVM_SHARED=1"
hostmakedepends="flex python3"
From 9c18635faba0f34851ae42328b2385b09e744a7f Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:37:25 +0100
Subject: [PATCH 06/13] bpftrace: rebuild for llvm15
---
srcpkgs/bpftrace/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/bpftrace/template b/srcpkgs/bpftrace/template
index 190cebb8e3bc..6c1b3386d358 100644
--- a/srcpkgs/bpftrace/template
+++ b/srcpkgs/bpftrace/template
@@ -1,7 +1,7 @@
# Template file for 'bpftrace'
pkgname=bpftrace
version=0.15.0
-revision=1
+revision=2
archs="x86_64* aarch64* ppc64*"
build_style=cmake
configure_args="-DBUILD_TESTING=OFF" # needs root to run
@@ -11,7 +11,7 @@ short_desc="High-level tracing language for Linux enhanced Berkeley Packet Filte
maintainer="Leah Neukirchen <leah@vuxu.org>"
license="Apache-2.0"
homepage="https://github.com/iovisor/bpftrace/"
-distfiles="https://github.com/iovisor/bpftrace/archive/v${version}.tar.gz"
+distfiles="https://github.com/iovisor/bpftrace/archive/refs/tags/v${version}.tar.gz"
checksum=64f67e615998d8150f5ee28614bea9ed303f20f6887bc4cdffa5f9c9477ef52a
nostrip=yes # needs to read own symbol table
From f83c63f58dd37208b4efe5c5e6909233b2414685 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:43:53 +0100
Subject: [PATCH 07/13] CastXML: rebuild for llvm15
---
srcpkgs/CastXML/template | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/srcpkgs/CastXML/template b/srcpkgs/CastXML/template
index 5d7d9503658c..28c424c78073 100644
--- a/srcpkgs/CastXML/template
+++ b/srcpkgs/CastXML/template
@@ -1,7 +1,7 @@
# Template file for 'CastXML'
pkgname=CastXML
version=0.4.6
-revision=1
+revision=2
build_style=cmake
configure_args="-DSPHINX_MAN=YES -DCastXML_INSTALL_MAN_DIR=share/man"
hostmakedepends="clang python3-Sphinx"
@@ -12,8 +12,8 @@ short_desc="C-family abstract syntax tree XML output tool"
maintainer="Evgeny Ermakov <evgeny.v.ermakov@gmail.com>"
license="Apache-2.0"
homepage="https://github.com/CastXML/CastXML"
-distfiles="https://github.com/CastXML/CastXML/archive/v${version}.tar.gz"
-checksum=8dcdbc1f23a130e4bdb0b09f57c30761a02a346b4db4037555048af2a293d66a
+distfiles="https://github.com/CastXML/CastXML/archive/refs/tags/v${version}.tar.gz"
+checksum=bb9024ec9ea5082e0d527f19bf3c2df79f1699f54b6cec168c024e727b32e6d1
post_install() {
rm -r ${DESTDIR}/usr/share/castxml/clang/include
From 0295fbeda543458631068bc0accf7802fad1e611 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:48:55 +0100
Subject: [PATCH 08/13] ccls: rebuild for llvm15
---
srcpkgs/ccls/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/ccls/template b/srcpkgs/ccls/template
index 82fa61933878..ecc9f3e38a5d 100644
--- a/srcpkgs/ccls/template
+++ b/srcpkgs/ccls/template
@@ -1,7 +1,7 @@
# Template file for 'ccls'
pkgname=ccls
version=0.20220729
-revision=1
+revision=2
build_style=cmake
hostmakedepends="clang-tools-extra"
makedepends="clang-tools-extra libxml2-devel llvm ncurses-devel rapidjson zlib-devel"
From 1486242530b7748f6d1e1599aad2eb1f08afd805 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:52:14 +0100
Subject: [PATCH 09/13] include-what-you-use: update to 0.19
---
srcpkgs/include-what-you-use/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/include-what-you-use/template b/srcpkgs/include-what-you-use/template
index d3655709c20c..1a30bc04bb2d 100644
--- a/srcpkgs/include-what-you-use/template
+++ b/srcpkgs/include-what-you-use/template
@@ -1,6 +1,6 @@
# Template file for 'include-what-you-use'
pkgname=include-what-you-use
-version=0.16
+version=0.19
revision=1
build_style=cmake
configure_args="-DIWYU_LLVM_ROOT_PATH=${XBPS_CROSS_BASE}/usr "
@@ -11,7 +11,7 @@ maintainer="Leah Neukirchen <leah@vuxu.org>"
license="NCSA"
homepage="https://include-what-you-use.org/"
distfiles="https://include-what-you-use.org/downloads/${pkgname}-${version}.src.tar.gz"
-checksum=8d6fc9b255343bc1e5ec459e39512df1d51c60e03562985e0076036119ff5a1c
+checksum=2b10157b60ea08adc08e3896b4921c73fcadd5ec4eb652b29a34129d501e5ee0
python_version=3
post_install() {
From 11d2d7c20a646304f57bcf24e4220f50db56b8d2 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 15:11:06 +0100
Subject: [PATCH 10/13] SPIRV-LLVM-Translator: update to 15.0.0
---
srcpkgs/SPIRV-LLVM-Translator/template | 13 +++++++------
1 file changed, 7 insertions(+), 6 deletions(-)
diff --git a/srcpkgs/SPIRV-LLVM-Translator/template b/srcpkgs/SPIRV-LLVM-Translator/template
index a2754e58c0e8..bee99f9bcbb2 100644
--- a/srcpkgs/SPIRV-LLVM-Translator/template
+++ b/srcpkgs/SPIRV-LLVM-Translator/template
@@ -1,19 +1,20 @@
# Template file for 'SPIRV-LLVM-Translator'
pkgname=SPIRV-LLVM-Translator
-version=12.0.0
-revision=2
+version=15.0.0
+revision=1
build_style=cmake
make_build_args="llvm-spirv"
configure_args="-Wno-dev -DLLVM_LINK_LLVM_DYLIB=ON -DCMAKE_SKIP_RPATH=ON
- -DLLVM_SPIRV_INCLUDE_TESTS=OFF -DBUILD_SHARED_LIBS=ON"
+ -DLLVM_SPIRV_INCLUDE_TESTS=OFF -DBUILD_SHARED_LIBS=ON
+ -DLLVM_EXTERNAL_SPIRV_HEADERS_SOURCE_DIR=/usr"
hostmakedepends="clang llvm"
-makedepends="clang-tools-extra llvm"
+makedepends="clang-tools-extra llvm SPIRV-Headers"
short_desc="API and commands for processing SPIR-V modules"
maintainer="Orphaned <orphan@voidlinux.org>"
license="NCSA"
homepage="https://github.com/KhronosGroup/SPIRV-LLVM-Translator"
-distfiles="https://github.com/KhronosGroup/${pkgname}/archive/refs/tags/v${version}.tar.gz"
-checksum=6e4fad04203f25fcde4c308c53e9f59bd05a390978992db3212d4b63aff62108
+distfiles="https://github.com/KhronosGroup/SPIRV-LLVM-Translator/archive/refs/tags/v${version}.tar.gz"
+checksum=b1bebd77f72988758c00852e78c2ddc545815a612169a0cb377d021e2f846d88
post_install() {
vlicense LICENSE.TXT
From ec0520198a20203ec6754624439f31f56741cbaf Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Fri, 6 Jan 2023 17:11:04 +0100
Subject: [PATCH 11/13] rtags: rebuild for llvm15
---
srcpkgs/rtags/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/rtags/template b/srcpkgs/rtags/template
index b496a1b0e721..9b161e690d76 100644
--- a/srcpkgs/rtags/template
+++ b/srcpkgs/rtags/template
@@ -1,7 +1,7 @@
# Template file for 'rtags'
pkgname=rtags
version=2.38
-revision=5
+revision=6
build_style=cmake
# Don't run tests in do_install, please.
configure_args="-DSKIP_CTEST=TRUE"
From 83bd90ce1259febe946c7aecc0195aa38145be4e Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Fri, 6 Jan 2023 17:14:14 +0100
Subject: [PATCH 12/13] juCi++: rebuild for llvm15
---
srcpkgs/juCi++/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/juCi++/template b/srcpkgs/juCi++/template
index c1969237f11d..416bde7cc4d0 100644
--- a/srcpkgs/juCi++/template
+++ b/srcpkgs/juCi++/template
@@ -1,7 +1,7 @@
# Template file for 'juCi++'
pkgname=juCi++
version=1.7.2
-revision=2
+revision=3
_libclangmm_commit="9704b9b6de0982a588fa41741157d5640afedf30"
_tiny_commit="839ff806dc447ff49af80f9a9eaa7949f770f8e5"
create_wrksrc=yes
From 93fe0f18ce51a1a5cc6309391a3f3fd4676579c3 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Sat, 7 Jan 2023 11:31:14 +0100
Subject: [PATCH 13/13] qt5: rebuild for llvm15
---
srcpkgs/qt5/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/qt5/template b/srcpkgs/qt5/template
index 233596587525..bc9170215483 100644
--- a/srcpkgs/qt5/template
+++ b/srcpkgs/qt5/template
@@ -3,7 +3,7 @@ pkgname=qt5
version=5.15.7+20221119
# commit f8c9fb304bc3e53b3aa07f962cd74e9160decccc
# base repo: https://invent.kde.org/qt/qt/qt5
-revision=1
+revision=2
build_style=meta
hostmakedepends="cmake clang flex perl glib-devel pkg-config
python re2c ruby which"
^ permalink raw reply [flat|nested] 96+ messages in thread
* Re: [PR PATCH] [Updated] [WIP] LLVM 15
2022-11-28 15:30 [PR PATCH] [WIP] LLVM 15 tranzystorek-io
` (41 preceding siblings ...)
2023-01-07 10:31 ` tranzystorek-io
@ 2023-01-07 17:02 ` tranzystorek-io
2023-01-09 0:22 ` tranzystorek-io
` (51 subsequent siblings)
94 siblings, 0 replies; 96+ messages in thread
From: tranzystorek-io @ 2023-01-07 17:02 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 817 bytes --]
There is an updated pull request by tranzystorek-io against master on the void-packages repository
https://github.com/tranzystorek-io/void-packages llvm15
https://github.com/void-linux/void-packages/pull/40821
[WIP] LLVM 15
[ci skip]
TODO:
- [ ] Adjust patches marked as `.patch.skip`
- [x] Make libomp a shlib (change so file name and install a symlink)
- [ ] Avoid creating triplet dirs under /usr/
TODO LLVM rdeps:
- [ ] clazy
- [ ] beignet
- [ ] ispc (1.18.1 supports LLVM `<= 14`)
- [ ] ldc (1.30.0 supports LLVM `<= 14`)
- [ ] ghdl (2.0.0 supports LLVM `<=14`)
- [x] qt
- [ ] qtcreator (breaking changes in clang-format API)
- [ ] bpftrace (https://github.com/void-linux/void-packages/pull/39002)
A patch file from https://github.com/void-linux/void-packages/pull/40821.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-llvm15-40821.patch --]
[-- Type: text/x-diff, Size: 75570 bytes --]
From 7ded0344547be1d4cd30ba758a9d099d4c4135e2 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Sun, 18 Dec 2022 00:36:59 +0100
Subject: [PATCH 01/13] New package: llvm15-15.0.6
---
common/shlibs | 3 +
srcpkgs/libllvm15 | 1 +
.../llvm15/files/llvm-Config-llvm-config.h | 9 +
...clang-001-fix-unwind-chain-inclusion.patch | 44 ++
.../patches/clang-002-add-musl-triples.patch | 110 +++++
.../clang-003-ppc64-dynamic-linker-path.patch | 13 +
.../patches/clang-004-ppc64-musl-elfv2.patch | 48 ++
.../compiler-rt-sanitizer-ppc64-musl.patch | 35 ++
.../compiler-rt-xray-ppc64-musl.patch.skip | 62 +++
srcpkgs/llvm15/patches/libcxx-musl.patch | 26 ++
srcpkgs/llvm15/patches/libcxx-ppc.patch | 22 +
.../llvm15/patches/libcxx-ssp-nonshared.patch | 11 +
srcpkgs/llvm15/patches/libcxxabi-dl.patch | 25 +
srcpkgs/llvm15/patches/libcxxabi-musl.patch | 38 ++
srcpkgs/llvm15/patches/libomp-soname.patch | 12 +
.../llvm15/patches/libunwind-ppc32.patch.skip | 63 +++
srcpkgs/llvm15/patches/lldb-musl.patch | 40 ++
srcpkgs/llvm15/patches/llvm-001-musl.patch | 57 +++
.../patches/llvm-002-musl-ppc64-elfv2.patch | 30 ++
.../patches/llvm-003-ppc-secureplt.patch | 11 +
.../patches/llvm-004-override-opt.patch | 18 +
.../llvm15/patches/llvm-005-ppc-bigpic.patch | 36 ++
.../patches/llvm-006-aarch64-mf_exec.patch | 25 +
srcpkgs/llvm15/template | 428 ++++++++++++++++++
srcpkgs/llvm15/update | 3 +
25 files changed, 1170 insertions(+)
create mode 120000 srcpkgs/libllvm15
create mode 100644 srcpkgs/llvm15/files/llvm-Config-llvm-config.h
create mode 100644 srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch
create mode 100644 srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch
create mode 100644 srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch
create mode 100644 srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch
create mode 100644 srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch
create mode 100644 srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip
create mode 100644 srcpkgs/llvm15/patches/libcxx-musl.patch
create mode 100644 srcpkgs/llvm15/patches/libcxx-ppc.patch
create mode 100644 srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch
create mode 100644 srcpkgs/llvm15/patches/libcxxabi-dl.patch
create mode 100644 srcpkgs/llvm15/patches/libcxxabi-musl.patch
create mode 100644 srcpkgs/llvm15/patches/libomp-soname.patch
create mode 100644 srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip
create mode 100644 srcpkgs/llvm15/patches/lldb-musl.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-001-musl.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-004-override-opt.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch
create mode 100644 srcpkgs/llvm15/template
create mode 100644 srcpkgs/llvm15/update
diff --git a/common/shlibs b/common/shlibs
index 349c183cdb38..a1192ee99090 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -990,6 +990,9 @@ libclang.so.12 libclang-12.0.0_1
libclang-cpp.so.12 libclang-cpp-12.0.0_1
libLLVM-11.so libllvm11-11.0.0_1
libLLVM-12.so libllvm12-12.0.0_1
+libLLVM-15.so libllvm15-15.0.6_1
+libomp.so.5 libomp-15.0.6_1
+libomptarget.so.15 libomp-15.0.6_1
libisofs.so.6 libisofs-0.6.24_1
libmpack.so.0 libmpack-1.0.5_1
libGeoIP.so.1 libgeoip-1.4.8_1
diff --git a/srcpkgs/libllvm15 b/srcpkgs/libllvm15
new file mode 120000
index 000000000000..ad57a969b9f9
--- /dev/null
+++ b/srcpkgs/libllvm15
@@ -0,0 +1 @@
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm15/files/llvm-Config-llvm-config.h b/srcpkgs/llvm15/files/llvm-Config-llvm-config.h
new file mode 100644
index 000000000000..2fa08c9be696
--- /dev/null
+++ b/srcpkgs/llvm15/files/llvm-Config-llvm-config.h
@@ -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
diff --git a/srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch b/srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch
new file mode 100644
index 000000000000..e4eaa7783e7a
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch
@@ -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
diff --git a/srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch b/srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch
new file mode 100644
index 000000000000..25688d40dbc2
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch
@@ -0,0 +1,110 @@
+--- a/clang/lib/Driver/ToolChains/Gnu.cpp
++++ b/clang/lib/Driver/ToolChains/Gnu.cpp
+@@ -2086,7 +2086,8 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
+ static const char *const ARMHFTriples[] = {"arm-linux-gnueabihf",
+ "armv7hl-redhat-linux-gnueabi",
+ "armv6hl-suse-linux-gnueabi",
+- "armv7hl-suse-linux-gnueabi"};
++ "armv7hl-suse-linux-gnueabi",
++ "armv7l-linux-gnueabihf"};
+ static const char *const ARMebLibDirs[] = {"/lib"};
+ static const char *const ARMebTriples[] = {"armeb-linux-gnueabi",
+ "armeb-linux-androideabi"};
+@@ -2153,8 +2154,7 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
+ "powerpc64-suse-linux", "powerpc-montavista-linuxspe"};
+ static const char *const PPCLELibDirs[] = {"/lib32", "/lib"};
+ static const char *const PPCLETriples[] = {"powerpcle-linux-gnu",
+- "powerpcle-unknown-linux-gnu",
+- "powerpcle-linux-musl"};
++ "powerpcle-unknown-linux-gnu"};
+
+ static const char *const PPC64LibDirs[] = {"/lib64", "/lib"};
+ static const char *const PPC64Triples[] = {
+@@ -2235,6 +2235,87 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
+ return;
+ }
+
++ if (TargetTriple.isMusl()) {
++ static const char *const AArch64MuslTriples[] = {"aarch64-linux-musl"};
++ static const char *const ARMHFMuslTriples[] = {
++ "arm-linux-musleabihf", "armv7l-linux-musleabihf"
++ };
++ static const char *const ARMMuslTriples[] = {"arm-linux-musleabi"};
++ static const char *const X86_64MuslTriples[] = {"x86_64-linux-musl"};
++ static const char *const X86MuslTriples[] = {"i686-linux-musl"};
++ static const char *const MIPSMuslTriples[] = {
++ "mips-linux-musl", "mipsel-linux-musl",
++ "mipsel-linux-muslhf", "mips-linux-muslhf"
++ };
++ static const char *const PPCMuslTriples[] = {"powerpc-linux-musl"};
++ static const char *const PPCLEMuslTriples[] = {"powerpcle-linux-musl"};
++ static const char *const PPC64MuslTriples[] = {"powerpc64-linux-musl"};
++ static const char *const PPC64LEMuslTriples[] = {"powerpc64le-linux-musl"};
++
++ switch (TargetTriple.getArch()) {
++ case llvm::Triple::aarch64:
++ LibDirs.append(begin(AArch64LibDirs), end(AArch64LibDirs));
++ TripleAliases.append(begin(AArch64MuslTriples), end(AArch64MuslTriples));
++ BiarchLibDirs.append(begin(AArch64LibDirs), end(AArch64LibDirs));
++ BiarchTripleAliases.append(begin(AArch64MuslTriples), end(AArch64MuslTriples));
++ break;
++ case llvm::Triple::arm:
++ LibDirs.append(begin(ARMLibDirs), end(ARMLibDirs));
++ if (TargetTriple.getEnvironment() == llvm::Triple::MuslEABIHF) {
++ TripleAliases.append(begin(ARMHFMuslTriples), end(ARMHFMuslTriples));
++ } else {
++ TripleAliases.append(begin(ARMMuslTriples), end(ARMMuslTriples));
++ }
++ break;
++ case llvm::Triple::x86_64:
++ LibDirs.append(begin(X86_64LibDirs), end(X86_64LibDirs));
++ TripleAliases.append(begin(X86_64MuslTriples), end(X86_64MuslTriples));
++ BiarchLibDirs.append(begin(X86LibDirs), end(X86LibDirs));
++ BiarchTripleAliases.append(begin(X86MuslTriples), end(X86MuslTriples));
++ break;
++ case llvm::Triple::x86:
++ LibDirs.append(begin(X86LibDirs), end(X86LibDirs));
++ TripleAliases.append(begin(X86MuslTriples), end(X86MuslTriples));
++ BiarchLibDirs.append(begin(X86_64LibDirs), end(X86_64LibDirs));
++ BiarchTripleAliases.append(begin(X86_64MuslTriples), end(X86_64MuslTriples));
++ break;
++ case llvm::Triple::mips:
++ LibDirs.append(begin(MIPSLibDirs), end(MIPSLibDirs));
++ TripleAliases.append(begin(MIPSMuslTriples), end(MIPSMuslTriples));
++ break;
++ case llvm::Triple::ppc:
++ LibDirs.append(begin(PPCLibDirs), end(PPCLibDirs));
++ TripleAliases.append(begin(PPCMuslTriples), end(PPCMuslTriples));
++ BiarchLibDirs.append(begin(PPC64LibDirs), end(PPC64LibDirs));
++ BiarchTripleAliases.append(begin(PPC64MuslTriples), end(PPC64MuslTriples));
++ break;
++ case llvm::Triple::ppcle:
++ LibDirs.append(begin(PPCLELibDirs), end(PPCLELibDirs));
++ TripleAliases.append(begin(PPCLEMuslTriples), end(PPCLEMuslTriples));
++ BiarchLibDirs.append(begin(PPC64LELibDirs), end(PPC64LELibDirs));
++ BiarchTripleAliases.append(begin(PPC64LEMuslTriples), end(PPC64LEMuslTriples));
++ break;
++ case llvm::Triple::ppc64:
++ LibDirs.append(begin(PPC64LibDirs), end(PPC64LibDirs));
++ TripleAliases.append(begin(PPC64MuslTriples), end(PPC64MuslTriples));
++ BiarchLibDirs.append(begin(PPCLibDirs), end(PPCLibDirs));
++ BiarchTripleAliases.append(begin(PPCMuslTriples), end(PPCMuslTriples));
++ break;
++ case llvm::Triple::ppc64le:
++ LibDirs.append(begin(PPC64LELibDirs), end(PPC64LELibDirs));
++ TripleAliases.append(begin(PPC64LEMuslTriples), end(PPC64LEMuslTriples));
++ BiarchLibDirs.append(begin(PPCLELibDirs), end(PPCLELibDirs));
++ BiarchTripleAliases.append(begin(PPCLEMuslTriples), end(PPCLEMuslTriples));
++ break;
++ default:
++ break;
++ }
++ TripleAliases.push_back(TargetTriple.str());
++ if (TargetTriple.str() != BiarchTriple.str())
++ BiarchTripleAliases.push_back(BiarchTriple.str());
++ return;
++ }
++
+ // Android targets should not use GNU/Linux tools or libraries.
+ if (TargetTriple.isAndroid()) {
+ static const char *const AArch64AndroidTriples[] = {
diff --git a/srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch b/srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch
new file mode 100644
index 000000000000..4ad6412d1e6c
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch
@@ -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 =
diff --git a/srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch b/srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch
new file mode 100644
index 000000000000..21fc8003c5f1
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch
@@ -0,0 +1,48 @@
+--- a/clang/lib/Basic/Targets/PPC.h
++++ b/clang/lib/Basic/Targets/PPC.h
+@@ -415,11 +415,10 @@ public:
+ LongDoubleFormat = &llvm::APFloat::IEEEdouble();
+ } else if ((Triple.getArch() == llvm::Triple::ppc64le)) {
+ DataLayout = "e-m:e-i64:64-n32:64";
+- ABI = "elfv2";
+ } else {
+ DataLayout = "E-m:e-i64:64-n32:64";
+- ABI = "elfv1";
+ }
++ ABI = "elfv2";
+
+ if (Triple.isOSFreeBSD() || Triple.isOSOpenBSD() || Triple.isMusl()) {
+ LongDoubleWidth = LongDoubleAlign = 64;
+--- a/clang/lib/CodeGen/TargetInfo.cpp
++++ b/clang/lib/CodeGen/TargetInfo.cpp
+@@ -10927,9 +10927,9 @@ const TargetCodeGenInfo &CodeGenModule::getTargetCodeGenInfo() {
+ return SetCGInfo(new AIXTargetCodeGenInfo(Types, /*Is64Bit*/ true));
+
+ if (Triple.isOSBinFormatELF()) {
+- PPC64_SVR4_ABIInfo::ABIKind Kind = PPC64_SVR4_ABIInfo::ELFv1;
+- if (getTarget().getABI() == "elfv2")
+- Kind = PPC64_SVR4_ABIInfo::ELFv2;
++ PPC64_SVR4_ABIInfo::ABIKind Kind = PPC64_SVR4_ABIInfo::ELFv2;
++ if (getTarget().getABI() == "elfv1")
++ Kind = PPC64_SVR4_ABIInfo::ELFv1;
+ bool IsSoftFloat = CodeGenOpts.FloatABI == "soft";
+
+ return SetCGInfo(
+--- a/clang/lib/Driver/ToolChains/Clang.cpp
++++ b/clang/lib/Driver/ToolChains/Clang.cpp
+@@ -1920,14 +1920,7 @@ void Clang::AddPPCTargetArgs(const ArgList &Args,
+ const llvm::Triple &T = getToolChain().getTriple();
+ if (T.isOSBinFormatELF()) {
+ switch (getToolChain().getArch()) {
+- case llvm::Triple::ppc64: {
+- if ((T.isOSFreeBSD() && T.getOSMajorVersion() >= 13) ||
+- T.isOSOpenBSD() || T.isMusl())
+- ABIName = "elfv2";
+- else
+- ABIName = "elfv1";
+- break;
+- }
++ case llvm::Triple::ppc64:
+ case llvm::Triple::ppc64le:
+ ABIName = "elfv2";
+ break;
diff --git a/srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch b/srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch
new file mode 100644
index 000000000000..360cfc1ba7f1
--- /dev/null
+++ b/srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch
@@ -0,0 +1,35 @@
+--- 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__) || SANITIZER_RISCV64
++ defined(__hexagon__) || defined(__powerpc__) || 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_ANDROID
++#if (defined(__aarch64__) || defined(__powerpc__) || SANITIZER_RISCV64) && !SANITIZER_ANDROID
+ // GLIBC 2.20+ sys/user does not include asm/ptrace.h
+ # include <asm/ptrace.h>
+ #endif
diff --git a/srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip b/srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip
new file mode 100644
index 000000000000..d0b61c80c897
--- /dev/null
+++ b/srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip
@@ -0,0 +1,62 @@
+--- a/compiler-rt/lib/xray/xray_powerpc64.inc
++++ b/compiler-rt/lib/xray/xray_powerpc64.inc
+@@ -12,7 +12,13 @@
+
+ #include <cstdint>
+ #include <mutex>
++#ifdef __GLIBC__
+ #include <sys/platform/ppc.h>
++#else
++#include <cctype>
++#include <cstring>
++#include <cstdlib>
++#endif
+
+ #include "xray_defs.h"
+
+@@ -20,13 +26,45 @@ namespace __xray {
+
+ ALWAYS_INLINE uint64_t readTSC(uint8_t &CPU) XRAY_NEVER_INSTRUMENT {
+ CPU = 0;
++#ifdef __GLIBC__
+ return __ppc_get_timebase();
++#else
++ return __builtin_ppc_get_timebase();
++#endif
+ }
+
+ inline uint64_t getTSCFrequency() XRAY_NEVER_INSTRUMENT {
+ static std::mutex M;
+ std::lock_guard<std::mutex> Guard(M);
++#ifdef __GLIBC__
+ return __ppc_get_timebase_freq();
++#else
++ /* FIXME: a less dirty implementation? */
++ static uint64_t base;
++ if (!base) {
++ FILE *f = fopen("/proc/cpuinfo", "rb");
++ if (f) {
++ ssize_t nr;
++ /* virtually always big enough to hold the line */
++ char buf[512];
++ while (fgets(buf, sizeof(buf), f)) {
++ char *ret = strstr(buf, "timebase");
++ if (!ret) {
++ continue;
++ }
++ ret += sizeof("timebase") - 1;
++ ret = strchr(ret, ':');
++ if (!ret) {
++ continue;
++ }
++ base = strtoul(ret + 1, nullptr, 10);
++ break;
++ }
++ fclose(f);
++ }
++ }
++ return base;
++#endif
+ }
+
+ inline bool probeRequiredCPUFeatures() XRAY_NEVER_INSTRUMENT {
diff --git a/srcpkgs/llvm15/patches/libcxx-musl.patch b/srcpkgs/llvm15/patches/libcxx-musl.patch
new file mode 100644
index 000000000000..bbd31ffc2cb1
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxx-musl.patch
@@ -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,
+ typename remove_reference<decltype(errno)>::type __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
+ typename remove_reference<decltype(errno)>::type __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,
+ typename remove_reference<decltype(errno)>::type __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
+ typename remove_reference<decltype(errno)>::type __current_errno = errno;
+ if (__current_errno == 0)
+ errno = __save_errno;
diff --git a/srcpkgs/llvm15/patches/libcxx-ppc.patch b/srcpkgs/llvm15/patches/libcxx-ppc.patch
new file mode 100644
index 000000000000..7a92f8004e1c
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxx-ppc.patch
@@ -0,0 +1,22 @@
+This ensures `is_iec559` is defined correctly under all long double ABIs,
+including musl and its 64-bit long double. Also, `__ppc__` or `__ppc64__`
+is not defined on gcc.
+
+--- a/libcxx/include/limits
++++ b/libcxx/include/limits
+@@ -426,8 +426,14 @@ protected:
+ _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type signaling_NaN() _NOEXCEPT {return __builtin_nansl("");}
+ _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type denorm_min() _NOEXCEPT {return __LDBL_DENORM_MIN__;}
+
+-#if (defined(__ppc__) || defined(__ppc64__))
++#if defined(__powerpc__) || defined(__powerpc64__)
++#if (__LDBL_MAX_EXP__ > __DBL_MAX_EXP__) || (__LDBL_MANT_DIG__ == __DBL_MANT_DIG__)
++ /* IEEE 754 quadruple or double precision */
++ static _LIBCPP_CONSTEXPR const bool is_iec559 = true;
++#else
++ /* 128-bit IBM double-double */
+ static _LIBCPP_CONSTEXPR const bool is_iec559 = false;
++#endif
+ #else
+ static _LIBCPP_CONSTEXPR const bool is_iec559 = true;
+ #endif
diff --git a/srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch b/srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch
new file mode 100644
index 000000000000..70292beb2fcd
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch
@@ -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()
diff --git a/srcpkgs/llvm15/patches/libcxxabi-dl.patch b/srcpkgs/llvm15/patches/libcxxabi-dl.patch
new file mode 100644
index 000000000000..3a15f9db8c98
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxxabi-dl.patch
@@ -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 @@
+ target_link_libraries(${target} PRIVATE m)
+ endif()
+
++ if (LIBCXX_HAS_C_LIB)
++ target_link_libraries(${target} PRIVATE dl)
++ endif()
++
+ if (LIBCXX_HAS_RT_LIB)
+ target_link_libraries(${target} PRIVATE rt)
+ endif()
diff --git a/srcpkgs/llvm15/patches/libcxxabi-musl.patch b/srcpkgs/llvm15/patches/libcxxabi-musl.patch
new file mode 100644
index 000000000000..7f89340b8bdf
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxxabi-musl.patch
@@ -0,0 +1,38 @@
+gcc does not support using abi_tag in an extern "C" declaration
+https://github.com/gcc-mirror/gcc/blob/cf59c8983ef6590f0d69014f8dc8778b5b7691c6/gcc/cp/tree.cc#L5354-L5359
+diff -rup libcxx/include/__support/musl/xlocale.h.orig libcxx/include/__support/musl/xlocale.h
+--- a/libcxx/include/__support/musl/xlocale.h.orig 2022-12-19 14:44:34.049044339 -0800
++++ b/libcxx/include/__support/musl/xlocale.h 2022-12-19 14:45:24.211247988 -0800
+@@ -24,27 +24,27 @@
+ extern "C" {
+ #endif
+
+-inline _LIBCPP_HIDE_FROM_ABI long long
++static inline long long
+ strtoll_l(const char *__nptr, char **__endptr, int __base, locale_t) {
+ return ::strtoll(__nptr, __endptr, __base);
+ }
+
+-inline _LIBCPP_HIDE_FROM_ABI unsigned long long
++static inline unsigned long long
+ strtoull_l(const char *__nptr, char **__endptr, int __base, locale_t) {
+ return ::strtoull(__nptr, __endptr, __base);
+ }
+
+-inline _LIBCPP_HIDE_FROM_ABI long long
++static inline long long
+ wcstoll_l(const wchar_t *__nptr, wchar_t **__endptr, int __base, locale_t) {
+ return ::wcstoll(__nptr, __endptr, __base);
+ }
+
+-inline _LIBCPP_HIDE_FROM_ABI long long
++static inline long long
+ wcstoull_l(const wchar_t *__nptr, wchar_t **__endptr, int __base, locale_t) {
+ return ::wcstoull(__nptr, __endptr, __base);
+ }
+
+-inline _LIBCPP_HIDE_FROM_ABI long double
++static inline long double
+ wcstold_l(const wchar_t *__nptr, wchar_t **__endptr, locale_t) {
+ return ::wcstold(__nptr, __endptr);
+ }
diff --git a/srcpkgs/llvm15/patches/libomp-soname.patch b/srcpkgs/llvm15/patches/libomp-soname.patch
new file mode 100644
index 000000000000..9a622cd9254c
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libomp-soname.patch
@@ -0,0 +1,12 @@
+diff --git a/openmp/runtime/src/CMakeLists.txt b/openmp/runtime/src/CMakeLists.txt
+index df1ca9d90..9d2c3b7b9 100644
+--- a/openmp/runtime/src/CMakeLists.txt
++++ b/openmp/runtime/src/CMakeLists.txt
+@@ -150,6 +150,7 @@ libomp_get_libflags(LIBOMP_CONFIGURED_LIBFLAGS)
+ # Build libomp library. Add LLVMSupport dependency if building in-tree with libomptarget profiling enabled.
+ if(OPENMP_STANDALONE_BUILD OR (NOT OPENMP_ENABLE_LIBOMP_PROFILING))
+ add_library(omp ${LIBOMP_LIBRARY_KIND} ${LIBOMP_SOURCE_FILES})
++ set_target_properties(omp PROPERTIES VERSION ${LIBOMP_VERSION_MAJOR} SOVERSION ${LIBOMP_VERSION_MAJOR})
+ # Linking command will include libraries in LIBOMP_CONFIGURED_LIBFLAGS
+ target_link_libraries(omp ${LIBOMP_CONFIGURED_LIBFLAGS} ${LIBOMP_DL_LIBS})
+ else()
diff --git a/srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip b/srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip
new file mode 100644
index 000000000000..74aa7576ecf9
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip
@@ -0,0 +1,63 @@
+This fixes build at least with gcc9 which does not define `__ppc__`.
+
+--- a/libunwind/include/__libunwind_config.h
++++ b/libunwind/include/__libunwind_config.h
+@@ -49,7 +49,7 @@
+ # define _LIBUNWIND_CONTEXT_SIZE 167
+ # define _LIBUNWIND_CURSOR_SIZE 179
+ # define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_PPC64
+-# elif defined(__ppc__)
++# elif defined(__powerpc__)
+ # define _LIBUNWIND_TARGET_PPC 1
+ # define _LIBUNWIND_CONTEXT_SIZE 117
+ # define _LIBUNWIND_CURSOR_SIZE 124
+--- a/libunwind/src/UnwindRegistersRestore.S
++++ b/libunwind/src/UnwindRegistersRestore.S
+@@ -392,7 +392,7 @@ Lnovec:
+ PPC64_LR(3)
+ bctr
+
+-#elif defined(__ppc__)
++#elif defined(__powerpc__)
+
+ DEFINE_LIBUNWIND_FUNCTION(_ZN9libunwind13Registers_ppc6jumptoEv)
+ //
+--- a/libunwind/src/UnwindRegistersSave.S
++++ b/libunwind/src/UnwindRegistersSave.S
+@@ -554,7 +554,7 @@ DEFINE_LIBUNWIND_FUNCTION(__unw_getcontext)
+ blr
+
+
+-#elif defined(__ppc__)
++#elif defined(__powerpc__)
+
+ //
+ // extern int unw_getcontext(unw_context_t* thread_state)
+--- a/libunwind/src/config.h
++++ b/libunwind/src/config.h
+@@ -95,12 +95,12 @@
+ #define _LIBUNWIND_BUILD_SJLJ_APIS
+ #endif
+
+-#if defined(__i386__) || defined(__x86_64__) || defined(__ppc__) || defined(__ppc64__) || defined(__powerpc64__)
++#if defined(__i386__) || defined(__x86_64__) || defined(__powerpc__) || defined(__powerpc64__)
+ #define _LIBUNWIND_SUPPORT_FRAME_APIS
+ #endif
+
+ #if defined(__i386__) || defined(__x86_64__) || \
+- defined(__ppc__) || defined(__ppc64__) || defined(__powerpc64__) || \
++ defined(__powerpc__) || defined(__powerpc64__) || \
+ (!defined(__APPLE__) && defined(__arm__)) || \
+ (defined(__arm64__) || defined(__aarch64__)) || \
+ defined(__mips__)
+--- a/libunwind/src/libunwind.cpp
++++ b/libunwind/src/libunwind.cpp
+@@ -42,7 +42,7 @@ _LIBUNWIND_HIDDEN int __unw_init_local(unw_cursor_t *cursor,
+ # define REGISTER_KIND Registers_x86_64
+ #elif defined(__powerpc64__)
+ # define REGISTER_KIND Registers_ppc64
+-#elif defined(__ppc__)
++#elif defined(__powerpc__)
+ # define REGISTER_KIND Registers_ppc
+ #elif defined(__aarch64__)
+ # define REGISTER_KIND Registers_arm64
diff --git a/srcpkgs/llvm15/patches/lldb-musl.patch b/srcpkgs/llvm15/patches/lldb-musl.patch
new file mode 100644
index 000000000000..026c5e1e61ba
--- /dev/null
+++ b/srcpkgs/llvm15/patches/lldb-musl.patch
@@ -0,0 +1,40 @@
+--- a/lldb/source/Plugins/Process/Linux/Procfs.h
++++ b/lldb/source/Plugins/Process/Linux/Procfs.h
+@@ -10,6 +10,7 @@
+ // sys/procfs.h on Android/Linux for all supported architectures.
+
+ #include <sys/ptrace.h>
++#include <asm/ptrace.h>
+
+ #include "lldb/lldb-types.h"
+
+@@ -17,23 +18,13 @@
+
+ #include <vector>
+
+-#ifdef __ANDROID__
+-#if defined(__arm64__) || defined(__aarch64__)
+-typedef unsigned long elf_greg_t;
+-typedef elf_greg_t
+- elf_gregset_t[(sizeof(struct user_pt_regs) / sizeof(elf_greg_t))];
+-typedef struct user_fpsimd_state elf_fpregset_t;
+-#ifndef NT_FPREGSET
+-#define NT_FPREGSET NT_PRFPREG
+-#endif // NT_FPREGSET
+-#elif defined(__mips__)
+-#ifndef NT_FPREGSET
+-#define NT_FPREGSET NT_PRFPREG
+-#endif // NT_FPREGSET
+-#endif
+-#else // __ANDROID__
++#if !defined(__GLIBC__) && defined(__powerpc__)
++#define pt_regs musl_pt_regs
++#include <sys/procfs.h>
++#undef pt_regs
++#else
+ #include <sys/procfs.h>
+-#endif // __ANDROID__
++#endif
+
+ namespace lldb_private {
+ namespace process_linux {
diff --git a/srcpkgs/llvm15/patches/llvm-001-musl.patch b/srcpkgs/llvm15/patches/llvm-001-musl.patch
new file mode 100644
index 000000000000..f2a3f8d62813
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-001-musl.patch
@@ -0,0 +1,57 @@
+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;
+diff --git a/lib/Support/Unix/DynamicLibrary.inc b/lib/Support/Unix/DynamicLibrary.inc
+index a2a37996..2f86c470 100644
+--- a/llvm/lib/Support/Unix/DynamicLibrary.inc
++++ b/llvm/lib/Support/Unix/DynamicLibrary.inc
+@@ -102,7 +102,7 @@ static void *DoSearch(const char* SymbolName) {
+
+ // This macro returns the address of a well-known, explicit symbol
+ #define EXPLICIT_SYMBOL(SYM) \
+- if (!strcmp(SymbolName, #SYM)) return &SYM
++ if (!strcmp(SymbolName, #SYM)) return (void *)&SYM
+
+ // Under glibc we have a weird situation. The stderr/out/in symbols are both
+ // macros and global variables because of standards requirements. So, we
+diff --git a/utils/unittest/googletest/src/gtest.cc b/utils/unittest/googletest/src/gtest.cc
+index d882ab2e..f1fb12d0 100644
+--- a/llvm/utils/unittest/googletest/src/gtest.cc
++++ b/llvm/utils/unittest/googletest/src/gtest.cc
+@@ -128,6 +128,7 @@
+
+ #if GTEST_CAN_STREAM_RESULTS_
+ # include <arpa/inet.h> // NOLINT
++# include <sys/socket.h> // NOLINT
+ # include <netdb.h> // NOLINT
+ # include <sys/socket.h> // NOLINT
+ # include <sys/types.h> // NOLINT
diff --git a/srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch b/srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch
new file mode 100644
index 000000000000..0071d964bd37
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch
@@ -0,0 +1,30 @@
+This patches LLVM to use ELFv2 on ppc64 unconditionally unless overridden. We
+need this because unlike most distros we use ELFv2 for both glibc and musl
+on big endian ppc64.
+
+diff --git a/lib/Target/PowerPC/PPCTargetMachine.cpp b/lib/Target/PowerPC/PPCTargetMachine.cpp
+index 0634833e..b7cbc2e7 100644
+--- a/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp
++++ b/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp
+@@ -222,9 +222,8 @@ static PPCTargetMachine::PPCABI computeTargetABI(const Triple &TT,
+
+ switch (TT.getArch()) {
+ case Triple::ppc64le:
+- return PPCTargetMachine::PPC_ABI_ELFv2;
+ case Triple::ppc64:
+- return PPCTargetMachine::PPC_ABI_ELFv1;
++ return PPCTargetMachine::PPC_ABI_ELFv2;
+ default:
+ return PPCTargetMachine::PPC_ABI_UNKNOWN;
+ }
+diff --git a/test/CodeGen/PowerPC/ppc64-elf-abi.ll b/test/CodeGen/PowerPC/ppc64-elf-abi.ll
+index 8b1cf6b5..296a2afa 100644
+--- a/llvm/test/CodeGen/PowerPC/ppc64-elf-abi.ll
++++ b/llvm/test/CodeGen/PowerPC/ppc64-elf-abi.ll
+@@ -1,4 +1,5 @@
+-; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv1
++; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv2
++; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-musl < %s | FileCheck %s -check-prefix=CHECK-ELFv2
+ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu -target-abi elfv1 < %s | FileCheck %s -check-prefix=CHECK-ELFv1
+ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu -target-abi elfv2 < %s | FileCheck %s -check-prefix=CHECK-ELFv2
+ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv2
diff --git a/srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch b/srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch
new file mode 100644
index 000000000000..b5d15974375d
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch
@@ -0,0 +1,11 @@
+--- a/llvm/lib/Target/PowerPC/PPCSubtarget.cpp
++++ b/llvm/lib/Target/PowerPC/PPCSubtarget.cpp
+@@ -165,7 +165,7 @@ void PPCSubtarget::initSubtargetFeatures(StringRef CPU, StringRef FS) {
+
+ if ((TargetTriple.isOSFreeBSD() && TargetTriple.getOSMajorVersion() >= 13) ||
+ TargetTriple.isOSNetBSD() || TargetTriple.isOSOpenBSD() ||
+- TargetTriple.isMusl())
++ isTargetLinux())
+ SecurePlt = true;
+
+ if (HasSPE && IsPPC64)
diff --git a/srcpkgs/llvm15/patches/llvm-004-override-opt.patch b/srcpkgs/llvm15/patches/llvm-004-override-opt.patch
new file mode 100644
index 000000000000..51d0e4b31b32
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-004-override-opt.patch
@@ -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)
diff --git a/srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch b/srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch
new file mode 100644
index 000000000000..d332687b9d92
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch
@@ -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);
diff --git a/srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch b/srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch
new file mode 100644
index 000000000000..a00abd216665
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch
@@ -0,0 +1,25 @@
+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__) || defined (__ppc__) || \
+- defined(_POWER) || defined(_ARCH_PPC))
++ defined(_POWER) || defined(_ARCH_PPC) || (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
diff --git a/srcpkgs/llvm15/template b/srcpkgs/llvm15/template
new file mode 100644
index 000000000000..db510bbd2477
--- /dev/null
+++ b/srcpkgs/llvm15/template
@@ -0,0 +1,428 @@
+# Template file for 'llvm15'
+pkgname=llvm15
+version=15.0.6
+revision=1
+build_wrksrc=llvm
+build_style=cmake
+configure_args="
+ -DCMAKE_BUILD_TYPE=Release -Wno-dev
+ -DENABLE_LINKER_BUILD_ID=YES
+ -DLLDB_USE_SYSTEM_SIX=YES
+ -DLIBCXX_CXX_ABI=libcxxabi
+ -DLIBCXX_ENABLE_STATIC_ABI_LIBRARY=YES
+ -DLIBCXXABI_USE_LLVM_UNWINDER=YES
+ -DLIBCXXABI_ENABLE_STATIC_UNWINDER=YES
+ -DLIBOMP_ENABLE_SHARED=YES
+ -DLIBOMP_INSTALL_ALIASES=NO
+ -DLLVM_INCLUDE_DOCS=YES
+ -DLLVM_BUILD_DOCS=YES
+ -DLLVM_ENABLE_SPHINX=YES
+ -DSPHINX_WARNINGS_AS_ERRORS=NO
+ -DLLVM_INSTALL_UTILS=YES
+ -DLLVM_BUILD_LLVM_DYLIB=YES
+ -DLLVM_LINK_LLVM_DYLIB=YES
+ -DLLVM_ENABLE_RTTI=YES
+ -DLLVM_ENABLE_FFI=YES
+ -DLLVM_BINUTILS_INCDIR=/usr/include"
+hostmakedepends="perl python3 zlib-devel libffi-devel swig python3-Sphinx
+ python3-recommonmark python3-sphinx-automodapi"
+makedepends="python3-devel zlib-devel elfutils-devel libffi-devel libedit-devel
+ libxml2-devel binutils-devel libatomic-devel"
+depends="libllvm15>=${version}_${revision}"
+short_desc="Low Level Virtual Machine"
+maintainer="Orphaned <orphan@voidlinux.org>"
+license="Apache-2.0"
+homepage="https://www.llvm.org"
+distfiles="https://github.com/llvm/llvm-project/releases/download/llvmorg-${version}/llvm-project-${version}.src.tar.xz"
+checksum=9d53ad04dc60cb7b30e810faf64c5ab8157dadef46c8766f67f286238256ff92
+lib32disabled=yes
+python_version=3
+
+if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
+ configure_args+=" -DLIBCXX_HAS_MUSL_LIBC=YES
+ -DCOMPILER_RT_BUILD_GWP_ASAN=OFF"
+fi
+
+# "operand out of range" assembler failures
+case "$XBPS_TARGET_MACHINE" in
+ ppc64*) ;;
+ ppc*) configure_args+=" -DCLANG_ENABLE_CLANGD=OFF" ;;
+esac
+
+_enabled_projects="clang;clang-tools-extra;compiler-rt;libcxx;libcxxabi;libunwind;lld"
+
+_lldb_enable=yes
+_libomp_enable=no
+
+case "$XBPS_TARGET_MACHINE" in
+ ppc64le*) ;;
+ ppc*|i686*) _lldb_enable=no ;;
+esac
+
+case "$XBPS_TARGET_MACHINE" in
+ x86_64*|aarch64*|ppc64*) _libomp_enable=yes;;
+esac
+
+subpackages="clang-tools-extra"
+
+# must go before clang
+if [ "$_libomp_enable" = "yes" ]; then
+ _enabled_projects+=";openmp"
+ subpackages+=" libomp libomp-devel"
+ # because of cmake nonsense referencing libomptarget.so.*
+ depends+=" libomp>=${version}_${revision}"
+fi
+
+subpackages+=" clang clang-analyzer libclang libclang-cpp
+ llvm-libunwind llvm-libunwind-devel libcxx libcxx-devel
+ libcxxabi libcxxabi-devel libllvm15"
+
+if [ "$_lldb_enable" = "yes" ]; then
+ # XXX fails to cross compile due to python
+ _enabled_projects+=";lldb"
+ subpackages+=" lldb lldb-devel"
+fi
+
+subpackages+=" lld lld-devel"
+
+configure_args+=" -DLLVM_ENABLE_PROJECTS=${_enabled_projects}"
+
+post_patch() {
+ if [ "$_lldb_enable" = "yes" ]; then
+ if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
+ vsed -i 's|__ptrace_request|int|g' \
+ ${wrksrc}/lldb/source/Plugins/Process/Linux/NativeProcessLinux.cpp
+ fi
+ # disable docs for lldb as they fail to generate
+ vsed -i '/add_subdirectory(docs)/d' \
+ ${wrksrc}/lldb/CMakeLists.txt
+ fi
+
+ # update config.guess for better platform detection
+ cp $XBPS_COMMONDIR/environment/configure/automake/config.guess \
+ ${wrksrc}/llvm/cmake
+
+ # fix linker failures on some archs
+ vsed -i 's,check_library_exists(gcc_s .*,set(LIBCXXABI_HAS_GCC_S_LIB ON),' \
+ ${wrksrc}/libcxxabi/cmake/config-ix.cmake
+ vsed -i 's,check_library_exists(gcc .*,set(LIBCXXABI_HAS_GCC_LIB ON),' \
+ ${wrksrc}/libcxxabi/cmake/config-ix.cmake
+
+ # need libssp_nonshared on some musl platforms (because of nodefaultlibs)
+ case "$XBPS_TARGET_MACHINE" in
+ ppc64*) ;;
+ ppc*-musl|i686-musl|mips*-musl)
+ vsed -i 's,^# Setup flags.$,add_library_flags(ssp_nonshared),' \
+ ${wrksrc}/libunwind/src/CMakeLists.txt
+ vsed -i 's,^# Setup flags.$,add_library_flags(ssp_nonshared),' \
+ ${wrksrc}/libcxxabi/src/CMakeLists.txt
+ vsed -i 's,#ssp,,' ${wrksrc}/libcxx/CMakeLists.txt
+ ;;
+ esac
+
+ case "$XBPS_TARGET_MACHINE" in
+ arm*-musl|i686-musl) # sanitizer code is broken since it duplicates some libc bits
+ vsed -i 's/set(COMPILER_RT_HAS_SANITIZER_COMMON TRUE)/set(COMPILER_RT_HAS_SANITIZER_COMMON FALSE)/' \
+ ${wrksrc}/compiler-rt/cmake/config-ix.cmake
+ ;;
+ esac
+}
+
+pre_configure() {
+ local triplet
+
+ # Vastly reduce size of debugging symbols:
+ CFLAGS=${CFLAGS/ -g/ -g1}
+ CXXFLAGS=${CXXFLAGS/ -g/ -g1}
+
+ # since gcc9, the build likes to blow up for ppc32 apparently because
+ # of clang being too large for a 24-bit relative call to the PLT, so
+ # optimize for size instead
+ case "$XBPS_TARGET_MACHINE" in
+ ppc64*) ;;
+ mips*-musl|ppc*) configure_args+=" -DVOID_CXX_OPT_FLAGS=-Os" ;;
+ esac
+
+ if [ "$CROSS_BUILD" ]; then
+ msg_normal "Building host tblgen\n"
+ mkdir -p build/HOST
+ cd build/HOST
+ CC="$BUILD_CC" CXX="$BUILD_CXX" CFLAGS="$BUILD_CFLAGS" \
+ CXXFLAGS="$BUILD_CXXFLAGS" LDFLAGS="$BUILD_LDFLAGS" \
+ cmake ../.. -DCMAKE_BUILD_TYPE=Release \
+ -DLLVM_ENABLE_PROJECTS=${_enabled_projects}
+ make ${makejobs} -C utils/TableGen
+ make ${makejobs} -C tools/clang/utils/TableGen
+ [ "$_lldb_enable" = "yes" ] && make ${makejobs} -C tools/lldb/utils/TableGen
+ configure_args+=" -DLLVM_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/llvm-tblgen"
+ configure_args+=" -DCLANG_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/clang-tblgen"
+ [ "$_lldb_enable" = "yes" ] && configure_args+=" -DLLDB_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/lldb-tblgen"
+ cd ../..
+ fi
+
+ case "$XBPS_TARGET_MACHINE" in
+ i686*) _arch="X86";;
+ x86_64*) _arch="X86";;
+ armv5*) _arch="Armv5te";;
+ armv6*) _arch="Armv6";;
+ armv7*) _arch="Armv7";;
+ aarch64*) _arch="AArch64";;
+ mips*) _arch="Mips";;
+ ppc*) _arch="PowerPC";;
+ riscv64*) _arch="RISCV64";;
+ esac
+
+ triplet=${XBPS_CROSS_TRIPLET:-$XBPS_TRIPLET}
+
+ configure_args+=" -DLLVM_TARGET_ARCH=${_arch}"
+ configure_args+=" -DLLVM_HOST_TRIPLE=${triplet}"
+ configure_args+=" -DLLVM_DEFAULT_TARGET_TRIPLE=${triplet}"
+}
+
+do_install() {
+ cd build
+ cmake -DCMAKE_INSTALL_PREFIX=${DESTDIR}/usr -P cmake_install.cmake
+
+ # Required for multilib.
+ if [ "$XBPS_TARGET_MACHINE" = "x86_64" ]; then
+ for _header in llvm-config; do
+ mv ${DESTDIR}/usr/include/llvm/Config/${_header}{,-64}.h
+ vinstall ${FILESDIR}/llvm-Config-${_header}.h 644 \
+ usr/include/llvm/Config ${_header}.h
+ done
+ fi
+
+ # Remove llvm-config-host in cross builds.
+ if [ "$CROSS_BUILD" ]; then
+ rm -f ${DESTDIR}/usr/bin/llvm-config-host
+ fi
+
+ # Install libcxxabi headers
+ vinstall ${wrksrc}/libcxxabi/include/__cxxabi_config.h 644 usr/include
+ vinstall ${wrksrc}/libcxxabi/include/cxxabi.h 644 usr/include
+
+ # Install libunwind headers
+ vinstall ${wrksrc}/libunwind/include/__libunwind_config.h 644 usr/include
+ vinstall ${wrksrc}/libunwind/include/libunwind.h 644 usr/include
+ vinstall ${wrksrc}/libunwind/include/unwind.h 644 usr/include
+ vinstall ${wrksrc}/libunwind/include/mach-o/compact_unwind_encoding.h \
+ 644 usr/include/mach-o
+}
+
+clang-analyzer_package() {
+ pycompile_dirs="usr/share/scan-view"
+ depends="clang-${version}_${revision} python3 perl"
+ short_desc+=" - A source code analysis framework"
+ homepage="https://clang-analyzer.llvm.org/"
+ pkg_install() {
+ vmove "usr/bin/scan-*"
+ vmove "usr/libexec/*analyzer"
+ vmove "usr/share/scan-*"
+ vmove usr/share/man/man1/scan-build.1
+ }
+}
+
+clang-tools-extra_package() {
+ lib32disabled=yes
+ depends="clang-${version}_${revision} python3"
+ short_desc+=" - Extra Clang tools"
+ homepage="https://clang.llvm.org/extra/"
+ pkg_install() {
+ vmove usr/bin/clang-apply-replacements
+ vmove usr/bin/clang-doc
+ vmove usr/bin/clang-include-fixer
+ vmove usr/bin/clang-query
+ vmove usr/bin/clang-rename
+ vmove usr/bin/clang-reorder-fields
+ vmove usr/bin/clang-tidy
+ vmove usr/bin/clangd
+ vmove usr/bin/diagtool
+ vmove usr/bin/find-all-symbols
+ vmove usr/bin/hmaptool
+ vmove usr/bin/modularize
+ vmove usr/bin/pp-trace
+ vmove usr/bin/sancov
+ vmove usr/include/clang-tidy
+ vmove "usr/lib/libclangApplyReplacements*"
+ vmove "usr/lib/libclangDoc*"
+ vmove "usr/lib/libclangIncludeFixer*"
+ vmove "usr/lib/libclangReorderFields*"
+ vmove "usr/lib/libclangQuery*"
+ vmove "usr/lib/libclangTidy*"
+ vmove "usr/share/clang/*include-fixer*"
+ vmove "usr/share/clang/*rename*"
+ vmove "usr/share/clang/*tidy*"
+ vmove usr/share/doc/LLVM/clang-tools
+ vmove usr/share/man/man1/diagtool.1
+ vmove usr/share/man/man1/extraclangtools.1
+ }
+}
+
+clang_package() {
+ lib32disabled=yes
+ depends="libstdc++-devel libgcc-devel binutils ${XBPS_TARGET_LIBC}-devel
+ libclang-${version}_${revision}"
+ short_desc+=" - C language family frontend"
+ homepage="https://clang.llvm.org/"
+ pkg_install() {
+ vmove "usr/bin/*clang*"
+ vmove usr/bin/c-index-test
+ vmove usr/include/clang
+ vmove usr/include/clang-c
+ vmove usr/lib/clang
+ vmove usr/lib/cmake/clang
+ vmove "usr/lib/libclang*.a"
+ vmove "usr/lib/libclang*.so"
+ vmove usr/share/clang
+ vmove usr/share/doc/LLVM/clang
+ vmove usr/share/man/man1/clang.1
+ }
+}
+
+libclang_package() {
+ short_desc+=" - C frontend runtime library"
+ pkg_install() {
+ vmove "usr/lib/libclang.so.*"
+ }
+}
+
+libclang-cpp_package() {
+ short_desc+=" - C frontend runtime library (C++ interface)"
+ pkg_install() {
+ vmove "usr/lib/libclang-cpp.so.*"
+ }
+}
+
+lld_package() {
+ lib32disabled=yes
+ short_desc+=" - linker"
+ homepage="https://lld.llvm.org"
+ pkg_install() {
+ vmove usr/bin/ld.lld*
+ vmove usr/bin/ld64.lld*
+ vmove usr/bin/lld*
+ vmove usr/bin/wasm-ld
+ vmove usr/share/doc/LLVM/lld
+ }
+}
+
+lld-devel_package() {
+ lib32disabled=yes
+ short_desc+=" - linker - development files"
+ homepage="https://lld.llvm.org"
+ depends="lld>=${version}_${revision}"
+ pkg_install() {
+ vmove usr/include/lld
+ vmove usr/lib/cmake/lld
+ vmove "usr/lib/liblld*a"
+ }
+}
+
+lldb_package() {
+ lib32disabled=yes
+ depends+=" python3-six"
+ short_desc+=" - LLDB debugger"
+ homepage="https://lldb.llvm.org/"
+ pkg_install() {
+ vmove usr/bin/*lldb*
+ vmove usr/lib/liblldb*so.*
+ vmove /usr/lib/python*
+ }
+}
+
+lldb-devel_package() {
+ lib32disabled=yes
+ depends="lldb>=${version}_${revision}"
+ short_desc+=" - LLDB debugger - development files"
+ pkg_install() {
+ vmove usr/include/lldb
+ vmove "usr/lib/liblldb*.so"
+ }
+}
+
+llvm-libunwind_package() {
+ short_desc+=" - libunwind"
+ pkg_install() {
+ vmove "usr/lib/${XBPS_TRIPLET}/libunwind.so.*"
+ }
+}
+
+llvm-libunwind-devel_package() {
+ short_desc+=" - libunwind - development files"
+ depends="llvm-libunwind>=${version}_${revision}"
+ conflicts="libunwind-devel>=0"
+ pkg_install() {
+ vmove usr/include/mach-o
+ vmove "usr/include/*unwind*"
+ vmove "usr/lib/${XBPS_TRIPLET}/libunwind.a"
+ vmove "usr/lib/${XBPS_TRIPLET}/libunwind.so"
+ vmove usr/share/doc/LLVM/libunwind
+ }
+}
+
+libcxxabi_package() {
+ short_desc+=" - low level support for libc++"
+ pkg_install() {
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++abi.so.*"
+ }
+}
+
+libcxxabi-devel_package() {
+ short_desc+=" - low level support for libc++ - development files"
+ depends="libcxxabi>=${version}_${revision}"
+ pkg_install() {
+ vmove "usr/include/*cxxabi*"
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++abi.so"
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++abi.a"
+ }
+}
+
+libcxx_package() {
+ short_desc+=" - C++ standard library"
+ pkg_install() {
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++.so.*"
+ }
+}
+
+libcxx-devel_package() {
+ short_desc+=" - C++ standard library - development files"
+ depends="libcxx>=${version}_${revision}"
+ pkg_install() {
+ vmove usr/include/c++
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++.so"
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++.a"
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++experimental.a"
+ vmove usr/share/doc/LLVM/libcxx
+ }
+}
+
+libomp_package() {
+ short_desc+=" - Clang OpenMP support library"
+ pkg_install() {
+ vmove usr/lib/libarcher.so
+ vmove usr/lib/libompd.so
+ vmove "usr/lib/libomptarget.rtl.*.so"
+ vmove "usr/lib/libomp*.so.*"
+ }
+}
+
+libomp-devel_package() {
+ short_desc+=" - Clang OpenMP support library - development files"
+ depends="libomp>=${version}_${revision}"
+ pkg_install() {
+ vmove "usr/include/omp*.h"
+ vmove "usr/lib/clang/${version}/include/omp*.h"
+ vmove "usr/lib/libarcher*"
+ vmove "usr/lib/libomp*.so"
+ vmove usr/lib/cmake/openmp
+ vmove usr/share/doc/LLVM/openmp
+ vmove usr/share/man/man1/llvmopenmp.1
+ }
+}
+
+libllvm15_package() {
+ short_desc+=" - runtime library"
+ pkg_install() {
+ vmove "usr/lib/libLLVM-*.so*"
+ }
+}
diff --git a/srcpkgs/llvm15/update b/srcpkgs/llvm15/update
new file mode 100644
index 000000000000..e95cf26b3586
--- /dev/null
+++ b/srcpkgs/llvm15/update
@@ -0,0 +1,3 @@
+site="https://github.com/llvm/llvm-project/releases"
+pattern="llvmorg-\K(\d+.){2}\d+(-rc\d+)?"
+ignore="*-rc*"
From 574bcf44fafdddf85c813d35beb1be5935c5cd68 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Sun, 18 Dec 2022 00:40:18 +0100
Subject: [PATCH 02/13] llvm: update to 15
---
common/shlibs | 6 +++---
srcpkgs/clang | 2 +-
srcpkgs/clang-analyzer | 2 +-
srcpkgs/clang-tools-extra | 2 +-
srcpkgs/libclang | 2 +-
srcpkgs/libclang-cpp | 2 +-
srcpkgs/libcxx | 2 +-
srcpkgs/libcxx-devel | 2 +-
srcpkgs/libcxxabi | 2 +-
srcpkgs/libcxxabi-devel | 2 +-
srcpkgs/libomp | 2 +-
srcpkgs/libomp-devel | 2 +-
srcpkgs/lld | 2 +-
srcpkgs/lld-devel | 2 +-
srcpkgs/lldb | 2 +-
srcpkgs/lldb-devel | 2 +-
srcpkgs/llvm-libunwind | 2 +-
srcpkgs/llvm-libunwind-devel | 2 +-
srcpkgs/llvm/template | 6 +++---
19 files changed, 23 insertions(+), 23 deletions(-)
diff --git a/common/shlibs b/common/shlibs
index a1192ee99090..688992826987 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -985,9 +985,9 @@ 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.12 lldb-12.0.0_1
-libclang.so.12 libclang-12.0.0_1
-libclang-cpp.so.12 libclang-cpp-12.0.0_1
+liblldb.so.15 lldb-15.0.6_1
+libclang.so.15 libclang-15.0.6_1
+libclang-cpp.so.15 libclang-cpp-15.0.6_1
libLLVM-11.so libllvm11-11.0.0_1
libLLVM-12.so libllvm12-12.0.0_1
libLLVM-15.so libllvm15-15.0.6_1
diff --git a/srcpkgs/clang b/srcpkgs/clang
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/clang
+++ b/srcpkgs/clang
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/clang-analyzer b/srcpkgs/clang-analyzer
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/clang-analyzer
+++ b/srcpkgs/clang-analyzer
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/clang-tools-extra b/srcpkgs/clang-tools-extra
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/clang-tools-extra
+++ b/srcpkgs/clang-tools-extra
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libclang b/srcpkgs/libclang
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libclang
+++ b/srcpkgs/libclang
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libclang-cpp b/srcpkgs/libclang-cpp
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libclang-cpp
+++ b/srcpkgs/libclang-cpp
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxx b/srcpkgs/libcxx
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxx
+++ b/srcpkgs/libcxx
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxx-devel b/srcpkgs/libcxx-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxx-devel
+++ b/srcpkgs/libcxx-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxxabi b/srcpkgs/libcxxabi
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxxabi
+++ b/srcpkgs/libcxxabi
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxxabi-devel b/srcpkgs/libcxxabi-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxxabi-devel
+++ b/srcpkgs/libcxxabi-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libomp b/srcpkgs/libomp
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libomp
+++ b/srcpkgs/libomp
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libomp-devel b/srcpkgs/libomp-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libomp-devel
+++ b/srcpkgs/libomp-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lld b/srcpkgs/lld
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lld
+++ b/srcpkgs/lld
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lld-devel b/srcpkgs/lld-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lld-devel
+++ b/srcpkgs/lld-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lldb b/srcpkgs/lldb
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lldb
+++ b/srcpkgs/lldb
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lldb-devel b/srcpkgs/lldb-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lldb-devel
+++ b/srcpkgs/lldb-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm-libunwind b/srcpkgs/llvm-libunwind
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/llvm-libunwind
+++ b/srcpkgs/llvm-libunwind
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm-libunwind-devel b/srcpkgs/llvm-libunwind-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/llvm-libunwind-devel
+++ b/srcpkgs/llvm-libunwind-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm/template b/srcpkgs/llvm/template
index a92db6f94f9f..fc1c850bd26f 100644
--- a/srcpkgs/llvm/template
+++ b/srcpkgs/llvm/template
@@ -1,11 +1,11 @@
# Template file for 'llvm'
pkgname=llvm
-version=12.0.0
+version=15
revision=1
build_style=meta
-depends="llvm12"
-replaces="llvm11>=0 llvm10>=0 llvm9>=0 llvm8>=0 llvm7>=0 llvm6.0>=0 llvm3.9>=0"
+depends="llvm15"
short_desc="LLVM meta package"
maintainer="Enno Boland <gottox@voidlinux.org>"
license="Public Domain"
homepage="https://www.voidlinux.org"
+replaces="llvm12>=0 llvm11>=0 llvm10>=0 llvm9>=0 llvm8>=0 llvm7>=0 llvm6.0>=0 llvm3.9>=0"
From fdc41093b8815d725ce4e4e9eb937340a60be5ec Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Sun, 18 Dec 2022 12:20:08 +0100
Subject: [PATCH 03/13] llvm12: remove bumped subpackages
---
srcpkgs/llvm12/template | 264 +---------------------------------------
1 file changed, 1 insertion(+), 263 deletions(-)
diff --git a/srcpkgs/llvm12/template b/srcpkgs/llvm12/template
index f8ea3ba641ae..aea0b43cf573 100644
--- a/srcpkgs/llvm12/template
+++ b/srcpkgs/llvm12/template
@@ -50,55 +50,7 @@ case "$XBPS_TARGET_MACHINE" in
ppc*) configure_args+=" -DCLANG_ENABLE_CLANGD=OFF" ;;
esac
-_enabled_projects="clang;clang-tools-extra;compiler-rt;libcxx;libcxxabi;libunwind;lld"
-
-_lldb_enable=yes
-_libomp_enable=no
-
-case "$XBPS_TARGET_MACHINE" in
- ppc64le*) ;;
- ppc*|i686*) _lldb_enable=no ;;
-esac
-
-case "$XBPS_TARGET_MACHINE" in
- x86_64*|aarch64*|ppc64*) _libomp_enable=yes;;
-esac
-
-subpackages="clang-tools-extra"
-
-# must go before clang
-if [ "$_libomp_enable" = "yes" ]; then
- _enabled_projects+=";openmp"
- subpackages+=" libomp libomp-devel"
- # because of cmake nonsense referencing libomptarget.so.*
- depends+=" libomp>=${version}_${revision}"
-fi
-
-subpackages+=" clang clang-analyzer libclang libclang-cpp
- llvm-libunwind llvm-libunwind-devel libcxx libcxx-devel
- libcxxabi libcxxabi-devel libllvm12"
-
-if [ "$_lldb_enable" = "yes" ]; then
- # XXX fails to cross compile due to python
- _enabled_projects+=";lldb"
- subpackages+=" lldb lldb-devel"
-fi
-
-subpackages+=" lld lld-devel"
-
-configure_args+=" -DLLVM_ENABLE_PROJECTS=${_enabled_projects}"
-
post_patch() {
- if [ "$_lldb_enable" = "yes" ]; then
- if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
- vsed -i 's|__ptrace_request|int|g' \
- ${wrksrc}/lldb/source/Plugins/Process/Linux/NativeProcessLinux.cpp
- fi
- # disable docs for lldb as they fail to generate
- vsed -i '/add_subdirectory(docs)/d' \
- ${wrksrc}/lldb/CMakeLists.txt
- fi
-
# update config.guess for better platform detection
cp $XBPS_COMMONDIR/environment/configure/automake/config.guess \
${wrksrc}/llvm/cmake
@@ -154,14 +106,12 @@ pre_configure() {
cd build/HOST
CC="$BUILD_CC" CXX="$BUILD_CXX" CFLAGS="$BUILD_CFLAGS" \
CXXFLAGS="$BUILD_CXXFLAGS" LDFLAGS="$BUILD_LDFLAGS" \
- cmake ../.. -DCMAKE_BUILD_TYPE=Release \
- -DLLVM_ENABLE_PROJECTS=${_enabled_projects}
+ cmake ../.. -DCMAKE_BUILD_TYPE=Release
make ${makejobs} -C utils/TableGen
make ${makejobs} -C tools/clang/utils/TableGen
[ "$_lldb_enable" = "yes" ] && make ${makejobs} -C tools/lldb/utils/TableGen
configure_args+=" -DLLVM_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/llvm-tblgen"
configure_args+=" -DCLANG_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/clang-tblgen"
- [ "$_lldb_enable" = "yes" ] && configure_args+=" -DLLDB_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/lldb-tblgen"
cd ../..
fi
@@ -201,218 +151,6 @@ do_install() {
if [ "$CROSS_BUILD" ]; then
rm -f ${DESTDIR}/usr/bin/llvm-config-host
fi
-
- # Install libcxxabi headers
- vinstall ${wrksrc}/libcxxabi/include/__cxxabi_config.h 644 usr/include
- vinstall ${wrksrc}/libcxxabi/include/cxxabi.h 644 usr/include
-
- # Install libunwind headers
- vinstall ${wrksrc}/libunwind/include/__libunwind_config.h 644 usr/include
- vinstall ${wrksrc}/libunwind/include/libunwind.h 644 usr/include
- vinstall ${wrksrc}/libunwind/include/unwind.h 644 usr/include
- vinstall ${wrksrc}/libunwind/include/mach-o/compact_unwind_encoding.h \
- 644 usr/include/mach-o
-}
-
-clang-analyzer_package() {
- pycompile_dirs="usr/share/scan-view"
- depends="clang-${version}_${revision} python3 perl"
- short_desc+=" - A source code analysis framework"
- homepage="https://clang-analyzer.llvm.org/"
- pkg_install() {
- vmove usr/share/man/man1/scan-build.1
- vmove "/usr/bin/scan-*"
- vmove "/usr/share/scan-*"
- vmove "/usr/libexec/*analyzer"
- }
-}
-
-clang-tools-extra_package() {
- lib32disabled=yes
- depends="clang-${version}_${revision} python3"
- short_desc+=" - Extra Clang tools"
- homepage="https://clang.llvm.org/extra/"
- pkg_install() {
- vmove usr/include/clang-tidy
- vmove usr/bin/clang-apply-replacements
- vmove usr/bin/clang-query
- vmove usr/bin/clang-rename
- vmove usr/bin/clang-tidy
- vmove usr/bin/diagtool
- vmove usr/bin/find-all-symbols
- vmove usr/bin/hmaptool
- vmove usr/bin/modularize
- vmove usr/bin/pp-trace
- vmove usr/bin/sancov
- vmove "usr/lib/libclangApplyReplacements*"
- vmove "usr/lib/libclangQuery*"
- vmove "usr/lib/libclangTidy*"
- vmove "usr/share/clang/*tidy*"
- vmove usr/share/doc/clang-tools
- vmove usr/share/man/man1/extraclangtools.1
- vmove usr/share/man/man1/diagtool.1
- }
-}
-
-clang_package() {
- lib32disabled=yes
- depends="libstdc++-devel libgcc-devel binutils ${XBPS_TARGET_LIBC}-devel
- libclang-${version}_${revision}"
- short_desc+=" - C language family frontend"
- homepage="https://clang.llvm.org/"
- pkg_install() {
- vmove usr/include/clang
- vmove usr/include/clang-c
- vmove "usr/bin/*clang*"
- vmove usr/bin/c-index-test
- vmove usr/lib/clang
- vmove usr/lib/cmake/clang
- vmove "usr/lib/libclang*.a"
- vmove "usr/lib/libclang*.so"
- vmove usr/share/clang
- vmove usr/share/doc/clang
- vmove usr/share/man/man1/clang.1
- }
-}
-
-libclang_package() {
- short_desc+=" - C frontend runtime library"
- pkg_install() {
- vmove "usr/lib/libclang.so.*"
- }
-}
-
-libclang-cpp_package() {
- short_desc+=" - C frontend runtime library (C++ interface)"
- pkg_install() {
- vmove "usr/lib/libclang-cpp.so.*"
- }
-}
-
-lld_package() {
- lib32disabled=yes
- short_desc+=" - linker"
- homepage="https://lld.llvm.org"
- pkg_install() {
- vmove usr/bin/lld*
- vmove usr/bin/wasm-ld
- vmove usr/bin/ld.lld*
- vmove usr/bin/ld64.lld*
- vmove usr/share/doc/lld
- }
-}
-
-lld-devel_package() {
- lib32disabled=yes
- short_desc+=" - linker - development files"
- homepage="https://lld.llvm.org"
- depends="lld>=${version}_${revision}"
- pkg_install() {
- vmove usr/include/lld
- vmove usr/lib/cmake/lld
- vmove "usr/lib/liblld*a"
- }
-}
-
-lldb_package() {
- lib32disabled=yes
- depends+=" python3-six"
- short_desc+=" - LLDB debugger"
- homepage="https://lldb.llvm.org/"
- pkg_install() {
- vmove usr/bin/*lldb*
- vmove usr/lib/liblldb*so.*
- vmove /usr/lib/python*
- }
-}
-
-lldb-devel_package() {
- lib32disabled=yes
- depends="lldb>=${version}_${revision}"
- short_desc+=" - LLDB debugger - development files"
- pkg_install() {
- vmove usr/include/lldb
- vmove "usr/lib/liblldb*.so"
- }
-}
-
-llvm-libunwind_package() {
- short_desc+=" - libunwind"
- pkg_install() {
- vmove "usr/lib/libunwind.so.*"
- }
-}
-
-llvm-libunwind-devel_package() {
- short_desc+=" - libunwind - development files"
- depends="llvm-libunwind>=${version}_${revision}"
- conflicts="libunwind-devel>=0"
- pkg_install() {
- vmove usr/lib/libunwind.so
- vmove usr/lib/libunwind.a
- vmove "usr/include/*unwind*"
- vmove usr/include/mach-o
- vmove usr/share/doc/libunwind
- }
-}
-
-libcxxabi_package() {
- short_desc+=" - low level support for libc++"
- pkg_install() {
- vmove "usr/lib/libc++abi.so.*"
- }
-}
-
-libcxxabi-devel_package() {
- short_desc+=" - low level support for libc++ - development files"
- depends="libcxxabi>=${version}_${revision}"
- pkg_install() {
- vmove usr/lib/libc++abi.so
- vmove usr/lib/libc++abi.a
- vmove "usr/include/*cxxabi*"
- }
-}
-
-libcxx_package() {
- short_desc+=" - C++ standard library"
- pkg_install() {
- vmove "usr/lib/libc++.so.*"
- }
-}
-
-libcxx-devel_package() {
- short_desc+=" - C++ standard library - development files"
- depends="libcxx>=${version}_${revision}"
- pkg_install() {
- vmove usr/lib/libc++.so
- vmove usr/lib/libc++.a
- vmove usr/lib/libc++experimental.a
- vmove usr/include/c++
- vmove usr/share/doc/libcxx
- }
-}
-
-libomp_package() {
- short_desc+=" - Clang OpenMP support library"
- pkg_install() {
- vmove usr/lib/libomp.so
- vmove "usr/lib/libomptarget.rtl.*.so"
- vmove usr/lib/libarcher.so
- vmove "usr/lib/libomp*.so.*"
- }
-}
-
-libomp-devel_package() {
- short_desc+=" - Clang OpenMP support library - development files"
- depends="libomp>=${version}_${revision}"
- pkg_install() {
- vmove "usr/lib/libomp*.so"
- vmove "usr/lib/libarcher*"
- vmove "usr/include/omp*.h"
- vmove "usr/lib/clang/${version}/include/omp*.h"
- vmove usr/share/man/man1/llvmopenmp.1
- vmove usr/share/doc/openmp
- }
}
libllvm12_package() {
From ff6fdec4a2c5e520a2e539ed560e2903b06fc06f Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:27:03 +0100
Subject: [PATCH 04/13] mesa: rebuild for llvm15
---
srcpkgs/mesa/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/mesa/template b/srcpkgs/mesa/template
index 4c3c9ec6039e..0641b28a80d6 100644
--- a/srcpkgs/mesa/template
+++ b/srcpkgs/mesa/template
@@ -1,7 +1,7 @@
# Template file for 'mesa'
pkgname=mesa
version=22.2.4
-revision=2
+revision=3
build_style=meson
configure_args="-Dglvnd=true -Dshared-glapi=enabled -Dgbm=enabled -Degl=enabled
-Dosmesa=true -Dgles1=enabled -Dgles2=enabled -Dglx=dri -Ddri3=enabled
From cbdd60209523392332623ae81db870c1f2ac0261 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:34:04 +0100
Subject: [PATCH 05/13] bcc: rebuild for llvm15
---
srcpkgs/bcc/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/bcc/template b/srcpkgs/bcc/template
index 168a67389bba..219ab9b50219 100644
--- a/srcpkgs/bcc/template
+++ b/srcpkgs/bcc/template
@@ -1,7 +1,7 @@
# Template file for 'bcc'
pkgname=bcc
version=0.25.0
-revision=2
+revision=3
build_style=cmake
configure_args="-DREVISION=${version} -DENABLE_LLVM_SHARED=1"
hostmakedepends="flex python3"
From a9eca990131612eb024808523e2bdc6a0cc6844e Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:37:25 +0100
Subject: [PATCH 06/13] bpftrace: rebuild for llvm15
---
srcpkgs/bpftrace/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/bpftrace/template b/srcpkgs/bpftrace/template
index 857815d29eef..47f2b5e77024 100644
--- a/srcpkgs/bpftrace/template
+++ b/srcpkgs/bpftrace/template
@@ -1,7 +1,7 @@
# Template file for 'bpftrace'
pkgname=bpftrace
version=0.16.0
-revision=1
+revision=2
archs="x86_64* aarch64* ppc64*"
build_style=cmake
configure_args="-DBUILD_TESTING=OFF" # needs root to run
From ef1ab0446d277380880c6302bb69cdf852fed053 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:43:53 +0100
Subject: [PATCH 07/13] CastXML: rebuild for llvm15
---
srcpkgs/CastXML/template | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/srcpkgs/CastXML/template b/srcpkgs/CastXML/template
index 5d7d9503658c..28c424c78073 100644
--- a/srcpkgs/CastXML/template
+++ b/srcpkgs/CastXML/template
@@ -1,7 +1,7 @@
# Template file for 'CastXML'
pkgname=CastXML
version=0.4.6
-revision=1
+revision=2
build_style=cmake
configure_args="-DSPHINX_MAN=YES -DCastXML_INSTALL_MAN_DIR=share/man"
hostmakedepends="clang python3-Sphinx"
@@ -12,8 +12,8 @@ short_desc="C-family abstract syntax tree XML output tool"
maintainer="Evgeny Ermakov <evgeny.v.ermakov@gmail.com>"
license="Apache-2.0"
homepage="https://github.com/CastXML/CastXML"
-distfiles="https://github.com/CastXML/CastXML/archive/v${version}.tar.gz"
-checksum=8dcdbc1f23a130e4bdb0b09f57c30761a02a346b4db4037555048af2a293d66a
+distfiles="https://github.com/CastXML/CastXML/archive/refs/tags/v${version}.tar.gz"
+checksum=bb9024ec9ea5082e0d527f19bf3c2df79f1699f54b6cec168c024e727b32e6d1
post_install() {
rm -r ${DESTDIR}/usr/share/castxml/clang/include
From 7d4416ff7cdb52ba9ea76035751412313524a157 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:48:55 +0100
Subject: [PATCH 08/13] ccls: rebuild for llvm15
---
srcpkgs/ccls/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/ccls/template b/srcpkgs/ccls/template
index 82fa61933878..ecc9f3e38a5d 100644
--- a/srcpkgs/ccls/template
+++ b/srcpkgs/ccls/template
@@ -1,7 +1,7 @@
# Template file for 'ccls'
pkgname=ccls
version=0.20220729
-revision=1
+revision=2
build_style=cmake
hostmakedepends="clang-tools-extra"
makedepends="clang-tools-extra libxml2-devel llvm ncurses-devel rapidjson zlib-devel"
From fc0eee247ef8617563805aa3bec656ffcb412117 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:52:14 +0100
Subject: [PATCH 09/13] include-what-you-use: update to 0.19
---
srcpkgs/include-what-you-use/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/include-what-you-use/template b/srcpkgs/include-what-you-use/template
index d3655709c20c..1a30bc04bb2d 100644
--- a/srcpkgs/include-what-you-use/template
+++ b/srcpkgs/include-what-you-use/template
@@ -1,6 +1,6 @@
# Template file for 'include-what-you-use'
pkgname=include-what-you-use
-version=0.16
+version=0.19
revision=1
build_style=cmake
configure_args="-DIWYU_LLVM_ROOT_PATH=${XBPS_CROSS_BASE}/usr "
@@ -11,7 +11,7 @@ maintainer="Leah Neukirchen <leah@vuxu.org>"
license="NCSA"
homepage="https://include-what-you-use.org/"
distfiles="https://include-what-you-use.org/downloads/${pkgname}-${version}.src.tar.gz"
-checksum=8d6fc9b255343bc1e5ec459e39512df1d51c60e03562985e0076036119ff5a1c
+checksum=2b10157b60ea08adc08e3896b4921c73fcadd5ec4eb652b29a34129d501e5ee0
python_version=3
post_install() {
From 2ef5161a7da0903f18a72031c6a6a11354e20be5 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 15:11:06 +0100
Subject: [PATCH 10/13] SPIRV-LLVM-Translator: update to 15.0.0
---
srcpkgs/SPIRV-LLVM-Translator/template | 13 +++++++------
1 file changed, 7 insertions(+), 6 deletions(-)
diff --git a/srcpkgs/SPIRV-LLVM-Translator/template b/srcpkgs/SPIRV-LLVM-Translator/template
index a2754e58c0e8..bee99f9bcbb2 100644
--- a/srcpkgs/SPIRV-LLVM-Translator/template
+++ b/srcpkgs/SPIRV-LLVM-Translator/template
@@ -1,19 +1,20 @@
# Template file for 'SPIRV-LLVM-Translator'
pkgname=SPIRV-LLVM-Translator
-version=12.0.0
-revision=2
+version=15.0.0
+revision=1
build_style=cmake
make_build_args="llvm-spirv"
configure_args="-Wno-dev -DLLVM_LINK_LLVM_DYLIB=ON -DCMAKE_SKIP_RPATH=ON
- -DLLVM_SPIRV_INCLUDE_TESTS=OFF -DBUILD_SHARED_LIBS=ON"
+ -DLLVM_SPIRV_INCLUDE_TESTS=OFF -DBUILD_SHARED_LIBS=ON
+ -DLLVM_EXTERNAL_SPIRV_HEADERS_SOURCE_DIR=/usr"
hostmakedepends="clang llvm"
-makedepends="clang-tools-extra llvm"
+makedepends="clang-tools-extra llvm SPIRV-Headers"
short_desc="API and commands for processing SPIR-V modules"
maintainer="Orphaned <orphan@voidlinux.org>"
license="NCSA"
homepage="https://github.com/KhronosGroup/SPIRV-LLVM-Translator"
-distfiles="https://github.com/KhronosGroup/${pkgname}/archive/refs/tags/v${version}.tar.gz"
-checksum=6e4fad04203f25fcde4c308c53e9f59bd05a390978992db3212d4b63aff62108
+distfiles="https://github.com/KhronosGroup/SPIRV-LLVM-Translator/archive/refs/tags/v${version}.tar.gz"
+checksum=b1bebd77f72988758c00852e78c2ddc545815a612169a0cb377d021e2f846d88
post_install() {
vlicense LICENSE.TXT
From e91e9e186b22b38390262ada6634db3b74d0515a Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Fri, 6 Jan 2023 17:11:04 +0100
Subject: [PATCH 11/13] rtags: rebuild for llvm15
---
srcpkgs/rtags/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/rtags/template b/srcpkgs/rtags/template
index b496a1b0e721..9b161e690d76 100644
--- a/srcpkgs/rtags/template
+++ b/srcpkgs/rtags/template
@@ -1,7 +1,7 @@
# Template file for 'rtags'
pkgname=rtags
version=2.38
-revision=5
+revision=6
build_style=cmake
# Don't run tests in do_install, please.
configure_args="-DSKIP_CTEST=TRUE"
From 5a83996d6b227860605c89f8a355d17e78ee5bfb Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Fri, 6 Jan 2023 17:14:14 +0100
Subject: [PATCH 12/13] juCi++: rebuild for llvm15
---
srcpkgs/juCi++/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/juCi++/template b/srcpkgs/juCi++/template
index c1969237f11d..416bde7cc4d0 100644
--- a/srcpkgs/juCi++/template
+++ b/srcpkgs/juCi++/template
@@ -1,7 +1,7 @@
# Template file for 'juCi++'
pkgname=juCi++
version=1.7.2
-revision=2
+revision=3
_libclangmm_commit="9704b9b6de0982a588fa41741157d5640afedf30"
_tiny_commit="839ff806dc447ff49af80f9a9eaa7949f770f8e5"
create_wrksrc=yes
From 47a4ccce3866dbcafa439891b1784e6be3eeb0b0 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Sat, 7 Jan 2023 11:31:14 +0100
Subject: [PATCH 13/13] qt5: rebuild for llvm15
---
srcpkgs/qt5/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/qt5/template b/srcpkgs/qt5/template
index 233596587525..bc9170215483 100644
--- a/srcpkgs/qt5/template
+++ b/srcpkgs/qt5/template
@@ -3,7 +3,7 @@ pkgname=qt5
version=5.15.7+20221119
# commit f8c9fb304bc3e53b3aa07f962cd74e9160decccc
# base repo: https://invent.kde.org/qt/qt/qt5
-revision=1
+revision=2
build_style=meta
hostmakedepends="cmake clang flex perl glib-devel pkg-config
python re2c ruby which"
^ permalink raw reply [flat|nested] 96+ messages in thread
* Re: [PR PATCH] [Updated] [WIP] LLVM 15
2022-11-28 15:30 [PR PATCH] [WIP] LLVM 15 tranzystorek-io
` (42 preceding siblings ...)
2023-01-07 17:02 ` tranzystorek-io
@ 2023-01-09 0:22 ` tranzystorek-io
2023-01-09 0:58 ` tranzystorek-io
` (50 subsequent siblings)
94 siblings, 0 replies; 96+ messages in thread
From: tranzystorek-io @ 2023-01-09 0:22 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 1142 bytes --]
There is an updated pull request by tranzystorek-io against master on the void-packages repository
https://github.com/tranzystorek-io/void-packages llvm15
https://github.com/void-linux/void-packages/pull/40821
[WIP] LLVM 15
[ci skip]
TODO:
- [ ] Adjust patches marked as `.patch.skip`
- [x] Make libomp a shlib (change so file name and install a symlink)
- [ ] Avoid creating triplet dirs under /usr/
TODO LLVM rdeps:
- [ ] clazy (breaking changes in clang API)
- [ ] beignet (https://github.com/void-linux/void-packages/pull/41529)
- [ ] ispc (1.18.1 supports LLVM `<= 14`)
- [ ] ldc (1.30.0 supports LLVM `<= 14`)
- [ ] ghdl (2.0.0 supports LLVM `<=14`)
- [x] qt
- [ ] qtcreator (breaking changes in clang-format API)
- [ ] shiboken2 (tests failing with llvm15)
- [x] bpftrace (https://github.com/void-linux/void-packages/pull/39002)
- [ ] libclc (tests fail with unresolved calls https://gist.githubusercontent.com/tranzystorek-io/a2aa8a0d8010af5299f7d1ff9f82c22b/raw/6d316d99d6079990b73ae77d274dd120b9560589/LastTest.log)
A patch file from https://github.com/void-linux/void-packages/pull/40821.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-llvm15-40821.patch --]
[-- Type: text/x-diff, Size: 76218 bytes --]
From 7ded0344547be1d4cd30ba758a9d099d4c4135e2 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Sun, 18 Dec 2022 00:36:59 +0100
Subject: [PATCH 01/14] New package: llvm15-15.0.6
---
common/shlibs | 3 +
srcpkgs/libllvm15 | 1 +
.../llvm15/files/llvm-Config-llvm-config.h | 9 +
...clang-001-fix-unwind-chain-inclusion.patch | 44 ++
.../patches/clang-002-add-musl-triples.patch | 110 +++++
.../clang-003-ppc64-dynamic-linker-path.patch | 13 +
.../patches/clang-004-ppc64-musl-elfv2.patch | 48 ++
.../compiler-rt-sanitizer-ppc64-musl.patch | 35 ++
.../compiler-rt-xray-ppc64-musl.patch.skip | 62 +++
srcpkgs/llvm15/patches/libcxx-musl.patch | 26 ++
srcpkgs/llvm15/patches/libcxx-ppc.patch | 22 +
.../llvm15/patches/libcxx-ssp-nonshared.patch | 11 +
srcpkgs/llvm15/patches/libcxxabi-dl.patch | 25 +
srcpkgs/llvm15/patches/libcxxabi-musl.patch | 38 ++
srcpkgs/llvm15/patches/libomp-soname.patch | 12 +
.../llvm15/patches/libunwind-ppc32.patch.skip | 63 +++
srcpkgs/llvm15/patches/lldb-musl.patch | 40 ++
srcpkgs/llvm15/patches/llvm-001-musl.patch | 57 +++
.../patches/llvm-002-musl-ppc64-elfv2.patch | 30 ++
.../patches/llvm-003-ppc-secureplt.patch | 11 +
.../patches/llvm-004-override-opt.patch | 18 +
.../llvm15/patches/llvm-005-ppc-bigpic.patch | 36 ++
.../patches/llvm-006-aarch64-mf_exec.patch | 25 +
srcpkgs/llvm15/template | 428 ++++++++++++++++++
srcpkgs/llvm15/update | 3 +
25 files changed, 1170 insertions(+)
create mode 120000 srcpkgs/libllvm15
create mode 100644 srcpkgs/llvm15/files/llvm-Config-llvm-config.h
create mode 100644 srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch
create mode 100644 srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch
create mode 100644 srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch
create mode 100644 srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch
create mode 100644 srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch
create mode 100644 srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip
create mode 100644 srcpkgs/llvm15/patches/libcxx-musl.patch
create mode 100644 srcpkgs/llvm15/patches/libcxx-ppc.patch
create mode 100644 srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch
create mode 100644 srcpkgs/llvm15/patches/libcxxabi-dl.patch
create mode 100644 srcpkgs/llvm15/patches/libcxxabi-musl.patch
create mode 100644 srcpkgs/llvm15/patches/libomp-soname.patch
create mode 100644 srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip
create mode 100644 srcpkgs/llvm15/patches/lldb-musl.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-001-musl.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-004-override-opt.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch
create mode 100644 srcpkgs/llvm15/template
create mode 100644 srcpkgs/llvm15/update
diff --git a/common/shlibs b/common/shlibs
index 349c183cdb38..a1192ee99090 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -990,6 +990,9 @@ libclang.so.12 libclang-12.0.0_1
libclang-cpp.so.12 libclang-cpp-12.0.0_1
libLLVM-11.so libllvm11-11.0.0_1
libLLVM-12.so libllvm12-12.0.0_1
+libLLVM-15.so libllvm15-15.0.6_1
+libomp.so.5 libomp-15.0.6_1
+libomptarget.so.15 libomp-15.0.6_1
libisofs.so.6 libisofs-0.6.24_1
libmpack.so.0 libmpack-1.0.5_1
libGeoIP.so.1 libgeoip-1.4.8_1
diff --git a/srcpkgs/libllvm15 b/srcpkgs/libllvm15
new file mode 120000
index 000000000000..ad57a969b9f9
--- /dev/null
+++ b/srcpkgs/libllvm15
@@ -0,0 +1 @@
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm15/files/llvm-Config-llvm-config.h b/srcpkgs/llvm15/files/llvm-Config-llvm-config.h
new file mode 100644
index 000000000000..2fa08c9be696
--- /dev/null
+++ b/srcpkgs/llvm15/files/llvm-Config-llvm-config.h
@@ -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
diff --git a/srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch b/srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch
new file mode 100644
index 000000000000..e4eaa7783e7a
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch
@@ -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
diff --git a/srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch b/srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch
new file mode 100644
index 000000000000..25688d40dbc2
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch
@@ -0,0 +1,110 @@
+--- a/clang/lib/Driver/ToolChains/Gnu.cpp
++++ b/clang/lib/Driver/ToolChains/Gnu.cpp
+@@ -2086,7 +2086,8 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
+ static const char *const ARMHFTriples[] = {"arm-linux-gnueabihf",
+ "armv7hl-redhat-linux-gnueabi",
+ "armv6hl-suse-linux-gnueabi",
+- "armv7hl-suse-linux-gnueabi"};
++ "armv7hl-suse-linux-gnueabi",
++ "armv7l-linux-gnueabihf"};
+ static const char *const ARMebLibDirs[] = {"/lib"};
+ static const char *const ARMebTriples[] = {"armeb-linux-gnueabi",
+ "armeb-linux-androideabi"};
+@@ -2153,8 +2154,7 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
+ "powerpc64-suse-linux", "powerpc-montavista-linuxspe"};
+ static const char *const PPCLELibDirs[] = {"/lib32", "/lib"};
+ static const char *const PPCLETriples[] = {"powerpcle-linux-gnu",
+- "powerpcle-unknown-linux-gnu",
+- "powerpcle-linux-musl"};
++ "powerpcle-unknown-linux-gnu"};
+
+ static const char *const PPC64LibDirs[] = {"/lib64", "/lib"};
+ static const char *const PPC64Triples[] = {
+@@ -2235,6 +2235,87 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
+ return;
+ }
+
++ if (TargetTriple.isMusl()) {
++ static const char *const AArch64MuslTriples[] = {"aarch64-linux-musl"};
++ static const char *const ARMHFMuslTriples[] = {
++ "arm-linux-musleabihf", "armv7l-linux-musleabihf"
++ };
++ static const char *const ARMMuslTriples[] = {"arm-linux-musleabi"};
++ static const char *const X86_64MuslTriples[] = {"x86_64-linux-musl"};
++ static const char *const X86MuslTriples[] = {"i686-linux-musl"};
++ static const char *const MIPSMuslTriples[] = {
++ "mips-linux-musl", "mipsel-linux-musl",
++ "mipsel-linux-muslhf", "mips-linux-muslhf"
++ };
++ static const char *const PPCMuslTriples[] = {"powerpc-linux-musl"};
++ static const char *const PPCLEMuslTriples[] = {"powerpcle-linux-musl"};
++ static const char *const PPC64MuslTriples[] = {"powerpc64-linux-musl"};
++ static const char *const PPC64LEMuslTriples[] = {"powerpc64le-linux-musl"};
++
++ switch (TargetTriple.getArch()) {
++ case llvm::Triple::aarch64:
++ LibDirs.append(begin(AArch64LibDirs), end(AArch64LibDirs));
++ TripleAliases.append(begin(AArch64MuslTriples), end(AArch64MuslTriples));
++ BiarchLibDirs.append(begin(AArch64LibDirs), end(AArch64LibDirs));
++ BiarchTripleAliases.append(begin(AArch64MuslTriples), end(AArch64MuslTriples));
++ break;
++ case llvm::Triple::arm:
++ LibDirs.append(begin(ARMLibDirs), end(ARMLibDirs));
++ if (TargetTriple.getEnvironment() == llvm::Triple::MuslEABIHF) {
++ TripleAliases.append(begin(ARMHFMuslTriples), end(ARMHFMuslTriples));
++ } else {
++ TripleAliases.append(begin(ARMMuslTriples), end(ARMMuslTriples));
++ }
++ break;
++ case llvm::Triple::x86_64:
++ LibDirs.append(begin(X86_64LibDirs), end(X86_64LibDirs));
++ TripleAliases.append(begin(X86_64MuslTriples), end(X86_64MuslTriples));
++ BiarchLibDirs.append(begin(X86LibDirs), end(X86LibDirs));
++ BiarchTripleAliases.append(begin(X86MuslTriples), end(X86MuslTriples));
++ break;
++ case llvm::Triple::x86:
++ LibDirs.append(begin(X86LibDirs), end(X86LibDirs));
++ TripleAliases.append(begin(X86MuslTriples), end(X86MuslTriples));
++ BiarchLibDirs.append(begin(X86_64LibDirs), end(X86_64LibDirs));
++ BiarchTripleAliases.append(begin(X86_64MuslTriples), end(X86_64MuslTriples));
++ break;
++ case llvm::Triple::mips:
++ LibDirs.append(begin(MIPSLibDirs), end(MIPSLibDirs));
++ TripleAliases.append(begin(MIPSMuslTriples), end(MIPSMuslTriples));
++ break;
++ case llvm::Triple::ppc:
++ LibDirs.append(begin(PPCLibDirs), end(PPCLibDirs));
++ TripleAliases.append(begin(PPCMuslTriples), end(PPCMuslTriples));
++ BiarchLibDirs.append(begin(PPC64LibDirs), end(PPC64LibDirs));
++ BiarchTripleAliases.append(begin(PPC64MuslTriples), end(PPC64MuslTriples));
++ break;
++ case llvm::Triple::ppcle:
++ LibDirs.append(begin(PPCLELibDirs), end(PPCLELibDirs));
++ TripleAliases.append(begin(PPCLEMuslTriples), end(PPCLEMuslTriples));
++ BiarchLibDirs.append(begin(PPC64LELibDirs), end(PPC64LELibDirs));
++ BiarchTripleAliases.append(begin(PPC64LEMuslTriples), end(PPC64LEMuslTriples));
++ break;
++ case llvm::Triple::ppc64:
++ LibDirs.append(begin(PPC64LibDirs), end(PPC64LibDirs));
++ TripleAliases.append(begin(PPC64MuslTriples), end(PPC64MuslTriples));
++ BiarchLibDirs.append(begin(PPCLibDirs), end(PPCLibDirs));
++ BiarchTripleAliases.append(begin(PPCMuslTriples), end(PPCMuslTriples));
++ break;
++ case llvm::Triple::ppc64le:
++ LibDirs.append(begin(PPC64LELibDirs), end(PPC64LELibDirs));
++ TripleAliases.append(begin(PPC64LEMuslTriples), end(PPC64LEMuslTriples));
++ BiarchLibDirs.append(begin(PPCLELibDirs), end(PPCLELibDirs));
++ BiarchTripleAliases.append(begin(PPCLEMuslTriples), end(PPCLEMuslTriples));
++ break;
++ default:
++ break;
++ }
++ TripleAliases.push_back(TargetTriple.str());
++ if (TargetTriple.str() != BiarchTriple.str())
++ BiarchTripleAliases.push_back(BiarchTriple.str());
++ return;
++ }
++
+ // Android targets should not use GNU/Linux tools or libraries.
+ if (TargetTriple.isAndroid()) {
+ static const char *const AArch64AndroidTriples[] = {
diff --git a/srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch b/srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch
new file mode 100644
index 000000000000..4ad6412d1e6c
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch
@@ -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 =
diff --git a/srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch b/srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch
new file mode 100644
index 000000000000..21fc8003c5f1
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch
@@ -0,0 +1,48 @@
+--- a/clang/lib/Basic/Targets/PPC.h
++++ b/clang/lib/Basic/Targets/PPC.h
+@@ -415,11 +415,10 @@ public:
+ LongDoubleFormat = &llvm::APFloat::IEEEdouble();
+ } else if ((Triple.getArch() == llvm::Triple::ppc64le)) {
+ DataLayout = "e-m:e-i64:64-n32:64";
+- ABI = "elfv2";
+ } else {
+ DataLayout = "E-m:e-i64:64-n32:64";
+- ABI = "elfv1";
+ }
++ ABI = "elfv2";
+
+ if (Triple.isOSFreeBSD() || Triple.isOSOpenBSD() || Triple.isMusl()) {
+ LongDoubleWidth = LongDoubleAlign = 64;
+--- a/clang/lib/CodeGen/TargetInfo.cpp
++++ b/clang/lib/CodeGen/TargetInfo.cpp
+@@ -10927,9 +10927,9 @@ const TargetCodeGenInfo &CodeGenModule::getTargetCodeGenInfo() {
+ return SetCGInfo(new AIXTargetCodeGenInfo(Types, /*Is64Bit*/ true));
+
+ if (Triple.isOSBinFormatELF()) {
+- PPC64_SVR4_ABIInfo::ABIKind Kind = PPC64_SVR4_ABIInfo::ELFv1;
+- if (getTarget().getABI() == "elfv2")
+- Kind = PPC64_SVR4_ABIInfo::ELFv2;
++ PPC64_SVR4_ABIInfo::ABIKind Kind = PPC64_SVR4_ABIInfo::ELFv2;
++ if (getTarget().getABI() == "elfv1")
++ Kind = PPC64_SVR4_ABIInfo::ELFv1;
+ bool IsSoftFloat = CodeGenOpts.FloatABI == "soft";
+
+ return SetCGInfo(
+--- a/clang/lib/Driver/ToolChains/Clang.cpp
++++ b/clang/lib/Driver/ToolChains/Clang.cpp
+@@ -1920,14 +1920,7 @@ void Clang::AddPPCTargetArgs(const ArgList &Args,
+ const llvm::Triple &T = getToolChain().getTriple();
+ if (T.isOSBinFormatELF()) {
+ switch (getToolChain().getArch()) {
+- case llvm::Triple::ppc64: {
+- if ((T.isOSFreeBSD() && T.getOSMajorVersion() >= 13) ||
+- T.isOSOpenBSD() || T.isMusl())
+- ABIName = "elfv2";
+- else
+- ABIName = "elfv1";
+- break;
+- }
++ case llvm::Triple::ppc64:
+ case llvm::Triple::ppc64le:
+ ABIName = "elfv2";
+ break;
diff --git a/srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch b/srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch
new file mode 100644
index 000000000000..360cfc1ba7f1
--- /dev/null
+++ b/srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch
@@ -0,0 +1,35 @@
+--- 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__) || SANITIZER_RISCV64
++ defined(__hexagon__) || defined(__powerpc__) || 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_ANDROID
++#if (defined(__aarch64__) || defined(__powerpc__) || SANITIZER_RISCV64) && !SANITIZER_ANDROID
+ // GLIBC 2.20+ sys/user does not include asm/ptrace.h
+ # include <asm/ptrace.h>
+ #endif
diff --git a/srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip b/srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip
new file mode 100644
index 000000000000..d0b61c80c897
--- /dev/null
+++ b/srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip
@@ -0,0 +1,62 @@
+--- a/compiler-rt/lib/xray/xray_powerpc64.inc
++++ b/compiler-rt/lib/xray/xray_powerpc64.inc
+@@ -12,7 +12,13 @@
+
+ #include <cstdint>
+ #include <mutex>
++#ifdef __GLIBC__
+ #include <sys/platform/ppc.h>
++#else
++#include <cctype>
++#include <cstring>
++#include <cstdlib>
++#endif
+
+ #include "xray_defs.h"
+
+@@ -20,13 +26,45 @@ namespace __xray {
+
+ ALWAYS_INLINE uint64_t readTSC(uint8_t &CPU) XRAY_NEVER_INSTRUMENT {
+ CPU = 0;
++#ifdef __GLIBC__
+ return __ppc_get_timebase();
++#else
++ return __builtin_ppc_get_timebase();
++#endif
+ }
+
+ inline uint64_t getTSCFrequency() XRAY_NEVER_INSTRUMENT {
+ static std::mutex M;
+ std::lock_guard<std::mutex> Guard(M);
++#ifdef __GLIBC__
+ return __ppc_get_timebase_freq();
++#else
++ /* FIXME: a less dirty implementation? */
++ static uint64_t base;
++ if (!base) {
++ FILE *f = fopen("/proc/cpuinfo", "rb");
++ if (f) {
++ ssize_t nr;
++ /* virtually always big enough to hold the line */
++ char buf[512];
++ while (fgets(buf, sizeof(buf), f)) {
++ char *ret = strstr(buf, "timebase");
++ if (!ret) {
++ continue;
++ }
++ ret += sizeof("timebase") - 1;
++ ret = strchr(ret, ':');
++ if (!ret) {
++ continue;
++ }
++ base = strtoul(ret + 1, nullptr, 10);
++ break;
++ }
++ fclose(f);
++ }
++ }
++ return base;
++#endif
+ }
+
+ inline bool probeRequiredCPUFeatures() XRAY_NEVER_INSTRUMENT {
diff --git a/srcpkgs/llvm15/patches/libcxx-musl.patch b/srcpkgs/llvm15/patches/libcxx-musl.patch
new file mode 100644
index 000000000000..bbd31ffc2cb1
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxx-musl.patch
@@ -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,
+ typename remove_reference<decltype(errno)>::type __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
+ typename remove_reference<decltype(errno)>::type __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,
+ typename remove_reference<decltype(errno)>::type __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
+ typename remove_reference<decltype(errno)>::type __current_errno = errno;
+ if (__current_errno == 0)
+ errno = __save_errno;
diff --git a/srcpkgs/llvm15/patches/libcxx-ppc.patch b/srcpkgs/llvm15/patches/libcxx-ppc.patch
new file mode 100644
index 000000000000..7a92f8004e1c
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxx-ppc.patch
@@ -0,0 +1,22 @@
+This ensures `is_iec559` is defined correctly under all long double ABIs,
+including musl and its 64-bit long double. Also, `__ppc__` or `__ppc64__`
+is not defined on gcc.
+
+--- a/libcxx/include/limits
++++ b/libcxx/include/limits
+@@ -426,8 +426,14 @@ protected:
+ _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type signaling_NaN() _NOEXCEPT {return __builtin_nansl("");}
+ _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type denorm_min() _NOEXCEPT {return __LDBL_DENORM_MIN__;}
+
+-#if (defined(__ppc__) || defined(__ppc64__))
++#if defined(__powerpc__) || defined(__powerpc64__)
++#if (__LDBL_MAX_EXP__ > __DBL_MAX_EXP__) || (__LDBL_MANT_DIG__ == __DBL_MANT_DIG__)
++ /* IEEE 754 quadruple or double precision */
++ static _LIBCPP_CONSTEXPR const bool is_iec559 = true;
++#else
++ /* 128-bit IBM double-double */
+ static _LIBCPP_CONSTEXPR const bool is_iec559 = false;
++#endif
+ #else
+ static _LIBCPP_CONSTEXPR const bool is_iec559 = true;
+ #endif
diff --git a/srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch b/srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch
new file mode 100644
index 000000000000..70292beb2fcd
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch
@@ -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()
diff --git a/srcpkgs/llvm15/patches/libcxxabi-dl.patch b/srcpkgs/llvm15/patches/libcxxabi-dl.patch
new file mode 100644
index 000000000000..3a15f9db8c98
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxxabi-dl.patch
@@ -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 @@
+ target_link_libraries(${target} PRIVATE m)
+ endif()
+
++ if (LIBCXX_HAS_C_LIB)
++ target_link_libraries(${target} PRIVATE dl)
++ endif()
++
+ if (LIBCXX_HAS_RT_LIB)
+ target_link_libraries(${target} PRIVATE rt)
+ endif()
diff --git a/srcpkgs/llvm15/patches/libcxxabi-musl.patch b/srcpkgs/llvm15/patches/libcxxabi-musl.patch
new file mode 100644
index 000000000000..7f89340b8bdf
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxxabi-musl.patch
@@ -0,0 +1,38 @@
+gcc does not support using abi_tag in an extern "C" declaration
+https://github.com/gcc-mirror/gcc/blob/cf59c8983ef6590f0d69014f8dc8778b5b7691c6/gcc/cp/tree.cc#L5354-L5359
+diff -rup libcxx/include/__support/musl/xlocale.h.orig libcxx/include/__support/musl/xlocale.h
+--- a/libcxx/include/__support/musl/xlocale.h.orig 2022-12-19 14:44:34.049044339 -0800
++++ b/libcxx/include/__support/musl/xlocale.h 2022-12-19 14:45:24.211247988 -0800
+@@ -24,27 +24,27 @@
+ extern "C" {
+ #endif
+
+-inline _LIBCPP_HIDE_FROM_ABI long long
++static inline long long
+ strtoll_l(const char *__nptr, char **__endptr, int __base, locale_t) {
+ return ::strtoll(__nptr, __endptr, __base);
+ }
+
+-inline _LIBCPP_HIDE_FROM_ABI unsigned long long
++static inline unsigned long long
+ strtoull_l(const char *__nptr, char **__endptr, int __base, locale_t) {
+ return ::strtoull(__nptr, __endptr, __base);
+ }
+
+-inline _LIBCPP_HIDE_FROM_ABI long long
++static inline long long
+ wcstoll_l(const wchar_t *__nptr, wchar_t **__endptr, int __base, locale_t) {
+ return ::wcstoll(__nptr, __endptr, __base);
+ }
+
+-inline _LIBCPP_HIDE_FROM_ABI long long
++static inline long long
+ wcstoull_l(const wchar_t *__nptr, wchar_t **__endptr, int __base, locale_t) {
+ return ::wcstoull(__nptr, __endptr, __base);
+ }
+
+-inline _LIBCPP_HIDE_FROM_ABI long double
++static inline long double
+ wcstold_l(const wchar_t *__nptr, wchar_t **__endptr, locale_t) {
+ return ::wcstold(__nptr, __endptr);
+ }
diff --git a/srcpkgs/llvm15/patches/libomp-soname.patch b/srcpkgs/llvm15/patches/libomp-soname.patch
new file mode 100644
index 000000000000..9a622cd9254c
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libomp-soname.patch
@@ -0,0 +1,12 @@
+diff --git a/openmp/runtime/src/CMakeLists.txt b/openmp/runtime/src/CMakeLists.txt
+index df1ca9d90..9d2c3b7b9 100644
+--- a/openmp/runtime/src/CMakeLists.txt
++++ b/openmp/runtime/src/CMakeLists.txt
+@@ -150,6 +150,7 @@ libomp_get_libflags(LIBOMP_CONFIGURED_LIBFLAGS)
+ # Build libomp library. Add LLVMSupport dependency if building in-tree with libomptarget profiling enabled.
+ if(OPENMP_STANDALONE_BUILD OR (NOT OPENMP_ENABLE_LIBOMP_PROFILING))
+ add_library(omp ${LIBOMP_LIBRARY_KIND} ${LIBOMP_SOURCE_FILES})
++ set_target_properties(omp PROPERTIES VERSION ${LIBOMP_VERSION_MAJOR} SOVERSION ${LIBOMP_VERSION_MAJOR})
+ # Linking command will include libraries in LIBOMP_CONFIGURED_LIBFLAGS
+ target_link_libraries(omp ${LIBOMP_CONFIGURED_LIBFLAGS} ${LIBOMP_DL_LIBS})
+ else()
diff --git a/srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip b/srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip
new file mode 100644
index 000000000000..74aa7576ecf9
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip
@@ -0,0 +1,63 @@
+This fixes build at least with gcc9 which does not define `__ppc__`.
+
+--- a/libunwind/include/__libunwind_config.h
++++ b/libunwind/include/__libunwind_config.h
+@@ -49,7 +49,7 @@
+ # define _LIBUNWIND_CONTEXT_SIZE 167
+ # define _LIBUNWIND_CURSOR_SIZE 179
+ # define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_PPC64
+-# elif defined(__ppc__)
++# elif defined(__powerpc__)
+ # define _LIBUNWIND_TARGET_PPC 1
+ # define _LIBUNWIND_CONTEXT_SIZE 117
+ # define _LIBUNWIND_CURSOR_SIZE 124
+--- a/libunwind/src/UnwindRegistersRestore.S
++++ b/libunwind/src/UnwindRegistersRestore.S
+@@ -392,7 +392,7 @@ Lnovec:
+ PPC64_LR(3)
+ bctr
+
+-#elif defined(__ppc__)
++#elif defined(__powerpc__)
+
+ DEFINE_LIBUNWIND_FUNCTION(_ZN9libunwind13Registers_ppc6jumptoEv)
+ //
+--- a/libunwind/src/UnwindRegistersSave.S
++++ b/libunwind/src/UnwindRegistersSave.S
+@@ -554,7 +554,7 @@ DEFINE_LIBUNWIND_FUNCTION(__unw_getcontext)
+ blr
+
+
+-#elif defined(__ppc__)
++#elif defined(__powerpc__)
+
+ //
+ // extern int unw_getcontext(unw_context_t* thread_state)
+--- a/libunwind/src/config.h
++++ b/libunwind/src/config.h
+@@ -95,12 +95,12 @@
+ #define _LIBUNWIND_BUILD_SJLJ_APIS
+ #endif
+
+-#if defined(__i386__) || defined(__x86_64__) || defined(__ppc__) || defined(__ppc64__) || defined(__powerpc64__)
++#if defined(__i386__) || defined(__x86_64__) || defined(__powerpc__) || defined(__powerpc64__)
+ #define _LIBUNWIND_SUPPORT_FRAME_APIS
+ #endif
+
+ #if defined(__i386__) || defined(__x86_64__) || \
+- defined(__ppc__) || defined(__ppc64__) || defined(__powerpc64__) || \
++ defined(__powerpc__) || defined(__powerpc64__) || \
+ (!defined(__APPLE__) && defined(__arm__)) || \
+ (defined(__arm64__) || defined(__aarch64__)) || \
+ defined(__mips__)
+--- a/libunwind/src/libunwind.cpp
++++ b/libunwind/src/libunwind.cpp
+@@ -42,7 +42,7 @@ _LIBUNWIND_HIDDEN int __unw_init_local(unw_cursor_t *cursor,
+ # define REGISTER_KIND Registers_x86_64
+ #elif defined(__powerpc64__)
+ # define REGISTER_KIND Registers_ppc64
+-#elif defined(__ppc__)
++#elif defined(__powerpc__)
+ # define REGISTER_KIND Registers_ppc
+ #elif defined(__aarch64__)
+ # define REGISTER_KIND Registers_arm64
diff --git a/srcpkgs/llvm15/patches/lldb-musl.patch b/srcpkgs/llvm15/patches/lldb-musl.patch
new file mode 100644
index 000000000000..026c5e1e61ba
--- /dev/null
+++ b/srcpkgs/llvm15/patches/lldb-musl.patch
@@ -0,0 +1,40 @@
+--- a/lldb/source/Plugins/Process/Linux/Procfs.h
++++ b/lldb/source/Plugins/Process/Linux/Procfs.h
+@@ -10,6 +10,7 @@
+ // sys/procfs.h on Android/Linux for all supported architectures.
+
+ #include <sys/ptrace.h>
++#include <asm/ptrace.h>
+
+ #include "lldb/lldb-types.h"
+
+@@ -17,23 +18,13 @@
+
+ #include <vector>
+
+-#ifdef __ANDROID__
+-#if defined(__arm64__) || defined(__aarch64__)
+-typedef unsigned long elf_greg_t;
+-typedef elf_greg_t
+- elf_gregset_t[(sizeof(struct user_pt_regs) / sizeof(elf_greg_t))];
+-typedef struct user_fpsimd_state elf_fpregset_t;
+-#ifndef NT_FPREGSET
+-#define NT_FPREGSET NT_PRFPREG
+-#endif // NT_FPREGSET
+-#elif defined(__mips__)
+-#ifndef NT_FPREGSET
+-#define NT_FPREGSET NT_PRFPREG
+-#endif // NT_FPREGSET
+-#endif
+-#else // __ANDROID__
++#if !defined(__GLIBC__) && defined(__powerpc__)
++#define pt_regs musl_pt_regs
++#include <sys/procfs.h>
++#undef pt_regs
++#else
+ #include <sys/procfs.h>
+-#endif // __ANDROID__
++#endif
+
+ namespace lldb_private {
+ namespace process_linux {
diff --git a/srcpkgs/llvm15/patches/llvm-001-musl.patch b/srcpkgs/llvm15/patches/llvm-001-musl.patch
new file mode 100644
index 000000000000..f2a3f8d62813
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-001-musl.patch
@@ -0,0 +1,57 @@
+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;
+diff --git a/lib/Support/Unix/DynamicLibrary.inc b/lib/Support/Unix/DynamicLibrary.inc
+index a2a37996..2f86c470 100644
+--- a/llvm/lib/Support/Unix/DynamicLibrary.inc
++++ b/llvm/lib/Support/Unix/DynamicLibrary.inc
+@@ -102,7 +102,7 @@ static void *DoSearch(const char* SymbolName) {
+
+ // This macro returns the address of a well-known, explicit symbol
+ #define EXPLICIT_SYMBOL(SYM) \
+- if (!strcmp(SymbolName, #SYM)) return &SYM
++ if (!strcmp(SymbolName, #SYM)) return (void *)&SYM
+
+ // Under glibc we have a weird situation. The stderr/out/in symbols are both
+ // macros and global variables because of standards requirements. So, we
+diff --git a/utils/unittest/googletest/src/gtest.cc b/utils/unittest/googletest/src/gtest.cc
+index d882ab2e..f1fb12d0 100644
+--- a/llvm/utils/unittest/googletest/src/gtest.cc
++++ b/llvm/utils/unittest/googletest/src/gtest.cc
+@@ -128,6 +128,7 @@
+
+ #if GTEST_CAN_STREAM_RESULTS_
+ # include <arpa/inet.h> // NOLINT
++# include <sys/socket.h> // NOLINT
+ # include <netdb.h> // NOLINT
+ # include <sys/socket.h> // NOLINT
+ # include <sys/types.h> // NOLINT
diff --git a/srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch b/srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch
new file mode 100644
index 000000000000..0071d964bd37
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch
@@ -0,0 +1,30 @@
+This patches LLVM to use ELFv2 on ppc64 unconditionally unless overridden. We
+need this because unlike most distros we use ELFv2 for both glibc and musl
+on big endian ppc64.
+
+diff --git a/lib/Target/PowerPC/PPCTargetMachine.cpp b/lib/Target/PowerPC/PPCTargetMachine.cpp
+index 0634833e..b7cbc2e7 100644
+--- a/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp
++++ b/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp
+@@ -222,9 +222,8 @@ static PPCTargetMachine::PPCABI computeTargetABI(const Triple &TT,
+
+ switch (TT.getArch()) {
+ case Triple::ppc64le:
+- return PPCTargetMachine::PPC_ABI_ELFv2;
+ case Triple::ppc64:
+- return PPCTargetMachine::PPC_ABI_ELFv1;
++ return PPCTargetMachine::PPC_ABI_ELFv2;
+ default:
+ return PPCTargetMachine::PPC_ABI_UNKNOWN;
+ }
+diff --git a/test/CodeGen/PowerPC/ppc64-elf-abi.ll b/test/CodeGen/PowerPC/ppc64-elf-abi.ll
+index 8b1cf6b5..296a2afa 100644
+--- a/llvm/test/CodeGen/PowerPC/ppc64-elf-abi.ll
++++ b/llvm/test/CodeGen/PowerPC/ppc64-elf-abi.ll
+@@ -1,4 +1,5 @@
+-; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv1
++; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv2
++; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-musl < %s | FileCheck %s -check-prefix=CHECK-ELFv2
+ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu -target-abi elfv1 < %s | FileCheck %s -check-prefix=CHECK-ELFv1
+ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu -target-abi elfv2 < %s | FileCheck %s -check-prefix=CHECK-ELFv2
+ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv2
diff --git a/srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch b/srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch
new file mode 100644
index 000000000000..b5d15974375d
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch
@@ -0,0 +1,11 @@
+--- a/llvm/lib/Target/PowerPC/PPCSubtarget.cpp
++++ b/llvm/lib/Target/PowerPC/PPCSubtarget.cpp
+@@ -165,7 +165,7 @@ void PPCSubtarget::initSubtargetFeatures(StringRef CPU, StringRef FS) {
+
+ if ((TargetTriple.isOSFreeBSD() && TargetTriple.getOSMajorVersion() >= 13) ||
+ TargetTriple.isOSNetBSD() || TargetTriple.isOSOpenBSD() ||
+- TargetTriple.isMusl())
++ isTargetLinux())
+ SecurePlt = true;
+
+ if (HasSPE && IsPPC64)
diff --git a/srcpkgs/llvm15/patches/llvm-004-override-opt.patch b/srcpkgs/llvm15/patches/llvm-004-override-opt.patch
new file mode 100644
index 000000000000..51d0e4b31b32
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-004-override-opt.patch
@@ -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)
diff --git a/srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch b/srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch
new file mode 100644
index 000000000000..d332687b9d92
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch
@@ -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);
diff --git a/srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch b/srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch
new file mode 100644
index 000000000000..a00abd216665
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch
@@ -0,0 +1,25 @@
+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__) || defined (__ppc__) || \
+- defined(_POWER) || defined(_ARCH_PPC))
++ defined(_POWER) || defined(_ARCH_PPC) || (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
diff --git a/srcpkgs/llvm15/template b/srcpkgs/llvm15/template
new file mode 100644
index 000000000000..db510bbd2477
--- /dev/null
+++ b/srcpkgs/llvm15/template
@@ -0,0 +1,428 @@
+# Template file for 'llvm15'
+pkgname=llvm15
+version=15.0.6
+revision=1
+build_wrksrc=llvm
+build_style=cmake
+configure_args="
+ -DCMAKE_BUILD_TYPE=Release -Wno-dev
+ -DENABLE_LINKER_BUILD_ID=YES
+ -DLLDB_USE_SYSTEM_SIX=YES
+ -DLIBCXX_CXX_ABI=libcxxabi
+ -DLIBCXX_ENABLE_STATIC_ABI_LIBRARY=YES
+ -DLIBCXXABI_USE_LLVM_UNWINDER=YES
+ -DLIBCXXABI_ENABLE_STATIC_UNWINDER=YES
+ -DLIBOMP_ENABLE_SHARED=YES
+ -DLIBOMP_INSTALL_ALIASES=NO
+ -DLLVM_INCLUDE_DOCS=YES
+ -DLLVM_BUILD_DOCS=YES
+ -DLLVM_ENABLE_SPHINX=YES
+ -DSPHINX_WARNINGS_AS_ERRORS=NO
+ -DLLVM_INSTALL_UTILS=YES
+ -DLLVM_BUILD_LLVM_DYLIB=YES
+ -DLLVM_LINK_LLVM_DYLIB=YES
+ -DLLVM_ENABLE_RTTI=YES
+ -DLLVM_ENABLE_FFI=YES
+ -DLLVM_BINUTILS_INCDIR=/usr/include"
+hostmakedepends="perl python3 zlib-devel libffi-devel swig python3-Sphinx
+ python3-recommonmark python3-sphinx-automodapi"
+makedepends="python3-devel zlib-devel elfutils-devel libffi-devel libedit-devel
+ libxml2-devel binutils-devel libatomic-devel"
+depends="libllvm15>=${version}_${revision}"
+short_desc="Low Level Virtual Machine"
+maintainer="Orphaned <orphan@voidlinux.org>"
+license="Apache-2.0"
+homepage="https://www.llvm.org"
+distfiles="https://github.com/llvm/llvm-project/releases/download/llvmorg-${version}/llvm-project-${version}.src.tar.xz"
+checksum=9d53ad04dc60cb7b30e810faf64c5ab8157dadef46c8766f67f286238256ff92
+lib32disabled=yes
+python_version=3
+
+if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
+ configure_args+=" -DLIBCXX_HAS_MUSL_LIBC=YES
+ -DCOMPILER_RT_BUILD_GWP_ASAN=OFF"
+fi
+
+# "operand out of range" assembler failures
+case "$XBPS_TARGET_MACHINE" in
+ ppc64*) ;;
+ ppc*) configure_args+=" -DCLANG_ENABLE_CLANGD=OFF" ;;
+esac
+
+_enabled_projects="clang;clang-tools-extra;compiler-rt;libcxx;libcxxabi;libunwind;lld"
+
+_lldb_enable=yes
+_libomp_enable=no
+
+case "$XBPS_TARGET_MACHINE" in
+ ppc64le*) ;;
+ ppc*|i686*) _lldb_enable=no ;;
+esac
+
+case "$XBPS_TARGET_MACHINE" in
+ x86_64*|aarch64*|ppc64*) _libomp_enable=yes;;
+esac
+
+subpackages="clang-tools-extra"
+
+# must go before clang
+if [ "$_libomp_enable" = "yes" ]; then
+ _enabled_projects+=";openmp"
+ subpackages+=" libomp libomp-devel"
+ # because of cmake nonsense referencing libomptarget.so.*
+ depends+=" libomp>=${version}_${revision}"
+fi
+
+subpackages+=" clang clang-analyzer libclang libclang-cpp
+ llvm-libunwind llvm-libunwind-devel libcxx libcxx-devel
+ libcxxabi libcxxabi-devel libllvm15"
+
+if [ "$_lldb_enable" = "yes" ]; then
+ # XXX fails to cross compile due to python
+ _enabled_projects+=";lldb"
+ subpackages+=" lldb lldb-devel"
+fi
+
+subpackages+=" lld lld-devel"
+
+configure_args+=" -DLLVM_ENABLE_PROJECTS=${_enabled_projects}"
+
+post_patch() {
+ if [ "$_lldb_enable" = "yes" ]; then
+ if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
+ vsed -i 's|__ptrace_request|int|g' \
+ ${wrksrc}/lldb/source/Plugins/Process/Linux/NativeProcessLinux.cpp
+ fi
+ # disable docs for lldb as they fail to generate
+ vsed -i '/add_subdirectory(docs)/d' \
+ ${wrksrc}/lldb/CMakeLists.txt
+ fi
+
+ # update config.guess for better platform detection
+ cp $XBPS_COMMONDIR/environment/configure/automake/config.guess \
+ ${wrksrc}/llvm/cmake
+
+ # fix linker failures on some archs
+ vsed -i 's,check_library_exists(gcc_s .*,set(LIBCXXABI_HAS_GCC_S_LIB ON),' \
+ ${wrksrc}/libcxxabi/cmake/config-ix.cmake
+ vsed -i 's,check_library_exists(gcc .*,set(LIBCXXABI_HAS_GCC_LIB ON),' \
+ ${wrksrc}/libcxxabi/cmake/config-ix.cmake
+
+ # need libssp_nonshared on some musl platforms (because of nodefaultlibs)
+ case "$XBPS_TARGET_MACHINE" in
+ ppc64*) ;;
+ ppc*-musl|i686-musl|mips*-musl)
+ vsed -i 's,^# Setup flags.$,add_library_flags(ssp_nonshared),' \
+ ${wrksrc}/libunwind/src/CMakeLists.txt
+ vsed -i 's,^# Setup flags.$,add_library_flags(ssp_nonshared),' \
+ ${wrksrc}/libcxxabi/src/CMakeLists.txt
+ vsed -i 's,#ssp,,' ${wrksrc}/libcxx/CMakeLists.txt
+ ;;
+ esac
+
+ case "$XBPS_TARGET_MACHINE" in
+ arm*-musl|i686-musl) # sanitizer code is broken since it duplicates some libc bits
+ vsed -i 's/set(COMPILER_RT_HAS_SANITIZER_COMMON TRUE)/set(COMPILER_RT_HAS_SANITIZER_COMMON FALSE)/' \
+ ${wrksrc}/compiler-rt/cmake/config-ix.cmake
+ ;;
+ esac
+}
+
+pre_configure() {
+ local triplet
+
+ # Vastly reduce size of debugging symbols:
+ CFLAGS=${CFLAGS/ -g/ -g1}
+ CXXFLAGS=${CXXFLAGS/ -g/ -g1}
+
+ # since gcc9, the build likes to blow up for ppc32 apparently because
+ # of clang being too large for a 24-bit relative call to the PLT, so
+ # optimize for size instead
+ case "$XBPS_TARGET_MACHINE" in
+ ppc64*) ;;
+ mips*-musl|ppc*) configure_args+=" -DVOID_CXX_OPT_FLAGS=-Os" ;;
+ esac
+
+ if [ "$CROSS_BUILD" ]; then
+ msg_normal "Building host tblgen\n"
+ mkdir -p build/HOST
+ cd build/HOST
+ CC="$BUILD_CC" CXX="$BUILD_CXX" CFLAGS="$BUILD_CFLAGS" \
+ CXXFLAGS="$BUILD_CXXFLAGS" LDFLAGS="$BUILD_LDFLAGS" \
+ cmake ../.. -DCMAKE_BUILD_TYPE=Release \
+ -DLLVM_ENABLE_PROJECTS=${_enabled_projects}
+ make ${makejobs} -C utils/TableGen
+ make ${makejobs} -C tools/clang/utils/TableGen
+ [ "$_lldb_enable" = "yes" ] && make ${makejobs} -C tools/lldb/utils/TableGen
+ configure_args+=" -DLLVM_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/llvm-tblgen"
+ configure_args+=" -DCLANG_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/clang-tblgen"
+ [ "$_lldb_enable" = "yes" ] && configure_args+=" -DLLDB_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/lldb-tblgen"
+ cd ../..
+ fi
+
+ case "$XBPS_TARGET_MACHINE" in
+ i686*) _arch="X86";;
+ x86_64*) _arch="X86";;
+ armv5*) _arch="Armv5te";;
+ armv6*) _arch="Armv6";;
+ armv7*) _arch="Armv7";;
+ aarch64*) _arch="AArch64";;
+ mips*) _arch="Mips";;
+ ppc*) _arch="PowerPC";;
+ riscv64*) _arch="RISCV64";;
+ esac
+
+ triplet=${XBPS_CROSS_TRIPLET:-$XBPS_TRIPLET}
+
+ configure_args+=" -DLLVM_TARGET_ARCH=${_arch}"
+ configure_args+=" -DLLVM_HOST_TRIPLE=${triplet}"
+ configure_args+=" -DLLVM_DEFAULT_TARGET_TRIPLE=${triplet}"
+}
+
+do_install() {
+ cd build
+ cmake -DCMAKE_INSTALL_PREFIX=${DESTDIR}/usr -P cmake_install.cmake
+
+ # Required for multilib.
+ if [ "$XBPS_TARGET_MACHINE" = "x86_64" ]; then
+ for _header in llvm-config; do
+ mv ${DESTDIR}/usr/include/llvm/Config/${_header}{,-64}.h
+ vinstall ${FILESDIR}/llvm-Config-${_header}.h 644 \
+ usr/include/llvm/Config ${_header}.h
+ done
+ fi
+
+ # Remove llvm-config-host in cross builds.
+ if [ "$CROSS_BUILD" ]; then
+ rm -f ${DESTDIR}/usr/bin/llvm-config-host
+ fi
+
+ # Install libcxxabi headers
+ vinstall ${wrksrc}/libcxxabi/include/__cxxabi_config.h 644 usr/include
+ vinstall ${wrksrc}/libcxxabi/include/cxxabi.h 644 usr/include
+
+ # Install libunwind headers
+ vinstall ${wrksrc}/libunwind/include/__libunwind_config.h 644 usr/include
+ vinstall ${wrksrc}/libunwind/include/libunwind.h 644 usr/include
+ vinstall ${wrksrc}/libunwind/include/unwind.h 644 usr/include
+ vinstall ${wrksrc}/libunwind/include/mach-o/compact_unwind_encoding.h \
+ 644 usr/include/mach-o
+}
+
+clang-analyzer_package() {
+ pycompile_dirs="usr/share/scan-view"
+ depends="clang-${version}_${revision} python3 perl"
+ short_desc+=" - A source code analysis framework"
+ homepage="https://clang-analyzer.llvm.org/"
+ pkg_install() {
+ vmove "usr/bin/scan-*"
+ vmove "usr/libexec/*analyzer"
+ vmove "usr/share/scan-*"
+ vmove usr/share/man/man1/scan-build.1
+ }
+}
+
+clang-tools-extra_package() {
+ lib32disabled=yes
+ depends="clang-${version}_${revision} python3"
+ short_desc+=" - Extra Clang tools"
+ homepage="https://clang.llvm.org/extra/"
+ pkg_install() {
+ vmove usr/bin/clang-apply-replacements
+ vmove usr/bin/clang-doc
+ vmove usr/bin/clang-include-fixer
+ vmove usr/bin/clang-query
+ vmove usr/bin/clang-rename
+ vmove usr/bin/clang-reorder-fields
+ vmove usr/bin/clang-tidy
+ vmove usr/bin/clangd
+ vmove usr/bin/diagtool
+ vmove usr/bin/find-all-symbols
+ vmove usr/bin/hmaptool
+ vmove usr/bin/modularize
+ vmove usr/bin/pp-trace
+ vmove usr/bin/sancov
+ vmove usr/include/clang-tidy
+ vmove "usr/lib/libclangApplyReplacements*"
+ vmove "usr/lib/libclangDoc*"
+ vmove "usr/lib/libclangIncludeFixer*"
+ vmove "usr/lib/libclangReorderFields*"
+ vmove "usr/lib/libclangQuery*"
+ vmove "usr/lib/libclangTidy*"
+ vmove "usr/share/clang/*include-fixer*"
+ vmove "usr/share/clang/*rename*"
+ vmove "usr/share/clang/*tidy*"
+ vmove usr/share/doc/LLVM/clang-tools
+ vmove usr/share/man/man1/diagtool.1
+ vmove usr/share/man/man1/extraclangtools.1
+ }
+}
+
+clang_package() {
+ lib32disabled=yes
+ depends="libstdc++-devel libgcc-devel binutils ${XBPS_TARGET_LIBC}-devel
+ libclang-${version}_${revision}"
+ short_desc+=" - C language family frontend"
+ homepage="https://clang.llvm.org/"
+ pkg_install() {
+ vmove "usr/bin/*clang*"
+ vmove usr/bin/c-index-test
+ vmove usr/include/clang
+ vmove usr/include/clang-c
+ vmove usr/lib/clang
+ vmove usr/lib/cmake/clang
+ vmove "usr/lib/libclang*.a"
+ vmove "usr/lib/libclang*.so"
+ vmove usr/share/clang
+ vmove usr/share/doc/LLVM/clang
+ vmove usr/share/man/man1/clang.1
+ }
+}
+
+libclang_package() {
+ short_desc+=" - C frontend runtime library"
+ pkg_install() {
+ vmove "usr/lib/libclang.so.*"
+ }
+}
+
+libclang-cpp_package() {
+ short_desc+=" - C frontend runtime library (C++ interface)"
+ pkg_install() {
+ vmove "usr/lib/libclang-cpp.so.*"
+ }
+}
+
+lld_package() {
+ lib32disabled=yes
+ short_desc+=" - linker"
+ homepage="https://lld.llvm.org"
+ pkg_install() {
+ vmove usr/bin/ld.lld*
+ vmove usr/bin/ld64.lld*
+ vmove usr/bin/lld*
+ vmove usr/bin/wasm-ld
+ vmove usr/share/doc/LLVM/lld
+ }
+}
+
+lld-devel_package() {
+ lib32disabled=yes
+ short_desc+=" - linker - development files"
+ homepage="https://lld.llvm.org"
+ depends="lld>=${version}_${revision}"
+ pkg_install() {
+ vmove usr/include/lld
+ vmove usr/lib/cmake/lld
+ vmove "usr/lib/liblld*a"
+ }
+}
+
+lldb_package() {
+ lib32disabled=yes
+ depends+=" python3-six"
+ short_desc+=" - LLDB debugger"
+ homepage="https://lldb.llvm.org/"
+ pkg_install() {
+ vmove usr/bin/*lldb*
+ vmove usr/lib/liblldb*so.*
+ vmove /usr/lib/python*
+ }
+}
+
+lldb-devel_package() {
+ lib32disabled=yes
+ depends="lldb>=${version}_${revision}"
+ short_desc+=" - LLDB debugger - development files"
+ pkg_install() {
+ vmove usr/include/lldb
+ vmove "usr/lib/liblldb*.so"
+ }
+}
+
+llvm-libunwind_package() {
+ short_desc+=" - libunwind"
+ pkg_install() {
+ vmove "usr/lib/${XBPS_TRIPLET}/libunwind.so.*"
+ }
+}
+
+llvm-libunwind-devel_package() {
+ short_desc+=" - libunwind - development files"
+ depends="llvm-libunwind>=${version}_${revision}"
+ conflicts="libunwind-devel>=0"
+ pkg_install() {
+ vmove usr/include/mach-o
+ vmove "usr/include/*unwind*"
+ vmove "usr/lib/${XBPS_TRIPLET}/libunwind.a"
+ vmove "usr/lib/${XBPS_TRIPLET}/libunwind.so"
+ vmove usr/share/doc/LLVM/libunwind
+ }
+}
+
+libcxxabi_package() {
+ short_desc+=" - low level support for libc++"
+ pkg_install() {
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++abi.so.*"
+ }
+}
+
+libcxxabi-devel_package() {
+ short_desc+=" - low level support for libc++ - development files"
+ depends="libcxxabi>=${version}_${revision}"
+ pkg_install() {
+ vmove "usr/include/*cxxabi*"
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++abi.so"
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++abi.a"
+ }
+}
+
+libcxx_package() {
+ short_desc+=" - C++ standard library"
+ pkg_install() {
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++.so.*"
+ }
+}
+
+libcxx-devel_package() {
+ short_desc+=" - C++ standard library - development files"
+ depends="libcxx>=${version}_${revision}"
+ pkg_install() {
+ vmove usr/include/c++
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++.so"
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++.a"
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++experimental.a"
+ vmove usr/share/doc/LLVM/libcxx
+ }
+}
+
+libomp_package() {
+ short_desc+=" - Clang OpenMP support library"
+ pkg_install() {
+ vmove usr/lib/libarcher.so
+ vmove usr/lib/libompd.so
+ vmove "usr/lib/libomptarget.rtl.*.so"
+ vmove "usr/lib/libomp*.so.*"
+ }
+}
+
+libomp-devel_package() {
+ short_desc+=" - Clang OpenMP support library - development files"
+ depends="libomp>=${version}_${revision}"
+ pkg_install() {
+ vmove "usr/include/omp*.h"
+ vmove "usr/lib/clang/${version}/include/omp*.h"
+ vmove "usr/lib/libarcher*"
+ vmove "usr/lib/libomp*.so"
+ vmove usr/lib/cmake/openmp
+ vmove usr/share/doc/LLVM/openmp
+ vmove usr/share/man/man1/llvmopenmp.1
+ }
+}
+
+libllvm15_package() {
+ short_desc+=" - runtime library"
+ pkg_install() {
+ vmove "usr/lib/libLLVM-*.so*"
+ }
+}
diff --git a/srcpkgs/llvm15/update b/srcpkgs/llvm15/update
new file mode 100644
index 000000000000..e95cf26b3586
--- /dev/null
+++ b/srcpkgs/llvm15/update
@@ -0,0 +1,3 @@
+site="https://github.com/llvm/llvm-project/releases"
+pattern="llvmorg-\K(\d+.){2}\d+(-rc\d+)?"
+ignore="*-rc*"
From 574bcf44fafdddf85c813d35beb1be5935c5cd68 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Sun, 18 Dec 2022 00:40:18 +0100
Subject: [PATCH 02/14] llvm: update to 15
---
common/shlibs | 6 +++---
srcpkgs/clang | 2 +-
srcpkgs/clang-analyzer | 2 +-
srcpkgs/clang-tools-extra | 2 +-
srcpkgs/libclang | 2 +-
srcpkgs/libclang-cpp | 2 +-
srcpkgs/libcxx | 2 +-
srcpkgs/libcxx-devel | 2 +-
srcpkgs/libcxxabi | 2 +-
srcpkgs/libcxxabi-devel | 2 +-
srcpkgs/libomp | 2 +-
srcpkgs/libomp-devel | 2 +-
srcpkgs/lld | 2 +-
srcpkgs/lld-devel | 2 +-
srcpkgs/lldb | 2 +-
srcpkgs/lldb-devel | 2 +-
srcpkgs/llvm-libunwind | 2 +-
srcpkgs/llvm-libunwind-devel | 2 +-
srcpkgs/llvm/template | 6 +++---
19 files changed, 23 insertions(+), 23 deletions(-)
diff --git a/common/shlibs b/common/shlibs
index a1192ee99090..688992826987 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -985,9 +985,9 @@ 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.12 lldb-12.0.0_1
-libclang.so.12 libclang-12.0.0_1
-libclang-cpp.so.12 libclang-cpp-12.0.0_1
+liblldb.so.15 lldb-15.0.6_1
+libclang.so.15 libclang-15.0.6_1
+libclang-cpp.so.15 libclang-cpp-15.0.6_1
libLLVM-11.so libllvm11-11.0.0_1
libLLVM-12.so libllvm12-12.0.0_1
libLLVM-15.so libllvm15-15.0.6_1
diff --git a/srcpkgs/clang b/srcpkgs/clang
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/clang
+++ b/srcpkgs/clang
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/clang-analyzer b/srcpkgs/clang-analyzer
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/clang-analyzer
+++ b/srcpkgs/clang-analyzer
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/clang-tools-extra b/srcpkgs/clang-tools-extra
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/clang-tools-extra
+++ b/srcpkgs/clang-tools-extra
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libclang b/srcpkgs/libclang
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libclang
+++ b/srcpkgs/libclang
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libclang-cpp b/srcpkgs/libclang-cpp
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libclang-cpp
+++ b/srcpkgs/libclang-cpp
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxx b/srcpkgs/libcxx
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxx
+++ b/srcpkgs/libcxx
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxx-devel b/srcpkgs/libcxx-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxx-devel
+++ b/srcpkgs/libcxx-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxxabi b/srcpkgs/libcxxabi
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxxabi
+++ b/srcpkgs/libcxxabi
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxxabi-devel b/srcpkgs/libcxxabi-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxxabi-devel
+++ b/srcpkgs/libcxxabi-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libomp b/srcpkgs/libomp
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libomp
+++ b/srcpkgs/libomp
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libomp-devel b/srcpkgs/libomp-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libomp-devel
+++ b/srcpkgs/libomp-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lld b/srcpkgs/lld
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lld
+++ b/srcpkgs/lld
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lld-devel b/srcpkgs/lld-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lld-devel
+++ b/srcpkgs/lld-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lldb b/srcpkgs/lldb
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lldb
+++ b/srcpkgs/lldb
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lldb-devel b/srcpkgs/lldb-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lldb-devel
+++ b/srcpkgs/lldb-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm-libunwind b/srcpkgs/llvm-libunwind
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/llvm-libunwind
+++ b/srcpkgs/llvm-libunwind
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm-libunwind-devel b/srcpkgs/llvm-libunwind-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/llvm-libunwind-devel
+++ b/srcpkgs/llvm-libunwind-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm/template b/srcpkgs/llvm/template
index a92db6f94f9f..fc1c850bd26f 100644
--- a/srcpkgs/llvm/template
+++ b/srcpkgs/llvm/template
@@ -1,11 +1,11 @@
# Template file for 'llvm'
pkgname=llvm
-version=12.0.0
+version=15
revision=1
build_style=meta
-depends="llvm12"
-replaces="llvm11>=0 llvm10>=0 llvm9>=0 llvm8>=0 llvm7>=0 llvm6.0>=0 llvm3.9>=0"
+depends="llvm15"
short_desc="LLVM meta package"
maintainer="Enno Boland <gottox@voidlinux.org>"
license="Public Domain"
homepage="https://www.voidlinux.org"
+replaces="llvm12>=0 llvm11>=0 llvm10>=0 llvm9>=0 llvm8>=0 llvm7>=0 llvm6.0>=0 llvm3.9>=0"
From fdc41093b8815d725ce4e4e9eb937340a60be5ec Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Sun, 18 Dec 2022 12:20:08 +0100
Subject: [PATCH 03/14] llvm12: remove bumped subpackages
---
srcpkgs/llvm12/template | 264 +---------------------------------------
1 file changed, 1 insertion(+), 263 deletions(-)
diff --git a/srcpkgs/llvm12/template b/srcpkgs/llvm12/template
index f8ea3ba641ae..aea0b43cf573 100644
--- a/srcpkgs/llvm12/template
+++ b/srcpkgs/llvm12/template
@@ -50,55 +50,7 @@ case "$XBPS_TARGET_MACHINE" in
ppc*) configure_args+=" -DCLANG_ENABLE_CLANGD=OFF" ;;
esac
-_enabled_projects="clang;clang-tools-extra;compiler-rt;libcxx;libcxxabi;libunwind;lld"
-
-_lldb_enable=yes
-_libomp_enable=no
-
-case "$XBPS_TARGET_MACHINE" in
- ppc64le*) ;;
- ppc*|i686*) _lldb_enable=no ;;
-esac
-
-case "$XBPS_TARGET_MACHINE" in
- x86_64*|aarch64*|ppc64*) _libomp_enable=yes;;
-esac
-
-subpackages="clang-tools-extra"
-
-# must go before clang
-if [ "$_libomp_enable" = "yes" ]; then
- _enabled_projects+=";openmp"
- subpackages+=" libomp libomp-devel"
- # because of cmake nonsense referencing libomptarget.so.*
- depends+=" libomp>=${version}_${revision}"
-fi
-
-subpackages+=" clang clang-analyzer libclang libclang-cpp
- llvm-libunwind llvm-libunwind-devel libcxx libcxx-devel
- libcxxabi libcxxabi-devel libllvm12"
-
-if [ "$_lldb_enable" = "yes" ]; then
- # XXX fails to cross compile due to python
- _enabled_projects+=";lldb"
- subpackages+=" lldb lldb-devel"
-fi
-
-subpackages+=" lld lld-devel"
-
-configure_args+=" -DLLVM_ENABLE_PROJECTS=${_enabled_projects}"
-
post_patch() {
- if [ "$_lldb_enable" = "yes" ]; then
- if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
- vsed -i 's|__ptrace_request|int|g' \
- ${wrksrc}/lldb/source/Plugins/Process/Linux/NativeProcessLinux.cpp
- fi
- # disable docs for lldb as they fail to generate
- vsed -i '/add_subdirectory(docs)/d' \
- ${wrksrc}/lldb/CMakeLists.txt
- fi
-
# update config.guess for better platform detection
cp $XBPS_COMMONDIR/environment/configure/automake/config.guess \
${wrksrc}/llvm/cmake
@@ -154,14 +106,12 @@ pre_configure() {
cd build/HOST
CC="$BUILD_CC" CXX="$BUILD_CXX" CFLAGS="$BUILD_CFLAGS" \
CXXFLAGS="$BUILD_CXXFLAGS" LDFLAGS="$BUILD_LDFLAGS" \
- cmake ../.. -DCMAKE_BUILD_TYPE=Release \
- -DLLVM_ENABLE_PROJECTS=${_enabled_projects}
+ cmake ../.. -DCMAKE_BUILD_TYPE=Release
make ${makejobs} -C utils/TableGen
make ${makejobs} -C tools/clang/utils/TableGen
[ "$_lldb_enable" = "yes" ] && make ${makejobs} -C tools/lldb/utils/TableGen
configure_args+=" -DLLVM_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/llvm-tblgen"
configure_args+=" -DCLANG_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/clang-tblgen"
- [ "$_lldb_enable" = "yes" ] && configure_args+=" -DLLDB_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/lldb-tblgen"
cd ../..
fi
@@ -201,218 +151,6 @@ do_install() {
if [ "$CROSS_BUILD" ]; then
rm -f ${DESTDIR}/usr/bin/llvm-config-host
fi
-
- # Install libcxxabi headers
- vinstall ${wrksrc}/libcxxabi/include/__cxxabi_config.h 644 usr/include
- vinstall ${wrksrc}/libcxxabi/include/cxxabi.h 644 usr/include
-
- # Install libunwind headers
- vinstall ${wrksrc}/libunwind/include/__libunwind_config.h 644 usr/include
- vinstall ${wrksrc}/libunwind/include/libunwind.h 644 usr/include
- vinstall ${wrksrc}/libunwind/include/unwind.h 644 usr/include
- vinstall ${wrksrc}/libunwind/include/mach-o/compact_unwind_encoding.h \
- 644 usr/include/mach-o
-}
-
-clang-analyzer_package() {
- pycompile_dirs="usr/share/scan-view"
- depends="clang-${version}_${revision} python3 perl"
- short_desc+=" - A source code analysis framework"
- homepage="https://clang-analyzer.llvm.org/"
- pkg_install() {
- vmove usr/share/man/man1/scan-build.1
- vmove "/usr/bin/scan-*"
- vmove "/usr/share/scan-*"
- vmove "/usr/libexec/*analyzer"
- }
-}
-
-clang-tools-extra_package() {
- lib32disabled=yes
- depends="clang-${version}_${revision} python3"
- short_desc+=" - Extra Clang tools"
- homepage="https://clang.llvm.org/extra/"
- pkg_install() {
- vmove usr/include/clang-tidy
- vmove usr/bin/clang-apply-replacements
- vmove usr/bin/clang-query
- vmove usr/bin/clang-rename
- vmove usr/bin/clang-tidy
- vmove usr/bin/diagtool
- vmove usr/bin/find-all-symbols
- vmove usr/bin/hmaptool
- vmove usr/bin/modularize
- vmove usr/bin/pp-trace
- vmove usr/bin/sancov
- vmove "usr/lib/libclangApplyReplacements*"
- vmove "usr/lib/libclangQuery*"
- vmove "usr/lib/libclangTidy*"
- vmove "usr/share/clang/*tidy*"
- vmove usr/share/doc/clang-tools
- vmove usr/share/man/man1/extraclangtools.1
- vmove usr/share/man/man1/diagtool.1
- }
-}
-
-clang_package() {
- lib32disabled=yes
- depends="libstdc++-devel libgcc-devel binutils ${XBPS_TARGET_LIBC}-devel
- libclang-${version}_${revision}"
- short_desc+=" - C language family frontend"
- homepage="https://clang.llvm.org/"
- pkg_install() {
- vmove usr/include/clang
- vmove usr/include/clang-c
- vmove "usr/bin/*clang*"
- vmove usr/bin/c-index-test
- vmove usr/lib/clang
- vmove usr/lib/cmake/clang
- vmove "usr/lib/libclang*.a"
- vmove "usr/lib/libclang*.so"
- vmove usr/share/clang
- vmove usr/share/doc/clang
- vmove usr/share/man/man1/clang.1
- }
-}
-
-libclang_package() {
- short_desc+=" - C frontend runtime library"
- pkg_install() {
- vmove "usr/lib/libclang.so.*"
- }
-}
-
-libclang-cpp_package() {
- short_desc+=" - C frontend runtime library (C++ interface)"
- pkg_install() {
- vmove "usr/lib/libclang-cpp.so.*"
- }
-}
-
-lld_package() {
- lib32disabled=yes
- short_desc+=" - linker"
- homepage="https://lld.llvm.org"
- pkg_install() {
- vmove usr/bin/lld*
- vmove usr/bin/wasm-ld
- vmove usr/bin/ld.lld*
- vmove usr/bin/ld64.lld*
- vmove usr/share/doc/lld
- }
-}
-
-lld-devel_package() {
- lib32disabled=yes
- short_desc+=" - linker - development files"
- homepage="https://lld.llvm.org"
- depends="lld>=${version}_${revision}"
- pkg_install() {
- vmove usr/include/lld
- vmove usr/lib/cmake/lld
- vmove "usr/lib/liblld*a"
- }
-}
-
-lldb_package() {
- lib32disabled=yes
- depends+=" python3-six"
- short_desc+=" - LLDB debugger"
- homepage="https://lldb.llvm.org/"
- pkg_install() {
- vmove usr/bin/*lldb*
- vmove usr/lib/liblldb*so.*
- vmove /usr/lib/python*
- }
-}
-
-lldb-devel_package() {
- lib32disabled=yes
- depends="lldb>=${version}_${revision}"
- short_desc+=" - LLDB debugger - development files"
- pkg_install() {
- vmove usr/include/lldb
- vmove "usr/lib/liblldb*.so"
- }
-}
-
-llvm-libunwind_package() {
- short_desc+=" - libunwind"
- pkg_install() {
- vmove "usr/lib/libunwind.so.*"
- }
-}
-
-llvm-libunwind-devel_package() {
- short_desc+=" - libunwind - development files"
- depends="llvm-libunwind>=${version}_${revision}"
- conflicts="libunwind-devel>=0"
- pkg_install() {
- vmove usr/lib/libunwind.so
- vmove usr/lib/libunwind.a
- vmove "usr/include/*unwind*"
- vmove usr/include/mach-o
- vmove usr/share/doc/libunwind
- }
-}
-
-libcxxabi_package() {
- short_desc+=" - low level support for libc++"
- pkg_install() {
- vmove "usr/lib/libc++abi.so.*"
- }
-}
-
-libcxxabi-devel_package() {
- short_desc+=" - low level support for libc++ - development files"
- depends="libcxxabi>=${version}_${revision}"
- pkg_install() {
- vmove usr/lib/libc++abi.so
- vmove usr/lib/libc++abi.a
- vmove "usr/include/*cxxabi*"
- }
-}
-
-libcxx_package() {
- short_desc+=" - C++ standard library"
- pkg_install() {
- vmove "usr/lib/libc++.so.*"
- }
-}
-
-libcxx-devel_package() {
- short_desc+=" - C++ standard library - development files"
- depends="libcxx>=${version}_${revision}"
- pkg_install() {
- vmove usr/lib/libc++.so
- vmove usr/lib/libc++.a
- vmove usr/lib/libc++experimental.a
- vmove usr/include/c++
- vmove usr/share/doc/libcxx
- }
-}
-
-libomp_package() {
- short_desc+=" - Clang OpenMP support library"
- pkg_install() {
- vmove usr/lib/libomp.so
- vmove "usr/lib/libomptarget.rtl.*.so"
- vmove usr/lib/libarcher.so
- vmove "usr/lib/libomp*.so.*"
- }
-}
-
-libomp-devel_package() {
- short_desc+=" - Clang OpenMP support library - development files"
- depends="libomp>=${version}_${revision}"
- pkg_install() {
- vmove "usr/lib/libomp*.so"
- vmove "usr/lib/libarcher*"
- vmove "usr/include/omp*.h"
- vmove "usr/lib/clang/${version}/include/omp*.h"
- vmove usr/share/man/man1/llvmopenmp.1
- vmove usr/share/doc/openmp
- }
}
libllvm12_package() {
From ff6fdec4a2c5e520a2e539ed560e2903b06fc06f Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:27:03 +0100
Subject: [PATCH 04/14] mesa: rebuild for llvm15
---
srcpkgs/mesa/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/mesa/template b/srcpkgs/mesa/template
index 4c3c9ec6039e..0641b28a80d6 100644
--- a/srcpkgs/mesa/template
+++ b/srcpkgs/mesa/template
@@ -1,7 +1,7 @@
# Template file for 'mesa'
pkgname=mesa
version=22.2.4
-revision=2
+revision=3
build_style=meson
configure_args="-Dglvnd=true -Dshared-glapi=enabled -Dgbm=enabled -Degl=enabled
-Dosmesa=true -Dgles1=enabled -Dgles2=enabled -Dglx=dri -Ddri3=enabled
From cbdd60209523392332623ae81db870c1f2ac0261 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:34:04 +0100
Subject: [PATCH 05/14] bcc: rebuild for llvm15
---
srcpkgs/bcc/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/bcc/template b/srcpkgs/bcc/template
index 168a67389bba..219ab9b50219 100644
--- a/srcpkgs/bcc/template
+++ b/srcpkgs/bcc/template
@@ -1,7 +1,7 @@
# Template file for 'bcc'
pkgname=bcc
version=0.25.0
-revision=2
+revision=3
build_style=cmake
configure_args="-DREVISION=${version} -DENABLE_LLVM_SHARED=1"
hostmakedepends="flex python3"
From a9eca990131612eb024808523e2bdc6a0cc6844e Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:37:25 +0100
Subject: [PATCH 06/14] bpftrace: rebuild for llvm15
---
srcpkgs/bpftrace/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/bpftrace/template b/srcpkgs/bpftrace/template
index 857815d29eef..47f2b5e77024 100644
--- a/srcpkgs/bpftrace/template
+++ b/srcpkgs/bpftrace/template
@@ -1,7 +1,7 @@
# Template file for 'bpftrace'
pkgname=bpftrace
version=0.16.0
-revision=1
+revision=2
archs="x86_64* aarch64* ppc64*"
build_style=cmake
configure_args="-DBUILD_TESTING=OFF" # needs root to run
From ef1ab0446d277380880c6302bb69cdf852fed053 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:43:53 +0100
Subject: [PATCH 07/14] CastXML: rebuild for llvm15
---
srcpkgs/CastXML/template | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/srcpkgs/CastXML/template b/srcpkgs/CastXML/template
index 5d7d9503658c..28c424c78073 100644
--- a/srcpkgs/CastXML/template
+++ b/srcpkgs/CastXML/template
@@ -1,7 +1,7 @@
# Template file for 'CastXML'
pkgname=CastXML
version=0.4.6
-revision=1
+revision=2
build_style=cmake
configure_args="-DSPHINX_MAN=YES -DCastXML_INSTALL_MAN_DIR=share/man"
hostmakedepends="clang python3-Sphinx"
@@ -12,8 +12,8 @@ short_desc="C-family abstract syntax tree XML output tool"
maintainer="Evgeny Ermakov <evgeny.v.ermakov@gmail.com>"
license="Apache-2.0"
homepage="https://github.com/CastXML/CastXML"
-distfiles="https://github.com/CastXML/CastXML/archive/v${version}.tar.gz"
-checksum=8dcdbc1f23a130e4bdb0b09f57c30761a02a346b4db4037555048af2a293d66a
+distfiles="https://github.com/CastXML/CastXML/archive/refs/tags/v${version}.tar.gz"
+checksum=bb9024ec9ea5082e0d527f19bf3c2df79f1699f54b6cec168c024e727b32e6d1
post_install() {
rm -r ${DESTDIR}/usr/share/castxml/clang/include
From 7d4416ff7cdb52ba9ea76035751412313524a157 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:48:55 +0100
Subject: [PATCH 08/14] ccls: rebuild for llvm15
---
srcpkgs/ccls/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/ccls/template b/srcpkgs/ccls/template
index 82fa61933878..ecc9f3e38a5d 100644
--- a/srcpkgs/ccls/template
+++ b/srcpkgs/ccls/template
@@ -1,7 +1,7 @@
# Template file for 'ccls'
pkgname=ccls
version=0.20220729
-revision=1
+revision=2
build_style=cmake
hostmakedepends="clang-tools-extra"
makedepends="clang-tools-extra libxml2-devel llvm ncurses-devel rapidjson zlib-devel"
From fc0eee247ef8617563805aa3bec656ffcb412117 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:52:14 +0100
Subject: [PATCH 09/14] include-what-you-use: update to 0.19
---
srcpkgs/include-what-you-use/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/include-what-you-use/template b/srcpkgs/include-what-you-use/template
index d3655709c20c..1a30bc04bb2d 100644
--- a/srcpkgs/include-what-you-use/template
+++ b/srcpkgs/include-what-you-use/template
@@ -1,6 +1,6 @@
# Template file for 'include-what-you-use'
pkgname=include-what-you-use
-version=0.16
+version=0.19
revision=1
build_style=cmake
configure_args="-DIWYU_LLVM_ROOT_PATH=${XBPS_CROSS_BASE}/usr "
@@ -11,7 +11,7 @@ maintainer="Leah Neukirchen <leah@vuxu.org>"
license="NCSA"
homepage="https://include-what-you-use.org/"
distfiles="https://include-what-you-use.org/downloads/${pkgname}-${version}.src.tar.gz"
-checksum=8d6fc9b255343bc1e5ec459e39512df1d51c60e03562985e0076036119ff5a1c
+checksum=2b10157b60ea08adc08e3896b4921c73fcadd5ec4eb652b29a34129d501e5ee0
python_version=3
post_install() {
From 2ef5161a7da0903f18a72031c6a6a11354e20be5 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 15:11:06 +0100
Subject: [PATCH 10/14] SPIRV-LLVM-Translator: update to 15.0.0
---
srcpkgs/SPIRV-LLVM-Translator/template | 13 +++++++------
1 file changed, 7 insertions(+), 6 deletions(-)
diff --git a/srcpkgs/SPIRV-LLVM-Translator/template b/srcpkgs/SPIRV-LLVM-Translator/template
index a2754e58c0e8..bee99f9bcbb2 100644
--- a/srcpkgs/SPIRV-LLVM-Translator/template
+++ b/srcpkgs/SPIRV-LLVM-Translator/template
@@ -1,19 +1,20 @@
# Template file for 'SPIRV-LLVM-Translator'
pkgname=SPIRV-LLVM-Translator
-version=12.0.0
-revision=2
+version=15.0.0
+revision=1
build_style=cmake
make_build_args="llvm-spirv"
configure_args="-Wno-dev -DLLVM_LINK_LLVM_DYLIB=ON -DCMAKE_SKIP_RPATH=ON
- -DLLVM_SPIRV_INCLUDE_TESTS=OFF -DBUILD_SHARED_LIBS=ON"
+ -DLLVM_SPIRV_INCLUDE_TESTS=OFF -DBUILD_SHARED_LIBS=ON
+ -DLLVM_EXTERNAL_SPIRV_HEADERS_SOURCE_DIR=/usr"
hostmakedepends="clang llvm"
-makedepends="clang-tools-extra llvm"
+makedepends="clang-tools-extra llvm SPIRV-Headers"
short_desc="API and commands for processing SPIR-V modules"
maintainer="Orphaned <orphan@voidlinux.org>"
license="NCSA"
homepage="https://github.com/KhronosGroup/SPIRV-LLVM-Translator"
-distfiles="https://github.com/KhronosGroup/${pkgname}/archive/refs/tags/v${version}.tar.gz"
-checksum=6e4fad04203f25fcde4c308c53e9f59bd05a390978992db3212d4b63aff62108
+distfiles="https://github.com/KhronosGroup/SPIRV-LLVM-Translator/archive/refs/tags/v${version}.tar.gz"
+checksum=b1bebd77f72988758c00852e78c2ddc545815a612169a0cb377d021e2f846d88
post_install() {
vlicense LICENSE.TXT
From e91e9e186b22b38390262ada6634db3b74d0515a Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Fri, 6 Jan 2023 17:11:04 +0100
Subject: [PATCH 11/14] rtags: rebuild for llvm15
---
srcpkgs/rtags/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/rtags/template b/srcpkgs/rtags/template
index b496a1b0e721..9b161e690d76 100644
--- a/srcpkgs/rtags/template
+++ b/srcpkgs/rtags/template
@@ -1,7 +1,7 @@
# Template file for 'rtags'
pkgname=rtags
version=2.38
-revision=5
+revision=6
build_style=cmake
# Don't run tests in do_install, please.
configure_args="-DSKIP_CTEST=TRUE"
From 5a83996d6b227860605c89f8a355d17e78ee5bfb Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Fri, 6 Jan 2023 17:14:14 +0100
Subject: [PATCH 12/14] juCi++: rebuild for llvm15
---
srcpkgs/juCi++/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/juCi++/template b/srcpkgs/juCi++/template
index c1969237f11d..416bde7cc4d0 100644
--- a/srcpkgs/juCi++/template
+++ b/srcpkgs/juCi++/template
@@ -1,7 +1,7 @@
# Template file for 'juCi++'
pkgname=juCi++
version=1.7.2
-revision=2
+revision=3
_libclangmm_commit="9704b9b6de0982a588fa41741157d5640afedf30"
_tiny_commit="839ff806dc447ff49af80f9a9eaa7949f770f8e5"
create_wrksrc=yes
From 47a4ccce3866dbcafa439891b1784e6be3eeb0b0 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Sat, 7 Jan 2023 11:31:14 +0100
Subject: [PATCH 13/14] qt5: rebuild for llvm15
---
srcpkgs/qt5/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/qt5/template b/srcpkgs/qt5/template
index 233596587525..bc9170215483 100644
--- a/srcpkgs/qt5/template
+++ b/srcpkgs/qt5/template
@@ -3,7 +3,7 @@ pkgname=qt5
version=5.15.7+20221119
# commit f8c9fb304bc3e53b3aa07f962cd74e9160decccc
# base repo: https://invent.kde.org/qt/qt/qt5
-revision=1
+revision=2
build_style=meta
hostmakedepends="cmake clang flex perl glib-devel pkg-config
python re2c ruby which"
From 2087ff2b1d6ed5e0261651fd802b818cc9242c31 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Mon, 9 Jan 2023 01:22:18 +0100
Subject: [PATCH 14/14] codelite: rebuild for llvm15
---
srcpkgs/codelite/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/codelite/template b/srcpkgs/codelite/template
index 6b8b007c8a43..c6115e0274ce 100644
--- a/srcpkgs/codelite/template
+++ b/srcpkgs/codelite/template
@@ -1,7 +1,7 @@
# Template file for 'codelite'
pkgname=codelite
version=16.0.0
-revision=2
+revision=3
create_wrksrc=yes
build_style=cmake
build_helper=cmake-wxWidgets-gtk3
^ permalink raw reply [flat|nested] 96+ messages in thread
* Re: [PR PATCH] [Updated] [WIP] LLVM 15
2022-11-28 15:30 [PR PATCH] [WIP] LLVM 15 tranzystorek-io
` (43 preceding siblings ...)
2023-01-09 0:22 ` tranzystorek-io
@ 2023-01-09 0:58 ` tranzystorek-io
2023-01-10 8:20 ` dkwo
` (49 subsequent siblings)
94 siblings, 0 replies; 96+ messages in thread
From: tranzystorek-io @ 2023-01-09 0:58 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 1142 bytes --]
There is an updated pull request by tranzystorek-io against master on the void-packages repository
https://github.com/tranzystorek-io/void-packages llvm15
https://github.com/void-linux/void-packages/pull/40821
[WIP] LLVM 15
[ci skip]
TODO:
- [ ] Adjust patches marked as `.patch.skip`
- [x] Make libomp a shlib (change so file name and install a symlink)
- [ ] Avoid creating triplet dirs under /usr/
TODO LLVM rdeps:
- [ ] clazy (breaking changes in clang API)
- [ ] beignet (https://github.com/void-linux/void-packages/pull/41529)
- [ ] ispc (1.18.1 supports LLVM `<= 14`)
- [ ] ldc (1.30.0 supports LLVM `<= 14`)
- [ ] ghdl (2.0.0 supports LLVM `<=14`)
- [x] qt
- [ ] qtcreator (breaking changes in clang-format API)
- [ ] shiboken2 (tests failing with llvm15)
- [x] bpftrace (https://github.com/void-linux/void-packages/pull/39002)
- [ ] libclc (tests fail with unresolved calls https://gist.githubusercontent.com/tranzystorek-io/a2aa8a0d8010af5299f7d1ff9f82c22b/raw/6d316d99d6079990b73ae77d274dd120b9560589/LastTest.log)
A patch file from https://github.com/void-linux/void-packages/pull/40821.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-llvm15-40821.patch --]
[-- Type: text/x-diff, Size: 76924 bytes --]
From 7ded0344547be1d4cd30ba758a9d099d4c4135e2 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Sun, 18 Dec 2022 00:36:59 +0100
Subject: [PATCH 01/15] New package: llvm15-15.0.6
---
common/shlibs | 3 +
srcpkgs/libllvm15 | 1 +
.../llvm15/files/llvm-Config-llvm-config.h | 9 +
...clang-001-fix-unwind-chain-inclusion.patch | 44 ++
.../patches/clang-002-add-musl-triples.patch | 110 +++++
.../clang-003-ppc64-dynamic-linker-path.patch | 13 +
.../patches/clang-004-ppc64-musl-elfv2.patch | 48 ++
.../compiler-rt-sanitizer-ppc64-musl.patch | 35 ++
.../compiler-rt-xray-ppc64-musl.patch.skip | 62 +++
srcpkgs/llvm15/patches/libcxx-musl.patch | 26 ++
srcpkgs/llvm15/patches/libcxx-ppc.patch | 22 +
.../llvm15/patches/libcxx-ssp-nonshared.patch | 11 +
srcpkgs/llvm15/patches/libcxxabi-dl.patch | 25 +
srcpkgs/llvm15/patches/libcxxabi-musl.patch | 38 ++
srcpkgs/llvm15/patches/libomp-soname.patch | 12 +
.../llvm15/patches/libunwind-ppc32.patch.skip | 63 +++
srcpkgs/llvm15/patches/lldb-musl.patch | 40 ++
srcpkgs/llvm15/patches/llvm-001-musl.patch | 57 +++
.../patches/llvm-002-musl-ppc64-elfv2.patch | 30 ++
.../patches/llvm-003-ppc-secureplt.patch | 11 +
.../patches/llvm-004-override-opt.patch | 18 +
.../llvm15/patches/llvm-005-ppc-bigpic.patch | 36 ++
.../patches/llvm-006-aarch64-mf_exec.patch | 25 +
srcpkgs/llvm15/template | 428 ++++++++++++++++++
srcpkgs/llvm15/update | 3 +
25 files changed, 1170 insertions(+)
create mode 120000 srcpkgs/libllvm15
create mode 100644 srcpkgs/llvm15/files/llvm-Config-llvm-config.h
create mode 100644 srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch
create mode 100644 srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch
create mode 100644 srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch
create mode 100644 srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch
create mode 100644 srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch
create mode 100644 srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip
create mode 100644 srcpkgs/llvm15/patches/libcxx-musl.patch
create mode 100644 srcpkgs/llvm15/patches/libcxx-ppc.patch
create mode 100644 srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch
create mode 100644 srcpkgs/llvm15/patches/libcxxabi-dl.patch
create mode 100644 srcpkgs/llvm15/patches/libcxxabi-musl.patch
create mode 100644 srcpkgs/llvm15/patches/libomp-soname.patch
create mode 100644 srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip
create mode 100644 srcpkgs/llvm15/patches/lldb-musl.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-001-musl.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-004-override-opt.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch
create mode 100644 srcpkgs/llvm15/template
create mode 100644 srcpkgs/llvm15/update
diff --git a/common/shlibs b/common/shlibs
index 349c183cdb38..a1192ee99090 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -990,6 +990,9 @@ libclang.so.12 libclang-12.0.0_1
libclang-cpp.so.12 libclang-cpp-12.0.0_1
libLLVM-11.so libllvm11-11.0.0_1
libLLVM-12.so libllvm12-12.0.0_1
+libLLVM-15.so libllvm15-15.0.6_1
+libomp.so.5 libomp-15.0.6_1
+libomptarget.so.15 libomp-15.0.6_1
libisofs.so.6 libisofs-0.6.24_1
libmpack.so.0 libmpack-1.0.5_1
libGeoIP.so.1 libgeoip-1.4.8_1
diff --git a/srcpkgs/libllvm15 b/srcpkgs/libllvm15
new file mode 120000
index 000000000000..ad57a969b9f9
--- /dev/null
+++ b/srcpkgs/libllvm15
@@ -0,0 +1 @@
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm15/files/llvm-Config-llvm-config.h b/srcpkgs/llvm15/files/llvm-Config-llvm-config.h
new file mode 100644
index 000000000000..2fa08c9be696
--- /dev/null
+++ b/srcpkgs/llvm15/files/llvm-Config-llvm-config.h
@@ -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
diff --git a/srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch b/srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch
new file mode 100644
index 000000000000..e4eaa7783e7a
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch
@@ -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
diff --git a/srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch b/srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch
new file mode 100644
index 000000000000..25688d40dbc2
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch
@@ -0,0 +1,110 @@
+--- a/clang/lib/Driver/ToolChains/Gnu.cpp
++++ b/clang/lib/Driver/ToolChains/Gnu.cpp
+@@ -2086,7 +2086,8 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
+ static const char *const ARMHFTriples[] = {"arm-linux-gnueabihf",
+ "armv7hl-redhat-linux-gnueabi",
+ "armv6hl-suse-linux-gnueabi",
+- "armv7hl-suse-linux-gnueabi"};
++ "armv7hl-suse-linux-gnueabi",
++ "armv7l-linux-gnueabihf"};
+ static const char *const ARMebLibDirs[] = {"/lib"};
+ static const char *const ARMebTriples[] = {"armeb-linux-gnueabi",
+ "armeb-linux-androideabi"};
+@@ -2153,8 +2154,7 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
+ "powerpc64-suse-linux", "powerpc-montavista-linuxspe"};
+ static const char *const PPCLELibDirs[] = {"/lib32", "/lib"};
+ static const char *const PPCLETriples[] = {"powerpcle-linux-gnu",
+- "powerpcle-unknown-linux-gnu",
+- "powerpcle-linux-musl"};
++ "powerpcle-unknown-linux-gnu"};
+
+ static const char *const PPC64LibDirs[] = {"/lib64", "/lib"};
+ static const char *const PPC64Triples[] = {
+@@ -2235,6 +2235,87 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
+ return;
+ }
+
++ if (TargetTriple.isMusl()) {
++ static const char *const AArch64MuslTriples[] = {"aarch64-linux-musl"};
++ static const char *const ARMHFMuslTriples[] = {
++ "arm-linux-musleabihf", "armv7l-linux-musleabihf"
++ };
++ static const char *const ARMMuslTriples[] = {"arm-linux-musleabi"};
++ static const char *const X86_64MuslTriples[] = {"x86_64-linux-musl"};
++ static const char *const X86MuslTriples[] = {"i686-linux-musl"};
++ static const char *const MIPSMuslTriples[] = {
++ "mips-linux-musl", "mipsel-linux-musl",
++ "mipsel-linux-muslhf", "mips-linux-muslhf"
++ };
++ static const char *const PPCMuslTriples[] = {"powerpc-linux-musl"};
++ static const char *const PPCLEMuslTriples[] = {"powerpcle-linux-musl"};
++ static const char *const PPC64MuslTriples[] = {"powerpc64-linux-musl"};
++ static const char *const PPC64LEMuslTriples[] = {"powerpc64le-linux-musl"};
++
++ switch (TargetTriple.getArch()) {
++ case llvm::Triple::aarch64:
++ LibDirs.append(begin(AArch64LibDirs), end(AArch64LibDirs));
++ TripleAliases.append(begin(AArch64MuslTriples), end(AArch64MuslTriples));
++ BiarchLibDirs.append(begin(AArch64LibDirs), end(AArch64LibDirs));
++ BiarchTripleAliases.append(begin(AArch64MuslTriples), end(AArch64MuslTriples));
++ break;
++ case llvm::Triple::arm:
++ LibDirs.append(begin(ARMLibDirs), end(ARMLibDirs));
++ if (TargetTriple.getEnvironment() == llvm::Triple::MuslEABIHF) {
++ TripleAliases.append(begin(ARMHFMuslTriples), end(ARMHFMuslTriples));
++ } else {
++ TripleAliases.append(begin(ARMMuslTriples), end(ARMMuslTriples));
++ }
++ break;
++ case llvm::Triple::x86_64:
++ LibDirs.append(begin(X86_64LibDirs), end(X86_64LibDirs));
++ TripleAliases.append(begin(X86_64MuslTriples), end(X86_64MuslTriples));
++ BiarchLibDirs.append(begin(X86LibDirs), end(X86LibDirs));
++ BiarchTripleAliases.append(begin(X86MuslTriples), end(X86MuslTriples));
++ break;
++ case llvm::Triple::x86:
++ LibDirs.append(begin(X86LibDirs), end(X86LibDirs));
++ TripleAliases.append(begin(X86MuslTriples), end(X86MuslTriples));
++ BiarchLibDirs.append(begin(X86_64LibDirs), end(X86_64LibDirs));
++ BiarchTripleAliases.append(begin(X86_64MuslTriples), end(X86_64MuslTriples));
++ break;
++ case llvm::Triple::mips:
++ LibDirs.append(begin(MIPSLibDirs), end(MIPSLibDirs));
++ TripleAliases.append(begin(MIPSMuslTriples), end(MIPSMuslTriples));
++ break;
++ case llvm::Triple::ppc:
++ LibDirs.append(begin(PPCLibDirs), end(PPCLibDirs));
++ TripleAliases.append(begin(PPCMuslTriples), end(PPCMuslTriples));
++ BiarchLibDirs.append(begin(PPC64LibDirs), end(PPC64LibDirs));
++ BiarchTripleAliases.append(begin(PPC64MuslTriples), end(PPC64MuslTriples));
++ break;
++ case llvm::Triple::ppcle:
++ LibDirs.append(begin(PPCLELibDirs), end(PPCLELibDirs));
++ TripleAliases.append(begin(PPCLEMuslTriples), end(PPCLEMuslTriples));
++ BiarchLibDirs.append(begin(PPC64LELibDirs), end(PPC64LELibDirs));
++ BiarchTripleAliases.append(begin(PPC64LEMuslTriples), end(PPC64LEMuslTriples));
++ break;
++ case llvm::Triple::ppc64:
++ LibDirs.append(begin(PPC64LibDirs), end(PPC64LibDirs));
++ TripleAliases.append(begin(PPC64MuslTriples), end(PPC64MuslTriples));
++ BiarchLibDirs.append(begin(PPCLibDirs), end(PPCLibDirs));
++ BiarchTripleAliases.append(begin(PPCMuslTriples), end(PPCMuslTriples));
++ break;
++ case llvm::Triple::ppc64le:
++ LibDirs.append(begin(PPC64LELibDirs), end(PPC64LELibDirs));
++ TripleAliases.append(begin(PPC64LEMuslTriples), end(PPC64LEMuslTriples));
++ BiarchLibDirs.append(begin(PPCLELibDirs), end(PPCLELibDirs));
++ BiarchTripleAliases.append(begin(PPCLEMuslTriples), end(PPCLEMuslTriples));
++ break;
++ default:
++ break;
++ }
++ TripleAliases.push_back(TargetTriple.str());
++ if (TargetTriple.str() != BiarchTriple.str())
++ BiarchTripleAliases.push_back(BiarchTriple.str());
++ return;
++ }
++
+ // Android targets should not use GNU/Linux tools or libraries.
+ if (TargetTriple.isAndroid()) {
+ static const char *const AArch64AndroidTriples[] = {
diff --git a/srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch b/srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch
new file mode 100644
index 000000000000..4ad6412d1e6c
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch
@@ -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 =
diff --git a/srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch b/srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch
new file mode 100644
index 000000000000..21fc8003c5f1
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch
@@ -0,0 +1,48 @@
+--- a/clang/lib/Basic/Targets/PPC.h
++++ b/clang/lib/Basic/Targets/PPC.h
+@@ -415,11 +415,10 @@ public:
+ LongDoubleFormat = &llvm::APFloat::IEEEdouble();
+ } else if ((Triple.getArch() == llvm::Triple::ppc64le)) {
+ DataLayout = "e-m:e-i64:64-n32:64";
+- ABI = "elfv2";
+ } else {
+ DataLayout = "E-m:e-i64:64-n32:64";
+- ABI = "elfv1";
+ }
++ ABI = "elfv2";
+
+ if (Triple.isOSFreeBSD() || Triple.isOSOpenBSD() || Triple.isMusl()) {
+ LongDoubleWidth = LongDoubleAlign = 64;
+--- a/clang/lib/CodeGen/TargetInfo.cpp
++++ b/clang/lib/CodeGen/TargetInfo.cpp
+@@ -10927,9 +10927,9 @@ const TargetCodeGenInfo &CodeGenModule::getTargetCodeGenInfo() {
+ return SetCGInfo(new AIXTargetCodeGenInfo(Types, /*Is64Bit*/ true));
+
+ if (Triple.isOSBinFormatELF()) {
+- PPC64_SVR4_ABIInfo::ABIKind Kind = PPC64_SVR4_ABIInfo::ELFv1;
+- if (getTarget().getABI() == "elfv2")
+- Kind = PPC64_SVR4_ABIInfo::ELFv2;
++ PPC64_SVR4_ABIInfo::ABIKind Kind = PPC64_SVR4_ABIInfo::ELFv2;
++ if (getTarget().getABI() == "elfv1")
++ Kind = PPC64_SVR4_ABIInfo::ELFv1;
+ bool IsSoftFloat = CodeGenOpts.FloatABI == "soft";
+
+ return SetCGInfo(
+--- a/clang/lib/Driver/ToolChains/Clang.cpp
++++ b/clang/lib/Driver/ToolChains/Clang.cpp
+@@ -1920,14 +1920,7 @@ void Clang::AddPPCTargetArgs(const ArgList &Args,
+ const llvm::Triple &T = getToolChain().getTriple();
+ if (T.isOSBinFormatELF()) {
+ switch (getToolChain().getArch()) {
+- case llvm::Triple::ppc64: {
+- if ((T.isOSFreeBSD() && T.getOSMajorVersion() >= 13) ||
+- T.isOSOpenBSD() || T.isMusl())
+- ABIName = "elfv2";
+- else
+- ABIName = "elfv1";
+- break;
+- }
++ case llvm::Triple::ppc64:
+ case llvm::Triple::ppc64le:
+ ABIName = "elfv2";
+ break;
diff --git a/srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch b/srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch
new file mode 100644
index 000000000000..360cfc1ba7f1
--- /dev/null
+++ b/srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch
@@ -0,0 +1,35 @@
+--- 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__) || SANITIZER_RISCV64
++ defined(__hexagon__) || defined(__powerpc__) || 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_ANDROID
++#if (defined(__aarch64__) || defined(__powerpc__) || SANITIZER_RISCV64) && !SANITIZER_ANDROID
+ // GLIBC 2.20+ sys/user does not include asm/ptrace.h
+ # include <asm/ptrace.h>
+ #endif
diff --git a/srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip b/srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip
new file mode 100644
index 000000000000..d0b61c80c897
--- /dev/null
+++ b/srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip
@@ -0,0 +1,62 @@
+--- a/compiler-rt/lib/xray/xray_powerpc64.inc
++++ b/compiler-rt/lib/xray/xray_powerpc64.inc
+@@ -12,7 +12,13 @@
+
+ #include <cstdint>
+ #include <mutex>
++#ifdef __GLIBC__
+ #include <sys/platform/ppc.h>
++#else
++#include <cctype>
++#include <cstring>
++#include <cstdlib>
++#endif
+
+ #include "xray_defs.h"
+
+@@ -20,13 +26,45 @@ namespace __xray {
+
+ ALWAYS_INLINE uint64_t readTSC(uint8_t &CPU) XRAY_NEVER_INSTRUMENT {
+ CPU = 0;
++#ifdef __GLIBC__
+ return __ppc_get_timebase();
++#else
++ return __builtin_ppc_get_timebase();
++#endif
+ }
+
+ inline uint64_t getTSCFrequency() XRAY_NEVER_INSTRUMENT {
+ static std::mutex M;
+ std::lock_guard<std::mutex> Guard(M);
++#ifdef __GLIBC__
+ return __ppc_get_timebase_freq();
++#else
++ /* FIXME: a less dirty implementation? */
++ static uint64_t base;
++ if (!base) {
++ FILE *f = fopen("/proc/cpuinfo", "rb");
++ if (f) {
++ ssize_t nr;
++ /* virtually always big enough to hold the line */
++ char buf[512];
++ while (fgets(buf, sizeof(buf), f)) {
++ char *ret = strstr(buf, "timebase");
++ if (!ret) {
++ continue;
++ }
++ ret += sizeof("timebase") - 1;
++ ret = strchr(ret, ':');
++ if (!ret) {
++ continue;
++ }
++ base = strtoul(ret + 1, nullptr, 10);
++ break;
++ }
++ fclose(f);
++ }
++ }
++ return base;
++#endif
+ }
+
+ inline bool probeRequiredCPUFeatures() XRAY_NEVER_INSTRUMENT {
diff --git a/srcpkgs/llvm15/patches/libcxx-musl.patch b/srcpkgs/llvm15/patches/libcxx-musl.patch
new file mode 100644
index 000000000000..bbd31ffc2cb1
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxx-musl.patch
@@ -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,
+ typename remove_reference<decltype(errno)>::type __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
+ typename remove_reference<decltype(errno)>::type __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,
+ typename remove_reference<decltype(errno)>::type __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
+ typename remove_reference<decltype(errno)>::type __current_errno = errno;
+ if (__current_errno == 0)
+ errno = __save_errno;
diff --git a/srcpkgs/llvm15/patches/libcxx-ppc.patch b/srcpkgs/llvm15/patches/libcxx-ppc.patch
new file mode 100644
index 000000000000..7a92f8004e1c
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxx-ppc.patch
@@ -0,0 +1,22 @@
+This ensures `is_iec559` is defined correctly under all long double ABIs,
+including musl and its 64-bit long double. Also, `__ppc__` or `__ppc64__`
+is not defined on gcc.
+
+--- a/libcxx/include/limits
++++ b/libcxx/include/limits
+@@ -426,8 +426,14 @@ protected:
+ _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type signaling_NaN() _NOEXCEPT {return __builtin_nansl("");}
+ _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type denorm_min() _NOEXCEPT {return __LDBL_DENORM_MIN__;}
+
+-#if (defined(__ppc__) || defined(__ppc64__))
++#if defined(__powerpc__) || defined(__powerpc64__)
++#if (__LDBL_MAX_EXP__ > __DBL_MAX_EXP__) || (__LDBL_MANT_DIG__ == __DBL_MANT_DIG__)
++ /* IEEE 754 quadruple or double precision */
++ static _LIBCPP_CONSTEXPR const bool is_iec559 = true;
++#else
++ /* 128-bit IBM double-double */
+ static _LIBCPP_CONSTEXPR const bool is_iec559 = false;
++#endif
+ #else
+ static _LIBCPP_CONSTEXPR const bool is_iec559 = true;
+ #endif
diff --git a/srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch b/srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch
new file mode 100644
index 000000000000..70292beb2fcd
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch
@@ -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()
diff --git a/srcpkgs/llvm15/patches/libcxxabi-dl.patch b/srcpkgs/llvm15/patches/libcxxabi-dl.patch
new file mode 100644
index 000000000000..3a15f9db8c98
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxxabi-dl.patch
@@ -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 @@
+ target_link_libraries(${target} PRIVATE m)
+ endif()
+
++ if (LIBCXX_HAS_C_LIB)
++ target_link_libraries(${target} PRIVATE dl)
++ endif()
++
+ if (LIBCXX_HAS_RT_LIB)
+ target_link_libraries(${target} PRIVATE rt)
+ endif()
diff --git a/srcpkgs/llvm15/patches/libcxxabi-musl.patch b/srcpkgs/llvm15/patches/libcxxabi-musl.patch
new file mode 100644
index 000000000000..7f89340b8bdf
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxxabi-musl.patch
@@ -0,0 +1,38 @@
+gcc does not support using abi_tag in an extern "C" declaration
+https://github.com/gcc-mirror/gcc/blob/cf59c8983ef6590f0d69014f8dc8778b5b7691c6/gcc/cp/tree.cc#L5354-L5359
+diff -rup libcxx/include/__support/musl/xlocale.h.orig libcxx/include/__support/musl/xlocale.h
+--- a/libcxx/include/__support/musl/xlocale.h.orig 2022-12-19 14:44:34.049044339 -0800
++++ b/libcxx/include/__support/musl/xlocale.h 2022-12-19 14:45:24.211247988 -0800
+@@ -24,27 +24,27 @@
+ extern "C" {
+ #endif
+
+-inline _LIBCPP_HIDE_FROM_ABI long long
++static inline long long
+ strtoll_l(const char *__nptr, char **__endptr, int __base, locale_t) {
+ return ::strtoll(__nptr, __endptr, __base);
+ }
+
+-inline _LIBCPP_HIDE_FROM_ABI unsigned long long
++static inline unsigned long long
+ strtoull_l(const char *__nptr, char **__endptr, int __base, locale_t) {
+ return ::strtoull(__nptr, __endptr, __base);
+ }
+
+-inline _LIBCPP_HIDE_FROM_ABI long long
++static inline long long
+ wcstoll_l(const wchar_t *__nptr, wchar_t **__endptr, int __base, locale_t) {
+ return ::wcstoll(__nptr, __endptr, __base);
+ }
+
+-inline _LIBCPP_HIDE_FROM_ABI long long
++static inline long long
+ wcstoull_l(const wchar_t *__nptr, wchar_t **__endptr, int __base, locale_t) {
+ return ::wcstoull(__nptr, __endptr, __base);
+ }
+
+-inline _LIBCPP_HIDE_FROM_ABI long double
++static inline long double
+ wcstold_l(const wchar_t *__nptr, wchar_t **__endptr, locale_t) {
+ return ::wcstold(__nptr, __endptr);
+ }
diff --git a/srcpkgs/llvm15/patches/libomp-soname.patch b/srcpkgs/llvm15/patches/libomp-soname.patch
new file mode 100644
index 000000000000..9a622cd9254c
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libomp-soname.patch
@@ -0,0 +1,12 @@
+diff --git a/openmp/runtime/src/CMakeLists.txt b/openmp/runtime/src/CMakeLists.txt
+index df1ca9d90..9d2c3b7b9 100644
+--- a/openmp/runtime/src/CMakeLists.txt
++++ b/openmp/runtime/src/CMakeLists.txt
+@@ -150,6 +150,7 @@ libomp_get_libflags(LIBOMP_CONFIGURED_LIBFLAGS)
+ # Build libomp library. Add LLVMSupport dependency if building in-tree with libomptarget profiling enabled.
+ if(OPENMP_STANDALONE_BUILD OR (NOT OPENMP_ENABLE_LIBOMP_PROFILING))
+ add_library(omp ${LIBOMP_LIBRARY_KIND} ${LIBOMP_SOURCE_FILES})
++ set_target_properties(omp PROPERTIES VERSION ${LIBOMP_VERSION_MAJOR} SOVERSION ${LIBOMP_VERSION_MAJOR})
+ # Linking command will include libraries in LIBOMP_CONFIGURED_LIBFLAGS
+ target_link_libraries(omp ${LIBOMP_CONFIGURED_LIBFLAGS} ${LIBOMP_DL_LIBS})
+ else()
diff --git a/srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip b/srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip
new file mode 100644
index 000000000000..74aa7576ecf9
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip
@@ -0,0 +1,63 @@
+This fixes build at least with gcc9 which does not define `__ppc__`.
+
+--- a/libunwind/include/__libunwind_config.h
++++ b/libunwind/include/__libunwind_config.h
+@@ -49,7 +49,7 @@
+ # define _LIBUNWIND_CONTEXT_SIZE 167
+ # define _LIBUNWIND_CURSOR_SIZE 179
+ # define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_PPC64
+-# elif defined(__ppc__)
++# elif defined(__powerpc__)
+ # define _LIBUNWIND_TARGET_PPC 1
+ # define _LIBUNWIND_CONTEXT_SIZE 117
+ # define _LIBUNWIND_CURSOR_SIZE 124
+--- a/libunwind/src/UnwindRegistersRestore.S
++++ b/libunwind/src/UnwindRegistersRestore.S
+@@ -392,7 +392,7 @@ Lnovec:
+ PPC64_LR(3)
+ bctr
+
+-#elif defined(__ppc__)
++#elif defined(__powerpc__)
+
+ DEFINE_LIBUNWIND_FUNCTION(_ZN9libunwind13Registers_ppc6jumptoEv)
+ //
+--- a/libunwind/src/UnwindRegistersSave.S
++++ b/libunwind/src/UnwindRegistersSave.S
+@@ -554,7 +554,7 @@ DEFINE_LIBUNWIND_FUNCTION(__unw_getcontext)
+ blr
+
+
+-#elif defined(__ppc__)
++#elif defined(__powerpc__)
+
+ //
+ // extern int unw_getcontext(unw_context_t* thread_state)
+--- a/libunwind/src/config.h
++++ b/libunwind/src/config.h
+@@ -95,12 +95,12 @@
+ #define _LIBUNWIND_BUILD_SJLJ_APIS
+ #endif
+
+-#if defined(__i386__) || defined(__x86_64__) || defined(__ppc__) || defined(__ppc64__) || defined(__powerpc64__)
++#if defined(__i386__) || defined(__x86_64__) || defined(__powerpc__) || defined(__powerpc64__)
+ #define _LIBUNWIND_SUPPORT_FRAME_APIS
+ #endif
+
+ #if defined(__i386__) || defined(__x86_64__) || \
+- defined(__ppc__) || defined(__ppc64__) || defined(__powerpc64__) || \
++ defined(__powerpc__) || defined(__powerpc64__) || \
+ (!defined(__APPLE__) && defined(__arm__)) || \
+ (defined(__arm64__) || defined(__aarch64__)) || \
+ defined(__mips__)
+--- a/libunwind/src/libunwind.cpp
++++ b/libunwind/src/libunwind.cpp
+@@ -42,7 +42,7 @@ _LIBUNWIND_HIDDEN int __unw_init_local(unw_cursor_t *cursor,
+ # define REGISTER_KIND Registers_x86_64
+ #elif defined(__powerpc64__)
+ # define REGISTER_KIND Registers_ppc64
+-#elif defined(__ppc__)
++#elif defined(__powerpc__)
+ # define REGISTER_KIND Registers_ppc
+ #elif defined(__aarch64__)
+ # define REGISTER_KIND Registers_arm64
diff --git a/srcpkgs/llvm15/patches/lldb-musl.patch b/srcpkgs/llvm15/patches/lldb-musl.patch
new file mode 100644
index 000000000000..026c5e1e61ba
--- /dev/null
+++ b/srcpkgs/llvm15/patches/lldb-musl.patch
@@ -0,0 +1,40 @@
+--- a/lldb/source/Plugins/Process/Linux/Procfs.h
++++ b/lldb/source/Plugins/Process/Linux/Procfs.h
+@@ -10,6 +10,7 @@
+ // sys/procfs.h on Android/Linux for all supported architectures.
+
+ #include <sys/ptrace.h>
++#include <asm/ptrace.h>
+
+ #include "lldb/lldb-types.h"
+
+@@ -17,23 +18,13 @@
+
+ #include <vector>
+
+-#ifdef __ANDROID__
+-#if defined(__arm64__) || defined(__aarch64__)
+-typedef unsigned long elf_greg_t;
+-typedef elf_greg_t
+- elf_gregset_t[(sizeof(struct user_pt_regs) / sizeof(elf_greg_t))];
+-typedef struct user_fpsimd_state elf_fpregset_t;
+-#ifndef NT_FPREGSET
+-#define NT_FPREGSET NT_PRFPREG
+-#endif // NT_FPREGSET
+-#elif defined(__mips__)
+-#ifndef NT_FPREGSET
+-#define NT_FPREGSET NT_PRFPREG
+-#endif // NT_FPREGSET
+-#endif
+-#else // __ANDROID__
++#if !defined(__GLIBC__) && defined(__powerpc__)
++#define pt_regs musl_pt_regs
++#include <sys/procfs.h>
++#undef pt_regs
++#else
+ #include <sys/procfs.h>
+-#endif // __ANDROID__
++#endif
+
+ namespace lldb_private {
+ namespace process_linux {
diff --git a/srcpkgs/llvm15/patches/llvm-001-musl.patch b/srcpkgs/llvm15/patches/llvm-001-musl.patch
new file mode 100644
index 000000000000..f2a3f8d62813
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-001-musl.patch
@@ -0,0 +1,57 @@
+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;
+diff --git a/lib/Support/Unix/DynamicLibrary.inc b/lib/Support/Unix/DynamicLibrary.inc
+index a2a37996..2f86c470 100644
+--- a/llvm/lib/Support/Unix/DynamicLibrary.inc
++++ b/llvm/lib/Support/Unix/DynamicLibrary.inc
+@@ -102,7 +102,7 @@ static void *DoSearch(const char* SymbolName) {
+
+ // This macro returns the address of a well-known, explicit symbol
+ #define EXPLICIT_SYMBOL(SYM) \
+- if (!strcmp(SymbolName, #SYM)) return &SYM
++ if (!strcmp(SymbolName, #SYM)) return (void *)&SYM
+
+ // Under glibc we have a weird situation. The stderr/out/in symbols are both
+ // macros and global variables because of standards requirements. So, we
+diff --git a/utils/unittest/googletest/src/gtest.cc b/utils/unittest/googletest/src/gtest.cc
+index d882ab2e..f1fb12d0 100644
+--- a/llvm/utils/unittest/googletest/src/gtest.cc
++++ b/llvm/utils/unittest/googletest/src/gtest.cc
+@@ -128,6 +128,7 @@
+
+ #if GTEST_CAN_STREAM_RESULTS_
+ # include <arpa/inet.h> // NOLINT
++# include <sys/socket.h> // NOLINT
+ # include <netdb.h> // NOLINT
+ # include <sys/socket.h> // NOLINT
+ # include <sys/types.h> // NOLINT
diff --git a/srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch b/srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch
new file mode 100644
index 000000000000..0071d964bd37
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch
@@ -0,0 +1,30 @@
+This patches LLVM to use ELFv2 on ppc64 unconditionally unless overridden. We
+need this because unlike most distros we use ELFv2 for both glibc and musl
+on big endian ppc64.
+
+diff --git a/lib/Target/PowerPC/PPCTargetMachine.cpp b/lib/Target/PowerPC/PPCTargetMachine.cpp
+index 0634833e..b7cbc2e7 100644
+--- a/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp
++++ b/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp
+@@ -222,9 +222,8 @@ static PPCTargetMachine::PPCABI computeTargetABI(const Triple &TT,
+
+ switch (TT.getArch()) {
+ case Triple::ppc64le:
+- return PPCTargetMachine::PPC_ABI_ELFv2;
+ case Triple::ppc64:
+- return PPCTargetMachine::PPC_ABI_ELFv1;
++ return PPCTargetMachine::PPC_ABI_ELFv2;
+ default:
+ return PPCTargetMachine::PPC_ABI_UNKNOWN;
+ }
+diff --git a/test/CodeGen/PowerPC/ppc64-elf-abi.ll b/test/CodeGen/PowerPC/ppc64-elf-abi.ll
+index 8b1cf6b5..296a2afa 100644
+--- a/llvm/test/CodeGen/PowerPC/ppc64-elf-abi.ll
++++ b/llvm/test/CodeGen/PowerPC/ppc64-elf-abi.ll
+@@ -1,4 +1,5 @@
+-; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv1
++; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv2
++; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-musl < %s | FileCheck %s -check-prefix=CHECK-ELFv2
+ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu -target-abi elfv1 < %s | FileCheck %s -check-prefix=CHECK-ELFv1
+ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu -target-abi elfv2 < %s | FileCheck %s -check-prefix=CHECK-ELFv2
+ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv2
diff --git a/srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch b/srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch
new file mode 100644
index 000000000000..b5d15974375d
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch
@@ -0,0 +1,11 @@
+--- a/llvm/lib/Target/PowerPC/PPCSubtarget.cpp
++++ b/llvm/lib/Target/PowerPC/PPCSubtarget.cpp
+@@ -165,7 +165,7 @@ void PPCSubtarget::initSubtargetFeatures(StringRef CPU, StringRef FS) {
+
+ if ((TargetTriple.isOSFreeBSD() && TargetTriple.getOSMajorVersion() >= 13) ||
+ TargetTriple.isOSNetBSD() || TargetTriple.isOSOpenBSD() ||
+- TargetTriple.isMusl())
++ isTargetLinux())
+ SecurePlt = true;
+
+ if (HasSPE && IsPPC64)
diff --git a/srcpkgs/llvm15/patches/llvm-004-override-opt.patch b/srcpkgs/llvm15/patches/llvm-004-override-opt.patch
new file mode 100644
index 000000000000..51d0e4b31b32
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-004-override-opt.patch
@@ -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)
diff --git a/srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch b/srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch
new file mode 100644
index 000000000000..d332687b9d92
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch
@@ -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);
diff --git a/srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch b/srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch
new file mode 100644
index 000000000000..a00abd216665
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch
@@ -0,0 +1,25 @@
+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__) || defined (__ppc__) || \
+- defined(_POWER) || defined(_ARCH_PPC))
++ defined(_POWER) || defined(_ARCH_PPC) || (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
diff --git a/srcpkgs/llvm15/template b/srcpkgs/llvm15/template
new file mode 100644
index 000000000000..db510bbd2477
--- /dev/null
+++ b/srcpkgs/llvm15/template
@@ -0,0 +1,428 @@
+# Template file for 'llvm15'
+pkgname=llvm15
+version=15.0.6
+revision=1
+build_wrksrc=llvm
+build_style=cmake
+configure_args="
+ -DCMAKE_BUILD_TYPE=Release -Wno-dev
+ -DENABLE_LINKER_BUILD_ID=YES
+ -DLLDB_USE_SYSTEM_SIX=YES
+ -DLIBCXX_CXX_ABI=libcxxabi
+ -DLIBCXX_ENABLE_STATIC_ABI_LIBRARY=YES
+ -DLIBCXXABI_USE_LLVM_UNWINDER=YES
+ -DLIBCXXABI_ENABLE_STATIC_UNWINDER=YES
+ -DLIBOMP_ENABLE_SHARED=YES
+ -DLIBOMP_INSTALL_ALIASES=NO
+ -DLLVM_INCLUDE_DOCS=YES
+ -DLLVM_BUILD_DOCS=YES
+ -DLLVM_ENABLE_SPHINX=YES
+ -DSPHINX_WARNINGS_AS_ERRORS=NO
+ -DLLVM_INSTALL_UTILS=YES
+ -DLLVM_BUILD_LLVM_DYLIB=YES
+ -DLLVM_LINK_LLVM_DYLIB=YES
+ -DLLVM_ENABLE_RTTI=YES
+ -DLLVM_ENABLE_FFI=YES
+ -DLLVM_BINUTILS_INCDIR=/usr/include"
+hostmakedepends="perl python3 zlib-devel libffi-devel swig python3-Sphinx
+ python3-recommonmark python3-sphinx-automodapi"
+makedepends="python3-devel zlib-devel elfutils-devel libffi-devel libedit-devel
+ libxml2-devel binutils-devel libatomic-devel"
+depends="libllvm15>=${version}_${revision}"
+short_desc="Low Level Virtual Machine"
+maintainer="Orphaned <orphan@voidlinux.org>"
+license="Apache-2.0"
+homepage="https://www.llvm.org"
+distfiles="https://github.com/llvm/llvm-project/releases/download/llvmorg-${version}/llvm-project-${version}.src.tar.xz"
+checksum=9d53ad04dc60cb7b30e810faf64c5ab8157dadef46c8766f67f286238256ff92
+lib32disabled=yes
+python_version=3
+
+if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
+ configure_args+=" -DLIBCXX_HAS_MUSL_LIBC=YES
+ -DCOMPILER_RT_BUILD_GWP_ASAN=OFF"
+fi
+
+# "operand out of range" assembler failures
+case "$XBPS_TARGET_MACHINE" in
+ ppc64*) ;;
+ ppc*) configure_args+=" -DCLANG_ENABLE_CLANGD=OFF" ;;
+esac
+
+_enabled_projects="clang;clang-tools-extra;compiler-rt;libcxx;libcxxabi;libunwind;lld"
+
+_lldb_enable=yes
+_libomp_enable=no
+
+case "$XBPS_TARGET_MACHINE" in
+ ppc64le*) ;;
+ ppc*|i686*) _lldb_enable=no ;;
+esac
+
+case "$XBPS_TARGET_MACHINE" in
+ x86_64*|aarch64*|ppc64*) _libomp_enable=yes;;
+esac
+
+subpackages="clang-tools-extra"
+
+# must go before clang
+if [ "$_libomp_enable" = "yes" ]; then
+ _enabled_projects+=";openmp"
+ subpackages+=" libomp libomp-devel"
+ # because of cmake nonsense referencing libomptarget.so.*
+ depends+=" libomp>=${version}_${revision}"
+fi
+
+subpackages+=" clang clang-analyzer libclang libclang-cpp
+ llvm-libunwind llvm-libunwind-devel libcxx libcxx-devel
+ libcxxabi libcxxabi-devel libllvm15"
+
+if [ "$_lldb_enable" = "yes" ]; then
+ # XXX fails to cross compile due to python
+ _enabled_projects+=";lldb"
+ subpackages+=" lldb lldb-devel"
+fi
+
+subpackages+=" lld lld-devel"
+
+configure_args+=" -DLLVM_ENABLE_PROJECTS=${_enabled_projects}"
+
+post_patch() {
+ if [ "$_lldb_enable" = "yes" ]; then
+ if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
+ vsed -i 's|__ptrace_request|int|g' \
+ ${wrksrc}/lldb/source/Plugins/Process/Linux/NativeProcessLinux.cpp
+ fi
+ # disable docs for lldb as they fail to generate
+ vsed -i '/add_subdirectory(docs)/d' \
+ ${wrksrc}/lldb/CMakeLists.txt
+ fi
+
+ # update config.guess for better platform detection
+ cp $XBPS_COMMONDIR/environment/configure/automake/config.guess \
+ ${wrksrc}/llvm/cmake
+
+ # fix linker failures on some archs
+ vsed -i 's,check_library_exists(gcc_s .*,set(LIBCXXABI_HAS_GCC_S_LIB ON),' \
+ ${wrksrc}/libcxxabi/cmake/config-ix.cmake
+ vsed -i 's,check_library_exists(gcc .*,set(LIBCXXABI_HAS_GCC_LIB ON),' \
+ ${wrksrc}/libcxxabi/cmake/config-ix.cmake
+
+ # need libssp_nonshared on some musl platforms (because of nodefaultlibs)
+ case "$XBPS_TARGET_MACHINE" in
+ ppc64*) ;;
+ ppc*-musl|i686-musl|mips*-musl)
+ vsed -i 's,^# Setup flags.$,add_library_flags(ssp_nonshared),' \
+ ${wrksrc}/libunwind/src/CMakeLists.txt
+ vsed -i 's,^# Setup flags.$,add_library_flags(ssp_nonshared),' \
+ ${wrksrc}/libcxxabi/src/CMakeLists.txt
+ vsed -i 's,#ssp,,' ${wrksrc}/libcxx/CMakeLists.txt
+ ;;
+ esac
+
+ case "$XBPS_TARGET_MACHINE" in
+ arm*-musl|i686-musl) # sanitizer code is broken since it duplicates some libc bits
+ vsed -i 's/set(COMPILER_RT_HAS_SANITIZER_COMMON TRUE)/set(COMPILER_RT_HAS_SANITIZER_COMMON FALSE)/' \
+ ${wrksrc}/compiler-rt/cmake/config-ix.cmake
+ ;;
+ esac
+}
+
+pre_configure() {
+ local triplet
+
+ # Vastly reduce size of debugging symbols:
+ CFLAGS=${CFLAGS/ -g/ -g1}
+ CXXFLAGS=${CXXFLAGS/ -g/ -g1}
+
+ # since gcc9, the build likes to blow up for ppc32 apparently because
+ # of clang being too large for a 24-bit relative call to the PLT, so
+ # optimize for size instead
+ case "$XBPS_TARGET_MACHINE" in
+ ppc64*) ;;
+ mips*-musl|ppc*) configure_args+=" -DVOID_CXX_OPT_FLAGS=-Os" ;;
+ esac
+
+ if [ "$CROSS_BUILD" ]; then
+ msg_normal "Building host tblgen\n"
+ mkdir -p build/HOST
+ cd build/HOST
+ CC="$BUILD_CC" CXX="$BUILD_CXX" CFLAGS="$BUILD_CFLAGS" \
+ CXXFLAGS="$BUILD_CXXFLAGS" LDFLAGS="$BUILD_LDFLAGS" \
+ cmake ../.. -DCMAKE_BUILD_TYPE=Release \
+ -DLLVM_ENABLE_PROJECTS=${_enabled_projects}
+ make ${makejobs} -C utils/TableGen
+ make ${makejobs} -C tools/clang/utils/TableGen
+ [ "$_lldb_enable" = "yes" ] && make ${makejobs} -C tools/lldb/utils/TableGen
+ configure_args+=" -DLLVM_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/llvm-tblgen"
+ configure_args+=" -DCLANG_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/clang-tblgen"
+ [ "$_lldb_enable" = "yes" ] && configure_args+=" -DLLDB_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/lldb-tblgen"
+ cd ../..
+ fi
+
+ case "$XBPS_TARGET_MACHINE" in
+ i686*) _arch="X86";;
+ x86_64*) _arch="X86";;
+ armv5*) _arch="Armv5te";;
+ armv6*) _arch="Armv6";;
+ armv7*) _arch="Armv7";;
+ aarch64*) _arch="AArch64";;
+ mips*) _arch="Mips";;
+ ppc*) _arch="PowerPC";;
+ riscv64*) _arch="RISCV64";;
+ esac
+
+ triplet=${XBPS_CROSS_TRIPLET:-$XBPS_TRIPLET}
+
+ configure_args+=" -DLLVM_TARGET_ARCH=${_arch}"
+ configure_args+=" -DLLVM_HOST_TRIPLE=${triplet}"
+ configure_args+=" -DLLVM_DEFAULT_TARGET_TRIPLE=${triplet}"
+}
+
+do_install() {
+ cd build
+ cmake -DCMAKE_INSTALL_PREFIX=${DESTDIR}/usr -P cmake_install.cmake
+
+ # Required for multilib.
+ if [ "$XBPS_TARGET_MACHINE" = "x86_64" ]; then
+ for _header in llvm-config; do
+ mv ${DESTDIR}/usr/include/llvm/Config/${_header}{,-64}.h
+ vinstall ${FILESDIR}/llvm-Config-${_header}.h 644 \
+ usr/include/llvm/Config ${_header}.h
+ done
+ fi
+
+ # Remove llvm-config-host in cross builds.
+ if [ "$CROSS_BUILD" ]; then
+ rm -f ${DESTDIR}/usr/bin/llvm-config-host
+ fi
+
+ # Install libcxxabi headers
+ vinstall ${wrksrc}/libcxxabi/include/__cxxabi_config.h 644 usr/include
+ vinstall ${wrksrc}/libcxxabi/include/cxxabi.h 644 usr/include
+
+ # Install libunwind headers
+ vinstall ${wrksrc}/libunwind/include/__libunwind_config.h 644 usr/include
+ vinstall ${wrksrc}/libunwind/include/libunwind.h 644 usr/include
+ vinstall ${wrksrc}/libunwind/include/unwind.h 644 usr/include
+ vinstall ${wrksrc}/libunwind/include/mach-o/compact_unwind_encoding.h \
+ 644 usr/include/mach-o
+}
+
+clang-analyzer_package() {
+ pycompile_dirs="usr/share/scan-view"
+ depends="clang-${version}_${revision} python3 perl"
+ short_desc+=" - A source code analysis framework"
+ homepage="https://clang-analyzer.llvm.org/"
+ pkg_install() {
+ vmove "usr/bin/scan-*"
+ vmove "usr/libexec/*analyzer"
+ vmove "usr/share/scan-*"
+ vmove usr/share/man/man1/scan-build.1
+ }
+}
+
+clang-tools-extra_package() {
+ lib32disabled=yes
+ depends="clang-${version}_${revision} python3"
+ short_desc+=" - Extra Clang tools"
+ homepage="https://clang.llvm.org/extra/"
+ pkg_install() {
+ vmove usr/bin/clang-apply-replacements
+ vmove usr/bin/clang-doc
+ vmove usr/bin/clang-include-fixer
+ vmove usr/bin/clang-query
+ vmove usr/bin/clang-rename
+ vmove usr/bin/clang-reorder-fields
+ vmove usr/bin/clang-tidy
+ vmove usr/bin/clangd
+ vmove usr/bin/diagtool
+ vmove usr/bin/find-all-symbols
+ vmove usr/bin/hmaptool
+ vmove usr/bin/modularize
+ vmove usr/bin/pp-trace
+ vmove usr/bin/sancov
+ vmove usr/include/clang-tidy
+ vmove "usr/lib/libclangApplyReplacements*"
+ vmove "usr/lib/libclangDoc*"
+ vmove "usr/lib/libclangIncludeFixer*"
+ vmove "usr/lib/libclangReorderFields*"
+ vmove "usr/lib/libclangQuery*"
+ vmove "usr/lib/libclangTidy*"
+ vmove "usr/share/clang/*include-fixer*"
+ vmove "usr/share/clang/*rename*"
+ vmove "usr/share/clang/*tidy*"
+ vmove usr/share/doc/LLVM/clang-tools
+ vmove usr/share/man/man1/diagtool.1
+ vmove usr/share/man/man1/extraclangtools.1
+ }
+}
+
+clang_package() {
+ lib32disabled=yes
+ depends="libstdc++-devel libgcc-devel binutils ${XBPS_TARGET_LIBC}-devel
+ libclang-${version}_${revision}"
+ short_desc+=" - C language family frontend"
+ homepage="https://clang.llvm.org/"
+ pkg_install() {
+ vmove "usr/bin/*clang*"
+ vmove usr/bin/c-index-test
+ vmove usr/include/clang
+ vmove usr/include/clang-c
+ vmove usr/lib/clang
+ vmove usr/lib/cmake/clang
+ vmove "usr/lib/libclang*.a"
+ vmove "usr/lib/libclang*.so"
+ vmove usr/share/clang
+ vmove usr/share/doc/LLVM/clang
+ vmove usr/share/man/man1/clang.1
+ }
+}
+
+libclang_package() {
+ short_desc+=" - C frontend runtime library"
+ pkg_install() {
+ vmove "usr/lib/libclang.so.*"
+ }
+}
+
+libclang-cpp_package() {
+ short_desc+=" - C frontend runtime library (C++ interface)"
+ pkg_install() {
+ vmove "usr/lib/libclang-cpp.so.*"
+ }
+}
+
+lld_package() {
+ lib32disabled=yes
+ short_desc+=" - linker"
+ homepage="https://lld.llvm.org"
+ pkg_install() {
+ vmove usr/bin/ld.lld*
+ vmove usr/bin/ld64.lld*
+ vmove usr/bin/lld*
+ vmove usr/bin/wasm-ld
+ vmove usr/share/doc/LLVM/lld
+ }
+}
+
+lld-devel_package() {
+ lib32disabled=yes
+ short_desc+=" - linker - development files"
+ homepage="https://lld.llvm.org"
+ depends="lld>=${version}_${revision}"
+ pkg_install() {
+ vmove usr/include/lld
+ vmove usr/lib/cmake/lld
+ vmove "usr/lib/liblld*a"
+ }
+}
+
+lldb_package() {
+ lib32disabled=yes
+ depends+=" python3-six"
+ short_desc+=" - LLDB debugger"
+ homepage="https://lldb.llvm.org/"
+ pkg_install() {
+ vmove usr/bin/*lldb*
+ vmove usr/lib/liblldb*so.*
+ vmove /usr/lib/python*
+ }
+}
+
+lldb-devel_package() {
+ lib32disabled=yes
+ depends="lldb>=${version}_${revision}"
+ short_desc+=" - LLDB debugger - development files"
+ pkg_install() {
+ vmove usr/include/lldb
+ vmove "usr/lib/liblldb*.so"
+ }
+}
+
+llvm-libunwind_package() {
+ short_desc+=" - libunwind"
+ pkg_install() {
+ vmove "usr/lib/${XBPS_TRIPLET}/libunwind.so.*"
+ }
+}
+
+llvm-libunwind-devel_package() {
+ short_desc+=" - libunwind - development files"
+ depends="llvm-libunwind>=${version}_${revision}"
+ conflicts="libunwind-devel>=0"
+ pkg_install() {
+ vmove usr/include/mach-o
+ vmove "usr/include/*unwind*"
+ vmove "usr/lib/${XBPS_TRIPLET}/libunwind.a"
+ vmove "usr/lib/${XBPS_TRIPLET}/libunwind.so"
+ vmove usr/share/doc/LLVM/libunwind
+ }
+}
+
+libcxxabi_package() {
+ short_desc+=" - low level support for libc++"
+ pkg_install() {
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++abi.so.*"
+ }
+}
+
+libcxxabi-devel_package() {
+ short_desc+=" - low level support for libc++ - development files"
+ depends="libcxxabi>=${version}_${revision}"
+ pkg_install() {
+ vmove "usr/include/*cxxabi*"
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++abi.so"
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++abi.a"
+ }
+}
+
+libcxx_package() {
+ short_desc+=" - C++ standard library"
+ pkg_install() {
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++.so.*"
+ }
+}
+
+libcxx-devel_package() {
+ short_desc+=" - C++ standard library - development files"
+ depends="libcxx>=${version}_${revision}"
+ pkg_install() {
+ vmove usr/include/c++
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++.so"
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++.a"
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++experimental.a"
+ vmove usr/share/doc/LLVM/libcxx
+ }
+}
+
+libomp_package() {
+ short_desc+=" - Clang OpenMP support library"
+ pkg_install() {
+ vmove usr/lib/libarcher.so
+ vmove usr/lib/libompd.so
+ vmove "usr/lib/libomptarget.rtl.*.so"
+ vmove "usr/lib/libomp*.so.*"
+ }
+}
+
+libomp-devel_package() {
+ short_desc+=" - Clang OpenMP support library - development files"
+ depends="libomp>=${version}_${revision}"
+ pkg_install() {
+ vmove "usr/include/omp*.h"
+ vmove "usr/lib/clang/${version}/include/omp*.h"
+ vmove "usr/lib/libarcher*"
+ vmove "usr/lib/libomp*.so"
+ vmove usr/lib/cmake/openmp
+ vmove usr/share/doc/LLVM/openmp
+ vmove usr/share/man/man1/llvmopenmp.1
+ }
+}
+
+libllvm15_package() {
+ short_desc+=" - runtime library"
+ pkg_install() {
+ vmove "usr/lib/libLLVM-*.so*"
+ }
+}
diff --git a/srcpkgs/llvm15/update b/srcpkgs/llvm15/update
new file mode 100644
index 000000000000..e95cf26b3586
--- /dev/null
+++ b/srcpkgs/llvm15/update
@@ -0,0 +1,3 @@
+site="https://github.com/llvm/llvm-project/releases"
+pattern="llvmorg-\K(\d+.){2}\d+(-rc\d+)?"
+ignore="*-rc*"
From 574bcf44fafdddf85c813d35beb1be5935c5cd68 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Sun, 18 Dec 2022 00:40:18 +0100
Subject: [PATCH 02/15] llvm: update to 15
---
common/shlibs | 6 +++---
srcpkgs/clang | 2 +-
srcpkgs/clang-analyzer | 2 +-
srcpkgs/clang-tools-extra | 2 +-
srcpkgs/libclang | 2 +-
srcpkgs/libclang-cpp | 2 +-
srcpkgs/libcxx | 2 +-
srcpkgs/libcxx-devel | 2 +-
srcpkgs/libcxxabi | 2 +-
srcpkgs/libcxxabi-devel | 2 +-
srcpkgs/libomp | 2 +-
srcpkgs/libomp-devel | 2 +-
srcpkgs/lld | 2 +-
srcpkgs/lld-devel | 2 +-
srcpkgs/lldb | 2 +-
srcpkgs/lldb-devel | 2 +-
srcpkgs/llvm-libunwind | 2 +-
srcpkgs/llvm-libunwind-devel | 2 +-
srcpkgs/llvm/template | 6 +++---
19 files changed, 23 insertions(+), 23 deletions(-)
diff --git a/common/shlibs b/common/shlibs
index a1192ee99090..688992826987 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -985,9 +985,9 @@ 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.12 lldb-12.0.0_1
-libclang.so.12 libclang-12.0.0_1
-libclang-cpp.so.12 libclang-cpp-12.0.0_1
+liblldb.so.15 lldb-15.0.6_1
+libclang.so.15 libclang-15.0.6_1
+libclang-cpp.so.15 libclang-cpp-15.0.6_1
libLLVM-11.so libllvm11-11.0.0_1
libLLVM-12.so libllvm12-12.0.0_1
libLLVM-15.so libllvm15-15.0.6_1
diff --git a/srcpkgs/clang b/srcpkgs/clang
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/clang
+++ b/srcpkgs/clang
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/clang-analyzer b/srcpkgs/clang-analyzer
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/clang-analyzer
+++ b/srcpkgs/clang-analyzer
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/clang-tools-extra b/srcpkgs/clang-tools-extra
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/clang-tools-extra
+++ b/srcpkgs/clang-tools-extra
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libclang b/srcpkgs/libclang
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libclang
+++ b/srcpkgs/libclang
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libclang-cpp b/srcpkgs/libclang-cpp
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libclang-cpp
+++ b/srcpkgs/libclang-cpp
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxx b/srcpkgs/libcxx
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxx
+++ b/srcpkgs/libcxx
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxx-devel b/srcpkgs/libcxx-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxx-devel
+++ b/srcpkgs/libcxx-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxxabi b/srcpkgs/libcxxabi
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxxabi
+++ b/srcpkgs/libcxxabi
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxxabi-devel b/srcpkgs/libcxxabi-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxxabi-devel
+++ b/srcpkgs/libcxxabi-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libomp b/srcpkgs/libomp
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libomp
+++ b/srcpkgs/libomp
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libomp-devel b/srcpkgs/libomp-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libomp-devel
+++ b/srcpkgs/libomp-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lld b/srcpkgs/lld
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lld
+++ b/srcpkgs/lld
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lld-devel b/srcpkgs/lld-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lld-devel
+++ b/srcpkgs/lld-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lldb b/srcpkgs/lldb
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lldb
+++ b/srcpkgs/lldb
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lldb-devel b/srcpkgs/lldb-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lldb-devel
+++ b/srcpkgs/lldb-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm-libunwind b/srcpkgs/llvm-libunwind
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/llvm-libunwind
+++ b/srcpkgs/llvm-libunwind
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm-libunwind-devel b/srcpkgs/llvm-libunwind-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/llvm-libunwind-devel
+++ b/srcpkgs/llvm-libunwind-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm/template b/srcpkgs/llvm/template
index a92db6f94f9f..fc1c850bd26f 100644
--- a/srcpkgs/llvm/template
+++ b/srcpkgs/llvm/template
@@ -1,11 +1,11 @@
# Template file for 'llvm'
pkgname=llvm
-version=12.0.0
+version=15
revision=1
build_style=meta
-depends="llvm12"
-replaces="llvm11>=0 llvm10>=0 llvm9>=0 llvm8>=0 llvm7>=0 llvm6.0>=0 llvm3.9>=0"
+depends="llvm15"
short_desc="LLVM meta package"
maintainer="Enno Boland <gottox@voidlinux.org>"
license="Public Domain"
homepage="https://www.voidlinux.org"
+replaces="llvm12>=0 llvm11>=0 llvm10>=0 llvm9>=0 llvm8>=0 llvm7>=0 llvm6.0>=0 llvm3.9>=0"
From fdc41093b8815d725ce4e4e9eb937340a60be5ec Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Sun, 18 Dec 2022 12:20:08 +0100
Subject: [PATCH 03/15] llvm12: remove bumped subpackages
---
srcpkgs/llvm12/template | 264 +---------------------------------------
1 file changed, 1 insertion(+), 263 deletions(-)
diff --git a/srcpkgs/llvm12/template b/srcpkgs/llvm12/template
index f8ea3ba641ae..aea0b43cf573 100644
--- a/srcpkgs/llvm12/template
+++ b/srcpkgs/llvm12/template
@@ -50,55 +50,7 @@ case "$XBPS_TARGET_MACHINE" in
ppc*) configure_args+=" -DCLANG_ENABLE_CLANGD=OFF" ;;
esac
-_enabled_projects="clang;clang-tools-extra;compiler-rt;libcxx;libcxxabi;libunwind;lld"
-
-_lldb_enable=yes
-_libomp_enable=no
-
-case "$XBPS_TARGET_MACHINE" in
- ppc64le*) ;;
- ppc*|i686*) _lldb_enable=no ;;
-esac
-
-case "$XBPS_TARGET_MACHINE" in
- x86_64*|aarch64*|ppc64*) _libomp_enable=yes;;
-esac
-
-subpackages="clang-tools-extra"
-
-# must go before clang
-if [ "$_libomp_enable" = "yes" ]; then
- _enabled_projects+=";openmp"
- subpackages+=" libomp libomp-devel"
- # because of cmake nonsense referencing libomptarget.so.*
- depends+=" libomp>=${version}_${revision}"
-fi
-
-subpackages+=" clang clang-analyzer libclang libclang-cpp
- llvm-libunwind llvm-libunwind-devel libcxx libcxx-devel
- libcxxabi libcxxabi-devel libllvm12"
-
-if [ "$_lldb_enable" = "yes" ]; then
- # XXX fails to cross compile due to python
- _enabled_projects+=";lldb"
- subpackages+=" lldb lldb-devel"
-fi
-
-subpackages+=" lld lld-devel"
-
-configure_args+=" -DLLVM_ENABLE_PROJECTS=${_enabled_projects}"
-
post_patch() {
- if [ "$_lldb_enable" = "yes" ]; then
- if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
- vsed -i 's|__ptrace_request|int|g' \
- ${wrksrc}/lldb/source/Plugins/Process/Linux/NativeProcessLinux.cpp
- fi
- # disable docs for lldb as they fail to generate
- vsed -i '/add_subdirectory(docs)/d' \
- ${wrksrc}/lldb/CMakeLists.txt
- fi
-
# update config.guess for better platform detection
cp $XBPS_COMMONDIR/environment/configure/automake/config.guess \
${wrksrc}/llvm/cmake
@@ -154,14 +106,12 @@ pre_configure() {
cd build/HOST
CC="$BUILD_CC" CXX="$BUILD_CXX" CFLAGS="$BUILD_CFLAGS" \
CXXFLAGS="$BUILD_CXXFLAGS" LDFLAGS="$BUILD_LDFLAGS" \
- cmake ../.. -DCMAKE_BUILD_TYPE=Release \
- -DLLVM_ENABLE_PROJECTS=${_enabled_projects}
+ cmake ../.. -DCMAKE_BUILD_TYPE=Release
make ${makejobs} -C utils/TableGen
make ${makejobs} -C tools/clang/utils/TableGen
[ "$_lldb_enable" = "yes" ] && make ${makejobs} -C tools/lldb/utils/TableGen
configure_args+=" -DLLVM_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/llvm-tblgen"
configure_args+=" -DCLANG_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/clang-tblgen"
- [ "$_lldb_enable" = "yes" ] && configure_args+=" -DLLDB_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/lldb-tblgen"
cd ../..
fi
@@ -201,218 +151,6 @@ do_install() {
if [ "$CROSS_BUILD" ]; then
rm -f ${DESTDIR}/usr/bin/llvm-config-host
fi
-
- # Install libcxxabi headers
- vinstall ${wrksrc}/libcxxabi/include/__cxxabi_config.h 644 usr/include
- vinstall ${wrksrc}/libcxxabi/include/cxxabi.h 644 usr/include
-
- # Install libunwind headers
- vinstall ${wrksrc}/libunwind/include/__libunwind_config.h 644 usr/include
- vinstall ${wrksrc}/libunwind/include/libunwind.h 644 usr/include
- vinstall ${wrksrc}/libunwind/include/unwind.h 644 usr/include
- vinstall ${wrksrc}/libunwind/include/mach-o/compact_unwind_encoding.h \
- 644 usr/include/mach-o
-}
-
-clang-analyzer_package() {
- pycompile_dirs="usr/share/scan-view"
- depends="clang-${version}_${revision} python3 perl"
- short_desc+=" - A source code analysis framework"
- homepage="https://clang-analyzer.llvm.org/"
- pkg_install() {
- vmove usr/share/man/man1/scan-build.1
- vmove "/usr/bin/scan-*"
- vmove "/usr/share/scan-*"
- vmove "/usr/libexec/*analyzer"
- }
-}
-
-clang-tools-extra_package() {
- lib32disabled=yes
- depends="clang-${version}_${revision} python3"
- short_desc+=" - Extra Clang tools"
- homepage="https://clang.llvm.org/extra/"
- pkg_install() {
- vmove usr/include/clang-tidy
- vmove usr/bin/clang-apply-replacements
- vmove usr/bin/clang-query
- vmove usr/bin/clang-rename
- vmove usr/bin/clang-tidy
- vmove usr/bin/diagtool
- vmove usr/bin/find-all-symbols
- vmove usr/bin/hmaptool
- vmove usr/bin/modularize
- vmove usr/bin/pp-trace
- vmove usr/bin/sancov
- vmove "usr/lib/libclangApplyReplacements*"
- vmove "usr/lib/libclangQuery*"
- vmove "usr/lib/libclangTidy*"
- vmove "usr/share/clang/*tidy*"
- vmove usr/share/doc/clang-tools
- vmove usr/share/man/man1/extraclangtools.1
- vmove usr/share/man/man1/diagtool.1
- }
-}
-
-clang_package() {
- lib32disabled=yes
- depends="libstdc++-devel libgcc-devel binutils ${XBPS_TARGET_LIBC}-devel
- libclang-${version}_${revision}"
- short_desc+=" - C language family frontend"
- homepage="https://clang.llvm.org/"
- pkg_install() {
- vmove usr/include/clang
- vmove usr/include/clang-c
- vmove "usr/bin/*clang*"
- vmove usr/bin/c-index-test
- vmove usr/lib/clang
- vmove usr/lib/cmake/clang
- vmove "usr/lib/libclang*.a"
- vmove "usr/lib/libclang*.so"
- vmove usr/share/clang
- vmove usr/share/doc/clang
- vmove usr/share/man/man1/clang.1
- }
-}
-
-libclang_package() {
- short_desc+=" - C frontend runtime library"
- pkg_install() {
- vmove "usr/lib/libclang.so.*"
- }
-}
-
-libclang-cpp_package() {
- short_desc+=" - C frontend runtime library (C++ interface)"
- pkg_install() {
- vmove "usr/lib/libclang-cpp.so.*"
- }
-}
-
-lld_package() {
- lib32disabled=yes
- short_desc+=" - linker"
- homepage="https://lld.llvm.org"
- pkg_install() {
- vmove usr/bin/lld*
- vmove usr/bin/wasm-ld
- vmove usr/bin/ld.lld*
- vmove usr/bin/ld64.lld*
- vmove usr/share/doc/lld
- }
-}
-
-lld-devel_package() {
- lib32disabled=yes
- short_desc+=" - linker - development files"
- homepage="https://lld.llvm.org"
- depends="lld>=${version}_${revision}"
- pkg_install() {
- vmove usr/include/lld
- vmove usr/lib/cmake/lld
- vmove "usr/lib/liblld*a"
- }
-}
-
-lldb_package() {
- lib32disabled=yes
- depends+=" python3-six"
- short_desc+=" - LLDB debugger"
- homepage="https://lldb.llvm.org/"
- pkg_install() {
- vmove usr/bin/*lldb*
- vmove usr/lib/liblldb*so.*
- vmove /usr/lib/python*
- }
-}
-
-lldb-devel_package() {
- lib32disabled=yes
- depends="lldb>=${version}_${revision}"
- short_desc+=" - LLDB debugger - development files"
- pkg_install() {
- vmove usr/include/lldb
- vmove "usr/lib/liblldb*.so"
- }
-}
-
-llvm-libunwind_package() {
- short_desc+=" - libunwind"
- pkg_install() {
- vmove "usr/lib/libunwind.so.*"
- }
-}
-
-llvm-libunwind-devel_package() {
- short_desc+=" - libunwind - development files"
- depends="llvm-libunwind>=${version}_${revision}"
- conflicts="libunwind-devel>=0"
- pkg_install() {
- vmove usr/lib/libunwind.so
- vmove usr/lib/libunwind.a
- vmove "usr/include/*unwind*"
- vmove usr/include/mach-o
- vmove usr/share/doc/libunwind
- }
-}
-
-libcxxabi_package() {
- short_desc+=" - low level support for libc++"
- pkg_install() {
- vmove "usr/lib/libc++abi.so.*"
- }
-}
-
-libcxxabi-devel_package() {
- short_desc+=" - low level support for libc++ - development files"
- depends="libcxxabi>=${version}_${revision}"
- pkg_install() {
- vmove usr/lib/libc++abi.so
- vmove usr/lib/libc++abi.a
- vmove "usr/include/*cxxabi*"
- }
-}
-
-libcxx_package() {
- short_desc+=" - C++ standard library"
- pkg_install() {
- vmove "usr/lib/libc++.so.*"
- }
-}
-
-libcxx-devel_package() {
- short_desc+=" - C++ standard library - development files"
- depends="libcxx>=${version}_${revision}"
- pkg_install() {
- vmove usr/lib/libc++.so
- vmove usr/lib/libc++.a
- vmove usr/lib/libc++experimental.a
- vmove usr/include/c++
- vmove usr/share/doc/libcxx
- }
-}
-
-libomp_package() {
- short_desc+=" - Clang OpenMP support library"
- pkg_install() {
- vmove usr/lib/libomp.so
- vmove "usr/lib/libomptarget.rtl.*.so"
- vmove usr/lib/libarcher.so
- vmove "usr/lib/libomp*.so.*"
- }
-}
-
-libomp-devel_package() {
- short_desc+=" - Clang OpenMP support library - development files"
- depends="libomp>=${version}_${revision}"
- pkg_install() {
- vmove "usr/lib/libomp*.so"
- vmove "usr/lib/libarcher*"
- vmove "usr/include/omp*.h"
- vmove "usr/lib/clang/${version}/include/omp*.h"
- vmove usr/share/man/man1/llvmopenmp.1
- vmove usr/share/doc/openmp
- }
}
libllvm12_package() {
From ff6fdec4a2c5e520a2e539ed560e2903b06fc06f Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:27:03 +0100
Subject: [PATCH 04/15] mesa: rebuild for llvm15
---
srcpkgs/mesa/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/mesa/template b/srcpkgs/mesa/template
index 4c3c9ec6039e..0641b28a80d6 100644
--- a/srcpkgs/mesa/template
+++ b/srcpkgs/mesa/template
@@ -1,7 +1,7 @@
# Template file for 'mesa'
pkgname=mesa
version=22.2.4
-revision=2
+revision=3
build_style=meson
configure_args="-Dglvnd=true -Dshared-glapi=enabled -Dgbm=enabled -Degl=enabled
-Dosmesa=true -Dgles1=enabled -Dgles2=enabled -Dglx=dri -Ddri3=enabled
From cbdd60209523392332623ae81db870c1f2ac0261 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:34:04 +0100
Subject: [PATCH 05/15] bcc: rebuild for llvm15
---
srcpkgs/bcc/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/bcc/template b/srcpkgs/bcc/template
index 168a67389bba..219ab9b50219 100644
--- a/srcpkgs/bcc/template
+++ b/srcpkgs/bcc/template
@@ -1,7 +1,7 @@
# Template file for 'bcc'
pkgname=bcc
version=0.25.0
-revision=2
+revision=3
build_style=cmake
configure_args="-DREVISION=${version} -DENABLE_LLVM_SHARED=1"
hostmakedepends="flex python3"
From a9eca990131612eb024808523e2bdc6a0cc6844e Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:37:25 +0100
Subject: [PATCH 06/15] bpftrace: rebuild for llvm15
---
srcpkgs/bpftrace/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/bpftrace/template b/srcpkgs/bpftrace/template
index 857815d29eef..47f2b5e77024 100644
--- a/srcpkgs/bpftrace/template
+++ b/srcpkgs/bpftrace/template
@@ -1,7 +1,7 @@
# Template file for 'bpftrace'
pkgname=bpftrace
version=0.16.0
-revision=1
+revision=2
archs="x86_64* aarch64* ppc64*"
build_style=cmake
configure_args="-DBUILD_TESTING=OFF" # needs root to run
From ef1ab0446d277380880c6302bb69cdf852fed053 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:43:53 +0100
Subject: [PATCH 07/15] CastXML: rebuild for llvm15
---
srcpkgs/CastXML/template | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/srcpkgs/CastXML/template b/srcpkgs/CastXML/template
index 5d7d9503658c..28c424c78073 100644
--- a/srcpkgs/CastXML/template
+++ b/srcpkgs/CastXML/template
@@ -1,7 +1,7 @@
# Template file for 'CastXML'
pkgname=CastXML
version=0.4.6
-revision=1
+revision=2
build_style=cmake
configure_args="-DSPHINX_MAN=YES -DCastXML_INSTALL_MAN_DIR=share/man"
hostmakedepends="clang python3-Sphinx"
@@ -12,8 +12,8 @@ short_desc="C-family abstract syntax tree XML output tool"
maintainer="Evgeny Ermakov <evgeny.v.ermakov@gmail.com>"
license="Apache-2.0"
homepage="https://github.com/CastXML/CastXML"
-distfiles="https://github.com/CastXML/CastXML/archive/v${version}.tar.gz"
-checksum=8dcdbc1f23a130e4bdb0b09f57c30761a02a346b4db4037555048af2a293d66a
+distfiles="https://github.com/CastXML/CastXML/archive/refs/tags/v${version}.tar.gz"
+checksum=bb9024ec9ea5082e0d527f19bf3c2df79f1699f54b6cec168c024e727b32e6d1
post_install() {
rm -r ${DESTDIR}/usr/share/castxml/clang/include
From 7d4416ff7cdb52ba9ea76035751412313524a157 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:48:55 +0100
Subject: [PATCH 08/15] ccls: rebuild for llvm15
---
srcpkgs/ccls/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/ccls/template b/srcpkgs/ccls/template
index 82fa61933878..ecc9f3e38a5d 100644
--- a/srcpkgs/ccls/template
+++ b/srcpkgs/ccls/template
@@ -1,7 +1,7 @@
# Template file for 'ccls'
pkgname=ccls
version=0.20220729
-revision=1
+revision=2
build_style=cmake
hostmakedepends="clang-tools-extra"
makedepends="clang-tools-extra libxml2-devel llvm ncurses-devel rapidjson zlib-devel"
From fc0eee247ef8617563805aa3bec656ffcb412117 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:52:14 +0100
Subject: [PATCH 09/15] include-what-you-use: update to 0.19
---
srcpkgs/include-what-you-use/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/include-what-you-use/template b/srcpkgs/include-what-you-use/template
index d3655709c20c..1a30bc04bb2d 100644
--- a/srcpkgs/include-what-you-use/template
+++ b/srcpkgs/include-what-you-use/template
@@ -1,6 +1,6 @@
# Template file for 'include-what-you-use'
pkgname=include-what-you-use
-version=0.16
+version=0.19
revision=1
build_style=cmake
configure_args="-DIWYU_LLVM_ROOT_PATH=${XBPS_CROSS_BASE}/usr "
@@ -11,7 +11,7 @@ maintainer="Leah Neukirchen <leah@vuxu.org>"
license="NCSA"
homepage="https://include-what-you-use.org/"
distfiles="https://include-what-you-use.org/downloads/${pkgname}-${version}.src.tar.gz"
-checksum=8d6fc9b255343bc1e5ec459e39512df1d51c60e03562985e0076036119ff5a1c
+checksum=2b10157b60ea08adc08e3896b4921c73fcadd5ec4eb652b29a34129d501e5ee0
python_version=3
post_install() {
From 2ef5161a7da0903f18a72031c6a6a11354e20be5 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 15:11:06 +0100
Subject: [PATCH 10/15] SPIRV-LLVM-Translator: update to 15.0.0
---
srcpkgs/SPIRV-LLVM-Translator/template | 13 +++++++------
1 file changed, 7 insertions(+), 6 deletions(-)
diff --git a/srcpkgs/SPIRV-LLVM-Translator/template b/srcpkgs/SPIRV-LLVM-Translator/template
index a2754e58c0e8..bee99f9bcbb2 100644
--- a/srcpkgs/SPIRV-LLVM-Translator/template
+++ b/srcpkgs/SPIRV-LLVM-Translator/template
@@ -1,19 +1,20 @@
# Template file for 'SPIRV-LLVM-Translator'
pkgname=SPIRV-LLVM-Translator
-version=12.0.0
-revision=2
+version=15.0.0
+revision=1
build_style=cmake
make_build_args="llvm-spirv"
configure_args="-Wno-dev -DLLVM_LINK_LLVM_DYLIB=ON -DCMAKE_SKIP_RPATH=ON
- -DLLVM_SPIRV_INCLUDE_TESTS=OFF -DBUILD_SHARED_LIBS=ON"
+ -DLLVM_SPIRV_INCLUDE_TESTS=OFF -DBUILD_SHARED_LIBS=ON
+ -DLLVM_EXTERNAL_SPIRV_HEADERS_SOURCE_DIR=/usr"
hostmakedepends="clang llvm"
-makedepends="clang-tools-extra llvm"
+makedepends="clang-tools-extra llvm SPIRV-Headers"
short_desc="API and commands for processing SPIR-V modules"
maintainer="Orphaned <orphan@voidlinux.org>"
license="NCSA"
homepage="https://github.com/KhronosGroup/SPIRV-LLVM-Translator"
-distfiles="https://github.com/KhronosGroup/${pkgname}/archive/refs/tags/v${version}.tar.gz"
-checksum=6e4fad04203f25fcde4c308c53e9f59bd05a390978992db3212d4b63aff62108
+distfiles="https://github.com/KhronosGroup/SPIRV-LLVM-Translator/archive/refs/tags/v${version}.tar.gz"
+checksum=b1bebd77f72988758c00852e78c2ddc545815a612169a0cb377d021e2f846d88
post_install() {
vlicense LICENSE.TXT
From e91e9e186b22b38390262ada6634db3b74d0515a Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Fri, 6 Jan 2023 17:11:04 +0100
Subject: [PATCH 11/15] rtags: rebuild for llvm15
---
srcpkgs/rtags/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/rtags/template b/srcpkgs/rtags/template
index b496a1b0e721..9b161e690d76 100644
--- a/srcpkgs/rtags/template
+++ b/srcpkgs/rtags/template
@@ -1,7 +1,7 @@
# Template file for 'rtags'
pkgname=rtags
version=2.38
-revision=5
+revision=6
build_style=cmake
# Don't run tests in do_install, please.
configure_args="-DSKIP_CTEST=TRUE"
From 5a83996d6b227860605c89f8a355d17e78ee5bfb Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Fri, 6 Jan 2023 17:14:14 +0100
Subject: [PATCH 12/15] juCi++: rebuild for llvm15
---
srcpkgs/juCi++/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/juCi++/template b/srcpkgs/juCi++/template
index c1969237f11d..416bde7cc4d0 100644
--- a/srcpkgs/juCi++/template
+++ b/srcpkgs/juCi++/template
@@ -1,7 +1,7 @@
# Template file for 'juCi++'
pkgname=juCi++
version=1.7.2
-revision=2
+revision=3
_libclangmm_commit="9704b9b6de0982a588fa41741157d5640afedf30"
_tiny_commit="839ff806dc447ff49af80f9a9eaa7949f770f8e5"
create_wrksrc=yes
From 47a4ccce3866dbcafa439891b1784e6be3eeb0b0 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Sat, 7 Jan 2023 11:31:14 +0100
Subject: [PATCH 13/15] qt5: rebuild for llvm15
---
srcpkgs/qt5/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/qt5/template b/srcpkgs/qt5/template
index 233596587525..bc9170215483 100644
--- a/srcpkgs/qt5/template
+++ b/srcpkgs/qt5/template
@@ -3,7 +3,7 @@ pkgname=qt5
version=5.15.7+20221119
# commit f8c9fb304bc3e53b3aa07f962cd74e9160decccc
# base repo: https://invent.kde.org/qt/qt/qt5
-revision=1
+revision=2
build_style=meta
hostmakedepends="cmake clang flex perl glib-devel pkg-config
python re2c ruby which"
From 2087ff2b1d6ed5e0261651fd802b818cc9242c31 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Mon, 9 Jan 2023 01:22:18 +0100
Subject: [PATCH 14/15] codelite: rebuild for llvm15
---
srcpkgs/codelite/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/codelite/template b/srcpkgs/codelite/template
index 6b8b007c8a43..c6115e0274ce 100644
--- a/srcpkgs/codelite/template
+++ b/srcpkgs/codelite/template
@@ -1,7 +1,7 @@
# Template file for 'codelite'
pkgname=codelite
version=16.0.0
-revision=2
+revision=3
create_wrksrc=yes
build_style=cmake
build_helper=cmake-wxWidgets-gtk3
From 75587f2cae64f469156b0611bc7e3dc928b552c2 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Mon, 9 Jan 2023 01:58:21 +0100
Subject: [PATCH 15/15] kdevelop: rebuild for llvm15
---
srcpkgs/kdevelop/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/kdevelop/template b/srcpkgs/kdevelop/template
index f6798d37a778..fbda8ff4bbba 100644
--- a/srcpkgs/kdevelop/template
+++ b/srcpkgs/kdevelop/template
@@ -1,7 +1,7 @@
# Template file for 'kdevelop'
pkgname=kdevelop
version=22.08.3
-revision=1
+revision=2
build_style=cmake
configure_args="-DBUILD_TESTING=OFF"
hostmakedepends="extra-cmake-modules qt5-qmake qt5-host-tools qt5-tools
^ permalink raw reply [flat|nested] 96+ messages in thread
* Re: [WIP] LLVM 15
2022-11-28 15:30 [PR PATCH] [WIP] LLVM 15 tranzystorek-io
` (44 preceding siblings ...)
2023-01-09 0:58 ` tranzystorek-io
@ 2023-01-10 8:20 ` dkwo
2023-01-12 18:46 ` [PR PATCH] [Updated] " tranzystorek-io
` (48 subsequent siblings)
94 siblings, 0 replies; 96+ messages in thread
From: dkwo @ 2023-01-10 8:20 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 2164 bytes --]
New comment by dkwo on void-packages repository
https://github.com/void-linux/void-packages/pull/40821#issuecomment-1376888359
Comment:
Perhaps it's better to also update river and waylock.
I've been using them with static zig for a while, with no issues. Just for reference:
```
# Template file for 'river'
pkgname=river
-version=0.1.1
-revision=2
+version=0.2.2
+revision=1
build_style=zig-build
-configure_args="$(vopt_if xwayland -Dxwayland)"
+configure_args="$(vopt_if xwayland -Dxwayland) -Dpie -Dstrip"
hostmakedepends="pkg-config wayland-devel scdoc"
-makedepends="wlroots0.15-devel libevdev-devel"
+makedepends="wlroots-devel libevdev-devel pixman-devel
+ wayland-protocols"
depends="$(vopt_if xwayland xorg-server-xwayland)"
short_desc="Dynamic tiling Wayland compositor"
maintainer="Isaac Freund <mail@isaacfreund.com>"
license="GPL-3.0-or-later"
homepage="https://github.com/riverwm/river"
distfiles="${homepage}/releases/download/v${version}/river-${version}.tar.gz"
-checksum=2a0bcd4670ed9ebd39c279f2bf10803fc65c9f3ee2307ce40728df23ce914d18
+checksum=99c256c6b1461d9beeff95fae0db54403e2b12f96e4c959ddbcaeae73fd89091
build_options="xwayland"
build_options_default="xwayland"
```
with no patch, as well as
```
# Template file for 'waylock'
pkgname=waylock
-version=0.3.5
+version=0.6.1
revision=1
-build_style=cargo
+build_style=zig-build
+configure_args="-Dpie -Dstrip -Drelease-safe"
hostmakedepends="pkg-config"
-makedepends="libxkbcommon-devel pam-devel"
+makedepends="libxkbcommon-devel pam-devel wayland-protocols wayland-devel scdoc"
short_desc="Simple screenlocker for wayland compositors"
maintainer="Isaac Freund <ifreund@ifreund.xyz>"
-license="MIT"
+license="ISC"
homepage="https://github.com/ifreund/waylock"
-distfiles="${homepage}/archive/v${version}.tar.gz"
-checksum=60abf78ae8aa9c28f3230f157607fbd74250a51322776ad1b7abed1408432b87
+distfiles="https://github.com/ifreund/waylock/releases/download/v${version}/waylock-${version}.tar.gz"
+checksum=4d3fc46b0f48c964362fdfceff27314a87b28cb3c40fbf782d24ca755bfa8c55
post_install() {
vlicense LICENSE
```
^ permalink raw reply [flat|nested] 96+ messages in thread
* Re: [PR PATCH] [Updated] [WIP] LLVM 15
2022-11-28 15:30 [PR PATCH] [WIP] LLVM 15 tranzystorek-io
` (45 preceding siblings ...)
2023-01-10 8:20 ` dkwo
@ 2023-01-12 18:46 ` tranzystorek-io
2023-01-14 22:16 ` Johnnynator
` (47 subsequent siblings)
94 siblings, 0 replies; 96+ messages in thread
From: tranzystorek-io @ 2023-01-12 18:46 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 1142 bytes --]
There is an updated pull request by tranzystorek-io against master on the void-packages repository
https://github.com/tranzystorek-io/void-packages llvm15
https://github.com/void-linux/void-packages/pull/40821
[WIP] LLVM 15
[ci skip]
TODO:
- [ ] Adjust patches marked as `.patch.skip`
- [x] Make libomp a shlib (change so file name and install a symlink)
- [ ] Avoid creating triplet dirs under /usr/
TODO LLVM rdeps:
- [ ] clazy (breaking changes in clang API)
- [x] beignet (https://github.com/void-linux/void-packages/pull/41529)
- [ ] ispc (1.18.1 supports LLVM `<= 14`)
- [ ] ldc (1.30.0 supports LLVM `<= 14`)
- [ ] ghdl (2.0.0 supports LLVM `<=14`)
- [x] qt
- [ ] qtcreator (breaking changes in clang-format API)
- [ ] shiboken2 (tests failing with llvm15)
- [x] bpftrace (https://github.com/void-linux/void-packages/pull/39002)
- [ ] libclc (tests fail with unresolved calls https://gist.githubusercontent.com/tranzystorek-io/a2aa8a0d8010af5299f7d1ff9f82c22b/raw/6d316d99d6079990b73ae77d274dd120b9560589/LastTest.log)
A patch file from https://github.com/void-linux/void-packages/pull/40821.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-llvm15-40821.patch --]
[-- Type: text/x-diff, Size: 76924 bytes --]
From bcc53ccf7d47444dc139885973aa38d59cb616b3 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Sun, 18 Dec 2022 00:36:59 +0100
Subject: [PATCH 01/15] New package: llvm15-15.0.6
---
common/shlibs | 3 +
srcpkgs/libllvm15 | 1 +
.../llvm15/files/llvm-Config-llvm-config.h | 9 +
...clang-001-fix-unwind-chain-inclusion.patch | 44 ++
.../patches/clang-002-add-musl-triples.patch | 110 +++++
.../clang-003-ppc64-dynamic-linker-path.patch | 13 +
.../patches/clang-004-ppc64-musl-elfv2.patch | 48 ++
.../compiler-rt-sanitizer-ppc64-musl.patch | 35 ++
.../compiler-rt-xray-ppc64-musl.patch.skip | 62 +++
srcpkgs/llvm15/patches/libcxx-musl.patch | 26 ++
srcpkgs/llvm15/patches/libcxx-ppc.patch | 22 +
.../llvm15/patches/libcxx-ssp-nonshared.patch | 11 +
srcpkgs/llvm15/patches/libcxxabi-dl.patch | 25 +
srcpkgs/llvm15/patches/libcxxabi-musl.patch | 38 ++
srcpkgs/llvm15/patches/libomp-soname.patch | 12 +
.../llvm15/patches/libunwind-ppc32.patch.skip | 63 +++
srcpkgs/llvm15/patches/lldb-musl.patch | 40 ++
srcpkgs/llvm15/patches/llvm-001-musl.patch | 57 +++
.../patches/llvm-002-musl-ppc64-elfv2.patch | 30 ++
.../patches/llvm-003-ppc-secureplt.patch | 11 +
.../patches/llvm-004-override-opt.patch | 18 +
.../llvm15/patches/llvm-005-ppc-bigpic.patch | 36 ++
.../patches/llvm-006-aarch64-mf_exec.patch | 25 +
srcpkgs/llvm15/template | 428 ++++++++++++++++++
srcpkgs/llvm15/update | 3 +
25 files changed, 1170 insertions(+)
create mode 120000 srcpkgs/libllvm15
create mode 100644 srcpkgs/llvm15/files/llvm-Config-llvm-config.h
create mode 100644 srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch
create mode 100644 srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch
create mode 100644 srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch
create mode 100644 srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch
create mode 100644 srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch
create mode 100644 srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip
create mode 100644 srcpkgs/llvm15/patches/libcxx-musl.patch
create mode 100644 srcpkgs/llvm15/patches/libcxx-ppc.patch
create mode 100644 srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch
create mode 100644 srcpkgs/llvm15/patches/libcxxabi-dl.patch
create mode 100644 srcpkgs/llvm15/patches/libcxxabi-musl.patch
create mode 100644 srcpkgs/llvm15/patches/libomp-soname.patch
create mode 100644 srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip
create mode 100644 srcpkgs/llvm15/patches/lldb-musl.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-001-musl.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-004-override-opt.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch
create mode 100644 srcpkgs/llvm15/template
create mode 100644 srcpkgs/llvm15/update
diff --git a/common/shlibs b/common/shlibs
index 0a803960ab55..183accaeb0de 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -992,6 +992,9 @@ libclang.so.12 libclang-12.0.0_1
libclang-cpp.so.12 libclang-cpp-12.0.0_1
libLLVM-11.so libllvm11-11.0.0_1
libLLVM-12.so libllvm12-12.0.0_1
+libLLVM-15.so libllvm15-15.0.6_1
+libomp.so.5 libomp-15.0.6_1
+libomptarget.so.15 libomp-15.0.6_1
libisofs.so.6 libisofs-0.6.24_1
libmpack.so.0 libmpack-1.0.5_1
libGeoIP.so.1 libgeoip-1.4.8_1
diff --git a/srcpkgs/libllvm15 b/srcpkgs/libllvm15
new file mode 120000
index 000000000000..ad57a969b9f9
--- /dev/null
+++ b/srcpkgs/libllvm15
@@ -0,0 +1 @@
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm15/files/llvm-Config-llvm-config.h b/srcpkgs/llvm15/files/llvm-Config-llvm-config.h
new file mode 100644
index 000000000000..2fa08c9be696
--- /dev/null
+++ b/srcpkgs/llvm15/files/llvm-Config-llvm-config.h
@@ -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
diff --git a/srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch b/srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch
new file mode 100644
index 000000000000..e4eaa7783e7a
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch
@@ -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
diff --git a/srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch b/srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch
new file mode 100644
index 000000000000..25688d40dbc2
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch
@@ -0,0 +1,110 @@
+--- a/clang/lib/Driver/ToolChains/Gnu.cpp
++++ b/clang/lib/Driver/ToolChains/Gnu.cpp
+@@ -2086,7 +2086,8 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
+ static const char *const ARMHFTriples[] = {"arm-linux-gnueabihf",
+ "armv7hl-redhat-linux-gnueabi",
+ "armv6hl-suse-linux-gnueabi",
+- "armv7hl-suse-linux-gnueabi"};
++ "armv7hl-suse-linux-gnueabi",
++ "armv7l-linux-gnueabihf"};
+ static const char *const ARMebLibDirs[] = {"/lib"};
+ static const char *const ARMebTriples[] = {"armeb-linux-gnueabi",
+ "armeb-linux-androideabi"};
+@@ -2153,8 +2154,7 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
+ "powerpc64-suse-linux", "powerpc-montavista-linuxspe"};
+ static const char *const PPCLELibDirs[] = {"/lib32", "/lib"};
+ static const char *const PPCLETriples[] = {"powerpcle-linux-gnu",
+- "powerpcle-unknown-linux-gnu",
+- "powerpcle-linux-musl"};
++ "powerpcle-unknown-linux-gnu"};
+
+ static const char *const PPC64LibDirs[] = {"/lib64", "/lib"};
+ static const char *const PPC64Triples[] = {
+@@ -2235,6 +2235,87 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
+ return;
+ }
+
++ if (TargetTriple.isMusl()) {
++ static const char *const AArch64MuslTriples[] = {"aarch64-linux-musl"};
++ static const char *const ARMHFMuslTriples[] = {
++ "arm-linux-musleabihf", "armv7l-linux-musleabihf"
++ };
++ static const char *const ARMMuslTriples[] = {"arm-linux-musleabi"};
++ static const char *const X86_64MuslTriples[] = {"x86_64-linux-musl"};
++ static const char *const X86MuslTriples[] = {"i686-linux-musl"};
++ static const char *const MIPSMuslTriples[] = {
++ "mips-linux-musl", "mipsel-linux-musl",
++ "mipsel-linux-muslhf", "mips-linux-muslhf"
++ };
++ static const char *const PPCMuslTriples[] = {"powerpc-linux-musl"};
++ static const char *const PPCLEMuslTriples[] = {"powerpcle-linux-musl"};
++ static const char *const PPC64MuslTriples[] = {"powerpc64-linux-musl"};
++ static const char *const PPC64LEMuslTriples[] = {"powerpc64le-linux-musl"};
++
++ switch (TargetTriple.getArch()) {
++ case llvm::Triple::aarch64:
++ LibDirs.append(begin(AArch64LibDirs), end(AArch64LibDirs));
++ TripleAliases.append(begin(AArch64MuslTriples), end(AArch64MuslTriples));
++ BiarchLibDirs.append(begin(AArch64LibDirs), end(AArch64LibDirs));
++ BiarchTripleAliases.append(begin(AArch64MuslTriples), end(AArch64MuslTriples));
++ break;
++ case llvm::Triple::arm:
++ LibDirs.append(begin(ARMLibDirs), end(ARMLibDirs));
++ if (TargetTriple.getEnvironment() == llvm::Triple::MuslEABIHF) {
++ TripleAliases.append(begin(ARMHFMuslTriples), end(ARMHFMuslTriples));
++ } else {
++ TripleAliases.append(begin(ARMMuslTriples), end(ARMMuslTriples));
++ }
++ break;
++ case llvm::Triple::x86_64:
++ LibDirs.append(begin(X86_64LibDirs), end(X86_64LibDirs));
++ TripleAliases.append(begin(X86_64MuslTriples), end(X86_64MuslTriples));
++ BiarchLibDirs.append(begin(X86LibDirs), end(X86LibDirs));
++ BiarchTripleAliases.append(begin(X86MuslTriples), end(X86MuslTriples));
++ break;
++ case llvm::Triple::x86:
++ LibDirs.append(begin(X86LibDirs), end(X86LibDirs));
++ TripleAliases.append(begin(X86MuslTriples), end(X86MuslTriples));
++ BiarchLibDirs.append(begin(X86_64LibDirs), end(X86_64LibDirs));
++ BiarchTripleAliases.append(begin(X86_64MuslTriples), end(X86_64MuslTriples));
++ break;
++ case llvm::Triple::mips:
++ LibDirs.append(begin(MIPSLibDirs), end(MIPSLibDirs));
++ TripleAliases.append(begin(MIPSMuslTriples), end(MIPSMuslTriples));
++ break;
++ case llvm::Triple::ppc:
++ LibDirs.append(begin(PPCLibDirs), end(PPCLibDirs));
++ TripleAliases.append(begin(PPCMuslTriples), end(PPCMuslTriples));
++ BiarchLibDirs.append(begin(PPC64LibDirs), end(PPC64LibDirs));
++ BiarchTripleAliases.append(begin(PPC64MuslTriples), end(PPC64MuslTriples));
++ break;
++ case llvm::Triple::ppcle:
++ LibDirs.append(begin(PPCLELibDirs), end(PPCLELibDirs));
++ TripleAliases.append(begin(PPCLEMuslTriples), end(PPCLEMuslTriples));
++ BiarchLibDirs.append(begin(PPC64LELibDirs), end(PPC64LELibDirs));
++ BiarchTripleAliases.append(begin(PPC64LEMuslTriples), end(PPC64LEMuslTriples));
++ break;
++ case llvm::Triple::ppc64:
++ LibDirs.append(begin(PPC64LibDirs), end(PPC64LibDirs));
++ TripleAliases.append(begin(PPC64MuslTriples), end(PPC64MuslTriples));
++ BiarchLibDirs.append(begin(PPCLibDirs), end(PPCLibDirs));
++ BiarchTripleAliases.append(begin(PPCMuslTriples), end(PPCMuslTriples));
++ break;
++ case llvm::Triple::ppc64le:
++ LibDirs.append(begin(PPC64LELibDirs), end(PPC64LELibDirs));
++ TripleAliases.append(begin(PPC64LEMuslTriples), end(PPC64LEMuslTriples));
++ BiarchLibDirs.append(begin(PPCLELibDirs), end(PPCLELibDirs));
++ BiarchTripleAliases.append(begin(PPCLEMuslTriples), end(PPCLEMuslTriples));
++ break;
++ default:
++ break;
++ }
++ TripleAliases.push_back(TargetTriple.str());
++ if (TargetTriple.str() != BiarchTriple.str())
++ BiarchTripleAliases.push_back(BiarchTriple.str());
++ return;
++ }
++
+ // Android targets should not use GNU/Linux tools or libraries.
+ if (TargetTriple.isAndroid()) {
+ static const char *const AArch64AndroidTriples[] = {
diff --git a/srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch b/srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch
new file mode 100644
index 000000000000..4ad6412d1e6c
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch
@@ -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 =
diff --git a/srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch b/srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch
new file mode 100644
index 000000000000..21fc8003c5f1
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch
@@ -0,0 +1,48 @@
+--- a/clang/lib/Basic/Targets/PPC.h
++++ b/clang/lib/Basic/Targets/PPC.h
+@@ -415,11 +415,10 @@ public:
+ LongDoubleFormat = &llvm::APFloat::IEEEdouble();
+ } else if ((Triple.getArch() == llvm::Triple::ppc64le)) {
+ DataLayout = "e-m:e-i64:64-n32:64";
+- ABI = "elfv2";
+ } else {
+ DataLayout = "E-m:e-i64:64-n32:64";
+- ABI = "elfv1";
+ }
++ ABI = "elfv2";
+
+ if (Triple.isOSFreeBSD() || Triple.isOSOpenBSD() || Triple.isMusl()) {
+ LongDoubleWidth = LongDoubleAlign = 64;
+--- a/clang/lib/CodeGen/TargetInfo.cpp
++++ b/clang/lib/CodeGen/TargetInfo.cpp
+@@ -10927,9 +10927,9 @@ const TargetCodeGenInfo &CodeGenModule::getTargetCodeGenInfo() {
+ return SetCGInfo(new AIXTargetCodeGenInfo(Types, /*Is64Bit*/ true));
+
+ if (Triple.isOSBinFormatELF()) {
+- PPC64_SVR4_ABIInfo::ABIKind Kind = PPC64_SVR4_ABIInfo::ELFv1;
+- if (getTarget().getABI() == "elfv2")
+- Kind = PPC64_SVR4_ABIInfo::ELFv2;
++ PPC64_SVR4_ABIInfo::ABIKind Kind = PPC64_SVR4_ABIInfo::ELFv2;
++ if (getTarget().getABI() == "elfv1")
++ Kind = PPC64_SVR4_ABIInfo::ELFv1;
+ bool IsSoftFloat = CodeGenOpts.FloatABI == "soft";
+
+ return SetCGInfo(
+--- a/clang/lib/Driver/ToolChains/Clang.cpp
++++ b/clang/lib/Driver/ToolChains/Clang.cpp
+@@ -1920,14 +1920,7 @@ void Clang::AddPPCTargetArgs(const ArgList &Args,
+ const llvm::Triple &T = getToolChain().getTriple();
+ if (T.isOSBinFormatELF()) {
+ switch (getToolChain().getArch()) {
+- case llvm::Triple::ppc64: {
+- if ((T.isOSFreeBSD() && T.getOSMajorVersion() >= 13) ||
+- T.isOSOpenBSD() || T.isMusl())
+- ABIName = "elfv2";
+- else
+- ABIName = "elfv1";
+- break;
+- }
++ case llvm::Triple::ppc64:
+ case llvm::Triple::ppc64le:
+ ABIName = "elfv2";
+ break;
diff --git a/srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch b/srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch
new file mode 100644
index 000000000000..360cfc1ba7f1
--- /dev/null
+++ b/srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch
@@ -0,0 +1,35 @@
+--- 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__) || SANITIZER_RISCV64
++ defined(__hexagon__) || defined(__powerpc__) || 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_ANDROID
++#if (defined(__aarch64__) || defined(__powerpc__) || SANITIZER_RISCV64) && !SANITIZER_ANDROID
+ // GLIBC 2.20+ sys/user does not include asm/ptrace.h
+ # include <asm/ptrace.h>
+ #endif
diff --git a/srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip b/srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip
new file mode 100644
index 000000000000..d0b61c80c897
--- /dev/null
+++ b/srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip
@@ -0,0 +1,62 @@
+--- a/compiler-rt/lib/xray/xray_powerpc64.inc
++++ b/compiler-rt/lib/xray/xray_powerpc64.inc
+@@ -12,7 +12,13 @@
+
+ #include <cstdint>
+ #include <mutex>
++#ifdef __GLIBC__
+ #include <sys/platform/ppc.h>
++#else
++#include <cctype>
++#include <cstring>
++#include <cstdlib>
++#endif
+
+ #include "xray_defs.h"
+
+@@ -20,13 +26,45 @@ namespace __xray {
+
+ ALWAYS_INLINE uint64_t readTSC(uint8_t &CPU) XRAY_NEVER_INSTRUMENT {
+ CPU = 0;
++#ifdef __GLIBC__
+ return __ppc_get_timebase();
++#else
++ return __builtin_ppc_get_timebase();
++#endif
+ }
+
+ inline uint64_t getTSCFrequency() XRAY_NEVER_INSTRUMENT {
+ static std::mutex M;
+ std::lock_guard<std::mutex> Guard(M);
++#ifdef __GLIBC__
+ return __ppc_get_timebase_freq();
++#else
++ /* FIXME: a less dirty implementation? */
++ static uint64_t base;
++ if (!base) {
++ FILE *f = fopen("/proc/cpuinfo", "rb");
++ if (f) {
++ ssize_t nr;
++ /* virtually always big enough to hold the line */
++ char buf[512];
++ while (fgets(buf, sizeof(buf), f)) {
++ char *ret = strstr(buf, "timebase");
++ if (!ret) {
++ continue;
++ }
++ ret += sizeof("timebase") - 1;
++ ret = strchr(ret, ':');
++ if (!ret) {
++ continue;
++ }
++ base = strtoul(ret + 1, nullptr, 10);
++ break;
++ }
++ fclose(f);
++ }
++ }
++ return base;
++#endif
+ }
+
+ inline bool probeRequiredCPUFeatures() XRAY_NEVER_INSTRUMENT {
diff --git a/srcpkgs/llvm15/patches/libcxx-musl.patch b/srcpkgs/llvm15/patches/libcxx-musl.patch
new file mode 100644
index 000000000000..bbd31ffc2cb1
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxx-musl.patch
@@ -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,
+ typename remove_reference<decltype(errno)>::type __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
+ typename remove_reference<decltype(errno)>::type __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,
+ typename remove_reference<decltype(errno)>::type __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
+ typename remove_reference<decltype(errno)>::type __current_errno = errno;
+ if (__current_errno == 0)
+ errno = __save_errno;
diff --git a/srcpkgs/llvm15/patches/libcxx-ppc.patch b/srcpkgs/llvm15/patches/libcxx-ppc.patch
new file mode 100644
index 000000000000..7a92f8004e1c
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxx-ppc.patch
@@ -0,0 +1,22 @@
+This ensures `is_iec559` is defined correctly under all long double ABIs,
+including musl and its 64-bit long double. Also, `__ppc__` or `__ppc64__`
+is not defined on gcc.
+
+--- a/libcxx/include/limits
++++ b/libcxx/include/limits
+@@ -426,8 +426,14 @@ protected:
+ _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type signaling_NaN() _NOEXCEPT {return __builtin_nansl("");}
+ _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type denorm_min() _NOEXCEPT {return __LDBL_DENORM_MIN__;}
+
+-#if (defined(__ppc__) || defined(__ppc64__))
++#if defined(__powerpc__) || defined(__powerpc64__)
++#if (__LDBL_MAX_EXP__ > __DBL_MAX_EXP__) || (__LDBL_MANT_DIG__ == __DBL_MANT_DIG__)
++ /* IEEE 754 quadruple or double precision */
++ static _LIBCPP_CONSTEXPR const bool is_iec559 = true;
++#else
++ /* 128-bit IBM double-double */
+ static _LIBCPP_CONSTEXPR const bool is_iec559 = false;
++#endif
+ #else
+ static _LIBCPP_CONSTEXPR const bool is_iec559 = true;
+ #endif
diff --git a/srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch b/srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch
new file mode 100644
index 000000000000..70292beb2fcd
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch
@@ -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()
diff --git a/srcpkgs/llvm15/patches/libcxxabi-dl.patch b/srcpkgs/llvm15/patches/libcxxabi-dl.patch
new file mode 100644
index 000000000000..3a15f9db8c98
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxxabi-dl.patch
@@ -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 @@
+ target_link_libraries(${target} PRIVATE m)
+ endif()
+
++ if (LIBCXX_HAS_C_LIB)
++ target_link_libraries(${target} PRIVATE dl)
++ endif()
++
+ if (LIBCXX_HAS_RT_LIB)
+ target_link_libraries(${target} PRIVATE rt)
+ endif()
diff --git a/srcpkgs/llvm15/patches/libcxxabi-musl.patch b/srcpkgs/llvm15/patches/libcxxabi-musl.patch
new file mode 100644
index 000000000000..7f89340b8bdf
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxxabi-musl.patch
@@ -0,0 +1,38 @@
+gcc does not support using abi_tag in an extern "C" declaration
+https://github.com/gcc-mirror/gcc/blob/cf59c8983ef6590f0d69014f8dc8778b5b7691c6/gcc/cp/tree.cc#L5354-L5359
+diff -rup libcxx/include/__support/musl/xlocale.h.orig libcxx/include/__support/musl/xlocale.h
+--- a/libcxx/include/__support/musl/xlocale.h.orig 2022-12-19 14:44:34.049044339 -0800
++++ b/libcxx/include/__support/musl/xlocale.h 2022-12-19 14:45:24.211247988 -0800
+@@ -24,27 +24,27 @@
+ extern "C" {
+ #endif
+
+-inline _LIBCPP_HIDE_FROM_ABI long long
++static inline long long
+ strtoll_l(const char *__nptr, char **__endptr, int __base, locale_t) {
+ return ::strtoll(__nptr, __endptr, __base);
+ }
+
+-inline _LIBCPP_HIDE_FROM_ABI unsigned long long
++static inline unsigned long long
+ strtoull_l(const char *__nptr, char **__endptr, int __base, locale_t) {
+ return ::strtoull(__nptr, __endptr, __base);
+ }
+
+-inline _LIBCPP_HIDE_FROM_ABI long long
++static inline long long
+ wcstoll_l(const wchar_t *__nptr, wchar_t **__endptr, int __base, locale_t) {
+ return ::wcstoll(__nptr, __endptr, __base);
+ }
+
+-inline _LIBCPP_HIDE_FROM_ABI long long
++static inline long long
+ wcstoull_l(const wchar_t *__nptr, wchar_t **__endptr, int __base, locale_t) {
+ return ::wcstoull(__nptr, __endptr, __base);
+ }
+
+-inline _LIBCPP_HIDE_FROM_ABI long double
++static inline long double
+ wcstold_l(const wchar_t *__nptr, wchar_t **__endptr, locale_t) {
+ return ::wcstold(__nptr, __endptr);
+ }
diff --git a/srcpkgs/llvm15/patches/libomp-soname.patch b/srcpkgs/llvm15/patches/libomp-soname.patch
new file mode 100644
index 000000000000..9a622cd9254c
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libomp-soname.patch
@@ -0,0 +1,12 @@
+diff --git a/openmp/runtime/src/CMakeLists.txt b/openmp/runtime/src/CMakeLists.txt
+index df1ca9d90..9d2c3b7b9 100644
+--- a/openmp/runtime/src/CMakeLists.txt
++++ b/openmp/runtime/src/CMakeLists.txt
+@@ -150,6 +150,7 @@ libomp_get_libflags(LIBOMP_CONFIGURED_LIBFLAGS)
+ # Build libomp library. Add LLVMSupport dependency if building in-tree with libomptarget profiling enabled.
+ if(OPENMP_STANDALONE_BUILD OR (NOT OPENMP_ENABLE_LIBOMP_PROFILING))
+ add_library(omp ${LIBOMP_LIBRARY_KIND} ${LIBOMP_SOURCE_FILES})
++ set_target_properties(omp PROPERTIES VERSION ${LIBOMP_VERSION_MAJOR} SOVERSION ${LIBOMP_VERSION_MAJOR})
+ # Linking command will include libraries in LIBOMP_CONFIGURED_LIBFLAGS
+ target_link_libraries(omp ${LIBOMP_CONFIGURED_LIBFLAGS} ${LIBOMP_DL_LIBS})
+ else()
diff --git a/srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip b/srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip
new file mode 100644
index 000000000000..74aa7576ecf9
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip
@@ -0,0 +1,63 @@
+This fixes build at least with gcc9 which does not define `__ppc__`.
+
+--- a/libunwind/include/__libunwind_config.h
++++ b/libunwind/include/__libunwind_config.h
+@@ -49,7 +49,7 @@
+ # define _LIBUNWIND_CONTEXT_SIZE 167
+ # define _LIBUNWIND_CURSOR_SIZE 179
+ # define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_PPC64
+-# elif defined(__ppc__)
++# elif defined(__powerpc__)
+ # define _LIBUNWIND_TARGET_PPC 1
+ # define _LIBUNWIND_CONTEXT_SIZE 117
+ # define _LIBUNWIND_CURSOR_SIZE 124
+--- a/libunwind/src/UnwindRegistersRestore.S
++++ b/libunwind/src/UnwindRegistersRestore.S
+@@ -392,7 +392,7 @@ Lnovec:
+ PPC64_LR(3)
+ bctr
+
+-#elif defined(__ppc__)
++#elif defined(__powerpc__)
+
+ DEFINE_LIBUNWIND_FUNCTION(_ZN9libunwind13Registers_ppc6jumptoEv)
+ //
+--- a/libunwind/src/UnwindRegistersSave.S
++++ b/libunwind/src/UnwindRegistersSave.S
+@@ -554,7 +554,7 @@ DEFINE_LIBUNWIND_FUNCTION(__unw_getcontext)
+ blr
+
+
+-#elif defined(__ppc__)
++#elif defined(__powerpc__)
+
+ //
+ // extern int unw_getcontext(unw_context_t* thread_state)
+--- a/libunwind/src/config.h
++++ b/libunwind/src/config.h
+@@ -95,12 +95,12 @@
+ #define _LIBUNWIND_BUILD_SJLJ_APIS
+ #endif
+
+-#if defined(__i386__) || defined(__x86_64__) || defined(__ppc__) || defined(__ppc64__) || defined(__powerpc64__)
++#if defined(__i386__) || defined(__x86_64__) || defined(__powerpc__) || defined(__powerpc64__)
+ #define _LIBUNWIND_SUPPORT_FRAME_APIS
+ #endif
+
+ #if defined(__i386__) || defined(__x86_64__) || \
+- defined(__ppc__) || defined(__ppc64__) || defined(__powerpc64__) || \
++ defined(__powerpc__) || defined(__powerpc64__) || \
+ (!defined(__APPLE__) && defined(__arm__)) || \
+ (defined(__arm64__) || defined(__aarch64__)) || \
+ defined(__mips__)
+--- a/libunwind/src/libunwind.cpp
++++ b/libunwind/src/libunwind.cpp
+@@ -42,7 +42,7 @@ _LIBUNWIND_HIDDEN int __unw_init_local(unw_cursor_t *cursor,
+ # define REGISTER_KIND Registers_x86_64
+ #elif defined(__powerpc64__)
+ # define REGISTER_KIND Registers_ppc64
+-#elif defined(__ppc__)
++#elif defined(__powerpc__)
+ # define REGISTER_KIND Registers_ppc
+ #elif defined(__aarch64__)
+ # define REGISTER_KIND Registers_arm64
diff --git a/srcpkgs/llvm15/patches/lldb-musl.patch b/srcpkgs/llvm15/patches/lldb-musl.patch
new file mode 100644
index 000000000000..026c5e1e61ba
--- /dev/null
+++ b/srcpkgs/llvm15/patches/lldb-musl.patch
@@ -0,0 +1,40 @@
+--- a/lldb/source/Plugins/Process/Linux/Procfs.h
++++ b/lldb/source/Plugins/Process/Linux/Procfs.h
+@@ -10,6 +10,7 @@
+ // sys/procfs.h on Android/Linux for all supported architectures.
+
+ #include <sys/ptrace.h>
++#include <asm/ptrace.h>
+
+ #include "lldb/lldb-types.h"
+
+@@ -17,23 +18,13 @@
+
+ #include <vector>
+
+-#ifdef __ANDROID__
+-#if defined(__arm64__) || defined(__aarch64__)
+-typedef unsigned long elf_greg_t;
+-typedef elf_greg_t
+- elf_gregset_t[(sizeof(struct user_pt_regs) / sizeof(elf_greg_t))];
+-typedef struct user_fpsimd_state elf_fpregset_t;
+-#ifndef NT_FPREGSET
+-#define NT_FPREGSET NT_PRFPREG
+-#endif // NT_FPREGSET
+-#elif defined(__mips__)
+-#ifndef NT_FPREGSET
+-#define NT_FPREGSET NT_PRFPREG
+-#endif // NT_FPREGSET
+-#endif
+-#else // __ANDROID__
++#if !defined(__GLIBC__) && defined(__powerpc__)
++#define pt_regs musl_pt_regs
++#include <sys/procfs.h>
++#undef pt_regs
++#else
+ #include <sys/procfs.h>
+-#endif // __ANDROID__
++#endif
+
+ namespace lldb_private {
+ namespace process_linux {
diff --git a/srcpkgs/llvm15/patches/llvm-001-musl.patch b/srcpkgs/llvm15/patches/llvm-001-musl.patch
new file mode 100644
index 000000000000..f2a3f8d62813
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-001-musl.patch
@@ -0,0 +1,57 @@
+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;
+diff --git a/lib/Support/Unix/DynamicLibrary.inc b/lib/Support/Unix/DynamicLibrary.inc
+index a2a37996..2f86c470 100644
+--- a/llvm/lib/Support/Unix/DynamicLibrary.inc
++++ b/llvm/lib/Support/Unix/DynamicLibrary.inc
+@@ -102,7 +102,7 @@ static void *DoSearch(const char* SymbolName) {
+
+ // This macro returns the address of a well-known, explicit symbol
+ #define EXPLICIT_SYMBOL(SYM) \
+- if (!strcmp(SymbolName, #SYM)) return &SYM
++ if (!strcmp(SymbolName, #SYM)) return (void *)&SYM
+
+ // Under glibc we have a weird situation. The stderr/out/in symbols are both
+ // macros and global variables because of standards requirements. So, we
+diff --git a/utils/unittest/googletest/src/gtest.cc b/utils/unittest/googletest/src/gtest.cc
+index d882ab2e..f1fb12d0 100644
+--- a/llvm/utils/unittest/googletest/src/gtest.cc
++++ b/llvm/utils/unittest/googletest/src/gtest.cc
+@@ -128,6 +128,7 @@
+
+ #if GTEST_CAN_STREAM_RESULTS_
+ # include <arpa/inet.h> // NOLINT
++# include <sys/socket.h> // NOLINT
+ # include <netdb.h> // NOLINT
+ # include <sys/socket.h> // NOLINT
+ # include <sys/types.h> // NOLINT
diff --git a/srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch b/srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch
new file mode 100644
index 000000000000..0071d964bd37
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch
@@ -0,0 +1,30 @@
+This patches LLVM to use ELFv2 on ppc64 unconditionally unless overridden. We
+need this because unlike most distros we use ELFv2 for both glibc and musl
+on big endian ppc64.
+
+diff --git a/lib/Target/PowerPC/PPCTargetMachine.cpp b/lib/Target/PowerPC/PPCTargetMachine.cpp
+index 0634833e..b7cbc2e7 100644
+--- a/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp
++++ b/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp
+@@ -222,9 +222,8 @@ static PPCTargetMachine::PPCABI computeTargetABI(const Triple &TT,
+
+ switch (TT.getArch()) {
+ case Triple::ppc64le:
+- return PPCTargetMachine::PPC_ABI_ELFv2;
+ case Triple::ppc64:
+- return PPCTargetMachine::PPC_ABI_ELFv1;
++ return PPCTargetMachine::PPC_ABI_ELFv2;
+ default:
+ return PPCTargetMachine::PPC_ABI_UNKNOWN;
+ }
+diff --git a/test/CodeGen/PowerPC/ppc64-elf-abi.ll b/test/CodeGen/PowerPC/ppc64-elf-abi.ll
+index 8b1cf6b5..296a2afa 100644
+--- a/llvm/test/CodeGen/PowerPC/ppc64-elf-abi.ll
++++ b/llvm/test/CodeGen/PowerPC/ppc64-elf-abi.ll
+@@ -1,4 +1,5 @@
+-; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv1
++; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv2
++; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-musl < %s | FileCheck %s -check-prefix=CHECK-ELFv2
+ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu -target-abi elfv1 < %s | FileCheck %s -check-prefix=CHECK-ELFv1
+ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu -target-abi elfv2 < %s | FileCheck %s -check-prefix=CHECK-ELFv2
+ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv2
diff --git a/srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch b/srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch
new file mode 100644
index 000000000000..b5d15974375d
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch
@@ -0,0 +1,11 @@
+--- a/llvm/lib/Target/PowerPC/PPCSubtarget.cpp
++++ b/llvm/lib/Target/PowerPC/PPCSubtarget.cpp
+@@ -165,7 +165,7 @@ void PPCSubtarget::initSubtargetFeatures(StringRef CPU, StringRef FS) {
+
+ if ((TargetTriple.isOSFreeBSD() && TargetTriple.getOSMajorVersion() >= 13) ||
+ TargetTriple.isOSNetBSD() || TargetTriple.isOSOpenBSD() ||
+- TargetTriple.isMusl())
++ isTargetLinux())
+ SecurePlt = true;
+
+ if (HasSPE && IsPPC64)
diff --git a/srcpkgs/llvm15/patches/llvm-004-override-opt.patch b/srcpkgs/llvm15/patches/llvm-004-override-opt.patch
new file mode 100644
index 000000000000..51d0e4b31b32
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-004-override-opt.patch
@@ -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)
diff --git a/srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch b/srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch
new file mode 100644
index 000000000000..d332687b9d92
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch
@@ -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);
diff --git a/srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch b/srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch
new file mode 100644
index 000000000000..a00abd216665
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch
@@ -0,0 +1,25 @@
+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__) || defined (__ppc__) || \
+- defined(_POWER) || defined(_ARCH_PPC))
++ defined(_POWER) || defined(_ARCH_PPC) || (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
diff --git a/srcpkgs/llvm15/template b/srcpkgs/llvm15/template
new file mode 100644
index 000000000000..db510bbd2477
--- /dev/null
+++ b/srcpkgs/llvm15/template
@@ -0,0 +1,428 @@
+# Template file for 'llvm15'
+pkgname=llvm15
+version=15.0.6
+revision=1
+build_wrksrc=llvm
+build_style=cmake
+configure_args="
+ -DCMAKE_BUILD_TYPE=Release -Wno-dev
+ -DENABLE_LINKER_BUILD_ID=YES
+ -DLLDB_USE_SYSTEM_SIX=YES
+ -DLIBCXX_CXX_ABI=libcxxabi
+ -DLIBCXX_ENABLE_STATIC_ABI_LIBRARY=YES
+ -DLIBCXXABI_USE_LLVM_UNWINDER=YES
+ -DLIBCXXABI_ENABLE_STATIC_UNWINDER=YES
+ -DLIBOMP_ENABLE_SHARED=YES
+ -DLIBOMP_INSTALL_ALIASES=NO
+ -DLLVM_INCLUDE_DOCS=YES
+ -DLLVM_BUILD_DOCS=YES
+ -DLLVM_ENABLE_SPHINX=YES
+ -DSPHINX_WARNINGS_AS_ERRORS=NO
+ -DLLVM_INSTALL_UTILS=YES
+ -DLLVM_BUILD_LLVM_DYLIB=YES
+ -DLLVM_LINK_LLVM_DYLIB=YES
+ -DLLVM_ENABLE_RTTI=YES
+ -DLLVM_ENABLE_FFI=YES
+ -DLLVM_BINUTILS_INCDIR=/usr/include"
+hostmakedepends="perl python3 zlib-devel libffi-devel swig python3-Sphinx
+ python3-recommonmark python3-sphinx-automodapi"
+makedepends="python3-devel zlib-devel elfutils-devel libffi-devel libedit-devel
+ libxml2-devel binutils-devel libatomic-devel"
+depends="libllvm15>=${version}_${revision}"
+short_desc="Low Level Virtual Machine"
+maintainer="Orphaned <orphan@voidlinux.org>"
+license="Apache-2.0"
+homepage="https://www.llvm.org"
+distfiles="https://github.com/llvm/llvm-project/releases/download/llvmorg-${version}/llvm-project-${version}.src.tar.xz"
+checksum=9d53ad04dc60cb7b30e810faf64c5ab8157dadef46c8766f67f286238256ff92
+lib32disabled=yes
+python_version=3
+
+if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
+ configure_args+=" -DLIBCXX_HAS_MUSL_LIBC=YES
+ -DCOMPILER_RT_BUILD_GWP_ASAN=OFF"
+fi
+
+# "operand out of range" assembler failures
+case "$XBPS_TARGET_MACHINE" in
+ ppc64*) ;;
+ ppc*) configure_args+=" -DCLANG_ENABLE_CLANGD=OFF" ;;
+esac
+
+_enabled_projects="clang;clang-tools-extra;compiler-rt;libcxx;libcxxabi;libunwind;lld"
+
+_lldb_enable=yes
+_libomp_enable=no
+
+case "$XBPS_TARGET_MACHINE" in
+ ppc64le*) ;;
+ ppc*|i686*) _lldb_enable=no ;;
+esac
+
+case "$XBPS_TARGET_MACHINE" in
+ x86_64*|aarch64*|ppc64*) _libomp_enable=yes;;
+esac
+
+subpackages="clang-tools-extra"
+
+# must go before clang
+if [ "$_libomp_enable" = "yes" ]; then
+ _enabled_projects+=";openmp"
+ subpackages+=" libomp libomp-devel"
+ # because of cmake nonsense referencing libomptarget.so.*
+ depends+=" libomp>=${version}_${revision}"
+fi
+
+subpackages+=" clang clang-analyzer libclang libclang-cpp
+ llvm-libunwind llvm-libunwind-devel libcxx libcxx-devel
+ libcxxabi libcxxabi-devel libllvm15"
+
+if [ "$_lldb_enable" = "yes" ]; then
+ # XXX fails to cross compile due to python
+ _enabled_projects+=";lldb"
+ subpackages+=" lldb lldb-devel"
+fi
+
+subpackages+=" lld lld-devel"
+
+configure_args+=" -DLLVM_ENABLE_PROJECTS=${_enabled_projects}"
+
+post_patch() {
+ if [ "$_lldb_enable" = "yes" ]; then
+ if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
+ vsed -i 's|__ptrace_request|int|g' \
+ ${wrksrc}/lldb/source/Plugins/Process/Linux/NativeProcessLinux.cpp
+ fi
+ # disable docs for lldb as they fail to generate
+ vsed -i '/add_subdirectory(docs)/d' \
+ ${wrksrc}/lldb/CMakeLists.txt
+ fi
+
+ # update config.guess for better platform detection
+ cp $XBPS_COMMONDIR/environment/configure/automake/config.guess \
+ ${wrksrc}/llvm/cmake
+
+ # fix linker failures on some archs
+ vsed -i 's,check_library_exists(gcc_s .*,set(LIBCXXABI_HAS_GCC_S_LIB ON),' \
+ ${wrksrc}/libcxxabi/cmake/config-ix.cmake
+ vsed -i 's,check_library_exists(gcc .*,set(LIBCXXABI_HAS_GCC_LIB ON),' \
+ ${wrksrc}/libcxxabi/cmake/config-ix.cmake
+
+ # need libssp_nonshared on some musl platforms (because of nodefaultlibs)
+ case "$XBPS_TARGET_MACHINE" in
+ ppc64*) ;;
+ ppc*-musl|i686-musl|mips*-musl)
+ vsed -i 's,^# Setup flags.$,add_library_flags(ssp_nonshared),' \
+ ${wrksrc}/libunwind/src/CMakeLists.txt
+ vsed -i 's,^# Setup flags.$,add_library_flags(ssp_nonshared),' \
+ ${wrksrc}/libcxxabi/src/CMakeLists.txt
+ vsed -i 's,#ssp,,' ${wrksrc}/libcxx/CMakeLists.txt
+ ;;
+ esac
+
+ case "$XBPS_TARGET_MACHINE" in
+ arm*-musl|i686-musl) # sanitizer code is broken since it duplicates some libc bits
+ vsed -i 's/set(COMPILER_RT_HAS_SANITIZER_COMMON TRUE)/set(COMPILER_RT_HAS_SANITIZER_COMMON FALSE)/' \
+ ${wrksrc}/compiler-rt/cmake/config-ix.cmake
+ ;;
+ esac
+}
+
+pre_configure() {
+ local triplet
+
+ # Vastly reduce size of debugging symbols:
+ CFLAGS=${CFLAGS/ -g/ -g1}
+ CXXFLAGS=${CXXFLAGS/ -g/ -g1}
+
+ # since gcc9, the build likes to blow up for ppc32 apparently because
+ # of clang being too large for a 24-bit relative call to the PLT, so
+ # optimize for size instead
+ case "$XBPS_TARGET_MACHINE" in
+ ppc64*) ;;
+ mips*-musl|ppc*) configure_args+=" -DVOID_CXX_OPT_FLAGS=-Os" ;;
+ esac
+
+ if [ "$CROSS_BUILD" ]; then
+ msg_normal "Building host tblgen\n"
+ mkdir -p build/HOST
+ cd build/HOST
+ CC="$BUILD_CC" CXX="$BUILD_CXX" CFLAGS="$BUILD_CFLAGS" \
+ CXXFLAGS="$BUILD_CXXFLAGS" LDFLAGS="$BUILD_LDFLAGS" \
+ cmake ../.. -DCMAKE_BUILD_TYPE=Release \
+ -DLLVM_ENABLE_PROJECTS=${_enabled_projects}
+ make ${makejobs} -C utils/TableGen
+ make ${makejobs} -C tools/clang/utils/TableGen
+ [ "$_lldb_enable" = "yes" ] && make ${makejobs} -C tools/lldb/utils/TableGen
+ configure_args+=" -DLLVM_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/llvm-tblgen"
+ configure_args+=" -DCLANG_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/clang-tblgen"
+ [ "$_lldb_enable" = "yes" ] && configure_args+=" -DLLDB_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/lldb-tblgen"
+ cd ../..
+ fi
+
+ case "$XBPS_TARGET_MACHINE" in
+ i686*) _arch="X86";;
+ x86_64*) _arch="X86";;
+ armv5*) _arch="Armv5te";;
+ armv6*) _arch="Armv6";;
+ armv7*) _arch="Armv7";;
+ aarch64*) _arch="AArch64";;
+ mips*) _arch="Mips";;
+ ppc*) _arch="PowerPC";;
+ riscv64*) _arch="RISCV64";;
+ esac
+
+ triplet=${XBPS_CROSS_TRIPLET:-$XBPS_TRIPLET}
+
+ configure_args+=" -DLLVM_TARGET_ARCH=${_arch}"
+ configure_args+=" -DLLVM_HOST_TRIPLE=${triplet}"
+ configure_args+=" -DLLVM_DEFAULT_TARGET_TRIPLE=${triplet}"
+}
+
+do_install() {
+ cd build
+ cmake -DCMAKE_INSTALL_PREFIX=${DESTDIR}/usr -P cmake_install.cmake
+
+ # Required for multilib.
+ if [ "$XBPS_TARGET_MACHINE" = "x86_64" ]; then
+ for _header in llvm-config; do
+ mv ${DESTDIR}/usr/include/llvm/Config/${_header}{,-64}.h
+ vinstall ${FILESDIR}/llvm-Config-${_header}.h 644 \
+ usr/include/llvm/Config ${_header}.h
+ done
+ fi
+
+ # Remove llvm-config-host in cross builds.
+ if [ "$CROSS_BUILD" ]; then
+ rm -f ${DESTDIR}/usr/bin/llvm-config-host
+ fi
+
+ # Install libcxxabi headers
+ vinstall ${wrksrc}/libcxxabi/include/__cxxabi_config.h 644 usr/include
+ vinstall ${wrksrc}/libcxxabi/include/cxxabi.h 644 usr/include
+
+ # Install libunwind headers
+ vinstall ${wrksrc}/libunwind/include/__libunwind_config.h 644 usr/include
+ vinstall ${wrksrc}/libunwind/include/libunwind.h 644 usr/include
+ vinstall ${wrksrc}/libunwind/include/unwind.h 644 usr/include
+ vinstall ${wrksrc}/libunwind/include/mach-o/compact_unwind_encoding.h \
+ 644 usr/include/mach-o
+}
+
+clang-analyzer_package() {
+ pycompile_dirs="usr/share/scan-view"
+ depends="clang-${version}_${revision} python3 perl"
+ short_desc+=" - A source code analysis framework"
+ homepage="https://clang-analyzer.llvm.org/"
+ pkg_install() {
+ vmove "usr/bin/scan-*"
+ vmove "usr/libexec/*analyzer"
+ vmove "usr/share/scan-*"
+ vmove usr/share/man/man1/scan-build.1
+ }
+}
+
+clang-tools-extra_package() {
+ lib32disabled=yes
+ depends="clang-${version}_${revision} python3"
+ short_desc+=" - Extra Clang tools"
+ homepage="https://clang.llvm.org/extra/"
+ pkg_install() {
+ vmove usr/bin/clang-apply-replacements
+ vmove usr/bin/clang-doc
+ vmove usr/bin/clang-include-fixer
+ vmove usr/bin/clang-query
+ vmove usr/bin/clang-rename
+ vmove usr/bin/clang-reorder-fields
+ vmove usr/bin/clang-tidy
+ vmove usr/bin/clangd
+ vmove usr/bin/diagtool
+ vmove usr/bin/find-all-symbols
+ vmove usr/bin/hmaptool
+ vmove usr/bin/modularize
+ vmove usr/bin/pp-trace
+ vmove usr/bin/sancov
+ vmove usr/include/clang-tidy
+ vmove "usr/lib/libclangApplyReplacements*"
+ vmove "usr/lib/libclangDoc*"
+ vmove "usr/lib/libclangIncludeFixer*"
+ vmove "usr/lib/libclangReorderFields*"
+ vmove "usr/lib/libclangQuery*"
+ vmove "usr/lib/libclangTidy*"
+ vmove "usr/share/clang/*include-fixer*"
+ vmove "usr/share/clang/*rename*"
+ vmove "usr/share/clang/*tidy*"
+ vmove usr/share/doc/LLVM/clang-tools
+ vmove usr/share/man/man1/diagtool.1
+ vmove usr/share/man/man1/extraclangtools.1
+ }
+}
+
+clang_package() {
+ lib32disabled=yes
+ depends="libstdc++-devel libgcc-devel binutils ${XBPS_TARGET_LIBC}-devel
+ libclang-${version}_${revision}"
+ short_desc+=" - C language family frontend"
+ homepage="https://clang.llvm.org/"
+ pkg_install() {
+ vmove "usr/bin/*clang*"
+ vmove usr/bin/c-index-test
+ vmove usr/include/clang
+ vmove usr/include/clang-c
+ vmove usr/lib/clang
+ vmove usr/lib/cmake/clang
+ vmove "usr/lib/libclang*.a"
+ vmove "usr/lib/libclang*.so"
+ vmove usr/share/clang
+ vmove usr/share/doc/LLVM/clang
+ vmove usr/share/man/man1/clang.1
+ }
+}
+
+libclang_package() {
+ short_desc+=" - C frontend runtime library"
+ pkg_install() {
+ vmove "usr/lib/libclang.so.*"
+ }
+}
+
+libclang-cpp_package() {
+ short_desc+=" - C frontend runtime library (C++ interface)"
+ pkg_install() {
+ vmove "usr/lib/libclang-cpp.so.*"
+ }
+}
+
+lld_package() {
+ lib32disabled=yes
+ short_desc+=" - linker"
+ homepage="https://lld.llvm.org"
+ pkg_install() {
+ vmove usr/bin/ld.lld*
+ vmove usr/bin/ld64.lld*
+ vmove usr/bin/lld*
+ vmove usr/bin/wasm-ld
+ vmove usr/share/doc/LLVM/lld
+ }
+}
+
+lld-devel_package() {
+ lib32disabled=yes
+ short_desc+=" - linker - development files"
+ homepage="https://lld.llvm.org"
+ depends="lld>=${version}_${revision}"
+ pkg_install() {
+ vmove usr/include/lld
+ vmove usr/lib/cmake/lld
+ vmove "usr/lib/liblld*a"
+ }
+}
+
+lldb_package() {
+ lib32disabled=yes
+ depends+=" python3-six"
+ short_desc+=" - LLDB debugger"
+ homepage="https://lldb.llvm.org/"
+ pkg_install() {
+ vmove usr/bin/*lldb*
+ vmove usr/lib/liblldb*so.*
+ vmove /usr/lib/python*
+ }
+}
+
+lldb-devel_package() {
+ lib32disabled=yes
+ depends="lldb>=${version}_${revision}"
+ short_desc+=" - LLDB debugger - development files"
+ pkg_install() {
+ vmove usr/include/lldb
+ vmove "usr/lib/liblldb*.so"
+ }
+}
+
+llvm-libunwind_package() {
+ short_desc+=" - libunwind"
+ pkg_install() {
+ vmove "usr/lib/${XBPS_TRIPLET}/libunwind.so.*"
+ }
+}
+
+llvm-libunwind-devel_package() {
+ short_desc+=" - libunwind - development files"
+ depends="llvm-libunwind>=${version}_${revision}"
+ conflicts="libunwind-devel>=0"
+ pkg_install() {
+ vmove usr/include/mach-o
+ vmove "usr/include/*unwind*"
+ vmove "usr/lib/${XBPS_TRIPLET}/libunwind.a"
+ vmove "usr/lib/${XBPS_TRIPLET}/libunwind.so"
+ vmove usr/share/doc/LLVM/libunwind
+ }
+}
+
+libcxxabi_package() {
+ short_desc+=" - low level support for libc++"
+ pkg_install() {
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++abi.so.*"
+ }
+}
+
+libcxxabi-devel_package() {
+ short_desc+=" - low level support for libc++ - development files"
+ depends="libcxxabi>=${version}_${revision}"
+ pkg_install() {
+ vmove "usr/include/*cxxabi*"
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++abi.so"
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++abi.a"
+ }
+}
+
+libcxx_package() {
+ short_desc+=" - C++ standard library"
+ pkg_install() {
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++.so.*"
+ }
+}
+
+libcxx-devel_package() {
+ short_desc+=" - C++ standard library - development files"
+ depends="libcxx>=${version}_${revision}"
+ pkg_install() {
+ vmove usr/include/c++
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++.so"
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++.a"
+ vmove "usr/lib/${XBPS_TRIPLET}/libc++experimental.a"
+ vmove usr/share/doc/LLVM/libcxx
+ }
+}
+
+libomp_package() {
+ short_desc+=" - Clang OpenMP support library"
+ pkg_install() {
+ vmove usr/lib/libarcher.so
+ vmove usr/lib/libompd.so
+ vmove "usr/lib/libomptarget.rtl.*.so"
+ vmove "usr/lib/libomp*.so.*"
+ }
+}
+
+libomp-devel_package() {
+ short_desc+=" - Clang OpenMP support library - development files"
+ depends="libomp>=${version}_${revision}"
+ pkg_install() {
+ vmove "usr/include/omp*.h"
+ vmove "usr/lib/clang/${version}/include/omp*.h"
+ vmove "usr/lib/libarcher*"
+ vmove "usr/lib/libomp*.so"
+ vmove usr/lib/cmake/openmp
+ vmove usr/share/doc/LLVM/openmp
+ vmove usr/share/man/man1/llvmopenmp.1
+ }
+}
+
+libllvm15_package() {
+ short_desc+=" - runtime library"
+ pkg_install() {
+ vmove "usr/lib/libLLVM-*.so*"
+ }
+}
diff --git a/srcpkgs/llvm15/update b/srcpkgs/llvm15/update
new file mode 100644
index 000000000000..e95cf26b3586
--- /dev/null
+++ b/srcpkgs/llvm15/update
@@ -0,0 +1,3 @@
+site="https://github.com/llvm/llvm-project/releases"
+pattern="llvmorg-\K(\d+.){2}\d+(-rc\d+)?"
+ignore="*-rc*"
From f1286fd92d7bba0f37e949aba7e3ed26dea10ade Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Sun, 18 Dec 2022 00:40:18 +0100
Subject: [PATCH 02/15] llvm: update to 15
---
common/shlibs | 6 +++---
srcpkgs/clang | 2 +-
srcpkgs/clang-analyzer | 2 +-
srcpkgs/clang-tools-extra | 2 +-
srcpkgs/libclang | 2 +-
srcpkgs/libclang-cpp | 2 +-
srcpkgs/libcxx | 2 +-
srcpkgs/libcxx-devel | 2 +-
srcpkgs/libcxxabi | 2 +-
srcpkgs/libcxxabi-devel | 2 +-
srcpkgs/libomp | 2 +-
srcpkgs/libomp-devel | 2 +-
srcpkgs/lld | 2 +-
srcpkgs/lld-devel | 2 +-
srcpkgs/lldb | 2 +-
srcpkgs/lldb-devel | 2 +-
srcpkgs/llvm-libunwind | 2 +-
srcpkgs/llvm-libunwind-devel | 2 +-
srcpkgs/llvm/template | 6 +++---
19 files changed, 23 insertions(+), 23 deletions(-)
diff --git a/common/shlibs b/common/shlibs
index 183accaeb0de..bdffeeccb7e5 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -987,9 +987,9 @@ 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.12 lldb-12.0.0_1
-libclang.so.12 libclang-12.0.0_1
-libclang-cpp.so.12 libclang-cpp-12.0.0_1
+liblldb.so.15 lldb-15.0.6_1
+libclang.so.15 libclang-15.0.6_1
+libclang-cpp.so.15 libclang-cpp-15.0.6_1
libLLVM-11.so libllvm11-11.0.0_1
libLLVM-12.so libllvm12-12.0.0_1
libLLVM-15.so libllvm15-15.0.6_1
diff --git a/srcpkgs/clang b/srcpkgs/clang
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/clang
+++ b/srcpkgs/clang
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/clang-analyzer b/srcpkgs/clang-analyzer
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/clang-analyzer
+++ b/srcpkgs/clang-analyzer
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/clang-tools-extra b/srcpkgs/clang-tools-extra
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/clang-tools-extra
+++ b/srcpkgs/clang-tools-extra
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libclang b/srcpkgs/libclang
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libclang
+++ b/srcpkgs/libclang
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libclang-cpp b/srcpkgs/libclang-cpp
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libclang-cpp
+++ b/srcpkgs/libclang-cpp
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxx b/srcpkgs/libcxx
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxx
+++ b/srcpkgs/libcxx
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxx-devel b/srcpkgs/libcxx-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxx-devel
+++ b/srcpkgs/libcxx-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxxabi b/srcpkgs/libcxxabi
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxxabi
+++ b/srcpkgs/libcxxabi
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxxabi-devel b/srcpkgs/libcxxabi-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxxabi-devel
+++ b/srcpkgs/libcxxabi-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libomp b/srcpkgs/libomp
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libomp
+++ b/srcpkgs/libomp
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libomp-devel b/srcpkgs/libomp-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libomp-devel
+++ b/srcpkgs/libomp-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lld b/srcpkgs/lld
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lld
+++ b/srcpkgs/lld
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lld-devel b/srcpkgs/lld-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lld-devel
+++ b/srcpkgs/lld-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lldb b/srcpkgs/lldb
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lldb
+++ b/srcpkgs/lldb
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lldb-devel b/srcpkgs/lldb-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lldb-devel
+++ b/srcpkgs/lldb-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm-libunwind b/srcpkgs/llvm-libunwind
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/llvm-libunwind
+++ b/srcpkgs/llvm-libunwind
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm-libunwind-devel b/srcpkgs/llvm-libunwind-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/llvm-libunwind-devel
+++ b/srcpkgs/llvm-libunwind-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm/template b/srcpkgs/llvm/template
index a92db6f94f9f..fc1c850bd26f 100644
--- a/srcpkgs/llvm/template
+++ b/srcpkgs/llvm/template
@@ -1,11 +1,11 @@
# Template file for 'llvm'
pkgname=llvm
-version=12.0.0
+version=15
revision=1
build_style=meta
-depends="llvm12"
-replaces="llvm11>=0 llvm10>=0 llvm9>=0 llvm8>=0 llvm7>=0 llvm6.0>=0 llvm3.9>=0"
+depends="llvm15"
short_desc="LLVM meta package"
maintainer="Enno Boland <gottox@voidlinux.org>"
license="Public Domain"
homepage="https://www.voidlinux.org"
+replaces="llvm12>=0 llvm11>=0 llvm10>=0 llvm9>=0 llvm8>=0 llvm7>=0 llvm6.0>=0 llvm3.9>=0"
From 9fe1587bf62e6db60a3fba476084c0c0031a9407 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Sun, 18 Dec 2022 12:20:08 +0100
Subject: [PATCH 03/15] llvm12: remove bumped subpackages
---
srcpkgs/llvm12/template | 264 +---------------------------------------
1 file changed, 1 insertion(+), 263 deletions(-)
diff --git a/srcpkgs/llvm12/template b/srcpkgs/llvm12/template
index f8ea3ba641ae..aea0b43cf573 100644
--- a/srcpkgs/llvm12/template
+++ b/srcpkgs/llvm12/template
@@ -50,55 +50,7 @@ case "$XBPS_TARGET_MACHINE" in
ppc*) configure_args+=" -DCLANG_ENABLE_CLANGD=OFF" ;;
esac
-_enabled_projects="clang;clang-tools-extra;compiler-rt;libcxx;libcxxabi;libunwind;lld"
-
-_lldb_enable=yes
-_libomp_enable=no
-
-case "$XBPS_TARGET_MACHINE" in
- ppc64le*) ;;
- ppc*|i686*) _lldb_enable=no ;;
-esac
-
-case "$XBPS_TARGET_MACHINE" in
- x86_64*|aarch64*|ppc64*) _libomp_enable=yes;;
-esac
-
-subpackages="clang-tools-extra"
-
-# must go before clang
-if [ "$_libomp_enable" = "yes" ]; then
- _enabled_projects+=";openmp"
- subpackages+=" libomp libomp-devel"
- # because of cmake nonsense referencing libomptarget.so.*
- depends+=" libomp>=${version}_${revision}"
-fi
-
-subpackages+=" clang clang-analyzer libclang libclang-cpp
- llvm-libunwind llvm-libunwind-devel libcxx libcxx-devel
- libcxxabi libcxxabi-devel libllvm12"
-
-if [ "$_lldb_enable" = "yes" ]; then
- # XXX fails to cross compile due to python
- _enabled_projects+=";lldb"
- subpackages+=" lldb lldb-devel"
-fi
-
-subpackages+=" lld lld-devel"
-
-configure_args+=" -DLLVM_ENABLE_PROJECTS=${_enabled_projects}"
-
post_patch() {
- if [ "$_lldb_enable" = "yes" ]; then
- if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
- vsed -i 's|__ptrace_request|int|g' \
- ${wrksrc}/lldb/source/Plugins/Process/Linux/NativeProcessLinux.cpp
- fi
- # disable docs for lldb as they fail to generate
- vsed -i '/add_subdirectory(docs)/d' \
- ${wrksrc}/lldb/CMakeLists.txt
- fi
-
# update config.guess for better platform detection
cp $XBPS_COMMONDIR/environment/configure/automake/config.guess \
${wrksrc}/llvm/cmake
@@ -154,14 +106,12 @@ pre_configure() {
cd build/HOST
CC="$BUILD_CC" CXX="$BUILD_CXX" CFLAGS="$BUILD_CFLAGS" \
CXXFLAGS="$BUILD_CXXFLAGS" LDFLAGS="$BUILD_LDFLAGS" \
- cmake ../.. -DCMAKE_BUILD_TYPE=Release \
- -DLLVM_ENABLE_PROJECTS=${_enabled_projects}
+ cmake ../.. -DCMAKE_BUILD_TYPE=Release
make ${makejobs} -C utils/TableGen
make ${makejobs} -C tools/clang/utils/TableGen
[ "$_lldb_enable" = "yes" ] && make ${makejobs} -C tools/lldb/utils/TableGen
configure_args+=" -DLLVM_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/llvm-tblgen"
configure_args+=" -DCLANG_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/clang-tblgen"
- [ "$_lldb_enable" = "yes" ] && configure_args+=" -DLLDB_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/lldb-tblgen"
cd ../..
fi
@@ -201,218 +151,6 @@ do_install() {
if [ "$CROSS_BUILD" ]; then
rm -f ${DESTDIR}/usr/bin/llvm-config-host
fi
-
- # Install libcxxabi headers
- vinstall ${wrksrc}/libcxxabi/include/__cxxabi_config.h 644 usr/include
- vinstall ${wrksrc}/libcxxabi/include/cxxabi.h 644 usr/include
-
- # Install libunwind headers
- vinstall ${wrksrc}/libunwind/include/__libunwind_config.h 644 usr/include
- vinstall ${wrksrc}/libunwind/include/libunwind.h 644 usr/include
- vinstall ${wrksrc}/libunwind/include/unwind.h 644 usr/include
- vinstall ${wrksrc}/libunwind/include/mach-o/compact_unwind_encoding.h \
- 644 usr/include/mach-o
-}
-
-clang-analyzer_package() {
- pycompile_dirs="usr/share/scan-view"
- depends="clang-${version}_${revision} python3 perl"
- short_desc+=" - A source code analysis framework"
- homepage="https://clang-analyzer.llvm.org/"
- pkg_install() {
- vmove usr/share/man/man1/scan-build.1
- vmove "/usr/bin/scan-*"
- vmove "/usr/share/scan-*"
- vmove "/usr/libexec/*analyzer"
- }
-}
-
-clang-tools-extra_package() {
- lib32disabled=yes
- depends="clang-${version}_${revision} python3"
- short_desc+=" - Extra Clang tools"
- homepage="https://clang.llvm.org/extra/"
- pkg_install() {
- vmove usr/include/clang-tidy
- vmove usr/bin/clang-apply-replacements
- vmove usr/bin/clang-query
- vmove usr/bin/clang-rename
- vmove usr/bin/clang-tidy
- vmove usr/bin/diagtool
- vmove usr/bin/find-all-symbols
- vmove usr/bin/hmaptool
- vmove usr/bin/modularize
- vmove usr/bin/pp-trace
- vmove usr/bin/sancov
- vmove "usr/lib/libclangApplyReplacements*"
- vmove "usr/lib/libclangQuery*"
- vmove "usr/lib/libclangTidy*"
- vmove "usr/share/clang/*tidy*"
- vmove usr/share/doc/clang-tools
- vmove usr/share/man/man1/extraclangtools.1
- vmove usr/share/man/man1/diagtool.1
- }
-}
-
-clang_package() {
- lib32disabled=yes
- depends="libstdc++-devel libgcc-devel binutils ${XBPS_TARGET_LIBC}-devel
- libclang-${version}_${revision}"
- short_desc+=" - C language family frontend"
- homepage="https://clang.llvm.org/"
- pkg_install() {
- vmove usr/include/clang
- vmove usr/include/clang-c
- vmove "usr/bin/*clang*"
- vmove usr/bin/c-index-test
- vmove usr/lib/clang
- vmove usr/lib/cmake/clang
- vmove "usr/lib/libclang*.a"
- vmove "usr/lib/libclang*.so"
- vmove usr/share/clang
- vmove usr/share/doc/clang
- vmove usr/share/man/man1/clang.1
- }
-}
-
-libclang_package() {
- short_desc+=" - C frontend runtime library"
- pkg_install() {
- vmove "usr/lib/libclang.so.*"
- }
-}
-
-libclang-cpp_package() {
- short_desc+=" - C frontend runtime library (C++ interface)"
- pkg_install() {
- vmove "usr/lib/libclang-cpp.so.*"
- }
-}
-
-lld_package() {
- lib32disabled=yes
- short_desc+=" - linker"
- homepage="https://lld.llvm.org"
- pkg_install() {
- vmove usr/bin/lld*
- vmove usr/bin/wasm-ld
- vmove usr/bin/ld.lld*
- vmove usr/bin/ld64.lld*
- vmove usr/share/doc/lld
- }
-}
-
-lld-devel_package() {
- lib32disabled=yes
- short_desc+=" - linker - development files"
- homepage="https://lld.llvm.org"
- depends="lld>=${version}_${revision}"
- pkg_install() {
- vmove usr/include/lld
- vmove usr/lib/cmake/lld
- vmove "usr/lib/liblld*a"
- }
-}
-
-lldb_package() {
- lib32disabled=yes
- depends+=" python3-six"
- short_desc+=" - LLDB debugger"
- homepage="https://lldb.llvm.org/"
- pkg_install() {
- vmove usr/bin/*lldb*
- vmove usr/lib/liblldb*so.*
- vmove /usr/lib/python*
- }
-}
-
-lldb-devel_package() {
- lib32disabled=yes
- depends="lldb>=${version}_${revision}"
- short_desc+=" - LLDB debugger - development files"
- pkg_install() {
- vmove usr/include/lldb
- vmove "usr/lib/liblldb*.so"
- }
-}
-
-llvm-libunwind_package() {
- short_desc+=" - libunwind"
- pkg_install() {
- vmove "usr/lib/libunwind.so.*"
- }
-}
-
-llvm-libunwind-devel_package() {
- short_desc+=" - libunwind - development files"
- depends="llvm-libunwind>=${version}_${revision}"
- conflicts="libunwind-devel>=0"
- pkg_install() {
- vmove usr/lib/libunwind.so
- vmove usr/lib/libunwind.a
- vmove "usr/include/*unwind*"
- vmove usr/include/mach-o
- vmove usr/share/doc/libunwind
- }
-}
-
-libcxxabi_package() {
- short_desc+=" - low level support for libc++"
- pkg_install() {
- vmove "usr/lib/libc++abi.so.*"
- }
-}
-
-libcxxabi-devel_package() {
- short_desc+=" - low level support for libc++ - development files"
- depends="libcxxabi>=${version}_${revision}"
- pkg_install() {
- vmove usr/lib/libc++abi.so
- vmove usr/lib/libc++abi.a
- vmove "usr/include/*cxxabi*"
- }
-}
-
-libcxx_package() {
- short_desc+=" - C++ standard library"
- pkg_install() {
- vmove "usr/lib/libc++.so.*"
- }
-}
-
-libcxx-devel_package() {
- short_desc+=" - C++ standard library - development files"
- depends="libcxx>=${version}_${revision}"
- pkg_install() {
- vmove usr/lib/libc++.so
- vmove usr/lib/libc++.a
- vmove usr/lib/libc++experimental.a
- vmove usr/include/c++
- vmove usr/share/doc/libcxx
- }
-}
-
-libomp_package() {
- short_desc+=" - Clang OpenMP support library"
- pkg_install() {
- vmove usr/lib/libomp.so
- vmove "usr/lib/libomptarget.rtl.*.so"
- vmove usr/lib/libarcher.so
- vmove "usr/lib/libomp*.so.*"
- }
-}
-
-libomp-devel_package() {
- short_desc+=" - Clang OpenMP support library - development files"
- depends="libomp>=${version}_${revision}"
- pkg_install() {
- vmove "usr/lib/libomp*.so"
- vmove "usr/lib/libarcher*"
- vmove "usr/include/omp*.h"
- vmove "usr/lib/clang/${version}/include/omp*.h"
- vmove usr/share/man/man1/llvmopenmp.1
- vmove usr/share/doc/openmp
- }
}
libllvm12_package() {
From f818cd4aba5f9a15b5771970a4616b04bb618e8c Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:27:03 +0100
Subject: [PATCH 04/15] mesa: rebuild for llvm15
---
srcpkgs/mesa/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/mesa/template b/srcpkgs/mesa/template
index 4c3c9ec6039e..0641b28a80d6 100644
--- a/srcpkgs/mesa/template
+++ b/srcpkgs/mesa/template
@@ -1,7 +1,7 @@
# Template file for 'mesa'
pkgname=mesa
version=22.2.4
-revision=2
+revision=3
build_style=meson
configure_args="-Dglvnd=true -Dshared-glapi=enabled -Dgbm=enabled -Degl=enabled
-Dosmesa=true -Dgles1=enabled -Dgles2=enabled -Dglx=dri -Ddri3=enabled
From f7822739638617e4f8f083b9210dd235c6c9a4b3 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:34:04 +0100
Subject: [PATCH 05/15] bcc: rebuild for llvm15
---
srcpkgs/bcc/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/bcc/template b/srcpkgs/bcc/template
index 168a67389bba..219ab9b50219 100644
--- a/srcpkgs/bcc/template
+++ b/srcpkgs/bcc/template
@@ -1,7 +1,7 @@
# Template file for 'bcc'
pkgname=bcc
version=0.25.0
-revision=2
+revision=3
build_style=cmake
configure_args="-DREVISION=${version} -DENABLE_LLVM_SHARED=1"
hostmakedepends="flex python3"
From 481a44ee8c0b45edc421b03c04180a1aebba2707 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:37:25 +0100
Subject: [PATCH 06/15] bpftrace: rebuild for llvm15
---
srcpkgs/bpftrace/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/bpftrace/template b/srcpkgs/bpftrace/template
index 857815d29eef..47f2b5e77024 100644
--- a/srcpkgs/bpftrace/template
+++ b/srcpkgs/bpftrace/template
@@ -1,7 +1,7 @@
# Template file for 'bpftrace'
pkgname=bpftrace
version=0.16.0
-revision=1
+revision=2
archs="x86_64* aarch64* ppc64*"
build_style=cmake
configure_args="-DBUILD_TESTING=OFF" # needs root to run
From 06424f978e20ecf819e6f04086cb4436335a4b87 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:43:53 +0100
Subject: [PATCH 07/15] CastXML: rebuild for llvm15
---
srcpkgs/CastXML/template | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/srcpkgs/CastXML/template b/srcpkgs/CastXML/template
index 5d7d9503658c..28c424c78073 100644
--- a/srcpkgs/CastXML/template
+++ b/srcpkgs/CastXML/template
@@ -1,7 +1,7 @@
# Template file for 'CastXML'
pkgname=CastXML
version=0.4.6
-revision=1
+revision=2
build_style=cmake
configure_args="-DSPHINX_MAN=YES -DCastXML_INSTALL_MAN_DIR=share/man"
hostmakedepends="clang python3-Sphinx"
@@ -12,8 +12,8 @@ short_desc="C-family abstract syntax tree XML output tool"
maintainer="Evgeny Ermakov <evgeny.v.ermakov@gmail.com>"
license="Apache-2.0"
homepage="https://github.com/CastXML/CastXML"
-distfiles="https://github.com/CastXML/CastXML/archive/v${version}.tar.gz"
-checksum=8dcdbc1f23a130e4bdb0b09f57c30761a02a346b4db4037555048af2a293d66a
+distfiles="https://github.com/CastXML/CastXML/archive/refs/tags/v${version}.tar.gz"
+checksum=bb9024ec9ea5082e0d527f19bf3c2df79f1699f54b6cec168c024e727b32e6d1
post_install() {
rm -r ${DESTDIR}/usr/share/castxml/clang/include
From b0b13f5eb3fad154bb113b68ff94464718628d37 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:48:55 +0100
Subject: [PATCH 08/15] ccls: rebuild for llvm15
---
srcpkgs/ccls/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/ccls/template b/srcpkgs/ccls/template
index 82fa61933878..ecc9f3e38a5d 100644
--- a/srcpkgs/ccls/template
+++ b/srcpkgs/ccls/template
@@ -1,7 +1,7 @@
# Template file for 'ccls'
pkgname=ccls
version=0.20220729
-revision=1
+revision=2
build_style=cmake
hostmakedepends="clang-tools-extra"
makedepends="clang-tools-extra libxml2-devel llvm ncurses-devel rapidjson zlib-devel"
From 3fc8129ad95fdf1bd61231161ee7d28a45297da0 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:52:14 +0100
Subject: [PATCH 09/15] include-what-you-use: update to 0.19
---
srcpkgs/include-what-you-use/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/include-what-you-use/template b/srcpkgs/include-what-you-use/template
index d3655709c20c..1a30bc04bb2d 100644
--- a/srcpkgs/include-what-you-use/template
+++ b/srcpkgs/include-what-you-use/template
@@ -1,6 +1,6 @@
# Template file for 'include-what-you-use'
pkgname=include-what-you-use
-version=0.16
+version=0.19
revision=1
build_style=cmake
configure_args="-DIWYU_LLVM_ROOT_PATH=${XBPS_CROSS_BASE}/usr "
@@ -11,7 +11,7 @@ maintainer="Leah Neukirchen <leah@vuxu.org>"
license="NCSA"
homepage="https://include-what-you-use.org/"
distfiles="https://include-what-you-use.org/downloads/${pkgname}-${version}.src.tar.gz"
-checksum=8d6fc9b255343bc1e5ec459e39512df1d51c60e03562985e0076036119ff5a1c
+checksum=2b10157b60ea08adc08e3896b4921c73fcadd5ec4eb652b29a34129d501e5ee0
python_version=3
post_install() {
From cd20f2aba0278bddd9838916739fe2ca93d2b53d Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 15:11:06 +0100
Subject: [PATCH 10/15] SPIRV-LLVM-Translator: update to 15.0.0
---
srcpkgs/SPIRV-LLVM-Translator/template | 13 +++++++------
1 file changed, 7 insertions(+), 6 deletions(-)
diff --git a/srcpkgs/SPIRV-LLVM-Translator/template b/srcpkgs/SPIRV-LLVM-Translator/template
index a2754e58c0e8..bee99f9bcbb2 100644
--- a/srcpkgs/SPIRV-LLVM-Translator/template
+++ b/srcpkgs/SPIRV-LLVM-Translator/template
@@ -1,19 +1,20 @@
# Template file for 'SPIRV-LLVM-Translator'
pkgname=SPIRV-LLVM-Translator
-version=12.0.0
-revision=2
+version=15.0.0
+revision=1
build_style=cmake
make_build_args="llvm-spirv"
configure_args="-Wno-dev -DLLVM_LINK_LLVM_DYLIB=ON -DCMAKE_SKIP_RPATH=ON
- -DLLVM_SPIRV_INCLUDE_TESTS=OFF -DBUILD_SHARED_LIBS=ON"
+ -DLLVM_SPIRV_INCLUDE_TESTS=OFF -DBUILD_SHARED_LIBS=ON
+ -DLLVM_EXTERNAL_SPIRV_HEADERS_SOURCE_DIR=/usr"
hostmakedepends="clang llvm"
-makedepends="clang-tools-extra llvm"
+makedepends="clang-tools-extra llvm SPIRV-Headers"
short_desc="API and commands for processing SPIR-V modules"
maintainer="Orphaned <orphan@voidlinux.org>"
license="NCSA"
homepage="https://github.com/KhronosGroup/SPIRV-LLVM-Translator"
-distfiles="https://github.com/KhronosGroup/${pkgname}/archive/refs/tags/v${version}.tar.gz"
-checksum=6e4fad04203f25fcde4c308c53e9f59bd05a390978992db3212d4b63aff62108
+distfiles="https://github.com/KhronosGroup/SPIRV-LLVM-Translator/archive/refs/tags/v${version}.tar.gz"
+checksum=b1bebd77f72988758c00852e78c2ddc545815a612169a0cb377d021e2f846d88
post_install() {
vlicense LICENSE.TXT
From 885e7b46ea5f7a8d64e5312679be9289f2ab142b Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Fri, 6 Jan 2023 17:11:04 +0100
Subject: [PATCH 11/15] rtags: rebuild for llvm15
---
srcpkgs/rtags/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/rtags/template b/srcpkgs/rtags/template
index b496a1b0e721..9b161e690d76 100644
--- a/srcpkgs/rtags/template
+++ b/srcpkgs/rtags/template
@@ -1,7 +1,7 @@
# Template file for 'rtags'
pkgname=rtags
version=2.38
-revision=5
+revision=6
build_style=cmake
# Don't run tests in do_install, please.
configure_args="-DSKIP_CTEST=TRUE"
From 63cae3d4b8504ac5092e421f5d08e5052dbf2621 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Fri, 6 Jan 2023 17:14:14 +0100
Subject: [PATCH 12/15] juCi++: rebuild for llvm15
---
srcpkgs/juCi++/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/juCi++/template b/srcpkgs/juCi++/template
index c1969237f11d..416bde7cc4d0 100644
--- a/srcpkgs/juCi++/template
+++ b/srcpkgs/juCi++/template
@@ -1,7 +1,7 @@
# Template file for 'juCi++'
pkgname=juCi++
version=1.7.2
-revision=2
+revision=3
_libclangmm_commit="9704b9b6de0982a588fa41741157d5640afedf30"
_tiny_commit="839ff806dc447ff49af80f9a9eaa7949f770f8e5"
create_wrksrc=yes
From 9ce79731829d089209296764cd7bc6d231b78e2e Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Sat, 7 Jan 2023 11:31:14 +0100
Subject: [PATCH 13/15] qt5: rebuild for llvm15
---
srcpkgs/qt5/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/qt5/template b/srcpkgs/qt5/template
index 233596587525..bc9170215483 100644
--- a/srcpkgs/qt5/template
+++ b/srcpkgs/qt5/template
@@ -3,7 +3,7 @@ pkgname=qt5
version=5.15.7+20221119
# commit f8c9fb304bc3e53b3aa07f962cd74e9160decccc
# base repo: https://invent.kde.org/qt/qt/qt5
-revision=1
+revision=2
build_style=meta
hostmakedepends="cmake clang flex perl glib-devel pkg-config
python re2c ruby which"
From 5e53a1e7a2333e5775c57f95d5e444174ce9c5d6 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Mon, 9 Jan 2023 01:22:18 +0100
Subject: [PATCH 14/15] codelite: rebuild for llvm15
---
srcpkgs/codelite/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/codelite/template b/srcpkgs/codelite/template
index 6b8b007c8a43..c6115e0274ce 100644
--- a/srcpkgs/codelite/template
+++ b/srcpkgs/codelite/template
@@ -1,7 +1,7 @@
# Template file for 'codelite'
pkgname=codelite
version=16.0.0
-revision=2
+revision=3
create_wrksrc=yes
build_style=cmake
build_helper=cmake-wxWidgets-gtk3
From 3ca52dc9a045612a4cafb7d0571c0eec2fc902bc Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Mon, 9 Jan 2023 01:58:21 +0100
Subject: [PATCH 15/15] kdevelop: rebuild for llvm15
---
srcpkgs/kdevelop/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/kdevelop/template b/srcpkgs/kdevelop/template
index 5eb275583138..c32ee5240a44 100644
--- a/srcpkgs/kdevelop/template
+++ b/srcpkgs/kdevelop/template
@@ -1,7 +1,7 @@
# Template file for 'kdevelop'
pkgname=kdevelop
version=22.12.1
-revision=1
+revision=2
build_style=cmake
configure_args="-DBUILD_TESTING=OFF"
hostmakedepends="extra-cmake-modules qt5-qmake qt5-host-tools qt5-tools
^ permalink raw reply [flat|nested] 96+ messages in thread
* Re: [WIP] LLVM 15
2022-11-28 15:30 [PR PATCH] [WIP] LLVM 15 tranzystorek-io
` (46 preceding siblings ...)
2023-01-12 18:46 ` [PR PATCH] [Updated] " tranzystorek-io
@ 2023-01-14 22:16 ` Johnnynator
2023-01-15 1:46 ` [PR PATCH] [Updated] " tranzystorek-io
` (46 subsequent siblings)
94 siblings, 0 replies; 96+ messages in thread
From: Johnnynator @ 2023-01-14 22:16 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 6008 bytes --]
New comment by Johnnynator on void-packages repository
https://github.com/void-linux/void-packages/pull/40821#issuecomment-1382939956
Comment:
I did some fixes for cross, also I don't think we need the per target runtime dirs, and if we did use them you should probably use a wildcard in vinstall
```diff
diff --git a/srcpkgs/llvm15/template b/srcpkgs/llvm15/template
index db510bbd24..6249ec307c 100644
--- a/srcpkgs/llvm15/template
+++ b/srcpkgs/llvm15/template
@@ -4,6 +4,7 @@ version=15.0.6
revision=1
build_wrksrc=llvm
build_style=cmake
+_ext_suffix=".cpython-${py3_ver/./}-linux-${XBPS_TARGET_LIBC/glibc/gnu}.so"
configure_args="
-DCMAKE_BUILD_TYPE=Release -Wno-dev
-DENABLE_LINKER_BUILD_ID=YES
@@ -23,11 +24,15 @@ configure_args="
-DLLVM_LINK_LLVM_DYLIB=YES
-DLLVM_ENABLE_RTTI=YES
-DLLVM_ENABLE_FFI=YES
- -DLLVM_BINUTILS_INCDIR=/usr/include"
+ -DLLVM_BINUTILS_INCDIR=/usr/include
+ -DLLVM_ENABLE_PER_TARGET_RUNTIME_DIR=NO
+ -DLLDB_PYTHON_RELATIVE_PATH=lib/python${py3_ver}/site-packages
+ -DLLDB_PYTHON_EXE_RELATIVE_PATH=bin/python${py3_ver}
+ -DLLDB_PYTHON_EXT_SUFFIX=$_ext_suffix"
hostmakedepends="perl python3 zlib-devel libffi-devel swig python3-Sphinx
python3-recommonmark python3-sphinx-automodapi"
makedepends="python3-devel zlib-devel elfutils-devel libffi-devel libedit-devel
libxml2-devel binutils-devel libatomic-devel"
depends="libllvm15>=${version}_${revision}"
short_desc="Low Level Virtual Machine"
maintainer="Orphaned <orphan@voidlinux.org>"
@@ -56,7 +61,7 @@ _libomp_enable=no
case "$XBPS_TARGET_MACHINE" in
ppc64le*) ;;
- ppc*|i686*) _lldb_enable=no ;;
+ ppc*|i686*|riscv64*) _lldb_enable=no ;;
esac
case "$XBPS_TARGET_MACHINE" in
@@ -153,9 +158,14 @@ pre_configure() {
-DLLVM_ENABLE_PROJECTS=${_enabled_projects}
make ${makejobs} -C utils/TableGen
make ${makejobs} -C tools/clang/utils/TableGen
+ make ${makejobs} -C tools/clang/tools/extra/clang-tidy/misc/ConfusableTable
+ make ${makejobs} -C tools/clang/tools/extra/pseudo/gen
[ "$_lldb_enable" = "yes" ] && make ${makejobs} -C tools/lldb/utils/TableGen
configure_args+=" -DLLVM_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/llvm-tblgen"
configure_args+=" -DCLANG_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/clang-tblgen"
+ configure_args+=" -DCLANG_TIDY_CONFUSABLE_CHARS_GEN=${wrksrc}/llvm/build/HOST/bin/clang-tidy-confusable-chars-gen"
+ configure_args+=" -DCLANG_PSEUDO_GEN=${wrksrc}/llvm/build/HOST/bin/clang-pseudo-gen"
+ [ "$_lldb_enable" = "yes" ] && configure_args+=" -DLLDB_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/lldb-tblgen"
[ "$_lldb_enable" = "yes" ] && configure_args+=" -DLLDB_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/lldb-tblgen"
cd ../..
fi
@@ -298,9 +308,9 @@ lld_package() {
short_desc+=" - linker"
homepage="https://lld.llvm.org"
pkg_install() {
- vmove usr/bin/ld.lld*
- vmove usr/bin/ld64.lld*
- vmove usr/bin/lld*
+ vmove "usr/bin/ld.lld*"
+ vmove "usr/bin/ld64.lld*"
+ vmove "usr/bin/lld*"
vmove usr/bin/wasm-ld
vmove usr/share/doc/LLVM/lld
}
@@ -324,9 +334,9 @@ lldb_package() {
short_desc+=" - LLDB debugger"
homepage="https://lldb.llvm.org/"
pkg_install() {
- vmove usr/bin/*lldb*
- vmove usr/lib/liblldb*so.*
- vmove /usr/lib/python*
+ vmove "usr/bin/*lldb*"
+ vmove "usr/lib/liblldb*so.*"
+ vmove usr/lib/python*
}
}
@@ -343,7 +353,7 @@ lldb-devel_package() {
llvm-libunwind_package() {
short_desc+=" - libunwind"
pkg_install() {
- vmove "usr/lib/${XBPS_TRIPLET}/libunwind.so.*"
+ vmove "usr/lib/libunwind.so.*"
}
}
@@ -354,8 +364,8 @@ llvm-libunwind-devel_package() {
pkg_install() {
vmove usr/include/mach-o
vmove "usr/include/*unwind*"
- vmove "usr/lib/${XBPS_TRIPLET}/libunwind.a"
- vmove "usr/lib/${XBPS_TRIPLET}/libunwind.so"
+ vmove "usr/lib/libunwind.a"
+ vmove "usr/lib/libunwind.so"
vmove usr/share/doc/LLVM/libunwind
}
}
@@ -363,7 +373,7 @@ llvm-libunwind-devel_package() {
libcxxabi_package() {
short_desc+=" - low level support for libc++"
pkg_install() {
- vmove "usr/lib/${XBPS_TRIPLET}/libc++abi.so.*"
+ vmove "usr/lib/libc++abi.so.*"
}
}
@@ -372,15 +382,15 @@ libcxxabi-devel_package() {
depends="libcxxabi>=${version}_${revision}"
pkg_install() {
vmove "usr/include/*cxxabi*"
- vmove "usr/lib/${XBPS_TRIPLET}/libc++abi.so"
- vmove "usr/lib/${XBPS_TRIPLET}/libc++abi.a"
+ vmove "usr/lib/libc++abi.so"
+ vmove "usr/lib/libc++abi.a"
}
}
libcxx_package() {
short_desc+=" - C++ standard library"
pkg_install() {
- vmove "usr/lib/${XBPS_TRIPLET}/libc++.so.*"
+ vmove "usr/lib/libc++.so.*"
}
}
@@ -389,9 +399,9 @@ libcxx-devel_package() {
depends="libcxx>=${version}_${revision}"
pkg_install() {
vmove usr/include/c++
- vmove "usr/lib/${XBPS_TRIPLET}/libc++.so"
- vmove "usr/lib/${XBPS_TRIPLET}/libc++.a"
- vmove "usr/lib/${XBPS_TRIPLET}/libc++experimental.a"
+ vmove "usr/lib/libc++.so"
+ vmove "usr/lib/libc++.a"
+ vmove "usr/lib/libc++experimental.a"
vmove usr/share/doc/LLVM/libcxx
}
}
```
^ permalink raw reply [flat|nested] 96+ messages in thread
* Re: [PR PATCH] [Updated] [WIP] LLVM 15
2022-11-28 15:30 [PR PATCH] [WIP] LLVM 15 tranzystorek-io
` (47 preceding siblings ...)
2023-01-14 22:16 ` Johnnynator
@ 2023-01-15 1:46 ` tranzystorek-io
2023-01-16 13:45 ` tranzystorek-io
` (45 subsequent siblings)
94 siblings, 0 replies; 96+ messages in thread
From: tranzystorek-io @ 2023-01-15 1:46 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 1142 bytes --]
There is an updated pull request by tranzystorek-io against master on the void-packages repository
https://github.com/tranzystorek-io/void-packages llvm15
https://github.com/void-linux/void-packages/pull/40821
[WIP] LLVM 15
[ci skip]
TODO:
- [ ] Adjust patches marked as `.patch.skip`
- [x] Make libomp a shlib (change so file name and install a symlink)
- [ ] Avoid creating triplet dirs under /usr/
TODO LLVM rdeps:
- [ ] clazy (breaking changes in clang API)
- [x] beignet (https://github.com/void-linux/void-packages/pull/41529)
- [ ] ispc (1.18.1 supports LLVM `<= 14`)
- [ ] ldc (1.30.0 supports LLVM `<= 14`)
- [ ] ghdl (2.0.0 supports LLVM `<=14`)
- [x] qt
- [ ] qtcreator (breaking changes in clang-format API)
- [ ] shiboken2 (tests failing with llvm15)
- [x] bpftrace (https://github.com/void-linux/void-packages/pull/39002)
- [ ] libclc (tests fail with unresolved calls https://gist.githubusercontent.com/tranzystorek-io/a2aa8a0d8010af5299f7d1ff9f82c22b/raw/6d316d99d6079990b73ae77d274dd120b9560589/LastTest.log)
A patch file from https://github.com/void-linux/void-packages/pull/40821.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-llvm15-40821.patch --]
[-- Type: text/x-diff, Size: 77192 bytes --]
From 69f13dec827455a5424e9b90f442346314d4609b Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Sun, 18 Dec 2022 00:36:59 +0100
Subject: [PATCH 01/15] New package: llvm15-15.0.7
---
common/shlibs | 3 +
srcpkgs/libllvm15 | 1 +
.../llvm15/files/llvm-Config-llvm-config.h | 9 +
...clang-001-fix-unwind-chain-inclusion.patch | 44 ++
.../patches/clang-002-add-musl-triples.patch | 110 +++++
.../clang-003-ppc64-dynamic-linker-path.patch | 13 +
.../patches/clang-004-ppc64-musl-elfv2.patch | 48 ++
.../compiler-rt-sanitizer-ppc64-musl.patch | 35 ++
.../compiler-rt-xray-ppc64-musl.patch.skip | 62 +++
srcpkgs/llvm15/patches/libcxx-musl.patch | 26 ++
srcpkgs/llvm15/patches/libcxx-ppc.patch | 22 +
.../llvm15/patches/libcxx-ssp-nonshared.patch | 11 +
srcpkgs/llvm15/patches/libcxxabi-dl.patch | 25 +
srcpkgs/llvm15/patches/libcxxabi-musl.patch | 37 ++
srcpkgs/llvm15/patches/libomp-soname.patch | 12 +
.../llvm15/patches/libunwind-ppc32.patch.skip | 63 +++
srcpkgs/llvm15/patches/lldb-musl.patch | 40 ++
srcpkgs/llvm15/patches/llvm-001-musl.patch | 57 +++
.../patches/llvm-002-musl-ppc64-elfv2.patch | 30 ++
.../patches/llvm-003-ppc-secureplt.patch | 11 +
.../patches/llvm-004-override-opt.patch | 18 +
.../llvm15/patches/llvm-005-ppc-bigpic.patch | 36 ++
.../patches/llvm-006-aarch64-mf_exec.patch | 25 +
srcpkgs/llvm15/template | 437 ++++++++++++++++++
srcpkgs/llvm15/update | 3 +
25 files changed, 1178 insertions(+)
create mode 120000 srcpkgs/libllvm15
create mode 100644 srcpkgs/llvm15/files/llvm-Config-llvm-config.h
create mode 100644 srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch
create mode 100644 srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch
create mode 100644 srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch
create mode 100644 srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch
create mode 100644 srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch
create mode 100644 srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip
create mode 100644 srcpkgs/llvm15/patches/libcxx-musl.patch
create mode 100644 srcpkgs/llvm15/patches/libcxx-ppc.patch
create mode 100644 srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch
create mode 100644 srcpkgs/llvm15/patches/libcxxabi-dl.patch
create mode 100644 srcpkgs/llvm15/patches/libcxxabi-musl.patch
create mode 100644 srcpkgs/llvm15/patches/libomp-soname.patch
create mode 100644 srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip
create mode 100644 srcpkgs/llvm15/patches/lldb-musl.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-001-musl.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-004-override-opt.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch
create mode 100644 srcpkgs/llvm15/template
create mode 100644 srcpkgs/llvm15/update
diff --git a/common/shlibs b/common/shlibs
index 0a803960ab55..01818dec25db 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -992,6 +992,9 @@ libclang.so.12 libclang-12.0.0_1
libclang-cpp.so.12 libclang-cpp-12.0.0_1
libLLVM-11.so libllvm11-11.0.0_1
libLLVM-12.so libllvm12-12.0.0_1
+libLLVM-15.so libllvm15-15.0.7_1
+libomp.so.5 libomp-15.0.7_1
+libomptarget.so.15 libomp-15.0.7_1
libisofs.so.6 libisofs-0.6.24_1
libmpack.so.0 libmpack-1.0.5_1
libGeoIP.so.1 libgeoip-1.4.8_1
diff --git a/srcpkgs/libllvm15 b/srcpkgs/libllvm15
new file mode 120000
index 000000000000..ad57a969b9f9
--- /dev/null
+++ b/srcpkgs/libllvm15
@@ -0,0 +1 @@
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm15/files/llvm-Config-llvm-config.h b/srcpkgs/llvm15/files/llvm-Config-llvm-config.h
new file mode 100644
index 000000000000..2fa08c9be696
--- /dev/null
+++ b/srcpkgs/llvm15/files/llvm-Config-llvm-config.h
@@ -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
diff --git a/srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch b/srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch
new file mode 100644
index 000000000000..e4eaa7783e7a
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch
@@ -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
diff --git a/srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch b/srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch
new file mode 100644
index 000000000000..25688d40dbc2
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch
@@ -0,0 +1,110 @@
+--- a/clang/lib/Driver/ToolChains/Gnu.cpp
++++ b/clang/lib/Driver/ToolChains/Gnu.cpp
+@@ -2086,7 +2086,8 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
+ static const char *const ARMHFTriples[] = {"arm-linux-gnueabihf",
+ "armv7hl-redhat-linux-gnueabi",
+ "armv6hl-suse-linux-gnueabi",
+- "armv7hl-suse-linux-gnueabi"};
++ "armv7hl-suse-linux-gnueabi",
++ "armv7l-linux-gnueabihf"};
+ static const char *const ARMebLibDirs[] = {"/lib"};
+ static const char *const ARMebTriples[] = {"armeb-linux-gnueabi",
+ "armeb-linux-androideabi"};
+@@ -2153,8 +2154,7 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
+ "powerpc64-suse-linux", "powerpc-montavista-linuxspe"};
+ static const char *const PPCLELibDirs[] = {"/lib32", "/lib"};
+ static const char *const PPCLETriples[] = {"powerpcle-linux-gnu",
+- "powerpcle-unknown-linux-gnu",
+- "powerpcle-linux-musl"};
++ "powerpcle-unknown-linux-gnu"};
+
+ static const char *const PPC64LibDirs[] = {"/lib64", "/lib"};
+ static const char *const PPC64Triples[] = {
+@@ -2235,6 +2235,87 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
+ return;
+ }
+
++ if (TargetTriple.isMusl()) {
++ static const char *const AArch64MuslTriples[] = {"aarch64-linux-musl"};
++ static const char *const ARMHFMuslTriples[] = {
++ "arm-linux-musleabihf", "armv7l-linux-musleabihf"
++ };
++ static const char *const ARMMuslTriples[] = {"arm-linux-musleabi"};
++ static const char *const X86_64MuslTriples[] = {"x86_64-linux-musl"};
++ static const char *const X86MuslTriples[] = {"i686-linux-musl"};
++ static const char *const MIPSMuslTriples[] = {
++ "mips-linux-musl", "mipsel-linux-musl",
++ "mipsel-linux-muslhf", "mips-linux-muslhf"
++ };
++ static const char *const PPCMuslTriples[] = {"powerpc-linux-musl"};
++ static const char *const PPCLEMuslTriples[] = {"powerpcle-linux-musl"};
++ static const char *const PPC64MuslTriples[] = {"powerpc64-linux-musl"};
++ static const char *const PPC64LEMuslTriples[] = {"powerpc64le-linux-musl"};
++
++ switch (TargetTriple.getArch()) {
++ case llvm::Triple::aarch64:
++ LibDirs.append(begin(AArch64LibDirs), end(AArch64LibDirs));
++ TripleAliases.append(begin(AArch64MuslTriples), end(AArch64MuslTriples));
++ BiarchLibDirs.append(begin(AArch64LibDirs), end(AArch64LibDirs));
++ BiarchTripleAliases.append(begin(AArch64MuslTriples), end(AArch64MuslTriples));
++ break;
++ case llvm::Triple::arm:
++ LibDirs.append(begin(ARMLibDirs), end(ARMLibDirs));
++ if (TargetTriple.getEnvironment() == llvm::Triple::MuslEABIHF) {
++ TripleAliases.append(begin(ARMHFMuslTriples), end(ARMHFMuslTriples));
++ } else {
++ TripleAliases.append(begin(ARMMuslTriples), end(ARMMuslTriples));
++ }
++ break;
++ case llvm::Triple::x86_64:
++ LibDirs.append(begin(X86_64LibDirs), end(X86_64LibDirs));
++ TripleAliases.append(begin(X86_64MuslTriples), end(X86_64MuslTriples));
++ BiarchLibDirs.append(begin(X86LibDirs), end(X86LibDirs));
++ BiarchTripleAliases.append(begin(X86MuslTriples), end(X86MuslTriples));
++ break;
++ case llvm::Triple::x86:
++ LibDirs.append(begin(X86LibDirs), end(X86LibDirs));
++ TripleAliases.append(begin(X86MuslTriples), end(X86MuslTriples));
++ BiarchLibDirs.append(begin(X86_64LibDirs), end(X86_64LibDirs));
++ BiarchTripleAliases.append(begin(X86_64MuslTriples), end(X86_64MuslTriples));
++ break;
++ case llvm::Triple::mips:
++ LibDirs.append(begin(MIPSLibDirs), end(MIPSLibDirs));
++ TripleAliases.append(begin(MIPSMuslTriples), end(MIPSMuslTriples));
++ break;
++ case llvm::Triple::ppc:
++ LibDirs.append(begin(PPCLibDirs), end(PPCLibDirs));
++ TripleAliases.append(begin(PPCMuslTriples), end(PPCMuslTriples));
++ BiarchLibDirs.append(begin(PPC64LibDirs), end(PPC64LibDirs));
++ BiarchTripleAliases.append(begin(PPC64MuslTriples), end(PPC64MuslTriples));
++ break;
++ case llvm::Triple::ppcle:
++ LibDirs.append(begin(PPCLELibDirs), end(PPCLELibDirs));
++ TripleAliases.append(begin(PPCLEMuslTriples), end(PPCLEMuslTriples));
++ BiarchLibDirs.append(begin(PPC64LELibDirs), end(PPC64LELibDirs));
++ BiarchTripleAliases.append(begin(PPC64LEMuslTriples), end(PPC64LEMuslTriples));
++ break;
++ case llvm::Triple::ppc64:
++ LibDirs.append(begin(PPC64LibDirs), end(PPC64LibDirs));
++ TripleAliases.append(begin(PPC64MuslTriples), end(PPC64MuslTriples));
++ BiarchLibDirs.append(begin(PPCLibDirs), end(PPCLibDirs));
++ BiarchTripleAliases.append(begin(PPCMuslTriples), end(PPCMuslTriples));
++ break;
++ case llvm::Triple::ppc64le:
++ LibDirs.append(begin(PPC64LELibDirs), end(PPC64LELibDirs));
++ TripleAliases.append(begin(PPC64LEMuslTriples), end(PPC64LEMuslTriples));
++ BiarchLibDirs.append(begin(PPCLELibDirs), end(PPCLELibDirs));
++ BiarchTripleAliases.append(begin(PPCLEMuslTriples), end(PPCLEMuslTriples));
++ break;
++ default:
++ break;
++ }
++ TripleAliases.push_back(TargetTriple.str());
++ if (TargetTriple.str() != BiarchTriple.str())
++ BiarchTripleAliases.push_back(BiarchTriple.str());
++ return;
++ }
++
+ // Android targets should not use GNU/Linux tools or libraries.
+ if (TargetTriple.isAndroid()) {
+ static const char *const AArch64AndroidTriples[] = {
diff --git a/srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch b/srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch
new file mode 100644
index 000000000000..4ad6412d1e6c
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch
@@ -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 =
diff --git a/srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch b/srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch
new file mode 100644
index 000000000000..21fc8003c5f1
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch
@@ -0,0 +1,48 @@
+--- a/clang/lib/Basic/Targets/PPC.h
++++ b/clang/lib/Basic/Targets/PPC.h
+@@ -415,11 +415,10 @@ public:
+ LongDoubleFormat = &llvm::APFloat::IEEEdouble();
+ } else if ((Triple.getArch() == llvm::Triple::ppc64le)) {
+ DataLayout = "e-m:e-i64:64-n32:64";
+- ABI = "elfv2";
+ } else {
+ DataLayout = "E-m:e-i64:64-n32:64";
+- ABI = "elfv1";
+ }
++ ABI = "elfv2";
+
+ if (Triple.isOSFreeBSD() || Triple.isOSOpenBSD() || Triple.isMusl()) {
+ LongDoubleWidth = LongDoubleAlign = 64;
+--- a/clang/lib/CodeGen/TargetInfo.cpp
++++ b/clang/lib/CodeGen/TargetInfo.cpp
+@@ -10927,9 +10927,9 @@ const TargetCodeGenInfo &CodeGenModule::getTargetCodeGenInfo() {
+ return SetCGInfo(new AIXTargetCodeGenInfo(Types, /*Is64Bit*/ true));
+
+ if (Triple.isOSBinFormatELF()) {
+- PPC64_SVR4_ABIInfo::ABIKind Kind = PPC64_SVR4_ABIInfo::ELFv1;
+- if (getTarget().getABI() == "elfv2")
+- Kind = PPC64_SVR4_ABIInfo::ELFv2;
++ PPC64_SVR4_ABIInfo::ABIKind Kind = PPC64_SVR4_ABIInfo::ELFv2;
++ if (getTarget().getABI() == "elfv1")
++ Kind = PPC64_SVR4_ABIInfo::ELFv1;
+ bool IsSoftFloat = CodeGenOpts.FloatABI == "soft";
+
+ return SetCGInfo(
+--- a/clang/lib/Driver/ToolChains/Clang.cpp
++++ b/clang/lib/Driver/ToolChains/Clang.cpp
+@@ -1920,14 +1920,7 @@ void Clang::AddPPCTargetArgs(const ArgList &Args,
+ const llvm::Triple &T = getToolChain().getTriple();
+ if (T.isOSBinFormatELF()) {
+ switch (getToolChain().getArch()) {
+- case llvm::Triple::ppc64: {
+- if ((T.isOSFreeBSD() && T.getOSMajorVersion() >= 13) ||
+- T.isOSOpenBSD() || T.isMusl())
+- ABIName = "elfv2";
+- else
+- ABIName = "elfv1";
+- break;
+- }
++ case llvm::Triple::ppc64:
+ case llvm::Triple::ppc64le:
+ ABIName = "elfv2";
+ break;
diff --git a/srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch b/srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch
new file mode 100644
index 000000000000..360cfc1ba7f1
--- /dev/null
+++ b/srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch
@@ -0,0 +1,35 @@
+--- 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__) || SANITIZER_RISCV64
++ defined(__hexagon__) || defined(__powerpc__) || 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_ANDROID
++#if (defined(__aarch64__) || defined(__powerpc__) || SANITIZER_RISCV64) && !SANITIZER_ANDROID
+ // GLIBC 2.20+ sys/user does not include asm/ptrace.h
+ # include <asm/ptrace.h>
+ #endif
diff --git a/srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip b/srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip
new file mode 100644
index 000000000000..d0b61c80c897
--- /dev/null
+++ b/srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip
@@ -0,0 +1,62 @@
+--- a/compiler-rt/lib/xray/xray_powerpc64.inc
++++ b/compiler-rt/lib/xray/xray_powerpc64.inc
+@@ -12,7 +12,13 @@
+
+ #include <cstdint>
+ #include <mutex>
++#ifdef __GLIBC__
+ #include <sys/platform/ppc.h>
++#else
++#include <cctype>
++#include <cstring>
++#include <cstdlib>
++#endif
+
+ #include "xray_defs.h"
+
+@@ -20,13 +26,45 @@ namespace __xray {
+
+ ALWAYS_INLINE uint64_t readTSC(uint8_t &CPU) XRAY_NEVER_INSTRUMENT {
+ CPU = 0;
++#ifdef __GLIBC__
+ return __ppc_get_timebase();
++#else
++ return __builtin_ppc_get_timebase();
++#endif
+ }
+
+ inline uint64_t getTSCFrequency() XRAY_NEVER_INSTRUMENT {
+ static std::mutex M;
+ std::lock_guard<std::mutex> Guard(M);
++#ifdef __GLIBC__
+ return __ppc_get_timebase_freq();
++#else
++ /* FIXME: a less dirty implementation? */
++ static uint64_t base;
++ if (!base) {
++ FILE *f = fopen("/proc/cpuinfo", "rb");
++ if (f) {
++ ssize_t nr;
++ /* virtually always big enough to hold the line */
++ char buf[512];
++ while (fgets(buf, sizeof(buf), f)) {
++ char *ret = strstr(buf, "timebase");
++ if (!ret) {
++ continue;
++ }
++ ret += sizeof("timebase") - 1;
++ ret = strchr(ret, ':');
++ if (!ret) {
++ continue;
++ }
++ base = strtoul(ret + 1, nullptr, 10);
++ break;
++ }
++ fclose(f);
++ }
++ }
++ return base;
++#endif
+ }
+
+ inline bool probeRequiredCPUFeatures() XRAY_NEVER_INSTRUMENT {
diff --git a/srcpkgs/llvm15/patches/libcxx-musl.patch b/srcpkgs/llvm15/patches/libcxx-musl.patch
new file mode 100644
index 000000000000..bbd31ffc2cb1
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxx-musl.patch
@@ -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,
+ typename remove_reference<decltype(errno)>::type __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
+ typename remove_reference<decltype(errno)>::type __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,
+ typename remove_reference<decltype(errno)>::type __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
+ typename remove_reference<decltype(errno)>::type __current_errno = errno;
+ if (__current_errno == 0)
+ errno = __save_errno;
diff --git a/srcpkgs/llvm15/patches/libcxx-ppc.patch b/srcpkgs/llvm15/patches/libcxx-ppc.patch
new file mode 100644
index 000000000000..7a92f8004e1c
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxx-ppc.patch
@@ -0,0 +1,22 @@
+This ensures `is_iec559` is defined correctly under all long double ABIs,
+including musl and its 64-bit long double. Also, `__ppc__` or `__ppc64__`
+is not defined on gcc.
+
+--- a/libcxx/include/limits
++++ b/libcxx/include/limits
+@@ -426,8 +426,14 @@ protected:
+ _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type signaling_NaN() _NOEXCEPT {return __builtin_nansl("");}
+ _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type denorm_min() _NOEXCEPT {return __LDBL_DENORM_MIN__;}
+
+-#if (defined(__ppc__) || defined(__ppc64__))
++#if defined(__powerpc__) || defined(__powerpc64__)
++#if (__LDBL_MAX_EXP__ > __DBL_MAX_EXP__) || (__LDBL_MANT_DIG__ == __DBL_MANT_DIG__)
++ /* IEEE 754 quadruple or double precision */
++ static _LIBCPP_CONSTEXPR const bool is_iec559 = true;
++#else
++ /* 128-bit IBM double-double */
+ static _LIBCPP_CONSTEXPR const bool is_iec559 = false;
++#endif
+ #else
+ static _LIBCPP_CONSTEXPR const bool is_iec559 = true;
+ #endif
diff --git a/srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch b/srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch
new file mode 100644
index 000000000000..70292beb2fcd
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch
@@ -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()
diff --git a/srcpkgs/llvm15/patches/libcxxabi-dl.patch b/srcpkgs/llvm15/patches/libcxxabi-dl.patch
new file mode 100644
index 000000000000..3a15f9db8c98
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxxabi-dl.patch
@@ -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 @@
+ target_link_libraries(${target} PRIVATE m)
+ endif()
+
++ if (LIBCXX_HAS_C_LIB)
++ target_link_libraries(${target} PRIVATE dl)
++ endif()
++
+ if (LIBCXX_HAS_RT_LIB)
+ target_link_libraries(${target} PRIVATE rt)
+ endif()
diff --git a/srcpkgs/llvm15/patches/libcxxabi-musl.patch b/srcpkgs/llvm15/patches/libcxxabi-musl.patch
new file mode 100644
index 000000000000..55bf6f5aaa08
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxxabi-musl.patch
@@ -0,0 +1,37 @@
+diff --git a/libcxx/include/__support/musl/xlocale.h b/libcxx/include/__support/musl/xlocale.h
+index e674a41fa..f546119b9 100644
+--- a/libcxx/include/__support/musl/xlocale.h
++++ b/libcxx/include/__support/musl/xlocale.h
+@@ -24,27 +24,27 @@
+ extern "C" {
+ #endif
+
+-inline _LIBCPP_HIDE_FROM_ABI long long
++static inline long long
+ strtoll_l(const char *__nptr, char **__endptr, int __base, locale_t) {
+ return ::strtoll(__nptr, __endptr, __base);
+ }
+
+-inline _LIBCPP_HIDE_FROM_ABI unsigned long long
++static inline unsigned long long
+ strtoull_l(const char *__nptr, char **__endptr, int __base, locale_t) {
+ return ::strtoull(__nptr, __endptr, __base);
+ }
+
+-inline _LIBCPP_HIDE_FROM_ABI long long
++static inline long long
+ wcstoll_l(const wchar_t *__nptr, wchar_t **__endptr, int __base, locale_t) {
+ return ::wcstoll(__nptr, __endptr, __base);
+ }
+
+-inline _LIBCPP_HIDE_FROM_ABI unsigned long long
++static inline unsigned long long
+ wcstoull_l(const wchar_t *__nptr, wchar_t **__endptr, int __base, locale_t) {
+ return ::wcstoull(__nptr, __endptr, __base);
+ }
+
+-inline _LIBCPP_HIDE_FROM_ABI long double
++static inline long double
+ wcstold_l(const wchar_t *__nptr, wchar_t **__endptr, locale_t) {
+ return ::wcstold(__nptr, __endptr);
+ }
diff --git a/srcpkgs/llvm15/patches/libomp-soname.patch b/srcpkgs/llvm15/patches/libomp-soname.patch
new file mode 100644
index 000000000000..9a622cd9254c
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libomp-soname.patch
@@ -0,0 +1,12 @@
+diff --git a/openmp/runtime/src/CMakeLists.txt b/openmp/runtime/src/CMakeLists.txt
+index df1ca9d90..9d2c3b7b9 100644
+--- a/openmp/runtime/src/CMakeLists.txt
++++ b/openmp/runtime/src/CMakeLists.txt
+@@ -150,6 +150,7 @@ libomp_get_libflags(LIBOMP_CONFIGURED_LIBFLAGS)
+ # Build libomp library. Add LLVMSupport dependency if building in-tree with libomptarget profiling enabled.
+ if(OPENMP_STANDALONE_BUILD OR (NOT OPENMP_ENABLE_LIBOMP_PROFILING))
+ add_library(omp ${LIBOMP_LIBRARY_KIND} ${LIBOMP_SOURCE_FILES})
++ set_target_properties(omp PROPERTIES VERSION ${LIBOMP_VERSION_MAJOR} SOVERSION ${LIBOMP_VERSION_MAJOR})
+ # Linking command will include libraries in LIBOMP_CONFIGURED_LIBFLAGS
+ target_link_libraries(omp ${LIBOMP_CONFIGURED_LIBFLAGS} ${LIBOMP_DL_LIBS})
+ else()
diff --git a/srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip b/srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip
new file mode 100644
index 000000000000..74aa7576ecf9
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip
@@ -0,0 +1,63 @@
+This fixes build at least with gcc9 which does not define `__ppc__`.
+
+--- a/libunwind/include/__libunwind_config.h
++++ b/libunwind/include/__libunwind_config.h
+@@ -49,7 +49,7 @@
+ # define _LIBUNWIND_CONTEXT_SIZE 167
+ # define _LIBUNWIND_CURSOR_SIZE 179
+ # define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_PPC64
+-# elif defined(__ppc__)
++# elif defined(__powerpc__)
+ # define _LIBUNWIND_TARGET_PPC 1
+ # define _LIBUNWIND_CONTEXT_SIZE 117
+ # define _LIBUNWIND_CURSOR_SIZE 124
+--- a/libunwind/src/UnwindRegistersRestore.S
++++ b/libunwind/src/UnwindRegistersRestore.S
+@@ -392,7 +392,7 @@ Lnovec:
+ PPC64_LR(3)
+ bctr
+
+-#elif defined(__ppc__)
++#elif defined(__powerpc__)
+
+ DEFINE_LIBUNWIND_FUNCTION(_ZN9libunwind13Registers_ppc6jumptoEv)
+ //
+--- a/libunwind/src/UnwindRegistersSave.S
++++ b/libunwind/src/UnwindRegistersSave.S
+@@ -554,7 +554,7 @@ DEFINE_LIBUNWIND_FUNCTION(__unw_getcontext)
+ blr
+
+
+-#elif defined(__ppc__)
++#elif defined(__powerpc__)
+
+ //
+ // extern int unw_getcontext(unw_context_t* thread_state)
+--- a/libunwind/src/config.h
++++ b/libunwind/src/config.h
+@@ -95,12 +95,12 @@
+ #define _LIBUNWIND_BUILD_SJLJ_APIS
+ #endif
+
+-#if defined(__i386__) || defined(__x86_64__) || defined(__ppc__) || defined(__ppc64__) || defined(__powerpc64__)
++#if defined(__i386__) || defined(__x86_64__) || defined(__powerpc__) || defined(__powerpc64__)
+ #define _LIBUNWIND_SUPPORT_FRAME_APIS
+ #endif
+
+ #if defined(__i386__) || defined(__x86_64__) || \
+- defined(__ppc__) || defined(__ppc64__) || defined(__powerpc64__) || \
++ defined(__powerpc__) || defined(__powerpc64__) || \
+ (!defined(__APPLE__) && defined(__arm__)) || \
+ (defined(__arm64__) || defined(__aarch64__)) || \
+ defined(__mips__)
+--- a/libunwind/src/libunwind.cpp
++++ b/libunwind/src/libunwind.cpp
+@@ -42,7 +42,7 @@ _LIBUNWIND_HIDDEN int __unw_init_local(unw_cursor_t *cursor,
+ # define REGISTER_KIND Registers_x86_64
+ #elif defined(__powerpc64__)
+ # define REGISTER_KIND Registers_ppc64
+-#elif defined(__ppc__)
++#elif defined(__powerpc__)
+ # define REGISTER_KIND Registers_ppc
+ #elif defined(__aarch64__)
+ # define REGISTER_KIND Registers_arm64
diff --git a/srcpkgs/llvm15/patches/lldb-musl.patch b/srcpkgs/llvm15/patches/lldb-musl.patch
new file mode 100644
index 000000000000..026c5e1e61ba
--- /dev/null
+++ b/srcpkgs/llvm15/patches/lldb-musl.patch
@@ -0,0 +1,40 @@
+--- a/lldb/source/Plugins/Process/Linux/Procfs.h
++++ b/lldb/source/Plugins/Process/Linux/Procfs.h
+@@ -10,6 +10,7 @@
+ // sys/procfs.h on Android/Linux for all supported architectures.
+
+ #include <sys/ptrace.h>
++#include <asm/ptrace.h>
+
+ #include "lldb/lldb-types.h"
+
+@@ -17,23 +18,13 @@
+
+ #include <vector>
+
+-#ifdef __ANDROID__
+-#if defined(__arm64__) || defined(__aarch64__)
+-typedef unsigned long elf_greg_t;
+-typedef elf_greg_t
+- elf_gregset_t[(sizeof(struct user_pt_regs) / sizeof(elf_greg_t))];
+-typedef struct user_fpsimd_state elf_fpregset_t;
+-#ifndef NT_FPREGSET
+-#define NT_FPREGSET NT_PRFPREG
+-#endif // NT_FPREGSET
+-#elif defined(__mips__)
+-#ifndef NT_FPREGSET
+-#define NT_FPREGSET NT_PRFPREG
+-#endif // NT_FPREGSET
+-#endif
+-#else // __ANDROID__
++#if !defined(__GLIBC__) && defined(__powerpc__)
++#define pt_regs musl_pt_regs
++#include <sys/procfs.h>
++#undef pt_regs
++#else
+ #include <sys/procfs.h>
+-#endif // __ANDROID__
++#endif
+
+ namespace lldb_private {
+ namespace process_linux {
diff --git a/srcpkgs/llvm15/patches/llvm-001-musl.patch b/srcpkgs/llvm15/patches/llvm-001-musl.patch
new file mode 100644
index 000000000000..f2a3f8d62813
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-001-musl.patch
@@ -0,0 +1,57 @@
+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;
+diff --git a/lib/Support/Unix/DynamicLibrary.inc b/lib/Support/Unix/DynamicLibrary.inc
+index a2a37996..2f86c470 100644
+--- a/llvm/lib/Support/Unix/DynamicLibrary.inc
++++ b/llvm/lib/Support/Unix/DynamicLibrary.inc
+@@ -102,7 +102,7 @@ static void *DoSearch(const char* SymbolName) {
+
+ // This macro returns the address of a well-known, explicit symbol
+ #define EXPLICIT_SYMBOL(SYM) \
+- if (!strcmp(SymbolName, #SYM)) return &SYM
++ if (!strcmp(SymbolName, #SYM)) return (void *)&SYM
+
+ // Under glibc we have a weird situation. The stderr/out/in symbols are both
+ // macros and global variables because of standards requirements. So, we
+diff --git a/utils/unittest/googletest/src/gtest.cc b/utils/unittest/googletest/src/gtest.cc
+index d882ab2e..f1fb12d0 100644
+--- a/llvm/utils/unittest/googletest/src/gtest.cc
++++ b/llvm/utils/unittest/googletest/src/gtest.cc
+@@ -128,6 +128,7 @@
+
+ #if GTEST_CAN_STREAM_RESULTS_
+ # include <arpa/inet.h> // NOLINT
++# include <sys/socket.h> // NOLINT
+ # include <netdb.h> // NOLINT
+ # include <sys/socket.h> // NOLINT
+ # include <sys/types.h> // NOLINT
diff --git a/srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch b/srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch
new file mode 100644
index 000000000000..0071d964bd37
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch
@@ -0,0 +1,30 @@
+This patches LLVM to use ELFv2 on ppc64 unconditionally unless overridden. We
+need this because unlike most distros we use ELFv2 for both glibc and musl
+on big endian ppc64.
+
+diff --git a/lib/Target/PowerPC/PPCTargetMachine.cpp b/lib/Target/PowerPC/PPCTargetMachine.cpp
+index 0634833e..b7cbc2e7 100644
+--- a/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp
++++ b/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp
+@@ -222,9 +222,8 @@ static PPCTargetMachine::PPCABI computeTargetABI(const Triple &TT,
+
+ switch (TT.getArch()) {
+ case Triple::ppc64le:
+- return PPCTargetMachine::PPC_ABI_ELFv2;
+ case Triple::ppc64:
+- return PPCTargetMachine::PPC_ABI_ELFv1;
++ return PPCTargetMachine::PPC_ABI_ELFv2;
+ default:
+ return PPCTargetMachine::PPC_ABI_UNKNOWN;
+ }
+diff --git a/test/CodeGen/PowerPC/ppc64-elf-abi.ll b/test/CodeGen/PowerPC/ppc64-elf-abi.ll
+index 8b1cf6b5..296a2afa 100644
+--- a/llvm/test/CodeGen/PowerPC/ppc64-elf-abi.ll
++++ b/llvm/test/CodeGen/PowerPC/ppc64-elf-abi.ll
+@@ -1,4 +1,5 @@
+-; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv1
++; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv2
++; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-musl < %s | FileCheck %s -check-prefix=CHECK-ELFv2
+ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu -target-abi elfv1 < %s | FileCheck %s -check-prefix=CHECK-ELFv1
+ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu -target-abi elfv2 < %s | FileCheck %s -check-prefix=CHECK-ELFv2
+ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv2
diff --git a/srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch b/srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch
new file mode 100644
index 000000000000..b5d15974375d
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch
@@ -0,0 +1,11 @@
+--- a/llvm/lib/Target/PowerPC/PPCSubtarget.cpp
++++ b/llvm/lib/Target/PowerPC/PPCSubtarget.cpp
+@@ -165,7 +165,7 @@ void PPCSubtarget::initSubtargetFeatures(StringRef CPU, StringRef FS) {
+
+ if ((TargetTriple.isOSFreeBSD() && TargetTriple.getOSMajorVersion() >= 13) ||
+ TargetTriple.isOSNetBSD() || TargetTriple.isOSOpenBSD() ||
+- TargetTriple.isMusl())
++ isTargetLinux())
+ SecurePlt = true;
+
+ if (HasSPE && IsPPC64)
diff --git a/srcpkgs/llvm15/patches/llvm-004-override-opt.patch b/srcpkgs/llvm15/patches/llvm-004-override-opt.patch
new file mode 100644
index 000000000000..51d0e4b31b32
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-004-override-opt.patch
@@ -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)
diff --git a/srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch b/srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch
new file mode 100644
index 000000000000..d332687b9d92
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch
@@ -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);
diff --git a/srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch b/srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch
new file mode 100644
index 000000000000..a00abd216665
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch
@@ -0,0 +1,25 @@
+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__) || defined (__ppc__) || \
+- defined(_POWER) || defined(_ARCH_PPC))
++ defined(_POWER) || defined(_ARCH_PPC) || (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
diff --git a/srcpkgs/llvm15/template b/srcpkgs/llvm15/template
new file mode 100644
index 000000000000..ad83172de569
--- /dev/null
+++ b/srcpkgs/llvm15/template
@@ -0,0 +1,437 @@
+# Template file for 'llvm15'
+pkgname=llvm15
+version=15.0.7
+revision=1
+build_wrksrc=llvm
+build_style=cmake
+_ext_suffix=".cpython-${py3_ver/./}-linux-${XBPS_TARGET_LIBC/glibc/gnu}.so"
+configure_args="
+ -DCMAKE_BUILD_TYPE=Release -Wno-dev
+ -DENABLE_LINKER_BUILD_ID=YES
+ -DLLDB_USE_SYSTEM_SIX=YES
+ -DLIBCXX_CXX_ABI=libcxxabi
+ -DLIBCXX_ENABLE_STATIC_ABI_LIBRARY=YES
+ -DLIBCXXABI_USE_LLVM_UNWINDER=YES
+ -DLIBCXXABI_ENABLE_STATIC_UNWINDER=YES
+ -DLIBOMP_ENABLE_SHARED=YES
+ -DLIBOMP_INSTALL_ALIASES=NO
+ -DLLVM_INCLUDE_DOCS=YES
+ -DLLVM_BUILD_DOCS=YES
+ -DLLVM_ENABLE_SPHINX=YES
+ -DSPHINX_WARNINGS_AS_ERRORS=NO
+ -DLLVM_INSTALL_UTILS=YES
+ -DLLVM_BUILD_LLVM_DYLIB=YES
+ -DLLVM_LINK_LLVM_DYLIB=YES
+ -DLLVM_ENABLE_RTTI=YES
+ -DLLVM_ENABLE_FFI=YES
+ -DLLVM_BINUTILS_INCDIR=/usr/include
+ -DLLVM_ENABLE_PER_TARGET_RUNTIME_DIR=NO
+ -DLLDB_PYTHON_RELATIVE_PATH=lib/python${py3_ver}/site-packages
+ -DLLDB_PYTHON_EXE_RELATIVE_PATH=bin/python${py3_ver}
+ -DLLDB_PYTHON_EXT_SUFFIX=$_ext_suffix"
+hostmakedepends="perl python3 zlib-devel libffi-devel swig python3-Sphinx
+ python3-recommonmark python3-sphinx-automodapi"
+makedepends="python3-devel zlib-devel elfutils-devel libffi-devel libedit-devel
+ libxml2-devel binutils-devel libatomic-devel"
+depends="libllvm15>=${version}_${revision}"
+short_desc="Low Level Virtual Machine"
+maintainer="Orphaned <orphan@voidlinux.org>"
+license="Apache-2.0"
+homepage="https://www.llvm.org"
+distfiles="https://github.com/llvm/llvm-project/releases/download/llvmorg-${version}/llvm-project-${version}.src.tar.xz"
+checksum=8b5fcb24b4128cf04df1b0b9410ce8b1a729cb3c544e6da885d234280dedeac6
+lib32disabled=yes
+python_version=3
+
+if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
+ configure_args+=" -DLIBCXX_HAS_MUSL_LIBC=YES
+ -DCOMPILER_RT_BUILD_GWP_ASAN=OFF"
+fi
+
+# "operand out of range" assembler failures
+case "$XBPS_TARGET_MACHINE" in
+ ppc64*) ;;
+ ppc*) configure_args+=" -DCLANG_ENABLE_CLANGD=OFF" ;;
+esac
+
+_enabled_projects="clang;clang-tools-extra;compiler-rt;libcxx;libcxxabi;libunwind;lld"
+
+_lldb_enable=yes
+_libomp_enable=no
+
+case "$XBPS_TARGET_MACHINE" in
+ ppc64le*) ;;
+ ppc*|i686*|riscv64*) _lldb_enable=no ;;
+esac
+
+case "$XBPS_TARGET_MACHINE" in
+ x86_64*|aarch64*|ppc64*) _libomp_enable=yes;;
+esac
+
+subpackages="clang-tools-extra"
+
+# must go before clang
+if [ "$_libomp_enable" = "yes" ]; then
+ _enabled_projects+=";openmp"
+ subpackages+=" libomp libomp-devel"
+ # because of cmake nonsense referencing libomptarget.so.*
+ depends+=" libomp>=${version}_${revision}"
+fi
+
+subpackages+=" clang clang-analyzer libclang libclang-cpp
+ llvm-libunwind llvm-libunwind-devel libcxx libcxx-devel
+ libcxxabi libcxxabi-devel libllvm15"
+
+if [ "$_lldb_enable" = "yes" ]; then
+ # XXX fails to cross compile due to python
+ _enabled_projects+=";lldb"
+ subpackages+=" lldb lldb-devel"
+fi
+
+subpackages+=" lld lld-devel"
+
+configure_args+=" -DLLVM_ENABLE_PROJECTS=${_enabled_projects}"
+
+post_patch() {
+ if [ "$_lldb_enable" = "yes" ]; then
+ if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
+ vsed -i 's|__ptrace_request|int|g' \
+ ${wrksrc}/lldb/source/Plugins/Process/Linux/NativeProcessLinux.cpp
+ fi
+ # disable docs for lldb as they fail to generate
+ vsed -i '/add_subdirectory(docs)/d' \
+ ${wrksrc}/lldb/CMakeLists.txt
+ fi
+
+ # update config.guess for better platform detection
+ cp $XBPS_COMMONDIR/environment/configure/automake/config.guess \
+ ${wrksrc}/llvm/cmake
+
+ # fix linker failures on some archs
+ vsed -i 's,check_library_exists(gcc_s .*,set(LIBCXXABI_HAS_GCC_S_LIB ON),' \
+ ${wrksrc}/libcxxabi/cmake/config-ix.cmake
+ vsed -i 's,check_library_exists(gcc .*,set(LIBCXXABI_HAS_GCC_LIB ON),' \
+ ${wrksrc}/libcxxabi/cmake/config-ix.cmake
+
+ # need libssp_nonshared on some musl platforms (because of nodefaultlibs)
+ case "$XBPS_TARGET_MACHINE" in
+ ppc64*) ;;
+ ppc*-musl|i686-musl|mips*-musl)
+ vsed -i 's,^# Setup flags.$,add_library_flags(ssp_nonshared),' \
+ ${wrksrc}/libunwind/src/CMakeLists.txt
+ vsed -i 's,^# Setup flags.$,add_library_flags(ssp_nonshared),' \
+ ${wrksrc}/libcxxabi/src/CMakeLists.txt
+ vsed -i 's,#ssp,,' ${wrksrc}/libcxx/CMakeLists.txt
+ ;;
+ esac
+
+ case "$XBPS_TARGET_MACHINE" in
+ arm*-musl|i686-musl) # sanitizer code is broken since it duplicates some libc bits
+ vsed -i 's/set(COMPILER_RT_HAS_SANITIZER_COMMON TRUE)/set(COMPILER_RT_HAS_SANITIZER_COMMON FALSE)/' \
+ ${wrksrc}/compiler-rt/cmake/config-ix.cmake
+ ;;
+ esac
+}
+
+pre_configure() {
+ local triplet
+
+ # Vastly reduce size of debugging symbols:
+ CFLAGS=${CFLAGS/ -g/ -g1}
+ CXXFLAGS=${CXXFLAGS/ -g/ -g1}
+
+ # since gcc9, the build likes to blow up for ppc32 apparently because
+ # of clang being too large for a 24-bit relative call to the PLT, so
+ # optimize for size instead
+ case "$XBPS_TARGET_MACHINE" in
+ ppc64*) ;;
+ mips*-musl|ppc*) configure_args+=" -DVOID_CXX_OPT_FLAGS=-Os" ;;
+ esac
+
+ if [ "$CROSS_BUILD" ]; then
+ msg_normal "Building host tblgen\n"
+ mkdir -p build/HOST
+ cd build/HOST
+ CC="$BUILD_CC" CXX="$BUILD_CXX" CFLAGS="$BUILD_CFLAGS" \
+ CXXFLAGS="$BUILD_CXXFLAGS" LDFLAGS="$BUILD_LDFLAGS" \
+ cmake ../.. -DCMAKE_BUILD_TYPE=Release \
+ -DLLVM_ENABLE_PROJECTS=${_enabled_projects}
+ make ${makejobs} -C utils/TableGen
+ make ${makejobs} -C tools/clang/utils/TableGen
+ make ${makejobs} -C tools/clang/tools/extra/clang-tidy/misc/ConfusableTable
+ make ${makejobs} -C tools/clang/tools/extra/pseudo/gen
+ [ "$_lldb_enable" = "yes" ] && make ${makejobs} -C tools/lldb/utils/TableGen
+ configure_args+=" -DLLVM_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/llvm-tblgen"
+ configure_args+=" -DCLANG_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/clang-tblgen"
+ configure_args+=" -DCLANG_TIDY_CONFUSABLE_CHARS_GEN=${wrksrc}/llvm/build/HOST/bin/clang-pseudo-gen"
+ configure_args+=" -DCLANG_PSEUDO_GEN=${wrksrc}/llvm/build/HOST/bin/clang-pseudo-gen"
+ [ "$_lldb_enable" = "yes" ] && configure_args+=" -DLLDB_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/lldb-tblgen"
+ cd ../..
+ fi
+
+ case "$XBPS_TARGET_MACHINE" in
+ i686*) _arch="X86";;
+ x86_64*) _arch="X86";;
+ armv5*) _arch="Armv5te";;
+ armv6*) _arch="Armv6";;
+ armv7*) _arch="Armv7";;
+ aarch64*) _arch="AArch64";;
+ mips*) _arch="Mips";;
+ ppc*) _arch="PowerPC";;
+ riscv64*) _arch="RISCV64";;
+ esac
+
+ triplet=${XBPS_CROSS_TRIPLET:-$XBPS_TRIPLET}
+
+ configure_args+=" -DLLVM_TARGET_ARCH=${_arch}"
+ configure_args+=" -DLLVM_HOST_TRIPLE=${triplet}"
+ configure_args+=" -DLLVM_DEFAULT_TARGET_TRIPLE=${triplet}"
+}
+
+do_install() {
+ cd build
+ cmake -DCMAKE_INSTALL_PREFIX=${DESTDIR}/usr -P cmake_install.cmake
+
+ # Required for multilib.
+ if [ "$XBPS_TARGET_MACHINE" = "x86_64" ]; then
+ for _header in llvm-config; do
+ mv ${DESTDIR}/usr/include/llvm/Config/${_header}{,-64}.h
+ vinstall ${FILESDIR}/llvm-Config-${_header}.h 644 \
+ usr/include/llvm/Config ${_header}.h
+ done
+ fi
+
+ # Remove llvm-config-host in cross builds.
+ if [ "$CROSS_BUILD" ]; then
+ rm -f ${DESTDIR}/usr/bin/llvm-config-host
+ fi
+
+ # Install libcxxabi headers
+ vinstall ${wrksrc}/libcxxabi/include/__cxxabi_config.h 644 usr/include
+ vinstall ${wrksrc}/libcxxabi/include/cxxabi.h 644 usr/include
+
+ # Install libunwind headers
+ vinstall ${wrksrc}/libunwind/include/__libunwind_config.h 644 usr/include
+ vinstall ${wrksrc}/libunwind/include/libunwind.h 644 usr/include
+ vinstall ${wrksrc}/libunwind/include/unwind.h 644 usr/include
+ vinstall ${wrksrc}/libunwind/include/mach-o/compact_unwind_encoding.h \
+ 644 usr/include/mach-o
+}
+
+clang-analyzer_package() {
+ pycompile_dirs="usr/share/scan-view"
+ depends="clang-${version}_${revision} python3 perl"
+ short_desc+=" - A source code analysis framework"
+ homepage="https://clang-analyzer.llvm.org/"
+ pkg_install() {
+ vmove "usr/bin/scan-*"
+ vmove "usr/libexec/*analyzer"
+ vmove "usr/share/scan-*"
+ vmove usr/share/man/man1/scan-build.1
+ }
+}
+
+clang-tools-extra_package() {
+ lib32disabled=yes
+ depends="clang-${version}_${revision} python3"
+ short_desc+=" - Extra Clang tools"
+ homepage="https://clang.llvm.org/extra/"
+ pkg_install() {
+ vmove usr/bin/clang-apply-replacements
+ vmove usr/bin/clang-doc
+ vmove usr/bin/clang-include-fixer
+ vmove usr/bin/clang-query
+ vmove usr/bin/clang-rename
+ vmove usr/bin/clang-reorder-fields
+ vmove usr/bin/clang-tidy
+ vmove usr/bin/clangd
+ vmove usr/bin/diagtool
+ vmove usr/bin/find-all-symbols
+ vmove usr/bin/hmaptool
+ vmove usr/bin/modularize
+ vmove usr/bin/pp-trace
+ vmove usr/bin/sancov
+ vmove usr/include/clang-tidy
+ vmove "usr/lib/libclangApplyReplacements*"
+ vmove "usr/lib/libclangDoc*"
+ vmove "usr/lib/libclangIncludeFixer*"
+ vmove "usr/lib/libclangReorderFields*"
+ vmove "usr/lib/libclangQuery*"
+ vmove "usr/lib/libclangTidy*"
+ vmove "usr/share/clang/*include-fixer*"
+ vmove "usr/share/clang/*rename*"
+ vmove "usr/share/clang/*tidy*"
+ vmove usr/share/doc/LLVM/clang-tools
+ vmove usr/share/man/man1/diagtool.1
+ vmove usr/share/man/man1/extraclangtools.1
+ }
+}
+
+clang_package() {
+ lib32disabled=yes
+ depends="libstdc++-devel libgcc-devel binutils ${XBPS_TARGET_LIBC}-devel
+ libclang-${version}_${revision}"
+ short_desc+=" - C language family frontend"
+ homepage="https://clang.llvm.org/"
+ pkg_install() {
+ vmove "usr/bin/*clang*"
+ vmove usr/bin/c-index-test
+ vmove usr/include/clang
+ vmove usr/include/clang-c
+ vmove usr/lib/clang
+ vmove usr/lib/cmake/clang
+ vmove "usr/lib/libclang*.a"
+ vmove "usr/lib/libclang*.so"
+ vmove usr/share/clang
+ vmove usr/share/doc/LLVM/clang
+ vmove usr/share/man/man1/clang.1
+ }
+}
+
+libclang_package() {
+ short_desc+=" - C frontend runtime library"
+ pkg_install() {
+ vmove "usr/lib/libclang.so.*"
+ }
+}
+
+libclang-cpp_package() {
+ short_desc+=" - C frontend runtime library (C++ interface)"
+ pkg_install() {
+ vmove "usr/lib/libclang-cpp.so.*"
+ }
+}
+
+lld_package() {
+ lib32disabled=yes
+ short_desc+=" - linker"
+ homepage="https://lld.llvm.org"
+ pkg_install() {
+ vmove "usr/bin/ld.lld*"
+ vmove "usr/bin/ld64.lld*"
+ vmove "usr/bin/lld*"
+ vmove usr/bin/wasm-ld
+ vmove usr/share/doc/LLVM/lld
+ }
+}
+
+lld-devel_package() {
+ lib32disabled=yes
+ short_desc+=" - linker - development files"
+ homepage="https://lld.llvm.org"
+ depends="lld>=${version}_${revision}"
+ pkg_install() {
+ vmove usr/include/lld
+ vmove usr/lib/cmake/lld
+ vmove "usr/lib/liblld*a"
+ }
+}
+
+lldb_package() {
+ lib32disabled=yes
+ depends+=" python3-six"
+ short_desc+=" - LLDB debugger"
+ homepage="https://lldb.llvm.org/"
+ pkg_install() {
+ vmove "usr/bin/*lldb*"
+ vmove "usr/lib/liblldb*so.*"
+ vmove usr/lib/python*
+ }
+}
+
+lldb-devel_package() {
+ lib32disabled=yes
+ depends="lldb>=${version}_${revision}"
+ short_desc+=" - LLDB debugger - development files"
+ pkg_install() {
+ vmove usr/include/lldb
+ vmove "usr/lib/liblldb*.so"
+ }
+}
+
+llvm-libunwind_package() {
+ short_desc+=" - libunwind"
+ pkg_install() {
+ vmove "usr/lib/libunwind.so.*"
+ }
+}
+
+llvm-libunwind-devel_package() {
+ short_desc+=" - libunwind - development files"
+ depends="llvm-libunwind>=${version}_${revision}"
+ conflicts="libunwind-devel>=0"
+ pkg_install() {
+ vmove usr/include/mach-o
+ vmove "usr/include/*unwind*"
+ vmove "usr/lib/libunwind.a"
+ vmove "usr/lib/libunwind.so"
+ vmove usr/share/doc/LLVM/libunwind
+ }
+}
+
+libcxxabi_package() {
+ short_desc+=" - low level support for libc++"
+ pkg_install() {
+ vmove "usr/lib/libc++abi.so.*"
+ }
+}
+
+libcxxabi-devel_package() {
+ short_desc+=" - low level support for libc++ - development files"
+ depends="libcxxabi>=${version}_${revision}"
+ pkg_install() {
+ vmove "usr/include/*cxxabi*"
+ vmove "usr/lib/libc++abi.so"
+ vmove "usr/lib/libc++abi.a"
+ }
+}
+
+libcxx_package() {
+ short_desc+=" - C++ standard library"
+ pkg_install() {
+ vmove "usr/lib/libc++.so.*"
+ }
+}
+
+libcxx-devel_package() {
+ short_desc+=" - C++ standard library - development files"
+ depends="libcxx>=${version}_${revision}"
+ pkg_install() {
+ vmove usr/include/c++
+ vmove "usr/lib/libc++.so"
+ vmove "usr/lib/libc++.a"
+ vmove "usr/lib/libc++experimental.a"
+ vmove usr/share/doc/LLVM/libcxx
+ }
+}
+
+libomp_package() {
+ short_desc+=" - Clang OpenMP support library"
+ pkg_install() {
+ vmove usr/lib/libarcher.so
+ vmove usr/lib/libompd.so
+ vmove "usr/lib/libomptarget.rtl.*.so"
+ vmove "usr/lib/libomp*.so.*"
+ }
+}
+
+libomp-devel_package() {
+ short_desc+=" - Clang OpenMP support library - development files"
+ depends="libomp>=${version}_${revision}"
+ pkg_install() {
+ vmove "usr/include/omp*.h"
+ vmove "usr/lib/clang/${version}/include/omp*.h"
+ vmove "usr/lib/libarcher*"
+ vmove "usr/lib/libomp*.so"
+ vmove usr/lib/cmake/openmp
+ vmove usr/share/doc/LLVM/openmp
+ vmove usr/share/man/man1/llvmopenmp.1
+ }
+}
+
+libllvm15_package() {
+ short_desc+=" - runtime library"
+ pkg_install() {
+ vmove "usr/lib/libLLVM-*.so*"
+ }
+}
diff --git a/srcpkgs/llvm15/update b/srcpkgs/llvm15/update
new file mode 100644
index 000000000000..e95cf26b3586
--- /dev/null
+++ b/srcpkgs/llvm15/update
@@ -0,0 +1,3 @@
+site="https://github.com/llvm/llvm-project/releases"
+pattern="llvmorg-\K(\d+.){2}\d+(-rc\d+)?"
+ignore="*-rc*"
From 426a6e25deb9c9eb75a6a314f48dc56eb518f452 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Sun, 18 Dec 2022 00:40:18 +0100
Subject: [PATCH 02/15] llvm: update to 15
---
common/shlibs | 6 +++---
srcpkgs/clang | 2 +-
srcpkgs/clang-analyzer | 2 +-
srcpkgs/clang-tools-extra | 2 +-
srcpkgs/libclang | 2 +-
srcpkgs/libclang-cpp | 2 +-
srcpkgs/libcxx | 2 +-
srcpkgs/libcxx-devel | 2 +-
srcpkgs/libcxxabi | 2 +-
srcpkgs/libcxxabi-devel | 2 +-
srcpkgs/libomp | 2 +-
srcpkgs/libomp-devel | 2 +-
srcpkgs/lld | 2 +-
srcpkgs/lld-devel | 2 +-
srcpkgs/lldb | 2 +-
srcpkgs/lldb-devel | 2 +-
srcpkgs/llvm-libunwind | 2 +-
srcpkgs/llvm-libunwind-devel | 2 +-
srcpkgs/llvm/template | 6 +++---
19 files changed, 23 insertions(+), 23 deletions(-)
diff --git a/common/shlibs b/common/shlibs
index 01818dec25db..142d64240be2 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -987,9 +987,9 @@ 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.12 lldb-12.0.0_1
-libclang.so.12 libclang-12.0.0_1
-libclang-cpp.so.12 libclang-cpp-12.0.0_1
+liblldb.so.15 lldb-15.0.7_1
+libclang.so.15 libclang-15.0.7_1
+libclang-cpp.so.15 libclang-cpp-15.0.7_1
libLLVM-11.so libllvm11-11.0.0_1
libLLVM-12.so libllvm12-12.0.0_1
libLLVM-15.so libllvm15-15.0.7_1
diff --git a/srcpkgs/clang b/srcpkgs/clang
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/clang
+++ b/srcpkgs/clang
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/clang-analyzer b/srcpkgs/clang-analyzer
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/clang-analyzer
+++ b/srcpkgs/clang-analyzer
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/clang-tools-extra b/srcpkgs/clang-tools-extra
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/clang-tools-extra
+++ b/srcpkgs/clang-tools-extra
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libclang b/srcpkgs/libclang
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libclang
+++ b/srcpkgs/libclang
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libclang-cpp b/srcpkgs/libclang-cpp
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libclang-cpp
+++ b/srcpkgs/libclang-cpp
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxx b/srcpkgs/libcxx
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxx
+++ b/srcpkgs/libcxx
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxx-devel b/srcpkgs/libcxx-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxx-devel
+++ b/srcpkgs/libcxx-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxxabi b/srcpkgs/libcxxabi
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxxabi
+++ b/srcpkgs/libcxxabi
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxxabi-devel b/srcpkgs/libcxxabi-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxxabi-devel
+++ b/srcpkgs/libcxxabi-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libomp b/srcpkgs/libomp
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libomp
+++ b/srcpkgs/libomp
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libomp-devel b/srcpkgs/libomp-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libomp-devel
+++ b/srcpkgs/libomp-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lld b/srcpkgs/lld
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lld
+++ b/srcpkgs/lld
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lld-devel b/srcpkgs/lld-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lld-devel
+++ b/srcpkgs/lld-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lldb b/srcpkgs/lldb
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lldb
+++ b/srcpkgs/lldb
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lldb-devel b/srcpkgs/lldb-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lldb-devel
+++ b/srcpkgs/lldb-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm-libunwind b/srcpkgs/llvm-libunwind
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/llvm-libunwind
+++ b/srcpkgs/llvm-libunwind
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm-libunwind-devel b/srcpkgs/llvm-libunwind-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/llvm-libunwind-devel
+++ b/srcpkgs/llvm-libunwind-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm/template b/srcpkgs/llvm/template
index a92db6f94f9f..fc1c850bd26f 100644
--- a/srcpkgs/llvm/template
+++ b/srcpkgs/llvm/template
@@ -1,11 +1,11 @@
# Template file for 'llvm'
pkgname=llvm
-version=12.0.0
+version=15
revision=1
build_style=meta
-depends="llvm12"
-replaces="llvm11>=0 llvm10>=0 llvm9>=0 llvm8>=0 llvm7>=0 llvm6.0>=0 llvm3.9>=0"
+depends="llvm15"
short_desc="LLVM meta package"
maintainer="Enno Boland <gottox@voidlinux.org>"
license="Public Domain"
homepage="https://www.voidlinux.org"
+replaces="llvm12>=0 llvm11>=0 llvm10>=0 llvm9>=0 llvm8>=0 llvm7>=0 llvm6.0>=0 llvm3.9>=0"
From dbb6384222a2a6c8d570db5c502ecac235f1120d Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Sun, 18 Dec 2022 12:20:08 +0100
Subject: [PATCH 03/15] llvm12: remove bumped subpackages
---
srcpkgs/llvm12/template | 264 +---------------------------------------
1 file changed, 1 insertion(+), 263 deletions(-)
diff --git a/srcpkgs/llvm12/template b/srcpkgs/llvm12/template
index f8ea3ba641ae..aea0b43cf573 100644
--- a/srcpkgs/llvm12/template
+++ b/srcpkgs/llvm12/template
@@ -50,55 +50,7 @@ case "$XBPS_TARGET_MACHINE" in
ppc*) configure_args+=" -DCLANG_ENABLE_CLANGD=OFF" ;;
esac
-_enabled_projects="clang;clang-tools-extra;compiler-rt;libcxx;libcxxabi;libunwind;lld"
-
-_lldb_enable=yes
-_libomp_enable=no
-
-case "$XBPS_TARGET_MACHINE" in
- ppc64le*) ;;
- ppc*|i686*) _lldb_enable=no ;;
-esac
-
-case "$XBPS_TARGET_MACHINE" in
- x86_64*|aarch64*|ppc64*) _libomp_enable=yes;;
-esac
-
-subpackages="clang-tools-extra"
-
-# must go before clang
-if [ "$_libomp_enable" = "yes" ]; then
- _enabled_projects+=";openmp"
- subpackages+=" libomp libomp-devel"
- # because of cmake nonsense referencing libomptarget.so.*
- depends+=" libomp>=${version}_${revision}"
-fi
-
-subpackages+=" clang clang-analyzer libclang libclang-cpp
- llvm-libunwind llvm-libunwind-devel libcxx libcxx-devel
- libcxxabi libcxxabi-devel libllvm12"
-
-if [ "$_lldb_enable" = "yes" ]; then
- # XXX fails to cross compile due to python
- _enabled_projects+=";lldb"
- subpackages+=" lldb lldb-devel"
-fi
-
-subpackages+=" lld lld-devel"
-
-configure_args+=" -DLLVM_ENABLE_PROJECTS=${_enabled_projects}"
-
post_patch() {
- if [ "$_lldb_enable" = "yes" ]; then
- if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
- vsed -i 's|__ptrace_request|int|g' \
- ${wrksrc}/lldb/source/Plugins/Process/Linux/NativeProcessLinux.cpp
- fi
- # disable docs for lldb as they fail to generate
- vsed -i '/add_subdirectory(docs)/d' \
- ${wrksrc}/lldb/CMakeLists.txt
- fi
-
# update config.guess for better platform detection
cp $XBPS_COMMONDIR/environment/configure/automake/config.guess \
${wrksrc}/llvm/cmake
@@ -154,14 +106,12 @@ pre_configure() {
cd build/HOST
CC="$BUILD_CC" CXX="$BUILD_CXX" CFLAGS="$BUILD_CFLAGS" \
CXXFLAGS="$BUILD_CXXFLAGS" LDFLAGS="$BUILD_LDFLAGS" \
- cmake ../.. -DCMAKE_BUILD_TYPE=Release \
- -DLLVM_ENABLE_PROJECTS=${_enabled_projects}
+ cmake ../.. -DCMAKE_BUILD_TYPE=Release
make ${makejobs} -C utils/TableGen
make ${makejobs} -C tools/clang/utils/TableGen
[ "$_lldb_enable" = "yes" ] && make ${makejobs} -C tools/lldb/utils/TableGen
configure_args+=" -DLLVM_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/llvm-tblgen"
configure_args+=" -DCLANG_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/clang-tblgen"
- [ "$_lldb_enable" = "yes" ] && configure_args+=" -DLLDB_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/lldb-tblgen"
cd ../..
fi
@@ -201,218 +151,6 @@ do_install() {
if [ "$CROSS_BUILD" ]; then
rm -f ${DESTDIR}/usr/bin/llvm-config-host
fi
-
- # Install libcxxabi headers
- vinstall ${wrksrc}/libcxxabi/include/__cxxabi_config.h 644 usr/include
- vinstall ${wrksrc}/libcxxabi/include/cxxabi.h 644 usr/include
-
- # Install libunwind headers
- vinstall ${wrksrc}/libunwind/include/__libunwind_config.h 644 usr/include
- vinstall ${wrksrc}/libunwind/include/libunwind.h 644 usr/include
- vinstall ${wrksrc}/libunwind/include/unwind.h 644 usr/include
- vinstall ${wrksrc}/libunwind/include/mach-o/compact_unwind_encoding.h \
- 644 usr/include/mach-o
-}
-
-clang-analyzer_package() {
- pycompile_dirs="usr/share/scan-view"
- depends="clang-${version}_${revision} python3 perl"
- short_desc+=" - A source code analysis framework"
- homepage="https://clang-analyzer.llvm.org/"
- pkg_install() {
- vmove usr/share/man/man1/scan-build.1
- vmove "/usr/bin/scan-*"
- vmove "/usr/share/scan-*"
- vmove "/usr/libexec/*analyzer"
- }
-}
-
-clang-tools-extra_package() {
- lib32disabled=yes
- depends="clang-${version}_${revision} python3"
- short_desc+=" - Extra Clang tools"
- homepage="https://clang.llvm.org/extra/"
- pkg_install() {
- vmove usr/include/clang-tidy
- vmove usr/bin/clang-apply-replacements
- vmove usr/bin/clang-query
- vmove usr/bin/clang-rename
- vmove usr/bin/clang-tidy
- vmove usr/bin/diagtool
- vmove usr/bin/find-all-symbols
- vmove usr/bin/hmaptool
- vmove usr/bin/modularize
- vmove usr/bin/pp-trace
- vmove usr/bin/sancov
- vmove "usr/lib/libclangApplyReplacements*"
- vmove "usr/lib/libclangQuery*"
- vmove "usr/lib/libclangTidy*"
- vmove "usr/share/clang/*tidy*"
- vmove usr/share/doc/clang-tools
- vmove usr/share/man/man1/extraclangtools.1
- vmove usr/share/man/man1/diagtool.1
- }
-}
-
-clang_package() {
- lib32disabled=yes
- depends="libstdc++-devel libgcc-devel binutils ${XBPS_TARGET_LIBC}-devel
- libclang-${version}_${revision}"
- short_desc+=" - C language family frontend"
- homepage="https://clang.llvm.org/"
- pkg_install() {
- vmove usr/include/clang
- vmove usr/include/clang-c
- vmove "usr/bin/*clang*"
- vmove usr/bin/c-index-test
- vmove usr/lib/clang
- vmove usr/lib/cmake/clang
- vmove "usr/lib/libclang*.a"
- vmove "usr/lib/libclang*.so"
- vmove usr/share/clang
- vmove usr/share/doc/clang
- vmove usr/share/man/man1/clang.1
- }
-}
-
-libclang_package() {
- short_desc+=" - C frontend runtime library"
- pkg_install() {
- vmove "usr/lib/libclang.so.*"
- }
-}
-
-libclang-cpp_package() {
- short_desc+=" - C frontend runtime library (C++ interface)"
- pkg_install() {
- vmove "usr/lib/libclang-cpp.so.*"
- }
-}
-
-lld_package() {
- lib32disabled=yes
- short_desc+=" - linker"
- homepage="https://lld.llvm.org"
- pkg_install() {
- vmove usr/bin/lld*
- vmove usr/bin/wasm-ld
- vmove usr/bin/ld.lld*
- vmove usr/bin/ld64.lld*
- vmove usr/share/doc/lld
- }
-}
-
-lld-devel_package() {
- lib32disabled=yes
- short_desc+=" - linker - development files"
- homepage="https://lld.llvm.org"
- depends="lld>=${version}_${revision}"
- pkg_install() {
- vmove usr/include/lld
- vmove usr/lib/cmake/lld
- vmove "usr/lib/liblld*a"
- }
-}
-
-lldb_package() {
- lib32disabled=yes
- depends+=" python3-six"
- short_desc+=" - LLDB debugger"
- homepage="https://lldb.llvm.org/"
- pkg_install() {
- vmove usr/bin/*lldb*
- vmove usr/lib/liblldb*so.*
- vmove /usr/lib/python*
- }
-}
-
-lldb-devel_package() {
- lib32disabled=yes
- depends="lldb>=${version}_${revision}"
- short_desc+=" - LLDB debugger - development files"
- pkg_install() {
- vmove usr/include/lldb
- vmove "usr/lib/liblldb*.so"
- }
-}
-
-llvm-libunwind_package() {
- short_desc+=" - libunwind"
- pkg_install() {
- vmove "usr/lib/libunwind.so.*"
- }
-}
-
-llvm-libunwind-devel_package() {
- short_desc+=" - libunwind - development files"
- depends="llvm-libunwind>=${version}_${revision}"
- conflicts="libunwind-devel>=0"
- pkg_install() {
- vmove usr/lib/libunwind.so
- vmove usr/lib/libunwind.a
- vmove "usr/include/*unwind*"
- vmove usr/include/mach-o
- vmove usr/share/doc/libunwind
- }
-}
-
-libcxxabi_package() {
- short_desc+=" - low level support for libc++"
- pkg_install() {
- vmove "usr/lib/libc++abi.so.*"
- }
-}
-
-libcxxabi-devel_package() {
- short_desc+=" - low level support for libc++ - development files"
- depends="libcxxabi>=${version}_${revision}"
- pkg_install() {
- vmove usr/lib/libc++abi.so
- vmove usr/lib/libc++abi.a
- vmove "usr/include/*cxxabi*"
- }
-}
-
-libcxx_package() {
- short_desc+=" - C++ standard library"
- pkg_install() {
- vmove "usr/lib/libc++.so.*"
- }
-}
-
-libcxx-devel_package() {
- short_desc+=" - C++ standard library - development files"
- depends="libcxx>=${version}_${revision}"
- pkg_install() {
- vmove usr/lib/libc++.so
- vmove usr/lib/libc++.a
- vmove usr/lib/libc++experimental.a
- vmove usr/include/c++
- vmove usr/share/doc/libcxx
- }
-}
-
-libomp_package() {
- short_desc+=" - Clang OpenMP support library"
- pkg_install() {
- vmove usr/lib/libomp.so
- vmove "usr/lib/libomptarget.rtl.*.so"
- vmove usr/lib/libarcher.so
- vmove "usr/lib/libomp*.so.*"
- }
-}
-
-libomp-devel_package() {
- short_desc+=" - Clang OpenMP support library - development files"
- depends="libomp>=${version}_${revision}"
- pkg_install() {
- vmove "usr/lib/libomp*.so"
- vmove "usr/lib/libarcher*"
- vmove "usr/include/omp*.h"
- vmove "usr/lib/clang/${version}/include/omp*.h"
- vmove usr/share/man/man1/llvmopenmp.1
- vmove usr/share/doc/openmp
- }
}
libllvm12_package() {
From b564d8935d98541bd21ff6f42c77ece159a491d8 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:27:03 +0100
Subject: [PATCH 04/15] mesa: rebuild for llvm15
---
srcpkgs/mesa/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/mesa/template b/srcpkgs/mesa/template
index 4c3c9ec6039e..0641b28a80d6 100644
--- a/srcpkgs/mesa/template
+++ b/srcpkgs/mesa/template
@@ -1,7 +1,7 @@
# Template file for 'mesa'
pkgname=mesa
version=22.2.4
-revision=2
+revision=3
build_style=meson
configure_args="-Dglvnd=true -Dshared-glapi=enabled -Dgbm=enabled -Degl=enabled
-Dosmesa=true -Dgles1=enabled -Dgles2=enabled -Dglx=dri -Ddri3=enabled
From 3e7d62ff1a228644f3a700015afdeda5970af1c1 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:34:04 +0100
Subject: [PATCH 05/15] bcc: rebuild for llvm15
---
srcpkgs/bcc/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/bcc/template b/srcpkgs/bcc/template
index 8e9c453c38c6..9dfcc7188bdc 100644
--- a/srcpkgs/bcc/template
+++ b/srcpkgs/bcc/template
@@ -1,7 +1,7 @@
# Template file for 'bcc'
pkgname=bcc
version=0.26.0
-revision=1
+revision=2
build_style=cmake
configure_args="-DREVISION=${version} -DENABLE_LLVM_SHARED=1"
hostmakedepends="flex python3"
From 15d9e20a3917cdc031619df353271081e27b3764 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:37:25 +0100
Subject: [PATCH 06/15] bpftrace: rebuild for llvm15
---
srcpkgs/bpftrace/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/bpftrace/template b/srcpkgs/bpftrace/template
index 857815d29eef..47f2b5e77024 100644
--- a/srcpkgs/bpftrace/template
+++ b/srcpkgs/bpftrace/template
@@ -1,7 +1,7 @@
# Template file for 'bpftrace'
pkgname=bpftrace
version=0.16.0
-revision=1
+revision=2
archs="x86_64* aarch64* ppc64*"
build_style=cmake
configure_args="-DBUILD_TESTING=OFF" # needs root to run
From dba4d1c608c8bd4b9aea3f10607f4e420aaf372a Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:43:53 +0100
Subject: [PATCH 07/15] CastXML: rebuild for llvm15
---
srcpkgs/CastXML/template | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/srcpkgs/CastXML/template b/srcpkgs/CastXML/template
index 5d7d9503658c..28c424c78073 100644
--- a/srcpkgs/CastXML/template
+++ b/srcpkgs/CastXML/template
@@ -1,7 +1,7 @@
# Template file for 'CastXML'
pkgname=CastXML
version=0.4.6
-revision=1
+revision=2
build_style=cmake
configure_args="-DSPHINX_MAN=YES -DCastXML_INSTALL_MAN_DIR=share/man"
hostmakedepends="clang python3-Sphinx"
@@ -12,8 +12,8 @@ short_desc="C-family abstract syntax tree XML output tool"
maintainer="Evgeny Ermakov <evgeny.v.ermakov@gmail.com>"
license="Apache-2.0"
homepage="https://github.com/CastXML/CastXML"
-distfiles="https://github.com/CastXML/CastXML/archive/v${version}.tar.gz"
-checksum=8dcdbc1f23a130e4bdb0b09f57c30761a02a346b4db4037555048af2a293d66a
+distfiles="https://github.com/CastXML/CastXML/archive/refs/tags/v${version}.tar.gz"
+checksum=bb9024ec9ea5082e0d527f19bf3c2df79f1699f54b6cec168c024e727b32e6d1
post_install() {
rm -r ${DESTDIR}/usr/share/castxml/clang/include
From afe9e29644268cb76ef3707b25de08c8d876cce4 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:48:55 +0100
Subject: [PATCH 08/15] ccls: rebuild for llvm15
---
srcpkgs/ccls/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/ccls/template b/srcpkgs/ccls/template
index 82fa61933878..ecc9f3e38a5d 100644
--- a/srcpkgs/ccls/template
+++ b/srcpkgs/ccls/template
@@ -1,7 +1,7 @@
# Template file for 'ccls'
pkgname=ccls
version=0.20220729
-revision=1
+revision=2
build_style=cmake
hostmakedepends="clang-tools-extra"
makedepends="clang-tools-extra libxml2-devel llvm ncurses-devel rapidjson zlib-devel"
From dee863d929eeb15f501577090a0457986d1f6a9a Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:52:14 +0100
Subject: [PATCH 09/15] include-what-you-use: update to 0.19
---
srcpkgs/include-what-you-use/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/include-what-you-use/template b/srcpkgs/include-what-you-use/template
index d3655709c20c..1a30bc04bb2d 100644
--- a/srcpkgs/include-what-you-use/template
+++ b/srcpkgs/include-what-you-use/template
@@ -1,6 +1,6 @@
# Template file for 'include-what-you-use'
pkgname=include-what-you-use
-version=0.16
+version=0.19
revision=1
build_style=cmake
configure_args="-DIWYU_LLVM_ROOT_PATH=${XBPS_CROSS_BASE}/usr "
@@ -11,7 +11,7 @@ maintainer="Leah Neukirchen <leah@vuxu.org>"
license="NCSA"
homepage="https://include-what-you-use.org/"
distfiles="https://include-what-you-use.org/downloads/${pkgname}-${version}.src.tar.gz"
-checksum=8d6fc9b255343bc1e5ec459e39512df1d51c60e03562985e0076036119ff5a1c
+checksum=2b10157b60ea08adc08e3896b4921c73fcadd5ec4eb652b29a34129d501e5ee0
python_version=3
post_install() {
From 65208d4567104746aea6984de11597484de3e207 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 15:11:06 +0100
Subject: [PATCH 10/15] SPIRV-LLVM-Translator: update to 15.0.0
---
srcpkgs/SPIRV-LLVM-Translator/template | 13 +++++++------
1 file changed, 7 insertions(+), 6 deletions(-)
diff --git a/srcpkgs/SPIRV-LLVM-Translator/template b/srcpkgs/SPIRV-LLVM-Translator/template
index a2754e58c0e8..bee99f9bcbb2 100644
--- a/srcpkgs/SPIRV-LLVM-Translator/template
+++ b/srcpkgs/SPIRV-LLVM-Translator/template
@@ -1,19 +1,20 @@
# Template file for 'SPIRV-LLVM-Translator'
pkgname=SPIRV-LLVM-Translator
-version=12.0.0
-revision=2
+version=15.0.0
+revision=1
build_style=cmake
make_build_args="llvm-spirv"
configure_args="-Wno-dev -DLLVM_LINK_LLVM_DYLIB=ON -DCMAKE_SKIP_RPATH=ON
- -DLLVM_SPIRV_INCLUDE_TESTS=OFF -DBUILD_SHARED_LIBS=ON"
+ -DLLVM_SPIRV_INCLUDE_TESTS=OFF -DBUILD_SHARED_LIBS=ON
+ -DLLVM_EXTERNAL_SPIRV_HEADERS_SOURCE_DIR=/usr"
hostmakedepends="clang llvm"
-makedepends="clang-tools-extra llvm"
+makedepends="clang-tools-extra llvm SPIRV-Headers"
short_desc="API and commands for processing SPIR-V modules"
maintainer="Orphaned <orphan@voidlinux.org>"
license="NCSA"
homepage="https://github.com/KhronosGroup/SPIRV-LLVM-Translator"
-distfiles="https://github.com/KhronosGroup/${pkgname}/archive/refs/tags/v${version}.tar.gz"
-checksum=6e4fad04203f25fcde4c308c53e9f59bd05a390978992db3212d4b63aff62108
+distfiles="https://github.com/KhronosGroup/SPIRV-LLVM-Translator/archive/refs/tags/v${version}.tar.gz"
+checksum=b1bebd77f72988758c00852e78c2ddc545815a612169a0cb377d021e2f846d88
post_install() {
vlicense LICENSE.TXT
From 45e6a1934830c750e17cdfaa12e7d66bf01931b2 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Fri, 6 Jan 2023 17:11:04 +0100
Subject: [PATCH 11/15] rtags: rebuild for llvm15
---
srcpkgs/rtags/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/rtags/template b/srcpkgs/rtags/template
index b496a1b0e721..9b161e690d76 100644
--- a/srcpkgs/rtags/template
+++ b/srcpkgs/rtags/template
@@ -1,7 +1,7 @@
# Template file for 'rtags'
pkgname=rtags
version=2.38
-revision=5
+revision=6
build_style=cmake
# Don't run tests in do_install, please.
configure_args="-DSKIP_CTEST=TRUE"
From 047510489cea90f6b73eee9d3e77f3cf5daad705 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Fri, 6 Jan 2023 17:14:14 +0100
Subject: [PATCH 12/15] juCi++: rebuild for llvm15
---
srcpkgs/juCi++/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/juCi++/template b/srcpkgs/juCi++/template
index c1969237f11d..416bde7cc4d0 100644
--- a/srcpkgs/juCi++/template
+++ b/srcpkgs/juCi++/template
@@ -1,7 +1,7 @@
# Template file for 'juCi++'
pkgname=juCi++
version=1.7.2
-revision=2
+revision=3
_libclangmm_commit="9704b9b6de0982a588fa41741157d5640afedf30"
_tiny_commit="839ff806dc447ff49af80f9a9eaa7949f770f8e5"
create_wrksrc=yes
From 2fe00219614e3d7e6b6f6cd5f7b457b5a859837a Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Sat, 7 Jan 2023 11:31:14 +0100
Subject: [PATCH 13/15] qt5: rebuild for llvm15
---
srcpkgs/qt5/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/qt5/template b/srcpkgs/qt5/template
index 233596587525..bc9170215483 100644
--- a/srcpkgs/qt5/template
+++ b/srcpkgs/qt5/template
@@ -3,7 +3,7 @@ pkgname=qt5
version=5.15.7+20221119
# commit f8c9fb304bc3e53b3aa07f962cd74e9160decccc
# base repo: https://invent.kde.org/qt/qt/qt5
-revision=1
+revision=2
build_style=meta
hostmakedepends="cmake clang flex perl glib-devel pkg-config
python re2c ruby which"
From 4d3debd1f7f79a7ba3e1bc22dd10e9f73fb2e005 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Mon, 9 Jan 2023 01:22:18 +0100
Subject: [PATCH 14/15] codelite: rebuild for llvm15
---
srcpkgs/codelite/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/codelite/template b/srcpkgs/codelite/template
index 6b8b007c8a43..c6115e0274ce 100644
--- a/srcpkgs/codelite/template
+++ b/srcpkgs/codelite/template
@@ -1,7 +1,7 @@
# Template file for 'codelite'
pkgname=codelite
version=16.0.0
-revision=2
+revision=3
create_wrksrc=yes
build_style=cmake
build_helper=cmake-wxWidgets-gtk3
From 3607a73fb0d38e4d470706ecb4af8f3dcaaede31 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Mon, 9 Jan 2023 01:58:21 +0100
Subject: [PATCH 15/15] kdevelop: rebuild for llvm15
---
srcpkgs/kdevelop/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/kdevelop/template b/srcpkgs/kdevelop/template
index 5eb275583138..c32ee5240a44 100644
--- a/srcpkgs/kdevelop/template
+++ b/srcpkgs/kdevelop/template
@@ -1,7 +1,7 @@
# Template file for 'kdevelop'
pkgname=kdevelop
version=22.12.1
-revision=1
+revision=2
build_style=cmake
configure_args="-DBUILD_TESTING=OFF"
hostmakedepends="extra-cmake-modules qt5-qmake qt5-host-tools qt5-tools
^ permalink raw reply [flat|nested] 96+ messages in thread
* Re: [PR PATCH] [Updated] [WIP] LLVM 15
2022-11-28 15:30 [PR PATCH] [WIP] LLVM 15 tranzystorek-io
` (48 preceding siblings ...)
2023-01-15 1:46 ` [PR PATCH] [Updated] " tranzystorek-io
@ 2023-01-16 13:45 ` tranzystorek-io
2023-01-17 19:01 ` [PR REVIEW] " Johnnynator
` (44 subsequent siblings)
94 siblings, 0 replies; 96+ messages in thread
From: tranzystorek-io @ 2023-01-16 13:45 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 1142 bytes --]
There is an updated pull request by tranzystorek-io against master on the void-packages repository
https://github.com/tranzystorek-io/void-packages llvm15
https://github.com/void-linux/void-packages/pull/40821
[WIP] LLVM 15
[ci skip]
TODO:
- [ ] Adjust patches marked as `.patch.skip`
- [x] Make libomp a shlib (change so file name and install a symlink)
- [x] Avoid creating triplet dirs under /usr/
TODO LLVM rdeps:
- [ ] clazy (breaking changes in clang API)
- [x] beignet (https://github.com/void-linux/void-packages/pull/41529)
- [ ] ispc (1.18.1 supports LLVM `<= 14`)
- [ ] ldc (1.30.0 supports LLVM `<= 14`)
- [ ] ghdl (2.0.0 supports LLVM `<=14`)
- [x] qt
- [ ] qtcreator (breaking changes in clang-format API)
- [ ] shiboken2 (tests failing with llvm15)
- [x] bpftrace (https://github.com/void-linux/void-packages/pull/39002)
- [ ] libclc (tests fail with unresolved calls https://gist.githubusercontent.com/tranzystorek-io/a2aa8a0d8010af5299f7d1ff9f82c22b/raw/6d316d99d6079990b73ae77d274dd120b9560589/LastTest.log)
A patch file from https://github.com/void-linux/void-packages/pull/40821.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-llvm15-40821.patch --]
[-- Type: text/x-diff, Size: 80836 bytes --]
From ea55ec842f4a6624957d72d2a9a3c401cc462870 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Sun, 18 Dec 2022 00:36:59 +0100
Subject: [PATCH 01/16] New package: llvm15-15.0.7
---
common/shlibs | 3 +
srcpkgs/libllvm15 | 1 +
.../llvm15/files/llvm-Config-llvm-config.h | 9 +
...clang-001-fix-unwind-chain-inclusion.patch | 44 ++
.../patches/clang-002-add-musl-triples.patch | 110 +++++
.../clang-003-ppc64-dynamic-linker-path.patch | 13 +
.../patches/clang-004-ppc64-musl-elfv2.patch | 48 ++
.../compiler-rt-sanitizer-ppc64-musl.patch | 35 ++
.../compiler-rt-xray-ppc64-musl.patch.skip | 62 +++
srcpkgs/llvm15/patches/libcxx-musl.patch | 26 ++
srcpkgs/llvm15/patches/libcxx-ppc.patch | 22 +
.../llvm15/patches/libcxx-ssp-nonshared.patch | 11 +
srcpkgs/llvm15/patches/libcxxabi-dl.patch | 25 +
srcpkgs/llvm15/patches/libcxxabi-musl.patch | 37 ++
srcpkgs/llvm15/patches/libomp-soname.patch | 12 +
.../llvm15/patches/libunwind-ppc32.patch.skip | 63 +++
srcpkgs/llvm15/patches/lldb-musl.patch | 40 ++
srcpkgs/llvm15/patches/llvm-001-musl.patch | 57 +++
.../patches/llvm-002-musl-ppc64-elfv2.patch | 30 ++
.../patches/llvm-003-ppc-secureplt.patch | 11 +
.../patches/llvm-004-override-opt.patch | 18 +
.../llvm15/patches/llvm-005-ppc-bigpic.patch | 36 ++
.../patches/llvm-006-aarch64-mf_exec.patch | 25 +
srcpkgs/llvm15/template | 437 ++++++++++++++++++
srcpkgs/llvm15/update | 3 +
25 files changed, 1178 insertions(+)
create mode 120000 srcpkgs/libllvm15
create mode 100644 srcpkgs/llvm15/files/llvm-Config-llvm-config.h
create mode 100644 srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch
create mode 100644 srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch
create mode 100644 srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch
create mode 100644 srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch
create mode 100644 srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch
create mode 100644 srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip
create mode 100644 srcpkgs/llvm15/patches/libcxx-musl.patch
create mode 100644 srcpkgs/llvm15/patches/libcxx-ppc.patch
create mode 100644 srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch
create mode 100644 srcpkgs/llvm15/patches/libcxxabi-dl.patch
create mode 100644 srcpkgs/llvm15/patches/libcxxabi-musl.patch
create mode 100644 srcpkgs/llvm15/patches/libomp-soname.patch
create mode 100644 srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip
create mode 100644 srcpkgs/llvm15/patches/lldb-musl.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-001-musl.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-004-override-opt.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch
create mode 100644 srcpkgs/llvm15/template
create mode 100644 srcpkgs/llvm15/update
diff --git a/common/shlibs b/common/shlibs
index 0a803960ab55..01818dec25db 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -992,6 +992,9 @@ libclang.so.12 libclang-12.0.0_1
libclang-cpp.so.12 libclang-cpp-12.0.0_1
libLLVM-11.so libllvm11-11.0.0_1
libLLVM-12.so libllvm12-12.0.0_1
+libLLVM-15.so libllvm15-15.0.7_1
+libomp.so.5 libomp-15.0.7_1
+libomptarget.so.15 libomp-15.0.7_1
libisofs.so.6 libisofs-0.6.24_1
libmpack.so.0 libmpack-1.0.5_1
libGeoIP.so.1 libgeoip-1.4.8_1
diff --git a/srcpkgs/libllvm15 b/srcpkgs/libllvm15
new file mode 120000
index 000000000000..ad57a969b9f9
--- /dev/null
+++ b/srcpkgs/libllvm15
@@ -0,0 +1 @@
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm15/files/llvm-Config-llvm-config.h b/srcpkgs/llvm15/files/llvm-Config-llvm-config.h
new file mode 100644
index 000000000000..2fa08c9be696
--- /dev/null
+++ b/srcpkgs/llvm15/files/llvm-Config-llvm-config.h
@@ -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
diff --git a/srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch b/srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch
new file mode 100644
index 000000000000..e4eaa7783e7a
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch
@@ -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
diff --git a/srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch b/srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch
new file mode 100644
index 000000000000..25688d40dbc2
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch
@@ -0,0 +1,110 @@
+--- a/clang/lib/Driver/ToolChains/Gnu.cpp
++++ b/clang/lib/Driver/ToolChains/Gnu.cpp
+@@ -2086,7 +2086,8 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
+ static const char *const ARMHFTriples[] = {"arm-linux-gnueabihf",
+ "armv7hl-redhat-linux-gnueabi",
+ "armv6hl-suse-linux-gnueabi",
+- "armv7hl-suse-linux-gnueabi"};
++ "armv7hl-suse-linux-gnueabi",
++ "armv7l-linux-gnueabihf"};
+ static const char *const ARMebLibDirs[] = {"/lib"};
+ static const char *const ARMebTriples[] = {"armeb-linux-gnueabi",
+ "armeb-linux-androideabi"};
+@@ -2153,8 +2154,7 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
+ "powerpc64-suse-linux", "powerpc-montavista-linuxspe"};
+ static const char *const PPCLELibDirs[] = {"/lib32", "/lib"};
+ static const char *const PPCLETriples[] = {"powerpcle-linux-gnu",
+- "powerpcle-unknown-linux-gnu",
+- "powerpcle-linux-musl"};
++ "powerpcle-unknown-linux-gnu"};
+
+ static const char *const PPC64LibDirs[] = {"/lib64", "/lib"};
+ static const char *const PPC64Triples[] = {
+@@ -2235,6 +2235,87 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
+ return;
+ }
+
++ if (TargetTriple.isMusl()) {
++ static const char *const AArch64MuslTriples[] = {"aarch64-linux-musl"};
++ static const char *const ARMHFMuslTriples[] = {
++ "arm-linux-musleabihf", "armv7l-linux-musleabihf"
++ };
++ static const char *const ARMMuslTriples[] = {"arm-linux-musleabi"};
++ static const char *const X86_64MuslTriples[] = {"x86_64-linux-musl"};
++ static const char *const X86MuslTriples[] = {"i686-linux-musl"};
++ static const char *const MIPSMuslTriples[] = {
++ "mips-linux-musl", "mipsel-linux-musl",
++ "mipsel-linux-muslhf", "mips-linux-muslhf"
++ };
++ static const char *const PPCMuslTriples[] = {"powerpc-linux-musl"};
++ static const char *const PPCLEMuslTriples[] = {"powerpcle-linux-musl"};
++ static const char *const PPC64MuslTriples[] = {"powerpc64-linux-musl"};
++ static const char *const PPC64LEMuslTriples[] = {"powerpc64le-linux-musl"};
++
++ switch (TargetTriple.getArch()) {
++ case llvm::Triple::aarch64:
++ LibDirs.append(begin(AArch64LibDirs), end(AArch64LibDirs));
++ TripleAliases.append(begin(AArch64MuslTriples), end(AArch64MuslTriples));
++ BiarchLibDirs.append(begin(AArch64LibDirs), end(AArch64LibDirs));
++ BiarchTripleAliases.append(begin(AArch64MuslTriples), end(AArch64MuslTriples));
++ break;
++ case llvm::Triple::arm:
++ LibDirs.append(begin(ARMLibDirs), end(ARMLibDirs));
++ if (TargetTriple.getEnvironment() == llvm::Triple::MuslEABIHF) {
++ TripleAliases.append(begin(ARMHFMuslTriples), end(ARMHFMuslTriples));
++ } else {
++ TripleAliases.append(begin(ARMMuslTriples), end(ARMMuslTriples));
++ }
++ break;
++ case llvm::Triple::x86_64:
++ LibDirs.append(begin(X86_64LibDirs), end(X86_64LibDirs));
++ TripleAliases.append(begin(X86_64MuslTriples), end(X86_64MuslTriples));
++ BiarchLibDirs.append(begin(X86LibDirs), end(X86LibDirs));
++ BiarchTripleAliases.append(begin(X86MuslTriples), end(X86MuslTriples));
++ break;
++ case llvm::Triple::x86:
++ LibDirs.append(begin(X86LibDirs), end(X86LibDirs));
++ TripleAliases.append(begin(X86MuslTriples), end(X86MuslTriples));
++ BiarchLibDirs.append(begin(X86_64LibDirs), end(X86_64LibDirs));
++ BiarchTripleAliases.append(begin(X86_64MuslTriples), end(X86_64MuslTriples));
++ break;
++ case llvm::Triple::mips:
++ LibDirs.append(begin(MIPSLibDirs), end(MIPSLibDirs));
++ TripleAliases.append(begin(MIPSMuslTriples), end(MIPSMuslTriples));
++ break;
++ case llvm::Triple::ppc:
++ LibDirs.append(begin(PPCLibDirs), end(PPCLibDirs));
++ TripleAliases.append(begin(PPCMuslTriples), end(PPCMuslTriples));
++ BiarchLibDirs.append(begin(PPC64LibDirs), end(PPC64LibDirs));
++ BiarchTripleAliases.append(begin(PPC64MuslTriples), end(PPC64MuslTriples));
++ break;
++ case llvm::Triple::ppcle:
++ LibDirs.append(begin(PPCLELibDirs), end(PPCLELibDirs));
++ TripleAliases.append(begin(PPCLEMuslTriples), end(PPCLEMuslTriples));
++ BiarchLibDirs.append(begin(PPC64LELibDirs), end(PPC64LELibDirs));
++ BiarchTripleAliases.append(begin(PPC64LEMuslTriples), end(PPC64LEMuslTriples));
++ break;
++ case llvm::Triple::ppc64:
++ LibDirs.append(begin(PPC64LibDirs), end(PPC64LibDirs));
++ TripleAliases.append(begin(PPC64MuslTriples), end(PPC64MuslTriples));
++ BiarchLibDirs.append(begin(PPCLibDirs), end(PPCLibDirs));
++ BiarchTripleAliases.append(begin(PPCMuslTriples), end(PPCMuslTriples));
++ break;
++ case llvm::Triple::ppc64le:
++ LibDirs.append(begin(PPC64LELibDirs), end(PPC64LELibDirs));
++ TripleAliases.append(begin(PPC64LEMuslTriples), end(PPC64LEMuslTriples));
++ BiarchLibDirs.append(begin(PPCLELibDirs), end(PPCLELibDirs));
++ BiarchTripleAliases.append(begin(PPCLEMuslTriples), end(PPCLEMuslTriples));
++ break;
++ default:
++ break;
++ }
++ TripleAliases.push_back(TargetTriple.str());
++ if (TargetTriple.str() != BiarchTriple.str())
++ BiarchTripleAliases.push_back(BiarchTriple.str());
++ return;
++ }
++
+ // Android targets should not use GNU/Linux tools or libraries.
+ if (TargetTriple.isAndroid()) {
+ static const char *const AArch64AndroidTriples[] = {
diff --git a/srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch b/srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch
new file mode 100644
index 000000000000..4ad6412d1e6c
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch
@@ -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 =
diff --git a/srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch b/srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch
new file mode 100644
index 000000000000..21fc8003c5f1
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch
@@ -0,0 +1,48 @@
+--- a/clang/lib/Basic/Targets/PPC.h
++++ b/clang/lib/Basic/Targets/PPC.h
+@@ -415,11 +415,10 @@ public:
+ LongDoubleFormat = &llvm::APFloat::IEEEdouble();
+ } else if ((Triple.getArch() == llvm::Triple::ppc64le)) {
+ DataLayout = "e-m:e-i64:64-n32:64";
+- ABI = "elfv2";
+ } else {
+ DataLayout = "E-m:e-i64:64-n32:64";
+- ABI = "elfv1";
+ }
++ ABI = "elfv2";
+
+ if (Triple.isOSFreeBSD() || Triple.isOSOpenBSD() || Triple.isMusl()) {
+ LongDoubleWidth = LongDoubleAlign = 64;
+--- a/clang/lib/CodeGen/TargetInfo.cpp
++++ b/clang/lib/CodeGen/TargetInfo.cpp
+@@ -10927,9 +10927,9 @@ const TargetCodeGenInfo &CodeGenModule::getTargetCodeGenInfo() {
+ return SetCGInfo(new AIXTargetCodeGenInfo(Types, /*Is64Bit*/ true));
+
+ if (Triple.isOSBinFormatELF()) {
+- PPC64_SVR4_ABIInfo::ABIKind Kind = PPC64_SVR4_ABIInfo::ELFv1;
+- if (getTarget().getABI() == "elfv2")
+- Kind = PPC64_SVR4_ABIInfo::ELFv2;
++ PPC64_SVR4_ABIInfo::ABIKind Kind = PPC64_SVR4_ABIInfo::ELFv2;
++ if (getTarget().getABI() == "elfv1")
++ Kind = PPC64_SVR4_ABIInfo::ELFv1;
+ bool IsSoftFloat = CodeGenOpts.FloatABI == "soft";
+
+ return SetCGInfo(
+--- a/clang/lib/Driver/ToolChains/Clang.cpp
++++ b/clang/lib/Driver/ToolChains/Clang.cpp
+@@ -1920,14 +1920,7 @@ void Clang::AddPPCTargetArgs(const ArgList &Args,
+ const llvm::Triple &T = getToolChain().getTriple();
+ if (T.isOSBinFormatELF()) {
+ switch (getToolChain().getArch()) {
+- case llvm::Triple::ppc64: {
+- if ((T.isOSFreeBSD() && T.getOSMajorVersion() >= 13) ||
+- T.isOSOpenBSD() || T.isMusl())
+- ABIName = "elfv2";
+- else
+- ABIName = "elfv1";
+- break;
+- }
++ case llvm::Triple::ppc64:
+ case llvm::Triple::ppc64le:
+ ABIName = "elfv2";
+ break;
diff --git a/srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch b/srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch
new file mode 100644
index 000000000000..360cfc1ba7f1
--- /dev/null
+++ b/srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch
@@ -0,0 +1,35 @@
+--- 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__) || SANITIZER_RISCV64
++ defined(__hexagon__) || defined(__powerpc__) || 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_ANDROID
++#if (defined(__aarch64__) || defined(__powerpc__) || SANITIZER_RISCV64) && !SANITIZER_ANDROID
+ // GLIBC 2.20+ sys/user does not include asm/ptrace.h
+ # include <asm/ptrace.h>
+ #endif
diff --git a/srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip b/srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip
new file mode 100644
index 000000000000..d0b61c80c897
--- /dev/null
+++ b/srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip
@@ -0,0 +1,62 @@
+--- a/compiler-rt/lib/xray/xray_powerpc64.inc
++++ b/compiler-rt/lib/xray/xray_powerpc64.inc
+@@ -12,7 +12,13 @@
+
+ #include <cstdint>
+ #include <mutex>
++#ifdef __GLIBC__
+ #include <sys/platform/ppc.h>
++#else
++#include <cctype>
++#include <cstring>
++#include <cstdlib>
++#endif
+
+ #include "xray_defs.h"
+
+@@ -20,13 +26,45 @@ namespace __xray {
+
+ ALWAYS_INLINE uint64_t readTSC(uint8_t &CPU) XRAY_NEVER_INSTRUMENT {
+ CPU = 0;
++#ifdef __GLIBC__
+ return __ppc_get_timebase();
++#else
++ return __builtin_ppc_get_timebase();
++#endif
+ }
+
+ inline uint64_t getTSCFrequency() XRAY_NEVER_INSTRUMENT {
+ static std::mutex M;
+ std::lock_guard<std::mutex> Guard(M);
++#ifdef __GLIBC__
+ return __ppc_get_timebase_freq();
++#else
++ /* FIXME: a less dirty implementation? */
++ static uint64_t base;
++ if (!base) {
++ FILE *f = fopen("/proc/cpuinfo", "rb");
++ if (f) {
++ ssize_t nr;
++ /* virtually always big enough to hold the line */
++ char buf[512];
++ while (fgets(buf, sizeof(buf), f)) {
++ char *ret = strstr(buf, "timebase");
++ if (!ret) {
++ continue;
++ }
++ ret += sizeof("timebase") - 1;
++ ret = strchr(ret, ':');
++ if (!ret) {
++ continue;
++ }
++ base = strtoul(ret + 1, nullptr, 10);
++ break;
++ }
++ fclose(f);
++ }
++ }
++ return base;
++#endif
+ }
+
+ inline bool probeRequiredCPUFeatures() XRAY_NEVER_INSTRUMENT {
diff --git a/srcpkgs/llvm15/patches/libcxx-musl.patch b/srcpkgs/llvm15/patches/libcxx-musl.patch
new file mode 100644
index 000000000000..bbd31ffc2cb1
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxx-musl.patch
@@ -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,
+ typename remove_reference<decltype(errno)>::type __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
+ typename remove_reference<decltype(errno)>::type __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,
+ typename remove_reference<decltype(errno)>::type __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
+ typename remove_reference<decltype(errno)>::type __current_errno = errno;
+ if (__current_errno == 0)
+ errno = __save_errno;
diff --git a/srcpkgs/llvm15/patches/libcxx-ppc.patch b/srcpkgs/llvm15/patches/libcxx-ppc.patch
new file mode 100644
index 000000000000..7a92f8004e1c
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxx-ppc.patch
@@ -0,0 +1,22 @@
+This ensures `is_iec559` is defined correctly under all long double ABIs,
+including musl and its 64-bit long double. Also, `__ppc__` or `__ppc64__`
+is not defined on gcc.
+
+--- a/libcxx/include/limits
++++ b/libcxx/include/limits
+@@ -426,8 +426,14 @@ protected:
+ _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type signaling_NaN() _NOEXCEPT {return __builtin_nansl("");}
+ _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type denorm_min() _NOEXCEPT {return __LDBL_DENORM_MIN__;}
+
+-#if (defined(__ppc__) || defined(__ppc64__))
++#if defined(__powerpc__) || defined(__powerpc64__)
++#if (__LDBL_MAX_EXP__ > __DBL_MAX_EXP__) || (__LDBL_MANT_DIG__ == __DBL_MANT_DIG__)
++ /* IEEE 754 quadruple or double precision */
++ static _LIBCPP_CONSTEXPR const bool is_iec559 = true;
++#else
++ /* 128-bit IBM double-double */
+ static _LIBCPP_CONSTEXPR const bool is_iec559 = false;
++#endif
+ #else
+ static _LIBCPP_CONSTEXPR const bool is_iec559 = true;
+ #endif
diff --git a/srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch b/srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch
new file mode 100644
index 000000000000..70292beb2fcd
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch
@@ -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()
diff --git a/srcpkgs/llvm15/patches/libcxxabi-dl.patch b/srcpkgs/llvm15/patches/libcxxabi-dl.patch
new file mode 100644
index 000000000000..3a15f9db8c98
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxxabi-dl.patch
@@ -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 @@
+ target_link_libraries(${target} PRIVATE m)
+ endif()
+
++ if (LIBCXX_HAS_C_LIB)
++ target_link_libraries(${target} PRIVATE dl)
++ endif()
++
+ if (LIBCXX_HAS_RT_LIB)
+ target_link_libraries(${target} PRIVATE rt)
+ endif()
diff --git a/srcpkgs/llvm15/patches/libcxxabi-musl.patch b/srcpkgs/llvm15/patches/libcxxabi-musl.patch
new file mode 100644
index 000000000000..55bf6f5aaa08
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxxabi-musl.patch
@@ -0,0 +1,37 @@
+diff --git a/libcxx/include/__support/musl/xlocale.h b/libcxx/include/__support/musl/xlocale.h
+index e674a41fa..f546119b9 100644
+--- a/libcxx/include/__support/musl/xlocale.h
++++ b/libcxx/include/__support/musl/xlocale.h
+@@ -24,27 +24,27 @@
+ extern "C" {
+ #endif
+
+-inline _LIBCPP_HIDE_FROM_ABI long long
++static inline long long
+ strtoll_l(const char *__nptr, char **__endptr, int __base, locale_t) {
+ return ::strtoll(__nptr, __endptr, __base);
+ }
+
+-inline _LIBCPP_HIDE_FROM_ABI unsigned long long
++static inline unsigned long long
+ strtoull_l(const char *__nptr, char **__endptr, int __base, locale_t) {
+ return ::strtoull(__nptr, __endptr, __base);
+ }
+
+-inline _LIBCPP_HIDE_FROM_ABI long long
++static inline long long
+ wcstoll_l(const wchar_t *__nptr, wchar_t **__endptr, int __base, locale_t) {
+ return ::wcstoll(__nptr, __endptr, __base);
+ }
+
+-inline _LIBCPP_HIDE_FROM_ABI unsigned long long
++static inline unsigned long long
+ wcstoull_l(const wchar_t *__nptr, wchar_t **__endptr, int __base, locale_t) {
+ return ::wcstoull(__nptr, __endptr, __base);
+ }
+
+-inline _LIBCPP_HIDE_FROM_ABI long double
++static inline long double
+ wcstold_l(const wchar_t *__nptr, wchar_t **__endptr, locale_t) {
+ return ::wcstold(__nptr, __endptr);
+ }
diff --git a/srcpkgs/llvm15/patches/libomp-soname.patch b/srcpkgs/llvm15/patches/libomp-soname.patch
new file mode 100644
index 000000000000..9a622cd9254c
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libomp-soname.patch
@@ -0,0 +1,12 @@
+diff --git a/openmp/runtime/src/CMakeLists.txt b/openmp/runtime/src/CMakeLists.txt
+index df1ca9d90..9d2c3b7b9 100644
+--- a/openmp/runtime/src/CMakeLists.txt
++++ b/openmp/runtime/src/CMakeLists.txt
+@@ -150,6 +150,7 @@ libomp_get_libflags(LIBOMP_CONFIGURED_LIBFLAGS)
+ # Build libomp library. Add LLVMSupport dependency if building in-tree with libomptarget profiling enabled.
+ if(OPENMP_STANDALONE_BUILD OR (NOT OPENMP_ENABLE_LIBOMP_PROFILING))
+ add_library(omp ${LIBOMP_LIBRARY_KIND} ${LIBOMP_SOURCE_FILES})
++ set_target_properties(omp PROPERTIES VERSION ${LIBOMP_VERSION_MAJOR} SOVERSION ${LIBOMP_VERSION_MAJOR})
+ # Linking command will include libraries in LIBOMP_CONFIGURED_LIBFLAGS
+ target_link_libraries(omp ${LIBOMP_CONFIGURED_LIBFLAGS} ${LIBOMP_DL_LIBS})
+ else()
diff --git a/srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip b/srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip
new file mode 100644
index 000000000000..74aa7576ecf9
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip
@@ -0,0 +1,63 @@
+This fixes build at least with gcc9 which does not define `__ppc__`.
+
+--- a/libunwind/include/__libunwind_config.h
++++ b/libunwind/include/__libunwind_config.h
+@@ -49,7 +49,7 @@
+ # define _LIBUNWIND_CONTEXT_SIZE 167
+ # define _LIBUNWIND_CURSOR_SIZE 179
+ # define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_PPC64
+-# elif defined(__ppc__)
++# elif defined(__powerpc__)
+ # define _LIBUNWIND_TARGET_PPC 1
+ # define _LIBUNWIND_CONTEXT_SIZE 117
+ # define _LIBUNWIND_CURSOR_SIZE 124
+--- a/libunwind/src/UnwindRegistersRestore.S
++++ b/libunwind/src/UnwindRegistersRestore.S
+@@ -392,7 +392,7 @@ Lnovec:
+ PPC64_LR(3)
+ bctr
+
+-#elif defined(__ppc__)
++#elif defined(__powerpc__)
+
+ DEFINE_LIBUNWIND_FUNCTION(_ZN9libunwind13Registers_ppc6jumptoEv)
+ //
+--- a/libunwind/src/UnwindRegistersSave.S
++++ b/libunwind/src/UnwindRegistersSave.S
+@@ -554,7 +554,7 @@ DEFINE_LIBUNWIND_FUNCTION(__unw_getcontext)
+ blr
+
+
+-#elif defined(__ppc__)
++#elif defined(__powerpc__)
+
+ //
+ // extern int unw_getcontext(unw_context_t* thread_state)
+--- a/libunwind/src/config.h
++++ b/libunwind/src/config.h
+@@ -95,12 +95,12 @@
+ #define _LIBUNWIND_BUILD_SJLJ_APIS
+ #endif
+
+-#if defined(__i386__) || defined(__x86_64__) || defined(__ppc__) || defined(__ppc64__) || defined(__powerpc64__)
++#if defined(__i386__) || defined(__x86_64__) || defined(__powerpc__) || defined(__powerpc64__)
+ #define _LIBUNWIND_SUPPORT_FRAME_APIS
+ #endif
+
+ #if defined(__i386__) || defined(__x86_64__) || \
+- defined(__ppc__) || defined(__ppc64__) || defined(__powerpc64__) || \
++ defined(__powerpc__) || defined(__powerpc64__) || \
+ (!defined(__APPLE__) && defined(__arm__)) || \
+ (defined(__arm64__) || defined(__aarch64__)) || \
+ defined(__mips__)
+--- a/libunwind/src/libunwind.cpp
++++ b/libunwind/src/libunwind.cpp
+@@ -42,7 +42,7 @@ _LIBUNWIND_HIDDEN int __unw_init_local(unw_cursor_t *cursor,
+ # define REGISTER_KIND Registers_x86_64
+ #elif defined(__powerpc64__)
+ # define REGISTER_KIND Registers_ppc64
+-#elif defined(__ppc__)
++#elif defined(__powerpc__)
+ # define REGISTER_KIND Registers_ppc
+ #elif defined(__aarch64__)
+ # define REGISTER_KIND Registers_arm64
diff --git a/srcpkgs/llvm15/patches/lldb-musl.patch b/srcpkgs/llvm15/patches/lldb-musl.patch
new file mode 100644
index 000000000000..026c5e1e61ba
--- /dev/null
+++ b/srcpkgs/llvm15/patches/lldb-musl.patch
@@ -0,0 +1,40 @@
+--- a/lldb/source/Plugins/Process/Linux/Procfs.h
++++ b/lldb/source/Plugins/Process/Linux/Procfs.h
+@@ -10,6 +10,7 @@
+ // sys/procfs.h on Android/Linux for all supported architectures.
+
+ #include <sys/ptrace.h>
++#include <asm/ptrace.h>
+
+ #include "lldb/lldb-types.h"
+
+@@ -17,23 +18,13 @@
+
+ #include <vector>
+
+-#ifdef __ANDROID__
+-#if defined(__arm64__) || defined(__aarch64__)
+-typedef unsigned long elf_greg_t;
+-typedef elf_greg_t
+- elf_gregset_t[(sizeof(struct user_pt_regs) / sizeof(elf_greg_t))];
+-typedef struct user_fpsimd_state elf_fpregset_t;
+-#ifndef NT_FPREGSET
+-#define NT_FPREGSET NT_PRFPREG
+-#endif // NT_FPREGSET
+-#elif defined(__mips__)
+-#ifndef NT_FPREGSET
+-#define NT_FPREGSET NT_PRFPREG
+-#endif // NT_FPREGSET
+-#endif
+-#else // __ANDROID__
++#if !defined(__GLIBC__) && defined(__powerpc__)
++#define pt_regs musl_pt_regs
++#include <sys/procfs.h>
++#undef pt_regs
++#else
+ #include <sys/procfs.h>
+-#endif // __ANDROID__
++#endif
+
+ namespace lldb_private {
+ namespace process_linux {
diff --git a/srcpkgs/llvm15/patches/llvm-001-musl.patch b/srcpkgs/llvm15/patches/llvm-001-musl.patch
new file mode 100644
index 000000000000..f2a3f8d62813
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-001-musl.patch
@@ -0,0 +1,57 @@
+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;
+diff --git a/lib/Support/Unix/DynamicLibrary.inc b/lib/Support/Unix/DynamicLibrary.inc
+index a2a37996..2f86c470 100644
+--- a/llvm/lib/Support/Unix/DynamicLibrary.inc
++++ b/llvm/lib/Support/Unix/DynamicLibrary.inc
+@@ -102,7 +102,7 @@ static void *DoSearch(const char* SymbolName) {
+
+ // This macro returns the address of a well-known, explicit symbol
+ #define EXPLICIT_SYMBOL(SYM) \
+- if (!strcmp(SymbolName, #SYM)) return &SYM
++ if (!strcmp(SymbolName, #SYM)) return (void *)&SYM
+
+ // Under glibc we have a weird situation. The stderr/out/in symbols are both
+ // macros and global variables because of standards requirements. So, we
+diff --git a/utils/unittest/googletest/src/gtest.cc b/utils/unittest/googletest/src/gtest.cc
+index d882ab2e..f1fb12d0 100644
+--- a/llvm/utils/unittest/googletest/src/gtest.cc
++++ b/llvm/utils/unittest/googletest/src/gtest.cc
+@@ -128,6 +128,7 @@
+
+ #if GTEST_CAN_STREAM_RESULTS_
+ # include <arpa/inet.h> // NOLINT
++# include <sys/socket.h> // NOLINT
+ # include <netdb.h> // NOLINT
+ # include <sys/socket.h> // NOLINT
+ # include <sys/types.h> // NOLINT
diff --git a/srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch b/srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch
new file mode 100644
index 000000000000..0071d964bd37
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch
@@ -0,0 +1,30 @@
+This patches LLVM to use ELFv2 on ppc64 unconditionally unless overridden. We
+need this because unlike most distros we use ELFv2 for both glibc and musl
+on big endian ppc64.
+
+diff --git a/lib/Target/PowerPC/PPCTargetMachine.cpp b/lib/Target/PowerPC/PPCTargetMachine.cpp
+index 0634833e..b7cbc2e7 100644
+--- a/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp
++++ b/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp
+@@ -222,9 +222,8 @@ static PPCTargetMachine::PPCABI computeTargetABI(const Triple &TT,
+
+ switch (TT.getArch()) {
+ case Triple::ppc64le:
+- return PPCTargetMachine::PPC_ABI_ELFv2;
+ case Triple::ppc64:
+- return PPCTargetMachine::PPC_ABI_ELFv1;
++ return PPCTargetMachine::PPC_ABI_ELFv2;
+ default:
+ return PPCTargetMachine::PPC_ABI_UNKNOWN;
+ }
+diff --git a/test/CodeGen/PowerPC/ppc64-elf-abi.ll b/test/CodeGen/PowerPC/ppc64-elf-abi.ll
+index 8b1cf6b5..296a2afa 100644
+--- a/llvm/test/CodeGen/PowerPC/ppc64-elf-abi.ll
++++ b/llvm/test/CodeGen/PowerPC/ppc64-elf-abi.ll
+@@ -1,4 +1,5 @@
+-; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv1
++; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv2
++; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-musl < %s | FileCheck %s -check-prefix=CHECK-ELFv2
+ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu -target-abi elfv1 < %s | FileCheck %s -check-prefix=CHECK-ELFv1
+ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu -target-abi elfv2 < %s | FileCheck %s -check-prefix=CHECK-ELFv2
+ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv2
diff --git a/srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch b/srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch
new file mode 100644
index 000000000000..b5d15974375d
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch
@@ -0,0 +1,11 @@
+--- a/llvm/lib/Target/PowerPC/PPCSubtarget.cpp
++++ b/llvm/lib/Target/PowerPC/PPCSubtarget.cpp
+@@ -165,7 +165,7 @@ void PPCSubtarget::initSubtargetFeatures(StringRef CPU, StringRef FS) {
+
+ if ((TargetTriple.isOSFreeBSD() && TargetTriple.getOSMajorVersion() >= 13) ||
+ TargetTriple.isOSNetBSD() || TargetTriple.isOSOpenBSD() ||
+- TargetTriple.isMusl())
++ isTargetLinux())
+ SecurePlt = true;
+
+ if (HasSPE && IsPPC64)
diff --git a/srcpkgs/llvm15/patches/llvm-004-override-opt.patch b/srcpkgs/llvm15/patches/llvm-004-override-opt.patch
new file mode 100644
index 000000000000..51d0e4b31b32
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-004-override-opt.patch
@@ -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)
diff --git a/srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch b/srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch
new file mode 100644
index 000000000000..d332687b9d92
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch
@@ -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);
diff --git a/srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch b/srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch
new file mode 100644
index 000000000000..a00abd216665
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch
@@ -0,0 +1,25 @@
+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__) || defined (__ppc__) || \
+- defined(_POWER) || defined(_ARCH_PPC))
++ defined(_POWER) || defined(_ARCH_PPC) || (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
diff --git a/srcpkgs/llvm15/template b/srcpkgs/llvm15/template
new file mode 100644
index 000000000000..ad83172de569
--- /dev/null
+++ b/srcpkgs/llvm15/template
@@ -0,0 +1,437 @@
+# Template file for 'llvm15'
+pkgname=llvm15
+version=15.0.7
+revision=1
+build_wrksrc=llvm
+build_style=cmake
+_ext_suffix=".cpython-${py3_ver/./}-linux-${XBPS_TARGET_LIBC/glibc/gnu}.so"
+configure_args="
+ -DCMAKE_BUILD_TYPE=Release -Wno-dev
+ -DENABLE_LINKER_BUILD_ID=YES
+ -DLLDB_USE_SYSTEM_SIX=YES
+ -DLIBCXX_CXX_ABI=libcxxabi
+ -DLIBCXX_ENABLE_STATIC_ABI_LIBRARY=YES
+ -DLIBCXXABI_USE_LLVM_UNWINDER=YES
+ -DLIBCXXABI_ENABLE_STATIC_UNWINDER=YES
+ -DLIBOMP_ENABLE_SHARED=YES
+ -DLIBOMP_INSTALL_ALIASES=NO
+ -DLLVM_INCLUDE_DOCS=YES
+ -DLLVM_BUILD_DOCS=YES
+ -DLLVM_ENABLE_SPHINX=YES
+ -DSPHINX_WARNINGS_AS_ERRORS=NO
+ -DLLVM_INSTALL_UTILS=YES
+ -DLLVM_BUILD_LLVM_DYLIB=YES
+ -DLLVM_LINK_LLVM_DYLIB=YES
+ -DLLVM_ENABLE_RTTI=YES
+ -DLLVM_ENABLE_FFI=YES
+ -DLLVM_BINUTILS_INCDIR=/usr/include
+ -DLLVM_ENABLE_PER_TARGET_RUNTIME_DIR=NO
+ -DLLDB_PYTHON_RELATIVE_PATH=lib/python${py3_ver}/site-packages
+ -DLLDB_PYTHON_EXE_RELATIVE_PATH=bin/python${py3_ver}
+ -DLLDB_PYTHON_EXT_SUFFIX=$_ext_suffix"
+hostmakedepends="perl python3 zlib-devel libffi-devel swig python3-Sphinx
+ python3-recommonmark python3-sphinx-automodapi"
+makedepends="python3-devel zlib-devel elfutils-devel libffi-devel libedit-devel
+ libxml2-devel binutils-devel libatomic-devel"
+depends="libllvm15>=${version}_${revision}"
+short_desc="Low Level Virtual Machine"
+maintainer="Orphaned <orphan@voidlinux.org>"
+license="Apache-2.0"
+homepage="https://www.llvm.org"
+distfiles="https://github.com/llvm/llvm-project/releases/download/llvmorg-${version}/llvm-project-${version}.src.tar.xz"
+checksum=8b5fcb24b4128cf04df1b0b9410ce8b1a729cb3c544e6da885d234280dedeac6
+lib32disabled=yes
+python_version=3
+
+if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
+ configure_args+=" -DLIBCXX_HAS_MUSL_LIBC=YES
+ -DCOMPILER_RT_BUILD_GWP_ASAN=OFF"
+fi
+
+# "operand out of range" assembler failures
+case "$XBPS_TARGET_MACHINE" in
+ ppc64*) ;;
+ ppc*) configure_args+=" -DCLANG_ENABLE_CLANGD=OFF" ;;
+esac
+
+_enabled_projects="clang;clang-tools-extra;compiler-rt;libcxx;libcxxabi;libunwind;lld"
+
+_lldb_enable=yes
+_libomp_enable=no
+
+case "$XBPS_TARGET_MACHINE" in
+ ppc64le*) ;;
+ ppc*|i686*|riscv64*) _lldb_enable=no ;;
+esac
+
+case "$XBPS_TARGET_MACHINE" in
+ x86_64*|aarch64*|ppc64*) _libomp_enable=yes;;
+esac
+
+subpackages="clang-tools-extra"
+
+# must go before clang
+if [ "$_libomp_enable" = "yes" ]; then
+ _enabled_projects+=";openmp"
+ subpackages+=" libomp libomp-devel"
+ # because of cmake nonsense referencing libomptarget.so.*
+ depends+=" libomp>=${version}_${revision}"
+fi
+
+subpackages+=" clang clang-analyzer libclang libclang-cpp
+ llvm-libunwind llvm-libunwind-devel libcxx libcxx-devel
+ libcxxabi libcxxabi-devel libllvm15"
+
+if [ "$_lldb_enable" = "yes" ]; then
+ # XXX fails to cross compile due to python
+ _enabled_projects+=";lldb"
+ subpackages+=" lldb lldb-devel"
+fi
+
+subpackages+=" lld lld-devel"
+
+configure_args+=" -DLLVM_ENABLE_PROJECTS=${_enabled_projects}"
+
+post_patch() {
+ if [ "$_lldb_enable" = "yes" ]; then
+ if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
+ vsed -i 's|__ptrace_request|int|g' \
+ ${wrksrc}/lldb/source/Plugins/Process/Linux/NativeProcessLinux.cpp
+ fi
+ # disable docs for lldb as they fail to generate
+ vsed -i '/add_subdirectory(docs)/d' \
+ ${wrksrc}/lldb/CMakeLists.txt
+ fi
+
+ # update config.guess for better platform detection
+ cp $XBPS_COMMONDIR/environment/configure/automake/config.guess \
+ ${wrksrc}/llvm/cmake
+
+ # fix linker failures on some archs
+ vsed -i 's,check_library_exists(gcc_s .*,set(LIBCXXABI_HAS_GCC_S_LIB ON),' \
+ ${wrksrc}/libcxxabi/cmake/config-ix.cmake
+ vsed -i 's,check_library_exists(gcc .*,set(LIBCXXABI_HAS_GCC_LIB ON),' \
+ ${wrksrc}/libcxxabi/cmake/config-ix.cmake
+
+ # need libssp_nonshared on some musl platforms (because of nodefaultlibs)
+ case "$XBPS_TARGET_MACHINE" in
+ ppc64*) ;;
+ ppc*-musl|i686-musl|mips*-musl)
+ vsed -i 's,^# Setup flags.$,add_library_flags(ssp_nonshared),' \
+ ${wrksrc}/libunwind/src/CMakeLists.txt
+ vsed -i 's,^# Setup flags.$,add_library_flags(ssp_nonshared),' \
+ ${wrksrc}/libcxxabi/src/CMakeLists.txt
+ vsed -i 's,#ssp,,' ${wrksrc}/libcxx/CMakeLists.txt
+ ;;
+ esac
+
+ case "$XBPS_TARGET_MACHINE" in
+ arm*-musl|i686-musl) # sanitizer code is broken since it duplicates some libc bits
+ vsed -i 's/set(COMPILER_RT_HAS_SANITIZER_COMMON TRUE)/set(COMPILER_RT_HAS_SANITIZER_COMMON FALSE)/' \
+ ${wrksrc}/compiler-rt/cmake/config-ix.cmake
+ ;;
+ esac
+}
+
+pre_configure() {
+ local triplet
+
+ # Vastly reduce size of debugging symbols:
+ CFLAGS=${CFLAGS/ -g/ -g1}
+ CXXFLAGS=${CXXFLAGS/ -g/ -g1}
+
+ # since gcc9, the build likes to blow up for ppc32 apparently because
+ # of clang being too large for a 24-bit relative call to the PLT, so
+ # optimize for size instead
+ case "$XBPS_TARGET_MACHINE" in
+ ppc64*) ;;
+ mips*-musl|ppc*) configure_args+=" -DVOID_CXX_OPT_FLAGS=-Os" ;;
+ esac
+
+ if [ "$CROSS_BUILD" ]; then
+ msg_normal "Building host tblgen\n"
+ mkdir -p build/HOST
+ cd build/HOST
+ CC="$BUILD_CC" CXX="$BUILD_CXX" CFLAGS="$BUILD_CFLAGS" \
+ CXXFLAGS="$BUILD_CXXFLAGS" LDFLAGS="$BUILD_LDFLAGS" \
+ cmake ../.. -DCMAKE_BUILD_TYPE=Release \
+ -DLLVM_ENABLE_PROJECTS=${_enabled_projects}
+ make ${makejobs} -C utils/TableGen
+ make ${makejobs} -C tools/clang/utils/TableGen
+ make ${makejobs} -C tools/clang/tools/extra/clang-tidy/misc/ConfusableTable
+ make ${makejobs} -C tools/clang/tools/extra/pseudo/gen
+ [ "$_lldb_enable" = "yes" ] && make ${makejobs} -C tools/lldb/utils/TableGen
+ configure_args+=" -DLLVM_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/llvm-tblgen"
+ configure_args+=" -DCLANG_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/clang-tblgen"
+ configure_args+=" -DCLANG_TIDY_CONFUSABLE_CHARS_GEN=${wrksrc}/llvm/build/HOST/bin/clang-pseudo-gen"
+ configure_args+=" -DCLANG_PSEUDO_GEN=${wrksrc}/llvm/build/HOST/bin/clang-pseudo-gen"
+ [ "$_lldb_enable" = "yes" ] && configure_args+=" -DLLDB_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/lldb-tblgen"
+ cd ../..
+ fi
+
+ case "$XBPS_TARGET_MACHINE" in
+ i686*) _arch="X86";;
+ x86_64*) _arch="X86";;
+ armv5*) _arch="Armv5te";;
+ armv6*) _arch="Armv6";;
+ armv7*) _arch="Armv7";;
+ aarch64*) _arch="AArch64";;
+ mips*) _arch="Mips";;
+ ppc*) _arch="PowerPC";;
+ riscv64*) _arch="RISCV64";;
+ esac
+
+ triplet=${XBPS_CROSS_TRIPLET:-$XBPS_TRIPLET}
+
+ configure_args+=" -DLLVM_TARGET_ARCH=${_arch}"
+ configure_args+=" -DLLVM_HOST_TRIPLE=${triplet}"
+ configure_args+=" -DLLVM_DEFAULT_TARGET_TRIPLE=${triplet}"
+}
+
+do_install() {
+ cd build
+ cmake -DCMAKE_INSTALL_PREFIX=${DESTDIR}/usr -P cmake_install.cmake
+
+ # Required for multilib.
+ if [ "$XBPS_TARGET_MACHINE" = "x86_64" ]; then
+ for _header in llvm-config; do
+ mv ${DESTDIR}/usr/include/llvm/Config/${_header}{,-64}.h
+ vinstall ${FILESDIR}/llvm-Config-${_header}.h 644 \
+ usr/include/llvm/Config ${_header}.h
+ done
+ fi
+
+ # Remove llvm-config-host in cross builds.
+ if [ "$CROSS_BUILD" ]; then
+ rm -f ${DESTDIR}/usr/bin/llvm-config-host
+ fi
+
+ # Install libcxxabi headers
+ vinstall ${wrksrc}/libcxxabi/include/__cxxabi_config.h 644 usr/include
+ vinstall ${wrksrc}/libcxxabi/include/cxxabi.h 644 usr/include
+
+ # Install libunwind headers
+ vinstall ${wrksrc}/libunwind/include/__libunwind_config.h 644 usr/include
+ vinstall ${wrksrc}/libunwind/include/libunwind.h 644 usr/include
+ vinstall ${wrksrc}/libunwind/include/unwind.h 644 usr/include
+ vinstall ${wrksrc}/libunwind/include/mach-o/compact_unwind_encoding.h \
+ 644 usr/include/mach-o
+}
+
+clang-analyzer_package() {
+ pycompile_dirs="usr/share/scan-view"
+ depends="clang-${version}_${revision} python3 perl"
+ short_desc+=" - A source code analysis framework"
+ homepage="https://clang-analyzer.llvm.org/"
+ pkg_install() {
+ vmove "usr/bin/scan-*"
+ vmove "usr/libexec/*analyzer"
+ vmove "usr/share/scan-*"
+ vmove usr/share/man/man1/scan-build.1
+ }
+}
+
+clang-tools-extra_package() {
+ lib32disabled=yes
+ depends="clang-${version}_${revision} python3"
+ short_desc+=" - Extra Clang tools"
+ homepage="https://clang.llvm.org/extra/"
+ pkg_install() {
+ vmove usr/bin/clang-apply-replacements
+ vmove usr/bin/clang-doc
+ vmove usr/bin/clang-include-fixer
+ vmove usr/bin/clang-query
+ vmove usr/bin/clang-rename
+ vmove usr/bin/clang-reorder-fields
+ vmove usr/bin/clang-tidy
+ vmove usr/bin/clangd
+ vmove usr/bin/diagtool
+ vmove usr/bin/find-all-symbols
+ vmove usr/bin/hmaptool
+ vmove usr/bin/modularize
+ vmove usr/bin/pp-trace
+ vmove usr/bin/sancov
+ vmove usr/include/clang-tidy
+ vmove "usr/lib/libclangApplyReplacements*"
+ vmove "usr/lib/libclangDoc*"
+ vmove "usr/lib/libclangIncludeFixer*"
+ vmove "usr/lib/libclangReorderFields*"
+ vmove "usr/lib/libclangQuery*"
+ vmove "usr/lib/libclangTidy*"
+ vmove "usr/share/clang/*include-fixer*"
+ vmove "usr/share/clang/*rename*"
+ vmove "usr/share/clang/*tidy*"
+ vmove usr/share/doc/LLVM/clang-tools
+ vmove usr/share/man/man1/diagtool.1
+ vmove usr/share/man/man1/extraclangtools.1
+ }
+}
+
+clang_package() {
+ lib32disabled=yes
+ depends="libstdc++-devel libgcc-devel binutils ${XBPS_TARGET_LIBC}-devel
+ libclang-${version}_${revision}"
+ short_desc+=" - C language family frontend"
+ homepage="https://clang.llvm.org/"
+ pkg_install() {
+ vmove "usr/bin/*clang*"
+ vmove usr/bin/c-index-test
+ vmove usr/include/clang
+ vmove usr/include/clang-c
+ vmove usr/lib/clang
+ vmove usr/lib/cmake/clang
+ vmove "usr/lib/libclang*.a"
+ vmove "usr/lib/libclang*.so"
+ vmove usr/share/clang
+ vmove usr/share/doc/LLVM/clang
+ vmove usr/share/man/man1/clang.1
+ }
+}
+
+libclang_package() {
+ short_desc+=" - C frontend runtime library"
+ pkg_install() {
+ vmove "usr/lib/libclang.so.*"
+ }
+}
+
+libclang-cpp_package() {
+ short_desc+=" - C frontend runtime library (C++ interface)"
+ pkg_install() {
+ vmove "usr/lib/libclang-cpp.so.*"
+ }
+}
+
+lld_package() {
+ lib32disabled=yes
+ short_desc+=" - linker"
+ homepage="https://lld.llvm.org"
+ pkg_install() {
+ vmove "usr/bin/ld.lld*"
+ vmove "usr/bin/ld64.lld*"
+ vmove "usr/bin/lld*"
+ vmove usr/bin/wasm-ld
+ vmove usr/share/doc/LLVM/lld
+ }
+}
+
+lld-devel_package() {
+ lib32disabled=yes
+ short_desc+=" - linker - development files"
+ homepage="https://lld.llvm.org"
+ depends="lld>=${version}_${revision}"
+ pkg_install() {
+ vmove usr/include/lld
+ vmove usr/lib/cmake/lld
+ vmove "usr/lib/liblld*a"
+ }
+}
+
+lldb_package() {
+ lib32disabled=yes
+ depends+=" python3-six"
+ short_desc+=" - LLDB debugger"
+ homepage="https://lldb.llvm.org/"
+ pkg_install() {
+ vmove "usr/bin/*lldb*"
+ vmove "usr/lib/liblldb*so.*"
+ vmove usr/lib/python*
+ }
+}
+
+lldb-devel_package() {
+ lib32disabled=yes
+ depends="lldb>=${version}_${revision}"
+ short_desc+=" - LLDB debugger - development files"
+ pkg_install() {
+ vmove usr/include/lldb
+ vmove "usr/lib/liblldb*.so"
+ }
+}
+
+llvm-libunwind_package() {
+ short_desc+=" - libunwind"
+ pkg_install() {
+ vmove "usr/lib/libunwind.so.*"
+ }
+}
+
+llvm-libunwind-devel_package() {
+ short_desc+=" - libunwind - development files"
+ depends="llvm-libunwind>=${version}_${revision}"
+ conflicts="libunwind-devel>=0"
+ pkg_install() {
+ vmove usr/include/mach-o
+ vmove "usr/include/*unwind*"
+ vmove "usr/lib/libunwind.a"
+ vmove "usr/lib/libunwind.so"
+ vmove usr/share/doc/LLVM/libunwind
+ }
+}
+
+libcxxabi_package() {
+ short_desc+=" - low level support for libc++"
+ pkg_install() {
+ vmove "usr/lib/libc++abi.so.*"
+ }
+}
+
+libcxxabi-devel_package() {
+ short_desc+=" - low level support for libc++ - development files"
+ depends="libcxxabi>=${version}_${revision}"
+ pkg_install() {
+ vmove "usr/include/*cxxabi*"
+ vmove "usr/lib/libc++abi.so"
+ vmove "usr/lib/libc++abi.a"
+ }
+}
+
+libcxx_package() {
+ short_desc+=" - C++ standard library"
+ pkg_install() {
+ vmove "usr/lib/libc++.so.*"
+ }
+}
+
+libcxx-devel_package() {
+ short_desc+=" - C++ standard library - development files"
+ depends="libcxx>=${version}_${revision}"
+ pkg_install() {
+ vmove usr/include/c++
+ vmove "usr/lib/libc++.so"
+ vmove "usr/lib/libc++.a"
+ vmove "usr/lib/libc++experimental.a"
+ vmove usr/share/doc/LLVM/libcxx
+ }
+}
+
+libomp_package() {
+ short_desc+=" - Clang OpenMP support library"
+ pkg_install() {
+ vmove usr/lib/libarcher.so
+ vmove usr/lib/libompd.so
+ vmove "usr/lib/libomptarget.rtl.*.so"
+ vmove "usr/lib/libomp*.so.*"
+ }
+}
+
+libomp-devel_package() {
+ short_desc+=" - Clang OpenMP support library - development files"
+ depends="libomp>=${version}_${revision}"
+ pkg_install() {
+ vmove "usr/include/omp*.h"
+ vmove "usr/lib/clang/${version}/include/omp*.h"
+ vmove "usr/lib/libarcher*"
+ vmove "usr/lib/libomp*.so"
+ vmove usr/lib/cmake/openmp
+ vmove usr/share/doc/LLVM/openmp
+ vmove usr/share/man/man1/llvmopenmp.1
+ }
+}
+
+libllvm15_package() {
+ short_desc+=" - runtime library"
+ pkg_install() {
+ vmove "usr/lib/libLLVM-*.so*"
+ }
+}
diff --git a/srcpkgs/llvm15/update b/srcpkgs/llvm15/update
new file mode 100644
index 000000000000..e95cf26b3586
--- /dev/null
+++ b/srcpkgs/llvm15/update
@@ -0,0 +1,3 @@
+site="https://github.com/llvm/llvm-project/releases"
+pattern="llvmorg-\K(\d+.){2}\d+(-rc\d+)?"
+ignore="*-rc*"
From 5d10d57cbd5c6b388e8b5e6320b6ccb95dfed83d Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Sun, 18 Dec 2022 00:40:18 +0100
Subject: [PATCH 02/16] llvm: update to 15
---
common/shlibs | 6 +++---
srcpkgs/clang | 2 +-
srcpkgs/clang-analyzer | 2 +-
srcpkgs/clang-tools-extra | 2 +-
srcpkgs/libclang | 2 +-
srcpkgs/libclang-cpp | 2 +-
srcpkgs/libcxx | 2 +-
srcpkgs/libcxx-devel | 2 +-
srcpkgs/libcxxabi | 2 +-
srcpkgs/libcxxabi-devel | 2 +-
srcpkgs/libomp | 2 +-
srcpkgs/libomp-devel | 2 +-
srcpkgs/lld | 2 +-
srcpkgs/lld-devel | 2 +-
srcpkgs/lldb | 2 +-
srcpkgs/lldb-devel | 2 +-
srcpkgs/llvm-libunwind | 2 +-
srcpkgs/llvm-libunwind-devel | 2 +-
srcpkgs/llvm/template | 6 +++---
19 files changed, 23 insertions(+), 23 deletions(-)
diff --git a/common/shlibs b/common/shlibs
index 01818dec25db..142d64240be2 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -987,9 +987,9 @@ 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.12 lldb-12.0.0_1
-libclang.so.12 libclang-12.0.0_1
-libclang-cpp.so.12 libclang-cpp-12.0.0_1
+liblldb.so.15 lldb-15.0.7_1
+libclang.so.15 libclang-15.0.7_1
+libclang-cpp.so.15 libclang-cpp-15.0.7_1
libLLVM-11.so libllvm11-11.0.0_1
libLLVM-12.so libllvm12-12.0.0_1
libLLVM-15.so libllvm15-15.0.7_1
diff --git a/srcpkgs/clang b/srcpkgs/clang
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/clang
+++ b/srcpkgs/clang
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/clang-analyzer b/srcpkgs/clang-analyzer
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/clang-analyzer
+++ b/srcpkgs/clang-analyzer
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/clang-tools-extra b/srcpkgs/clang-tools-extra
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/clang-tools-extra
+++ b/srcpkgs/clang-tools-extra
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libclang b/srcpkgs/libclang
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libclang
+++ b/srcpkgs/libclang
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libclang-cpp b/srcpkgs/libclang-cpp
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libclang-cpp
+++ b/srcpkgs/libclang-cpp
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxx b/srcpkgs/libcxx
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxx
+++ b/srcpkgs/libcxx
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxx-devel b/srcpkgs/libcxx-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxx-devel
+++ b/srcpkgs/libcxx-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxxabi b/srcpkgs/libcxxabi
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxxabi
+++ b/srcpkgs/libcxxabi
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxxabi-devel b/srcpkgs/libcxxabi-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxxabi-devel
+++ b/srcpkgs/libcxxabi-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libomp b/srcpkgs/libomp
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libomp
+++ b/srcpkgs/libomp
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libomp-devel b/srcpkgs/libomp-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libomp-devel
+++ b/srcpkgs/libomp-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lld b/srcpkgs/lld
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lld
+++ b/srcpkgs/lld
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lld-devel b/srcpkgs/lld-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lld-devel
+++ b/srcpkgs/lld-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lldb b/srcpkgs/lldb
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lldb
+++ b/srcpkgs/lldb
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lldb-devel b/srcpkgs/lldb-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lldb-devel
+++ b/srcpkgs/lldb-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm-libunwind b/srcpkgs/llvm-libunwind
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/llvm-libunwind
+++ b/srcpkgs/llvm-libunwind
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm-libunwind-devel b/srcpkgs/llvm-libunwind-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/llvm-libunwind-devel
+++ b/srcpkgs/llvm-libunwind-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm/template b/srcpkgs/llvm/template
index a92db6f94f9f..fc1c850bd26f 100644
--- a/srcpkgs/llvm/template
+++ b/srcpkgs/llvm/template
@@ -1,11 +1,11 @@
# Template file for 'llvm'
pkgname=llvm
-version=12.0.0
+version=15
revision=1
build_style=meta
-depends="llvm12"
-replaces="llvm11>=0 llvm10>=0 llvm9>=0 llvm8>=0 llvm7>=0 llvm6.0>=0 llvm3.9>=0"
+depends="llvm15"
short_desc="LLVM meta package"
maintainer="Enno Boland <gottox@voidlinux.org>"
license="Public Domain"
homepage="https://www.voidlinux.org"
+replaces="llvm12>=0 llvm11>=0 llvm10>=0 llvm9>=0 llvm8>=0 llvm7>=0 llvm6.0>=0 llvm3.9>=0"
From afdddb391dedcf7c362fd19e91006b71af948a56 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Sun, 18 Dec 2022 12:20:08 +0100
Subject: [PATCH 03/16] llvm12: remove bumped subpackages
---
srcpkgs/llvm12/template | 264 +---------------------------------------
1 file changed, 1 insertion(+), 263 deletions(-)
diff --git a/srcpkgs/llvm12/template b/srcpkgs/llvm12/template
index f8ea3ba641ae..aea0b43cf573 100644
--- a/srcpkgs/llvm12/template
+++ b/srcpkgs/llvm12/template
@@ -50,55 +50,7 @@ case "$XBPS_TARGET_MACHINE" in
ppc*) configure_args+=" -DCLANG_ENABLE_CLANGD=OFF" ;;
esac
-_enabled_projects="clang;clang-tools-extra;compiler-rt;libcxx;libcxxabi;libunwind;lld"
-
-_lldb_enable=yes
-_libomp_enable=no
-
-case "$XBPS_TARGET_MACHINE" in
- ppc64le*) ;;
- ppc*|i686*) _lldb_enable=no ;;
-esac
-
-case "$XBPS_TARGET_MACHINE" in
- x86_64*|aarch64*|ppc64*) _libomp_enable=yes;;
-esac
-
-subpackages="clang-tools-extra"
-
-# must go before clang
-if [ "$_libomp_enable" = "yes" ]; then
- _enabled_projects+=";openmp"
- subpackages+=" libomp libomp-devel"
- # because of cmake nonsense referencing libomptarget.so.*
- depends+=" libomp>=${version}_${revision}"
-fi
-
-subpackages+=" clang clang-analyzer libclang libclang-cpp
- llvm-libunwind llvm-libunwind-devel libcxx libcxx-devel
- libcxxabi libcxxabi-devel libllvm12"
-
-if [ "$_lldb_enable" = "yes" ]; then
- # XXX fails to cross compile due to python
- _enabled_projects+=";lldb"
- subpackages+=" lldb lldb-devel"
-fi
-
-subpackages+=" lld lld-devel"
-
-configure_args+=" -DLLVM_ENABLE_PROJECTS=${_enabled_projects}"
-
post_patch() {
- if [ "$_lldb_enable" = "yes" ]; then
- if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
- vsed -i 's|__ptrace_request|int|g' \
- ${wrksrc}/lldb/source/Plugins/Process/Linux/NativeProcessLinux.cpp
- fi
- # disable docs for lldb as they fail to generate
- vsed -i '/add_subdirectory(docs)/d' \
- ${wrksrc}/lldb/CMakeLists.txt
- fi
-
# update config.guess for better platform detection
cp $XBPS_COMMONDIR/environment/configure/automake/config.guess \
${wrksrc}/llvm/cmake
@@ -154,14 +106,12 @@ pre_configure() {
cd build/HOST
CC="$BUILD_CC" CXX="$BUILD_CXX" CFLAGS="$BUILD_CFLAGS" \
CXXFLAGS="$BUILD_CXXFLAGS" LDFLAGS="$BUILD_LDFLAGS" \
- cmake ../.. -DCMAKE_BUILD_TYPE=Release \
- -DLLVM_ENABLE_PROJECTS=${_enabled_projects}
+ cmake ../.. -DCMAKE_BUILD_TYPE=Release
make ${makejobs} -C utils/TableGen
make ${makejobs} -C tools/clang/utils/TableGen
[ "$_lldb_enable" = "yes" ] && make ${makejobs} -C tools/lldb/utils/TableGen
configure_args+=" -DLLVM_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/llvm-tblgen"
configure_args+=" -DCLANG_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/clang-tblgen"
- [ "$_lldb_enable" = "yes" ] && configure_args+=" -DLLDB_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/lldb-tblgen"
cd ../..
fi
@@ -201,218 +151,6 @@ do_install() {
if [ "$CROSS_BUILD" ]; then
rm -f ${DESTDIR}/usr/bin/llvm-config-host
fi
-
- # Install libcxxabi headers
- vinstall ${wrksrc}/libcxxabi/include/__cxxabi_config.h 644 usr/include
- vinstall ${wrksrc}/libcxxabi/include/cxxabi.h 644 usr/include
-
- # Install libunwind headers
- vinstall ${wrksrc}/libunwind/include/__libunwind_config.h 644 usr/include
- vinstall ${wrksrc}/libunwind/include/libunwind.h 644 usr/include
- vinstall ${wrksrc}/libunwind/include/unwind.h 644 usr/include
- vinstall ${wrksrc}/libunwind/include/mach-o/compact_unwind_encoding.h \
- 644 usr/include/mach-o
-}
-
-clang-analyzer_package() {
- pycompile_dirs="usr/share/scan-view"
- depends="clang-${version}_${revision} python3 perl"
- short_desc+=" - A source code analysis framework"
- homepage="https://clang-analyzer.llvm.org/"
- pkg_install() {
- vmove usr/share/man/man1/scan-build.1
- vmove "/usr/bin/scan-*"
- vmove "/usr/share/scan-*"
- vmove "/usr/libexec/*analyzer"
- }
-}
-
-clang-tools-extra_package() {
- lib32disabled=yes
- depends="clang-${version}_${revision} python3"
- short_desc+=" - Extra Clang tools"
- homepage="https://clang.llvm.org/extra/"
- pkg_install() {
- vmove usr/include/clang-tidy
- vmove usr/bin/clang-apply-replacements
- vmove usr/bin/clang-query
- vmove usr/bin/clang-rename
- vmove usr/bin/clang-tidy
- vmove usr/bin/diagtool
- vmove usr/bin/find-all-symbols
- vmove usr/bin/hmaptool
- vmove usr/bin/modularize
- vmove usr/bin/pp-trace
- vmove usr/bin/sancov
- vmove "usr/lib/libclangApplyReplacements*"
- vmove "usr/lib/libclangQuery*"
- vmove "usr/lib/libclangTidy*"
- vmove "usr/share/clang/*tidy*"
- vmove usr/share/doc/clang-tools
- vmove usr/share/man/man1/extraclangtools.1
- vmove usr/share/man/man1/diagtool.1
- }
-}
-
-clang_package() {
- lib32disabled=yes
- depends="libstdc++-devel libgcc-devel binutils ${XBPS_TARGET_LIBC}-devel
- libclang-${version}_${revision}"
- short_desc+=" - C language family frontend"
- homepage="https://clang.llvm.org/"
- pkg_install() {
- vmove usr/include/clang
- vmove usr/include/clang-c
- vmove "usr/bin/*clang*"
- vmove usr/bin/c-index-test
- vmove usr/lib/clang
- vmove usr/lib/cmake/clang
- vmove "usr/lib/libclang*.a"
- vmove "usr/lib/libclang*.so"
- vmove usr/share/clang
- vmove usr/share/doc/clang
- vmove usr/share/man/man1/clang.1
- }
-}
-
-libclang_package() {
- short_desc+=" - C frontend runtime library"
- pkg_install() {
- vmove "usr/lib/libclang.so.*"
- }
-}
-
-libclang-cpp_package() {
- short_desc+=" - C frontend runtime library (C++ interface)"
- pkg_install() {
- vmove "usr/lib/libclang-cpp.so.*"
- }
-}
-
-lld_package() {
- lib32disabled=yes
- short_desc+=" - linker"
- homepage="https://lld.llvm.org"
- pkg_install() {
- vmove usr/bin/lld*
- vmove usr/bin/wasm-ld
- vmove usr/bin/ld.lld*
- vmove usr/bin/ld64.lld*
- vmove usr/share/doc/lld
- }
-}
-
-lld-devel_package() {
- lib32disabled=yes
- short_desc+=" - linker - development files"
- homepage="https://lld.llvm.org"
- depends="lld>=${version}_${revision}"
- pkg_install() {
- vmove usr/include/lld
- vmove usr/lib/cmake/lld
- vmove "usr/lib/liblld*a"
- }
-}
-
-lldb_package() {
- lib32disabled=yes
- depends+=" python3-six"
- short_desc+=" - LLDB debugger"
- homepage="https://lldb.llvm.org/"
- pkg_install() {
- vmove usr/bin/*lldb*
- vmove usr/lib/liblldb*so.*
- vmove /usr/lib/python*
- }
-}
-
-lldb-devel_package() {
- lib32disabled=yes
- depends="lldb>=${version}_${revision}"
- short_desc+=" - LLDB debugger - development files"
- pkg_install() {
- vmove usr/include/lldb
- vmove "usr/lib/liblldb*.so"
- }
-}
-
-llvm-libunwind_package() {
- short_desc+=" - libunwind"
- pkg_install() {
- vmove "usr/lib/libunwind.so.*"
- }
-}
-
-llvm-libunwind-devel_package() {
- short_desc+=" - libunwind - development files"
- depends="llvm-libunwind>=${version}_${revision}"
- conflicts="libunwind-devel>=0"
- pkg_install() {
- vmove usr/lib/libunwind.so
- vmove usr/lib/libunwind.a
- vmove "usr/include/*unwind*"
- vmove usr/include/mach-o
- vmove usr/share/doc/libunwind
- }
-}
-
-libcxxabi_package() {
- short_desc+=" - low level support for libc++"
- pkg_install() {
- vmove "usr/lib/libc++abi.so.*"
- }
-}
-
-libcxxabi-devel_package() {
- short_desc+=" - low level support for libc++ - development files"
- depends="libcxxabi>=${version}_${revision}"
- pkg_install() {
- vmove usr/lib/libc++abi.so
- vmove usr/lib/libc++abi.a
- vmove "usr/include/*cxxabi*"
- }
-}
-
-libcxx_package() {
- short_desc+=" - C++ standard library"
- pkg_install() {
- vmove "usr/lib/libc++.so.*"
- }
-}
-
-libcxx-devel_package() {
- short_desc+=" - C++ standard library - development files"
- depends="libcxx>=${version}_${revision}"
- pkg_install() {
- vmove usr/lib/libc++.so
- vmove usr/lib/libc++.a
- vmove usr/lib/libc++experimental.a
- vmove usr/include/c++
- vmove usr/share/doc/libcxx
- }
-}
-
-libomp_package() {
- short_desc+=" - Clang OpenMP support library"
- pkg_install() {
- vmove usr/lib/libomp.so
- vmove "usr/lib/libomptarget.rtl.*.so"
- vmove usr/lib/libarcher.so
- vmove "usr/lib/libomp*.so.*"
- }
-}
-
-libomp-devel_package() {
- short_desc+=" - Clang OpenMP support library - development files"
- depends="libomp>=${version}_${revision}"
- pkg_install() {
- vmove "usr/lib/libomp*.so"
- vmove "usr/lib/libarcher*"
- vmove "usr/include/omp*.h"
- vmove "usr/lib/clang/${version}/include/omp*.h"
- vmove usr/share/man/man1/llvmopenmp.1
- vmove usr/share/doc/openmp
- }
}
libllvm12_package() {
From dbfdbb279fec91c40ca0c339d313bb0d02dc2d5f Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:27:03 +0100
Subject: [PATCH 04/16] mesa: rebuild for llvm15
---
srcpkgs/mesa/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/mesa/template b/srcpkgs/mesa/template
index 4c3c9ec6039e..0641b28a80d6 100644
--- a/srcpkgs/mesa/template
+++ b/srcpkgs/mesa/template
@@ -1,7 +1,7 @@
# Template file for 'mesa'
pkgname=mesa
version=22.2.4
-revision=2
+revision=3
build_style=meson
configure_args="-Dglvnd=true -Dshared-glapi=enabled -Dgbm=enabled -Degl=enabled
-Dosmesa=true -Dgles1=enabled -Dgles2=enabled -Dglx=dri -Ddri3=enabled
From eaaa93ff0beeda17cc374a8e8d77f501f6987119 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:34:04 +0100
Subject: [PATCH 05/16] bcc: rebuild for llvm15
---
srcpkgs/bcc/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/bcc/template b/srcpkgs/bcc/template
index 8e9c453c38c6..9dfcc7188bdc 100644
--- a/srcpkgs/bcc/template
+++ b/srcpkgs/bcc/template
@@ -1,7 +1,7 @@
# Template file for 'bcc'
pkgname=bcc
version=0.26.0
-revision=1
+revision=2
build_style=cmake
configure_args="-DREVISION=${version} -DENABLE_LLVM_SHARED=1"
hostmakedepends="flex python3"
From d79984fe7e774f15dc7a74e77b7e2e999c4d275b Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:37:25 +0100
Subject: [PATCH 06/16] bpftrace: rebuild for llvm15
---
srcpkgs/bpftrace/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/bpftrace/template b/srcpkgs/bpftrace/template
index 857815d29eef..47f2b5e77024 100644
--- a/srcpkgs/bpftrace/template
+++ b/srcpkgs/bpftrace/template
@@ -1,7 +1,7 @@
# Template file for 'bpftrace'
pkgname=bpftrace
version=0.16.0
-revision=1
+revision=2
archs="x86_64* aarch64* ppc64*"
build_style=cmake
configure_args="-DBUILD_TESTING=OFF" # needs root to run
From cd66cba2d0a0aedec550d5ebbb27d87700c4e287 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:43:53 +0100
Subject: [PATCH 07/16] CastXML: rebuild for llvm15
---
srcpkgs/CastXML/template | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/srcpkgs/CastXML/template b/srcpkgs/CastXML/template
index 5d7d9503658c..28c424c78073 100644
--- a/srcpkgs/CastXML/template
+++ b/srcpkgs/CastXML/template
@@ -1,7 +1,7 @@
# Template file for 'CastXML'
pkgname=CastXML
version=0.4.6
-revision=1
+revision=2
build_style=cmake
configure_args="-DSPHINX_MAN=YES -DCastXML_INSTALL_MAN_DIR=share/man"
hostmakedepends="clang python3-Sphinx"
@@ -12,8 +12,8 @@ short_desc="C-family abstract syntax tree XML output tool"
maintainer="Evgeny Ermakov <evgeny.v.ermakov@gmail.com>"
license="Apache-2.0"
homepage="https://github.com/CastXML/CastXML"
-distfiles="https://github.com/CastXML/CastXML/archive/v${version}.tar.gz"
-checksum=8dcdbc1f23a130e4bdb0b09f57c30761a02a346b4db4037555048af2a293d66a
+distfiles="https://github.com/CastXML/CastXML/archive/refs/tags/v${version}.tar.gz"
+checksum=bb9024ec9ea5082e0d527f19bf3c2df79f1699f54b6cec168c024e727b32e6d1
post_install() {
rm -r ${DESTDIR}/usr/share/castxml/clang/include
From 1d8e862bd5ebb31d3e55e8a6dac363286c3f7d4a Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:48:55 +0100
Subject: [PATCH 08/16] ccls: rebuild for llvm15
---
srcpkgs/ccls/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/ccls/template b/srcpkgs/ccls/template
index 82fa61933878..ecc9f3e38a5d 100644
--- a/srcpkgs/ccls/template
+++ b/srcpkgs/ccls/template
@@ -1,7 +1,7 @@
# Template file for 'ccls'
pkgname=ccls
version=0.20220729
-revision=1
+revision=2
build_style=cmake
hostmakedepends="clang-tools-extra"
makedepends="clang-tools-extra libxml2-devel llvm ncurses-devel rapidjson zlib-devel"
From 8f80815daed4018895639d56ce5d5b25fc6d8eea Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:52:14 +0100
Subject: [PATCH 09/16] include-what-you-use: update to 0.19
---
srcpkgs/include-what-you-use/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/include-what-you-use/template b/srcpkgs/include-what-you-use/template
index d3655709c20c..1a30bc04bb2d 100644
--- a/srcpkgs/include-what-you-use/template
+++ b/srcpkgs/include-what-you-use/template
@@ -1,6 +1,6 @@
# Template file for 'include-what-you-use'
pkgname=include-what-you-use
-version=0.16
+version=0.19
revision=1
build_style=cmake
configure_args="-DIWYU_LLVM_ROOT_PATH=${XBPS_CROSS_BASE}/usr "
@@ -11,7 +11,7 @@ maintainer="Leah Neukirchen <leah@vuxu.org>"
license="NCSA"
homepage="https://include-what-you-use.org/"
distfiles="https://include-what-you-use.org/downloads/${pkgname}-${version}.src.tar.gz"
-checksum=8d6fc9b255343bc1e5ec459e39512df1d51c60e03562985e0076036119ff5a1c
+checksum=2b10157b60ea08adc08e3896b4921c73fcadd5ec4eb652b29a34129d501e5ee0
python_version=3
post_install() {
From 92021ca16c5225518336305b810a815fe03f6217 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 15:11:06 +0100
Subject: [PATCH 10/16] SPIRV-LLVM-Translator: update to 15.0.0
---
srcpkgs/SPIRV-LLVM-Translator/template | 13 +++++++------
1 file changed, 7 insertions(+), 6 deletions(-)
diff --git a/srcpkgs/SPIRV-LLVM-Translator/template b/srcpkgs/SPIRV-LLVM-Translator/template
index a2754e58c0e8..bee99f9bcbb2 100644
--- a/srcpkgs/SPIRV-LLVM-Translator/template
+++ b/srcpkgs/SPIRV-LLVM-Translator/template
@@ -1,19 +1,20 @@
# Template file for 'SPIRV-LLVM-Translator'
pkgname=SPIRV-LLVM-Translator
-version=12.0.0
-revision=2
+version=15.0.0
+revision=1
build_style=cmake
make_build_args="llvm-spirv"
configure_args="-Wno-dev -DLLVM_LINK_LLVM_DYLIB=ON -DCMAKE_SKIP_RPATH=ON
- -DLLVM_SPIRV_INCLUDE_TESTS=OFF -DBUILD_SHARED_LIBS=ON"
+ -DLLVM_SPIRV_INCLUDE_TESTS=OFF -DBUILD_SHARED_LIBS=ON
+ -DLLVM_EXTERNAL_SPIRV_HEADERS_SOURCE_DIR=/usr"
hostmakedepends="clang llvm"
-makedepends="clang-tools-extra llvm"
+makedepends="clang-tools-extra llvm SPIRV-Headers"
short_desc="API and commands for processing SPIR-V modules"
maintainer="Orphaned <orphan@voidlinux.org>"
license="NCSA"
homepage="https://github.com/KhronosGroup/SPIRV-LLVM-Translator"
-distfiles="https://github.com/KhronosGroup/${pkgname}/archive/refs/tags/v${version}.tar.gz"
-checksum=6e4fad04203f25fcde4c308c53e9f59bd05a390978992db3212d4b63aff62108
+distfiles="https://github.com/KhronosGroup/SPIRV-LLVM-Translator/archive/refs/tags/v${version}.tar.gz"
+checksum=b1bebd77f72988758c00852e78c2ddc545815a612169a0cb377d021e2f846d88
post_install() {
vlicense LICENSE.TXT
From 857021759682f0b35e3472f17d9b7a722c7f4e92 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Fri, 6 Jan 2023 17:11:04 +0100
Subject: [PATCH 11/16] rtags: rebuild for llvm15
---
srcpkgs/rtags/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/rtags/template b/srcpkgs/rtags/template
index b496a1b0e721..9b161e690d76 100644
--- a/srcpkgs/rtags/template
+++ b/srcpkgs/rtags/template
@@ -1,7 +1,7 @@
# Template file for 'rtags'
pkgname=rtags
version=2.38
-revision=5
+revision=6
build_style=cmake
# Don't run tests in do_install, please.
configure_args="-DSKIP_CTEST=TRUE"
From 10c8c433a1ff386058d5c3559d369fa2670daa5d Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Fri, 6 Jan 2023 17:14:14 +0100
Subject: [PATCH 12/16] juCi++: rebuild for llvm15
---
srcpkgs/juCi++/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/juCi++/template b/srcpkgs/juCi++/template
index c1969237f11d..416bde7cc4d0 100644
--- a/srcpkgs/juCi++/template
+++ b/srcpkgs/juCi++/template
@@ -1,7 +1,7 @@
# Template file for 'juCi++'
pkgname=juCi++
version=1.7.2
-revision=2
+revision=3
_libclangmm_commit="9704b9b6de0982a588fa41741157d5640afedf30"
_tiny_commit="839ff806dc447ff49af80f9a9eaa7949f770f8e5"
create_wrksrc=yes
From 283dfd5789ae8e7c9381d8e7a26a041e958c2ca3 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Sat, 7 Jan 2023 11:31:14 +0100
Subject: [PATCH 13/16] qt5: rebuild for llvm15
---
srcpkgs/qt5/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/qt5/template b/srcpkgs/qt5/template
index 233596587525..bc9170215483 100644
--- a/srcpkgs/qt5/template
+++ b/srcpkgs/qt5/template
@@ -3,7 +3,7 @@ pkgname=qt5
version=5.15.7+20221119
# commit f8c9fb304bc3e53b3aa07f962cd74e9160decccc
# base repo: https://invent.kde.org/qt/qt/qt5
-revision=1
+revision=2
build_style=meta
hostmakedepends="cmake clang flex perl glib-devel pkg-config
python re2c ruby which"
From cf30b6c35b0ff2db9c199fed1cec81812c402e21 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Mon, 9 Jan 2023 01:22:18 +0100
Subject: [PATCH 14/16] codelite: rebuild for llvm15
---
srcpkgs/codelite/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/codelite/template b/srcpkgs/codelite/template
index 6b8b007c8a43..c6115e0274ce 100644
--- a/srcpkgs/codelite/template
+++ b/srcpkgs/codelite/template
@@ -1,7 +1,7 @@
# Template file for 'codelite'
pkgname=codelite
version=16.0.0
-revision=2
+revision=3
create_wrksrc=yes
build_style=cmake
build_helper=cmake-wxWidgets-gtk3
From a15510ee83435bcf7a1331697dc56016aced284a Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Mon, 9 Jan 2023 01:58:21 +0100
Subject: [PATCH 15/16] kdevelop: rebuild for llvm15
---
srcpkgs/kdevelop/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/kdevelop/template b/srcpkgs/kdevelop/template
index 5eb275583138..c32ee5240a44 100644
--- a/srcpkgs/kdevelop/template
+++ b/srcpkgs/kdevelop/template
@@ -1,7 +1,7 @@
# Template file for 'kdevelop'
pkgname=kdevelop
version=22.12.1
-revision=1
+revision=2
build_style=cmake
configure_args="-DBUILD_TESTING=OFF"
hostmakedepends="extra-cmake-modules qt5-qmake qt5-host-tools qt5-tools
From 3252e804d36f601551561e1cddd350c5aef156a4 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Mon, 16 Jan 2023 14:43:47 +0100
Subject: [PATCH 16/16] zig: update to 0.10.0
---
.../0001-std.build-fix-handling-of-Dcpu.patch | 48 -------------------
srcpkgs/zig/template | 10 ++--
2 files changed, 6 insertions(+), 52 deletions(-)
delete mode 100644 srcpkgs/zig/patches/0001-std.build-fix-handling-of-Dcpu.patch
diff --git a/srcpkgs/zig/patches/0001-std.build-fix-handling-of-Dcpu.patch b/srcpkgs/zig/patches/0001-std.build-fix-handling-of-Dcpu.patch
deleted file mode 100644
index 4101f24459bb..000000000000
--- a/srcpkgs/zig/patches/0001-std.build-fix-handling-of-Dcpu.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From 1e8cdace7ad324a42228aeb5cd6eb8dd15429413 Mon Sep 17 00:00:00 2001
-From: Isaac Freund <ifreund@ifreund.xyz>
-Date: Tue, 21 Sep 2021 21:06:10 +0200
-Subject: [PATCH] std.build: fix handling of -Dcpu
-
-Currently -Dcpu is completely ignored if -Dtarget isn't passed as well.
-Further, -Dcpu=baseline is ignored even if -Dtarget=native is passed.
-
-This patch fixes these 2 issues, always respecting the -Dcpu option if
-present.
----
- lib/std/build.zig | 13 +++++++------
- 1 file changed, 7 insertions(+), 6 deletions(-)
-
-diff --git a/lib/std/build.zig b/lib/std/build.zig
-index 9b7ebb1f4..e398529f9 100644
---- a/lib/std/build.zig
-+++ b/lib/std/build.zig
-@@ -685,7 +685,11 @@ pub const Builder = struct {
- );
- const mcpu = self.option([]const u8, "cpu", "Target CPU");
-
-- const triple = maybe_triple orelse return args.default_target;
-+ if (maybe_triple == null and mcpu == null) {
-+ return args.default_target;
-+ }
-+
-+ const triple = maybe_triple orelse "native";
-
- var diags: CrossTarget.ParseOptions.Diagnostics = .{};
- const selected_target = CrossTarget.parse(.{
-@@ -2451,11 +2455,8 @@ pub const LibExeObjStep = struct {
-
- if (populated_cpu_features.eql(cross.cpu.features)) {
- // The CPU name alone is sufficient.
-- // If it is the baseline CPU, no command line args are required.
-- if (cross.cpu.model != std.Target.Cpu.baseline(cross.cpu.arch).model) {
-- try zig_args.append("-mcpu");
-- try zig_args.append(cross.cpu.model.name);
-- }
-+ try zig_args.append("-mcpu");
-+ try zig_args.append(cross.cpu.model.name);
- } else {
- var mcpu_buffer = std.ArrayList(u8).init(builder.allocator);
-
---
-2.33.1
-
diff --git a/srcpkgs/zig/template b/srcpkgs/zig/template
index 728c5a64e9df..be28175b5c44 100644
--- a/srcpkgs/zig/template
+++ b/srcpkgs/zig/template
@@ -1,17 +1,19 @@
# Template file for 'zig'
pkgname=zig
-version=0.8.1
-revision=2
+version=0.10.0
+revision=1
archs="x86_64* aarch64*"
build_style=cmake
make_cmd=make
-makedepends="clang llvm12 lld-devel"
+# we add xml2, zstd, zlib and ncurses
+# because our lld is static-only and requires those to work
+makedepends="clang llvm15 lld-devel libxml2-devel libzstd-devel ncurses-devel zlib-devel"
short_desc="Programming language designed for robustness, optimality, and clarity"
maintainer="Isaac Freund <mail@isaacfreund.com>"
license="MIT"
homepage="https://ziglang.org"
distfiles="https://ziglang.org/download/${version}/zig-${version}.tar.xz"
-checksum=8c428e14a0a89cb7a15a6768424a37442292858cdb695e2eb503fa3c7bf47f1a
+checksum=d8409f7aafc624770dcd050c8fa7e62578be8e6a10956bca3c86e8531c64c136
nopie=yes
nocross=yes
^ permalink raw reply [flat|nested] 96+ messages in thread
* Re: [PR REVIEW] [WIP] LLVM 15
2022-11-28 15:30 [PR PATCH] [WIP] LLVM 15 tranzystorek-io
` (49 preceding siblings ...)
2023-01-16 13:45 ` tranzystorek-io
@ 2023-01-17 19:01 ` Johnnynator
2023-01-24 13:05 ` [PR PATCH] [Updated] " tranzystorek-io
` (43 subsequent siblings)
94 siblings, 0 replies; 96+ messages in thread
From: Johnnynator @ 2023-01-17 19:01 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 349 bytes --]
New review comment by Johnnynator on void-packages repository
https://github.com/void-linux/void-packages/pull/40821#discussion_r1072679655
Comment:
```suggestion
configure_args+=" -DCLANG_TIDY_CONFUSABLE_CHARS_GEN=${wrksrc}/llvm/build/HOST/bin/clang-tidy-confusable-chars-gen"
```
It seems like confusable chars did get confused slightly.
^ permalink raw reply [flat|nested] 96+ messages in thread
* Re: [PR PATCH] [Updated] [WIP] LLVM 15
2022-11-28 15:30 [PR PATCH] [WIP] LLVM 15 tranzystorek-io
` (50 preceding siblings ...)
2023-01-17 19:01 ` [PR REVIEW] " Johnnynator
@ 2023-01-24 13:05 ` tranzystorek-io
2023-01-24 13:15 ` tranzystorek-io
` (42 subsequent siblings)
94 siblings, 0 replies; 96+ messages in thread
From: tranzystorek-io @ 2023-01-24 13:05 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 1143 bytes --]
There is an updated pull request by tranzystorek-io against master on the void-packages repository
https://github.com/tranzystorek-io/void-packages llvm15
https://github.com/void-linux/void-packages/pull/40821
[WIP] LLVM 15
[ci skip]
TODO:
- [ ] Adjust patches marked as `.patch.skip`
- [x] Make libomp a shlib (change so file name and install a symlink)
- [x] Avoid creating triplet dirs under /usr/
TODO LLVM rdeps:
- [ ] clazy (breaking changes in clang API)
- [x] beignet (https://github.com/void-linux/void-packages/pull/41529)
- [ ] ispc (1.18.1 supports LLVM `<= 14`)
- [ ] ldc (1.30.0 supports LLVM `<= 14`)
- [ ] ghdl (2.0.0 supports LLVM `<= 14`)
- [x] qt
- [ ] qtcreator (breaking changes in clang-format API)
- [ ] shiboken2 (tests failing with llvm15)
- [x] bpftrace (https://github.com/void-linux/void-packages/pull/39002)
- [ ] libclc (tests fail with unresolved calls https://gist.githubusercontent.com/tranzystorek-io/a2aa8a0d8010af5299f7d1ff9f82c22b/raw/6d316d99d6079990b73ae77d274dd120b9560589/LastTest.log)
A patch file from https://github.com/void-linux/void-packages/pull/40821.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-llvm15-40821.patch --]
[-- Type: text/x-diff, Size: 84352 bytes --]
From 2b3c100198a349d6c5ac5ae3d898ddf41b72b92c Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Sun, 18 Dec 2022 00:36:59 +0100
Subject: [PATCH 01/17] New package: llvm15-15.0.7
---
common/shlibs | 3 +
srcpkgs/libllvm15 | 1 +
.../llvm15/files/llvm-Config-llvm-config.h | 9 +
...clang-001-fix-unwind-chain-inclusion.patch | 44 ++
.../patches/clang-002-add-musl-triples.patch | 110 +++++
.../clang-003-ppc64-dynamic-linker-path.patch | 13 +
.../patches/clang-004-ppc64-musl-elfv2.patch | 48 ++
.../compiler-rt-sanitizer-ppc64-musl.patch | 35 ++
.../compiler-rt-xray-ppc64-musl.patch.skip | 62 +++
srcpkgs/llvm15/patches/libcxx-musl.patch | 26 ++
srcpkgs/llvm15/patches/libcxx-ppc.patch | 22 +
.../llvm15/patches/libcxx-ssp-nonshared.patch | 11 +
srcpkgs/llvm15/patches/libcxxabi-dl.patch | 25 +
srcpkgs/llvm15/patches/libcxxabi-musl.patch | 37 ++
srcpkgs/llvm15/patches/libomp-soname.patch | 12 +
.../llvm15/patches/libunwind-ppc32.patch.skip | 63 +++
srcpkgs/llvm15/patches/lldb-musl.patch | 40 ++
srcpkgs/llvm15/patches/llvm-001-musl.patch | 57 +++
.../patches/llvm-002-musl-ppc64-elfv2.patch | 30 ++
.../patches/llvm-003-ppc-secureplt.patch | 11 +
.../patches/llvm-004-override-opt.patch | 18 +
.../llvm15/patches/llvm-005-ppc-bigpic.patch | 36 ++
.../patches/llvm-006-aarch64-mf_exec.patch | 25 +
srcpkgs/llvm15/template | 437 ++++++++++++++++++
srcpkgs/llvm15/update | 3 +
25 files changed, 1178 insertions(+)
create mode 120000 srcpkgs/libllvm15
create mode 100644 srcpkgs/llvm15/files/llvm-Config-llvm-config.h
create mode 100644 srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch
create mode 100644 srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch
create mode 100644 srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch
create mode 100644 srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch
create mode 100644 srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch
create mode 100644 srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip
create mode 100644 srcpkgs/llvm15/patches/libcxx-musl.patch
create mode 100644 srcpkgs/llvm15/patches/libcxx-ppc.patch
create mode 100644 srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch
create mode 100644 srcpkgs/llvm15/patches/libcxxabi-dl.patch
create mode 100644 srcpkgs/llvm15/patches/libcxxabi-musl.patch
create mode 100644 srcpkgs/llvm15/patches/libomp-soname.patch
create mode 100644 srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip
create mode 100644 srcpkgs/llvm15/patches/lldb-musl.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-001-musl.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-004-override-opt.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch
create mode 100644 srcpkgs/llvm15/template
create mode 100644 srcpkgs/llvm15/update
diff --git a/common/shlibs b/common/shlibs
index 32b6337a4f92..6b2e3b50ba5a 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -992,6 +992,9 @@ libclang.so.12 libclang-12.0.0_1
libclang-cpp.so.12 libclang-cpp-12.0.0_1
libLLVM-11.so libllvm11-11.0.0_1
libLLVM-12.so libllvm12-12.0.0_1
+libLLVM-15.so libllvm15-15.0.7_1
+libomp.so.5 libomp-15.0.7_1
+libomptarget.so.15 libomp-15.0.7_1
libisofs.so.6 libisofs-0.6.24_1
libmpack.so.0 libmpack-1.0.5_1
libGeoIP.so.1 libgeoip-1.4.8_1
diff --git a/srcpkgs/libllvm15 b/srcpkgs/libllvm15
new file mode 120000
index 000000000000..ad57a969b9f9
--- /dev/null
+++ b/srcpkgs/libllvm15
@@ -0,0 +1 @@
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm15/files/llvm-Config-llvm-config.h b/srcpkgs/llvm15/files/llvm-Config-llvm-config.h
new file mode 100644
index 000000000000..2fa08c9be696
--- /dev/null
+++ b/srcpkgs/llvm15/files/llvm-Config-llvm-config.h
@@ -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
diff --git a/srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch b/srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch
new file mode 100644
index 000000000000..e4eaa7783e7a
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch
@@ -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
diff --git a/srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch b/srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch
new file mode 100644
index 000000000000..25688d40dbc2
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch
@@ -0,0 +1,110 @@
+--- a/clang/lib/Driver/ToolChains/Gnu.cpp
++++ b/clang/lib/Driver/ToolChains/Gnu.cpp
+@@ -2086,7 +2086,8 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
+ static const char *const ARMHFTriples[] = {"arm-linux-gnueabihf",
+ "armv7hl-redhat-linux-gnueabi",
+ "armv6hl-suse-linux-gnueabi",
+- "armv7hl-suse-linux-gnueabi"};
++ "armv7hl-suse-linux-gnueabi",
++ "armv7l-linux-gnueabihf"};
+ static const char *const ARMebLibDirs[] = {"/lib"};
+ static const char *const ARMebTriples[] = {"armeb-linux-gnueabi",
+ "armeb-linux-androideabi"};
+@@ -2153,8 +2154,7 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
+ "powerpc64-suse-linux", "powerpc-montavista-linuxspe"};
+ static const char *const PPCLELibDirs[] = {"/lib32", "/lib"};
+ static const char *const PPCLETriples[] = {"powerpcle-linux-gnu",
+- "powerpcle-unknown-linux-gnu",
+- "powerpcle-linux-musl"};
++ "powerpcle-unknown-linux-gnu"};
+
+ static const char *const PPC64LibDirs[] = {"/lib64", "/lib"};
+ static const char *const PPC64Triples[] = {
+@@ -2235,6 +2235,87 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
+ return;
+ }
+
++ if (TargetTriple.isMusl()) {
++ static const char *const AArch64MuslTriples[] = {"aarch64-linux-musl"};
++ static const char *const ARMHFMuslTriples[] = {
++ "arm-linux-musleabihf", "armv7l-linux-musleabihf"
++ };
++ static const char *const ARMMuslTriples[] = {"arm-linux-musleabi"};
++ static const char *const X86_64MuslTriples[] = {"x86_64-linux-musl"};
++ static const char *const X86MuslTriples[] = {"i686-linux-musl"};
++ static const char *const MIPSMuslTriples[] = {
++ "mips-linux-musl", "mipsel-linux-musl",
++ "mipsel-linux-muslhf", "mips-linux-muslhf"
++ };
++ static const char *const PPCMuslTriples[] = {"powerpc-linux-musl"};
++ static const char *const PPCLEMuslTriples[] = {"powerpcle-linux-musl"};
++ static const char *const PPC64MuslTriples[] = {"powerpc64-linux-musl"};
++ static const char *const PPC64LEMuslTriples[] = {"powerpc64le-linux-musl"};
++
++ switch (TargetTriple.getArch()) {
++ case llvm::Triple::aarch64:
++ LibDirs.append(begin(AArch64LibDirs), end(AArch64LibDirs));
++ TripleAliases.append(begin(AArch64MuslTriples), end(AArch64MuslTriples));
++ BiarchLibDirs.append(begin(AArch64LibDirs), end(AArch64LibDirs));
++ BiarchTripleAliases.append(begin(AArch64MuslTriples), end(AArch64MuslTriples));
++ break;
++ case llvm::Triple::arm:
++ LibDirs.append(begin(ARMLibDirs), end(ARMLibDirs));
++ if (TargetTriple.getEnvironment() == llvm::Triple::MuslEABIHF) {
++ TripleAliases.append(begin(ARMHFMuslTriples), end(ARMHFMuslTriples));
++ } else {
++ TripleAliases.append(begin(ARMMuslTriples), end(ARMMuslTriples));
++ }
++ break;
++ case llvm::Triple::x86_64:
++ LibDirs.append(begin(X86_64LibDirs), end(X86_64LibDirs));
++ TripleAliases.append(begin(X86_64MuslTriples), end(X86_64MuslTriples));
++ BiarchLibDirs.append(begin(X86LibDirs), end(X86LibDirs));
++ BiarchTripleAliases.append(begin(X86MuslTriples), end(X86MuslTriples));
++ break;
++ case llvm::Triple::x86:
++ LibDirs.append(begin(X86LibDirs), end(X86LibDirs));
++ TripleAliases.append(begin(X86MuslTriples), end(X86MuslTriples));
++ BiarchLibDirs.append(begin(X86_64LibDirs), end(X86_64LibDirs));
++ BiarchTripleAliases.append(begin(X86_64MuslTriples), end(X86_64MuslTriples));
++ break;
++ case llvm::Triple::mips:
++ LibDirs.append(begin(MIPSLibDirs), end(MIPSLibDirs));
++ TripleAliases.append(begin(MIPSMuslTriples), end(MIPSMuslTriples));
++ break;
++ case llvm::Triple::ppc:
++ LibDirs.append(begin(PPCLibDirs), end(PPCLibDirs));
++ TripleAliases.append(begin(PPCMuslTriples), end(PPCMuslTriples));
++ BiarchLibDirs.append(begin(PPC64LibDirs), end(PPC64LibDirs));
++ BiarchTripleAliases.append(begin(PPC64MuslTriples), end(PPC64MuslTriples));
++ break;
++ case llvm::Triple::ppcle:
++ LibDirs.append(begin(PPCLELibDirs), end(PPCLELibDirs));
++ TripleAliases.append(begin(PPCLEMuslTriples), end(PPCLEMuslTriples));
++ BiarchLibDirs.append(begin(PPC64LELibDirs), end(PPC64LELibDirs));
++ BiarchTripleAliases.append(begin(PPC64LEMuslTriples), end(PPC64LEMuslTriples));
++ break;
++ case llvm::Triple::ppc64:
++ LibDirs.append(begin(PPC64LibDirs), end(PPC64LibDirs));
++ TripleAliases.append(begin(PPC64MuslTriples), end(PPC64MuslTriples));
++ BiarchLibDirs.append(begin(PPCLibDirs), end(PPCLibDirs));
++ BiarchTripleAliases.append(begin(PPCMuslTriples), end(PPCMuslTriples));
++ break;
++ case llvm::Triple::ppc64le:
++ LibDirs.append(begin(PPC64LELibDirs), end(PPC64LELibDirs));
++ TripleAliases.append(begin(PPC64LEMuslTriples), end(PPC64LEMuslTriples));
++ BiarchLibDirs.append(begin(PPCLELibDirs), end(PPCLELibDirs));
++ BiarchTripleAliases.append(begin(PPCLEMuslTriples), end(PPCLEMuslTriples));
++ break;
++ default:
++ break;
++ }
++ TripleAliases.push_back(TargetTriple.str());
++ if (TargetTriple.str() != BiarchTriple.str())
++ BiarchTripleAliases.push_back(BiarchTriple.str());
++ return;
++ }
++
+ // Android targets should not use GNU/Linux tools or libraries.
+ if (TargetTriple.isAndroid()) {
+ static const char *const AArch64AndroidTriples[] = {
diff --git a/srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch b/srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch
new file mode 100644
index 000000000000..4ad6412d1e6c
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch
@@ -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 =
diff --git a/srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch b/srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch
new file mode 100644
index 000000000000..21fc8003c5f1
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch
@@ -0,0 +1,48 @@
+--- a/clang/lib/Basic/Targets/PPC.h
++++ b/clang/lib/Basic/Targets/PPC.h
+@@ -415,11 +415,10 @@ public:
+ LongDoubleFormat = &llvm::APFloat::IEEEdouble();
+ } else if ((Triple.getArch() == llvm::Triple::ppc64le)) {
+ DataLayout = "e-m:e-i64:64-n32:64";
+- ABI = "elfv2";
+ } else {
+ DataLayout = "E-m:e-i64:64-n32:64";
+- ABI = "elfv1";
+ }
++ ABI = "elfv2";
+
+ if (Triple.isOSFreeBSD() || Triple.isOSOpenBSD() || Triple.isMusl()) {
+ LongDoubleWidth = LongDoubleAlign = 64;
+--- a/clang/lib/CodeGen/TargetInfo.cpp
++++ b/clang/lib/CodeGen/TargetInfo.cpp
+@@ -10927,9 +10927,9 @@ const TargetCodeGenInfo &CodeGenModule::getTargetCodeGenInfo() {
+ return SetCGInfo(new AIXTargetCodeGenInfo(Types, /*Is64Bit*/ true));
+
+ if (Triple.isOSBinFormatELF()) {
+- PPC64_SVR4_ABIInfo::ABIKind Kind = PPC64_SVR4_ABIInfo::ELFv1;
+- if (getTarget().getABI() == "elfv2")
+- Kind = PPC64_SVR4_ABIInfo::ELFv2;
++ PPC64_SVR4_ABIInfo::ABIKind Kind = PPC64_SVR4_ABIInfo::ELFv2;
++ if (getTarget().getABI() == "elfv1")
++ Kind = PPC64_SVR4_ABIInfo::ELFv1;
+ bool IsSoftFloat = CodeGenOpts.FloatABI == "soft";
+
+ return SetCGInfo(
+--- a/clang/lib/Driver/ToolChains/Clang.cpp
++++ b/clang/lib/Driver/ToolChains/Clang.cpp
+@@ -1920,14 +1920,7 @@ void Clang::AddPPCTargetArgs(const ArgList &Args,
+ const llvm::Triple &T = getToolChain().getTriple();
+ if (T.isOSBinFormatELF()) {
+ switch (getToolChain().getArch()) {
+- case llvm::Triple::ppc64: {
+- if ((T.isOSFreeBSD() && T.getOSMajorVersion() >= 13) ||
+- T.isOSOpenBSD() || T.isMusl())
+- ABIName = "elfv2";
+- else
+- ABIName = "elfv1";
+- break;
+- }
++ case llvm::Triple::ppc64:
+ case llvm::Triple::ppc64le:
+ ABIName = "elfv2";
+ break;
diff --git a/srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch b/srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch
new file mode 100644
index 000000000000..360cfc1ba7f1
--- /dev/null
+++ b/srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch
@@ -0,0 +1,35 @@
+--- 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__) || SANITIZER_RISCV64
++ defined(__hexagon__) || defined(__powerpc__) || 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_ANDROID
++#if (defined(__aarch64__) || defined(__powerpc__) || SANITIZER_RISCV64) && !SANITIZER_ANDROID
+ // GLIBC 2.20+ sys/user does not include asm/ptrace.h
+ # include <asm/ptrace.h>
+ #endif
diff --git a/srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip b/srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip
new file mode 100644
index 000000000000..d0b61c80c897
--- /dev/null
+++ b/srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip
@@ -0,0 +1,62 @@
+--- a/compiler-rt/lib/xray/xray_powerpc64.inc
++++ b/compiler-rt/lib/xray/xray_powerpc64.inc
+@@ -12,7 +12,13 @@
+
+ #include <cstdint>
+ #include <mutex>
++#ifdef __GLIBC__
+ #include <sys/platform/ppc.h>
++#else
++#include <cctype>
++#include <cstring>
++#include <cstdlib>
++#endif
+
+ #include "xray_defs.h"
+
+@@ -20,13 +26,45 @@ namespace __xray {
+
+ ALWAYS_INLINE uint64_t readTSC(uint8_t &CPU) XRAY_NEVER_INSTRUMENT {
+ CPU = 0;
++#ifdef __GLIBC__
+ return __ppc_get_timebase();
++#else
++ return __builtin_ppc_get_timebase();
++#endif
+ }
+
+ inline uint64_t getTSCFrequency() XRAY_NEVER_INSTRUMENT {
+ static std::mutex M;
+ std::lock_guard<std::mutex> Guard(M);
++#ifdef __GLIBC__
+ return __ppc_get_timebase_freq();
++#else
++ /* FIXME: a less dirty implementation? */
++ static uint64_t base;
++ if (!base) {
++ FILE *f = fopen("/proc/cpuinfo", "rb");
++ if (f) {
++ ssize_t nr;
++ /* virtually always big enough to hold the line */
++ char buf[512];
++ while (fgets(buf, sizeof(buf), f)) {
++ char *ret = strstr(buf, "timebase");
++ if (!ret) {
++ continue;
++ }
++ ret += sizeof("timebase") - 1;
++ ret = strchr(ret, ':');
++ if (!ret) {
++ continue;
++ }
++ base = strtoul(ret + 1, nullptr, 10);
++ break;
++ }
++ fclose(f);
++ }
++ }
++ return base;
++#endif
+ }
+
+ inline bool probeRequiredCPUFeatures() XRAY_NEVER_INSTRUMENT {
diff --git a/srcpkgs/llvm15/patches/libcxx-musl.patch b/srcpkgs/llvm15/patches/libcxx-musl.patch
new file mode 100644
index 000000000000..bbd31ffc2cb1
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxx-musl.patch
@@ -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,
+ typename remove_reference<decltype(errno)>::type __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
+ typename remove_reference<decltype(errno)>::type __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,
+ typename remove_reference<decltype(errno)>::type __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
+ typename remove_reference<decltype(errno)>::type __current_errno = errno;
+ if (__current_errno == 0)
+ errno = __save_errno;
diff --git a/srcpkgs/llvm15/patches/libcxx-ppc.patch b/srcpkgs/llvm15/patches/libcxx-ppc.patch
new file mode 100644
index 000000000000..7a92f8004e1c
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxx-ppc.patch
@@ -0,0 +1,22 @@
+This ensures `is_iec559` is defined correctly under all long double ABIs,
+including musl and its 64-bit long double. Also, `__ppc__` or `__ppc64__`
+is not defined on gcc.
+
+--- a/libcxx/include/limits
++++ b/libcxx/include/limits
+@@ -426,8 +426,14 @@ protected:
+ _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type signaling_NaN() _NOEXCEPT {return __builtin_nansl("");}
+ _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type denorm_min() _NOEXCEPT {return __LDBL_DENORM_MIN__;}
+
+-#if (defined(__ppc__) || defined(__ppc64__))
++#if defined(__powerpc__) || defined(__powerpc64__)
++#if (__LDBL_MAX_EXP__ > __DBL_MAX_EXP__) || (__LDBL_MANT_DIG__ == __DBL_MANT_DIG__)
++ /* IEEE 754 quadruple or double precision */
++ static _LIBCPP_CONSTEXPR const bool is_iec559 = true;
++#else
++ /* 128-bit IBM double-double */
+ static _LIBCPP_CONSTEXPR const bool is_iec559 = false;
++#endif
+ #else
+ static _LIBCPP_CONSTEXPR const bool is_iec559 = true;
+ #endif
diff --git a/srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch b/srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch
new file mode 100644
index 000000000000..70292beb2fcd
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch
@@ -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()
diff --git a/srcpkgs/llvm15/patches/libcxxabi-dl.patch b/srcpkgs/llvm15/patches/libcxxabi-dl.patch
new file mode 100644
index 000000000000..3a15f9db8c98
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxxabi-dl.patch
@@ -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 @@
+ target_link_libraries(${target} PRIVATE m)
+ endif()
+
++ if (LIBCXX_HAS_C_LIB)
++ target_link_libraries(${target} PRIVATE dl)
++ endif()
++
+ if (LIBCXX_HAS_RT_LIB)
+ target_link_libraries(${target} PRIVATE rt)
+ endif()
diff --git a/srcpkgs/llvm15/patches/libcxxabi-musl.patch b/srcpkgs/llvm15/patches/libcxxabi-musl.patch
new file mode 100644
index 000000000000..55bf6f5aaa08
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxxabi-musl.patch
@@ -0,0 +1,37 @@
+diff --git a/libcxx/include/__support/musl/xlocale.h b/libcxx/include/__support/musl/xlocale.h
+index e674a41fa..f546119b9 100644
+--- a/libcxx/include/__support/musl/xlocale.h
++++ b/libcxx/include/__support/musl/xlocale.h
+@@ -24,27 +24,27 @@
+ extern "C" {
+ #endif
+
+-inline _LIBCPP_HIDE_FROM_ABI long long
++static inline long long
+ strtoll_l(const char *__nptr, char **__endptr, int __base, locale_t) {
+ return ::strtoll(__nptr, __endptr, __base);
+ }
+
+-inline _LIBCPP_HIDE_FROM_ABI unsigned long long
++static inline unsigned long long
+ strtoull_l(const char *__nptr, char **__endptr, int __base, locale_t) {
+ return ::strtoull(__nptr, __endptr, __base);
+ }
+
+-inline _LIBCPP_HIDE_FROM_ABI long long
++static inline long long
+ wcstoll_l(const wchar_t *__nptr, wchar_t **__endptr, int __base, locale_t) {
+ return ::wcstoll(__nptr, __endptr, __base);
+ }
+
+-inline _LIBCPP_HIDE_FROM_ABI unsigned long long
++static inline unsigned long long
+ wcstoull_l(const wchar_t *__nptr, wchar_t **__endptr, int __base, locale_t) {
+ return ::wcstoull(__nptr, __endptr, __base);
+ }
+
+-inline _LIBCPP_HIDE_FROM_ABI long double
++static inline long double
+ wcstold_l(const wchar_t *__nptr, wchar_t **__endptr, locale_t) {
+ return ::wcstold(__nptr, __endptr);
+ }
diff --git a/srcpkgs/llvm15/patches/libomp-soname.patch b/srcpkgs/llvm15/patches/libomp-soname.patch
new file mode 100644
index 000000000000..9a622cd9254c
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libomp-soname.patch
@@ -0,0 +1,12 @@
+diff --git a/openmp/runtime/src/CMakeLists.txt b/openmp/runtime/src/CMakeLists.txt
+index df1ca9d90..9d2c3b7b9 100644
+--- a/openmp/runtime/src/CMakeLists.txt
++++ b/openmp/runtime/src/CMakeLists.txt
+@@ -150,6 +150,7 @@ libomp_get_libflags(LIBOMP_CONFIGURED_LIBFLAGS)
+ # Build libomp library. Add LLVMSupport dependency if building in-tree with libomptarget profiling enabled.
+ if(OPENMP_STANDALONE_BUILD OR (NOT OPENMP_ENABLE_LIBOMP_PROFILING))
+ add_library(omp ${LIBOMP_LIBRARY_KIND} ${LIBOMP_SOURCE_FILES})
++ set_target_properties(omp PROPERTIES VERSION ${LIBOMP_VERSION_MAJOR} SOVERSION ${LIBOMP_VERSION_MAJOR})
+ # Linking command will include libraries in LIBOMP_CONFIGURED_LIBFLAGS
+ target_link_libraries(omp ${LIBOMP_CONFIGURED_LIBFLAGS} ${LIBOMP_DL_LIBS})
+ else()
diff --git a/srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip b/srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip
new file mode 100644
index 000000000000..74aa7576ecf9
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip
@@ -0,0 +1,63 @@
+This fixes build at least with gcc9 which does not define `__ppc__`.
+
+--- a/libunwind/include/__libunwind_config.h
++++ b/libunwind/include/__libunwind_config.h
+@@ -49,7 +49,7 @@
+ # define _LIBUNWIND_CONTEXT_SIZE 167
+ # define _LIBUNWIND_CURSOR_SIZE 179
+ # define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_PPC64
+-# elif defined(__ppc__)
++# elif defined(__powerpc__)
+ # define _LIBUNWIND_TARGET_PPC 1
+ # define _LIBUNWIND_CONTEXT_SIZE 117
+ # define _LIBUNWIND_CURSOR_SIZE 124
+--- a/libunwind/src/UnwindRegistersRestore.S
++++ b/libunwind/src/UnwindRegistersRestore.S
+@@ -392,7 +392,7 @@ Lnovec:
+ PPC64_LR(3)
+ bctr
+
+-#elif defined(__ppc__)
++#elif defined(__powerpc__)
+
+ DEFINE_LIBUNWIND_FUNCTION(_ZN9libunwind13Registers_ppc6jumptoEv)
+ //
+--- a/libunwind/src/UnwindRegistersSave.S
++++ b/libunwind/src/UnwindRegistersSave.S
+@@ -554,7 +554,7 @@ DEFINE_LIBUNWIND_FUNCTION(__unw_getcontext)
+ blr
+
+
+-#elif defined(__ppc__)
++#elif defined(__powerpc__)
+
+ //
+ // extern int unw_getcontext(unw_context_t* thread_state)
+--- a/libunwind/src/config.h
++++ b/libunwind/src/config.h
+@@ -95,12 +95,12 @@
+ #define _LIBUNWIND_BUILD_SJLJ_APIS
+ #endif
+
+-#if defined(__i386__) || defined(__x86_64__) || defined(__ppc__) || defined(__ppc64__) || defined(__powerpc64__)
++#if defined(__i386__) || defined(__x86_64__) || defined(__powerpc__) || defined(__powerpc64__)
+ #define _LIBUNWIND_SUPPORT_FRAME_APIS
+ #endif
+
+ #if defined(__i386__) || defined(__x86_64__) || \
+- defined(__ppc__) || defined(__ppc64__) || defined(__powerpc64__) || \
++ defined(__powerpc__) || defined(__powerpc64__) || \
+ (!defined(__APPLE__) && defined(__arm__)) || \
+ (defined(__arm64__) || defined(__aarch64__)) || \
+ defined(__mips__)
+--- a/libunwind/src/libunwind.cpp
++++ b/libunwind/src/libunwind.cpp
+@@ -42,7 +42,7 @@ _LIBUNWIND_HIDDEN int __unw_init_local(unw_cursor_t *cursor,
+ # define REGISTER_KIND Registers_x86_64
+ #elif defined(__powerpc64__)
+ # define REGISTER_KIND Registers_ppc64
+-#elif defined(__ppc__)
++#elif defined(__powerpc__)
+ # define REGISTER_KIND Registers_ppc
+ #elif defined(__aarch64__)
+ # define REGISTER_KIND Registers_arm64
diff --git a/srcpkgs/llvm15/patches/lldb-musl.patch b/srcpkgs/llvm15/patches/lldb-musl.patch
new file mode 100644
index 000000000000..026c5e1e61ba
--- /dev/null
+++ b/srcpkgs/llvm15/patches/lldb-musl.patch
@@ -0,0 +1,40 @@
+--- a/lldb/source/Plugins/Process/Linux/Procfs.h
++++ b/lldb/source/Plugins/Process/Linux/Procfs.h
+@@ -10,6 +10,7 @@
+ // sys/procfs.h on Android/Linux for all supported architectures.
+
+ #include <sys/ptrace.h>
++#include <asm/ptrace.h>
+
+ #include "lldb/lldb-types.h"
+
+@@ -17,23 +18,13 @@
+
+ #include <vector>
+
+-#ifdef __ANDROID__
+-#if defined(__arm64__) || defined(__aarch64__)
+-typedef unsigned long elf_greg_t;
+-typedef elf_greg_t
+- elf_gregset_t[(sizeof(struct user_pt_regs) / sizeof(elf_greg_t))];
+-typedef struct user_fpsimd_state elf_fpregset_t;
+-#ifndef NT_FPREGSET
+-#define NT_FPREGSET NT_PRFPREG
+-#endif // NT_FPREGSET
+-#elif defined(__mips__)
+-#ifndef NT_FPREGSET
+-#define NT_FPREGSET NT_PRFPREG
+-#endif // NT_FPREGSET
+-#endif
+-#else // __ANDROID__
++#if !defined(__GLIBC__) && defined(__powerpc__)
++#define pt_regs musl_pt_regs
++#include <sys/procfs.h>
++#undef pt_regs
++#else
+ #include <sys/procfs.h>
+-#endif // __ANDROID__
++#endif
+
+ namespace lldb_private {
+ namespace process_linux {
diff --git a/srcpkgs/llvm15/patches/llvm-001-musl.patch b/srcpkgs/llvm15/patches/llvm-001-musl.patch
new file mode 100644
index 000000000000..f2a3f8d62813
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-001-musl.patch
@@ -0,0 +1,57 @@
+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;
+diff --git a/lib/Support/Unix/DynamicLibrary.inc b/lib/Support/Unix/DynamicLibrary.inc
+index a2a37996..2f86c470 100644
+--- a/llvm/lib/Support/Unix/DynamicLibrary.inc
++++ b/llvm/lib/Support/Unix/DynamicLibrary.inc
+@@ -102,7 +102,7 @@ static void *DoSearch(const char* SymbolName) {
+
+ // This macro returns the address of a well-known, explicit symbol
+ #define EXPLICIT_SYMBOL(SYM) \
+- if (!strcmp(SymbolName, #SYM)) return &SYM
++ if (!strcmp(SymbolName, #SYM)) return (void *)&SYM
+
+ // Under glibc we have a weird situation. The stderr/out/in symbols are both
+ // macros and global variables because of standards requirements. So, we
+diff --git a/utils/unittest/googletest/src/gtest.cc b/utils/unittest/googletest/src/gtest.cc
+index d882ab2e..f1fb12d0 100644
+--- a/llvm/utils/unittest/googletest/src/gtest.cc
++++ b/llvm/utils/unittest/googletest/src/gtest.cc
+@@ -128,6 +128,7 @@
+
+ #if GTEST_CAN_STREAM_RESULTS_
+ # include <arpa/inet.h> // NOLINT
++# include <sys/socket.h> // NOLINT
+ # include <netdb.h> // NOLINT
+ # include <sys/socket.h> // NOLINT
+ # include <sys/types.h> // NOLINT
diff --git a/srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch b/srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch
new file mode 100644
index 000000000000..0071d964bd37
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch
@@ -0,0 +1,30 @@
+This patches LLVM to use ELFv2 on ppc64 unconditionally unless overridden. We
+need this because unlike most distros we use ELFv2 for both glibc and musl
+on big endian ppc64.
+
+diff --git a/lib/Target/PowerPC/PPCTargetMachine.cpp b/lib/Target/PowerPC/PPCTargetMachine.cpp
+index 0634833e..b7cbc2e7 100644
+--- a/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp
++++ b/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp
+@@ -222,9 +222,8 @@ static PPCTargetMachine::PPCABI computeTargetABI(const Triple &TT,
+
+ switch (TT.getArch()) {
+ case Triple::ppc64le:
+- return PPCTargetMachine::PPC_ABI_ELFv2;
+ case Triple::ppc64:
+- return PPCTargetMachine::PPC_ABI_ELFv1;
++ return PPCTargetMachine::PPC_ABI_ELFv2;
+ default:
+ return PPCTargetMachine::PPC_ABI_UNKNOWN;
+ }
+diff --git a/test/CodeGen/PowerPC/ppc64-elf-abi.ll b/test/CodeGen/PowerPC/ppc64-elf-abi.ll
+index 8b1cf6b5..296a2afa 100644
+--- a/llvm/test/CodeGen/PowerPC/ppc64-elf-abi.ll
++++ b/llvm/test/CodeGen/PowerPC/ppc64-elf-abi.ll
+@@ -1,4 +1,5 @@
+-; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv1
++; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv2
++; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-musl < %s | FileCheck %s -check-prefix=CHECK-ELFv2
+ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu -target-abi elfv1 < %s | FileCheck %s -check-prefix=CHECK-ELFv1
+ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu -target-abi elfv2 < %s | FileCheck %s -check-prefix=CHECK-ELFv2
+ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv2
diff --git a/srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch b/srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch
new file mode 100644
index 000000000000..b5d15974375d
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch
@@ -0,0 +1,11 @@
+--- a/llvm/lib/Target/PowerPC/PPCSubtarget.cpp
++++ b/llvm/lib/Target/PowerPC/PPCSubtarget.cpp
+@@ -165,7 +165,7 @@ void PPCSubtarget::initSubtargetFeatures(StringRef CPU, StringRef FS) {
+
+ if ((TargetTriple.isOSFreeBSD() && TargetTriple.getOSMajorVersion() >= 13) ||
+ TargetTriple.isOSNetBSD() || TargetTriple.isOSOpenBSD() ||
+- TargetTriple.isMusl())
++ isTargetLinux())
+ SecurePlt = true;
+
+ if (HasSPE && IsPPC64)
diff --git a/srcpkgs/llvm15/patches/llvm-004-override-opt.patch b/srcpkgs/llvm15/patches/llvm-004-override-opt.patch
new file mode 100644
index 000000000000..51d0e4b31b32
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-004-override-opt.patch
@@ -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)
diff --git a/srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch b/srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch
new file mode 100644
index 000000000000..d332687b9d92
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch
@@ -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);
diff --git a/srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch b/srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch
new file mode 100644
index 000000000000..a00abd216665
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch
@@ -0,0 +1,25 @@
+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__) || defined (__ppc__) || \
+- defined(_POWER) || defined(_ARCH_PPC))
++ defined(_POWER) || defined(_ARCH_PPC) || (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
diff --git a/srcpkgs/llvm15/template b/srcpkgs/llvm15/template
new file mode 100644
index 000000000000..92dadb185a7a
--- /dev/null
+++ b/srcpkgs/llvm15/template
@@ -0,0 +1,437 @@
+# Template file for 'llvm15'
+pkgname=llvm15
+version=15.0.7
+revision=1
+build_wrksrc=llvm
+build_style=cmake
+_ext_suffix=".cpython-${py3_ver/./}-linux-${XBPS_TARGET_LIBC/glibc/gnu}.so"
+configure_args="
+ -DCMAKE_BUILD_TYPE=Release -Wno-dev
+ -DENABLE_LINKER_BUILD_ID=YES
+ -DLLDB_USE_SYSTEM_SIX=YES
+ -DLIBCXX_CXX_ABI=libcxxabi
+ -DLIBCXX_ENABLE_STATIC_ABI_LIBRARY=YES
+ -DLIBCXXABI_USE_LLVM_UNWINDER=YES
+ -DLIBCXXABI_ENABLE_STATIC_UNWINDER=YES
+ -DLIBOMP_ENABLE_SHARED=YES
+ -DLIBOMP_INSTALL_ALIASES=NO
+ -DLLVM_INCLUDE_DOCS=YES
+ -DLLVM_BUILD_DOCS=YES
+ -DLLVM_ENABLE_SPHINX=YES
+ -DSPHINX_WARNINGS_AS_ERRORS=NO
+ -DLLVM_INSTALL_UTILS=YES
+ -DLLVM_BUILD_LLVM_DYLIB=YES
+ -DLLVM_LINK_LLVM_DYLIB=YES
+ -DLLVM_ENABLE_RTTI=YES
+ -DLLVM_ENABLE_FFI=YES
+ -DLLVM_BINUTILS_INCDIR=/usr/include
+ -DLLVM_ENABLE_PER_TARGET_RUNTIME_DIR=NO
+ -DLLDB_PYTHON_RELATIVE_PATH=lib/python${py3_ver}/site-packages
+ -DLLDB_PYTHON_EXE_RELATIVE_PATH=bin/python${py3_ver}
+ -DLLDB_PYTHON_EXT_SUFFIX=$_ext_suffix"
+hostmakedepends="perl python3 zlib-devel libffi-devel swig python3-Sphinx
+ python3-recommonmark python3-sphinx-automodapi"
+makedepends="python3-devel zlib-devel elfutils-devel libffi-devel libedit-devel
+ libxml2-devel binutils-devel libatomic-devel"
+depends="libllvm15>=${version}_${revision}"
+short_desc="Low Level Virtual Machine"
+maintainer="Orphaned <orphan@voidlinux.org>"
+license="Apache-2.0"
+homepage="https://www.llvm.org"
+distfiles="https://github.com/llvm/llvm-project/releases/download/llvmorg-${version}/llvm-project-${version}.src.tar.xz"
+checksum=8b5fcb24b4128cf04df1b0b9410ce8b1a729cb3c544e6da885d234280dedeac6
+lib32disabled=yes
+python_version=3
+
+if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
+ configure_args+=" -DLIBCXX_HAS_MUSL_LIBC=YES
+ -DCOMPILER_RT_BUILD_GWP_ASAN=OFF"
+fi
+
+# "operand out of range" assembler failures
+case "$XBPS_TARGET_MACHINE" in
+ ppc64*) ;;
+ ppc*) configure_args+=" -DCLANG_ENABLE_CLANGD=OFF" ;;
+esac
+
+_enabled_projects="clang;clang-tools-extra;compiler-rt;libcxx;libcxxabi;libunwind;lld"
+
+_lldb_enable=yes
+_libomp_enable=no
+
+case "$XBPS_TARGET_MACHINE" in
+ ppc64le*) ;;
+ ppc*|i686*|riscv64*) _lldb_enable=no ;;
+esac
+
+case "$XBPS_TARGET_MACHINE" in
+ x86_64*|aarch64*|ppc64*) _libomp_enable=yes;;
+esac
+
+subpackages="clang-tools-extra"
+
+# must go before clang
+if [ "$_libomp_enable" = "yes" ]; then
+ _enabled_projects+=";openmp"
+ subpackages+=" libomp libomp-devel"
+ # because of cmake nonsense referencing libomptarget.so.*
+ depends+=" libomp>=${version}_${revision}"
+fi
+
+subpackages+=" clang clang-analyzer libclang libclang-cpp
+ llvm-libunwind llvm-libunwind-devel libcxx libcxx-devel
+ libcxxabi libcxxabi-devel libllvm15"
+
+if [ "$_lldb_enable" = "yes" ]; then
+ # XXX fails to cross compile due to python
+ _enabled_projects+=";lldb"
+ subpackages+=" lldb lldb-devel"
+fi
+
+subpackages+=" lld lld-devel"
+
+configure_args+=" -DLLVM_ENABLE_PROJECTS=${_enabled_projects}"
+
+post_patch() {
+ if [ "$_lldb_enable" = "yes" ]; then
+ if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
+ vsed -i 's|__ptrace_request|int|g' \
+ ${wrksrc}/lldb/source/Plugins/Process/Linux/NativeProcessLinux.cpp
+ fi
+ # disable docs for lldb as they fail to generate
+ vsed -i '/add_subdirectory(docs)/d' \
+ ${wrksrc}/lldb/CMakeLists.txt
+ fi
+
+ # update config.guess for better platform detection
+ cp $XBPS_COMMONDIR/environment/configure/automake/config.guess \
+ ${wrksrc}/llvm/cmake
+
+ # fix linker failures on some archs
+ vsed -i 's,check_library_exists(gcc_s .*,set(LIBCXXABI_HAS_GCC_S_LIB ON),' \
+ ${wrksrc}/libcxxabi/cmake/config-ix.cmake
+ vsed -i 's,check_library_exists(gcc .*,set(LIBCXXABI_HAS_GCC_LIB ON),' \
+ ${wrksrc}/libcxxabi/cmake/config-ix.cmake
+
+ # need libssp_nonshared on some musl platforms (because of nodefaultlibs)
+ case "$XBPS_TARGET_MACHINE" in
+ ppc64*) ;;
+ ppc*-musl|i686-musl|mips*-musl)
+ vsed -i 's,^# Setup flags.$,add_library_flags(ssp_nonshared),' \
+ ${wrksrc}/libunwind/src/CMakeLists.txt
+ vsed -i 's,^# Setup flags.$,add_library_flags(ssp_nonshared),' \
+ ${wrksrc}/libcxxabi/src/CMakeLists.txt
+ vsed -i 's,#ssp,,' ${wrksrc}/libcxx/CMakeLists.txt
+ ;;
+ esac
+
+ case "$XBPS_TARGET_MACHINE" in
+ arm*-musl|i686-musl) # sanitizer code is broken since it duplicates some libc bits
+ vsed -i 's/set(COMPILER_RT_HAS_SANITIZER_COMMON TRUE)/set(COMPILER_RT_HAS_SANITIZER_COMMON FALSE)/' \
+ ${wrksrc}/compiler-rt/cmake/config-ix.cmake
+ ;;
+ esac
+}
+
+pre_configure() {
+ local triplet
+
+ # Vastly reduce size of debugging symbols:
+ CFLAGS=${CFLAGS/ -g/ -g1}
+ CXXFLAGS=${CXXFLAGS/ -g/ -g1}
+
+ # since gcc9, the build likes to blow up for ppc32 apparently because
+ # of clang being too large for a 24-bit relative call to the PLT, so
+ # optimize for size instead
+ case "$XBPS_TARGET_MACHINE" in
+ ppc64*) ;;
+ mips*-musl|ppc*) configure_args+=" -DVOID_CXX_OPT_FLAGS=-Os" ;;
+ esac
+
+ if [ "$CROSS_BUILD" ]; then
+ msg_normal "Building host tblgen\n"
+ mkdir -p build/HOST
+ cd build/HOST
+ CC="$BUILD_CC" CXX="$BUILD_CXX" CFLAGS="$BUILD_CFLAGS" \
+ CXXFLAGS="$BUILD_CXXFLAGS" LDFLAGS="$BUILD_LDFLAGS" \
+ cmake ../.. -DCMAKE_BUILD_TYPE=Release \
+ -DLLVM_ENABLE_PROJECTS=${_enabled_projects}
+ make ${makejobs} -C utils/TableGen
+ make ${makejobs} -C tools/clang/utils/TableGen
+ make ${makejobs} -C tools/clang/tools/extra/clang-tidy/misc/ConfusableTable
+ make ${makejobs} -C tools/clang/tools/extra/pseudo/gen
+ [ "$_lldb_enable" = "yes" ] && make ${makejobs} -C tools/lldb/utils/TableGen
+ configure_args+=" -DLLVM_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/llvm-tblgen"
+ configure_args+=" -DCLANG_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/clang-tblgen"
+ configure_args+=" -DCLANG_TIDY_CONFUSABLE_CHARS_GEN=${wrksrc}/llvm/build/HOST/bin/clang-tidy-confusable-chars-gen"
+ configure_args+=" -DCLANG_PSEUDO_GEN=${wrksrc}/llvm/build/HOST/bin/clang-pseudo-gen"
+ [ "$_lldb_enable" = "yes" ] && configure_args+=" -DLLDB_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/lldb-tblgen"
+ cd ../..
+ fi
+
+ case "$XBPS_TARGET_MACHINE" in
+ i686*) _arch="X86";;
+ x86_64*) _arch="X86";;
+ armv5*) _arch="Armv5te";;
+ armv6*) _arch="Armv6";;
+ armv7*) _arch="Armv7";;
+ aarch64*) _arch="AArch64";;
+ mips*) _arch="Mips";;
+ ppc*) _arch="PowerPC";;
+ riscv64*) _arch="RISCV64";;
+ esac
+
+ triplet=${XBPS_CROSS_TRIPLET:-$XBPS_TRIPLET}
+
+ configure_args+=" -DLLVM_TARGET_ARCH=${_arch}"
+ configure_args+=" -DLLVM_HOST_TRIPLE=${triplet}"
+ configure_args+=" -DLLVM_DEFAULT_TARGET_TRIPLE=${triplet}"
+}
+
+do_install() {
+ cd build
+ cmake -DCMAKE_INSTALL_PREFIX=${DESTDIR}/usr -P cmake_install.cmake
+
+ # Required for multilib.
+ if [ "$XBPS_TARGET_MACHINE" = "x86_64" ]; then
+ for _header in llvm-config; do
+ mv ${DESTDIR}/usr/include/llvm/Config/${_header}{,-64}.h
+ vinstall ${FILESDIR}/llvm-Config-${_header}.h 644 \
+ usr/include/llvm/Config ${_header}.h
+ done
+ fi
+
+ # Remove llvm-config-host in cross builds.
+ if [ "$CROSS_BUILD" ]; then
+ rm -f ${DESTDIR}/usr/bin/llvm-config-host
+ fi
+
+ # Install libcxxabi headers
+ vinstall ${wrksrc}/libcxxabi/include/__cxxabi_config.h 644 usr/include
+ vinstall ${wrksrc}/libcxxabi/include/cxxabi.h 644 usr/include
+
+ # Install libunwind headers
+ vinstall ${wrksrc}/libunwind/include/__libunwind_config.h 644 usr/include
+ vinstall ${wrksrc}/libunwind/include/libunwind.h 644 usr/include
+ vinstall ${wrksrc}/libunwind/include/unwind.h 644 usr/include
+ vinstall ${wrksrc}/libunwind/include/mach-o/compact_unwind_encoding.h \
+ 644 usr/include/mach-o
+}
+
+clang-analyzer_package() {
+ pycompile_dirs="usr/share/scan-view"
+ depends="clang-${version}_${revision} python3 perl"
+ short_desc+=" - A source code analysis framework"
+ homepage="https://clang-analyzer.llvm.org/"
+ pkg_install() {
+ vmove "usr/bin/scan-*"
+ vmove "usr/libexec/*analyzer"
+ vmove "usr/share/scan-*"
+ vmove usr/share/man/man1/scan-build.1
+ }
+}
+
+clang-tools-extra_package() {
+ lib32disabled=yes
+ depends="clang-${version}_${revision} python3"
+ short_desc+=" - Extra Clang tools"
+ homepage="https://clang.llvm.org/extra/"
+ pkg_install() {
+ vmove usr/bin/clang-apply-replacements
+ vmove usr/bin/clang-doc
+ vmove usr/bin/clang-include-fixer
+ vmove usr/bin/clang-query
+ vmove usr/bin/clang-rename
+ vmove usr/bin/clang-reorder-fields
+ vmove usr/bin/clang-tidy
+ vmove usr/bin/clangd
+ vmove usr/bin/diagtool
+ vmove usr/bin/find-all-symbols
+ vmove usr/bin/hmaptool
+ vmove usr/bin/modularize
+ vmove usr/bin/pp-trace
+ vmove usr/bin/sancov
+ vmove usr/include/clang-tidy
+ vmove "usr/lib/libclangApplyReplacements*"
+ vmove "usr/lib/libclangDoc*"
+ vmove "usr/lib/libclangIncludeFixer*"
+ vmove "usr/lib/libclangReorderFields*"
+ vmove "usr/lib/libclangQuery*"
+ vmove "usr/lib/libclangTidy*"
+ vmove "usr/share/clang/*include-fixer*"
+ vmove "usr/share/clang/*rename*"
+ vmove "usr/share/clang/*tidy*"
+ vmove usr/share/doc/LLVM/clang-tools
+ vmove usr/share/man/man1/diagtool.1
+ vmove usr/share/man/man1/extraclangtools.1
+ }
+}
+
+clang_package() {
+ lib32disabled=yes
+ depends="libstdc++-devel libgcc-devel binutils ${XBPS_TARGET_LIBC}-devel
+ libclang-${version}_${revision}"
+ short_desc+=" - C language family frontend"
+ homepage="https://clang.llvm.org/"
+ pkg_install() {
+ vmove "usr/bin/*clang*"
+ vmove usr/bin/c-index-test
+ vmove usr/include/clang
+ vmove usr/include/clang-c
+ vmove usr/lib/clang
+ vmove usr/lib/cmake/clang
+ vmove "usr/lib/libclang*.a"
+ vmove "usr/lib/libclang*.so"
+ vmove usr/share/clang
+ vmove usr/share/doc/LLVM/clang
+ vmove usr/share/man/man1/clang.1
+ }
+}
+
+libclang_package() {
+ short_desc+=" - C frontend runtime library"
+ pkg_install() {
+ vmove "usr/lib/libclang.so.*"
+ }
+}
+
+libclang-cpp_package() {
+ short_desc+=" - C frontend runtime library (C++ interface)"
+ pkg_install() {
+ vmove "usr/lib/libclang-cpp.so.*"
+ }
+}
+
+lld_package() {
+ lib32disabled=yes
+ short_desc+=" - linker"
+ homepage="https://lld.llvm.org"
+ pkg_install() {
+ vmove "usr/bin/ld.lld*"
+ vmove "usr/bin/ld64.lld*"
+ vmove "usr/bin/lld*"
+ vmove usr/bin/wasm-ld
+ vmove usr/share/doc/LLVM/lld
+ }
+}
+
+lld-devel_package() {
+ lib32disabled=yes
+ short_desc+=" - linker - development files"
+ homepage="https://lld.llvm.org"
+ depends="lld>=${version}_${revision}"
+ pkg_install() {
+ vmove usr/include/lld
+ vmove usr/lib/cmake/lld
+ vmove "usr/lib/liblld*a"
+ }
+}
+
+lldb_package() {
+ lib32disabled=yes
+ depends+=" python3-six"
+ short_desc+=" - LLDB debugger"
+ homepage="https://lldb.llvm.org/"
+ pkg_install() {
+ vmove "usr/bin/*lldb*"
+ vmove "usr/lib/liblldb*so.*"
+ vmove usr/lib/python*
+ }
+}
+
+lldb-devel_package() {
+ lib32disabled=yes
+ depends="lldb>=${version}_${revision}"
+ short_desc+=" - LLDB debugger - development files"
+ pkg_install() {
+ vmove usr/include/lldb
+ vmove "usr/lib/liblldb*.so"
+ }
+}
+
+llvm-libunwind_package() {
+ short_desc+=" - libunwind"
+ pkg_install() {
+ vmove "usr/lib/libunwind.so.*"
+ }
+}
+
+llvm-libunwind-devel_package() {
+ short_desc+=" - libunwind - development files"
+ depends="llvm-libunwind>=${version}_${revision}"
+ conflicts="libunwind-devel>=0"
+ pkg_install() {
+ vmove usr/include/mach-o
+ vmove "usr/include/*unwind*"
+ vmove "usr/lib/libunwind.a"
+ vmove "usr/lib/libunwind.so"
+ vmove usr/share/doc/LLVM/libunwind
+ }
+}
+
+libcxxabi_package() {
+ short_desc+=" - low level support for libc++"
+ pkg_install() {
+ vmove "usr/lib/libc++abi.so.*"
+ }
+}
+
+libcxxabi-devel_package() {
+ short_desc+=" - low level support for libc++ - development files"
+ depends="libcxxabi>=${version}_${revision}"
+ pkg_install() {
+ vmove "usr/include/*cxxabi*"
+ vmove "usr/lib/libc++abi.so"
+ vmove "usr/lib/libc++abi.a"
+ }
+}
+
+libcxx_package() {
+ short_desc+=" - C++ standard library"
+ pkg_install() {
+ vmove "usr/lib/libc++.so.*"
+ }
+}
+
+libcxx-devel_package() {
+ short_desc+=" - C++ standard library - development files"
+ depends="libcxx>=${version}_${revision}"
+ pkg_install() {
+ vmove usr/include/c++
+ vmove "usr/lib/libc++.so"
+ vmove "usr/lib/libc++.a"
+ vmove "usr/lib/libc++experimental.a"
+ vmove usr/share/doc/LLVM/libcxx
+ }
+}
+
+libomp_package() {
+ short_desc+=" - Clang OpenMP support library"
+ pkg_install() {
+ vmove usr/lib/libarcher.so
+ vmove usr/lib/libompd.so
+ vmove "usr/lib/libomptarget.rtl.*.so"
+ vmove "usr/lib/libomp*.so.*"
+ }
+}
+
+libomp-devel_package() {
+ short_desc+=" - Clang OpenMP support library - development files"
+ depends="libomp>=${version}_${revision}"
+ pkg_install() {
+ vmove "usr/include/omp*.h"
+ vmove "usr/lib/clang/${version}/include/omp*.h"
+ vmove "usr/lib/libarcher*"
+ vmove "usr/lib/libomp*.so"
+ vmove usr/lib/cmake/openmp
+ vmove usr/share/doc/LLVM/openmp
+ vmove usr/share/man/man1/llvmopenmp.1
+ }
+}
+
+libllvm15_package() {
+ short_desc+=" - runtime library"
+ pkg_install() {
+ vmove "usr/lib/libLLVM-*.so*"
+ }
+}
diff --git a/srcpkgs/llvm15/update b/srcpkgs/llvm15/update
new file mode 100644
index 000000000000..e95cf26b3586
--- /dev/null
+++ b/srcpkgs/llvm15/update
@@ -0,0 +1,3 @@
+site="https://github.com/llvm/llvm-project/releases"
+pattern="llvmorg-\K(\d+.){2}\d+(-rc\d+)?"
+ignore="*-rc*"
From 04b227473fb61239a1c3edb6dad27cb8d73fee4b Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Sun, 18 Dec 2022 00:40:18 +0100
Subject: [PATCH 02/17] llvm: update to 15
---
common/shlibs | 6 +++---
srcpkgs/clang | 2 +-
srcpkgs/clang-analyzer | 2 +-
srcpkgs/clang-tools-extra | 2 +-
srcpkgs/libclang | 2 +-
srcpkgs/libclang-cpp | 2 +-
srcpkgs/libcxx | 2 +-
srcpkgs/libcxx-devel | 2 +-
srcpkgs/libcxxabi | 2 +-
srcpkgs/libcxxabi-devel | 2 +-
srcpkgs/libomp | 2 +-
srcpkgs/libomp-devel | 2 +-
srcpkgs/lld | 2 +-
srcpkgs/lld-devel | 2 +-
srcpkgs/lldb | 2 +-
srcpkgs/lldb-devel | 2 +-
srcpkgs/llvm-libunwind | 2 +-
srcpkgs/llvm-libunwind-devel | 2 +-
srcpkgs/llvm/template | 6 +++---
19 files changed, 23 insertions(+), 23 deletions(-)
diff --git a/common/shlibs b/common/shlibs
index 6b2e3b50ba5a..07ff0092d033 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -987,9 +987,9 @@ 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.12 lldb-12.0.0_1
-libclang.so.12 libclang-12.0.0_1
-libclang-cpp.so.12 libclang-cpp-12.0.0_1
+liblldb.so.15 lldb-15.0.7_1
+libclang.so.15 libclang-15.0.7_1
+libclang-cpp.so.15 libclang-cpp-15.0.7_1
libLLVM-11.so libllvm11-11.0.0_1
libLLVM-12.so libllvm12-12.0.0_1
libLLVM-15.so libllvm15-15.0.7_1
diff --git a/srcpkgs/clang b/srcpkgs/clang
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/clang
+++ b/srcpkgs/clang
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/clang-analyzer b/srcpkgs/clang-analyzer
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/clang-analyzer
+++ b/srcpkgs/clang-analyzer
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/clang-tools-extra b/srcpkgs/clang-tools-extra
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/clang-tools-extra
+++ b/srcpkgs/clang-tools-extra
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libclang b/srcpkgs/libclang
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libclang
+++ b/srcpkgs/libclang
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libclang-cpp b/srcpkgs/libclang-cpp
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libclang-cpp
+++ b/srcpkgs/libclang-cpp
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxx b/srcpkgs/libcxx
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxx
+++ b/srcpkgs/libcxx
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxx-devel b/srcpkgs/libcxx-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxx-devel
+++ b/srcpkgs/libcxx-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxxabi b/srcpkgs/libcxxabi
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxxabi
+++ b/srcpkgs/libcxxabi
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxxabi-devel b/srcpkgs/libcxxabi-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxxabi-devel
+++ b/srcpkgs/libcxxabi-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libomp b/srcpkgs/libomp
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libomp
+++ b/srcpkgs/libomp
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libomp-devel b/srcpkgs/libomp-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libomp-devel
+++ b/srcpkgs/libomp-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lld b/srcpkgs/lld
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lld
+++ b/srcpkgs/lld
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lld-devel b/srcpkgs/lld-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lld-devel
+++ b/srcpkgs/lld-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lldb b/srcpkgs/lldb
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lldb
+++ b/srcpkgs/lldb
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lldb-devel b/srcpkgs/lldb-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lldb-devel
+++ b/srcpkgs/lldb-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm-libunwind b/srcpkgs/llvm-libunwind
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/llvm-libunwind
+++ b/srcpkgs/llvm-libunwind
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm-libunwind-devel b/srcpkgs/llvm-libunwind-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/llvm-libunwind-devel
+++ b/srcpkgs/llvm-libunwind-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm/template b/srcpkgs/llvm/template
index a92db6f94f9f..fc1c850bd26f 100644
--- a/srcpkgs/llvm/template
+++ b/srcpkgs/llvm/template
@@ -1,11 +1,11 @@
# Template file for 'llvm'
pkgname=llvm
-version=12.0.0
+version=15
revision=1
build_style=meta
-depends="llvm12"
-replaces="llvm11>=0 llvm10>=0 llvm9>=0 llvm8>=0 llvm7>=0 llvm6.0>=0 llvm3.9>=0"
+depends="llvm15"
short_desc="LLVM meta package"
maintainer="Enno Boland <gottox@voidlinux.org>"
license="Public Domain"
homepage="https://www.voidlinux.org"
+replaces="llvm12>=0 llvm11>=0 llvm10>=0 llvm9>=0 llvm8>=0 llvm7>=0 llvm6.0>=0 llvm3.9>=0"
From 603944bf2336d240897b602cce763696776b2992 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Sun, 18 Dec 2022 12:20:08 +0100
Subject: [PATCH 03/17] llvm12: remove bumped subpackages
---
srcpkgs/llvm12/template | 264 +---------------------------------------
1 file changed, 1 insertion(+), 263 deletions(-)
diff --git a/srcpkgs/llvm12/template b/srcpkgs/llvm12/template
index f8ea3ba641ae..aea0b43cf573 100644
--- a/srcpkgs/llvm12/template
+++ b/srcpkgs/llvm12/template
@@ -50,55 +50,7 @@ case "$XBPS_TARGET_MACHINE" in
ppc*) configure_args+=" -DCLANG_ENABLE_CLANGD=OFF" ;;
esac
-_enabled_projects="clang;clang-tools-extra;compiler-rt;libcxx;libcxxabi;libunwind;lld"
-
-_lldb_enable=yes
-_libomp_enable=no
-
-case "$XBPS_TARGET_MACHINE" in
- ppc64le*) ;;
- ppc*|i686*) _lldb_enable=no ;;
-esac
-
-case "$XBPS_TARGET_MACHINE" in
- x86_64*|aarch64*|ppc64*) _libomp_enable=yes;;
-esac
-
-subpackages="clang-tools-extra"
-
-# must go before clang
-if [ "$_libomp_enable" = "yes" ]; then
- _enabled_projects+=";openmp"
- subpackages+=" libomp libomp-devel"
- # because of cmake nonsense referencing libomptarget.so.*
- depends+=" libomp>=${version}_${revision}"
-fi
-
-subpackages+=" clang clang-analyzer libclang libclang-cpp
- llvm-libunwind llvm-libunwind-devel libcxx libcxx-devel
- libcxxabi libcxxabi-devel libllvm12"
-
-if [ "$_lldb_enable" = "yes" ]; then
- # XXX fails to cross compile due to python
- _enabled_projects+=";lldb"
- subpackages+=" lldb lldb-devel"
-fi
-
-subpackages+=" lld lld-devel"
-
-configure_args+=" -DLLVM_ENABLE_PROJECTS=${_enabled_projects}"
-
post_patch() {
- if [ "$_lldb_enable" = "yes" ]; then
- if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
- vsed -i 's|__ptrace_request|int|g' \
- ${wrksrc}/lldb/source/Plugins/Process/Linux/NativeProcessLinux.cpp
- fi
- # disable docs for lldb as they fail to generate
- vsed -i '/add_subdirectory(docs)/d' \
- ${wrksrc}/lldb/CMakeLists.txt
- fi
-
# update config.guess for better platform detection
cp $XBPS_COMMONDIR/environment/configure/automake/config.guess \
${wrksrc}/llvm/cmake
@@ -154,14 +106,12 @@ pre_configure() {
cd build/HOST
CC="$BUILD_CC" CXX="$BUILD_CXX" CFLAGS="$BUILD_CFLAGS" \
CXXFLAGS="$BUILD_CXXFLAGS" LDFLAGS="$BUILD_LDFLAGS" \
- cmake ../.. -DCMAKE_BUILD_TYPE=Release \
- -DLLVM_ENABLE_PROJECTS=${_enabled_projects}
+ cmake ../.. -DCMAKE_BUILD_TYPE=Release
make ${makejobs} -C utils/TableGen
make ${makejobs} -C tools/clang/utils/TableGen
[ "$_lldb_enable" = "yes" ] && make ${makejobs} -C tools/lldb/utils/TableGen
configure_args+=" -DLLVM_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/llvm-tblgen"
configure_args+=" -DCLANG_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/clang-tblgen"
- [ "$_lldb_enable" = "yes" ] && configure_args+=" -DLLDB_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/lldb-tblgen"
cd ../..
fi
@@ -201,218 +151,6 @@ do_install() {
if [ "$CROSS_BUILD" ]; then
rm -f ${DESTDIR}/usr/bin/llvm-config-host
fi
-
- # Install libcxxabi headers
- vinstall ${wrksrc}/libcxxabi/include/__cxxabi_config.h 644 usr/include
- vinstall ${wrksrc}/libcxxabi/include/cxxabi.h 644 usr/include
-
- # Install libunwind headers
- vinstall ${wrksrc}/libunwind/include/__libunwind_config.h 644 usr/include
- vinstall ${wrksrc}/libunwind/include/libunwind.h 644 usr/include
- vinstall ${wrksrc}/libunwind/include/unwind.h 644 usr/include
- vinstall ${wrksrc}/libunwind/include/mach-o/compact_unwind_encoding.h \
- 644 usr/include/mach-o
-}
-
-clang-analyzer_package() {
- pycompile_dirs="usr/share/scan-view"
- depends="clang-${version}_${revision} python3 perl"
- short_desc+=" - A source code analysis framework"
- homepage="https://clang-analyzer.llvm.org/"
- pkg_install() {
- vmove usr/share/man/man1/scan-build.1
- vmove "/usr/bin/scan-*"
- vmove "/usr/share/scan-*"
- vmove "/usr/libexec/*analyzer"
- }
-}
-
-clang-tools-extra_package() {
- lib32disabled=yes
- depends="clang-${version}_${revision} python3"
- short_desc+=" - Extra Clang tools"
- homepage="https://clang.llvm.org/extra/"
- pkg_install() {
- vmove usr/include/clang-tidy
- vmove usr/bin/clang-apply-replacements
- vmove usr/bin/clang-query
- vmove usr/bin/clang-rename
- vmove usr/bin/clang-tidy
- vmove usr/bin/diagtool
- vmove usr/bin/find-all-symbols
- vmove usr/bin/hmaptool
- vmove usr/bin/modularize
- vmove usr/bin/pp-trace
- vmove usr/bin/sancov
- vmove "usr/lib/libclangApplyReplacements*"
- vmove "usr/lib/libclangQuery*"
- vmove "usr/lib/libclangTidy*"
- vmove "usr/share/clang/*tidy*"
- vmove usr/share/doc/clang-tools
- vmove usr/share/man/man1/extraclangtools.1
- vmove usr/share/man/man1/diagtool.1
- }
-}
-
-clang_package() {
- lib32disabled=yes
- depends="libstdc++-devel libgcc-devel binutils ${XBPS_TARGET_LIBC}-devel
- libclang-${version}_${revision}"
- short_desc+=" - C language family frontend"
- homepage="https://clang.llvm.org/"
- pkg_install() {
- vmove usr/include/clang
- vmove usr/include/clang-c
- vmove "usr/bin/*clang*"
- vmove usr/bin/c-index-test
- vmove usr/lib/clang
- vmove usr/lib/cmake/clang
- vmove "usr/lib/libclang*.a"
- vmove "usr/lib/libclang*.so"
- vmove usr/share/clang
- vmove usr/share/doc/clang
- vmove usr/share/man/man1/clang.1
- }
-}
-
-libclang_package() {
- short_desc+=" - C frontend runtime library"
- pkg_install() {
- vmove "usr/lib/libclang.so.*"
- }
-}
-
-libclang-cpp_package() {
- short_desc+=" - C frontend runtime library (C++ interface)"
- pkg_install() {
- vmove "usr/lib/libclang-cpp.so.*"
- }
-}
-
-lld_package() {
- lib32disabled=yes
- short_desc+=" - linker"
- homepage="https://lld.llvm.org"
- pkg_install() {
- vmove usr/bin/lld*
- vmove usr/bin/wasm-ld
- vmove usr/bin/ld.lld*
- vmove usr/bin/ld64.lld*
- vmove usr/share/doc/lld
- }
-}
-
-lld-devel_package() {
- lib32disabled=yes
- short_desc+=" - linker - development files"
- homepage="https://lld.llvm.org"
- depends="lld>=${version}_${revision}"
- pkg_install() {
- vmove usr/include/lld
- vmove usr/lib/cmake/lld
- vmove "usr/lib/liblld*a"
- }
-}
-
-lldb_package() {
- lib32disabled=yes
- depends+=" python3-six"
- short_desc+=" - LLDB debugger"
- homepage="https://lldb.llvm.org/"
- pkg_install() {
- vmove usr/bin/*lldb*
- vmove usr/lib/liblldb*so.*
- vmove /usr/lib/python*
- }
-}
-
-lldb-devel_package() {
- lib32disabled=yes
- depends="lldb>=${version}_${revision}"
- short_desc+=" - LLDB debugger - development files"
- pkg_install() {
- vmove usr/include/lldb
- vmove "usr/lib/liblldb*.so"
- }
-}
-
-llvm-libunwind_package() {
- short_desc+=" - libunwind"
- pkg_install() {
- vmove "usr/lib/libunwind.so.*"
- }
-}
-
-llvm-libunwind-devel_package() {
- short_desc+=" - libunwind - development files"
- depends="llvm-libunwind>=${version}_${revision}"
- conflicts="libunwind-devel>=0"
- pkg_install() {
- vmove usr/lib/libunwind.so
- vmove usr/lib/libunwind.a
- vmove "usr/include/*unwind*"
- vmove usr/include/mach-o
- vmove usr/share/doc/libunwind
- }
-}
-
-libcxxabi_package() {
- short_desc+=" - low level support for libc++"
- pkg_install() {
- vmove "usr/lib/libc++abi.so.*"
- }
-}
-
-libcxxabi-devel_package() {
- short_desc+=" - low level support for libc++ - development files"
- depends="libcxxabi>=${version}_${revision}"
- pkg_install() {
- vmove usr/lib/libc++abi.so
- vmove usr/lib/libc++abi.a
- vmove "usr/include/*cxxabi*"
- }
-}
-
-libcxx_package() {
- short_desc+=" - C++ standard library"
- pkg_install() {
- vmove "usr/lib/libc++.so.*"
- }
-}
-
-libcxx-devel_package() {
- short_desc+=" - C++ standard library - development files"
- depends="libcxx>=${version}_${revision}"
- pkg_install() {
- vmove usr/lib/libc++.so
- vmove usr/lib/libc++.a
- vmove usr/lib/libc++experimental.a
- vmove usr/include/c++
- vmove usr/share/doc/libcxx
- }
-}
-
-libomp_package() {
- short_desc+=" - Clang OpenMP support library"
- pkg_install() {
- vmove usr/lib/libomp.so
- vmove "usr/lib/libomptarget.rtl.*.so"
- vmove usr/lib/libarcher.so
- vmove "usr/lib/libomp*.so.*"
- }
-}
-
-libomp-devel_package() {
- short_desc+=" - Clang OpenMP support library - development files"
- depends="libomp>=${version}_${revision}"
- pkg_install() {
- vmove "usr/lib/libomp*.so"
- vmove "usr/lib/libarcher*"
- vmove "usr/include/omp*.h"
- vmove "usr/lib/clang/${version}/include/omp*.h"
- vmove usr/share/man/man1/llvmopenmp.1
- vmove usr/share/doc/openmp
- }
}
libllvm12_package() {
From bb6130b7dc2d4b967b2ae5a86b75ace1af24e4f3 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:27:03 +0100
Subject: [PATCH 04/17] mesa: rebuild for llvm15
---
srcpkgs/mesa/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/mesa/template b/srcpkgs/mesa/template
index 4c3c9ec6039e..0641b28a80d6 100644
--- a/srcpkgs/mesa/template
+++ b/srcpkgs/mesa/template
@@ -1,7 +1,7 @@
# Template file for 'mesa'
pkgname=mesa
version=22.2.4
-revision=2
+revision=3
build_style=meson
configure_args="-Dglvnd=true -Dshared-glapi=enabled -Dgbm=enabled -Degl=enabled
-Dosmesa=true -Dgles1=enabled -Dgles2=enabled -Dglx=dri -Ddri3=enabled
From 586aa7eff54f3a557544e4e810ae0797018a1940 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:34:04 +0100
Subject: [PATCH 05/17] bcc: rebuild for llvm15
---
srcpkgs/bcc/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/bcc/template b/srcpkgs/bcc/template
index 8e9c453c38c6..9dfcc7188bdc 100644
--- a/srcpkgs/bcc/template
+++ b/srcpkgs/bcc/template
@@ -1,7 +1,7 @@
# Template file for 'bcc'
pkgname=bcc
version=0.26.0
-revision=1
+revision=2
build_style=cmake
configure_args="-DREVISION=${version} -DENABLE_LLVM_SHARED=1"
hostmakedepends="flex python3"
From dc8b644516ceca0a42ee1146815909ca10c453ed Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:37:25 +0100
Subject: [PATCH 06/17] bpftrace: rebuild for llvm15
---
srcpkgs/bpftrace/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/bpftrace/template b/srcpkgs/bpftrace/template
index 857815d29eef..47f2b5e77024 100644
--- a/srcpkgs/bpftrace/template
+++ b/srcpkgs/bpftrace/template
@@ -1,7 +1,7 @@
# Template file for 'bpftrace'
pkgname=bpftrace
version=0.16.0
-revision=1
+revision=2
archs="x86_64* aarch64* ppc64*"
build_style=cmake
configure_args="-DBUILD_TESTING=OFF" # needs root to run
From a50ff4c40fd129a99c0698c576e5cb968a175083 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:43:53 +0100
Subject: [PATCH 07/17] CastXML: rebuild for llvm15
---
srcpkgs/CastXML/template | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/srcpkgs/CastXML/template b/srcpkgs/CastXML/template
index 5d7d9503658c..28c424c78073 100644
--- a/srcpkgs/CastXML/template
+++ b/srcpkgs/CastXML/template
@@ -1,7 +1,7 @@
# Template file for 'CastXML'
pkgname=CastXML
version=0.4.6
-revision=1
+revision=2
build_style=cmake
configure_args="-DSPHINX_MAN=YES -DCastXML_INSTALL_MAN_DIR=share/man"
hostmakedepends="clang python3-Sphinx"
@@ -12,8 +12,8 @@ short_desc="C-family abstract syntax tree XML output tool"
maintainer="Evgeny Ermakov <evgeny.v.ermakov@gmail.com>"
license="Apache-2.0"
homepage="https://github.com/CastXML/CastXML"
-distfiles="https://github.com/CastXML/CastXML/archive/v${version}.tar.gz"
-checksum=8dcdbc1f23a130e4bdb0b09f57c30761a02a346b4db4037555048af2a293d66a
+distfiles="https://github.com/CastXML/CastXML/archive/refs/tags/v${version}.tar.gz"
+checksum=bb9024ec9ea5082e0d527f19bf3c2df79f1699f54b6cec168c024e727b32e6d1
post_install() {
rm -r ${DESTDIR}/usr/share/castxml/clang/include
From daa4f322bbfe7d581fdacf9a75008d13d4a1e6b7 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:48:55 +0100
Subject: [PATCH 08/17] ccls: rebuild for llvm15
---
srcpkgs/ccls/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/ccls/template b/srcpkgs/ccls/template
index 82fa61933878..ecc9f3e38a5d 100644
--- a/srcpkgs/ccls/template
+++ b/srcpkgs/ccls/template
@@ -1,7 +1,7 @@
# Template file for 'ccls'
pkgname=ccls
version=0.20220729
-revision=1
+revision=2
build_style=cmake
hostmakedepends="clang-tools-extra"
makedepends="clang-tools-extra libxml2-devel llvm ncurses-devel rapidjson zlib-devel"
From dc550a62c7e63d8673587f72d8709a96c0c15d54 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:52:14 +0100
Subject: [PATCH 09/17] include-what-you-use: update to 0.19
---
srcpkgs/include-what-you-use/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/include-what-you-use/template b/srcpkgs/include-what-you-use/template
index d3655709c20c..1a30bc04bb2d 100644
--- a/srcpkgs/include-what-you-use/template
+++ b/srcpkgs/include-what-you-use/template
@@ -1,6 +1,6 @@
# Template file for 'include-what-you-use'
pkgname=include-what-you-use
-version=0.16
+version=0.19
revision=1
build_style=cmake
configure_args="-DIWYU_LLVM_ROOT_PATH=${XBPS_CROSS_BASE}/usr "
@@ -11,7 +11,7 @@ maintainer="Leah Neukirchen <leah@vuxu.org>"
license="NCSA"
homepage="https://include-what-you-use.org/"
distfiles="https://include-what-you-use.org/downloads/${pkgname}-${version}.src.tar.gz"
-checksum=8d6fc9b255343bc1e5ec459e39512df1d51c60e03562985e0076036119ff5a1c
+checksum=2b10157b60ea08adc08e3896b4921c73fcadd5ec4eb652b29a34129d501e5ee0
python_version=3
post_install() {
From ab0cc34a087efceae80fdb9653c1acfaf9a12277 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 15:11:06 +0100
Subject: [PATCH 10/17] SPIRV-LLVM-Translator: update to 15.0.0
---
srcpkgs/SPIRV-LLVM-Translator/template | 13 +++++++------
1 file changed, 7 insertions(+), 6 deletions(-)
diff --git a/srcpkgs/SPIRV-LLVM-Translator/template b/srcpkgs/SPIRV-LLVM-Translator/template
index a2754e58c0e8..bee99f9bcbb2 100644
--- a/srcpkgs/SPIRV-LLVM-Translator/template
+++ b/srcpkgs/SPIRV-LLVM-Translator/template
@@ -1,19 +1,20 @@
# Template file for 'SPIRV-LLVM-Translator'
pkgname=SPIRV-LLVM-Translator
-version=12.0.0
-revision=2
+version=15.0.0
+revision=1
build_style=cmake
make_build_args="llvm-spirv"
configure_args="-Wno-dev -DLLVM_LINK_LLVM_DYLIB=ON -DCMAKE_SKIP_RPATH=ON
- -DLLVM_SPIRV_INCLUDE_TESTS=OFF -DBUILD_SHARED_LIBS=ON"
+ -DLLVM_SPIRV_INCLUDE_TESTS=OFF -DBUILD_SHARED_LIBS=ON
+ -DLLVM_EXTERNAL_SPIRV_HEADERS_SOURCE_DIR=/usr"
hostmakedepends="clang llvm"
-makedepends="clang-tools-extra llvm"
+makedepends="clang-tools-extra llvm SPIRV-Headers"
short_desc="API and commands for processing SPIR-V modules"
maintainer="Orphaned <orphan@voidlinux.org>"
license="NCSA"
homepage="https://github.com/KhronosGroup/SPIRV-LLVM-Translator"
-distfiles="https://github.com/KhronosGroup/${pkgname}/archive/refs/tags/v${version}.tar.gz"
-checksum=6e4fad04203f25fcde4c308c53e9f59bd05a390978992db3212d4b63aff62108
+distfiles="https://github.com/KhronosGroup/SPIRV-LLVM-Translator/archive/refs/tags/v${version}.tar.gz"
+checksum=b1bebd77f72988758c00852e78c2ddc545815a612169a0cb377d021e2f846d88
post_install() {
vlicense LICENSE.TXT
From 9d1f87fe1f291561b587c0bd60c47d14a0806acd Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Fri, 6 Jan 2023 17:11:04 +0100
Subject: [PATCH 11/17] rtags: rebuild for llvm15
---
srcpkgs/rtags/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/rtags/template b/srcpkgs/rtags/template
index b496a1b0e721..9b161e690d76 100644
--- a/srcpkgs/rtags/template
+++ b/srcpkgs/rtags/template
@@ -1,7 +1,7 @@
# Template file for 'rtags'
pkgname=rtags
version=2.38
-revision=5
+revision=6
build_style=cmake
# Don't run tests in do_install, please.
configure_args="-DSKIP_CTEST=TRUE"
From 80ff7078242f91db4c8dd8627e55d5194a54f393 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Fri, 6 Jan 2023 17:14:14 +0100
Subject: [PATCH 12/17] juCi++: rebuild for llvm15
---
srcpkgs/juCi++/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/juCi++/template b/srcpkgs/juCi++/template
index c1969237f11d..416bde7cc4d0 100644
--- a/srcpkgs/juCi++/template
+++ b/srcpkgs/juCi++/template
@@ -1,7 +1,7 @@
# Template file for 'juCi++'
pkgname=juCi++
version=1.7.2
-revision=2
+revision=3
_libclangmm_commit="9704b9b6de0982a588fa41741157d5640afedf30"
_tiny_commit="839ff806dc447ff49af80f9a9eaa7949f770f8e5"
create_wrksrc=yes
From 822fffb47abfe05aeafe907bc09db122c13d5fb0 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Sat, 7 Jan 2023 11:31:14 +0100
Subject: [PATCH 13/17] qt5: rebuild for llvm15
---
srcpkgs/qt5/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/qt5/template b/srcpkgs/qt5/template
index 233596587525..bc9170215483 100644
--- a/srcpkgs/qt5/template
+++ b/srcpkgs/qt5/template
@@ -3,7 +3,7 @@ pkgname=qt5
version=5.15.7+20221119
# commit f8c9fb304bc3e53b3aa07f962cd74e9160decccc
# base repo: https://invent.kde.org/qt/qt/qt5
-revision=1
+revision=2
build_style=meta
hostmakedepends="cmake clang flex perl glib-devel pkg-config
python re2c ruby which"
From 6fbd421ebbea92fa0ecb09708ea9a5c407699eb4 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Mon, 9 Jan 2023 01:22:18 +0100
Subject: [PATCH 14/17] codelite: rebuild for llvm15
---
srcpkgs/codelite/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/codelite/template b/srcpkgs/codelite/template
index 6b8b007c8a43..c6115e0274ce 100644
--- a/srcpkgs/codelite/template
+++ b/srcpkgs/codelite/template
@@ -1,7 +1,7 @@
# Template file for 'codelite'
pkgname=codelite
version=16.0.0
-revision=2
+revision=3
create_wrksrc=yes
build_style=cmake
build_helper=cmake-wxWidgets-gtk3
From 9cc4dc7a13b82e73a2426a207fde6ba4573dcea6 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Mon, 9 Jan 2023 01:58:21 +0100
Subject: [PATCH 15/17] kdevelop: rebuild for llvm15
---
srcpkgs/kdevelop/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/kdevelop/template b/srcpkgs/kdevelop/template
index 5eb275583138..c32ee5240a44 100644
--- a/srcpkgs/kdevelop/template
+++ b/srcpkgs/kdevelop/template
@@ -1,7 +1,7 @@
# Template file for 'kdevelop'
pkgname=kdevelop
version=22.12.1
-revision=1
+revision=2
build_style=cmake
configure_args="-DBUILD_TESTING=OFF"
hostmakedepends="extra-cmake-modules qt5-qmake qt5-host-tools qt5-tools
From 4336ace614ac0d9e1455e63a4bc4790c35555aac Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Mon, 16 Jan 2023 14:43:47 +0100
Subject: [PATCH 16/17] zig: update to 0.10.1
---
.../0001-std.build-fix-handling-of-Dcpu.patch | 48 -------------------
srcpkgs/zig/template | 10 ++--
2 files changed, 6 insertions(+), 52 deletions(-)
delete mode 100644 srcpkgs/zig/patches/0001-std.build-fix-handling-of-Dcpu.patch
diff --git a/srcpkgs/zig/patches/0001-std.build-fix-handling-of-Dcpu.patch b/srcpkgs/zig/patches/0001-std.build-fix-handling-of-Dcpu.patch
deleted file mode 100644
index 4101f24459bb..000000000000
--- a/srcpkgs/zig/patches/0001-std.build-fix-handling-of-Dcpu.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From 1e8cdace7ad324a42228aeb5cd6eb8dd15429413 Mon Sep 17 00:00:00 2001
-From: Isaac Freund <ifreund@ifreund.xyz>
-Date: Tue, 21 Sep 2021 21:06:10 +0200
-Subject: [PATCH] std.build: fix handling of -Dcpu
-
-Currently -Dcpu is completely ignored if -Dtarget isn't passed as well.
-Further, -Dcpu=baseline is ignored even if -Dtarget=native is passed.
-
-This patch fixes these 2 issues, always respecting the -Dcpu option if
-present.
----
- lib/std/build.zig | 13 +++++++------
- 1 file changed, 7 insertions(+), 6 deletions(-)
-
-diff --git a/lib/std/build.zig b/lib/std/build.zig
-index 9b7ebb1f4..e398529f9 100644
---- a/lib/std/build.zig
-+++ b/lib/std/build.zig
-@@ -685,7 +685,11 @@ pub const Builder = struct {
- );
- const mcpu = self.option([]const u8, "cpu", "Target CPU");
-
-- const triple = maybe_triple orelse return args.default_target;
-+ if (maybe_triple == null and mcpu == null) {
-+ return args.default_target;
-+ }
-+
-+ const triple = maybe_triple orelse "native";
-
- var diags: CrossTarget.ParseOptions.Diagnostics = .{};
- const selected_target = CrossTarget.parse(.{
-@@ -2451,11 +2455,8 @@ pub const LibExeObjStep = struct {
-
- if (populated_cpu_features.eql(cross.cpu.features)) {
- // The CPU name alone is sufficient.
-- // If it is the baseline CPU, no command line args are required.
-- if (cross.cpu.model != std.Target.Cpu.baseline(cross.cpu.arch).model) {
-- try zig_args.append("-mcpu");
-- try zig_args.append(cross.cpu.model.name);
-- }
-+ try zig_args.append("-mcpu");
-+ try zig_args.append(cross.cpu.model.name);
- } else {
- var mcpu_buffer = std.ArrayList(u8).init(builder.allocator);
-
---
-2.33.1
-
diff --git a/srcpkgs/zig/template b/srcpkgs/zig/template
index 728c5a64e9df..9807f7ab206b 100644
--- a/srcpkgs/zig/template
+++ b/srcpkgs/zig/template
@@ -1,17 +1,19 @@
# Template file for 'zig'
pkgname=zig
-version=0.8.1
-revision=2
+version=0.10.1
+revision=1
archs="x86_64* aarch64*"
build_style=cmake
make_cmd=make
-makedepends="clang llvm12 lld-devel"
+# we add xml2, zstd, zlib and ncurses
+# because our lld is static-only and requires those to work
+makedepends="clang llvm15 lld-devel libxml2-devel libzstd-devel ncurses-devel zlib-devel"
short_desc="Programming language designed for robustness, optimality, and clarity"
maintainer="Isaac Freund <mail@isaacfreund.com>"
license="MIT"
homepage="https://ziglang.org"
distfiles="https://ziglang.org/download/${version}/zig-${version}.tar.xz"
-checksum=8c428e14a0a89cb7a15a6768424a37442292858cdb695e2eb503fa3c7bf47f1a
+checksum=69459bc804333df077d441ef052ffa143d53012b655a51f04cfef1414c04168c
nopie=yes
nocross=yes
From 0d158423f5613fa2364468ecff5faddb508cab9e Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Tue, 24 Jan 2023 14:03:51 +0100
Subject: [PATCH 17/17] river: update to 0.2.3
---
...ble-PIE-for-river-riverctl-rivertile.patch | 42 -------------------
srcpkgs/river/template | 10 ++---
2 files changed, 5 insertions(+), 47 deletions(-)
delete mode 100644 srcpkgs/river/patches/0001-Enable-PIE-for-river-riverctl-rivertile.patch
diff --git a/srcpkgs/river/patches/0001-Enable-PIE-for-river-riverctl-rivertile.patch b/srcpkgs/river/patches/0001-Enable-PIE-for-river-riverctl-rivertile.patch
deleted file mode 100644
index ecc68302db09..000000000000
--- a/srcpkgs/river/patches/0001-Enable-PIE-for-river-riverctl-rivertile.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From 759c1c7a915083f3da46960ff82fa2a3566a7065 Mon Sep 17 00:00:00 2001
-From: Isaac Freund <mail@isaacfreund.com>
-Date: Wed, 3 Nov 2021 14:21:35 +0100
-Subject: [PATCH] Enable PIE for river, riverctl, rivertile
-
-There is sadly not yet a standard way to do this exposed by the zig
-build system. See: https://github.com/ziglang/zig/issues/7201
----
- build.zig | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/build.zig b/build.zig
-index d561f49..8ac9a4e 100644
---- a/build.zig
-+++ b/build.zig
-@@ -85,6 +85,7 @@ pub fn build(b: *zbs.Builder) !void {
- const river = b.addExecutable("river", "river/main.zig");
- river.setTarget(target);
- river.setBuildMode(mode);
-+ river.pie = true;
- river.addBuildOption(bool, "xwayland", xwayland);
- river.addBuildOption([:0]const u8, "version", full_version);
-
-@@ -97,6 +98,7 @@ pub fn build(b: *zbs.Builder) !void {
- const riverctl = b.addExecutable("riverctl", "riverctl/main.zig");
- riverctl.setTarget(target);
- riverctl.setBuildMode(mode);
-+ riverctl.pie = true;
- riverctl.addBuildOption([:0]const u8, "version", full_version);
-
- riverctl.step.dependOn(&scanner.step);
-@@ -114,6 +116,7 @@ pub fn build(b: *zbs.Builder) !void {
- const rivertile = b.addExecutable("rivertile", "rivertile/main.zig");
- rivertile.setTarget(target);
- rivertile.setBuildMode(mode);
-+ rivertile.pie = true;
- rivertile.addBuildOption([:0]const u8, "version", full_version);
-
- rivertile.step.dependOn(&scanner.step);
---
-2.33.1
-
diff --git a/srcpkgs/river/template b/srcpkgs/river/template
index 3906858d507e..431aa4bd8e8e 100644
--- a/srcpkgs/river/template
+++ b/srcpkgs/river/template
@@ -1,18 +1,18 @@
# Template file for 'river'
pkgname=river
-version=0.1.1
-revision=2
+version=0.2.3
+revision=1
build_style=zig-build
-configure_args="$(vopt_if xwayland -Dxwayland)"
+configure_args="$(vopt_if xwayland -Dxwayland) -Dpie"
hostmakedepends="pkg-config wayland-devel scdoc"
-makedepends="wlroots0.15-devel libevdev-devel"
+makedepends="wlroots-devel libevdev-devel"
depends="$(vopt_if xwayland xorg-server-xwayland)"
short_desc="Dynamic tiling Wayland compositor"
maintainer="Isaac Freund <mail@isaacfreund.com>"
license="GPL-3.0-or-later"
homepage="https://github.com/riverwm/river"
distfiles="${homepage}/releases/download/v${version}/river-${version}.tar.gz"
-checksum=2a0bcd4670ed9ebd39c279f2bf10803fc65c9f3ee2307ce40728df23ce914d18
+checksum=7acdd2b929e16a20006b4baf1f29e7a8dc7f70cf5747e1503a610a90d1637132
build_options="xwayland"
build_options_default="xwayland"
^ permalink raw reply [flat|nested] 96+ messages in thread
* Re: [PR PATCH] [Updated] [WIP] LLVM 15
2022-11-28 15:30 [PR PATCH] [WIP] LLVM 15 tranzystorek-io
` (51 preceding siblings ...)
2023-01-24 13:05 ` [PR PATCH] [Updated] " tranzystorek-io
@ 2023-01-24 13:15 ` tranzystorek-io
2023-01-26 22:36 ` tranzystorek-io
` (41 subsequent siblings)
94 siblings, 0 replies; 96+ messages in thread
From: tranzystorek-io @ 2023-01-24 13:15 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 1143 bytes --]
There is an updated pull request by tranzystorek-io against master on the void-packages repository
https://github.com/tranzystorek-io/void-packages llvm15
https://github.com/void-linux/void-packages/pull/40821
[WIP] LLVM 15
[ci skip]
TODO:
- [ ] Adjust patches marked as `.patch.skip`
- [x] Make libomp a shlib (change so file name and install a symlink)
- [x] Avoid creating triplet dirs under /usr/
TODO LLVM rdeps:
- [ ] clazy (breaking changes in clang API)
- [x] beignet (https://github.com/void-linux/void-packages/pull/41529)
- [ ] ispc (1.18.1 supports LLVM `<= 14`)
- [ ] ldc (1.30.0 supports LLVM `<= 14`)
- [ ] ghdl (2.0.0 supports LLVM `<= 14`)
- [x] qt
- [ ] qtcreator (breaking changes in clang-format API)
- [ ] shiboken2 (tests failing with llvm15)
- [x] bpftrace (https://github.com/void-linux/void-packages/pull/39002)
- [ ] libclc (tests fail with unresolved calls https://gist.githubusercontent.com/tranzystorek-io/a2aa8a0d8010af5299f7d1ff9f82c22b/raw/6d316d99d6079990b73ae77d274dd120b9560589/LastTest.log)
A patch file from https://github.com/void-linux/void-packages/pull/40821.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-llvm15-40821.patch --]
[-- Type: text/x-diff, Size: 84363 bytes --]
From 586b282e6901c378a775379309a20bb6a64e26ee Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Sun, 18 Dec 2022 00:36:59 +0100
Subject: [PATCH 01/17] New package: llvm15-15.0.7
---
common/shlibs | 3 +
srcpkgs/libllvm15 | 1 +
.../llvm15/files/llvm-Config-llvm-config.h | 9 +
...clang-001-fix-unwind-chain-inclusion.patch | 44 ++
.../patches/clang-002-add-musl-triples.patch | 110 +++++
.../clang-003-ppc64-dynamic-linker-path.patch | 13 +
.../patches/clang-004-ppc64-musl-elfv2.patch | 48 ++
.../compiler-rt-sanitizer-ppc64-musl.patch | 35 ++
.../compiler-rt-xray-ppc64-musl.patch.skip | 62 +++
srcpkgs/llvm15/patches/libcxx-musl.patch | 26 ++
srcpkgs/llvm15/patches/libcxx-ppc.patch | 22 +
.../llvm15/patches/libcxx-ssp-nonshared.patch | 11 +
srcpkgs/llvm15/patches/libcxxabi-dl.patch | 25 +
srcpkgs/llvm15/patches/libcxxabi-musl.patch | 37 ++
srcpkgs/llvm15/patches/libomp-soname.patch | 12 +
.../llvm15/patches/libunwind-ppc32.patch.skip | 63 +++
srcpkgs/llvm15/patches/lldb-musl.patch | 40 ++
srcpkgs/llvm15/patches/llvm-001-musl.patch | 57 +++
.../patches/llvm-002-musl-ppc64-elfv2.patch | 30 ++
.../patches/llvm-003-ppc-secureplt.patch | 11 +
.../patches/llvm-004-override-opt.patch | 18 +
.../llvm15/patches/llvm-005-ppc-bigpic.patch | 36 ++
.../patches/llvm-006-aarch64-mf_exec.patch | 25 +
srcpkgs/llvm15/template | 437 ++++++++++++++++++
srcpkgs/llvm15/update | 3 +
25 files changed, 1178 insertions(+)
create mode 120000 srcpkgs/libllvm15
create mode 100644 srcpkgs/llvm15/files/llvm-Config-llvm-config.h
create mode 100644 srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch
create mode 100644 srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch
create mode 100644 srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch
create mode 100644 srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch
create mode 100644 srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch
create mode 100644 srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip
create mode 100644 srcpkgs/llvm15/patches/libcxx-musl.patch
create mode 100644 srcpkgs/llvm15/patches/libcxx-ppc.patch
create mode 100644 srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch
create mode 100644 srcpkgs/llvm15/patches/libcxxabi-dl.patch
create mode 100644 srcpkgs/llvm15/patches/libcxxabi-musl.patch
create mode 100644 srcpkgs/llvm15/patches/libomp-soname.patch
create mode 100644 srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip
create mode 100644 srcpkgs/llvm15/patches/lldb-musl.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-001-musl.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-004-override-opt.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch
create mode 100644 srcpkgs/llvm15/template
create mode 100644 srcpkgs/llvm15/update
diff --git a/common/shlibs b/common/shlibs
index 6c5548c50ef7..5c7362d47b0e 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -992,6 +992,9 @@ libclang.so.12 libclang-12.0.0_1
libclang-cpp.so.12 libclang-cpp-12.0.0_1
libLLVM-11.so libllvm11-11.0.0_1
libLLVM-12.so libllvm12-12.0.0_1
+libLLVM-15.so libllvm15-15.0.7_1
+libomp.so.5 libomp-15.0.7_1
+libomptarget.so.15 libomp-15.0.7_1
libisofs.so.6 libisofs-0.6.24_1
libmpack.so.0 libmpack-1.0.5_1
libGeoIP.so.1 libgeoip-1.4.8_1
diff --git a/srcpkgs/libllvm15 b/srcpkgs/libllvm15
new file mode 120000
index 000000000000..ad57a969b9f9
--- /dev/null
+++ b/srcpkgs/libllvm15
@@ -0,0 +1 @@
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm15/files/llvm-Config-llvm-config.h b/srcpkgs/llvm15/files/llvm-Config-llvm-config.h
new file mode 100644
index 000000000000..2fa08c9be696
--- /dev/null
+++ b/srcpkgs/llvm15/files/llvm-Config-llvm-config.h
@@ -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
diff --git a/srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch b/srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch
new file mode 100644
index 000000000000..e4eaa7783e7a
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch
@@ -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
diff --git a/srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch b/srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch
new file mode 100644
index 000000000000..25688d40dbc2
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch
@@ -0,0 +1,110 @@
+--- a/clang/lib/Driver/ToolChains/Gnu.cpp
++++ b/clang/lib/Driver/ToolChains/Gnu.cpp
+@@ -2086,7 +2086,8 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
+ static const char *const ARMHFTriples[] = {"arm-linux-gnueabihf",
+ "armv7hl-redhat-linux-gnueabi",
+ "armv6hl-suse-linux-gnueabi",
+- "armv7hl-suse-linux-gnueabi"};
++ "armv7hl-suse-linux-gnueabi",
++ "armv7l-linux-gnueabihf"};
+ static const char *const ARMebLibDirs[] = {"/lib"};
+ static const char *const ARMebTriples[] = {"armeb-linux-gnueabi",
+ "armeb-linux-androideabi"};
+@@ -2153,8 +2154,7 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
+ "powerpc64-suse-linux", "powerpc-montavista-linuxspe"};
+ static const char *const PPCLELibDirs[] = {"/lib32", "/lib"};
+ static const char *const PPCLETriples[] = {"powerpcle-linux-gnu",
+- "powerpcle-unknown-linux-gnu",
+- "powerpcle-linux-musl"};
++ "powerpcle-unknown-linux-gnu"};
+
+ static const char *const PPC64LibDirs[] = {"/lib64", "/lib"};
+ static const char *const PPC64Triples[] = {
+@@ -2235,6 +2235,87 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
+ return;
+ }
+
++ if (TargetTriple.isMusl()) {
++ static const char *const AArch64MuslTriples[] = {"aarch64-linux-musl"};
++ static const char *const ARMHFMuslTriples[] = {
++ "arm-linux-musleabihf", "armv7l-linux-musleabihf"
++ };
++ static const char *const ARMMuslTriples[] = {"arm-linux-musleabi"};
++ static const char *const X86_64MuslTriples[] = {"x86_64-linux-musl"};
++ static const char *const X86MuslTriples[] = {"i686-linux-musl"};
++ static const char *const MIPSMuslTriples[] = {
++ "mips-linux-musl", "mipsel-linux-musl",
++ "mipsel-linux-muslhf", "mips-linux-muslhf"
++ };
++ static const char *const PPCMuslTriples[] = {"powerpc-linux-musl"};
++ static const char *const PPCLEMuslTriples[] = {"powerpcle-linux-musl"};
++ static const char *const PPC64MuslTriples[] = {"powerpc64-linux-musl"};
++ static const char *const PPC64LEMuslTriples[] = {"powerpc64le-linux-musl"};
++
++ switch (TargetTriple.getArch()) {
++ case llvm::Triple::aarch64:
++ LibDirs.append(begin(AArch64LibDirs), end(AArch64LibDirs));
++ TripleAliases.append(begin(AArch64MuslTriples), end(AArch64MuslTriples));
++ BiarchLibDirs.append(begin(AArch64LibDirs), end(AArch64LibDirs));
++ BiarchTripleAliases.append(begin(AArch64MuslTriples), end(AArch64MuslTriples));
++ break;
++ case llvm::Triple::arm:
++ LibDirs.append(begin(ARMLibDirs), end(ARMLibDirs));
++ if (TargetTriple.getEnvironment() == llvm::Triple::MuslEABIHF) {
++ TripleAliases.append(begin(ARMHFMuslTriples), end(ARMHFMuslTriples));
++ } else {
++ TripleAliases.append(begin(ARMMuslTriples), end(ARMMuslTriples));
++ }
++ break;
++ case llvm::Triple::x86_64:
++ LibDirs.append(begin(X86_64LibDirs), end(X86_64LibDirs));
++ TripleAliases.append(begin(X86_64MuslTriples), end(X86_64MuslTriples));
++ BiarchLibDirs.append(begin(X86LibDirs), end(X86LibDirs));
++ BiarchTripleAliases.append(begin(X86MuslTriples), end(X86MuslTriples));
++ break;
++ case llvm::Triple::x86:
++ LibDirs.append(begin(X86LibDirs), end(X86LibDirs));
++ TripleAliases.append(begin(X86MuslTriples), end(X86MuslTriples));
++ BiarchLibDirs.append(begin(X86_64LibDirs), end(X86_64LibDirs));
++ BiarchTripleAliases.append(begin(X86_64MuslTriples), end(X86_64MuslTriples));
++ break;
++ case llvm::Triple::mips:
++ LibDirs.append(begin(MIPSLibDirs), end(MIPSLibDirs));
++ TripleAliases.append(begin(MIPSMuslTriples), end(MIPSMuslTriples));
++ break;
++ case llvm::Triple::ppc:
++ LibDirs.append(begin(PPCLibDirs), end(PPCLibDirs));
++ TripleAliases.append(begin(PPCMuslTriples), end(PPCMuslTriples));
++ BiarchLibDirs.append(begin(PPC64LibDirs), end(PPC64LibDirs));
++ BiarchTripleAliases.append(begin(PPC64MuslTriples), end(PPC64MuslTriples));
++ break;
++ case llvm::Triple::ppcle:
++ LibDirs.append(begin(PPCLELibDirs), end(PPCLELibDirs));
++ TripleAliases.append(begin(PPCLEMuslTriples), end(PPCLEMuslTriples));
++ BiarchLibDirs.append(begin(PPC64LELibDirs), end(PPC64LELibDirs));
++ BiarchTripleAliases.append(begin(PPC64LEMuslTriples), end(PPC64LEMuslTriples));
++ break;
++ case llvm::Triple::ppc64:
++ LibDirs.append(begin(PPC64LibDirs), end(PPC64LibDirs));
++ TripleAliases.append(begin(PPC64MuslTriples), end(PPC64MuslTriples));
++ BiarchLibDirs.append(begin(PPCLibDirs), end(PPCLibDirs));
++ BiarchTripleAliases.append(begin(PPCMuslTriples), end(PPCMuslTriples));
++ break;
++ case llvm::Triple::ppc64le:
++ LibDirs.append(begin(PPC64LELibDirs), end(PPC64LELibDirs));
++ TripleAliases.append(begin(PPC64LEMuslTriples), end(PPC64LEMuslTriples));
++ BiarchLibDirs.append(begin(PPCLELibDirs), end(PPCLELibDirs));
++ BiarchTripleAliases.append(begin(PPCLEMuslTriples), end(PPCLEMuslTriples));
++ break;
++ default:
++ break;
++ }
++ TripleAliases.push_back(TargetTriple.str());
++ if (TargetTriple.str() != BiarchTriple.str())
++ BiarchTripleAliases.push_back(BiarchTriple.str());
++ return;
++ }
++
+ // Android targets should not use GNU/Linux tools or libraries.
+ if (TargetTriple.isAndroid()) {
+ static const char *const AArch64AndroidTriples[] = {
diff --git a/srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch b/srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch
new file mode 100644
index 000000000000..4ad6412d1e6c
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch
@@ -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 =
diff --git a/srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch b/srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch
new file mode 100644
index 000000000000..21fc8003c5f1
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch
@@ -0,0 +1,48 @@
+--- a/clang/lib/Basic/Targets/PPC.h
++++ b/clang/lib/Basic/Targets/PPC.h
+@@ -415,11 +415,10 @@ public:
+ LongDoubleFormat = &llvm::APFloat::IEEEdouble();
+ } else if ((Triple.getArch() == llvm::Triple::ppc64le)) {
+ DataLayout = "e-m:e-i64:64-n32:64";
+- ABI = "elfv2";
+ } else {
+ DataLayout = "E-m:e-i64:64-n32:64";
+- ABI = "elfv1";
+ }
++ ABI = "elfv2";
+
+ if (Triple.isOSFreeBSD() || Triple.isOSOpenBSD() || Triple.isMusl()) {
+ LongDoubleWidth = LongDoubleAlign = 64;
+--- a/clang/lib/CodeGen/TargetInfo.cpp
++++ b/clang/lib/CodeGen/TargetInfo.cpp
+@@ -10927,9 +10927,9 @@ const TargetCodeGenInfo &CodeGenModule::getTargetCodeGenInfo() {
+ return SetCGInfo(new AIXTargetCodeGenInfo(Types, /*Is64Bit*/ true));
+
+ if (Triple.isOSBinFormatELF()) {
+- PPC64_SVR4_ABIInfo::ABIKind Kind = PPC64_SVR4_ABIInfo::ELFv1;
+- if (getTarget().getABI() == "elfv2")
+- Kind = PPC64_SVR4_ABIInfo::ELFv2;
++ PPC64_SVR4_ABIInfo::ABIKind Kind = PPC64_SVR4_ABIInfo::ELFv2;
++ if (getTarget().getABI() == "elfv1")
++ Kind = PPC64_SVR4_ABIInfo::ELFv1;
+ bool IsSoftFloat = CodeGenOpts.FloatABI == "soft";
+
+ return SetCGInfo(
+--- a/clang/lib/Driver/ToolChains/Clang.cpp
++++ b/clang/lib/Driver/ToolChains/Clang.cpp
+@@ -1920,14 +1920,7 @@ void Clang::AddPPCTargetArgs(const ArgList &Args,
+ const llvm::Triple &T = getToolChain().getTriple();
+ if (T.isOSBinFormatELF()) {
+ switch (getToolChain().getArch()) {
+- case llvm::Triple::ppc64: {
+- if ((T.isOSFreeBSD() && T.getOSMajorVersion() >= 13) ||
+- T.isOSOpenBSD() || T.isMusl())
+- ABIName = "elfv2";
+- else
+- ABIName = "elfv1";
+- break;
+- }
++ case llvm::Triple::ppc64:
+ case llvm::Triple::ppc64le:
+ ABIName = "elfv2";
+ break;
diff --git a/srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch b/srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch
new file mode 100644
index 000000000000..360cfc1ba7f1
--- /dev/null
+++ b/srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch
@@ -0,0 +1,35 @@
+--- 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__) || SANITIZER_RISCV64
++ defined(__hexagon__) || defined(__powerpc__) || 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_ANDROID
++#if (defined(__aarch64__) || defined(__powerpc__) || SANITIZER_RISCV64) && !SANITIZER_ANDROID
+ // GLIBC 2.20+ sys/user does not include asm/ptrace.h
+ # include <asm/ptrace.h>
+ #endif
diff --git a/srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip b/srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip
new file mode 100644
index 000000000000..d0b61c80c897
--- /dev/null
+++ b/srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip
@@ -0,0 +1,62 @@
+--- a/compiler-rt/lib/xray/xray_powerpc64.inc
++++ b/compiler-rt/lib/xray/xray_powerpc64.inc
+@@ -12,7 +12,13 @@
+
+ #include <cstdint>
+ #include <mutex>
++#ifdef __GLIBC__
+ #include <sys/platform/ppc.h>
++#else
++#include <cctype>
++#include <cstring>
++#include <cstdlib>
++#endif
+
+ #include "xray_defs.h"
+
+@@ -20,13 +26,45 @@ namespace __xray {
+
+ ALWAYS_INLINE uint64_t readTSC(uint8_t &CPU) XRAY_NEVER_INSTRUMENT {
+ CPU = 0;
++#ifdef __GLIBC__
+ return __ppc_get_timebase();
++#else
++ return __builtin_ppc_get_timebase();
++#endif
+ }
+
+ inline uint64_t getTSCFrequency() XRAY_NEVER_INSTRUMENT {
+ static std::mutex M;
+ std::lock_guard<std::mutex> Guard(M);
++#ifdef __GLIBC__
+ return __ppc_get_timebase_freq();
++#else
++ /* FIXME: a less dirty implementation? */
++ static uint64_t base;
++ if (!base) {
++ FILE *f = fopen("/proc/cpuinfo", "rb");
++ if (f) {
++ ssize_t nr;
++ /* virtually always big enough to hold the line */
++ char buf[512];
++ while (fgets(buf, sizeof(buf), f)) {
++ char *ret = strstr(buf, "timebase");
++ if (!ret) {
++ continue;
++ }
++ ret += sizeof("timebase") - 1;
++ ret = strchr(ret, ':');
++ if (!ret) {
++ continue;
++ }
++ base = strtoul(ret + 1, nullptr, 10);
++ break;
++ }
++ fclose(f);
++ }
++ }
++ return base;
++#endif
+ }
+
+ inline bool probeRequiredCPUFeatures() XRAY_NEVER_INSTRUMENT {
diff --git a/srcpkgs/llvm15/patches/libcxx-musl.patch b/srcpkgs/llvm15/patches/libcxx-musl.patch
new file mode 100644
index 000000000000..bbd31ffc2cb1
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxx-musl.patch
@@ -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,
+ typename remove_reference<decltype(errno)>::type __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
+ typename remove_reference<decltype(errno)>::type __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,
+ typename remove_reference<decltype(errno)>::type __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
+ typename remove_reference<decltype(errno)>::type __current_errno = errno;
+ if (__current_errno == 0)
+ errno = __save_errno;
diff --git a/srcpkgs/llvm15/patches/libcxx-ppc.patch b/srcpkgs/llvm15/patches/libcxx-ppc.patch
new file mode 100644
index 000000000000..7a92f8004e1c
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxx-ppc.patch
@@ -0,0 +1,22 @@
+This ensures `is_iec559` is defined correctly under all long double ABIs,
+including musl and its 64-bit long double. Also, `__ppc__` or `__ppc64__`
+is not defined on gcc.
+
+--- a/libcxx/include/limits
++++ b/libcxx/include/limits
+@@ -426,8 +426,14 @@ protected:
+ _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type signaling_NaN() _NOEXCEPT {return __builtin_nansl("");}
+ _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type denorm_min() _NOEXCEPT {return __LDBL_DENORM_MIN__;}
+
+-#if (defined(__ppc__) || defined(__ppc64__))
++#if defined(__powerpc__) || defined(__powerpc64__)
++#if (__LDBL_MAX_EXP__ > __DBL_MAX_EXP__) || (__LDBL_MANT_DIG__ == __DBL_MANT_DIG__)
++ /* IEEE 754 quadruple or double precision */
++ static _LIBCPP_CONSTEXPR const bool is_iec559 = true;
++#else
++ /* 128-bit IBM double-double */
+ static _LIBCPP_CONSTEXPR const bool is_iec559 = false;
++#endif
+ #else
+ static _LIBCPP_CONSTEXPR const bool is_iec559 = true;
+ #endif
diff --git a/srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch b/srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch
new file mode 100644
index 000000000000..70292beb2fcd
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch
@@ -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()
diff --git a/srcpkgs/llvm15/patches/libcxxabi-dl.patch b/srcpkgs/llvm15/patches/libcxxabi-dl.patch
new file mode 100644
index 000000000000..3a15f9db8c98
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxxabi-dl.patch
@@ -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 @@
+ target_link_libraries(${target} PRIVATE m)
+ endif()
+
++ if (LIBCXX_HAS_C_LIB)
++ target_link_libraries(${target} PRIVATE dl)
++ endif()
++
+ if (LIBCXX_HAS_RT_LIB)
+ target_link_libraries(${target} PRIVATE rt)
+ endif()
diff --git a/srcpkgs/llvm15/patches/libcxxabi-musl.patch b/srcpkgs/llvm15/patches/libcxxabi-musl.patch
new file mode 100644
index 000000000000..55bf6f5aaa08
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxxabi-musl.patch
@@ -0,0 +1,37 @@
+diff --git a/libcxx/include/__support/musl/xlocale.h b/libcxx/include/__support/musl/xlocale.h
+index e674a41fa..f546119b9 100644
+--- a/libcxx/include/__support/musl/xlocale.h
++++ b/libcxx/include/__support/musl/xlocale.h
+@@ -24,27 +24,27 @@
+ extern "C" {
+ #endif
+
+-inline _LIBCPP_HIDE_FROM_ABI long long
++static inline long long
+ strtoll_l(const char *__nptr, char **__endptr, int __base, locale_t) {
+ return ::strtoll(__nptr, __endptr, __base);
+ }
+
+-inline _LIBCPP_HIDE_FROM_ABI unsigned long long
++static inline unsigned long long
+ strtoull_l(const char *__nptr, char **__endptr, int __base, locale_t) {
+ return ::strtoull(__nptr, __endptr, __base);
+ }
+
+-inline _LIBCPP_HIDE_FROM_ABI long long
++static inline long long
+ wcstoll_l(const wchar_t *__nptr, wchar_t **__endptr, int __base, locale_t) {
+ return ::wcstoll(__nptr, __endptr, __base);
+ }
+
+-inline _LIBCPP_HIDE_FROM_ABI unsigned long long
++static inline unsigned long long
+ wcstoull_l(const wchar_t *__nptr, wchar_t **__endptr, int __base, locale_t) {
+ return ::wcstoull(__nptr, __endptr, __base);
+ }
+
+-inline _LIBCPP_HIDE_FROM_ABI long double
++static inline long double
+ wcstold_l(const wchar_t *__nptr, wchar_t **__endptr, locale_t) {
+ return ::wcstold(__nptr, __endptr);
+ }
diff --git a/srcpkgs/llvm15/patches/libomp-soname.patch b/srcpkgs/llvm15/patches/libomp-soname.patch
new file mode 100644
index 000000000000..9a622cd9254c
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libomp-soname.patch
@@ -0,0 +1,12 @@
+diff --git a/openmp/runtime/src/CMakeLists.txt b/openmp/runtime/src/CMakeLists.txt
+index df1ca9d90..9d2c3b7b9 100644
+--- a/openmp/runtime/src/CMakeLists.txt
++++ b/openmp/runtime/src/CMakeLists.txt
+@@ -150,6 +150,7 @@ libomp_get_libflags(LIBOMP_CONFIGURED_LIBFLAGS)
+ # Build libomp library. Add LLVMSupport dependency if building in-tree with libomptarget profiling enabled.
+ if(OPENMP_STANDALONE_BUILD OR (NOT OPENMP_ENABLE_LIBOMP_PROFILING))
+ add_library(omp ${LIBOMP_LIBRARY_KIND} ${LIBOMP_SOURCE_FILES})
++ set_target_properties(omp PROPERTIES VERSION ${LIBOMP_VERSION_MAJOR} SOVERSION ${LIBOMP_VERSION_MAJOR})
+ # Linking command will include libraries in LIBOMP_CONFIGURED_LIBFLAGS
+ target_link_libraries(omp ${LIBOMP_CONFIGURED_LIBFLAGS} ${LIBOMP_DL_LIBS})
+ else()
diff --git a/srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip b/srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip
new file mode 100644
index 000000000000..74aa7576ecf9
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip
@@ -0,0 +1,63 @@
+This fixes build at least with gcc9 which does not define `__ppc__`.
+
+--- a/libunwind/include/__libunwind_config.h
++++ b/libunwind/include/__libunwind_config.h
+@@ -49,7 +49,7 @@
+ # define _LIBUNWIND_CONTEXT_SIZE 167
+ # define _LIBUNWIND_CURSOR_SIZE 179
+ # define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_PPC64
+-# elif defined(__ppc__)
++# elif defined(__powerpc__)
+ # define _LIBUNWIND_TARGET_PPC 1
+ # define _LIBUNWIND_CONTEXT_SIZE 117
+ # define _LIBUNWIND_CURSOR_SIZE 124
+--- a/libunwind/src/UnwindRegistersRestore.S
++++ b/libunwind/src/UnwindRegistersRestore.S
+@@ -392,7 +392,7 @@ Lnovec:
+ PPC64_LR(3)
+ bctr
+
+-#elif defined(__ppc__)
++#elif defined(__powerpc__)
+
+ DEFINE_LIBUNWIND_FUNCTION(_ZN9libunwind13Registers_ppc6jumptoEv)
+ //
+--- a/libunwind/src/UnwindRegistersSave.S
++++ b/libunwind/src/UnwindRegistersSave.S
+@@ -554,7 +554,7 @@ DEFINE_LIBUNWIND_FUNCTION(__unw_getcontext)
+ blr
+
+
+-#elif defined(__ppc__)
++#elif defined(__powerpc__)
+
+ //
+ // extern int unw_getcontext(unw_context_t* thread_state)
+--- a/libunwind/src/config.h
++++ b/libunwind/src/config.h
+@@ -95,12 +95,12 @@
+ #define _LIBUNWIND_BUILD_SJLJ_APIS
+ #endif
+
+-#if defined(__i386__) || defined(__x86_64__) || defined(__ppc__) || defined(__ppc64__) || defined(__powerpc64__)
++#if defined(__i386__) || defined(__x86_64__) || defined(__powerpc__) || defined(__powerpc64__)
+ #define _LIBUNWIND_SUPPORT_FRAME_APIS
+ #endif
+
+ #if defined(__i386__) || defined(__x86_64__) || \
+- defined(__ppc__) || defined(__ppc64__) || defined(__powerpc64__) || \
++ defined(__powerpc__) || defined(__powerpc64__) || \
+ (!defined(__APPLE__) && defined(__arm__)) || \
+ (defined(__arm64__) || defined(__aarch64__)) || \
+ defined(__mips__)
+--- a/libunwind/src/libunwind.cpp
++++ b/libunwind/src/libunwind.cpp
+@@ -42,7 +42,7 @@ _LIBUNWIND_HIDDEN int __unw_init_local(unw_cursor_t *cursor,
+ # define REGISTER_KIND Registers_x86_64
+ #elif defined(__powerpc64__)
+ # define REGISTER_KIND Registers_ppc64
+-#elif defined(__ppc__)
++#elif defined(__powerpc__)
+ # define REGISTER_KIND Registers_ppc
+ #elif defined(__aarch64__)
+ # define REGISTER_KIND Registers_arm64
diff --git a/srcpkgs/llvm15/patches/lldb-musl.patch b/srcpkgs/llvm15/patches/lldb-musl.patch
new file mode 100644
index 000000000000..026c5e1e61ba
--- /dev/null
+++ b/srcpkgs/llvm15/patches/lldb-musl.patch
@@ -0,0 +1,40 @@
+--- a/lldb/source/Plugins/Process/Linux/Procfs.h
++++ b/lldb/source/Plugins/Process/Linux/Procfs.h
+@@ -10,6 +10,7 @@
+ // sys/procfs.h on Android/Linux for all supported architectures.
+
+ #include <sys/ptrace.h>
++#include <asm/ptrace.h>
+
+ #include "lldb/lldb-types.h"
+
+@@ -17,23 +18,13 @@
+
+ #include <vector>
+
+-#ifdef __ANDROID__
+-#if defined(__arm64__) || defined(__aarch64__)
+-typedef unsigned long elf_greg_t;
+-typedef elf_greg_t
+- elf_gregset_t[(sizeof(struct user_pt_regs) / sizeof(elf_greg_t))];
+-typedef struct user_fpsimd_state elf_fpregset_t;
+-#ifndef NT_FPREGSET
+-#define NT_FPREGSET NT_PRFPREG
+-#endif // NT_FPREGSET
+-#elif defined(__mips__)
+-#ifndef NT_FPREGSET
+-#define NT_FPREGSET NT_PRFPREG
+-#endif // NT_FPREGSET
+-#endif
+-#else // __ANDROID__
++#if !defined(__GLIBC__) && defined(__powerpc__)
++#define pt_regs musl_pt_regs
++#include <sys/procfs.h>
++#undef pt_regs
++#else
+ #include <sys/procfs.h>
+-#endif // __ANDROID__
++#endif
+
+ namespace lldb_private {
+ namespace process_linux {
diff --git a/srcpkgs/llvm15/patches/llvm-001-musl.patch b/srcpkgs/llvm15/patches/llvm-001-musl.patch
new file mode 100644
index 000000000000..f2a3f8d62813
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-001-musl.patch
@@ -0,0 +1,57 @@
+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;
+diff --git a/lib/Support/Unix/DynamicLibrary.inc b/lib/Support/Unix/DynamicLibrary.inc
+index a2a37996..2f86c470 100644
+--- a/llvm/lib/Support/Unix/DynamicLibrary.inc
++++ b/llvm/lib/Support/Unix/DynamicLibrary.inc
+@@ -102,7 +102,7 @@ static void *DoSearch(const char* SymbolName) {
+
+ // This macro returns the address of a well-known, explicit symbol
+ #define EXPLICIT_SYMBOL(SYM) \
+- if (!strcmp(SymbolName, #SYM)) return &SYM
++ if (!strcmp(SymbolName, #SYM)) return (void *)&SYM
+
+ // Under glibc we have a weird situation. The stderr/out/in symbols are both
+ // macros and global variables because of standards requirements. So, we
+diff --git a/utils/unittest/googletest/src/gtest.cc b/utils/unittest/googletest/src/gtest.cc
+index d882ab2e..f1fb12d0 100644
+--- a/llvm/utils/unittest/googletest/src/gtest.cc
++++ b/llvm/utils/unittest/googletest/src/gtest.cc
+@@ -128,6 +128,7 @@
+
+ #if GTEST_CAN_STREAM_RESULTS_
+ # include <arpa/inet.h> // NOLINT
++# include <sys/socket.h> // NOLINT
+ # include <netdb.h> // NOLINT
+ # include <sys/socket.h> // NOLINT
+ # include <sys/types.h> // NOLINT
diff --git a/srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch b/srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch
new file mode 100644
index 000000000000..0071d964bd37
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch
@@ -0,0 +1,30 @@
+This patches LLVM to use ELFv2 on ppc64 unconditionally unless overridden. We
+need this because unlike most distros we use ELFv2 for both glibc and musl
+on big endian ppc64.
+
+diff --git a/lib/Target/PowerPC/PPCTargetMachine.cpp b/lib/Target/PowerPC/PPCTargetMachine.cpp
+index 0634833e..b7cbc2e7 100644
+--- a/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp
++++ b/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp
+@@ -222,9 +222,8 @@ static PPCTargetMachine::PPCABI computeTargetABI(const Triple &TT,
+
+ switch (TT.getArch()) {
+ case Triple::ppc64le:
+- return PPCTargetMachine::PPC_ABI_ELFv2;
+ case Triple::ppc64:
+- return PPCTargetMachine::PPC_ABI_ELFv1;
++ return PPCTargetMachine::PPC_ABI_ELFv2;
+ default:
+ return PPCTargetMachine::PPC_ABI_UNKNOWN;
+ }
+diff --git a/test/CodeGen/PowerPC/ppc64-elf-abi.ll b/test/CodeGen/PowerPC/ppc64-elf-abi.ll
+index 8b1cf6b5..296a2afa 100644
+--- a/llvm/test/CodeGen/PowerPC/ppc64-elf-abi.ll
++++ b/llvm/test/CodeGen/PowerPC/ppc64-elf-abi.ll
+@@ -1,4 +1,5 @@
+-; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv1
++; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv2
++; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-musl < %s | FileCheck %s -check-prefix=CHECK-ELFv2
+ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu -target-abi elfv1 < %s | FileCheck %s -check-prefix=CHECK-ELFv1
+ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu -target-abi elfv2 < %s | FileCheck %s -check-prefix=CHECK-ELFv2
+ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv2
diff --git a/srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch b/srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch
new file mode 100644
index 000000000000..b5d15974375d
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch
@@ -0,0 +1,11 @@
+--- a/llvm/lib/Target/PowerPC/PPCSubtarget.cpp
++++ b/llvm/lib/Target/PowerPC/PPCSubtarget.cpp
+@@ -165,7 +165,7 @@ void PPCSubtarget::initSubtargetFeatures(StringRef CPU, StringRef FS) {
+
+ if ((TargetTriple.isOSFreeBSD() && TargetTriple.getOSMajorVersion() >= 13) ||
+ TargetTriple.isOSNetBSD() || TargetTriple.isOSOpenBSD() ||
+- TargetTriple.isMusl())
++ isTargetLinux())
+ SecurePlt = true;
+
+ if (HasSPE && IsPPC64)
diff --git a/srcpkgs/llvm15/patches/llvm-004-override-opt.patch b/srcpkgs/llvm15/patches/llvm-004-override-opt.patch
new file mode 100644
index 000000000000..51d0e4b31b32
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-004-override-opt.patch
@@ -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)
diff --git a/srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch b/srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch
new file mode 100644
index 000000000000..d332687b9d92
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch
@@ -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);
diff --git a/srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch b/srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch
new file mode 100644
index 000000000000..a00abd216665
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch
@@ -0,0 +1,25 @@
+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__) || defined (__ppc__) || \
+- defined(_POWER) || defined(_ARCH_PPC))
++ defined(_POWER) || defined(_ARCH_PPC) || (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
diff --git a/srcpkgs/llvm15/template b/srcpkgs/llvm15/template
new file mode 100644
index 000000000000..92dadb185a7a
--- /dev/null
+++ b/srcpkgs/llvm15/template
@@ -0,0 +1,437 @@
+# Template file for 'llvm15'
+pkgname=llvm15
+version=15.0.7
+revision=1
+build_wrksrc=llvm
+build_style=cmake
+_ext_suffix=".cpython-${py3_ver/./}-linux-${XBPS_TARGET_LIBC/glibc/gnu}.so"
+configure_args="
+ -DCMAKE_BUILD_TYPE=Release -Wno-dev
+ -DENABLE_LINKER_BUILD_ID=YES
+ -DLLDB_USE_SYSTEM_SIX=YES
+ -DLIBCXX_CXX_ABI=libcxxabi
+ -DLIBCXX_ENABLE_STATIC_ABI_LIBRARY=YES
+ -DLIBCXXABI_USE_LLVM_UNWINDER=YES
+ -DLIBCXXABI_ENABLE_STATIC_UNWINDER=YES
+ -DLIBOMP_ENABLE_SHARED=YES
+ -DLIBOMP_INSTALL_ALIASES=NO
+ -DLLVM_INCLUDE_DOCS=YES
+ -DLLVM_BUILD_DOCS=YES
+ -DLLVM_ENABLE_SPHINX=YES
+ -DSPHINX_WARNINGS_AS_ERRORS=NO
+ -DLLVM_INSTALL_UTILS=YES
+ -DLLVM_BUILD_LLVM_DYLIB=YES
+ -DLLVM_LINK_LLVM_DYLIB=YES
+ -DLLVM_ENABLE_RTTI=YES
+ -DLLVM_ENABLE_FFI=YES
+ -DLLVM_BINUTILS_INCDIR=/usr/include
+ -DLLVM_ENABLE_PER_TARGET_RUNTIME_DIR=NO
+ -DLLDB_PYTHON_RELATIVE_PATH=lib/python${py3_ver}/site-packages
+ -DLLDB_PYTHON_EXE_RELATIVE_PATH=bin/python${py3_ver}
+ -DLLDB_PYTHON_EXT_SUFFIX=$_ext_suffix"
+hostmakedepends="perl python3 zlib-devel libffi-devel swig python3-Sphinx
+ python3-recommonmark python3-sphinx-automodapi"
+makedepends="python3-devel zlib-devel elfutils-devel libffi-devel libedit-devel
+ libxml2-devel binutils-devel libatomic-devel"
+depends="libllvm15>=${version}_${revision}"
+short_desc="Low Level Virtual Machine"
+maintainer="Orphaned <orphan@voidlinux.org>"
+license="Apache-2.0"
+homepage="https://www.llvm.org"
+distfiles="https://github.com/llvm/llvm-project/releases/download/llvmorg-${version}/llvm-project-${version}.src.tar.xz"
+checksum=8b5fcb24b4128cf04df1b0b9410ce8b1a729cb3c544e6da885d234280dedeac6
+lib32disabled=yes
+python_version=3
+
+if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
+ configure_args+=" -DLIBCXX_HAS_MUSL_LIBC=YES
+ -DCOMPILER_RT_BUILD_GWP_ASAN=OFF"
+fi
+
+# "operand out of range" assembler failures
+case "$XBPS_TARGET_MACHINE" in
+ ppc64*) ;;
+ ppc*) configure_args+=" -DCLANG_ENABLE_CLANGD=OFF" ;;
+esac
+
+_enabled_projects="clang;clang-tools-extra;compiler-rt;libcxx;libcxxabi;libunwind;lld"
+
+_lldb_enable=yes
+_libomp_enable=no
+
+case "$XBPS_TARGET_MACHINE" in
+ ppc64le*) ;;
+ ppc*|i686*|riscv64*) _lldb_enable=no ;;
+esac
+
+case "$XBPS_TARGET_MACHINE" in
+ x86_64*|aarch64*|ppc64*) _libomp_enable=yes;;
+esac
+
+subpackages="clang-tools-extra"
+
+# must go before clang
+if [ "$_libomp_enable" = "yes" ]; then
+ _enabled_projects+=";openmp"
+ subpackages+=" libomp libomp-devel"
+ # because of cmake nonsense referencing libomptarget.so.*
+ depends+=" libomp>=${version}_${revision}"
+fi
+
+subpackages+=" clang clang-analyzer libclang libclang-cpp
+ llvm-libunwind llvm-libunwind-devel libcxx libcxx-devel
+ libcxxabi libcxxabi-devel libllvm15"
+
+if [ "$_lldb_enable" = "yes" ]; then
+ # XXX fails to cross compile due to python
+ _enabled_projects+=";lldb"
+ subpackages+=" lldb lldb-devel"
+fi
+
+subpackages+=" lld lld-devel"
+
+configure_args+=" -DLLVM_ENABLE_PROJECTS=${_enabled_projects}"
+
+post_patch() {
+ if [ "$_lldb_enable" = "yes" ]; then
+ if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
+ vsed -i 's|__ptrace_request|int|g' \
+ ${wrksrc}/lldb/source/Plugins/Process/Linux/NativeProcessLinux.cpp
+ fi
+ # disable docs for lldb as they fail to generate
+ vsed -i '/add_subdirectory(docs)/d' \
+ ${wrksrc}/lldb/CMakeLists.txt
+ fi
+
+ # update config.guess for better platform detection
+ cp $XBPS_COMMONDIR/environment/configure/automake/config.guess \
+ ${wrksrc}/llvm/cmake
+
+ # fix linker failures on some archs
+ vsed -i 's,check_library_exists(gcc_s .*,set(LIBCXXABI_HAS_GCC_S_LIB ON),' \
+ ${wrksrc}/libcxxabi/cmake/config-ix.cmake
+ vsed -i 's,check_library_exists(gcc .*,set(LIBCXXABI_HAS_GCC_LIB ON),' \
+ ${wrksrc}/libcxxabi/cmake/config-ix.cmake
+
+ # need libssp_nonshared on some musl platforms (because of nodefaultlibs)
+ case "$XBPS_TARGET_MACHINE" in
+ ppc64*) ;;
+ ppc*-musl|i686-musl|mips*-musl)
+ vsed -i 's,^# Setup flags.$,add_library_flags(ssp_nonshared),' \
+ ${wrksrc}/libunwind/src/CMakeLists.txt
+ vsed -i 's,^# Setup flags.$,add_library_flags(ssp_nonshared),' \
+ ${wrksrc}/libcxxabi/src/CMakeLists.txt
+ vsed -i 's,#ssp,,' ${wrksrc}/libcxx/CMakeLists.txt
+ ;;
+ esac
+
+ case "$XBPS_TARGET_MACHINE" in
+ arm*-musl|i686-musl) # sanitizer code is broken since it duplicates some libc bits
+ vsed -i 's/set(COMPILER_RT_HAS_SANITIZER_COMMON TRUE)/set(COMPILER_RT_HAS_SANITIZER_COMMON FALSE)/' \
+ ${wrksrc}/compiler-rt/cmake/config-ix.cmake
+ ;;
+ esac
+}
+
+pre_configure() {
+ local triplet
+
+ # Vastly reduce size of debugging symbols:
+ CFLAGS=${CFLAGS/ -g/ -g1}
+ CXXFLAGS=${CXXFLAGS/ -g/ -g1}
+
+ # since gcc9, the build likes to blow up for ppc32 apparently because
+ # of clang being too large for a 24-bit relative call to the PLT, so
+ # optimize for size instead
+ case "$XBPS_TARGET_MACHINE" in
+ ppc64*) ;;
+ mips*-musl|ppc*) configure_args+=" -DVOID_CXX_OPT_FLAGS=-Os" ;;
+ esac
+
+ if [ "$CROSS_BUILD" ]; then
+ msg_normal "Building host tblgen\n"
+ mkdir -p build/HOST
+ cd build/HOST
+ CC="$BUILD_CC" CXX="$BUILD_CXX" CFLAGS="$BUILD_CFLAGS" \
+ CXXFLAGS="$BUILD_CXXFLAGS" LDFLAGS="$BUILD_LDFLAGS" \
+ cmake ../.. -DCMAKE_BUILD_TYPE=Release \
+ -DLLVM_ENABLE_PROJECTS=${_enabled_projects}
+ make ${makejobs} -C utils/TableGen
+ make ${makejobs} -C tools/clang/utils/TableGen
+ make ${makejobs} -C tools/clang/tools/extra/clang-tidy/misc/ConfusableTable
+ make ${makejobs} -C tools/clang/tools/extra/pseudo/gen
+ [ "$_lldb_enable" = "yes" ] && make ${makejobs} -C tools/lldb/utils/TableGen
+ configure_args+=" -DLLVM_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/llvm-tblgen"
+ configure_args+=" -DCLANG_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/clang-tblgen"
+ configure_args+=" -DCLANG_TIDY_CONFUSABLE_CHARS_GEN=${wrksrc}/llvm/build/HOST/bin/clang-tidy-confusable-chars-gen"
+ configure_args+=" -DCLANG_PSEUDO_GEN=${wrksrc}/llvm/build/HOST/bin/clang-pseudo-gen"
+ [ "$_lldb_enable" = "yes" ] && configure_args+=" -DLLDB_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/lldb-tblgen"
+ cd ../..
+ fi
+
+ case "$XBPS_TARGET_MACHINE" in
+ i686*) _arch="X86";;
+ x86_64*) _arch="X86";;
+ armv5*) _arch="Armv5te";;
+ armv6*) _arch="Armv6";;
+ armv7*) _arch="Armv7";;
+ aarch64*) _arch="AArch64";;
+ mips*) _arch="Mips";;
+ ppc*) _arch="PowerPC";;
+ riscv64*) _arch="RISCV64";;
+ esac
+
+ triplet=${XBPS_CROSS_TRIPLET:-$XBPS_TRIPLET}
+
+ configure_args+=" -DLLVM_TARGET_ARCH=${_arch}"
+ configure_args+=" -DLLVM_HOST_TRIPLE=${triplet}"
+ configure_args+=" -DLLVM_DEFAULT_TARGET_TRIPLE=${triplet}"
+}
+
+do_install() {
+ cd build
+ cmake -DCMAKE_INSTALL_PREFIX=${DESTDIR}/usr -P cmake_install.cmake
+
+ # Required for multilib.
+ if [ "$XBPS_TARGET_MACHINE" = "x86_64" ]; then
+ for _header in llvm-config; do
+ mv ${DESTDIR}/usr/include/llvm/Config/${_header}{,-64}.h
+ vinstall ${FILESDIR}/llvm-Config-${_header}.h 644 \
+ usr/include/llvm/Config ${_header}.h
+ done
+ fi
+
+ # Remove llvm-config-host in cross builds.
+ if [ "$CROSS_BUILD" ]; then
+ rm -f ${DESTDIR}/usr/bin/llvm-config-host
+ fi
+
+ # Install libcxxabi headers
+ vinstall ${wrksrc}/libcxxabi/include/__cxxabi_config.h 644 usr/include
+ vinstall ${wrksrc}/libcxxabi/include/cxxabi.h 644 usr/include
+
+ # Install libunwind headers
+ vinstall ${wrksrc}/libunwind/include/__libunwind_config.h 644 usr/include
+ vinstall ${wrksrc}/libunwind/include/libunwind.h 644 usr/include
+ vinstall ${wrksrc}/libunwind/include/unwind.h 644 usr/include
+ vinstall ${wrksrc}/libunwind/include/mach-o/compact_unwind_encoding.h \
+ 644 usr/include/mach-o
+}
+
+clang-analyzer_package() {
+ pycompile_dirs="usr/share/scan-view"
+ depends="clang-${version}_${revision} python3 perl"
+ short_desc+=" - A source code analysis framework"
+ homepage="https://clang-analyzer.llvm.org/"
+ pkg_install() {
+ vmove "usr/bin/scan-*"
+ vmove "usr/libexec/*analyzer"
+ vmove "usr/share/scan-*"
+ vmove usr/share/man/man1/scan-build.1
+ }
+}
+
+clang-tools-extra_package() {
+ lib32disabled=yes
+ depends="clang-${version}_${revision} python3"
+ short_desc+=" - Extra Clang tools"
+ homepage="https://clang.llvm.org/extra/"
+ pkg_install() {
+ vmove usr/bin/clang-apply-replacements
+ vmove usr/bin/clang-doc
+ vmove usr/bin/clang-include-fixer
+ vmove usr/bin/clang-query
+ vmove usr/bin/clang-rename
+ vmove usr/bin/clang-reorder-fields
+ vmove usr/bin/clang-tidy
+ vmove usr/bin/clangd
+ vmove usr/bin/diagtool
+ vmove usr/bin/find-all-symbols
+ vmove usr/bin/hmaptool
+ vmove usr/bin/modularize
+ vmove usr/bin/pp-trace
+ vmove usr/bin/sancov
+ vmove usr/include/clang-tidy
+ vmove "usr/lib/libclangApplyReplacements*"
+ vmove "usr/lib/libclangDoc*"
+ vmove "usr/lib/libclangIncludeFixer*"
+ vmove "usr/lib/libclangReorderFields*"
+ vmove "usr/lib/libclangQuery*"
+ vmove "usr/lib/libclangTidy*"
+ vmove "usr/share/clang/*include-fixer*"
+ vmove "usr/share/clang/*rename*"
+ vmove "usr/share/clang/*tidy*"
+ vmove usr/share/doc/LLVM/clang-tools
+ vmove usr/share/man/man1/diagtool.1
+ vmove usr/share/man/man1/extraclangtools.1
+ }
+}
+
+clang_package() {
+ lib32disabled=yes
+ depends="libstdc++-devel libgcc-devel binutils ${XBPS_TARGET_LIBC}-devel
+ libclang-${version}_${revision}"
+ short_desc+=" - C language family frontend"
+ homepage="https://clang.llvm.org/"
+ pkg_install() {
+ vmove "usr/bin/*clang*"
+ vmove usr/bin/c-index-test
+ vmove usr/include/clang
+ vmove usr/include/clang-c
+ vmove usr/lib/clang
+ vmove usr/lib/cmake/clang
+ vmove "usr/lib/libclang*.a"
+ vmove "usr/lib/libclang*.so"
+ vmove usr/share/clang
+ vmove usr/share/doc/LLVM/clang
+ vmove usr/share/man/man1/clang.1
+ }
+}
+
+libclang_package() {
+ short_desc+=" - C frontend runtime library"
+ pkg_install() {
+ vmove "usr/lib/libclang.so.*"
+ }
+}
+
+libclang-cpp_package() {
+ short_desc+=" - C frontend runtime library (C++ interface)"
+ pkg_install() {
+ vmove "usr/lib/libclang-cpp.so.*"
+ }
+}
+
+lld_package() {
+ lib32disabled=yes
+ short_desc+=" - linker"
+ homepage="https://lld.llvm.org"
+ pkg_install() {
+ vmove "usr/bin/ld.lld*"
+ vmove "usr/bin/ld64.lld*"
+ vmove "usr/bin/lld*"
+ vmove usr/bin/wasm-ld
+ vmove usr/share/doc/LLVM/lld
+ }
+}
+
+lld-devel_package() {
+ lib32disabled=yes
+ short_desc+=" - linker - development files"
+ homepage="https://lld.llvm.org"
+ depends="lld>=${version}_${revision}"
+ pkg_install() {
+ vmove usr/include/lld
+ vmove usr/lib/cmake/lld
+ vmove "usr/lib/liblld*a"
+ }
+}
+
+lldb_package() {
+ lib32disabled=yes
+ depends+=" python3-six"
+ short_desc+=" - LLDB debugger"
+ homepage="https://lldb.llvm.org/"
+ pkg_install() {
+ vmove "usr/bin/*lldb*"
+ vmove "usr/lib/liblldb*so.*"
+ vmove usr/lib/python*
+ }
+}
+
+lldb-devel_package() {
+ lib32disabled=yes
+ depends="lldb>=${version}_${revision}"
+ short_desc+=" - LLDB debugger - development files"
+ pkg_install() {
+ vmove usr/include/lldb
+ vmove "usr/lib/liblldb*.so"
+ }
+}
+
+llvm-libunwind_package() {
+ short_desc+=" - libunwind"
+ pkg_install() {
+ vmove "usr/lib/libunwind.so.*"
+ }
+}
+
+llvm-libunwind-devel_package() {
+ short_desc+=" - libunwind - development files"
+ depends="llvm-libunwind>=${version}_${revision}"
+ conflicts="libunwind-devel>=0"
+ pkg_install() {
+ vmove usr/include/mach-o
+ vmove "usr/include/*unwind*"
+ vmove "usr/lib/libunwind.a"
+ vmove "usr/lib/libunwind.so"
+ vmove usr/share/doc/LLVM/libunwind
+ }
+}
+
+libcxxabi_package() {
+ short_desc+=" - low level support for libc++"
+ pkg_install() {
+ vmove "usr/lib/libc++abi.so.*"
+ }
+}
+
+libcxxabi-devel_package() {
+ short_desc+=" - low level support for libc++ - development files"
+ depends="libcxxabi>=${version}_${revision}"
+ pkg_install() {
+ vmove "usr/include/*cxxabi*"
+ vmove "usr/lib/libc++abi.so"
+ vmove "usr/lib/libc++abi.a"
+ }
+}
+
+libcxx_package() {
+ short_desc+=" - C++ standard library"
+ pkg_install() {
+ vmove "usr/lib/libc++.so.*"
+ }
+}
+
+libcxx-devel_package() {
+ short_desc+=" - C++ standard library - development files"
+ depends="libcxx>=${version}_${revision}"
+ pkg_install() {
+ vmove usr/include/c++
+ vmove "usr/lib/libc++.so"
+ vmove "usr/lib/libc++.a"
+ vmove "usr/lib/libc++experimental.a"
+ vmove usr/share/doc/LLVM/libcxx
+ }
+}
+
+libomp_package() {
+ short_desc+=" - Clang OpenMP support library"
+ pkg_install() {
+ vmove usr/lib/libarcher.so
+ vmove usr/lib/libompd.so
+ vmove "usr/lib/libomptarget.rtl.*.so"
+ vmove "usr/lib/libomp*.so.*"
+ }
+}
+
+libomp-devel_package() {
+ short_desc+=" - Clang OpenMP support library - development files"
+ depends="libomp>=${version}_${revision}"
+ pkg_install() {
+ vmove "usr/include/omp*.h"
+ vmove "usr/lib/clang/${version}/include/omp*.h"
+ vmove "usr/lib/libarcher*"
+ vmove "usr/lib/libomp*.so"
+ vmove usr/lib/cmake/openmp
+ vmove usr/share/doc/LLVM/openmp
+ vmove usr/share/man/man1/llvmopenmp.1
+ }
+}
+
+libllvm15_package() {
+ short_desc+=" - runtime library"
+ pkg_install() {
+ vmove "usr/lib/libLLVM-*.so*"
+ }
+}
diff --git a/srcpkgs/llvm15/update b/srcpkgs/llvm15/update
new file mode 100644
index 000000000000..e95cf26b3586
--- /dev/null
+++ b/srcpkgs/llvm15/update
@@ -0,0 +1,3 @@
+site="https://github.com/llvm/llvm-project/releases"
+pattern="llvmorg-\K(\d+.){2}\d+(-rc\d+)?"
+ignore="*-rc*"
From c61d2ed47e630097b6dc6d1ed5d7e291b943f63b Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Sun, 18 Dec 2022 00:40:18 +0100
Subject: [PATCH 02/17] llvm: update to 15
---
common/shlibs | 6 +++---
srcpkgs/clang | 2 +-
srcpkgs/clang-analyzer | 2 +-
srcpkgs/clang-tools-extra | 2 +-
srcpkgs/libclang | 2 +-
srcpkgs/libclang-cpp | 2 +-
srcpkgs/libcxx | 2 +-
srcpkgs/libcxx-devel | 2 +-
srcpkgs/libcxxabi | 2 +-
srcpkgs/libcxxabi-devel | 2 +-
srcpkgs/libomp | 2 +-
srcpkgs/libomp-devel | 2 +-
srcpkgs/lld | 2 +-
srcpkgs/lld-devel | 2 +-
srcpkgs/lldb | 2 +-
srcpkgs/lldb-devel | 2 +-
srcpkgs/llvm-libunwind | 2 +-
srcpkgs/llvm-libunwind-devel | 2 +-
srcpkgs/llvm/template | 6 +++---
19 files changed, 23 insertions(+), 23 deletions(-)
diff --git a/common/shlibs b/common/shlibs
index 5c7362d47b0e..f62083061911 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -987,9 +987,9 @@ 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.12 lldb-12.0.0_1
-libclang.so.12 libclang-12.0.0_1
-libclang-cpp.so.12 libclang-cpp-12.0.0_1
+liblldb.so.15 lldb-15.0.7_1
+libclang.so.15 libclang-15.0.7_1
+libclang-cpp.so.15 libclang-cpp-15.0.7_1
libLLVM-11.so libllvm11-11.0.0_1
libLLVM-12.so libllvm12-12.0.0_1
libLLVM-15.so libllvm15-15.0.7_1
diff --git a/srcpkgs/clang b/srcpkgs/clang
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/clang
+++ b/srcpkgs/clang
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/clang-analyzer b/srcpkgs/clang-analyzer
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/clang-analyzer
+++ b/srcpkgs/clang-analyzer
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/clang-tools-extra b/srcpkgs/clang-tools-extra
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/clang-tools-extra
+++ b/srcpkgs/clang-tools-extra
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libclang b/srcpkgs/libclang
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libclang
+++ b/srcpkgs/libclang
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libclang-cpp b/srcpkgs/libclang-cpp
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libclang-cpp
+++ b/srcpkgs/libclang-cpp
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxx b/srcpkgs/libcxx
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxx
+++ b/srcpkgs/libcxx
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxx-devel b/srcpkgs/libcxx-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxx-devel
+++ b/srcpkgs/libcxx-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxxabi b/srcpkgs/libcxxabi
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxxabi
+++ b/srcpkgs/libcxxabi
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxxabi-devel b/srcpkgs/libcxxabi-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxxabi-devel
+++ b/srcpkgs/libcxxabi-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libomp b/srcpkgs/libomp
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libomp
+++ b/srcpkgs/libomp
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libomp-devel b/srcpkgs/libomp-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libomp-devel
+++ b/srcpkgs/libomp-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lld b/srcpkgs/lld
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lld
+++ b/srcpkgs/lld
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lld-devel b/srcpkgs/lld-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lld-devel
+++ b/srcpkgs/lld-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lldb b/srcpkgs/lldb
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lldb
+++ b/srcpkgs/lldb
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lldb-devel b/srcpkgs/lldb-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lldb-devel
+++ b/srcpkgs/lldb-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm-libunwind b/srcpkgs/llvm-libunwind
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/llvm-libunwind
+++ b/srcpkgs/llvm-libunwind
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm-libunwind-devel b/srcpkgs/llvm-libunwind-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/llvm-libunwind-devel
+++ b/srcpkgs/llvm-libunwind-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm/template b/srcpkgs/llvm/template
index a92db6f94f9f..fc1c850bd26f 100644
--- a/srcpkgs/llvm/template
+++ b/srcpkgs/llvm/template
@@ -1,11 +1,11 @@
# Template file for 'llvm'
pkgname=llvm
-version=12.0.0
+version=15
revision=1
build_style=meta
-depends="llvm12"
-replaces="llvm11>=0 llvm10>=0 llvm9>=0 llvm8>=0 llvm7>=0 llvm6.0>=0 llvm3.9>=0"
+depends="llvm15"
short_desc="LLVM meta package"
maintainer="Enno Boland <gottox@voidlinux.org>"
license="Public Domain"
homepage="https://www.voidlinux.org"
+replaces="llvm12>=0 llvm11>=0 llvm10>=0 llvm9>=0 llvm8>=0 llvm7>=0 llvm6.0>=0 llvm3.9>=0"
From b3047c776e65003a203f48cdd6a7c459eae2a730 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Sun, 18 Dec 2022 12:20:08 +0100
Subject: [PATCH 03/17] llvm12: remove bumped subpackages
---
srcpkgs/llvm12/template | 264 +---------------------------------------
1 file changed, 1 insertion(+), 263 deletions(-)
diff --git a/srcpkgs/llvm12/template b/srcpkgs/llvm12/template
index f8ea3ba641ae..aea0b43cf573 100644
--- a/srcpkgs/llvm12/template
+++ b/srcpkgs/llvm12/template
@@ -50,55 +50,7 @@ case "$XBPS_TARGET_MACHINE" in
ppc*) configure_args+=" -DCLANG_ENABLE_CLANGD=OFF" ;;
esac
-_enabled_projects="clang;clang-tools-extra;compiler-rt;libcxx;libcxxabi;libunwind;lld"
-
-_lldb_enable=yes
-_libomp_enable=no
-
-case "$XBPS_TARGET_MACHINE" in
- ppc64le*) ;;
- ppc*|i686*) _lldb_enable=no ;;
-esac
-
-case "$XBPS_TARGET_MACHINE" in
- x86_64*|aarch64*|ppc64*) _libomp_enable=yes;;
-esac
-
-subpackages="clang-tools-extra"
-
-# must go before clang
-if [ "$_libomp_enable" = "yes" ]; then
- _enabled_projects+=";openmp"
- subpackages+=" libomp libomp-devel"
- # because of cmake nonsense referencing libomptarget.so.*
- depends+=" libomp>=${version}_${revision}"
-fi
-
-subpackages+=" clang clang-analyzer libclang libclang-cpp
- llvm-libunwind llvm-libunwind-devel libcxx libcxx-devel
- libcxxabi libcxxabi-devel libllvm12"
-
-if [ "$_lldb_enable" = "yes" ]; then
- # XXX fails to cross compile due to python
- _enabled_projects+=";lldb"
- subpackages+=" lldb lldb-devel"
-fi
-
-subpackages+=" lld lld-devel"
-
-configure_args+=" -DLLVM_ENABLE_PROJECTS=${_enabled_projects}"
-
post_patch() {
- if [ "$_lldb_enable" = "yes" ]; then
- if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
- vsed -i 's|__ptrace_request|int|g' \
- ${wrksrc}/lldb/source/Plugins/Process/Linux/NativeProcessLinux.cpp
- fi
- # disable docs for lldb as they fail to generate
- vsed -i '/add_subdirectory(docs)/d' \
- ${wrksrc}/lldb/CMakeLists.txt
- fi
-
# update config.guess for better platform detection
cp $XBPS_COMMONDIR/environment/configure/automake/config.guess \
${wrksrc}/llvm/cmake
@@ -154,14 +106,12 @@ pre_configure() {
cd build/HOST
CC="$BUILD_CC" CXX="$BUILD_CXX" CFLAGS="$BUILD_CFLAGS" \
CXXFLAGS="$BUILD_CXXFLAGS" LDFLAGS="$BUILD_LDFLAGS" \
- cmake ../.. -DCMAKE_BUILD_TYPE=Release \
- -DLLVM_ENABLE_PROJECTS=${_enabled_projects}
+ cmake ../.. -DCMAKE_BUILD_TYPE=Release
make ${makejobs} -C utils/TableGen
make ${makejobs} -C tools/clang/utils/TableGen
[ "$_lldb_enable" = "yes" ] && make ${makejobs} -C tools/lldb/utils/TableGen
configure_args+=" -DLLVM_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/llvm-tblgen"
configure_args+=" -DCLANG_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/clang-tblgen"
- [ "$_lldb_enable" = "yes" ] && configure_args+=" -DLLDB_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/lldb-tblgen"
cd ../..
fi
@@ -201,218 +151,6 @@ do_install() {
if [ "$CROSS_BUILD" ]; then
rm -f ${DESTDIR}/usr/bin/llvm-config-host
fi
-
- # Install libcxxabi headers
- vinstall ${wrksrc}/libcxxabi/include/__cxxabi_config.h 644 usr/include
- vinstall ${wrksrc}/libcxxabi/include/cxxabi.h 644 usr/include
-
- # Install libunwind headers
- vinstall ${wrksrc}/libunwind/include/__libunwind_config.h 644 usr/include
- vinstall ${wrksrc}/libunwind/include/libunwind.h 644 usr/include
- vinstall ${wrksrc}/libunwind/include/unwind.h 644 usr/include
- vinstall ${wrksrc}/libunwind/include/mach-o/compact_unwind_encoding.h \
- 644 usr/include/mach-o
-}
-
-clang-analyzer_package() {
- pycompile_dirs="usr/share/scan-view"
- depends="clang-${version}_${revision} python3 perl"
- short_desc+=" - A source code analysis framework"
- homepage="https://clang-analyzer.llvm.org/"
- pkg_install() {
- vmove usr/share/man/man1/scan-build.1
- vmove "/usr/bin/scan-*"
- vmove "/usr/share/scan-*"
- vmove "/usr/libexec/*analyzer"
- }
-}
-
-clang-tools-extra_package() {
- lib32disabled=yes
- depends="clang-${version}_${revision} python3"
- short_desc+=" - Extra Clang tools"
- homepage="https://clang.llvm.org/extra/"
- pkg_install() {
- vmove usr/include/clang-tidy
- vmove usr/bin/clang-apply-replacements
- vmove usr/bin/clang-query
- vmove usr/bin/clang-rename
- vmove usr/bin/clang-tidy
- vmove usr/bin/diagtool
- vmove usr/bin/find-all-symbols
- vmove usr/bin/hmaptool
- vmove usr/bin/modularize
- vmove usr/bin/pp-trace
- vmove usr/bin/sancov
- vmove "usr/lib/libclangApplyReplacements*"
- vmove "usr/lib/libclangQuery*"
- vmove "usr/lib/libclangTidy*"
- vmove "usr/share/clang/*tidy*"
- vmove usr/share/doc/clang-tools
- vmove usr/share/man/man1/extraclangtools.1
- vmove usr/share/man/man1/diagtool.1
- }
-}
-
-clang_package() {
- lib32disabled=yes
- depends="libstdc++-devel libgcc-devel binutils ${XBPS_TARGET_LIBC}-devel
- libclang-${version}_${revision}"
- short_desc+=" - C language family frontend"
- homepage="https://clang.llvm.org/"
- pkg_install() {
- vmove usr/include/clang
- vmove usr/include/clang-c
- vmove "usr/bin/*clang*"
- vmove usr/bin/c-index-test
- vmove usr/lib/clang
- vmove usr/lib/cmake/clang
- vmove "usr/lib/libclang*.a"
- vmove "usr/lib/libclang*.so"
- vmove usr/share/clang
- vmove usr/share/doc/clang
- vmove usr/share/man/man1/clang.1
- }
-}
-
-libclang_package() {
- short_desc+=" - C frontend runtime library"
- pkg_install() {
- vmove "usr/lib/libclang.so.*"
- }
-}
-
-libclang-cpp_package() {
- short_desc+=" - C frontend runtime library (C++ interface)"
- pkg_install() {
- vmove "usr/lib/libclang-cpp.so.*"
- }
-}
-
-lld_package() {
- lib32disabled=yes
- short_desc+=" - linker"
- homepage="https://lld.llvm.org"
- pkg_install() {
- vmove usr/bin/lld*
- vmove usr/bin/wasm-ld
- vmove usr/bin/ld.lld*
- vmove usr/bin/ld64.lld*
- vmove usr/share/doc/lld
- }
-}
-
-lld-devel_package() {
- lib32disabled=yes
- short_desc+=" - linker - development files"
- homepage="https://lld.llvm.org"
- depends="lld>=${version}_${revision}"
- pkg_install() {
- vmove usr/include/lld
- vmove usr/lib/cmake/lld
- vmove "usr/lib/liblld*a"
- }
-}
-
-lldb_package() {
- lib32disabled=yes
- depends+=" python3-six"
- short_desc+=" - LLDB debugger"
- homepage="https://lldb.llvm.org/"
- pkg_install() {
- vmove usr/bin/*lldb*
- vmove usr/lib/liblldb*so.*
- vmove /usr/lib/python*
- }
-}
-
-lldb-devel_package() {
- lib32disabled=yes
- depends="lldb>=${version}_${revision}"
- short_desc+=" - LLDB debugger - development files"
- pkg_install() {
- vmove usr/include/lldb
- vmove "usr/lib/liblldb*.so"
- }
-}
-
-llvm-libunwind_package() {
- short_desc+=" - libunwind"
- pkg_install() {
- vmove "usr/lib/libunwind.so.*"
- }
-}
-
-llvm-libunwind-devel_package() {
- short_desc+=" - libunwind - development files"
- depends="llvm-libunwind>=${version}_${revision}"
- conflicts="libunwind-devel>=0"
- pkg_install() {
- vmove usr/lib/libunwind.so
- vmove usr/lib/libunwind.a
- vmove "usr/include/*unwind*"
- vmove usr/include/mach-o
- vmove usr/share/doc/libunwind
- }
-}
-
-libcxxabi_package() {
- short_desc+=" - low level support for libc++"
- pkg_install() {
- vmove "usr/lib/libc++abi.so.*"
- }
-}
-
-libcxxabi-devel_package() {
- short_desc+=" - low level support for libc++ - development files"
- depends="libcxxabi>=${version}_${revision}"
- pkg_install() {
- vmove usr/lib/libc++abi.so
- vmove usr/lib/libc++abi.a
- vmove "usr/include/*cxxabi*"
- }
-}
-
-libcxx_package() {
- short_desc+=" - C++ standard library"
- pkg_install() {
- vmove "usr/lib/libc++.so.*"
- }
-}
-
-libcxx-devel_package() {
- short_desc+=" - C++ standard library - development files"
- depends="libcxx>=${version}_${revision}"
- pkg_install() {
- vmove usr/lib/libc++.so
- vmove usr/lib/libc++.a
- vmove usr/lib/libc++experimental.a
- vmove usr/include/c++
- vmove usr/share/doc/libcxx
- }
-}
-
-libomp_package() {
- short_desc+=" - Clang OpenMP support library"
- pkg_install() {
- vmove usr/lib/libomp.so
- vmove "usr/lib/libomptarget.rtl.*.so"
- vmove usr/lib/libarcher.so
- vmove "usr/lib/libomp*.so.*"
- }
-}
-
-libomp-devel_package() {
- short_desc+=" - Clang OpenMP support library - development files"
- depends="libomp>=${version}_${revision}"
- pkg_install() {
- vmove "usr/lib/libomp*.so"
- vmove "usr/lib/libarcher*"
- vmove "usr/include/omp*.h"
- vmove "usr/lib/clang/${version}/include/omp*.h"
- vmove usr/share/man/man1/llvmopenmp.1
- vmove usr/share/doc/openmp
- }
}
libllvm12_package() {
From 46c383c0d00cbfd89d99c12f37104639c82b8b73 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:27:03 +0100
Subject: [PATCH 04/17] mesa: rebuild for llvm15
---
srcpkgs/mesa/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/mesa/template b/srcpkgs/mesa/template
index 4c3c9ec6039e..0641b28a80d6 100644
--- a/srcpkgs/mesa/template
+++ b/srcpkgs/mesa/template
@@ -1,7 +1,7 @@
# Template file for 'mesa'
pkgname=mesa
version=22.2.4
-revision=2
+revision=3
build_style=meson
configure_args="-Dglvnd=true -Dshared-glapi=enabled -Dgbm=enabled -Degl=enabled
-Dosmesa=true -Dgles1=enabled -Dgles2=enabled -Dglx=dri -Ddri3=enabled
From 6483d7eb153d7fc23e70a860af2efbb2f6dcd3d5 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:34:04 +0100
Subject: [PATCH 05/17] bcc: rebuild for llvm15
---
srcpkgs/bcc/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/bcc/template b/srcpkgs/bcc/template
index 7526580f17ed..bdbcff7227a0 100644
--- a/srcpkgs/bcc/template
+++ b/srcpkgs/bcc/template
@@ -1,7 +1,7 @@
# Template file for 'bcc'
pkgname=bcc
version=0.26.0
-revision=2
+revision=3
build_style=cmake
configure_args="-DREVISION=${version} -DENABLE_LLVM_SHARED=1"
hostmakedepends="flex python3-setuptools"
From 6dcf874e912447b3c034e6d15102bb736378e1de Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:37:25 +0100
Subject: [PATCH 06/17] bpftrace: rebuild for llvm15
---
srcpkgs/bpftrace/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/bpftrace/template b/srcpkgs/bpftrace/template
index 857815d29eef..47f2b5e77024 100644
--- a/srcpkgs/bpftrace/template
+++ b/srcpkgs/bpftrace/template
@@ -1,7 +1,7 @@
# Template file for 'bpftrace'
pkgname=bpftrace
version=0.16.0
-revision=1
+revision=2
archs="x86_64* aarch64* ppc64*"
build_style=cmake
configure_args="-DBUILD_TESTING=OFF" # needs root to run
From 90ce7ee74b51de8cae6e08530633545713955fae Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:43:53 +0100
Subject: [PATCH 07/17] CastXML: rebuild for llvm15
---
srcpkgs/CastXML/template | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/srcpkgs/CastXML/template b/srcpkgs/CastXML/template
index 5d7d9503658c..28c424c78073 100644
--- a/srcpkgs/CastXML/template
+++ b/srcpkgs/CastXML/template
@@ -1,7 +1,7 @@
# Template file for 'CastXML'
pkgname=CastXML
version=0.4.6
-revision=1
+revision=2
build_style=cmake
configure_args="-DSPHINX_MAN=YES -DCastXML_INSTALL_MAN_DIR=share/man"
hostmakedepends="clang python3-Sphinx"
@@ -12,8 +12,8 @@ short_desc="C-family abstract syntax tree XML output tool"
maintainer="Evgeny Ermakov <evgeny.v.ermakov@gmail.com>"
license="Apache-2.0"
homepage="https://github.com/CastXML/CastXML"
-distfiles="https://github.com/CastXML/CastXML/archive/v${version}.tar.gz"
-checksum=8dcdbc1f23a130e4bdb0b09f57c30761a02a346b4db4037555048af2a293d66a
+distfiles="https://github.com/CastXML/CastXML/archive/refs/tags/v${version}.tar.gz"
+checksum=bb9024ec9ea5082e0d527f19bf3c2df79f1699f54b6cec168c024e727b32e6d1
post_install() {
rm -r ${DESTDIR}/usr/share/castxml/clang/include
From 7bbc3c0dc99e7df4804fc41f7680018b7e663518 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:48:55 +0100
Subject: [PATCH 08/17] ccls: rebuild for llvm15
---
srcpkgs/ccls/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/ccls/template b/srcpkgs/ccls/template
index 82fa61933878..ecc9f3e38a5d 100644
--- a/srcpkgs/ccls/template
+++ b/srcpkgs/ccls/template
@@ -1,7 +1,7 @@
# Template file for 'ccls'
pkgname=ccls
version=0.20220729
-revision=1
+revision=2
build_style=cmake
hostmakedepends="clang-tools-extra"
makedepends="clang-tools-extra libxml2-devel llvm ncurses-devel rapidjson zlib-devel"
From f6ed2bad4d7e3d3058ccae790f245602ee02746e Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:52:14 +0100
Subject: [PATCH 09/17] include-what-you-use: update to 0.19
---
srcpkgs/include-what-you-use/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/include-what-you-use/template b/srcpkgs/include-what-you-use/template
index d3655709c20c..1a30bc04bb2d 100644
--- a/srcpkgs/include-what-you-use/template
+++ b/srcpkgs/include-what-you-use/template
@@ -1,6 +1,6 @@
# Template file for 'include-what-you-use'
pkgname=include-what-you-use
-version=0.16
+version=0.19
revision=1
build_style=cmake
configure_args="-DIWYU_LLVM_ROOT_PATH=${XBPS_CROSS_BASE}/usr "
@@ -11,7 +11,7 @@ maintainer="Leah Neukirchen <leah@vuxu.org>"
license="NCSA"
homepage="https://include-what-you-use.org/"
distfiles="https://include-what-you-use.org/downloads/${pkgname}-${version}.src.tar.gz"
-checksum=8d6fc9b255343bc1e5ec459e39512df1d51c60e03562985e0076036119ff5a1c
+checksum=2b10157b60ea08adc08e3896b4921c73fcadd5ec4eb652b29a34129d501e5ee0
python_version=3
post_install() {
From 6c34d9bc99d526de30174235c4e639467ef7755b Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 15:11:06 +0100
Subject: [PATCH 10/17] SPIRV-LLVM-Translator: update to 15.0.0
---
srcpkgs/SPIRV-LLVM-Translator/template | 13 +++++++------
1 file changed, 7 insertions(+), 6 deletions(-)
diff --git a/srcpkgs/SPIRV-LLVM-Translator/template b/srcpkgs/SPIRV-LLVM-Translator/template
index a2754e58c0e8..bee99f9bcbb2 100644
--- a/srcpkgs/SPIRV-LLVM-Translator/template
+++ b/srcpkgs/SPIRV-LLVM-Translator/template
@@ -1,19 +1,20 @@
# Template file for 'SPIRV-LLVM-Translator'
pkgname=SPIRV-LLVM-Translator
-version=12.0.0
-revision=2
+version=15.0.0
+revision=1
build_style=cmake
make_build_args="llvm-spirv"
configure_args="-Wno-dev -DLLVM_LINK_LLVM_DYLIB=ON -DCMAKE_SKIP_RPATH=ON
- -DLLVM_SPIRV_INCLUDE_TESTS=OFF -DBUILD_SHARED_LIBS=ON"
+ -DLLVM_SPIRV_INCLUDE_TESTS=OFF -DBUILD_SHARED_LIBS=ON
+ -DLLVM_EXTERNAL_SPIRV_HEADERS_SOURCE_DIR=/usr"
hostmakedepends="clang llvm"
-makedepends="clang-tools-extra llvm"
+makedepends="clang-tools-extra llvm SPIRV-Headers"
short_desc="API and commands for processing SPIR-V modules"
maintainer="Orphaned <orphan@voidlinux.org>"
license="NCSA"
homepage="https://github.com/KhronosGroup/SPIRV-LLVM-Translator"
-distfiles="https://github.com/KhronosGroup/${pkgname}/archive/refs/tags/v${version}.tar.gz"
-checksum=6e4fad04203f25fcde4c308c53e9f59bd05a390978992db3212d4b63aff62108
+distfiles="https://github.com/KhronosGroup/SPIRV-LLVM-Translator/archive/refs/tags/v${version}.tar.gz"
+checksum=b1bebd77f72988758c00852e78c2ddc545815a612169a0cb377d021e2f846d88
post_install() {
vlicense LICENSE.TXT
From 63c1fc686ecd5cb698c00aa4de7a166f5c703613 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Fri, 6 Jan 2023 17:11:04 +0100
Subject: [PATCH 11/17] rtags: rebuild for llvm15
---
srcpkgs/rtags/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/rtags/template b/srcpkgs/rtags/template
index b496a1b0e721..9b161e690d76 100644
--- a/srcpkgs/rtags/template
+++ b/srcpkgs/rtags/template
@@ -1,7 +1,7 @@
# Template file for 'rtags'
pkgname=rtags
version=2.38
-revision=5
+revision=6
build_style=cmake
# Don't run tests in do_install, please.
configure_args="-DSKIP_CTEST=TRUE"
From 9bdb5c4aafb7e63d781806c6c00099054926437b Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Fri, 6 Jan 2023 17:14:14 +0100
Subject: [PATCH 12/17] juCi++: rebuild for llvm15
---
srcpkgs/juCi++/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/juCi++/template b/srcpkgs/juCi++/template
index c1969237f11d..416bde7cc4d0 100644
--- a/srcpkgs/juCi++/template
+++ b/srcpkgs/juCi++/template
@@ -1,7 +1,7 @@
# Template file for 'juCi++'
pkgname=juCi++
version=1.7.2
-revision=2
+revision=3
_libclangmm_commit="9704b9b6de0982a588fa41741157d5640afedf30"
_tiny_commit="839ff806dc447ff49af80f9a9eaa7949f770f8e5"
create_wrksrc=yes
From 5825f11fbff7ecee5cedae79f1dfd781202505d3 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Sat, 7 Jan 2023 11:31:14 +0100
Subject: [PATCH 13/17] qt5: rebuild for llvm15
---
srcpkgs/qt5/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/qt5/template b/srcpkgs/qt5/template
index 233596587525..bc9170215483 100644
--- a/srcpkgs/qt5/template
+++ b/srcpkgs/qt5/template
@@ -3,7 +3,7 @@ pkgname=qt5
version=5.15.7+20221119
# commit f8c9fb304bc3e53b3aa07f962cd74e9160decccc
# base repo: https://invent.kde.org/qt/qt/qt5
-revision=1
+revision=2
build_style=meta
hostmakedepends="cmake clang flex perl glib-devel pkg-config
python re2c ruby which"
From d6dbb936e1bda0d359501b2ec817f6eda1bc90dd Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Mon, 9 Jan 2023 01:22:18 +0100
Subject: [PATCH 14/17] codelite: rebuild for llvm15
---
srcpkgs/codelite/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/codelite/template b/srcpkgs/codelite/template
index 6b8b007c8a43..c6115e0274ce 100644
--- a/srcpkgs/codelite/template
+++ b/srcpkgs/codelite/template
@@ -1,7 +1,7 @@
# Template file for 'codelite'
pkgname=codelite
version=16.0.0
-revision=2
+revision=3
create_wrksrc=yes
build_style=cmake
build_helper=cmake-wxWidgets-gtk3
From 882017504c3adb0d2212d1c39588a6bdf2b65210 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Mon, 9 Jan 2023 01:58:21 +0100
Subject: [PATCH 15/17] kdevelop: rebuild for llvm15
---
srcpkgs/kdevelop/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/kdevelop/template b/srcpkgs/kdevelop/template
index 5eb275583138..c32ee5240a44 100644
--- a/srcpkgs/kdevelop/template
+++ b/srcpkgs/kdevelop/template
@@ -1,7 +1,7 @@
# Template file for 'kdevelop'
pkgname=kdevelop
version=22.12.1
-revision=1
+revision=2
build_style=cmake
configure_args="-DBUILD_TESTING=OFF"
hostmakedepends="extra-cmake-modules qt5-qmake qt5-host-tools qt5-tools
From 82d2c536d3bae552d5998ac0f8723b8d175da440 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Mon, 16 Jan 2023 14:43:47 +0100
Subject: [PATCH 16/17] zig: update to 0.10.1
---
.../0001-std.build-fix-handling-of-Dcpu.patch | 48 -------------------
srcpkgs/zig/template | 10 ++--
2 files changed, 6 insertions(+), 52 deletions(-)
delete mode 100644 srcpkgs/zig/patches/0001-std.build-fix-handling-of-Dcpu.patch
diff --git a/srcpkgs/zig/patches/0001-std.build-fix-handling-of-Dcpu.patch b/srcpkgs/zig/patches/0001-std.build-fix-handling-of-Dcpu.patch
deleted file mode 100644
index 4101f24459bb..000000000000
--- a/srcpkgs/zig/patches/0001-std.build-fix-handling-of-Dcpu.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From 1e8cdace7ad324a42228aeb5cd6eb8dd15429413 Mon Sep 17 00:00:00 2001
-From: Isaac Freund <ifreund@ifreund.xyz>
-Date: Tue, 21 Sep 2021 21:06:10 +0200
-Subject: [PATCH] std.build: fix handling of -Dcpu
-
-Currently -Dcpu is completely ignored if -Dtarget isn't passed as well.
-Further, -Dcpu=baseline is ignored even if -Dtarget=native is passed.
-
-This patch fixes these 2 issues, always respecting the -Dcpu option if
-present.
----
- lib/std/build.zig | 13 +++++++------
- 1 file changed, 7 insertions(+), 6 deletions(-)
-
-diff --git a/lib/std/build.zig b/lib/std/build.zig
-index 9b7ebb1f4..e398529f9 100644
---- a/lib/std/build.zig
-+++ b/lib/std/build.zig
-@@ -685,7 +685,11 @@ pub const Builder = struct {
- );
- const mcpu = self.option([]const u8, "cpu", "Target CPU");
-
-- const triple = maybe_triple orelse return args.default_target;
-+ if (maybe_triple == null and mcpu == null) {
-+ return args.default_target;
-+ }
-+
-+ const triple = maybe_triple orelse "native";
-
- var diags: CrossTarget.ParseOptions.Diagnostics = .{};
- const selected_target = CrossTarget.parse(.{
-@@ -2451,11 +2455,8 @@ pub const LibExeObjStep = struct {
-
- if (populated_cpu_features.eql(cross.cpu.features)) {
- // The CPU name alone is sufficient.
-- // If it is the baseline CPU, no command line args are required.
-- if (cross.cpu.model != std.Target.Cpu.baseline(cross.cpu.arch).model) {
-- try zig_args.append("-mcpu");
-- try zig_args.append(cross.cpu.model.name);
-- }
-+ try zig_args.append("-mcpu");
-+ try zig_args.append(cross.cpu.model.name);
- } else {
- var mcpu_buffer = std.ArrayList(u8).init(builder.allocator);
-
---
-2.33.1
-
diff --git a/srcpkgs/zig/template b/srcpkgs/zig/template
index 728c5a64e9df..9807f7ab206b 100644
--- a/srcpkgs/zig/template
+++ b/srcpkgs/zig/template
@@ -1,17 +1,19 @@
# Template file for 'zig'
pkgname=zig
-version=0.8.1
-revision=2
+version=0.10.1
+revision=1
archs="x86_64* aarch64*"
build_style=cmake
make_cmd=make
-makedepends="clang llvm12 lld-devel"
+# we add xml2, zstd, zlib and ncurses
+# because our lld is static-only and requires those to work
+makedepends="clang llvm15 lld-devel libxml2-devel libzstd-devel ncurses-devel zlib-devel"
short_desc="Programming language designed for robustness, optimality, and clarity"
maintainer="Isaac Freund <mail@isaacfreund.com>"
license="MIT"
homepage="https://ziglang.org"
distfiles="https://ziglang.org/download/${version}/zig-${version}.tar.xz"
-checksum=8c428e14a0a89cb7a15a6768424a37442292858cdb695e2eb503fa3c7bf47f1a
+checksum=69459bc804333df077d441ef052ffa143d53012b655a51f04cfef1414c04168c
nopie=yes
nocross=yes
From 3157fd6e358dc3cb8d610cea45050a93ae6c80e4 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Tue, 24 Jan 2023 14:03:51 +0100
Subject: [PATCH 17/17] river: update to 0.2.3
---
...ble-PIE-for-river-riverctl-rivertile.patch | 42 -------------------
srcpkgs/river/template | 10 ++---
2 files changed, 5 insertions(+), 47 deletions(-)
delete mode 100644 srcpkgs/river/patches/0001-Enable-PIE-for-river-riverctl-rivertile.patch
diff --git a/srcpkgs/river/patches/0001-Enable-PIE-for-river-riverctl-rivertile.patch b/srcpkgs/river/patches/0001-Enable-PIE-for-river-riverctl-rivertile.patch
deleted file mode 100644
index ecc68302db09..000000000000
--- a/srcpkgs/river/patches/0001-Enable-PIE-for-river-riverctl-rivertile.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From 759c1c7a915083f3da46960ff82fa2a3566a7065 Mon Sep 17 00:00:00 2001
-From: Isaac Freund <mail@isaacfreund.com>
-Date: Wed, 3 Nov 2021 14:21:35 +0100
-Subject: [PATCH] Enable PIE for river, riverctl, rivertile
-
-There is sadly not yet a standard way to do this exposed by the zig
-build system. See: https://github.com/ziglang/zig/issues/7201
----
- build.zig | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/build.zig b/build.zig
-index d561f49..8ac9a4e 100644
---- a/build.zig
-+++ b/build.zig
-@@ -85,6 +85,7 @@ pub fn build(b: *zbs.Builder) !void {
- const river = b.addExecutable("river", "river/main.zig");
- river.setTarget(target);
- river.setBuildMode(mode);
-+ river.pie = true;
- river.addBuildOption(bool, "xwayland", xwayland);
- river.addBuildOption([:0]const u8, "version", full_version);
-
-@@ -97,6 +98,7 @@ pub fn build(b: *zbs.Builder) !void {
- const riverctl = b.addExecutable("riverctl", "riverctl/main.zig");
- riverctl.setTarget(target);
- riverctl.setBuildMode(mode);
-+ riverctl.pie = true;
- riverctl.addBuildOption([:0]const u8, "version", full_version);
-
- riverctl.step.dependOn(&scanner.step);
-@@ -114,6 +116,7 @@ pub fn build(b: *zbs.Builder) !void {
- const rivertile = b.addExecutable("rivertile", "rivertile/main.zig");
- rivertile.setTarget(target);
- rivertile.setBuildMode(mode);
-+ rivertile.pie = true;
- rivertile.addBuildOption([:0]const u8, "version", full_version);
-
- rivertile.step.dependOn(&scanner.step);
---
-2.33.1
-
diff --git a/srcpkgs/river/template b/srcpkgs/river/template
index 3906858d507e..431aa4bd8e8e 100644
--- a/srcpkgs/river/template
+++ b/srcpkgs/river/template
@@ -1,18 +1,18 @@
# Template file for 'river'
pkgname=river
-version=0.1.1
-revision=2
+version=0.2.3
+revision=1
build_style=zig-build
-configure_args="$(vopt_if xwayland -Dxwayland)"
+configure_args="$(vopt_if xwayland -Dxwayland) -Dpie"
hostmakedepends="pkg-config wayland-devel scdoc"
-makedepends="wlroots0.15-devel libevdev-devel"
+makedepends="wlroots-devel libevdev-devel"
depends="$(vopt_if xwayland xorg-server-xwayland)"
short_desc="Dynamic tiling Wayland compositor"
maintainer="Isaac Freund <mail@isaacfreund.com>"
license="GPL-3.0-or-later"
homepage="https://github.com/riverwm/river"
distfiles="${homepage}/releases/download/v${version}/river-${version}.tar.gz"
-checksum=2a0bcd4670ed9ebd39c279f2bf10803fc65c9f3ee2307ce40728df23ce914d18
+checksum=7acdd2b929e16a20006b4baf1f29e7a8dc7f70cf5747e1503a610a90d1637132
build_options="xwayland"
build_options_default="xwayland"
^ permalink raw reply [flat|nested] 96+ messages in thread
* Re: [PR PATCH] [Updated] [WIP] LLVM 15
2022-11-28 15:30 [PR PATCH] [WIP] LLVM 15 tranzystorek-io
` (52 preceding siblings ...)
2023-01-24 13:15 ` tranzystorek-io
@ 2023-01-26 22:36 ` tranzystorek-io
2023-02-01 12:34 ` tranzystorek-io
` (40 subsequent siblings)
94 siblings, 0 replies; 96+ messages in thread
From: tranzystorek-io @ 2023-01-26 22:36 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 1154 bytes --]
There is an updated pull request by tranzystorek-io against master on the void-packages repository
https://github.com/tranzystorek-io/void-packages llvm15
https://github.com/void-linux/void-packages/pull/40821
[WIP] LLVM 15
[ci skip]
TODO:
- [ ] Adjust patches marked as `.patch.skip`
- [x] Make libomp a shlib (change so file name and install a symlink)
- [x] Avoid creating triplet dirs under /usr/
TODO LLVM rdeps:
- [ ] clazy (breaking changes in clang API)
- [x] beignet (https://github.com/void-linux/void-packages/pull/41529)
- [ ] ispc (1.18.1 supports LLVM `<= 14`)
- [ ] ldc (1.30.0 supports LLVM `<= 14`)
- [ ] ghdl (2.0.0 supports LLVM `<= 14`)
- [x] qt
- [ ] qtcreator (breaking changes in clang-format API)
- [ ] shiboken2 (tests failing with llvm15)
- [x] bpftrace (https://github.com/void-linux/void-packages/pull/39002)
- [ ] libclc (tests fail with unresolved calls https://gist.githubusercontent.com/tranzystorek-io/a2aa8a0d8010af5299f7d1ff9f82c22b/raw/6d316d99d6079990b73ae77d274dd120b9560589/LastTest.log)
- [x] zig
A patch file from https://github.com/void-linux/void-packages/pull/40821.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-llvm15-40821.patch --]
[-- Type: text/x-diff, Size: 84363 bytes --]
From bbe7cf961fd8f108538f804c4530f2db18bf1221 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Sun, 18 Dec 2022 00:36:59 +0100
Subject: [PATCH 01/17] New package: llvm15-15.0.7
---
common/shlibs | 3 +
srcpkgs/libllvm15 | 1 +
.../llvm15/files/llvm-Config-llvm-config.h | 9 +
...clang-001-fix-unwind-chain-inclusion.patch | 44 ++
.../patches/clang-002-add-musl-triples.patch | 110 +++++
.../clang-003-ppc64-dynamic-linker-path.patch | 13 +
.../patches/clang-004-ppc64-musl-elfv2.patch | 48 ++
.../compiler-rt-sanitizer-ppc64-musl.patch | 35 ++
.../compiler-rt-xray-ppc64-musl.patch.skip | 62 +++
srcpkgs/llvm15/patches/libcxx-musl.patch | 26 ++
srcpkgs/llvm15/patches/libcxx-ppc.patch | 22 +
.../llvm15/patches/libcxx-ssp-nonshared.patch | 11 +
srcpkgs/llvm15/patches/libcxxabi-dl.patch | 25 +
srcpkgs/llvm15/patches/libcxxabi-musl.patch | 37 ++
srcpkgs/llvm15/patches/libomp-soname.patch | 12 +
.../llvm15/patches/libunwind-ppc32.patch.skip | 63 +++
srcpkgs/llvm15/patches/lldb-musl.patch | 40 ++
srcpkgs/llvm15/patches/llvm-001-musl.patch | 57 +++
.../patches/llvm-002-musl-ppc64-elfv2.patch | 30 ++
.../patches/llvm-003-ppc-secureplt.patch | 11 +
.../patches/llvm-004-override-opt.patch | 18 +
.../llvm15/patches/llvm-005-ppc-bigpic.patch | 36 ++
.../patches/llvm-006-aarch64-mf_exec.patch | 25 +
srcpkgs/llvm15/template | 437 ++++++++++++++++++
srcpkgs/llvm15/update | 3 +
25 files changed, 1178 insertions(+)
create mode 120000 srcpkgs/libllvm15
create mode 100644 srcpkgs/llvm15/files/llvm-Config-llvm-config.h
create mode 100644 srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch
create mode 100644 srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch
create mode 100644 srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch
create mode 100644 srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch
create mode 100644 srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch
create mode 100644 srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip
create mode 100644 srcpkgs/llvm15/patches/libcxx-musl.patch
create mode 100644 srcpkgs/llvm15/patches/libcxx-ppc.patch
create mode 100644 srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch
create mode 100644 srcpkgs/llvm15/patches/libcxxabi-dl.patch
create mode 100644 srcpkgs/llvm15/patches/libcxxabi-musl.patch
create mode 100644 srcpkgs/llvm15/patches/libomp-soname.patch
create mode 100644 srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip
create mode 100644 srcpkgs/llvm15/patches/lldb-musl.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-001-musl.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-004-override-opt.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch
create mode 100644 srcpkgs/llvm15/template
create mode 100644 srcpkgs/llvm15/update
diff --git a/common/shlibs b/common/shlibs
index f632ce9c76da..da2aa877c210 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -992,6 +992,9 @@ libclang.so.12 libclang-12.0.0_1
libclang-cpp.so.12 libclang-cpp-12.0.0_1
libLLVM-11.so libllvm11-11.0.0_1
libLLVM-12.so libllvm12-12.0.0_1
+libLLVM-15.so libllvm15-15.0.7_1
+libomp.so.5 libomp-15.0.7_1
+libomptarget.so.15 libomp-15.0.7_1
libisofs.so.6 libisofs-0.6.24_1
libmpack.so.0 libmpack-1.0.5_1
libGeoIP.so.1 libgeoip-1.4.8_1
diff --git a/srcpkgs/libllvm15 b/srcpkgs/libllvm15
new file mode 120000
index 000000000000..ad57a969b9f9
--- /dev/null
+++ b/srcpkgs/libllvm15
@@ -0,0 +1 @@
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm15/files/llvm-Config-llvm-config.h b/srcpkgs/llvm15/files/llvm-Config-llvm-config.h
new file mode 100644
index 000000000000..2fa08c9be696
--- /dev/null
+++ b/srcpkgs/llvm15/files/llvm-Config-llvm-config.h
@@ -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
diff --git a/srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch b/srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch
new file mode 100644
index 000000000000..e4eaa7783e7a
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch
@@ -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
diff --git a/srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch b/srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch
new file mode 100644
index 000000000000..25688d40dbc2
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch
@@ -0,0 +1,110 @@
+--- a/clang/lib/Driver/ToolChains/Gnu.cpp
++++ b/clang/lib/Driver/ToolChains/Gnu.cpp
+@@ -2086,7 +2086,8 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
+ static const char *const ARMHFTriples[] = {"arm-linux-gnueabihf",
+ "armv7hl-redhat-linux-gnueabi",
+ "armv6hl-suse-linux-gnueabi",
+- "armv7hl-suse-linux-gnueabi"};
++ "armv7hl-suse-linux-gnueabi",
++ "armv7l-linux-gnueabihf"};
+ static const char *const ARMebLibDirs[] = {"/lib"};
+ static const char *const ARMebTriples[] = {"armeb-linux-gnueabi",
+ "armeb-linux-androideabi"};
+@@ -2153,8 +2154,7 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
+ "powerpc64-suse-linux", "powerpc-montavista-linuxspe"};
+ static const char *const PPCLELibDirs[] = {"/lib32", "/lib"};
+ static const char *const PPCLETriples[] = {"powerpcle-linux-gnu",
+- "powerpcle-unknown-linux-gnu",
+- "powerpcle-linux-musl"};
++ "powerpcle-unknown-linux-gnu"};
+
+ static const char *const PPC64LibDirs[] = {"/lib64", "/lib"};
+ static const char *const PPC64Triples[] = {
+@@ -2235,6 +2235,87 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
+ return;
+ }
+
++ if (TargetTriple.isMusl()) {
++ static const char *const AArch64MuslTriples[] = {"aarch64-linux-musl"};
++ static const char *const ARMHFMuslTriples[] = {
++ "arm-linux-musleabihf", "armv7l-linux-musleabihf"
++ };
++ static const char *const ARMMuslTriples[] = {"arm-linux-musleabi"};
++ static const char *const X86_64MuslTriples[] = {"x86_64-linux-musl"};
++ static const char *const X86MuslTriples[] = {"i686-linux-musl"};
++ static const char *const MIPSMuslTriples[] = {
++ "mips-linux-musl", "mipsel-linux-musl",
++ "mipsel-linux-muslhf", "mips-linux-muslhf"
++ };
++ static const char *const PPCMuslTriples[] = {"powerpc-linux-musl"};
++ static const char *const PPCLEMuslTriples[] = {"powerpcle-linux-musl"};
++ static const char *const PPC64MuslTriples[] = {"powerpc64-linux-musl"};
++ static const char *const PPC64LEMuslTriples[] = {"powerpc64le-linux-musl"};
++
++ switch (TargetTriple.getArch()) {
++ case llvm::Triple::aarch64:
++ LibDirs.append(begin(AArch64LibDirs), end(AArch64LibDirs));
++ TripleAliases.append(begin(AArch64MuslTriples), end(AArch64MuslTriples));
++ BiarchLibDirs.append(begin(AArch64LibDirs), end(AArch64LibDirs));
++ BiarchTripleAliases.append(begin(AArch64MuslTriples), end(AArch64MuslTriples));
++ break;
++ case llvm::Triple::arm:
++ LibDirs.append(begin(ARMLibDirs), end(ARMLibDirs));
++ if (TargetTriple.getEnvironment() == llvm::Triple::MuslEABIHF) {
++ TripleAliases.append(begin(ARMHFMuslTriples), end(ARMHFMuslTriples));
++ } else {
++ TripleAliases.append(begin(ARMMuslTriples), end(ARMMuslTriples));
++ }
++ break;
++ case llvm::Triple::x86_64:
++ LibDirs.append(begin(X86_64LibDirs), end(X86_64LibDirs));
++ TripleAliases.append(begin(X86_64MuslTriples), end(X86_64MuslTriples));
++ BiarchLibDirs.append(begin(X86LibDirs), end(X86LibDirs));
++ BiarchTripleAliases.append(begin(X86MuslTriples), end(X86MuslTriples));
++ break;
++ case llvm::Triple::x86:
++ LibDirs.append(begin(X86LibDirs), end(X86LibDirs));
++ TripleAliases.append(begin(X86MuslTriples), end(X86MuslTriples));
++ BiarchLibDirs.append(begin(X86_64LibDirs), end(X86_64LibDirs));
++ BiarchTripleAliases.append(begin(X86_64MuslTriples), end(X86_64MuslTriples));
++ break;
++ case llvm::Triple::mips:
++ LibDirs.append(begin(MIPSLibDirs), end(MIPSLibDirs));
++ TripleAliases.append(begin(MIPSMuslTriples), end(MIPSMuslTriples));
++ break;
++ case llvm::Triple::ppc:
++ LibDirs.append(begin(PPCLibDirs), end(PPCLibDirs));
++ TripleAliases.append(begin(PPCMuslTriples), end(PPCMuslTriples));
++ BiarchLibDirs.append(begin(PPC64LibDirs), end(PPC64LibDirs));
++ BiarchTripleAliases.append(begin(PPC64MuslTriples), end(PPC64MuslTriples));
++ break;
++ case llvm::Triple::ppcle:
++ LibDirs.append(begin(PPCLELibDirs), end(PPCLELibDirs));
++ TripleAliases.append(begin(PPCLEMuslTriples), end(PPCLEMuslTriples));
++ BiarchLibDirs.append(begin(PPC64LELibDirs), end(PPC64LELibDirs));
++ BiarchTripleAliases.append(begin(PPC64LEMuslTriples), end(PPC64LEMuslTriples));
++ break;
++ case llvm::Triple::ppc64:
++ LibDirs.append(begin(PPC64LibDirs), end(PPC64LibDirs));
++ TripleAliases.append(begin(PPC64MuslTriples), end(PPC64MuslTriples));
++ BiarchLibDirs.append(begin(PPCLibDirs), end(PPCLibDirs));
++ BiarchTripleAliases.append(begin(PPCMuslTriples), end(PPCMuslTriples));
++ break;
++ case llvm::Triple::ppc64le:
++ LibDirs.append(begin(PPC64LELibDirs), end(PPC64LELibDirs));
++ TripleAliases.append(begin(PPC64LEMuslTriples), end(PPC64LEMuslTriples));
++ BiarchLibDirs.append(begin(PPCLELibDirs), end(PPCLELibDirs));
++ BiarchTripleAliases.append(begin(PPCLEMuslTriples), end(PPCLEMuslTriples));
++ break;
++ default:
++ break;
++ }
++ TripleAliases.push_back(TargetTriple.str());
++ if (TargetTriple.str() != BiarchTriple.str())
++ BiarchTripleAliases.push_back(BiarchTriple.str());
++ return;
++ }
++
+ // Android targets should not use GNU/Linux tools or libraries.
+ if (TargetTriple.isAndroid()) {
+ static const char *const AArch64AndroidTriples[] = {
diff --git a/srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch b/srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch
new file mode 100644
index 000000000000..4ad6412d1e6c
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch
@@ -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 =
diff --git a/srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch b/srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch
new file mode 100644
index 000000000000..21fc8003c5f1
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch
@@ -0,0 +1,48 @@
+--- a/clang/lib/Basic/Targets/PPC.h
++++ b/clang/lib/Basic/Targets/PPC.h
+@@ -415,11 +415,10 @@ public:
+ LongDoubleFormat = &llvm::APFloat::IEEEdouble();
+ } else if ((Triple.getArch() == llvm::Triple::ppc64le)) {
+ DataLayout = "e-m:e-i64:64-n32:64";
+- ABI = "elfv2";
+ } else {
+ DataLayout = "E-m:e-i64:64-n32:64";
+- ABI = "elfv1";
+ }
++ ABI = "elfv2";
+
+ if (Triple.isOSFreeBSD() || Triple.isOSOpenBSD() || Triple.isMusl()) {
+ LongDoubleWidth = LongDoubleAlign = 64;
+--- a/clang/lib/CodeGen/TargetInfo.cpp
++++ b/clang/lib/CodeGen/TargetInfo.cpp
+@@ -10927,9 +10927,9 @@ const TargetCodeGenInfo &CodeGenModule::getTargetCodeGenInfo() {
+ return SetCGInfo(new AIXTargetCodeGenInfo(Types, /*Is64Bit*/ true));
+
+ if (Triple.isOSBinFormatELF()) {
+- PPC64_SVR4_ABIInfo::ABIKind Kind = PPC64_SVR4_ABIInfo::ELFv1;
+- if (getTarget().getABI() == "elfv2")
+- Kind = PPC64_SVR4_ABIInfo::ELFv2;
++ PPC64_SVR4_ABIInfo::ABIKind Kind = PPC64_SVR4_ABIInfo::ELFv2;
++ if (getTarget().getABI() == "elfv1")
++ Kind = PPC64_SVR4_ABIInfo::ELFv1;
+ bool IsSoftFloat = CodeGenOpts.FloatABI == "soft";
+
+ return SetCGInfo(
+--- a/clang/lib/Driver/ToolChains/Clang.cpp
++++ b/clang/lib/Driver/ToolChains/Clang.cpp
+@@ -1920,14 +1920,7 @@ void Clang::AddPPCTargetArgs(const ArgList &Args,
+ const llvm::Triple &T = getToolChain().getTriple();
+ if (T.isOSBinFormatELF()) {
+ switch (getToolChain().getArch()) {
+- case llvm::Triple::ppc64: {
+- if ((T.isOSFreeBSD() && T.getOSMajorVersion() >= 13) ||
+- T.isOSOpenBSD() || T.isMusl())
+- ABIName = "elfv2";
+- else
+- ABIName = "elfv1";
+- break;
+- }
++ case llvm::Triple::ppc64:
+ case llvm::Triple::ppc64le:
+ ABIName = "elfv2";
+ break;
diff --git a/srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch b/srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch
new file mode 100644
index 000000000000..360cfc1ba7f1
--- /dev/null
+++ b/srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch
@@ -0,0 +1,35 @@
+--- 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__) || SANITIZER_RISCV64
++ defined(__hexagon__) || defined(__powerpc__) || 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_ANDROID
++#if (defined(__aarch64__) || defined(__powerpc__) || SANITIZER_RISCV64) && !SANITIZER_ANDROID
+ // GLIBC 2.20+ sys/user does not include asm/ptrace.h
+ # include <asm/ptrace.h>
+ #endif
diff --git a/srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip b/srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip
new file mode 100644
index 000000000000..d0b61c80c897
--- /dev/null
+++ b/srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip
@@ -0,0 +1,62 @@
+--- a/compiler-rt/lib/xray/xray_powerpc64.inc
++++ b/compiler-rt/lib/xray/xray_powerpc64.inc
+@@ -12,7 +12,13 @@
+
+ #include <cstdint>
+ #include <mutex>
++#ifdef __GLIBC__
+ #include <sys/platform/ppc.h>
++#else
++#include <cctype>
++#include <cstring>
++#include <cstdlib>
++#endif
+
+ #include "xray_defs.h"
+
+@@ -20,13 +26,45 @@ namespace __xray {
+
+ ALWAYS_INLINE uint64_t readTSC(uint8_t &CPU) XRAY_NEVER_INSTRUMENT {
+ CPU = 0;
++#ifdef __GLIBC__
+ return __ppc_get_timebase();
++#else
++ return __builtin_ppc_get_timebase();
++#endif
+ }
+
+ inline uint64_t getTSCFrequency() XRAY_NEVER_INSTRUMENT {
+ static std::mutex M;
+ std::lock_guard<std::mutex> Guard(M);
++#ifdef __GLIBC__
+ return __ppc_get_timebase_freq();
++#else
++ /* FIXME: a less dirty implementation? */
++ static uint64_t base;
++ if (!base) {
++ FILE *f = fopen("/proc/cpuinfo", "rb");
++ if (f) {
++ ssize_t nr;
++ /* virtually always big enough to hold the line */
++ char buf[512];
++ while (fgets(buf, sizeof(buf), f)) {
++ char *ret = strstr(buf, "timebase");
++ if (!ret) {
++ continue;
++ }
++ ret += sizeof("timebase") - 1;
++ ret = strchr(ret, ':');
++ if (!ret) {
++ continue;
++ }
++ base = strtoul(ret + 1, nullptr, 10);
++ break;
++ }
++ fclose(f);
++ }
++ }
++ return base;
++#endif
+ }
+
+ inline bool probeRequiredCPUFeatures() XRAY_NEVER_INSTRUMENT {
diff --git a/srcpkgs/llvm15/patches/libcxx-musl.patch b/srcpkgs/llvm15/patches/libcxx-musl.patch
new file mode 100644
index 000000000000..bbd31ffc2cb1
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxx-musl.patch
@@ -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,
+ typename remove_reference<decltype(errno)>::type __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
+ typename remove_reference<decltype(errno)>::type __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,
+ typename remove_reference<decltype(errno)>::type __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
+ typename remove_reference<decltype(errno)>::type __current_errno = errno;
+ if (__current_errno == 0)
+ errno = __save_errno;
diff --git a/srcpkgs/llvm15/patches/libcxx-ppc.patch b/srcpkgs/llvm15/patches/libcxx-ppc.patch
new file mode 100644
index 000000000000..7a92f8004e1c
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxx-ppc.patch
@@ -0,0 +1,22 @@
+This ensures `is_iec559` is defined correctly under all long double ABIs,
+including musl and its 64-bit long double. Also, `__ppc__` or `__ppc64__`
+is not defined on gcc.
+
+--- a/libcxx/include/limits
++++ b/libcxx/include/limits
+@@ -426,8 +426,14 @@ protected:
+ _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type signaling_NaN() _NOEXCEPT {return __builtin_nansl("");}
+ _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type denorm_min() _NOEXCEPT {return __LDBL_DENORM_MIN__;}
+
+-#if (defined(__ppc__) || defined(__ppc64__))
++#if defined(__powerpc__) || defined(__powerpc64__)
++#if (__LDBL_MAX_EXP__ > __DBL_MAX_EXP__) || (__LDBL_MANT_DIG__ == __DBL_MANT_DIG__)
++ /* IEEE 754 quadruple or double precision */
++ static _LIBCPP_CONSTEXPR const bool is_iec559 = true;
++#else
++ /* 128-bit IBM double-double */
+ static _LIBCPP_CONSTEXPR const bool is_iec559 = false;
++#endif
+ #else
+ static _LIBCPP_CONSTEXPR const bool is_iec559 = true;
+ #endif
diff --git a/srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch b/srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch
new file mode 100644
index 000000000000..70292beb2fcd
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch
@@ -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()
diff --git a/srcpkgs/llvm15/patches/libcxxabi-dl.patch b/srcpkgs/llvm15/patches/libcxxabi-dl.patch
new file mode 100644
index 000000000000..3a15f9db8c98
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxxabi-dl.patch
@@ -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 @@
+ target_link_libraries(${target} PRIVATE m)
+ endif()
+
++ if (LIBCXX_HAS_C_LIB)
++ target_link_libraries(${target} PRIVATE dl)
++ endif()
++
+ if (LIBCXX_HAS_RT_LIB)
+ target_link_libraries(${target} PRIVATE rt)
+ endif()
diff --git a/srcpkgs/llvm15/patches/libcxxabi-musl.patch b/srcpkgs/llvm15/patches/libcxxabi-musl.patch
new file mode 100644
index 000000000000..55bf6f5aaa08
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxxabi-musl.patch
@@ -0,0 +1,37 @@
+diff --git a/libcxx/include/__support/musl/xlocale.h b/libcxx/include/__support/musl/xlocale.h
+index e674a41fa..f546119b9 100644
+--- a/libcxx/include/__support/musl/xlocale.h
++++ b/libcxx/include/__support/musl/xlocale.h
+@@ -24,27 +24,27 @@
+ extern "C" {
+ #endif
+
+-inline _LIBCPP_HIDE_FROM_ABI long long
++static inline long long
+ strtoll_l(const char *__nptr, char **__endptr, int __base, locale_t) {
+ return ::strtoll(__nptr, __endptr, __base);
+ }
+
+-inline _LIBCPP_HIDE_FROM_ABI unsigned long long
++static inline unsigned long long
+ strtoull_l(const char *__nptr, char **__endptr, int __base, locale_t) {
+ return ::strtoull(__nptr, __endptr, __base);
+ }
+
+-inline _LIBCPP_HIDE_FROM_ABI long long
++static inline long long
+ wcstoll_l(const wchar_t *__nptr, wchar_t **__endptr, int __base, locale_t) {
+ return ::wcstoll(__nptr, __endptr, __base);
+ }
+
+-inline _LIBCPP_HIDE_FROM_ABI unsigned long long
++static inline unsigned long long
+ wcstoull_l(const wchar_t *__nptr, wchar_t **__endptr, int __base, locale_t) {
+ return ::wcstoull(__nptr, __endptr, __base);
+ }
+
+-inline _LIBCPP_HIDE_FROM_ABI long double
++static inline long double
+ wcstold_l(const wchar_t *__nptr, wchar_t **__endptr, locale_t) {
+ return ::wcstold(__nptr, __endptr);
+ }
diff --git a/srcpkgs/llvm15/patches/libomp-soname.patch b/srcpkgs/llvm15/patches/libomp-soname.patch
new file mode 100644
index 000000000000..9a622cd9254c
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libomp-soname.patch
@@ -0,0 +1,12 @@
+diff --git a/openmp/runtime/src/CMakeLists.txt b/openmp/runtime/src/CMakeLists.txt
+index df1ca9d90..9d2c3b7b9 100644
+--- a/openmp/runtime/src/CMakeLists.txt
++++ b/openmp/runtime/src/CMakeLists.txt
+@@ -150,6 +150,7 @@ libomp_get_libflags(LIBOMP_CONFIGURED_LIBFLAGS)
+ # Build libomp library. Add LLVMSupport dependency if building in-tree with libomptarget profiling enabled.
+ if(OPENMP_STANDALONE_BUILD OR (NOT OPENMP_ENABLE_LIBOMP_PROFILING))
+ add_library(omp ${LIBOMP_LIBRARY_KIND} ${LIBOMP_SOURCE_FILES})
++ set_target_properties(omp PROPERTIES VERSION ${LIBOMP_VERSION_MAJOR} SOVERSION ${LIBOMP_VERSION_MAJOR})
+ # Linking command will include libraries in LIBOMP_CONFIGURED_LIBFLAGS
+ target_link_libraries(omp ${LIBOMP_CONFIGURED_LIBFLAGS} ${LIBOMP_DL_LIBS})
+ else()
diff --git a/srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip b/srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip
new file mode 100644
index 000000000000..74aa7576ecf9
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip
@@ -0,0 +1,63 @@
+This fixes build at least with gcc9 which does not define `__ppc__`.
+
+--- a/libunwind/include/__libunwind_config.h
++++ b/libunwind/include/__libunwind_config.h
+@@ -49,7 +49,7 @@
+ # define _LIBUNWIND_CONTEXT_SIZE 167
+ # define _LIBUNWIND_CURSOR_SIZE 179
+ # define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_PPC64
+-# elif defined(__ppc__)
++# elif defined(__powerpc__)
+ # define _LIBUNWIND_TARGET_PPC 1
+ # define _LIBUNWIND_CONTEXT_SIZE 117
+ # define _LIBUNWIND_CURSOR_SIZE 124
+--- a/libunwind/src/UnwindRegistersRestore.S
++++ b/libunwind/src/UnwindRegistersRestore.S
+@@ -392,7 +392,7 @@ Lnovec:
+ PPC64_LR(3)
+ bctr
+
+-#elif defined(__ppc__)
++#elif defined(__powerpc__)
+
+ DEFINE_LIBUNWIND_FUNCTION(_ZN9libunwind13Registers_ppc6jumptoEv)
+ //
+--- a/libunwind/src/UnwindRegistersSave.S
++++ b/libunwind/src/UnwindRegistersSave.S
+@@ -554,7 +554,7 @@ DEFINE_LIBUNWIND_FUNCTION(__unw_getcontext)
+ blr
+
+
+-#elif defined(__ppc__)
++#elif defined(__powerpc__)
+
+ //
+ // extern int unw_getcontext(unw_context_t* thread_state)
+--- a/libunwind/src/config.h
++++ b/libunwind/src/config.h
+@@ -95,12 +95,12 @@
+ #define _LIBUNWIND_BUILD_SJLJ_APIS
+ #endif
+
+-#if defined(__i386__) || defined(__x86_64__) || defined(__ppc__) || defined(__ppc64__) || defined(__powerpc64__)
++#if defined(__i386__) || defined(__x86_64__) || defined(__powerpc__) || defined(__powerpc64__)
+ #define _LIBUNWIND_SUPPORT_FRAME_APIS
+ #endif
+
+ #if defined(__i386__) || defined(__x86_64__) || \
+- defined(__ppc__) || defined(__ppc64__) || defined(__powerpc64__) || \
++ defined(__powerpc__) || defined(__powerpc64__) || \
+ (!defined(__APPLE__) && defined(__arm__)) || \
+ (defined(__arm64__) || defined(__aarch64__)) || \
+ defined(__mips__)
+--- a/libunwind/src/libunwind.cpp
++++ b/libunwind/src/libunwind.cpp
+@@ -42,7 +42,7 @@ _LIBUNWIND_HIDDEN int __unw_init_local(unw_cursor_t *cursor,
+ # define REGISTER_KIND Registers_x86_64
+ #elif defined(__powerpc64__)
+ # define REGISTER_KIND Registers_ppc64
+-#elif defined(__ppc__)
++#elif defined(__powerpc__)
+ # define REGISTER_KIND Registers_ppc
+ #elif defined(__aarch64__)
+ # define REGISTER_KIND Registers_arm64
diff --git a/srcpkgs/llvm15/patches/lldb-musl.patch b/srcpkgs/llvm15/patches/lldb-musl.patch
new file mode 100644
index 000000000000..026c5e1e61ba
--- /dev/null
+++ b/srcpkgs/llvm15/patches/lldb-musl.patch
@@ -0,0 +1,40 @@
+--- a/lldb/source/Plugins/Process/Linux/Procfs.h
++++ b/lldb/source/Plugins/Process/Linux/Procfs.h
+@@ -10,6 +10,7 @@
+ // sys/procfs.h on Android/Linux for all supported architectures.
+
+ #include <sys/ptrace.h>
++#include <asm/ptrace.h>
+
+ #include "lldb/lldb-types.h"
+
+@@ -17,23 +18,13 @@
+
+ #include <vector>
+
+-#ifdef __ANDROID__
+-#if defined(__arm64__) || defined(__aarch64__)
+-typedef unsigned long elf_greg_t;
+-typedef elf_greg_t
+- elf_gregset_t[(sizeof(struct user_pt_regs) / sizeof(elf_greg_t))];
+-typedef struct user_fpsimd_state elf_fpregset_t;
+-#ifndef NT_FPREGSET
+-#define NT_FPREGSET NT_PRFPREG
+-#endif // NT_FPREGSET
+-#elif defined(__mips__)
+-#ifndef NT_FPREGSET
+-#define NT_FPREGSET NT_PRFPREG
+-#endif // NT_FPREGSET
+-#endif
+-#else // __ANDROID__
++#if !defined(__GLIBC__) && defined(__powerpc__)
++#define pt_regs musl_pt_regs
++#include <sys/procfs.h>
++#undef pt_regs
++#else
+ #include <sys/procfs.h>
+-#endif // __ANDROID__
++#endif
+
+ namespace lldb_private {
+ namespace process_linux {
diff --git a/srcpkgs/llvm15/patches/llvm-001-musl.patch b/srcpkgs/llvm15/patches/llvm-001-musl.patch
new file mode 100644
index 000000000000..f2a3f8d62813
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-001-musl.patch
@@ -0,0 +1,57 @@
+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;
+diff --git a/lib/Support/Unix/DynamicLibrary.inc b/lib/Support/Unix/DynamicLibrary.inc
+index a2a37996..2f86c470 100644
+--- a/llvm/lib/Support/Unix/DynamicLibrary.inc
++++ b/llvm/lib/Support/Unix/DynamicLibrary.inc
+@@ -102,7 +102,7 @@ static void *DoSearch(const char* SymbolName) {
+
+ // This macro returns the address of a well-known, explicit symbol
+ #define EXPLICIT_SYMBOL(SYM) \
+- if (!strcmp(SymbolName, #SYM)) return &SYM
++ if (!strcmp(SymbolName, #SYM)) return (void *)&SYM
+
+ // Under glibc we have a weird situation. The stderr/out/in symbols are both
+ // macros and global variables because of standards requirements. So, we
+diff --git a/utils/unittest/googletest/src/gtest.cc b/utils/unittest/googletest/src/gtest.cc
+index d882ab2e..f1fb12d0 100644
+--- a/llvm/utils/unittest/googletest/src/gtest.cc
++++ b/llvm/utils/unittest/googletest/src/gtest.cc
+@@ -128,6 +128,7 @@
+
+ #if GTEST_CAN_STREAM_RESULTS_
+ # include <arpa/inet.h> // NOLINT
++# include <sys/socket.h> // NOLINT
+ # include <netdb.h> // NOLINT
+ # include <sys/socket.h> // NOLINT
+ # include <sys/types.h> // NOLINT
diff --git a/srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch b/srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch
new file mode 100644
index 000000000000..0071d964bd37
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch
@@ -0,0 +1,30 @@
+This patches LLVM to use ELFv2 on ppc64 unconditionally unless overridden. We
+need this because unlike most distros we use ELFv2 for both glibc and musl
+on big endian ppc64.
+
+diff --git a/lib/Target/PowerPC/PPCTargetMachine.cpp b/lib/Target/PowerPC/PPCTargetMachine.cpp
+index 0634833e..b7cbc2e7 100644
+--- a/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp
++++ b/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp
+@@ -222,9 +222,8 @@ static PPCTargetMachine::PPCABI computeTargetABI(const Triple &TT,
+
+ switch (TT.getArch()) {
+ case Triple::ppc64le:
+- return PPCTargetMachine::PPC_ABI_ELFv2;
+ case Triple::ppc64:
+- return PPCTargetMachine::PPC_ABI_ELFv1;
++ return PPCTargetMachine::PPC_ABI_ELFv2;
+ default:
+ return PPCTargetMachine::PPC_ABI_UNKNOWN;
+ }
+diff --git a/test/CodeGen/PowerPC/ppc64-elf-abi.ll b/test/CodeGen/PowerPC/ppc64-elf-abi.ll
+index 8b1cf6b5..296a2afa 100644
+--- a/llvm/test/CodeGen/PowerPC/ppc64-elf-abi.ll
++++ b/llvm/test/CodeGen/PowerPC/ppc64-elf-abi.ll
+@@ -1,4 +1,5 @@
+-; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv1
++; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv2
++; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-musl < %s | FileCheck %s -check-prefix=CHECK-ELFv2
+ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu -target-abi elfv1 < %s | FileCheck %s -check-prefix=CHECK-ELFv1
+ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu -target-abi elfv2 < %s | FileCheck %s -check-prefix=CHECK-ELFv2
+ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv2
diff --git a/srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch b/srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch
new file mode 100644
index 000000000000..b5d15974375d
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch
@@ -0,0 +1,11 @@
+--- a/llvm/lib/Target/PowerPC/PPCSubtarget.cpp
++++ b/llvm/lib/Target/PowerPC/PPCSubtarget.cpp
+@@ -165,7 +165,7 @@ void PPCSubtarget::initSubtargetFeatures(StringRef CPU, StringRef FS) {
+
+ if ((TargetTriple.isOSFreeBSD() && TargetTriple.getOSMajorVersion() >= 13) ||
+ TargetTriple.isOSNetBSD() || TargetTriple.isOSOpenBSD() ||
+- TargetTriple.isMusl())
++ isTargetLinux())
+ SecurePlt = true;
+
+ if (HasSPE && IsPPC64)
diff --git a/srcpkgs/llvm15/patches/llvm-004-override-opt.patch b/srcpkgs/llvm15/patches/llvm-004-override-opt.patch
new file mode 100644
index 000000000000..51d0e4b31b32
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-004-override-opt.patch
@@ -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)
diff --git a/srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch b/srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch
new file mode 100644
index 000000000000..d332687b9d92
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch
@@ -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);
diff --git a/srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch b/srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch
new file mode 100644
index 000000000000..a00abd216665
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch
@@ -0,0 +1,25 @@
+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__) || defined (__ppc__) || \
+- defined(_POWER) || defined(_ARCH_PPC))
++ defined(_POWER) || defined(_ARCH_PPC) || (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
diff --git a/srcpkgs/llvm15/template b/srcpkgs/llvm15/template
new file mode 100644
index 000000000000..92dadb185a7a
--- /dev/null
+++ b/srcpkgs/llvm15/template
@@ -0,0 +1,437 @@
+# Template file for 'llvm15'
+pkgname=llvm15
+version=15.0.7
+revision=1
+build_wrksrc=llvm
+build_style=cmake
+_ext_suffix=".cpython-${py3_ver/./}-linux-${XBPS_TARGET_LIBC/glibc/gnu}.so"
+configure_args="
+ -DCMAKE_BUILD_TYPE=Release -Wno-dev
+ -DENABLE_LINKER_BUILD_ID=YES
+ -DLLDB_USE_SYSTEM_SIX=YES
+ -DLIBCXX_CXX_ABI=libcxxabi
+ -DLIBCXX_ENABLE_STATIC_ABI_LIBRARY=YES
+ -DLIBCXXABI_USE_LLVM_UNWINDER=YES
+ -DLIBCXXABI_ENABLE_STATIC_UNWINDER=YES
+ -DLIBOMP_ENABLE_SHARED=YES
+ -DLIBOMP_INSTALL_ALIASES=NO
+ -DLLVM_INCLUDE_DOCS=YES
+ -DLLVM_BUILD_DOCS=YES
+ -DLLVM_ENABLE_SPHINX=YES
+ -DSPHINX_WARNINGS_AS_ERRORS=NO
+ -DLLVM_INSTALL_UTILS=YES
+ -DLLVM_BUILD_LLVM_DYLIB=YES
+ -DLLVM_LINK_LLVM_DYLIB=YES
+ -DLLVM_ENABLE_RTTI=YES
+ -DLLVM_ENABLE_FFI=YES
+ -DLLVM_BINUTILS_INCDIR=/usr/include
+ -DLLVM_ENABLE_PER_TARGET_RUNTIME_DIR=NO
+ -DLLDB_PYTHON_RELATIVE_PATH=lib/python${py3_ver}/site-packages
+ -DLLDB_PYTHON_EXE_RELATIVE_PATH=bin/python${py3_ver}
+ -DLLDB_PYTHON_EXT_SUFFIX=$_ext_suffix"
+hostmakedepends="perl python3 zlib-devel libffi-devel swig python3-Sphinx
+ python3-recommonmark python3-sphinx-automodapi"
+makedepends="python3-devel zlib-devel elfutils-devel libffi-devel libedit-devel
+ libxml2-devel binutils-devel libatomic-devel"
+depends="libllvm15>=${version}_${revision}"
+short_desc="Low Level Virtual Machine"
+maintainer="Orphaned <orphan@voidlinux.org>"
+license="Apache-2.0"
+homepage="https://www.llvm.org"
+distfiles="https://github.com/llvm/llvm-project/releases/download/llvmorg-${version}/llvm-project-${version}.src.tar.xz"
+checksum=8b5fcb24b4128cf04df1b0b9410ce8b1a729cb3c544e6da885d234280dedeac6
+lib32disabled=yes
+python_version=3
+
+if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
+ configure_args+=" -DLIBCXX_HAS_MUSL_LIBC=YES
+ -DCOMPILER_RT_BUILD_GWP_ASAN=OFF"
+fi
+
+# "operand out of range" assembler failures
+case "$XBPS_TARGET_MACHINE" in
+ ppc64*) ;;
+ ppc*) configure_args+=" -DCLANG_ENABLE_CLANGD=OFF" ;;
+esac
+
+_enabled_projects="clang;clang-tools-extra;compiler-rt;libcxx;libcxxabi;libunwind;lld"
+
+_lldb_enable=yes
+_libomp_enable=no
+
+case "$XBPS_TARGET_MACHINE" in
+ ppc64le*) ;;
+ ppc*|i686*|riscv64*) _lldb_enable=no ;;
+esac
+
+case "$XBPS_TARGET_MACHINE" in
+ x86_64*|aarch64*|ppc64*) _libomp_enable=yes;;
+esac
+
+subpackages="clang-tools-extra"
+
+# must go before clang
+if [ "$_libomp_enable" = "yes" ]; then
+ _enabled_projects+=";openmp"
+ subpackages+=" libomp libomp-devel"
+ # because of cmake nonsense referencing libomptarget.so.*
+ depends+=" libomp>=${version}_${revision}"
+fi
+
+subpackages+=" clang clang-analyzer libclang libclang-cpp
+ llvm-libunwind llvm-libunwind-devel libcxx libcxx-devel
+ libcxxabi libcxxabi-devel libllvm15"
+
+if [ "$_lldb_enable" = "yes" ]; then
+ # XXX fails to cross compile due to python
+ _enabled_projects+=";lldb"
+ subpackages+=" lldb lldb-devel"
+fi
+
+subpackages+=" lld lld-devel"
+
+configure_args+=" -DLLVM_ENABLE_PROJECTS=${_enabled_projects}"
+
+post_patch() {
+ if [ "$_lldb_enable" = "yes" ]; then
+ if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
+ vsed -i 's|__ptrace_request|int|g' \
+ ${wrksrc}/lldb/source/Plugins/Process/Linux/NativeProcessLinux.cpp
+ fi
+ # disable docs for lldb as they fail to generate
+ vsed -i '/add_subdirectory(docs)/d' \
+ ${wrksrc}/lldb/CMakeLists.txt
+ fi
+
+ # update config.guess for better platform detection
+ cp $XBPS_COMMONDIR/environment/configure/automake/config.guess \
+ ${wrksrc}/llvm/cmake
+
+ # fix linker failures on some archs
+ vsed -i 's,check_library_exists(gcc_s .*,set(LIBCXXABI_HAS_GCC_S_LIB ON),' \
+ ${wrksrc}/libcxxabi/cmake/config-ix.cmake
+ vsed -i 's,check_library_exists(gcc .*,set(LIBCXXABI_HAS_GCC_LIB ON),' \
+ ${wrksrc}/libcxxabi/cmake/config-ix.cmake
+
+ # need libssp_nonshared on some musl platforms (because of nodefaultlibs)
+ case "$XBPS_TARGET_MACHINE" in
+ ppc64*) ;;
+ ppc*-musl|i686-musl|mips*-musl)
+ vsed -i 's,^# Setup flags.$,add_library_flags(ssp_nonshared),' \
+ ${wrksrc}/libunwind/src/CMakeLists.txt
+ vsed -i 's,^# Setup flags.$,add_library_flags(ssp_nonshared),' \
+ ${wrksrc}/libcxxabi/src/CMakeLists.txt
+ vsed -i 's,#ssp,,' ${wrksrc}/libcxx/CMakeLists.txt
+ ;;
+ esac
+
+ case "$XBPS_TARGET_MACHINE" in
+ arm*-musl|i686-musl) # sanitizer code is broken since it duplicates some libc bits
+ vsed -i 's/set(COMPILER_RT_HAS_SANITIZER_COMMON TRUE)/set(COMPILER_RT_HAS_SANITIZER_COMMON FALSE)/' \
+ ${wrksrc}/compiler-rt/cmake/config-ix.cmake
+ ;;
+ esac
+}
+
+pre_configure() {
+ local triplet
+
+ # Vastly reduce size of debugging symbols:
+ CFLAGS=${CFLAGS/ -g/ -g1}
+ CXXFLAGS=${CXXFLAGS/ -g/ -g1}
+
+ # since gcc9, the build likes to blow up for ppc32 apparently because
+ # of clang being too large for a 24-bit relative call to the PLT, so
+ # optimize for size instead
+ case "$XBPS_TARGET_MACHINE" in
+ ppc64*) ;;
+ mips*-musl|ppc*) configure_args+=" -DVOID_CXX_OPT_FLAGS=-Os" ;;
+ esac
+
+ if [ "$CROSS_BUILD" ]; then
+ msg_normal "Building host tblgen\n"
+ mkdir -p build/HOST
+ cd build/HOST
+ CC="$BUILD_CC" CXX="$BUILD_CXX" CFLAGS="$BUILD_CFLAGS" \
+ CXXFLAGS="$BUILD_CXXFLAGS" LDFLAGS="$BUILD_LDFLAGS" \
+ cmake ../.. -DCMAKE_BUILD_TYPE=Release \
+ -DLLVM_ENABLE_PROJECTS=${_enabled_projects}
+ make ${makejobs} -C utils/TableGen
+ make ${makejobs} -C tools/clang/utils/TableGen
+ make ${makejobs} -C tools/clang/tools/extra/clang-tidy/misc/ConfusableTable
+ make ${makejobs} -C tools/clang/tools/extra/pseudo/gen
+ [ "$_lldb_enable" = "yes" ] && make ${makejobs} -C tools/lldb/utils/TableGen
+ configure_args+=" -DLLVM_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/llvm-tblgen"
+ configure_args+=" -DCLANG_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/clang-tblgen"
+ configure_args+=" -DCLANG_TIDY_CONFUSABLE_CHARS_GEN=${wrksrc}/llvm/build/HOST/bin/clang-tidy-confusable-chars-gen"
+ configure_args+=" -DCLANG_PSEUDO_GEN=${wrksrc}/llvm/build/HOST/bin/clang-pseudo-gen"
+ [ "$_lldb_enable" = "yes" ] && configure_args+=" -DLLDB_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/lldb-tblgen"
+ cd ../..
+ fi
+
+ case "$XBPS_TARGET_MACHINE" in
+ i686*) _arch="X86";;
+ x86_64*) _arch="X86";;
+ armv5*) _arch="Armv5te";;
+ armv6*) _arch="Armv6";;
+ armv7*) _arch="Armv7";;
+ aarch64*) _arch="AArch64";;
+ mips*) _arch="Mips";;
+ ppc*) _arch="PowerPC";;
+ riscv64*) _arch="RISCV64";;
+ esac
+
+ triplet=${XBPS_CROSS_TRIPLET:-$XBPS_TRIPLET}
+
+ configure_args+=" -DLLVM_TARGET_ARCH=${_arch}"
+ configure_args+=" -DLLVM_HOST_TRIPLE=${triplet}"
+ configure_args+=" -DLLVM_DEFAULT_TARGET_TRIPLE=${triplet}"
+}
+
+do_install() {
+ cd build
+ cmake -DCMAKE_INSTALL_PREFIX=${DESTDIR}/usr -P cmake_install.cmake
+
+ # Required for multilib.
+ if [ "$XBPS_TARGET_MACHINE" = "x86_64" ]; then
+ for _header in llvm-config; do
+ mv ${DESTDIR}/usr/include/llvm/Config/${_header}{,-64}.h
+ vinstall ${FILESDIR}/llvm-Config-${_header}.h 644 \
+ usr/include/llvm/Config ${_header}.h
+ done
+ fi
+
+ # Remove llvm-config-host in cross builds.
+ if [ "$CROSS_BUILD" ]; then
+ rm -f ${DESTDIR}/usr/bin/llvm-config-host
+ fi
+
+ # Install libcxxabi headers
+ vinstall ${wrksrc}/libcxxabi/include/__cxxabi_config.h 644 usr/include
+ vinstall ${wrksrc}/libcxxabi/include/cxxabi.h 644 usr/include
+
+ # Install libunwind headers
+ vinstall ${wrksrc}/libunwind/include/__libunwind_config.h 644 usr/include
+ vinstall ${wrksrc}/libunwind/include/libunwind.h 644 usr/include
+ vinstall ${wrksrc}/libunwind/include/unwind.h 644 usr/include
+ vinstall ${wrksrc}/libunwind/include/mach-o/compact_unwind_encoding.h \
+ 644 usr/include/mach-o
+}
+
+clang-analyzer_package() {
+ pycompile_dirs="usr/share/scan-view"
+ depends="clang-${version}_${revision} python3 perl"
+ short_desc+=" - A source code analysis framework"
+ homepage="https://clang-analyzer.llvm.org/"
+ pkg_install() {
+ vmove "usr/bin/scan-*"
+ vmove "usr/libexec/*analyzer"
+ vmove "usr/share/scan-*"
+ vmove usr/share/man/man1/scan-build.1
+ }
+}
+
+clang-tools-extra_package() {
+ lib32disabled=yes
+ depends="clang-${version}_${revision} python3"
+ short_desc+=" - Extra Clang tools"
+ homepage="https://clang.llvm.org/extra/"
+ pkg_install() {
+ vmove usr/bin/clang-apply-replacements
+ vmove usr/bin/clang-doc
+ vmove usr/bin/clang-include-fixer
+ vmove usr/bin/clang-query
+ vmove usr/bin/clang-rename
+ vmove usr/bin/clang-reorder-fields
+ vmove usr/bin/clang-tidy
+ vmove usr/bin/clangd
+ vmove usr/bin/diagtool
+ vmove usr/bin/find-all-symbols
+ vmove usr/bin/hmaptool
+ vmove usr/bin/modularize
+ vmove usr/bin/pp-trace
+ vmove usr/bin/sancov
+ vmove usr/include/clang-tidy
+ vmove "usr/lib/libclangApplyReplacements*"
+ vmove "usr/lib/libclangDoc*"
+ vmove "usr/lib/libclangIncludeFixer*"
+ vmove "usr/lib/libclangReorderFields*"
+ vmove "usr/lib/libclangQuery*"
+ vmove "usr/lib/libclangTidy*"
+ vmove "usr/share/clang/*include-fixer*"
+ vmove "usr/share/clang/*rename*"
+ vmove "usr/share/clang/*tidy*"
+ vmove usr/share/doc/LLVM/clang-tools
+ vmove usr/share/man/man1/diagtool.1
+ vmove usr/share/man/man1/extraclangtools.1
+ }
+}
+
+clang_package() {
+ lib32disabled=yes
+ depends="libstdc++-devel libgcc-devel binutils ${XBPS_TARGET_LIBC}-devel
+ libclang-${version}_${revision}"
+ short_desc+=" - C language family frontend"
+ homepage="https://clang.llvm.org/"
+ pkg_install() {
+ vmove "usr/bin/*clang*"
+ vmove usr/bin/c-index-test
+ vmove usr/include/clang
+ vmove usr/include/clang-c
+ vmove usr/lib/clang
+ vmove usr/lib/cmake/clang
+ vmove "usr/lib/libclang*.a"
+ vmove "usr/lib/libclang*.so"
+ vmove usr/share/clang
+ vmove usr/share/doc/LLVM/clang
+ vmove usr/share/man/man1/clang.1
+ }
+}
+
+libclang_package() {
+ short_desc+=" - C frontend runtime library"
+ pkg_install() {
+ vmove "usr/lib/libclang.so.*"
+ }
+}
+
+libclang-cpp_package() {
+ short_desc+=" - C frontend runtime library (C++ interface)"
+ pkg_install() {
+ vmove "usr/lib/libclang-cpp.so.*"
+ }
+}
+
+lld_package() {
+ lib32disabled=yes
+ short_desc+=" - linker"
+ homepage="https://lld.llvm.org"
+ pkg_install() {
+ vmove "usr/bin/ld.lld*"
+ vmove "usr/bin/ld64.lld*"
+ vmove "usr/bin/lld*"
+ vmove usr/bin/wasm-ld
+ vmove usr/share/doc/LLVM/lld
+ }
+}
+
+lld-devel_package() {
+ lib32disabled=yes
+ short_desc+=" - linker - development files"
+ homepage="https://lld.llvm.org"
+ depends="lld>=${version}_${revision}"
+ pkg_install() {
+ vmove usr/include/lld
+ vmove usr/lib/cmake/lld
+ vmove "usr/lib/liblld*a"
+ }
+}
+
+lldb_package() {
+ lib32disabled=yes
+ depends+=" python3-six"
+ short_desc+=" - LLDB debugger"
+ homepage="https://lldb.llvm.org/"
+ pkg_install() {
+ vmove "usr/bin/*lldb*"
+ vmove "usr/lib/liblldb*so.*"
+ vmove usr/lib/python*
+ }
+}
+
+lldb-devel_package() {
+ lib32disabled=yes
+ depends="lldb>=${version}_${revision}"
+ short_desc+=" - LLDB debugger - development files"
+ pkg_install() {
+ vmove usr/include/lldb
+ vmove "usr/lib/liblldb*.so"
+ }
+}
+
+llvm-libunwind_package() {
+ short_desc+=" - libunwind"
+ pkg_install() {
+ vmove "usr/lib/libunwind.so.*"
+ }
+}
+
+llvm-libunwind-devel_package() {
+ short_desc+=" - libunwind - development files"
+ depends="llvm-libunwind>=${version}_${revision}"
+ conflicts="libunwind-devel>=0"
+ pkg_install() {
+ vmove usr/include/mach-o
+ vmove "usr/include/*unwind*"
+ vmove "usr/lib/libunwind.a"
+ vmove "usr/lib/libunwind.so"
+ vmove usr/share/doc/LLVM/libunwind
+ }
+}
+
+libcxxabi_package() {
+ short_desc+=" - low level support for libc++"
+ pkg_install() {
+ vmove "usr/lib/libc++abi.so.*"
+ }
+}
+
+libcxxabi-devel_package() {
+ short_desc+=" - low level support for libc++ - development files"
+ depends="libcxxabi>=${version}_${revision}"
+ pkg_install() {
+ vmove "usr/include/*cxxabi*"
+ vmove "usr/lib/libc++abi.so"
+ vmove "usr/lib/libc++abi.a"
+ }
+}
+
+libcxx_package() {
+ short_desc+=" - C++ standard library"
+ pkg_install() {
+ vmove "usr/lib/libc++.so.*"
+ }
+}
+
+libcxx-devel_package() {
+ short_desc+=" - C++ standard library - development files"
+ depends="libcxx>=${version}_${revision}"
+ pkg_install() {
+ vmove usr/include/c++
+ vmove "usr/lib/libc++.so"
+ vmove "usr/lib/libc++.a"
+ vmove "usr/lib/libc++experimental.a"
+ vmove usr/share/doc/LLVM/libcxx
+ }
+}
+
+libomp_package() {
+ short_desc+=" - Clang OpenMP support library"
+ pkg_install() {
+ vmove usr/lib/libarcher.so
+ vmove usr/lib/libompd.so
+ vmove "usr/lib/libomptarget.rtl.*.so"
+ vmove "usr/lib/libomp*.so.*"
+ }
+}
+
+libomp-devel_package() {
+ short_desc+=" - Clang OpenMP support library - development files"
+ depends="libomp>=${version}_${revision}"
+ pkg_install() {
+ vmove "usr/include/omp*.h"
+ vmove "usr/lib/clang/${version}/include/omp*.h"
+ vmove "usr/lib/libarcher*"
+ vmove "usr/lib/libomp*.so"
+ vmove usr/lib/cmake/openmp
+ vmove usr/share/doc/LLVM/openmp
+ vmove usr/share/man/man1/llvmopenmp.1
+ }
+}
+
+libllvm15_package() {
+ short_desc+=" - runtime library"
+ pkg_install() {
+ vmove "usr/lib/libLLVM-*.so*"
+ }
+}
diff --git a/srcpkgs/llvm15/update b/srcpkgs/llvm15/update
new file mode 100644
index 000000000000..e95cf26b3586
--- /dev/null
+++ b/srcpkgs/llvm15/update
@@ -0,0 +1,3 @@
+site="https://github.com/llvm/llvm-project/releases"
+pattern="llvmorg-\K(\d+.){2}\d+(-rc\d+)?"
+ignore="*-rc*"
From 7853d525c75847c4ab2d85f9ef664df3360a985d Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Sun, 18 Dec 2022 00:40:18 +0100
Subject: [PATCH 02/17] llvm: update to 15
---
common/shlibs | 6 +++---
srcpkgs/clang | 2 +-
srcpkgs/clang-analyzer | 2 +-
srcpkgs/clang-tools-extra | 2 +-
srcpkgs/libclang | 2 +-
srcpkgs/libclang-cpp | 2 +-
srcpkgs/libcxx | 2 +-
srcpkgs/libcxx-devel | 2 +-
srcpkgs/libcxxabi | 2 +-
srcpkgs/libcxxabi-devel | 2 +-
srcpkgs/libomp | 2 +-
srcpkgs/libomp-devel | 2 +-
srcpkgs/lld | 2 +-
srcpkgs/lld-devel | 2 +-
srcpkgs/lldb | 2 +-
srcpkgs/lldb-devel | 2 +-
srcpkgs/llvm-libunwind | 2 +-
srcpkgs/llvm-libunwind-devel | 2 +-
srcpkgs/llvm/template | 6 +++---
19 files changed, 23 insertions(+), 23 deletions(-)
diff --git a/common/shlibs b/common/shlibs
index da2aa877c210..5daf973dab55 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -987,9 +987,9 @@ 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.12 lldb-12.0.0_1
-libclang.so.12 libclang-12.0.0_1
-libclang-cpp.so.12 libclang-cpp-12.0.0_1
+liblldb.so.15 lldb-15.0.7_1
+libclang.so.15 libclang-15.0.7_1
+libclang-cpp.so.15 libclang-cpp-15.0.7_1
libLLVM-11.so libllvm11-11.0.0_1
libLLVM-12.so libllvm12-12.0.0_1
libLLVM-15.so libllvm15-15.0.7_1
diff --git a/srcpkgs/clang b/srcpkgs/clang
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/clang
+++ b/srcpkgs/clang
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/clang-analyzer b/srcpkgs/clang-analyzer
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/clang-analyzer
+++ b/srcpkgs/clang-analyzer
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/clang-tools-extra b/srcpkgs/clang-tools-extra
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/clang-tools-extra
+++ b/srcpkgs/clang-tools-extra
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libclang b/srcpkgs/libclang
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libclang
+++ b/srcpkgs/libclang
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libclang-cpp b/srcpkgs/libclang-cpp
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libclang-cpp
+++ b/srcpkgs/libclang-cpp
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxx b/srcpkgs/libcxx
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxx
+++ b/srcpkgs/libcxx
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxx-devel b/srcpkgs/libcxx-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxx-devel
+++ b/srcpkgs/libcxx-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxxabi b/srcpkgs/libcxxabi
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxxabi
+++ b/srcpkgs/libcxxabi
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxxabi-devel b/srcpkgs/libcxxabi-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxxabi-devel
+++ b/srcpkgs/libcxxabi-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libomp b/srcpkgs/libomp
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libomp
+++ b/srcpkgs/libomp
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libomp-devel b/srcpkgs/libomp-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libomp-devel
+++ b/srcpkgs/libomp-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lld b/srcpkgs/lld
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lld
+++ b/srcpkgs/lld
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lld-devel b/srcpkgs/lld-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lld-devel
+++ b/srcpkgs/lld-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lldb b/srcpkgs/lldb
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lldb
+++ b/srcpkgs/lldb
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lldb-devel b/srcpkgs/lldb-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lldb-devel
+++ b/srcpkgs/lldb-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm-libunwind b/srcpkgs/llvm-libunwind
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/llvm-libunwind
+++ b/srcpkgs/llvm-libunwind
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm-libunwind-devel b/srcpkgs/llvm-libunwind-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/llvm-libunwind-devel
+++ b/srcpkgs/llvm-libunwind-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm/template b/srcpkgs/llvm/template
index a92db6f94f9f..fc1c850bd26f 100644
--- a/srcpkgs/llvm/template
+++ b/srcpkgs/llvm/template
@@ -1,11 +1,11 @@
# Template file for 'llvm'
pkgname=llvm
-version=12.0.0
+version=15
revision=1
build_style=meta
-depends="llvm12"
-replaces="llvm11>=0 llvm10>=0 llvm9>=0 llvm8>=0 llvm7>=0 llvm6.0>=0 llvm3.9>=0"
+depends="llvm15"
short_desc="LLVM meta package"
maintainer="Enno Boland <gottox@voidlinux.org>"
license="Public Domain"
homepage="https://www.voidlinux.org"
+replaces="llvm12>=0 llvm11>=0 llvm10>=0 llvm9>=0 llvm8>=0 llvm7>=0 llvm6.0>=0 llvm3.9>=0"
From 8c6685104cbb075102d2c98edc7b151d644ef099 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Sun, 18 Dec 2022 12:20:08 +0100
Subject: [PATCH 03/17] llvm12: remove bumped subpackages
---
srcpkgs/llvm12/template | 264 +---------------------------------------
1 file changed, 1 insertion(+), 263 deletions(-)
diff --git a/srcpkgs/llvm12/template b/srcpkgs/llvm12/template
index f8ea3ba641ae..aea0b43cf573 100644
--- a/srcpkgs/llvm12/template
+++ b/srcpkgs/llvm12/template
@@ -50,55 +50,7 @@ case "$XBPS_TARGET_MACHINE" in
ppc*) configure_args+=" -DCLANG_ENABLE_CLANGD=OFF" ;;
esac
-_enabled_projects="clang;clang-tools-extra;compiler-rt;libcxx;libcxxabi;libunwind;lld"
-
-_lldb_enable=yes
-_libomp_enable=no
-
-case "$XBPS_TARGET_MACHINE" in
- ppc64le*) ;;
- ppc*|i686*) _lldb_enable=no ;;
-esac
-
-case "$XBPS_TARGET_MACHINE" in
- x86_64*|aarch64*|ppc64*) _libomp_enable=yes;;
-esac
-
-subpackages="clang-tools-extra"
-
-# must go before clang
-if [ "$_libomp_enable" = "yes" ]; then
- _enabled_projects+=";openmp"
- subpackages+=" libomp libomp-devel"
- # because of cmake nonsense referencing libomptarget.so.*
- depends+=" libomp>=${version}_${revision}"
-fi
-
-subpackages+=" clang clang-analyzer libclang libclang-cpp
- llvm-libunwind llvm-libunwind-devel libcxx libcxx-devel
- libcxxabi libcxxabi-devel libllvm12"
-
-if [ "$_lldb_enable" = "yes" ]; then
- # XXX fails to cross compile due to python
- _enabled_projects+=";lldb"
- subpackages+=" lldb lldb-devel"
-fi
-
-subpackages+=" lld lld-devel"
-
-configure_args+=" -DLLVM_ENABLE_PROJECTS=${_enabled_projects}"
-
post_patch() {
- if [ "$_lldb_enable" = "yes" ]; then
- if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
- vsed -i 's|__ptrace_request|int|g' \
- ${wrksrc}/lldb/source/Plugins/Process/Linux/NativeProcessLinux.cpp
- fi
- # disable docs for lldb as they fail to generate
- vsed -i '/add_subdirectory(docs)/d' \
- ${wrksrc}/lldb/CMakeLists.txt
- fi
-
# update config.guess for better platform detection
cp $XBPS_COMMONDIR/environment/configure/automake/config.guess \
${wrksrc}/llvm/cmake
@@ -154,14 +106,12 @@ pre_configure() {
cd build/HOST
CC="$BUILD_CC" CXX="$BUILD_CXX" CFLAGS="$BUILD_CFLAGS" \
CXXFLAGS="$BUILD_CXXFLAGS" LDFLAGS="$BUILD_LDFLAGS" \
- cmake ../.. -DCMAKE_BUILD_TYPE=Release \
- -DLLVM_ENABLE_PROJECTS=${_enabled_projects}
+ cmake ../.. -DCMAKE_BUILD_TYPE=Release
make ${makejobs} -C utils/TableGen
make ${makejobs} -C tools/clang/utils/TableGen
[ "$_lldb_enable" = "yes" ] && make ${makejobs} -C tools/lldb/utils/TableGen
configure_args+=" -DLLVM_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/llvm-tblgen"
configure_args+=" -DCLANG_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/clang-tblgen"
- [ "$_lldb_enable" = "yes" ] && configure_args+=" -DLLDB_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/lldb-tblgen"
cd ../..
fi
@@ -201,218 +151,6 @@ do_install() {
if [ "$CROSS_BUILD" ]; then
rm -f ${DESTDIR}/usr/bin/llvm-config-host
fi
-
- # Install libcxxabi headers
- vinstall ${wrksrc}/libcxxabi/include/__cxxabi_config.h 644 usr/include
- vinstall ${wrksrc}/libcxxabi/include/cxxabi.h 644 usr/include
-
- # Install libunwind headers
- vinstall ${wrksrc}/libunwind/include/__libunwind_config.h 644 usr/include
- vinstall ${wrksrc}/libunwind/include/libunwind.h 644 usr/include
- vinstall ${wrksrc}/libunwind/include/unwind.h 644 usr/include
- vinstall ${wrksrc}/libunwind/include/mach-o/compact_unwind_encoding.h \
- 644 usr/include/mach-o
-}
-
-clang-analyzer_package() {
- pycompile_dirs="usr/share/scan-view"
- depends="clang-${version}_${revision} python3 perl"
- short_desc+=" - A source code analysis framework"
- homepage="https://clang-analyzer.llvm.org/"
- pkg_install() {
- vmove usr/share/man/man1/scan-build.1
- vmove "/usr/bin/scan-*"
- vmove "/usr/share/scan-*"
- vmove "/usr/libexec/*analyzer"
- }
-}
-
-clang-tools-extra_package() {
- lib32disabled=yes
- depends="clang-${version}_${revision} python3"
- short_desc+=" - Extra Clang tools"
- homepage="https://clang.llvm.org/extra/"
- pkg_install() {
- vmove usr/include/clang-tidy
- vmove usr/bin/clang-apply-replacements
- vmove usr/bin/clang-query
- vmove usr/bin/clang-rename
- vmove usr/bin/clang-tidy
- vmove usr/bin/diagtool
- vmove usr/bin/find-all-symbols
- vmove usr/bin/hmaptool
- vmove usr/bin/modularize
- vmove usr/bin/pp-trace
- vmove usr/bin/sancov
- vmove "usr/lib/libclangApplyReplacements*"
- vmove "usr/lib/libclangQuery*"
- vmove "usr/lib/libclangTidy*"
- vmove "usr/share/clang/*tidy*"
- vmove usr/share/doc/clang-tools
- vmove usr/share/man/man1/extraclangtools.1
- vmove usr/share/man/man1/diagtool.1
- }
-}
-
-clang_package() {
- lib32disabled=yes
- depends="libstdc++-devel libgcc-devel binutils ${XBPS_TARGET_LIBC}-devel
- libclang-${version}_${revision}"
- short_desc+=" - C language family frontend"
- homepage="https://clang.llvm.org/"
- pkg_install() {
- vmove usr/include/clang
- vmove usr/include/clang-c
- vmove "usr/bin/*clang*"
- vmove usr/bin/c-index-test
- vmove usr/lib/clang
- vmove usr/lib/cmake/clang
- vmove "usr/lib/libclang*.a"
- vmove "usr/lib/libclang*.so"
- vmove usr/share/clang
- vmove usr/share/doc/clang
- vmove usr/share/man/man1/clang.1
- }
-}
-
-libclang_package() {
- short_desc+=" - C frontend runtime library"
- pkg_install() {
- vmove "usr/lib/libclang.so.*"
- }
-}
-
-libclang-cpp_package() {
- short_desc+=" - C frontend runtime library (C++ interface)"
- pkg_install() {
- vmove "usr/lib/libclang-cpp.so.*"
- }
-}
-
-lld_package() {
- lib32disabled=yes
- short_desc+=" - linker"
- homepage="https://lld.llvm.org"
- pkg_install() {
- vmove usr/bin/lld*
- vmove usr/bin/wasm-ld
- vmove usr/bin/ld.lld*
- vmove usr/bin/ld64.lld*
- vmove usr/share/doc/lld
- }
-}
-
-lld-devel_package() {
- lib32disabled=yes
- short_desc+=" - linker - development files"
- homepage="https://lld.llvm.org"
- depends="lld>=${version}_${revision}"
- pkg_install() {
- vmove usr/include/lld
- vmove usr/lib/cmake/lld
- vmove "usr/lib/liblld*a"
- }
-}
-
-lldb_package() {
- lib32disabled=yes
- depends+=" python3-six"
- short_desc+=" - LLDB debugger"
- homepage="https://lldb.llvm.org/"
- pkg_install() {
- vmove usr/bin/*lldb*
- vmove usr/lib/liblldb*so.*
- vmove /usr/lib/python*
- }
-}
-
-lldb-devel_package() {
- lib32disabled=yes
- depends="lldb>=${version}_${revision}"
- short_desc+=" - LLDB debugger - development files"
- pkg_install() {
- vmove usr/include/lldb
- vmove "usr/lib/liblldb*.so"
- }
-}
-
-llvm-libunwind_package() {
- short_desc+=" - libunwind"
- pkg_install() {
- vmove "usr/lib/libunwind.so.*"
- }
-}
-
-llvm-libunwind-devel_package() {
- short_desc+=" - libunwind - development files"
- depends="llvm-libunwind>=${version}_${revision}"
- conflicts="libunwind-devel>=0"
- pkg_install() {
- vmove usr/lib/libunwind.so
- vmove usr/lib/libunwind.a
- vmove "usr/include/*unwind*"
- vmove usr/include/mach-o
- vmove usr/share/doc/libunwind
- }
-}
-
-libcxxabi_package() {
- short_desc+=" - low level support for libc++"
- pkg_install() {
- vmove "usr/lib/libc++abi.so.*"
- }
-}
-
-libcxxabi-devel_package() {
- short_desc+=" - low level support for libc++ - development files"
- depends="libcxxabi>=${version}_${revision}"
- pkg_install() {
- vmove usr/lib/libc++abi.so
- vmove usr/lib/libc++abi.a
- vmove "usr/include/*cxxabi*"
- }
-}
-
-libcxx_package() {
- short_desc+=" - C++ standard library"
- pkg_install() {
- vmove "usr/lib/libc++.so.*"
- }
-}
-
-libcxx-devel_package() {
- short_desc+=" - C++ standard library - development files"
- depends="libcxx>=${version}_${revision}"
- pkg_install() {
- vmove usr/lib/libc++.so
- vmove usr/lib/libc++.a
- vmove usr/lib/libc++experimental.a
- vmove usr/include/c++
- vmove usr/share/doc/libcxx
- }
-}
-
-libomp_package() {
- short_desc+=" - Clang OpenMP support library"
- pkg_install() {
- vmove usr/lib/libomp.so
- vmove "usr/lib/libomptarget.rtl.*.so"
- vmove usr/lib/libarcher.so
- vmove "usr/lib/libomp*.so.*"
- }
-}
-
-libomp-devel_package() {
- short_desc+=" - Clang OpenMP support library - development files"
- depends="libomp>=${version}_${revision}"
- pkg_install() {
- vmove "usr/lib/libomp*.so"
- vmove "usr/lib/libarcher*"
- vmove "usr/include/omp*.h"
- vmove "usr/lib/clang/${version}/include/omp*.h"
- vmove usr/share/man/man1/llvmopenmp.1
- vmove usr/share/doc/openmp
- }
}
libllvm12_package() {
From 7060f61e5f0053f2ff34faab9a56588fcb708980 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:27:03 +0100
Subject: [PATCH 04/17] mesa: rebuild for llvm15
---
srcpkgs/mesa/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/mesa/template b/srcpkgs/mesa/template
index 4c3c9ec6039e..0641b28a80d6 100644
--- a/srcpkgs/mesa/template
+++ b/srcpkgs/mesa/template
@@ -1,7 +1,7 @@
# Template file for 'mesa'
pkgname=mesa
version=22.2.4
-revision=2
+revision=3
build_style=meson
configure_args="-Dglvnd=true -Dshared-glapi=enabled -Dgbm=enabled -Degl=enabled
-Dosmesa=true -Dgles1=enabled -Dgles2=enabled -Dglx=dri -Ddri3=enabled
From 8f6d72a1f00df718496c9f01153c33e4bfc4c638 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:34:04 +0100
Subject: [PATCH 05/17] bcc: rebuild for llvm15
---
srcpkgs/bcc/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/bcc/template b/srcpkgs/bcc/template
index 7526580f17ed..bdbcff7227a0 100644
--- a/srcpkgs/bcc/template
+++ b/srcpkgs/bcc/template
@@ -1,7 +1,7 @@
# Template file for 'bcc'
pkgname=bcc
version=0.26.0
-revision=2
+revision=3
build_style=cmake
configure_args="-DREVISION=${version} -DENABLE_LLVM_SHARED=1"
hostmakedepends="flex python3-setuptools"
From 2b2d4892c68a5340bfc8dceb69691349b771464f Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:37:25 +0100
Subject: [PATCH 06/17] bpftrace: rebuild for llvm15
---
srcpkgs/bpftrace/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/bpftrace/template b/srcpkgs/bpftrace/template
index 857815d29eef..47f2b5e77024 100644
--- a/srcpkgs/bpftrace/template
+++ b/srcpkgs/bpftrace/template
@@ -1,7 +1,7 @@
# Template file for 'bpftrace'
pkgname=bpftrace
version=0.16.0
-revision=1
+revision=2
archs="x86_64* aarch64* ppc64*"
build_style=cmake
configure_args="-DBUILD_TESTING=OFF" # needs root to run
From 3ca686046113a34305de995cfef7e79c84ba16f7 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:43:53 +0100
Subject: [PATCH 07/17] CastXML: rebuild for llvm15
---
srcpkgs/CastXML/template | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/srcpkgs/CastXML/template b/srcpkgs/CastXML/template
index 5d7d9503658c..28c424c78073 100644
--- a/srcpkgs/CastXML/template
+++ b/srcpkgs/CastXML/template
@@ -1,7 +1,7 @@
# Template file for 'CastXML'
pkgname=CastXML
version=0.4.6
-revision=1
+revision=2
build_style=cmake
configure_args="-DSPHINX_MAN=YES -DCastXML_INSTALL_MAN_DIR=share/man"
hostmakedepends="clang python3-Sphinx"
@@ -12,8 +12,8 @@ short_desc="C-family abstract syntax tree XML output tool"
maintainer="Evgeny Ermakov <evgeny.v.ermakov@gmail.com>"
license="Apache-2.0"
homepage="https://github.com/CastXML/CastXML"
-distfiles="https://github.com/CastXML/CastXML/archive/v${version}.tar.gz"
-checksum=8dcdbc1f23a130e4bdb0b09f57c30761a02a346b4db4037555048af2a293d66a
+distfiles="https://github.com/CastXML/CastXML/archive/refs/tags/v${version}.tar.gz"
+checksum=bb9024ec9ea5082e0d527f19bf3c2df79f1699f54b6cec168c024e727b32e6d1
post_install() {
rm -r ${DESTDIR}/usr/share/castxml/clang/include
From 5123fb69d4643183c26e6f7261434cc857de43c4 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:48:55 +0100
Subject: [PATCH 08/17] ccls: rebuild for llvm15
---
srcpkgs/ccls/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/ccls/template b/srcpkgs/ccls/template
index 82fa61933878..ecc9f3e38a5d 100644
--- a/srcpkgs/ccls/template
+++ b/srcpkgs/ccls/template
@@ -1,7 +1,7 @@
# Template file for 'ccls'
pkgname=ccls
version=0.20220729
-revision=1
+revision=2
build_style=cmake
hostmakedepends="clang-tools-extra"
makedepends="clang-tools-extra libxml2-devel llvm ncurses-devel rapidjson zlib-devel"
From dc52939b29e63252cd754d781ba9c0dc16f4da72 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:52:14 +0100
Subject: [PATCH 09/17] include-what-you-use: update to 0.19
---
srcpkgs/include-what-you-use/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/include-what-you-use/template b/srcpkgs/include-what-you-use/template
index d3655709c20c..1a30bc04bb2d 100644
--- a/srcpkgs/include-what-you-use/template
+++ b/srcpkgs/include-what-you-use/template
@@ -1,6 +1,6 @@
# Template file for 'include-what-you-use'
pkgname=include-what-you-use
-version=0.16
+version=0.19
revision=1
build_style=cmake
configure_args="-DIWYU_LLVM_ROOT_PATH=${XBPS_CROSS_BASE}/usr "
@@ -11,7 +11,7 @@ maintainer="Leah Neukirchen <leah@vuxu.org>"
license="NCSA"
homepage="https://include-what-you-use.org/"
distfiles="https://include-what-you-use.org/downloads/${pkgname}-${version}.src.tar.gz"
-checksum=8d6fc9b255343bc1e5ec459e39512df1d51c60e03562985e0076036119ff5a1c
+checksum=2b10157b60ea08adc08e3896b4921c73fcadd5ec4eb652b29a34129d501e5ee0
python_version=3
post_install() {
From 7b4af1f616fb98e350a77b99a50ccade2316e6e0 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 15:11:06 +0100
Subject: [PATCH 10/17] SPIRV-LLVM-Translator: update to 15.0.0
---
srcpkgs/SPIRV-LLVM-Translator/template | 13 +++++++------
1 file changed, 7 insertions(+), 6 deletions(-)
diff --git a/srcpkgs/SPIRV-LLVM-Translator/template b/srcpkgs/SPIRV-LLVM-Translator/template
index a2754e58c0e8..bee99f9bcbb2 100644
--- a/srcpkgs/SPIRV-LLVM-Translator/template
+++ b/srcpkgs/SPIRV-LLVM-Translator/template
@@ -1,19 +1,20 @@
# Template file for 'SPIRV-LLVM-Translator'
pkgname=SPIRV-LLVM-Translator
-version=12.0.0
-revision=2
+version=15.0.0
+revision=1
build_style=cmake
make_build_args="llvm-spirv"
configure_args="-Wno-dev -DLLVM_LINK_LLVM_DYLIB=ON -DCMAKE_SKIP_RPATH=ON
- -DLLVM_SPIRV_INCLUDE_TESTS=OFF -DBUILD_SHARED_LIBS=ON"
+ -DLLVM_SPIRV_INCLUDE_TESTS=OFF -DBUILD_SHARED_LIBS=ON
+ -DLLVM_EXTERNAL_SPIRV_HEADERS_SOURCE_DIR=/usr"
hostmakedepends="clang llvm"
-makedepends="clang-tools-extra llvm"
+makedepends="clang-tools-extra llvm SPIRV-Headers"
short_desc="API and commands for processing SPIR-V modules"
maintainer="Orphaned <orphan@voidlinux.org>"
license="NCSA"
homepage="https://github.com/KhronosGroup/SPIRV-LLVM-Translator"
-distfiles="https://github.com/KhronosGroup/${pkgname}/archive/refs/tags/v${version}.tar.gz"
-checksum=6e4fad04203f25fcde4c308c53e9f59bd05a390978992db3212d4b63aff62108
+distfiles="https://github.com/KhronosGroup/SPIRV-LLVM-Translator/archive/refs/tags/v${version}.tar.gz"
+checksum=b1bebd77f72988758c00852e78c2ddc545815a612169a0cb377d021e2f846d88
post_install() {
vlicense LICENSE.TXT
From 672ee4e00095d92c002acde8916f79d54501d6fe Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Fri, 6 Jan 2023 17:11:04 +0100
Subject: [PATCH 11/17] rtags: rebuild for llvm15
---
srcpkgs/rtags/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/rtags/template b/srcpkgs/rtags/template
index b496a1b0e721..9b161e690d76 100644
--- a/srcpkgs/rtags/template
+++ b/srcpkgs/rtags/template
@@ -1,7 +1,7 @@
# Template file for 'rtags'
pkgname=rtags
version=2.38
-revision=5
+revision=6
build_style=cmake
# Don't run tests in do_install, please.
configure_args="-DSKIP_CTEST=TRUE"
From 926f5109bfad09431b997c6c9e6e7f20aecaa3e2 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Fri, 6 Jan 2023 17:14:14 +0100
Subject: [PATCH 12/17] juCi++: rebuild for llvm15
---
srcpkgs/juCi++/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/juCi++/template b/srcpkgs/juCi++/template
index c1969237f11d..416bde7cc4d0 100644
--- a/srcpkgs/juCi++/template
+++ b/srcpkgs/juCi++/template
@@ -1,7 +1,7 @@
# Template file for 'juCi++'
pkgname=juCi++
version=1.7.2
-revision=2
+revision=3
_libclangmm_commit="9704b9b6de0982a588fa41741157d5640afedf30"
_tiny_commit="839ff806dc447ff49af80f9a9eaa7949f770f8e5"
create_wrksrc=yes
From 87e033681534ee79b114e841cecde160818f205b Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Sat, 7 Jan 2023 11:31:14 +0100
Subject: [PATCH 13/17] qt5: rebuild for llvm15
---
srcpkgs/qt5/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/qt5/template b/srcpkgs/qt5/template
index f4f9f5b5344a..b517b49ead2d 100644
--- a/srcpkgs/qt5/template
+++ b/srcpkgs/qt5/template
@@ -5,7 +5,7 @@ pkgname=qt5
version=5.15.7+20221119
# commit f8c9fb304bc3e53b3aa07f962cd74e9160decccc
# base repo: https://invent.kde.org/qt/qt/qt5
-revision=1
+revision=2
build_style=meta
hostmakedepends="cmake clang flex perl glib-devel pkg-config
python re2c ruby which"
From 2b22458c46987b97325f2e2ce687908347c4ebed Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Mon, 9 Jan 2023 01:22:18 +0100
Subject: [PATCH 14/17] codelite: rebuild for llvm15
---
srcpkgs/codelite/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/codelite/template b/srcpkgs/codelite/template
index 6b8b007c8a43..c6115e0274ce 100644
--- a/srcpkgs/codelite/template
+++ b/srcpkgs/codelite/template
@@ -1,7 +1,7 @@
# Template file for 'codelite'
pkgname=codelite
version=16.0.0
-revision=2
+revision=3
create_wrksrc=yes
build_style=cmake
build_helper=cmake-wxWidgets-gtk3
From 7138a44b31f959b422fd2991c6cd93e7c2e176a2 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Mon, 9 Jan 2023 01:58:21 +0100
Subject: [PATCH 15/17] kdevelop: rebuild for llvm15
---
srcpkgs/kdevelop/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/kdevelop/template b/srcpkgs/kdevelop/template
index 5eb275583138..c32ee5240a44 100644
--- a/srcpkgs/kdevelop/template
+++ b/srcpkgs/kdevelop/template
@@ -1,7 +1,7 @@
# Template file for 'kdevelop'
pkgname=kdevelop
version=22.12.1
-revision=1
+revision=2
build_style=cmake
configure_args="-DBUILD_TESTING=OFF"
hostmakedepends="extra-cmake-modules qt5-qmake qt5-host-tools qt5-tools
From 9821e34581b5d5f772fd2898a2ef95468eeace25 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Mon, 16 Jan 2023 14:43:47 +0100
Subject: [PATCH 16/17] zig: update to 0.10.1
---
.../0001-std.build-fix-handling-of-Dcpu.patch | 48 -------------------
srcpkgs/zig/template | 10 ++--
2 files changed, 6 insertions(+), 52 deletions(-)
delete mode 100644 srcpkgs/zig/patches/0001-std.build-fix-handling-of-Dcpu.patch
diff --git a/srcpkgs/zig/patches/0001-std.build-fix-handling-of-Dcpu.patch b/srcpkgs/zig/patches/0001-std.build-fix-handling-of-Dcpu.patch
deleted file mode 100644
index 4101f24459bb..000000000000
--- a/srcpkgs/zig/patches/0001-std.build-fix-handling-of-Dcpu.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From 1e8cdace7ad324a42228aeb5cd6eb8dd15429413 Mon Sep 17 00:00:00 2001
-From: Isaac Freund <ifreund@ifreund.xyz>
-Date: Tue, 21 Sep 2021 21:06:10 +0200
-Subject: [PATCH] std.build: fix handling of -Dcpu
-
-Currently -Dcpu is completely ignored if -Dtarget isn't passed as well.
-Further, -Dcpu=baseline is ignored even if -Dtarget=native is passed.
-
-This patch fixes these 2 issues, always respecting the -Dcpu option if
-present.
----
- lib/std/build.zig | 13 +++++++------
- 1 file changed, 7 insertions(+), 6 deletions(-)
-
-diff --git a/lib/std/build.zig b/lib/std/build.zig
-index 9b7ebb1f4..e398529f9 100644
---- a/lib/std/build.zig
-+++ b/lib/std/build.zig
-@@ -685,7 +685,11 @@ pub const Builder = struct {
- );
- const mcpu = self.option([]const u8, "cpu", "Target CPU");
-
-- const triple = maybe_triple orelse return args.default_target;
-+ if (maybe_triple == null and mcpu == null) {
-+ return args.default_target;
-+ }
-+
-+ const triple = maybe_triple orelse "native";
-
- var diags: CrossTarget.ParseOptions.Diagnostics = .{};
- const selected_target = CrossTarget.parse(.{
-@@ -2451,11 +2455,8 @@ pub const LibExeObjStep = struct {
-
- if (populated_cpu_features.eql(cross.cpu.features)) {
- // The CPU name alone is sufficient.
-- // If it is the baseline CPU, no command line args are required.
-- if (cross.cpu.model != std.Target.Cpu.baseline(cross.cpu.arch).model) {
-- try zig_args.append("-mcpu");
-- try zig_args.append(cross.cpu.model.name);
-- }
-+ try zig_args.append("-mcpu");
-+ try zig_args.append(cross.cpu.model.name);
- } else {
- var mcpu_buffer = std.ArrayList(u8).init(builder.allocator);
-
---
-2.33.1
-
diff --git a/srcpkgs/zig/template b/srcpkgs/zig/template
index 728c5a64e9df..9807f7ab206b 100644
--- a/srcpkgs/zig/template
+++ b/srcpkgs/zig/template
@@ -1,17 +1,19 @@
# Template file for 'zig'
pkgname=zig
-version=0.8.1
-revision=2
+version=0.10.1
+revision=1
archs="x86_64* aarch64*"
build_style=cmake
make_cmd=make
-makedepends="clang llvm12 lld-devel"
+# we add xml2, zstd, zlib and ncurses
+# because our lld is static-only and requires those to work
+makedepends="clang llvm15 lld-devel libxml2-devel libzstd-devel ncurses-devel zlib-devel"
short_desc="Programming language designed for robustness, optimality, and clarity"
maintainer="Isaac Freund <mail@isaacfreund.com>"
license="MIT"
homepage="https://ziglang.org"
distfiles="https://ziglang.org/download/${version}/zig-${version}.tar.xz"
-checksum=8c428e14a0a89cb7a15a6768424a37442292858cdb695e2eb503fa3c7bf47f1a
+checksum=69459bc804333df077d441ef052ffa143d53012b655a51f04cfef1414c04168c
nopie=yes
nocross=yes
From 0a157d4283e7ed4e80e61d4b91ce0ac5ea2bd2d4 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Tue, 24 Jan 2023 14:03:51 +0100
Subject: [PATCH 17/17] river: update to 0.2.3
---
...ble-PIE-for-river-riverctl-rivertile.patch | 42 -------------------
srcpkgs/river/template | 10 ++---
2 files changed, 5 insertions(+), 47 deletions(-)
delete mode 100644 srcpkgs/river/patches/0001-Enable-PIE-for-river-riverctl-rivertile.patch
diff --git a/srcpkgs/river/patches/0001-Enable-PIE-for-river-riverctl-rivertile.patch b/srcpkgs/river/patches/0001-Enable-PIE-for-river-riverctl-rivertile.patch
deleted file mode 100644
index ecc68302db09..000000000000
--- a/srcpkgs/river/patches/0001-Enable-PIE-for-river-riverctl-rivertile.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From 759c1c7a915083f3da46960ff82fa2a3566a7065 Mon Sep 17 00:00:00 2001
-From: Isaac Freund <mail@isaacfreund.com>
-Date: Wed, 3 Nov 2021 14:21:35 +0100
-Subject: [PATCH] Enable PIE for river, riverctl, rivertile
-
-There is sadly not yet a standard way to do this exposed by the zig
-build system. See: https://github.com/ziglang/zig/issues/7201
----
- build.zig | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/build.zig b/build.zig
-index d561f49..8ac9a4e 100644
---- a/build.zig
-+++ b/build.zig
-@@ -85,6 +85,7 @@ pub fn build(b: *zbs.Builder) !void {
- const river = b.addExecutable("river", "river/main.zig");
- river.setTarget(target);
- river.setBuildMode(mode);
-+ river.pie = true;
- river.addBuildOption(bool, "xwayland", xwayland);
- river.addBuildOption([:0]const u8, "version", full_version);
-
-@@ -97,6 +98,7 @@ pub fn build(b: *zbs.Builder) !void {
- const riverctl = b.addExecutable("riverctl", "riverctl/main.zig");
- riverctl.setTarget(target);
- riverctl.setBuildMode(mode);
-+ riverctl.pie = true;
- riverctl.addBuildOption([:0]const u8, "version", full_version);
-
- riverctl.step.dependOn(&scanner.step);
-@@ -114,6 +116,7 @@ pub fn build(b: *zbs.Builder) !void {
- const rivertile = b.addExecutable("rivertile", "rivertile/main.zig");
- rivertile.setTarget(target);
- rivertile.setBuildMode(mode);
-+ rivertile.pie = true;
- rivertile.addBuildOption([:0]const u8, "version", full_version);
-
- rivertile.step.dependOn(&scanner.step);
---
-2.33.1
-
diff --git a/srcpkgs/river/template b/srcpkgs/river/template
index 3906858d507e..431aa4bd8e8e 100644
--- a/srcpkgs/river/template
+++ b/srcpkgs/river/template
@@ -1,18 +1,18 @@
# Template file for 'river'
pkgname=river
-version=0.1.1
-revision=2
+version=0.2.3
+revision=1
build_style=zig-build
-configure_args="$(vopt_if xwayland -Dxwayland)"
+configure_args="$(vopt_if xwayland -Dxwayland) -Dpie"
hostmakedepends="pkg-config wayland-devel scdoc"
-makedepends="wlroots0.15-devel libevdev-devel"
+makedepends="wlroots-devel libevdev-devel"
depends="$(vopt_if xwayland xorg-server-xwayland)"
short_desc="Dynamic tiling Wayland compositor"
maintainer="Isaac Freund <mail@isaacfreund.com>"
license="GPL-3.0-or-later"
homepage="https://github.com/riverwm/river"
distfiles="${homepage}/releases/download/v${version}/river-${version}.tar.gz"
-checksum=2a0bcd4670ed9ebd39c279f2bf10803fc65c9f3ee2307ce40728df23ce914d18
+checksum=7acdd2b929e16a20006b4baf1f29e7a8dc7f70cf5747e1503a610a90d1637132
build_options="xwayland"
build_options_default="xwayland"
^ permalink raw reply [flat|nested] 96+ messages in thread
* Re: [PR PATCH] [Updated] [WIP] LLVM 15
2022-11-28 15:30 [PR PATCH] [WIP] LLVM 15 tranzystorek-io
` (53 preceding siblings ...)
2023-01-26 22:36 ` tranzystorek-io
@ 2023-02-01 12:34 ` tranzystorek-io
2023-02-05 12:42 ` tranzystorek-io
` (39 subsequent siblings)
94 siblings, 0 replies; 96+ messages in thread
From: tranzystorek-io @ 2023-02-01 12:34 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 1154 bytes --]
There is an updated pull request by tranzystorek-io against master on the void-packages repository
https://github.com/tranzystorek-io/void-packages llvm15
https://github.com/void-linux/void-packages/pull/40821
[WIP] LLVM 15
[ci skip]
TODO:
- [ ] Adjust patches marked as `.patch.skip`
- [x] Make libomp a shlib (change so file name and install a symlink)
- [x] Avoid creating triplet dirs under /usr/
TODO LLVM rdeps:
- [ ] clazy (breaking changes in clang API)
- [x] beignet (https://github.com/void-linux/void-packages/pull/41529)
- [ ] ispc (1.18.1 supports LLVM `<= 14`)
- [ ] ldc (1.30.0 supports LLVM `<= 14`)
- [ ] ghdl (2.0.0 supports LLVM `<= 14`)
- [x] qt
- [ ] qtcreator (breaking changes in clang-format API)
- [ ] shiboken2 (tests failing with llvm15)
- [x] bpftrace (https://github.com/void-linux/void-packages/pull/39002)
- [ ] libclc (tests fail with unresolved calls https://gist.githubusercontent.com/tranzystorek-io/a2aa8a0d8010af5299f7d1ff9f82c22b/raw/6d316d99d6079990b73ae77d274dd120b9560589/LastTest.log)
- [x] zig
A patch file from https://github.com/void-linux/void-packages/pull/40821.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-llvm15-40821.patch --]
[-- Type: text/x-diff, Size: 84363 bytes --]
From 1abddb63e32526890c55b2609f783bae584d02f5 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Sun, 18 Dec 2022 00:36:59 +0100
Subject: [PATCH 01/17] New package: llvm15-15.0.7
---
common/shlibs | 3 +
srcpkgs/libllvm15 | 1 +
.../llvm15/files/llvm-Config-llvm-config.h | 9 +
...clang-001-fix-unwind-chain-inclusion.patch | 44 ++
.../patches/clang-002-add-musl-triples.patch | 110 +++++
.../clang-003-ppc64-dynamic-linker-path.patch | 13 +
.../patches/clang-004-ppc64-musl-elfv2.patch | 48 ++
.../compiler-rt-sanitizer-ppc64-musl.patch | 35 ++
.../compiler-rt-xray-ppc64-musl.patch.skip | 62 +++
srcpkgs/llvm15/patches/libcxx-musl.patch | 26 ++
srcpkgs/llvm15/patches/libcxx-ppc.patch | 22 +
.../llvm15/patches/libcxx-ssp-nonshared.patch | 11 +
srcpkgs/llvm15/patches/libcxxabi-dl.patch | 25 +
srcpkgs/llvm15/patches/libcxxabi-musl.patch | 37 ++
srcpkgs/llvm15/patches/libomp-soname.patch | 12 +
.../llvm15/patches/libunwind-ppc32.patch.skip | 63 +++
srcpkgs/llvm15/patches/lldb-musl.patch | 40 ++
srcpkgs/llvm15/patches/llvm-001-musl.patch | 57 +++
.../patches/llvm-002-musl-ppc64-elfv2.patch | 30 ++
.../patches/llvm-003-ppc-secureplt.patch | 11 +
.../patches/llvm-004-override-opt.patch | 18 +
.../llvm15/patches/llvm-005-ppc-bigpic.patch | 36 ++
.../patches/llvm-006-aarch64-mf_exec.patch | 25 +
srcpkgs/llvm15/template | 437 ++++++++++++++++++
srcpkgs/llvm15/update | 3 +
25 files changed, 1178 insertions(+)
create mode 120000 srcpkgs/libllvm15
create mode 100644 srcpkgs/llvm15/files/llvm-Config-llvm-config.h
create mode 100644 srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch
create mode 100644 srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch
create mode 100644 srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch
create mode 100644 srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch
create mode 100644 srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch
create mode 100644 srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip
create mode 100644 srcpkgs/llvm15/patches/libcxx-musl.patch
create mode 100644 srcpkgs/llvm15/patches/libcxx-ppc.patch
create mode 100644 srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch
create mode 100644 srcpkgs/llvm15/patches/libcxxabi-dl.patch
create mode 100644 srcpkgs/llvm15/patches/libcxxabi-musl.patch
create mode 100644 srcpkgs/llvm15/patches/libomp-soname.patch
create mode 100644 srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip
create mode 100644 srcpkgs/llvm15/patches/lldb-musl.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-001-musl.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-004-override-opt.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch
create mode 100644 srcpkgs/llvm15/template
create mode 100644 srcpkgs/llvm15/update
diff --git a/common/shlibs b/common/shlibs
index 523fd15af734..fb406ba6a045 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -992,6 +992,9 @@ libclang.so.12 libclang-12.0.0_1
libclang-cpp.so.12 libclang-cpp-12.0.0_1
libLLVM-11.so libllvm11-11.0.0_1
libLLVM-12.so libllvm12-12.0.0_1
+libLLVM-15.so libllvm15-15.0.7_1
+libomp.so.5 libomp-15.0.7_1
+libomptarget.so.15 libomp-15.0.7_1
libisofs.so.6 libisofs-0.6.24_1
libmpack.so.0 libmpack-1.0.5_1
libGeoIP.so.1 libgeoip-1.4.8_1
diff --git a/srcpkgs/libllvm15 b/srcpkgs/libllvm15
new file mode 120000
index 000000000000..ad57a969b9f9
--- /dev/null
+++ b/srcpkgs/libllvm15
@@ -0,0 +1 @@
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm15/files/llvm-Config-llvm-config.h b/srcpkgs/llvm15/files/llvm-Config-llvm-config.h
new file mode 100644
index 000000000000..2fa08c9be696
--- /dev/null
+++ b/srcpkgs/llvm15/files/llvm-Config-llvm-config.h
@@ -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
diff --git a/srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch b/srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch
new file mode 100644
index 000000000000..e4eaa7783e7a
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch
@@ -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
diff --git a/srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch b/srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch
new file mode 100644
index 000000000000..25688d40dbc2
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch
@@ -0,0 +1,110 @@
+--- a/clang/lib/Driver/ToolChains/Gnu.cpp
++++ b/clang/lib/Driver/ToolChains/Gnu.cpp
+@@ -2086,7 +2086,8 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
+ static const char *const ARMHFTriples[] = {"arm-linux-gnueabihf",
+ "armv7hl-redhat-linux-gnueabi",
+ "armv6hl-suse-linux-gnueabi",
+- "armv7hl-suse-linux-gnueabi"};
++ "armv7hl-suse-linux-gnueabi",
++ "armv7l-linux-gnueabihf"};
+ static const char *const ARMebLibDirs[] = {"/lib"};
+ static const char *const ARMebTriples[] = {"armeb-linux-gnueabi",
+ "armeb-linux-androideabi"};
+@@ -2153,8 +2154,7 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
+ "powerpc64-suse-linux", "powerpc-montavista-linuxspe"};
+ static const char *const PPCLELibDirs[] = {"/lib32", "/lib"};
+ static const char *const PPCLETriples[] = {"powerpcle-linux-gnu",
+- "powerpcle-unknown-linux-gnu",
+- "powerpcle-linux-musl"};
++ "powerpcle-unknown-linux-gnu"};
+
+ static const char *const PPC64LibDirs[] = {"/lib64", "/lib"};
+ static const char *const PPC64Triples[] = {
+@@ -2235,6 +2235,87 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
+ return;
+ }
+
++ if (TargetTriple.isMusl()) {
++ static const char *const AArch64MuslTriples[] = {"aarch64-linux-musl"};
++ static const char *const ARMHFMuslTriples[] = {
++ "arm-linux-musleabihf", "armv7l-linux-musleabihf"
++ };
++ static const char *const ARMMuslTriples[] = {"arm-linux-musleabi"};
++ static const char *const X86_64MuslTriples[] = {"x86_64-linux-musl"};
++ static const char *const X86MuslTriples[] = {"i686-linux-musl"};
++ static const char *const MIPSMuslTriples[] = {
++ "mips-linux-musl", "mipsel-linux-musl",
++ "mipsel-linux-muslhf", "mips-linux-muslhf"
++ };
++ static const char *const PPCMuslTriples[] = {"powerpc-linux-musl"};
++ static const char *const PPCLEMuslTriples[] = {"powerpcle-linux-musl"};
++ static const char *const PPC64MuslTriples[] = {"powerpc64-linux-musl"};
++ static const char *const PPC64LEMuslTriples[] = {"powerpc64le-linux-musl"};
++
++ switch (TargetTriple.getArch()) {
++ case llvm::Triple::aarch64:
++ LibDirs.append(begin(AArch64LibDirs), end(AArch64LibDirs));
++ TripleAliases.append(begin(AArch64MuslTriples), end(AArch64MuslTriples));
++ BiarchLibDirs.append(begin(AArch64LibDirs), end(AArch64LibDirs));
++ BiarchTripleAliases.append(begin(AArch64MuslTriples), end(AArch64MuslTriples));
++ break;
++ case llvm::Triple::arm:
++ LibDirs.append(begin(ARMLibDirs), end(ARMLibDirs));
++ if (TargetTriple.getEnvironment() == llvm::Triple::MuslEABIHF) {
++ TripleAliases.append(begin(ARMHFMuslTriples), end(ARMHFMuslTriples));
++ } else {
++ TripleAliases.append(begin(ARMMuslTriples), end(ARMMuslTriples));
++ }
++ break;
++ case llvm::Triple::x86_64:
++ LibDirs.append(begin(X86_64LibDirs), end(X86_64LibDirs));
++ TripleAliases.append(begin(X86_64MuslTriples), end(X86_64MuslTriples));
++ BiarchLibDirs.append(begin(X86LibDirs), end(X86LibDirs));
++ BiarchTripleAliases.append(begin(X86MuslTriples), end(X86MuslTriples));
++ break;
++ case llvm::Triple::x86:
++ LibDirs.append(begin(X86LibDirs), end(X86LibDirs));
++ TripleAliases.append(begin(X86MuslTriples), end(X86MuslTriples));
++ BiarchLibDirs.append(begin(X86_64LibDirs), end(X86_64LibDirs));
++ BiarchTripleAliases.append(begin(X86_64MuslTriples), end(X86_64MuslTriples));
++ break;
++ case llvm::Triple::mips:
++ LibDirs.append(begin(MIPSLibDirs), end(MIPSLibDirs));
++ TripleAliases.append(begin(MIPSMuslTriples), end(MIPSMuslTriples));
++ break;
++ case llvm::Triple::ppc:
++ LibDirs.append(begin(PPCLibDirs), end(PPCLibDirs));
++ TripleAliases.append(begin(PPCMuslTriples), end(PPCMuslTriples));
++ BiarchLibDirs.append(begin(PPC64LibDirs), end(PPC64LibDirs));
++ BiarchTripleAliases.append(begin(PPC64MuslTriples), end(PPC64MuslTriples));
++ break;
++ case llvm::Triple::ppcle:
++ LibDirs.append(begin(PPCLELibDirs), end(PPCLELibDirs));
++ TripleAliases.append(begin(PPCLEMuslTriples), end(PPCLEMuslTriples));
++ BiarchLibDirs.append(begin(PPC64LELibDirs), end(PPC64LELibDirs));
++ BiarchTripleAliases.append(begin(PPC64LEMuslTriples), end(PPC64LEMuslTriples));
++ break;
++ case llvm::Triple::ppc64:
++ LibDirs.append(begin(PPC64LibDirs), end(PPC64LibDirs));
++ TripleAliases.append(begin(PPC64MuslTriples), end(PPC64MuslTriples));
++ BiarchLibDirs.append(begin(PPCLibDirs), end(PPCLibDirs));
++ BiarchTripleAliases.append(begin(PPCMuslTriples), end(PPCMuslTriples));
++ break;
++ case llvm::Triple::ppc64le:
++ LibDirs.append(begin(PPC64LELibDirs), end(PPC64LELibDirs));
++ TripleAliases.append(begin(PPC64LEMuslTriples), end(PPC64LEMuslTriples));
++ BiarchLibDirs.append(begin(PPCLELibDirs), end(PPCLELibDirs));
++ BiarchTripleAliases.append(begin(PPCLEMuslTriples), end(PPCLEMuslTriples));
++ break;
++ default:
++ break;
++ }
++ TripleAliases.push_back(TargetTriple.str());
++ if (TargetTriple.str() != BiarchTriple.str())
++ BiarchTripleAliases.push_back(BiarchTriple.str());
++ return;
++ }
++
+ // Android targets should not use GNU/Linux tools or libraries.
+ if (TargetTriple.isAndroid()) {
+ static const char *const AArch64AndroidTriples[] = {
diff --git a/srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch b/srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch
new file mode 100644
index 000000000000..4ad6412d1e6c
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch
@@ -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 =
diff --git a/srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch b/srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch
new file mode 100644
index 000000000000..21fc8003c5f1
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch
@@ -0,0 +1,48 @@
+--- a/clang/lib/Basic/Targets/PPC.h
++++ b/clang/lib/Basic/Targets/PPC.h
+@@ -415,11 +415,10 @@ public:
+ LongDoubleFormat = &llvm::APFloat::IEEEdouble();
+ } else if ((Triple.getArch() == llvm::Triple::ppc64le)) {
+ DataLayout = "e-m:e-i64:64-n32:64";
+- ABI = "elfv2";
+ } else {
+ DataLayout = "E-m:e-i64:64-n32:64";
+- ABI = "elfv1";
+ }
++ ABI = "elfv2";
+
+ if (Triple.isOSFreeBSD() || Triple.isOSOpenBSD() || Triple.isMusl()) {
+ LongDoubleWidth = LongDoubleAlign = 64;
+--- a/clang/lib/CodeGen/TargetInfo.cpp
++++ b/clang/lib/CodeGen/TargetInfo.cpp
+@@ -10927,9 +10927,9 @@ const TargetCodeGenInfo &CodeGenModule::getTargetCodeGenInfo() {
+ return SetCGInfo(new AIXTargetCodeGenInfo(Types, /*Is64Bit*/ true));
+
+ if (Triple.isOSBinFormatELF()) {
+- PPC64_SVR4_ABIInfo::ABIKind Kind = PPC64_SVR4_ABIInfo::ELFv1;
+- if (getTarget().getABI() == "elfv2")
+- Kind = PPC64_SVR4_ABIInfo::ELFv2;
++ PPC64_SVR4_ABIInfo::ABIKind Kind = PPC64_SVR4_ABIInfo::ELFv2;
++ if (getTarget().getABI() == "elfv1")
++ Kind = PPC64_SVR4_ABIInfo::ELFv1;
+ bool IsSoftFloat = CodeGenOpts.FloatABI == "soft";
+
+ return SetCGInfo(
+--- a/clang/lib/Driver/ToolChains/Clang.cpp
++++ b/clang/lib/Driver/ToolChains/Clang.cpp
+@@ -1920,14 +1920,7 @@ void Clang::AddPPCTargetArgs(const ArgList &Args,
+ const llvm::Triple &T = getToolChain().getTriple();
+ if (T.isOSBinFormatELF()) {
+ switch (getToolChain().getArch()) {
+- case llvm::Triple::ppc64: {
+- if ((T.isOSFreeBSD() && T.getOSMajorVersion() >= 13) ||
+- T.isOSOpenBSD() || T.isMusl())
+- ABIName = "elfv2";
+- else
+- ABIName = "elfv1";
+- break;
+- }
++ case llvm::Triple::ppc64:
+ case llvm::Triple::ppc64le:
+ ABIName = "elfv2";
+ break;
diff --git a/srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch b/srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch
new file mode 100644
index 000000000000..360cfc1ba7f1
--- /dev/null
+++ b/srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch
@@ -0,0 +1,35 @@
+--- 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__) || SANITIZER_RISCV64
++ defined(__hexagon__) || defined(__powerpc__) || 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_ANDROID
++#if (defined(__aarch64__) || defined(__powerpc__) || SANITIZER_RISCV64) && !SANITIZER_ANDROID
+ // GLIBC 2.20+ sys/user does not include asm/ptrace.h
+ # include <asm/ptrace.h>
+ #endif
diff --git a/srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip b/srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip
new file mode 100644
index 000000000000..d0b61c80c897
--- /dev/null
+++ b/srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip
@@ -0,0 +1,62 @@
+--- a/compiler-rt/lib/xray/xray_powerpc64.inc
++++ b/compiler-rt/lib/xray/xray_powerpc64.inc
+@@ -12,7 +12,13 @@
+
+ #include <cstdint>
+ #include <mutex>
++#ifdef __GLIBC__
+ #include <sys/platform/ppc.h>
++#else
++#include <cctype>
++#include <cstring>
++#include <cstdlib>
++#endif
+
+ #include "xray_defs.h"
+
+@@ -20,13 +26,45 @@ namespace __xray {
+
+ ALWAYS_INLINE uint64_t readTSC(uint8_t &CPU) XRAY_NEVER_INSTRUMENT {
+ CPU = 0;
++#ifdef __GLIBC__
+ return __ppc_get_timebase();
++#else
++ return __builtin_ppc_get_timebase();
++#endif
+ }
+
+ inline uint64_t getTSCFrequency() XRAY_NEVER_INSTRUMENT {
+ static std::mutex M;
+ std::lock_guard<std::mutex> Guard(M);
++#ifdef __GLIBC__
+ return __ppc_get_timebase_freq();
++#else
++ /* FIXME: a less dirty implementation? */
++ static uint64_t base;
++ if (!base) {
++ FILE *f = fopen("/proc/cpuinfo", "rb");
++ if (f) {
++ ssize_t nr;
++ /* virtually always big enough to hold the line */
++ char buf[512];
++ while (fgets(buf, sizeof(buf), f)) {
++ char *ret = strstr(buf, "timebase");
++ if (!ret) {
++ continue;
++ }
++ ret += sizeof("timebase") - 1;
++ ret = strchr(ret, ':');
++ if (!ret) {
++ continue;
++ }
++ base = strtoul(ret + 1, nullptr, 10);
++ break;
++ }
++ fclose(f);
++ }
++ }
++ return base;
++#endif
+ }
+
+ inline bool probeRequiredCPUFeatures() XRAY_NEVER_INSTRUMENT {
diff --git a/srcpkgs/llvm15/patches/libcxx-musl.patch b/srcpkgs/llvm15/patches/libcxx-musl.patch
new file mode 100644
index 000000000000..bbd31ffc2cb1
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxx-musl.patch
@@ -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,
+ typename remove_reference<decltype(errno)>::type __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
+ typename remove_reference<decltype(errno)>::type __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,
+ typename remove_reference<decltype(errno)>::type __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
+ typename remove_reference<decltype(errno)>::type __current_errno = errno;
+ if (__current_errno == 0)
+ errno = __save_errno;
diff --git a/srcpkgs/llvm15/patches/libcxx-ppc.patch b/srcpkgs/llvm15/patches/libcxx-ppc.patch
new file mode 100644
index 000000000000..7a92f8004e1c
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxx-ppc.patch
@@ -0,0 +1,22 @@
+This ensures `is_iec559` is defined correctly under all long double ABIs,
+including musl and its 64-bit long double. Also, `__ppc__` or `__ppc64__`
+is not defined on gcc.
+
+--- a/libcxx/include/limits
++++ b/libcxx/include/limits
+@@ -426,8 +426,14 @@ protected:
+ _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type signaling_NaN() _NOEXCEPT {return __builtin_nansl("");}
+ _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type denorm_min() _NOEXCEPT {return __LDBL_DENORM_MIN__;}
+
+-#if (defined(__ppc__) || defined(__ppc64__))
++#if defined(__powerpc__) || defined(__powerpc64__)
++#if (__LDBL_MAX_EXP__ > __DBL_MAX_EXP__) || (__LDBL_MANT_DIG__ == __DBL_MANT_DIG__)
++ /* IEEE 754 quadruple or double precision */
++ static _LIBCPP_CONSTEXPR const bool is_iec559 = true;
++#else
++ /* 128-bit IBM double-double */
+ static _LIBCPP_CONSTEXPR const bool is_iec559 = false;
++#endif
+ #else
+ static _LIBCPP_CONSTEXPR const bool is_iec559 = true;
+ #endif
diff --git a/srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch b/srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch
new file mode 100644
index 000000000000..70292beb2fcd
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch
@@ -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()
diff --git a/srcpkgs/llvm15/patches/libcxxabi-dl.patch b/srcpkgs/llvm15/patches/libcxxabi-dl.patch
new file mode 100644
index 000000000000..3a15f9db8c98
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxxabi-dl.patch
@@ -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 @@
+ target_link_libraries(${target} PRIVATE m)
+ endif()
+
++ if (LIBCXX_HAS_C_LIB)
++ target_link_libraries(${target} PRIVATE dl)
++ endif()
++
+ if (LIBCXX_HAS_RT_LIB)
+ target_link_libraries(${target} PRIVATE rt)
+ endif()
diff --git a/srcpkgs/llvm15/patches/libcxxabi-musl.patch b/srcpkgs/llvm15/patches/libcxxabi-musl.patch
new file mode 100644
index 000000000000..55bf6f5aaa08
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxxabi-musl.patch
@@ -0,0 +1,37 @@
+diff --git a/libcxx/include/__support/musl/xlocale.h b/libcxx/include/__support/musl/xlocale.h
+index e674a41fa..f546119b9 100644
+--- a/libcxx/include/__support/musl/xlocale.h
++++ b/libcxx/include/__support/musl/xlocale.h
+@@ -24,27 +24,27 @@
+ extern "C" {
+ #endif
+
+-inline _LIBCPP_HIDE_FROM_ABI long long
++static inline long long
+ strtoll_l(const char *__nptr, char **__endptr, int __base, locale_t) {
+ return ::strtoll(__nptr, __endptr, __base);
+ }
+
+-inline _LIBCPP_HIDE_FROM_ABI unsigned long long
++static inline unsigned long long
+ strtoull_l(const char *__nptr, char **__endptr, int __base, locale_t) {
+ return ::strtoull(__nptr, __endptr, __base);
+ }
+
+-inline _LIBCPP_HIDE_FROM_ABI long long
++static inline long long
+ wcstoll_l(const wchar_t *__nptr, wchar_t **__endptr, int __base, locale_t) {
+ return ::wcstoll(__nptr, __endptr, __base);
+ }
+
+-inline _LIBCPP_HIDE_FROM_ABI unsigned long long
++static inline unsigned long long
+ wcstoull_l(const wchar_t *__nptr, wchar_t **__endptr, int __base, locale_t) {
+ return ::wcstoull(__nptr, __endptr, __base);
+ }
+
+-inline _LIBCPP_HIDE_FROM_ABI long double
++static inline long double
+ wcstold_l(const wchar_t *__nptr, wchar_t **__endptr, locale_t) {
+ return ::wcstold(__nptr, __endptr);
+ }
diff --git a/srcpkgs/llvm15/patches/libomp-soname.patch b/srcpkgs/llvm15/patches/libomp-soname.patch
new file mode 100644
index 000000000000..9a622cd9254c
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libomp-soname.patch
@@ -0,0 +1,12 @@
+diff --git a/openmp/runtime/src/CMakeLists.txt b/openmp/runtime/src/CMakeLists.txt
+index df1ca9d90..9d2c3b7b9 100644
+--- a/openmp/runtime/src/CMakeLists.txt
++++ b/openmp/runtime/src/CMakeLists.txt
+@@ -150,6 +150,7 @@ libomp_get_libflags(LIBOMP_CONFIGURED_LIBFLAGS)
+ # Build libomp library. Add LLVMSupport dependency if building in-tree with libomptarget profiling enabled.
+ if(OPENMP_STANDALONE_BUILD OR (NOT OPENMP_ENABLE_LIBOMP_PROFILING))
+ add_library(omp ${LIBOMP_LIBRARY_KIND} ${LIBOMP_SOURCE_FILES})
++ set_target_properties(omp PROPERTIES VERSION ${LIBOMP_VERSION_MAJOR} SOVERSION ${LIBOMP_VERSION_MAJOR})
+ # Linking command will include libraries in LIBOMP_CONFIGURED_LIBFLAGS
+ target_link_libraries(omp ${LIBOMP_CONFIGURED_LIBFLAGS} ${LIBOMP_DL_LIBS})
+ else()
diff --git a/srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip b/srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip
new file mode 100644
index 000000000000..74aa7576ecf9
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip
@@ -0,0 +1,63 @@
+This fixes build at least with gcc9 which does not define `__ppc__`.
+
+--- a/libunwind/include/__libunwind_config.h
++++ b/libunwind/include/__libunwind_config.h
+@@ -49,7 +49,7 @@
+ # define _LIBUNWIND_CONTEXT_SIZE 167
+ # define _LIBUNWIND_CURSOR_SIZE 179
+ # define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_PPC64
+-# elif defined(__ppc__)
++# elif defined(__powerpc__)
+ # define _LIBUNWIND_TARGET_PPC 1
+ # define _LIBUNWIND_CONTEXT_SIZE 117
+ # define _LIBUNWIND_CURSOR_SIZE 124
+--- a/libunwind/src/UnwindRegistersRestore.S
++++ b/libunwind/src/UnwindRegistersRestore.S
+@@ -392,7 +392,7 @@ Lnovec:
+ PPC64_LR(3)
+ bctr
+
+-#elif defined(__ppc__)
++#elif defined(__powerpc__)
+
+ DEFINE_LIBUNWIND_FUNCTION(_ZN9libunwind13Registers_ppc6jumptoEv)
+ //
+--- a/libunwind/src/UnwindRegistersSave.S
++++ b/libunwind/src/UnwindRegistersSave.S
+@@ -554,7 +554,7 @@ DEFINE_LIBUNWIND_FUNCTION(__unw_getcontext)
+ blr
+
+
+-#elif defined(__ppc__)
++#elif defined(__powerpc__)
+
+ //
+ // extern int unw_getcontext(unw_context_t* thread_state)
+--- a/libunwind/src/config.h
++++ b/libunwind/src/config.h
+@@ -95,12 +95,12 @@
+ #define _LIBUNWIND_BUILD_SJLJ_APIS
+ #endif
+
+-#if defined(__i386__) || defined(__x86_64__) || defined(__ppc__) || defined(__ppc64__) || defined(__powerpc64__)
++#if defined(__i386__) || defined(__x86_64__) || defined(__powerpc__) || defined(__powerpc64__)
+ #define _LIBUNWIND_SUPPORT_FRAME_APIS
+ #endif
+
+ #if defined(__i386__) || defined(__x86_64__) || \
+- defined(__ppc__) || defined(__ppc64__) || defined(__powerpc64__) || \
++ defined(__powerpc__) || defined(__powerpc64__) || \
+ (!defined(__APPLE__) && defined(__arm__)) || \
+ (defined(__arm64__) || defined(__aarch64__)) || \
+ defined(__mips__)
+--- a/libunwind/src/libunwind.cpp
++++ b/libunwind/src/libunwind.cpp
+@@ -42,7 +42,7 @@ _LIBUNWIND_HIDDEN int __unw_init_local(unw_cursor_t *cursor,
+ # define REGISTER_KIND Registers_x86_64
+ #elif defined(__powerpc64__)
+ # define REGISTER_KIND Registers_ppc64
+-#elif defined(__ppc__)
++#elif defined(__powerpc__)
+ # define REGISTER_KIND Registers_ppc
+ #elif defined(__aarch64__)
+ # define REGISTER_KIND Registers_arm64
diff --git a/srcpkgs/llvm15/patches/lldb-musl.patch b/srcpkgs/llvm15/patches/lldb-musl.patch
new file mode 100644
index 000000000000..026c5e1e61ba
--- /dev/null
+++ b/srcpkgs/llvm15/patches/lldb-musl.patch
@@ -0,0 +1,40 @@
+--- a/lldb/source/Plugins/Process/Linux/Procfs.h
++++ b/lldb/source/Plugins/Process/Linux/Procfs.h
+@@ -10,6 +10,7 @@
+ // sys/procfs.h on Android/Linux for all supported architectures.
+
+ #include <sys/ptrace.h>
++#include <asm/ptrace.h>
+
+ #include "lldb/lldb-types.h"
+
+@@ -17,23 +18,13 @@
+
+ #include <vector>
+
+-#ifdef __ANDROID__
+-#if defined(__arm64__) || defined(__aarch64__)
+-typedef unsigned long elf_greg_t;
+-typedef elf_greg_t
+- elf_gregset_t[(sizeof(struct user_pt_regs) / sizeof(elf_greg_t))];
+-typedef struct user_fpsimd_state elf_fpregset_t;
+-#ifndef NT_FPREGSET
+-#define NT_FPREGSET NT_PRFPREG
+-#endif // NT_FPREGSET
+-#elif defined(__mips__)
+-#ifndef NT_FPREGSET
+-#define NT_FPREGSET NT_PRFPREG
+-#endif // NT_FPREGSET
+-#endif
+-#else // __ANDROID__
++#if !defined(__GLIBC__) && defined(__powerpc__)
++#define pt_regs musl_pt_regs
++#include <sys/procfs.h>
++#undef pt_regs
++#else
+ #include <sys/procfs.h>
+-#endif // __ANDROID__
++#endif
+
+ namespace lldb_private {
+ namespace process_linux {
diff --git a/srcpkgs/llvm15/patches/llvm-001-musl.patch b/srcpkgs/llvm15/patches/llvm-001-musl.patch
new file mode 100644
index 000000000000..f2a3f8d62813
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-001-musl.patch
@@ -0,0 +1,57 @@
+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;
+diff --git a/lib/Support/Unix/DynamicLibrary.inc b/lib/Support/Unix/DynamicLibrary.inc
+index a2a37996..2f86c470 100644
+--- a/llvm/lib/Support/Unix/DynamicLibrary.inc
++++ b/llvm/lib/Support/Unix/DynamicLibrary.inc
+@@ -102,7 +102,7 @@ static void *DoSearch(const char* SymbolName) {
+
+ // This macro returns the address of a well-known, explicit symbol
+ #define EXPLICIT_SYMBOL(SYM) \
+- if (!strcmp(SymbolName, #SYM)) return &SYM
++ if (!strcmp(SymbolName, #SYM)) return (void *)&SYM
+
+ // Under glibc we have a weird situation. The stderr/out/in symbols are both
+ // macros and global variables because of standards requirements. So, we
+diff --git a/utils/unittest/googletest/src/gtest.cc b/utils/unittest/googletest/src/gtest.cc
+index d882ab2e..f1fb12d0 100644
+--- a/llvm/utils/unittest/googletest/src/gtest.cc
++++ b/llvm/utils/unittest/googletest/src/gtest.cc
+@@ -128,6 +128,7 @@
+
+ #if GTEST_CAN_STREAM_RESULTS_
+ # include <arpa/inet.h> // NOLINT
++# include <sys/socket.h> // NOLINT
+ # include <netdb.h> // NOLINT
+ # include <sys/socket.h> // NOLINT
+ # include <sys/types.h> // NOLINT
diff --git a/srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch b/srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch
new file mode 100644
index 000000000000..0071d964bd37
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch
@@ -0,0 +1,30 @@
+This patches LLVM to use ELFv2 on ppc64 unconditionally unless overridden. We
+need this because unlike most distros we use ELFv2 for both glibc and musl
+on big endian ppc64.
+
+diff --git a/lib/Target/PowerPC/PPCTargetMachine.cpp b/lib/Target/PowerPC/PPCTargetMachine.cpp
+index 0634833e..b7cbc2e7 100644
+--- a/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp
++++ b/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp
+@@ -222,9 +222,8 @@ static PPCTargetMachine::PPCABI computeTargetABI(const Triple &TT,
+
+ switch (TT.getArch()) {
+ case Triple::ppc64le:
+- return PPCTargetMachine::PPC_ABI_ELFv2;
+ case Triple::ppc64:
+- return PPCTargetMachine::PPC_ABI_ELFv1;
++ return PPCTargetMachine::PPC_ABI_ELFv2;
+ default:
+ return PPCTargetMachine::PPC_ABI_UNKNOWN;
+ }
+diff --git a/test/CodeGen/PowerPC/ppc64-elf-abi.ll b/test/CodeGen/PowerPC/ppc64-elf-abi.ll
+index 8b1cf6b5..296a2afa 100644
+--- a/llvm/test/CodeGen/PowerPC/ppc64-elf-abi.ll
++++ b/llvm/test/CodeGen/PowerPC/ppc64-elf-abi.ll
+@@ -1,4 +1,5 @@
+-; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv1
++; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv2
++; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-musl < %s | FileCheck %s -check-prefix=CHECK-ELFv2
+ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu -target-abi elfv1 < %s | FileCheck %s -check-prefix=CHECK-ELFv1
+ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu -target-abi elfv2 < %s | FileCheck %s -check-prefix=CHECK-ELFv2
+ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv2
diff --git a/srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch b/srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch
new file mode 100644
index 000000000000..b5d15974375d
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch
@@ -0,0 +1,11 @@
+--- a/llvm/lib/Target/PowerPC/PPCSubtarget.cpp
++++ b/llvm/lib/Target/PowerPC/PPCSubtarget.cpp
+@@ -165,7 +165,7 @@ void PPCSubtarget::initSubtargetFeatures(StringRef CPU, StringRef FS) {
+
+ if ((TargetTriple.isOSFreeBSD() && TargetTriple.getOSMajorVersion() >= 13) ||
+ TargetTriple.isOSNetBSD() || TargetTriple.isOSOpenBSD() ||
+- TargetTriple.isMusl())
++ isTargetLinux())
+ SecurePlt = true;
+
+ if (HasSPE && IsPPC64)
diff --git a/srcpkgs/llvm15/patches/llvm-004-override-opt.patch b/srcpkgs/llvm15/patches/llvm-004-override-opt.patch
new file mode 100644
index 000000000000..51d0e4b31b32
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-004-override-opt.patch
@@ -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)
diff --git a/srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch b/srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch
new file mode 100644
index 000000000000..d332687b9d92
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch
@@ -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);
diff --git a/srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch b/srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch
new file mode 100644
index 000000000000..a00abd216665
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch
@@ -0,0 +1,25 @@
+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__) || defined (__ppc__) || \
+- defined(_POWER) || defined(_ARCH_PPC))
++ defined(_POWER) || defined(_ARCH_PPC) || (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
diff --git a/srcpkgs/llvm15/template b/srcpkgs/llvm15/template
new file mode 100644
index 000000000000..92dadb185a7a
--- /dev/null
+++ b/srcpkgs/llvm15/template
@@ -0,0 +1,437 @@
+# Template file for 'llvm15'
+pkgname=llvm15
+version=15.0.7
+revision=1
+build_wrksrc=llvm
+build_style=cmake
+_ext_suffix=".cpython-${py3_ver/./}-linux-${XBPS_TARGET_LIBC/glibc/gnu}.so"
+configure_args="
+ -DCMAKE_BUILD_TYPE=Release -Wno-dev
+ -DENABLE_LINKER_BUILD_ID=YES
+ -DLLDB_USE_SYSTEM_SIX=YES
+ -DLIBCXX_CXX_ABI=libcxxabi
+ -DLIBCXX_ENABLE_STATIC_ABI_LIBRARY=YES
+ -DLIBCXXABI_USE_LLVM_UNWINDER=YES
+ -DLIBCXXABI_ENABLE_STATIC_UNWINDER=YES
+ -DLIBOMP_ENABLE_SHARED=YES
+ -DLIBOMP_INSTALL_ALIASES=NO
+ -DLLVM_INCLUDE_DOCS=YES
+ -DLLVM_BUILD_DOCS=YES
+ -DLLVM_ENABLE_SPHINX=YES
+ -DSPHINX_WARNINGS_AS_ERRORS=NO
+ -DLLVM_INSTALL_UTILS=YES
+ -DLLVM_BUILD_LLVM_DYLIB=YES
+ -DLLVM_LINK_LLVM_DYLIB=YES
+ -DLLVM_ENABLE_RTTI=YES
+ -DLLVM_ENABLE_FFI=YES
+ -DLLVM_BINUTILS_INCDIR=/usr/include
+ -DLLVM_ENABLE_PER_TARGET_RUNTIME_DIR=NO
+ -DLLDB_PYTHON_RELATIVE_PATH=lib/python${py3_ver}/site-packages
+ -DLLDB_PYTHON_EXE_RELATIVE_PATH=bin/python${py3_ver}
+ -DLLDB_PYTHON_EXT_SUFFIX=$_ext_suffix"
+hostmakedepends="perl python3 zlib-devel libffi-devel swig python3-Sphinx
+ python3-recommonmark python3-sphinx-automodapi"
+makedepends="python3-devel zlib-devel elfutils-devel libffi-devel libedit-devel
+ libxml2-devel binutils-devel libatomic-devel"
+depends="libllvm15>=${version}_${revision}"
+short_desc="Low Level Virtual Machine"
+maintainer="Orphaned <orphan@voidlinux.org>"
+license="Apache-2.0"
+homepage="https://www.llvm.org"
+distfiles="https://github.com/llvm/llvm-project/releases/download/llvmorg-${version}/llvm-project-${version}.src.tar.xz"
+checksum=8b5fcb24b4128cf04df1b0b9410ce8b1a729cb3c544e6da885d234280dedeac6
+lib32disabled=yes
+python_version=3
+
+if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
+ configure_args+=" -DLIBCXX_HAS_MUSL_LIBC=YES
+ -DCOMPILER_RT_BUILD_GWP_ASAN=OFF"
+fi
+
+# "operand out of range" assembler failures
+case "$XBPS_TARGET_MACHINE" in
+ ppc64*) ;;
+ ppc*) configure_args+=" -DCLANG_ENABLE_CLANGD=OFF" ;;
+esac
+
+_enabled_projects="clang;clang-tools-extra;compiler-rt;libcxx;libcxxabi;libunwind;lld"
+
+_lldb_enable=yes
+_libomp_enable=no
+
+case "$XBPS_TARGET_MACHINE" in
+ ppc64le*) ;;
+ ppc*|i686*|riscv64*) _lldb_enable=no ;;
+esac
+
+case "$XBPS_TARGET_MACHINE" in
+ x86_64*|aarch64*|ppc64*) _libomp_enable=yes;;
+esac
+
+subpackages="clang-tools-extra"
+
+# must go before clang
+if [ "$_libomp_enable" = "yes" ]; then
+ _enabled_projects+=";openmp"
+ subpackages+=" libomp libomp-devel"
+ # because of cmake nonsense referencing libomptarget.so.*
+ depends+=" libomp>=${version}_${revision}"
+fi
+
+subpackages+=" clang clang-analyzer libclang libclang-cpp
+ llvm-libunwind llvm-libunwind-devel libcxx libcxx-devel
+ libcxxabi libcxxabi-devel libllvm15"
+
+if [ "$_lldb_enable" = "yes" ]; then
+ # XXX fails to cross compile due to python
+ _enabled_projects+=";lldb"
+ subpackages+=" lldb lldb-devel"
+fi
+
+subpackages+=" lld lld-devel"
+
+configure_args+=" -DLLVM_ENABLE_PROJECTS=${_enabled_projects}"
+
+post_patch() {
+ if [ "$_lldb_enable" = "yes" ]; then
+ if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
+ vsed -i 's|__ptrace_request|int|g' \
+ ${wrksrc}/lldb/source/Plugins/Process/Linux/NativeProcessLinux.cpp
+ fi
+ # disable docs for lldb as they fail to generate
+ vsed -i '/add_subdirectory(docs)/d' \
+ ${wrksrc}/lldb/CMakeLists.txt
+ fi
+
+ # update config.guess for better platform detection
+ cp $XBPS_COMMONDIR/environment/configure/automake/config.guess \
+ ${wrksrc}/llvm/cmake
+
+ # fix linker failures on some archs
+ vsed -i 's,check_library_exists(gcc_s .*,set(LIBCXXABI_HAS_GCC_S_LIB ON),' \
+ ${wrksrc}/libcxxabi/cmake/config-ix.cmake
+ vsed -i 's,check_library_exists(gcc .*,set(LIBCXXABI_HAS_GCC_LIB ON),' \
+ ${wrksrc}/libcxxabi/cmake/config-ix.cmake
+
+ # need libssp_nonshared on some musl platforms (because of nodefaultlibs)
+ case "$XBPS_TARGET_MACHINE" in
+ ppc64*) ;;
+ ppc*-musl|i686-musl|mips*-musl)
+ vsed -i 's,^# Setup flags.$,add_library_flags(ssp_nonshared),' \
+ ${wrksrc}/libunwind/src/CMakeLists.txt
+ vsed -i 's,^# Setup flags.$,add_library_flags(ssp_nonshared),' \
+ ${wrksrc}/libcxxabi/src/CMakeLists.txt
+ vsed -i 's,#ssp,,' ${wrksrc}/libcxx/CMakeLists.txt
+ ;;
+ esac
+
+ case "$XBPS_TARGET_MACHINE" in
+ arm*-musl|i686-musl) # sanitizer code is broken since it duplicates some libc bits
+ vsed -i 's/set(COMPILER_RT_HAS_SANITIZER_COMMON TRUE)/set(COMPILER_RT_HAS_SANITIZER_COMMON FALSE)/' \
+ ${wrksrc}/compiler-rt/cmake/config-ix.cmake
+ ;;
+ esac
+}
+
+pre_configure() {
+ local triplet
+
+ # Vastly reduce size of debugging symbols:
+ CFLAGS=${CFLAGS/ -g/ -g1}
+ CXXFLAGS=${CXXFLAGS/ -g/ -g1}
+
+ # since gcc9, the build likes to blow up for ppc32 apparently because
+ # of clang being too large for a 24-bit relative call to the PLT, so
+ # optimize for size instead
+ case "$XBPS_TARGET_MACHINE" in
+ ppc64*) ;;
+ mips*-musl|ppc*) configure_args+=" -DVOID_CXX_OPT_FLAGS=-Os" ;;
+ esac
+
+ if [ "$CROSS_BUILD" ]; then
+ msg_normal "Building host tblgen\n"
+ mkdir -p build/HOST
+ cd build/HOST
+ CC="$BUILD_CC" CXX="$BUILD_CXX" CFLAGS="$BUILD_CFLAGS" \
+ CXXFLAGS="$BUILD_CXXFLAGS" LDFLAGS="$BUILD_LDFLAGS" \
+ cmake ../.. -DCMAKE_BUILD_TYPE=Release \
+ -DLLVM_ENABLE_PROJECTS=${_enabled_projects}
+ make ${makejobs} -C utils/TableGen
+ make ${makejobs} -C tools/clang/utils/TableGen
+ make ${makejobs} -C tools/clang/tools/extra/clang-tidy/misc/ConfusableTable
+ make ${makejobs} -C tools/clang/tools/extra/pseudo/gen
+ [ "$_lldb_enable" = "yes" ] && make ${makejobs} -C tools/lldb/utils/TableGen
+ configure_args+=" -DLLVM_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/llvm-tblgen"
+ configure_args+=" -DCLANG_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/clang-tblgen"
+ configure_args+=" -DCLANG_TIDY_CONFUSABLE_CHARS_GEN=${wrksrc}/llvm/build/HOST/bin/clang-tidy-confusable-chars-gen"
+ configure_args+=" -DCLANG_PSEUDO_GEN=${wrksrc}/llvm/build/HOST/bin/clang-pseudo-gen"
+ [ "$_lldb_enable" = "yes" ] && configure_args+=" -DLLDB_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/lldb-tblgen"
+ cd ../..
+ fi
+
+ case "$XBPS_TARGET_MACHINE" in
+ i686*) _arch="X86";;
+ x86_64*) _arch="X86";;
+ armv5*) _arch="Armv5te";;
+ armv6*) _arch="Armv6";;
+ armv7*) _arch="Armv7";;
+ aarch64*) _arch="AArch64";;
+ mips*) _arch="Mips";;
+ ppc*) _arch="PowerPC";;
+ riscv64*) _arch="RISCV64";;
+ esac
+
+ triplet=${XBPS_CROSS_TRIPLET:-$XBPS_TRIPLET}
+
+ configure_args+=" -DLLVM_TARGET_ARCH=${_arch}"
+ configure_args+=" -DLLVM_HOST_TRIPLE=${triplet}"
+ configure_args+=" -DLLVM_DEFAULT_TARGET_TRIPLE=${triplet}"
+}
+
+do_install() {
+ cd build
+ cmake -DCMAKE_INSTALL_PREFIX=${DESTDIR}/usr -P cmake_install.cmake
+
+ # Required for multilib.
+ if [ "$XBPS_TARGET_MACHINE" = "x86_64" ]; then
+ for _header in llvm-config; do
+ mv ${DESTDIR}/usr/include/llvm/Config/${_header}{,-64}.h
+ vinstall ${FILESDIR}/llvm-Config-${_header}.h 644 \
+ usr/include/llvm/Config ${_header}.h
+ done
+ fi
+
+ # Remove llvm-config-host in cross builds.
+ if [ "$CROSS_BUILD" ]; then
+ rm -f ${DESTDIR}/usr/bin/llvm-config-host
+ fi
+
+ # Install libcxxabi headers
+ vinstall ${wrksrc}/libcxxabi/include/__cxxabi_config.h 644 usr/include
+ vinstall ${wrksrc}/libcxxabi/include/cxxabi.h 644 usr/include
+
+ # Install libunwind headers
+ vinstall ${wrksrc}/libunwind/include/__libunwind_config.h 644 usr/include
+ vinstall ${wrksrc}/libunwind/include/libunwind.h 644 usr/include
+ vinstall ${wrksrc}/libunwind/include/unwind.h 644 usr/include
+ vinstall ${wrksrc}/libunwind/include/mach-o/compact_unwind_encoding.h \
+ 644 usr/include/mach-o
+}
+
+clang-analyzer_package() {
+ pycompile_dirs="usr/share/scan-view"
+ depends="clang-${version}_${revision} python3 perl"
+ short_desc+=" - A source code analysis framework"
+ homepage="https://clang-analyzer.llvm.org/"
+ pkg_install() {
+ vmove "usr/bin/scan-*"
+ vmove "usr/libexec/*analyzer"
+ vmove "usr/share/scan-*"
+ vmove usr/share/man/man1/scan-build.1
+ }
+}
+
+clang-tools-extra_package() {
+ lib32disabled=yes
+ depends="clang-${version}_${revision} python3"
+ short_desc+=" - Extra Clang tools"
+ homepage="https://clang.llvm.org/extra/"
+ pkg_install() {
+ vmove usr/bin/clang-apply-replacements
+ vmove usr/bin/clang-doc
+ vmove usr/bin/clang-include-fixer
+ vmove usr/bin/clang-query
+ vmove usr/bin/clang-rename
+ vmove usr/bin/clang-reorder-fields
+ vmove usr/bin/clang-tidy
+ vmove usr/bin/clangd
+ vmove usr/bin/diagtool
+ vmove usr/bin/find-all-symbols
+ vmove usr/bin/hmaptool
+ vmove usr/bin/modularize
+ vmove usr/bin/pp-trace
+ vmove usr/bin/sancov
+ vmove usr/include/clang-tidy
+ vmove "usr/lib/libclangApplyReplacements*"
+ vmove "usr/lib/libclangDoc*"
+ vmove "usr/lib/libclangIncludeFixer*"
+ vmove "usr/lib/libclangReorderFields*"
+ vmove "usr/lib/libclangQuery*"
+ vmove "usr/lib/libclangTidy*"
+ vmove "usr/share/clang/*include-fixer*"
+ vmove "usr/share/clang/*rename*"
+ vmove "usr/share/clang/*tidy*"
+ vmove usr/share/doc/LLVM/clang-tools
+ vmove usr/share/man/man1/diagtool.1
+ vmove usr/share/man/man1/extraclangtools.1
+ }
+}
+
+clang_package() {
+ lib32disabled=yes
+ depends="libstdc++-devel libgcc-devel binutils ${XBPS_TARGET_LIBC}-devel
+ libclang-${version}_${revision}"
+ short_desc+=" - C language family frontend"
+ homepage="https://clang.llvm.org/"
+ pkg_install() {
+ vmove "usr/bin/*clang*"
+ vmove usr/bin/c-index-test
+ vmove usr/include/clang
+ vmove usr/include/clang-c
+ vmove usr/lib/clang
+ vmove usr/lib/cmake/clang
+ vmove "usr/lib/libclang*.a"
+ vmove "usr/lib/libclang*.so"
+ vmove usr/share/clang
+ vmove usr/share/doc/LLVM/clang
+ vmove usr/share/man/man1/clang.1
+ }
+}
+
+libclang_package() {
+ short_desc+=" - C frontend runtime library"
+ pkg_install() {
+ vmove "usr/lib/libclang.so.*"
+ }
+}
+
+libclang-cpp_package() {
+ short_desc+=" - C frontend runtime library (C++ interface)"
+ pkg_install() {
+ vmove "usr/lib/libclang-cpp.so.*"
+ }
+}
+
+lld_package() {
+ lib32disabled=yes
+ short_desc+=" - linker"
+ homepage="https://lld.llvm.org"
+ pkg_install() {
+ vmove "usr/bin/ld.lld*"
+ vmove "usr/bin/ld64.lld*"
+ vmove "usr/bin/lld*"
+ vmove usr/bin/wasm-ld
+ vmove usr/share/doc/LLVM/lld
+ }
+}
+
+lld-devel_package() {
+ lib32disabled=yes
+ short_desc+=" - linker - development files"
+ homepage="https://lld.llvm.org"
+ depends="lld>=${version}_${revision}"
+ pkg_install() {
+ vmove usr/include/lld
+ vmove usr/lib/cmake/lld
+ vmove "usr/lib/liblld*a"
+ }
+}
+
+lldb_package() {
+ lib32disabled=yes
+ depends+=" python3-six"
+ short_desc+=" - LLDB debugger"
+ homepage="https://lldb.llvm.org/"
+ pkg_install() {
+ vmove "usr/bin/*lldb*"
+ vmove "usr/lib/liblldb*so.*"
+ vmove usr/lib/python*
+ }
+}
+
+lldb-devel_package() {
+ lib32disabled=yes
+ depends="lldb>=${version}_${revision}"
+ short_desc+=" - LLDB debugger - development files"
+ pkg_install() {
+ vmove usr/include/lldb
+ vmove "usr/lib/liblldb*.so"
+ }
+}
+
+llvm-libunwind_package() {
+ short_desc+=" - libunwind"
+ pkg_install() {
+ vmove "usr/lib/libunwind.so.*"
+ }
+}
+
+llvm-libunwind-devel_package() {
+ short_desc+=" - libunwind - development files"
+ depends="llvm-libunwind>=${version}_${revision}"
+ conflicts="libunwind-devel>=0"
+ pkg_install() {
+ vmove usr/include/mach-o
+ vmove "usr/include/*unwind*"
+ vmove "usr/lib/libunwind.a"
+ vmove "usr/lib/libunwind.so"
+ vmove usr/share/doc/LLVM/libunwind
+ }
+}
+
+libcxxabi_package() {
+ short_desc+=" - low level support for libc++"
+ pkg_install() {
+ vmove "usr/lib/libc++abi.so.*"
+ }
+}
+
+libcxxabi-devel_package() {
+ short_desc+=" - low level support for libc++ - development files"
+ depends="libcxxabi>=${version}_${revision}"
+ pkg_install() {
+ vmove "usr/include/*cxxabi*"
+ vmove "usr/lib/libc++abi.so"
+ vmove "usr/lib/libc++abi.a"
+ }
+}
+
+libcxx_package() {
+ short_desc+=" - C++ standard library"
+ pkg_install() {
+ vmove "usr/lib/libc++.so.*"
+ }
+}
+
+libcxx-devel_package() {
+ short_desc+=" - C++ standard library - development files"
+ depends="libcxx>=${version}_${revision}"
+ pkg_install() {
+ vmove usr/include/c++
+ vmove "usr/lib/libc++.so"
+ vmove "usr/lib/libc++.a"
+ vmove "usr/lib/libc++experimental.a"
+ vmove usr/share/doc/LLVM/libcxx
+ }
+}
+
+libomp_package() {
+ short_desc+=" - Clang OpenMP support library"
+ pkg_install() {
+ vmove usr/lib/libarcher.so
+ vmove usr/lib/libompd.so
+ vmove "usr/lib/libomptarget.rtl.*.so"
+ vmove "usr/lib/libomp*.so.*"
+ }
+}
+
+libomp-devel_package() {
+ short_desc+=" - Clang OpenMP support library - development files"
+ depends="libomp>=${version}_${revision}"
+ pkg_install() {
+ vmove "usr/include/omp*.h"
+ vmove "usr/lib/clang/${version}/include/omp*.h"
+ vmove "usr/lib/libarcher*"
+ vmove "usr/lib/libomp*.so"
+ vmove usr/lib/cmake/openmp
+ vmove usr/share/doc/LLVM/openmp
+ vmove usr/share/man/man1/llvmopenmp.1
+ }
+}
+
+libllvm15_package() {
+ short_desc+=" - runtime library"
+ pkg_install() {
+ vmove "usr/lib/libLLVM-*.so*"
+ }
+}
diff --git a/srcpkgs/llvm15/update b/srcpkgs/llvm15/update
new file mode 100644
index 000000000000..e95cf26b3586
--- /dev/null
+++ b/srcpkgs/llvm15/update
@@ -0,0 +1,3 @@
+site="https://github.com/llvm/llvm-project/releases"
+pattern="llvmorg-\K(\d+.){2}\d+(-rc\d+)?"
+ignore="*-rc*"
From 20d634420c95f79cab4217a0a162c1794591ec23 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Sun, 18 Dec 2022 00:40:18 +0100
Subject: [PATCH 02/17] llvm: update to 15
---
common/shlibs | 6 +++---
srcpkgs/clang | 2 +-
srcpkgs/clang-analyzer | 2 +-
srcpkgs/clang-tools-extra | 2 +-
srcpkgs/libclang | 2 +-
srcpkgs/libclang-cpp | 2 +-
srcpkgs/libcxx | 2 +-
srcpkgs/libcxx-devel | 2 +-
srcpkgs/libcxxabi | 2 +-
srcpkgs/libcxxabi-devel | 2 +-
srcpkgs/libomp | 2 +-
srcpkgs/libomp-devel | 2 +-
srcpkgs/lld | 2 +-
srcpkgs/lld-devel | 2 +-
srcpkgs/lldb | 2 +-
srcpkgs/lldb-devel | 2 +-
srcpkgs/llvm-libunwind | 2 +-
srcpkgs/llvm-libunwind-devel | 2 +-
srcpkgs/llvm/template | 6 +++---
19 files changed, 23 insertions(+), 23 deletions(-)
diff --git a/common/shlibs b/common/shlibs
index fb406ba6a045..cebbd1a43219 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -987,9 +987,9 @@ 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.12 lldb-12.0.0_1
-libclang.so.12 libclang-12.0.0_1
-libclang-cpp.so.12 libclang-cpp-12.0.0_1
+liblldb.so.15 lldb-15.0.7_1
+libclang.so.15 libclang-15.0.7_1
+libclang-cpp.so.15 libclang-cpp-15.0.7_1
libLLVM-11.so libllvm11-11.0.0_1
libLLVM-12.so libllvm12-12.0.0_1
libLLVM-15.so libllvm15-15.0.7_1
diff --git a/srcpkgs/clang b/srcpkgs/clang
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/clang
+++ b/srcpkgs/clang
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/clang-analyzer b/srcpkgs/clang-analyzer
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/clang-analyzer
+++ b/srcpkgs/clang-analyzer
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/clang-tools-extra b/srcpkgs/clang-tools-extra
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/clang-tools-extra
+++ b/srcpkgs/clang-tools-extra
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libclang b/srcpkgs/libclang
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libclang
+++ b/srcpkgs/libclang
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libclang-cpp b/srcpkgs/libclang-cpp
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libclang-cpp
+++ b/srcpkgs/libclang-cpp
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxx b/srcpkgs/libcxx
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxx
+++ b/srcpkgs/libcxx
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxx-devel b/srcpkgs/libcxx-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxx-devel
+++ b/srcpkgs/libcxx-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxxabi b/srcpkgs/libcxxabi
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxxabi
+++ b/srcpkgs/libcxxabi
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxxabi-devel b/srcpkgs/libcxxabi-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxxabi-devel
+++ b/srcpkgs/libcxxabi-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libomp b/srcpkgs/libomp
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libomp
+++ b/srcpkgs/libomp
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libomp-devel b/srcpkgs/libomp-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libomp-devel
+++ b/srcpkgs/libomp-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lld b/srcpkgs/lld
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lld
+++ b/srcpkgs/lld
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lld-devel b/srcpkgs/lld-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lld-devel
+++ b/srcpkgs/lld-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lldb b/srcpkgs/lldb
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lldb
+++ b/srcpkgs/lldb
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lldb-devel b/srcpkgs/lldb-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lldb-devel
+++ b/srcpkgs/lldb-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm-libunwind b/srcpkgs/llvm-libunwind
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/llvm-libunwind
+++ b/srcpkgs/llvm-libunwind
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm-libunwind-devel b/srcpkgs/llvm-libunwind-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/llvm-libunwind-devel
+++ b/srcpkgs/llvm-libunwind-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm/template b/srcpkgs/llvm/template
index a92db6f94f9f..fc1c850bd26f 100644
--- a/srcpkgs/llvm/template
+++ b/srcpkgs/llvm/template
@@ -1,11 +1,11 @@
# Template file for 'llvm'
pkgname=llvm
-version=12.0.0
+version=15
revision=1
build_style=meta
-depends="llvm12"
-replaces="llvm11>=0 llvm10>=0 llvm9>=0 llvm8>=0 llvm7>=0 llvm6.0>=0 llvm3.9>=0"
+depends="llvm15"
short_desc="LLVM meta package"
maintainer="Enno Boland <gottox@voidlinux.org>"
license="Public Domain"
homepage="https://www.voidlinux.org"
+replaces="llvm12>=0 llvm11>=0 llvm10>=0 llvm9>=0 llvm8>=0 llvm7>=0 llvm6.0>=0 llvm3.9>=0"
From e22a5a8af503b20993556021f59e3277d100aa6d Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Sun, 18 Dec 2022 12:20:08 +0100
Subject: [PATCH 03/17] llvm12: remove bumped subpackages
---
srcpkgs/llvm12/template | 264 +---------------------------------------
1 file changed, 1 insertion(+), 263 deletions(-)
diff --git a/srcpkgs/llvm12/template b/srcpkgs/llvm12/template
index f8ea3ba641ae..aea0b43cf573 100644
--- a/srcpkgs/llvm12/template
+++ b/srcpkgs/llvm12/template
@@ -50,55 +50,7 @@ case "$XBPS_TARGET_MACHINE" in
ppc*) configure_args+=" -DCLANG_ENABLE_CLANGD=OFF" ;;
esac
-_enabled_projects="clang;clang-tools-extra;compiler-rt;libcxx;libcxxabi;libunwind;lld"
-
-_lldb_enable=yes
-_libomp_enable=no
-
-case "$XBPS_TARGET_MACHINE" in
- ppc64le*) ;;
- ppc*|i686*) _lldb_enable=no ;;
-esac
-
-case "$XBPS_TARGET_MACHINE" in
- x86_64*|aarch64*|ppc64*) _libomp_enable=yes;;
-esac
-
-subpackages="clang-tools-extra"
-
-# must go before clang
-if [ "$_libomp_enable" = "yes" ]; then
- _enabled_projects+=";openmp"
- subpackages+=" libomp libomp-devel"
- # because of cmake nonsense referencing libomptarget.so.*
- depends+=" libomp>=${version}_${revision}"
-fi
-
-subpackages+=" clang clang-analyzer libclang libclang-cpp
- llvm-libunwind llvm-libunwind-devel libcxx libcxx-devel
- libcxxabi libcxxabi-devel libllvm12"
-
-if [ "$_lldb_enable" = "yes" ]; then
- # XXX fails to cross compile due to python
- _enabled_projects+=";lldb"
- subpackages+=" lldb lldb-devel"
-fi
-
-subpackages+=" lld lld-devel"
-
-configure_args+=" -DLLVM_ENABLE_PROJECTS=${_enabled_projects}"
-
post_patch() {
- if [ "$_lldb_enable" = "yes" ]; then
- if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
- vsed -i 's|__ptrace_request|int|g' \
- ${wrksrc}/lldb/source/Plugins/Process/Linux/NativeProcessLinux.cpp
- fi
- # disable docs for lldb as they fail to generate
- vsed -i '/add_subdirectory(docs)/d' \
- ${wrksrc}/lldb/CMakeLists.txt
- fi
-
# update config.guess for better platform detection
cp $XBPS_COMMONDIR/environment/configure/automake/config.guess \
${wrksrc}/llvm/cmake
@@ -154,14 +106,12 @@ pre_configure() {
cd build/HOST
CC="$BUILD_CC" CXX="$BUILD_CXX" CFLAGS="$BUILD_CFLAGS" \
CXXFLAGS="$BUILD_CXXFLAGS" LDFLAGS="$BUILD_LDFLAGS" \
- cmake ../.. -DCMAKE_BUILD_TYPE=Release \
- -DLLVM_ENABLE_PROJECTS=${_enabled_projects}
+ cmake ../.. -DCMAKE_BUILD_TYPE=Release
make ${makejobs} -C utils/TableGen
make ${makejobs} -C tools/clang/utils/TableGen
[ "$_lldb_enable" = "yes" ] && make ${makejobs} -C tools/lldb/utils/TableGen
configure_args+=" -DLLVM_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/llvm-tblgen"
configure_args+=" -DCLANG_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/clang-tblgen"
- [ "$_lldb_enable" = "yes" ] && configure_args+=" -DLLDB_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/lldb-tblgen"
cd ../..
fi
@@ -201,218 +151,6 @@ do_install() {
if [ "$CROSS_BUILD" ]; then
rm -f ${DESTDIR}/usr/bin/llvm-config-host
fi
-
- # Install libcxxabi headers
- vinstall ${wrksrc}/libcxxabi/include/__cxxabi_config.h 644 usr/include
- vinstall ${wrksrc}/libcxxabi/include/cxxabi.h 644 usr/include
-
- # Install libunwind headers
- vinstall ${wrksrc}/libunwind/include/__libunwind_config.h 644 usr/include
- vinstall ${wrksrc}/libunwind/include/libunwind.h 644 usr/include
- vinstall ${wrksrc}/libunwind/include/unwind.h 644 usr/include
- vinstall ${wrksrc}/libunwind/include/mach-o/compact_unwind_encoding.h \
- 644 usr/include/mach-o
-}
-
-clang-analyzer_package() {
- pycompile_dirs="usr/share/scan-view"
- depends="clang-${version}_${revision} python3 perl"
- short_desc+=" - A source code analysis framework"
- homepage="https://clang-analyzer.llvm.org/"
- pkg_install() {
- vmove usr/share/man/man1/scan-build.1
- vmove "/usr/bin/scan-*"
- vmove "/usr/share/scan-*"
- vmove "/usr/libexec/*analyzer"
- }
-}
-
-clang-tools-extra_package() {
- lib32disabled=yes
- depends="clang-${version}_${revision} python3"
- short_desc+=" - Extra Clang tools"
- homepage="https://clang.llvm.org/extra/"
- pkg_install() {
- vmove usr/include/clang-tidy
- vmove usr/bin/clang-apply-replacements
- vmove usr/bin/clang-query
- vmove usr/bin/clang-rename
- vmove usr/bin/clang-tidy
- vmove usr/bin/diagtool
- vmove usr/bin/find-all-symbols
- vmove usr/bin/hmaptool
- vmove usr/bin/modularize
- vmove usr/bin/pp-trace
- vmove usr/bin/sancov
- vmove "usr/lib/libclangApplyReplacements*"
- vmove "usr/lib/libclangQuery*"
- vmove "usr/lib/libclangTidy*"
- vmove "usr/share/clang/*tidy*"
- vmove usr/share/doc/clang-tools
- vmove usr/share/man/man1/extraclangtools.1
- vmove usr/share/man/man1/diagtool.1
- }
-}
-
-clang_package() {
- lib32disabled=yes
- depends="libstdc++-devel libgcc-devel binutils ${XBPS_TARGET_LIBC}-devel
- libclang-${version}_${revision}"
- short_desc+=" - C language family frontend"
- homepage="https://clang.llvm.org/"
- pkg_install() {
- vmove usr/include/clang
- vmove usr/include/clang-c
- vmove "usr/bin/*clang*"
- vmove usr/bin/c-index-test
- vmove usr/lib/clang
- vmove usr/lib/cmake/clang
- vmove "usr/lib/libclang*.a"
- vmove "usr/lib/libclang*.so"
- vmove usr/share/clang
- vmove usr/share/doc/clang
- vmove usr/share/man/man1/clang.1
- }
-}
-
-libclang_package() {
- short_desc+=" - C frontend runtime library"
- pkg_install() {
- vmove "usr/lib/libclang.so.*"
- }
-}
-
-libclang-cpp_package() {
- short_desc+=" - C frontend runtime library (C++ interface)"
- pkg_install() {
- vmove "usr/lib/libclang-cpp.so.*"
- }
-}
-
-lld_package() {
- lib32disabled=yes
- short_desc+=" - linker"
- homepage="https://lld.llvm.org"
- pkg_install() {
- vmove usr/bin/lld*
- vmove usr/bin/wasm-ld
- vmove usr/bin/ld.lld*
- vmove usr/bin/ld64.lld*
- vmove usr/share/doc/lld
- }
-}
-
-lld-devel_package() {
- lib32disabled=yes
- short_desc+=" - linker - development files"
- homepage="https://lld.llvm.org"
- depends="lld>=${version}_${revision}"
- pkg_install() {
- vmove usr/include/lld
- vmove usr/lib/cmake/lld
- vmove "usr/lib/liblld*a"
- }
-}
-
-lldb_package() {
- lib32disabled=yes
- depends+=" python3-six"
- short_desc+=" - LLDB debugger"
- homepage="https://lldb.llvm.org/"
- pkg_install() {
- vmove usr/bin/*lldb*
- vmove usr/lib/liblldb*so.*
- vmove /usr/lib/python*
- }
-}
-
-lldb-devel_package() {
- lib32disabled=yes
- depends="lldb>=${version}_${revision}"
- short_desc+=" - LLDB debugger - development files"
- pkg_install() {
- vmove usr/include/lldb
- vmove "usr/lib/liblldb*.so"
- }
-}
-
-llvm-libunwind_package() {
- short_desc+=" - libunwind"
- pkg_install() {
- vmove "usr/lib/libunwind.so.*"
- }
-}
-
-llvm-libunwind-devel_package() {
- short_desc+=" - libunwind - development files"
- depends="llvm-libunwind>=${version}_${revision}"
- conflicts="libunwind-devel>=0"
- pkg_install() {
- vmove usr/lib/libunwind.so
- vmove usr/lib/libunwind.a
- vmove "usr/include/*unwind*"
- vmove usr/include/mach-o
- vmove usr/share/doc/libunwind
- }
-}
-
-libcxxabi_package() {
- short_desc+=" - low level support for libc++"
- pkg_install() {
- vmove "usr/lib/libc++abi.so.*"
- }
-}
-
-libcxxabi-devel_package() {
- short_desc+=" - low level support for libc++ - development files"
- depends="libcxxabi>=${version}_${revision}"
- pkg_install() {
- vmove usr/lib/libc++abi.so
- vmove usr/lib/libc++abi.a
- vmove "usr/include/*cxxabi*"
- }
-}
-
-libcxx_package() {
- short_desc+=" - C++ standard library"
- pkg_install() {
- vmove "usr/lib/libc++.so.*"
- }
-}
-
-libcxx-devel_package() {
- short_desc+=" - C++ standard library - development files"
- depends="libcxx>=${version}_${revision}"
- pkg_install() {
- vmove usr/lib/libc++.so
- vmove usr/lib/libc++.a
- vmove usr/lib/libc++experimental.a
- vmove usr/include/c++
- vmove usr/share/doc/libcxx
- }
-}
-
-libomp_package() {
- short_desc+=" - Clang OpenMP support library"
- pkg_install() {
- vmove usr/lib/libomp.so
- vmove "usr/lib/libomptarget.rtl.*.so"
- vmove usr/lib/libarcher.so
- vmove "usr/lib/libomp*.so.*"
- }
-}
-
-libomp-devel_package() {
- short_desc+=" - Clang OpenMP support library - development files"
- depends="libomp>=${version}_${revision}"
- pkg_install() {
- vmove "usr/lib/libomp*.so"
- vmove "usr/lib/libarcher*"
- vmove "usr/include/omp*.h"
- vmove "usr/lib/clang/${version}/include/omp*.h"
- vmove usr/share/man/man1/llvmopenmp.1
- vmove usr/share/doc/openmp
- }
}
libllvm12_package() {
From 92b45af858c36222c22354a6e9c022f2c417073e Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:27:03 +0100
Subject: [PATCH 04/17] mesa: rebuild for llvm15
---
srcpkgs/mesa/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/mesa/template b/srcpkgs/mesa/template
index 4c3c9ec6039e..0641b28a80d6 100644
--- a/srcpkgs/mesa/template
+++ b/srcpkgs/mesa/template
@@ -1,7 +1,7 @@
# Template file for 'mesa'
pkgname=mesa
version=22.2.4
-revision=2
+revision=3
build_style=meson
configure_args="-Dglvnd=true -Dshared-glapi=enabled -Dgbm=enabled -Degl=enabled
-Dosmesa=true -Dgles1=enabled -Dgles2=enabled -Dglx=dri -Ddri3=enabled
From 30cc2090b4665b5cd519e97acf22b7a979dbb007 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:34:04 +0100
Subject: [PATCH 05/17] bcc: rebuild for llvm15
---
srcpkgs/bcc/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/bcc/template b/srcpkgs/bcc/template
index 7526580f17ed..bdbcff7227a0 100644
--- a/srcpkgs/bcc/template
+++ b/srcpkgs/bcc/template
@@ -1,7 +1,7 @@
# Template file for 'bcc'
pkgname=bcc
version=0.26.0
-revision=2
+revision=3
build_style=cmake
configure_args="-DREVISION=${version} -DENABLE_LLVM_SHARED=1"
hostmakedepends="flex python3-setuptools"
From 8c529f0865535d61b180c7d3f0c38a5a0be9188f Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:37:25 +0100
Subject: [PATCH 06/17] bpftrace: rebuild for llvm15
---
srcpkgs/bpftrace/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/bpftrace/template b/srcpkgs/bpftrace/template
index 857815d29eef..47f2b5e77024 100644
--- a/srcpkgs/bpftrace/template
+++ b/srcpkgs/bpftrace/template
@@ -1,7 +1,7 @@
# Template file for 'bpftrace'
pkgname=bpftrace
version=0.16.0
-revision=1
+revision=2
archs="x86_64* aarch64* ppc64*"
build_style=cmake
configure_args="-DBUILD_TESTING=OFF" # needs root to run
From 58444aa5b7ab5e8a1a5790291dc21eee3dd70bcb Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:43:53 +0100
Subject: [PATCH 07/17] CastXML: rebuild for llvm15
---
srcpkgs/CastXML/template | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/srcpkgs/CastXML/template b/srcpkgs/CastXML/template
index 5d7d9503658c..28c424c78073 100644
--- a/srcpkgs/CastXML/template
+++ b/srcpkgs/CastXML/template
@@ -1,7 +1,7 @@
# Template file for 'CastXML'
pkgname=CastXML
version=0.4.6
-revision=1
+revision=2
build_style=cmake
configure_args="-DSPHINX_MAN=YES -DCastXML_INSTALL_MAN_DIR=share/man"
hostmakedepends="clang python3-Sphinx"
@@ -12,8 +12,8 @@ short_desc="C-family abstract syntax tree XML output tool"
maintainer="Evgeny Ermakov <evgeny.v.ermakov@gmail.com>"
license="Apache-2.0"
homepage="https://github.com/CastXML/CastXML"
-distfiles="https://github.com/CastXML/CastXML/archive/v${version}.tar.gz"
-checksum=8dcdbc1f23a130e4bdb0b09f57c30761a02a346b4db4037555048af2a293d66a
+distfiles="https://github.com/CastXML/CastXML/archive/refs/tags/v${version}.tar.gz"
+checksum=bb9024ec9ea5082e0d527f19bf3c2df79f1699f54b6cec168c024e727b32e6d1
post_install() {
rm -r ${DESTDIR}/usr/share/castxml/clang/include
From 6b2ea678f0d595d7b9a43401dcf5497484cb1ad3 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:48:55 +0100
Subject: [PATCH 08/17] ccls: rebuild for llvm15
---
srcpkgs/ccls/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/ccls/template b/srcpkgs/ccls/template
index 82fa61933878..ecc9f3e38a5d 100644
--- a/srcpkgs/ccls/template
+++ b/srcpkgs/ccls/template
@@ -1,7 +1,7 @@
# Template file for 'ccls'
pkgname=ccls
version=0.20220729
-revision=1
+revision=2
build_style=cmake
hostmakedepends="clang-tools-extra"
makedepends="clang-tools-extra libxml2-devel llvm ncurses-devel rapidjson zlib-devel"
From dce97e235b640ac80e5e8f8a66ec6d3fe8c5b832 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:52:14 +0100
Subject: [PATCH 09/17] include-what-you-use: update to 0.19
---
srcpkgs/include-what-you-use/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/include-what-you-use/template b/srcpkgs/include-what-you-use/template
index d3655709c20c..1a30bc04bb2d 100644
--- a/srcpkgs/include-what-you-use/template
+++ b/srcpkgs/include-what-you-use/template
@@ -1,6 +1,6 @@
# Template file for 'include-what-you-use'
pkgname=include-what-you-use
-version=0.16
+version=0.19
revision=1
build_style=cmake
configure_args="-DIWYU_LLVM_ROOT_PATH=${XBPS_CROSS_BASE}/usr "
@@ -11,7 +11,7 @@ maintainer="Leah Neukirchen <leah@vuxu.org>"
license="NCSA"
homepage="https://include-what-you-use.org/"
distfiles="https://include-what-you-use.org/downloads/${pkgname}-${version}.src.tar.gz"
-checksum=8d6fc9b255343bc1e5ec459e39512df1d51c60e03562985e0076036119ff5a1c
+checksum=2b10157b60ea08adc08e3896b4921c73fcadd5ec4eb652b29a34129d501e5ee0
python_version=3
post_install() {
From 06329bff205736f7a7b4667d86fdd04c205348e5 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 15:11:06 +0100
Subject: [PATCH 10/17] SPIRV-LLVM-Translator: update to 15.0.0
---
srcpkgs/SPIRV-LLVM-Translator/template | 13 +++++++------
1 file changed, 7 insertions(+), 6 deletions(-)
diff --git a/srcpkgs/SPIRV-LLVM-Translator/template b/srcpkgs/SPIRV-LLVM-Translator/template
index a2754e58c0e8..bee99f9bcbb2 100644
--- a/srcpkgs/SPIRV-LLVM-Translator/template
+++ b/srcpkgs/SPIRV-LLVM-Translator/template
@@ -1,19 +1,20 @@
# Template file for 'SPIRV-LLVM-Translator'
pkgname=SPIRV-LLVM-Translator
-version=12.0.0
-revision=2
+version=15.0.0
+revision=1
build_style=cmake
make_build_args="llvm-spirv"
configure_args="-Wno-dev -DLLVM_LINK_LLVM_DYLIB=ON -DCMAKE_SKIP_RPATH=ON
- -DLLVM_SPIRV_INCLUDE_TESTS=OFF -DBUILD_SHARED_LIBS=ON"
+ -DLLVM_SPIRV_INCLUDE_TESTS=OFF -DBUILD_SHARED_LIBS=ON
+ -DLLVM_EXTERNAL_SPIRV_HEADERS_SOURCE_DIR=/usr"
hostmakedepends="clang llvm"
-makedepends="clang-tools-extra llvm"
+makedepends="clang-tools-extra llvm SPIRV-Headers"
short_desc="API and commands for processing SPIR-V modules"
maintainer="Orphaned <orphan@voidlinux.org>"
license="NCSA"
homepage="https://github.com/KhronosGroup/SPIRV-LLVM-Translator"
-distfiles="https://github.com/KhronosGroup/${pkgname}/archive/refs/tags/v${version}.tar.gz"
-checksum=6e4fad04203f25fcde4c308c53e9f59bd05a390978992db3212d4b63aff62108
+distfiles="https://github.com/KhronosGroup/SPIRV-LLVM-Translator/archive/refs/tags/v${version}.tar.gz"
+checksum=b1bebd77f72988758c00852e78c2ddc545815a612169a0cb377d021e2f846d88
post_install() {
vlicense LICENSE.TXT
From 91523bf89d8290542ea7779666f29d75b86bd2cc Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Fri, 6 Jan 2023 17:11:04 +0100
Subject: [PATCH 11/17] rtags: rebuild for llvm15
---
srcpkgs/rtags/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/rtags/template b/srcpkgs/rtags/template
index b496a1b0e721..9b161e690d76 100644
--- a/srcpkgs/rtags/template
+++ b/srcpkgs/rtags/template
@@ -1,7 +1,7 @@
# Template file for 'rtags'
pkgname=rtags
version=2.38
-revision=5
+revision=6
build_style=cmake
# Don't run tests in do_install, please.
configure_args="-DSKIP_CTEST=TRUE"
From 4b3691ab43fe3fe119aa15bcb995d98cac04fc65 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Fri, 6 Jan 2023 17:14:14 +0100
Subject: [PATCH 12/17] juCi++: rebuild for llvm15
---
srcpkgs/juCi++/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/juCi++/template b/srcpkgs/juCi++/template
index c1969237f11d..416bde7cc4d0 100644
--- a/srcpkgs/juCi++/template
+++ b/srcpkgs/juCi++/template
@@ -1,7 +1,7 @@
# Template file for 'juCi++'
pkgname=juCi++
version=1.7.2
-revision=2
+revision=3
_libclangmm_commit="9704b9b6de0982a588fa41741157d5640afedf30"
_tiny_commit="839ff806dc447ff49af80f9a9eaa7949f770f8e5"
create_wrksrc=yes
From 8c337a5d7cc88c6663bfa8d27064cac0f1485e8e Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Sat, 7 Jan 2023 11:31:14 +0100
Subject: [PATCH 13/17] qt5: rebuild for llvm15
---
srcpkgs/qt5/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/qt5/template b/srcpkgs/qt5/template
index f4f9f5b5344a..b517b49ead2d 100644
--- a/srcpkgs/qt5/template
+++ b/srcpkgs/qt5/template
@@ -5,7 +5,7 @@ pkgname=qt5
version=5.15.7+20221119
# commit f8c9fb304bc3e53b3aa07f962cd74e9160decccc
# base repo: https://invent.kde.org/qt/qt/qt5
-revision=1
+revision=2
build_style=meta
hostmakedepends="cmake clang flex perl glib-devel pkg-config
python re2c ruby which"
From 5bdc742ad0ac7955ea11737d8b3426d317c5ae4c Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Mon, 9 Jan 2023 01:22:18 +0100
Subject: [PATCH 14/17] codelite: rebuild for llvm15
---
srcpkgs/codelite/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/codelite/template b/srcpkgs/codelite/template
index 6b8b007c8a43..c6115e0274ce 100644
--- a/srcpkgs/codelite/template
+++ b/srcpkgs/codelite/template
@@ -1,7 +1,7 @@
# Template file for 'codelite'
pkgname=codelite
version=16.0.0
-revision=2
+revision=3
create_wrksrc=yes
build_style=cmake
build_helper=cmake-wxWidgets-gtk3
From 2dbcd466df2add2c0798bd71507756e20386d132 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Mon, 9 Jan 2023 01:58:21 +0100
Subject: [PATCH 15/17] kdevelop: rebuild for llvm15
---
srcpkgs/kdevelop/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/kdevelop/template b/srcpkgs/kdevelop/template
index 5eb275583138..c32ee5240a44 100644
--- a/srcpkgs/kdevelop/template
+++ b/srcpkgs/kdevelop/template
@@ -1,7 +1,7 @@
# Template file for 'kdevelop'
pkgname=kdevelop
version=22.12.1
-revision=1
+revision=2
build_style=cmake
configure_args="-DBUILD_TESTING=OFF"
hostmakedepends="extra-cmake-modules qt5-qmake qt5-host-tools qt5-tools
From 6ce54fd1663ec08d903369197a86734c1d8ed5f8 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Mon, 16 Jan 2023 14:43:47 +0100
Subject: [PATCH 16/17] zig: update to 0.10.1
---
.../0001-std.build-fix-handling-of-Dcpu.patch | 48 -------------------
srcpkgs/zig/template | 10 ++--
2 files changed, 6 insertions(+), 52 deletions(-)
delete mode 100644 srcpkgs/zig/patches/0001-std.build-fix-handling-of-Dcpu.patch
diff --git a/srcpkgs/zig/patches/0001-std.build-fix-handling-of-Dcpu.patch b/srcpkgs/zig/patches/0001-std.build-fix-handling-of-Dcpu.patch
deleted file mode 100644
index 4101f24459bb..000000000000
--- a/srcpkgs/zig/patches/0001-std.build-fix-handling-of-Dcpu.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From 1e8cdace7ad324a42228aeb5cd6eb8dd15429413 Mon Sep 17 00:00:00 2001
-From: Isaac Freund <ifreund@ifreund.xyz>
-Date: Tue, 21 Sep 2021 21:06:10 +0200
-Subject: [PATCH] std.build: fix handling of -Dcpu
-
-Currently -Dcpu is completely ignored if -Dtarget isn't passed as well.
-Further, -Dcpu=baseline is ignored even if -Dtarget=native is passed.
-
-This patch fixes these 2 issues, always respecting the -Dcpu option if
-present.
----
- lib/std/build.zig | 13 +++++++------
- 1 file changed, 7 insertions(+), 6 deletions(-)
-
-diff --git a/lib/std/build.zig b/lib/std/build.zig
-index 9b7ebb1f4..e398529f9 100644
---- a/lib/std/build.zig
-+++ b/lib/std/build.zig
-@@ -685,7 +685,11 @@ pub const Builder = struct {
- );
- const mcpu = self.option([]const u8, "cpu", "Target CPU");
-
-- const triple = maybe_triple orelse return args.default_target;
-+ if (maybe_triple == null and mcpu == null) {
-+ return args.default_target;
-+ }
-+
-+ const triple = maybe_triple orelse "native";
-
- var diags: CrossTarget.ParseOptions.Diagnostics = .{};
- const selected_target = CrossTarget.parse(.{
-@@ -2451,11 +2455,8 @@ pub const LibExeObjStep = struct {
-
- if (populated_cpu_features.eql(cross.cpu.features)) {
- // The CPU name alone is sufficient.
-- // If it is the baseline CPU, no command line args are required.
-- if (cross.cpu.model != std.Target.Cpu.baseline(cross.cpu.arch).model) {
-- try zig_args.append("-mcpu");
-- try zig_args.append(cross.cpu.model.name);
-- }
-+ try zig_args.append("-mcpu");
-+ try zig_args.append(cross.cpu.model.name);
- } else {
- var mcpu_buffer = std.ArrayList(u8).init(builder.allocator);
-
---
-2.33.1
-
diff --git a/srcpkgs/zig/template b/srcpkgs/zig/template
index 728c5a64e9df..9807f7ab206b 100644
--- a/srcpkgs/zig/template
+++ b/srcpkgs/zig/template
@@ -1,17 +1,19 @@
# Template file for 'zig'
pkgname=zig
-version=0.8.1
-revision=2
+version=0.10.1
+revision=1
archs="x86_64* aarch64*"
build_style=cmake
make_cmd=make
-makedepends="clang llvm12 lld-devel"
+# we add xml2, zstd, zlib and ncurses
+# because our lld is static-only and requires those to work
+makedepends="clang llvm15 lld-devel libxml2-devel libzstd-devel ncurses-devel zlib-devel"
short_desc="Programming language designed for robustness, optimality, and clarity"
maintainer="Isaac Freund <mail@isaacfreund.com>"
license="MIT"
homepage="https://ziglang.org"
distfiles="https://ziglang.org/download/${version}/zig-${version}.tar.xz"
-checksum=8c428e14a0a89cb7a15a6768424a37442292858cdb695e2eb503fa3c7bf47f1a
+checksum=69459bc804333df077d441ef052ffa143d53012b655a51f04cfef1414c04168c
nopie=yes
nocross=yes
From d46036e94c85b3ea2bbf0b3b8eef8eff2f4eb164 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Tue, 24 Jan 2023 14:03:51 +0100
Subject: [PATCH 17/17] river: update to 0.2.3
---
...ble-PIE-for-river-riverctl-rivertile.patch | 42 -------------------
srcpkgs/river/template | 10 ++---
2 files changed, 5 insertions(+), 47 deletions(-)
delete mode 100644 srcpkgs/river/patches/0001-Enable-PIE-for-river-riverctl-rivertile.patch
diff --git a/srcpkgs/river/patches/0001-Enable-PIE-for-river-riverctl-rivertile.patch b/srcpkgs/river/patches/0001-Enable-PIE-for-river-riverctl-rivertile.patch
deleted file mode 100644
index ecc68302db09..000000000000
--- a/srcpkgs/river/patches/0001-Enable-PIE-for-river-riverctl-rivertile.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From 759c1c7a915083f3da46960ff82fa2a3566a7065 Mon Sep 17 00:00:00 2001
-From: Isaac Freund <mail@isaacfreund.com>
-Date: Wed, 3 Nov 2021 14:21:35 +0100
-Subject: [PATCH] Enable PIE for river, riverctl, rivertile
-
-There is sadly not yet a standard way to do this exposed by the zig
-build system. See: https://github.com/ziglang/zig/issues/7201
----
- build.zig | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/build.zig b/build.zig
-index d561f49..8ac9a4e 100644
---- a/build.zig
-+++ b/build.zig
-@@ -85,6 +85,7 @@ pub fn build(b: *zbs.Builder) !void {
- const river = b.addExecutable("river", "river/main.zig");
- river.setTarget(target);
- river.setBuildMode(mode);
-+ river.pie = true;
- river.addBuildOption(bool, "xwayland", xwayland);
- river.addBuildOption([:0]const u8, "version", full_version);
-
-@@ -97,6 +98,7 @@ pub fn build(b: *zbs.Builder) !void {
- const riverctl = b.addExecutable("riverctl", "riverctl/main.zig");
- riverctl.setTarget(target);
- riverctl.setBuildMode(mode);
-+ riverctl.pie = true;
- riverctl.addBuildOption([:0]const u8, "version", full_version);
-
- riverctl.step.dependOn(&scanner.step);
-@@ -114,6 +116,7 @@ pub fn build(b: *zbs.Builder) !void {
- const rivertile = b.addExecutable("rivertile", "rivertile/main.zig");
- rivertile.setTarget(target);
- rivertile.setBuildMode(mode);
-+ rivertile.pie = true;
- rivertile.addBuildOption([:0]const u8, "version", full_version);
-
- rivertile.step.dependOn(&scanner.step);
---
-2.33.1
-
diff --git a/srcpkgs/river/template b/srcpkgs/river/template
index 3906858d507e..431aa4bd8e8e 100644
--- a/srcpkgs/river/template
+++ b/srcpkgs/river/template
@@ -1,18 +1,18 @@
# Template file for 'river'
pkgname=river
-version=0.1.1
-revision=2
+version=0.2.3
+revision=1
build_style=zig-build
-configure_args="$(vopt_if xwayland -Dxwayland)"
+configure_args="$(vopt_if xwayland -Dxwayland) -Dpie"
hostmakedepends="pkg-config wayland-devel scdoc"
-makedepends="wlroots0.15-devel libevdev-devel"
+makedepends="wlroots-devel libevdev-devel"
depends="$(vopt_if xwayland xorg-server-xwayland)"
short_desc="Dynamic tiling Wayland compositor"
maintainer="Isaac Freund <mail@isaacfreund.com>"
license="GPL-3.0-or-later"
homepage="https://github.com/riverwm/river"
distfiles="${homepage}/releases/download/v${version}/river-${version}.tar.gz"
-checksum=2a0bcd4670ed9ebd39c279f2bf10803fc65c9f3ee2307ce40728df23ce914d18
+checksum=7acdd2b929e16a20006b4baf1f29e7a8dc7f70cf5747e1503a610a90d1637132
build_options="xwayland"
build_options_default="xwayland"
^ permalink raw reply [flat|nested] 96+ messages in thread
* Re: [PR PATCH] [Updated] [WIP] LLVM 15
2022-11-28 15:30 [PR PATCH] [WIP] LLVM 15 tranzystorek-io
` (54 preceding siblings ...)
2023-02-01 12:34 ` tranzystorek-io
@ 2023-02-05 12:42 ` tranzystorek-io
2023-02-05 13:58 ` tranzystorek-io
` (38 subsequent siblings)
94 siblings, 0 replies; 96+ messages in thread
From: tranzystorek-io @ 2023-02-05 12:42 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 1154 bytes --]
There is an updated pull request by tranzystorek-io against master on the void-packages repository
https://github.com/tranzystorek-io/void-packages llvm15
https://github.com/void-linux/void-packages/pull/40821
[WIP] LLVM 15
[ci skip]
TODO:
- [ ] Adjust patches marked as `.patch.skip`
- [x] Make libomp a shlib (change so file name and install a symlink)
- [x] Avoid creating triplet dirs under /usr/
TODO LLVM rdeps:
- [ ] clazy (breaking changes in clang API)
- [x] beignet (https://github.com/void-linux/void-packages/pull/41529)
- [ ] ispc (1.18.1 supports LLVM `<= 14`)
- [ ] ldc (1.30.0 supports LLVM `<= 14`)
- [ ] ghdl (2.0.0 supports LLVM `<= 14`)
- [x] qt
- [ ] qtcreator (breaking changes in clang-format API)
- [ ] shiboken2 (tests failing with llvm15)
- [x] bpftrace (https://github.com/void-linux/void-packages/pull/39002)
- [ ] libclc (tests fail with unresolved calls https://gist.githubusercontent.com/tranzystorek-io/a2aa8a0d8010af5299f7d1ff9f82c22b/raw/6d316d99d6079990b73ae77d274dd120b9560589/LastTest.log)
- [x] zig
A patch file from https://github.com/void-linux/void-packages/pull/40821.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-llvm15-40821.patch --]
[-- Type: text/x-diff, Size: 84363 bytes --]
From 7a05008bd06bf04902c0c7d281e318439a4b6015 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Sun, 18 Dec 2022 00:36:59 +0100
Subject: [PATCH 01/17] New package: llvm15-15.0.7
---
common/shlibs | 3 +
srcpkgs/libllvm15 | 1 +
.../llvm15/files/llvm-Config-llvm-config.h | 9 +
...clang-001-fix-unwind-chain-inclusion.patch | 44 ++
.../patches/clang-002-add-musl-triples.patch | 110 +++++
.../clang-003-ppc64-dynamic-linker-path.patch | 13 +
.../patches/clang-004-ppc64-musl-elfv2.patch | 48 ++
.../compiler-rt-sanitizer-ppc64-musl.patch | 35 ++
.../compiler-rt-xray-ppc64-musl.patch.skip | 62 +++
srcpkgs/llvm15/patches/libcxx-musl.patch | 26 ++
srcpkgs/llvm15/patches/libcxx-ppc.patch | 22 +
.../llvm15/patches/libcxx-ssp-nonshared.patch | 11 +
srcpkgs/llvm15/patches/libcxxabi-dl.patch | 25 +
srcpkgs/llvm15/patches/libcxxabi-musl.patch | 37 ++
srcpkgs/llvm15/patches/libomp-soname.patch | 12 +
.../llvm15/patches/libunwind-ppc32.patch.skip | 63 +++
srcpkgs/llvm15/patches/lldb-musl.patch | 40 ++
srcpkgs/llvm15/patches/llvm-001-musl.patch | 57 +++
.../patches/llvm-002-musl-ppc64-elfv2.patch | 30 ++
.../patches/llvm-003-ppc-secureplt.patch | 11 +
.../patches/llvm-004-override-opt.patch | 18 +
.../llvm15/patches/llvm-005-ppc-bigpic.patch | 36 ++
.../patches/llvm-006-aarch64-mf_exec.patch | 25 +
srcpkgs/llvm15/template | 437 ++++++++++++++++++
srcpkgs/llvm15/update | 3 +
25 files changed, 1178 insertions(+)
create mode 120000 srcpkgs/libllvm15
create mode 100644 srcpkgs/llvm15/files/llvm-Config-llvm-config.h
create mode 100644 srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch
create mode 100644 srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch
create mode 100644 srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch
create mode 100644 srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch
create mode 100644 srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch
create mode 100644 srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip
create mode 100644 srcpkgs/llvm15/patches/libcxx-musl.patch
create mode 100644 srcpkgs/llvm15/patches/libcxx-ppc.patch
create mode 100644 srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch
create mode 100644 srcpkgs/llvm15/patches/libcxxabi-dl.patch
create mode 100644 srcpkgs/llvm15/patches/libcxxabi-musl.patch
create mode 100644 srcpkgs/llvm15/patches/libomp-soname.patch
create mode 100644 srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip
create mode 100644 srcpkgs/llvm15/patches/lldb-musl.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-001-musl.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-004-override-opt.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch
create mode 100644 srcpkgs/llvm15/template
create mode 100644 srcpkgs/llvm15/update
diff --git a/common/shlibs b/common/shlibs
index 59444164928b..837a476da03f 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -992,6 +992,9 @@ libclang.so.12 libclang-12.0.0_1
libclang-cpp.so.12 libclang-cpp-12.0.0_1
libLLVM-11.so libllvm11-11.0.0_1
libLLVM-12.so libllvm12-12.0.0_1
+libLLVM-15.so libllvm15-15.0.7_1
+libomp.so.5 libomp-15.0.7_1
+libomptarget.so.15 libomp-15.0.7_1
libisofs.so.6 libisofs-0.6.24_1
libmpack.so.0 libmpack-1.0.5_1
libGeoIP.so.1 libgeoip-1.4.8_1
diff --git a/srcpkgs/libllvm15 b/srcpkgs/libllvm15
new file mode 120000
index 000000000000..ad57a969b9f9
--- /dev/null
+++ b/srcpkgs/libllvm15
@@ -0,0 +1 @@
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm15/files/llvm-Config-llvm-config.h b/srcpkgs/llvm15/files/llvm-Config-llvm-config.h
new file mode 100644
index 000000000000..2fa08c9be696
--- /dev/null
+++ b/srcpkgs/llvm15/files/llvm-Config-llvm-config.h
@@ -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
diff --git a/srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch b/srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch
new file mode 100644
index 000000000000..e4eaa7783e7a
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch
@@ -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
diff --git a/srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch b/srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch
new file mode 100644
index 000000000000..25688d40dbc2
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch
@@ -0,0 +1,110 @@
+--- a/clang/lib/Driver/ToolChains/Gnu.cpp
++++ b/clang/lib/Driver/ToolChains/Gnu.cpp
+@@ -2086,7 +2086,8 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
+ static const char *const ARMHFTriples[] = {"arm-linux-gnueabihf",
+ "armv7hl-redhat-linux-gnueabi",
+ "armv6hl-suse-linux-gnueabi",
+- "armv7hl-suse-linux-gnueabi"};
++ "armv7hl-suse-linux-gnueabi",
++ "armv7l-linux-gnueabihf"};
+ static const char *const ARMebLibDirs[] = {"/lib"};
+ static const char *const ARMebTriples[] = {"armeb-linux-gnueabi",
+ "armeb-linux-androideabi"};
+@@ -2153,8 +2154,7 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
+ "powerpc64-suse-linux", "powerpc-montavista-linuxspe"};
+ static const char *const PPCLELibDirs[] = {"/lib32", "/lib"};
+ static const char *const PPCLETriples[] = {"powerpcle-linux-gnu",
+- "powerpcle-unknown-linux-gnu",
+- "powerpcle-linux-musl"};
++ "powerpcle-unknown-linux-gnu"};
+
+ static const char *const PPC64LibDirs[] = {"/lib64", "/lib"};
+ static const char *const PPC64Triples[] = {
+@@ -2235,6 +2235,87 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
+ return;
+ }
+
++ if (TargetTriple.isMusl()) {
++ static const char *const AArch64MuslTriples[] = {"aarch64-linux-musl"};
++ static const char *const ARMHFMuslTriples[] = {
++ "arm-linux-musleabihf", "armv7l-linux-musleabihf"
++ };
++ static const char *const ARMMuslTriples[] = {"arm-linux-musleabi"};
++ static const char *const X86_64MuslTriples[] = {"x86_64-linux-musl"};
++ static const char *const X86MuslTriples[] = {"i686-linux-musl"};
++ static const char *const MIPSMuslTriples[] = {
++ "mips-linux-musl", "mipsel-linux-musl",
++ "mipsel-linux-muslhf", "mips-linux-muslhf"
++ };
++ static const char *const PPCMuslTriples[] = {"powerpc-linux-musl"};
++ static const char *const PPCLEMuslTriples[] = {"powerpcle-linux-musl"};
++ static const char *const PPC64MuslTriples[] = {"powerpc64-linux-musl"};
++ static const char *const PPC64LEMuslTriples[] = {"powerpc64le-linux-musl"};
++
++ switch (TargetTriple.getArch()) {
++ case llvm::Triple::aarch64:
++ LibDirs.append(begin(AArch64LibDirs), end(AArch64LibDirs));
++ TripleAliases.append(begin(AArch64MuslTriples), end(AArch64MuslTriples));
++ BiarchLibDirs.append(begin(AArch64LibDirs), end(AArch64LibDirs));
++ BiarchTripleAliases.append(begin(AArch64MuslTriples), end(AArch64MuslTriples));
++ break;
++ case llvm::Triple::arm:
++ LibDirs.append(begin(ARMLibDirs), end(ARMLibDirs));
++ if (TargetTriple.getEnvironment() == llvm::Triple::MuslEABIHF) {
++ TripleAliases.append(begin(ARMHFMuslTriples), end(ARMHFMuslTriples));
++ } else {
++ TripleAliases.append(begin(ARMMuslTriples), end(ARMMuslTriples));
++ }
++ break;
++ case llvm::Triple::x86_64:
++ LibDirs.append(begin(X86_64LibDirs), end(X86_64LibDirs));
++ TripleAliases.append(begin(X86_64MuslTriples), end(X86_64MuslTriples));
++ BiarchLibDirs.append(begin(X86LibDirs), end(X86LibDirs));
++ BiarchTripleAliases.append(begin(X86MuslTriples), end(X86MuslTriples));
++ break;
++ case llvm::Triple::x86:
++ LibDirs.append(begin(X86LibDirs), end(X86LibDirs));
++ TripleAliases.append(begin(X86MuslTriples), end(X86MuslTriples));
++ BiarchLibDirs.append(begin(X86_64LibDirs), end(X86_64LibDirs));
++ BiarchTripleAliases.append(begin(X86_64MuslTriples), end(X86_64MuslTriples));
++ break;
++ case llvm::Triple::mips:
++ LibDirs.append(begin(MIPSLibDirs), end(MIPSLibDirs));
++ TripleAliases.append(begin(MIPSMuslTriples), end(MIPSMuslTriples));
++ break;
++ case llvm::Triple::ppc:
++ LibDirs.append(begin(PPCLibDirs), end(PPCLibDirs));
++ TripleAliases.append(begin(PPCMuslTriples), end(PPCMuslTriples));
++ BiarchLibDirs.append(begin(PPC64LibDirs), end(PPC64LibDirs));
++ BiarchTripleAliases.append(begin(PPC64MuslTriples), end(PPC64MuslTriples));
++ break;
++ case llvm::Triple::ppcle:
++ LibDirs.append(begin(PPCLELibDirs), end(PPCLELibDirs));
++ TripleAliases.append(begin(PPCLEMuslTriples), end(PPCLEMuslTriples));
++ BiarchLibDirs.append(begin(PPC64LELibDirs), end(PPC64LELibDirs));
++ BiarchTripleAliases.append(begin(PPC64LEMuslTriples), end(PPC64LEMuslTriples));
++ break;
++ case llvm::Triple::ppc64:
++ LibDirs.append(begin(PPC64LibDirs), end(PPC64LibDirs));
++ TripleAliases.append(begin(PPC64MuslTriples), end(PPC64MuslTriples));
++ BiarchLibDirs.append(begin(PPCLibDirs), end(PPCLibDirs));
++ BiarchTripleAliases.append(begin(PPCMuslTriples), end(PPCMuslTriples));
++ break;
++ case llvm::Triple::ppc64le:
++ LibDirs.append(begin(PPC64LELibDirs), end(PPC64LELibDirs));
++ TripleAliases.append(begin(PPC64LEMuslTriples), end(PPC64LEMuslTriples));
++ BiarchLibDirs.append(begin(PPCLELibDirs), end(PPCLELibDirs));
++ BiarchTripleAliases.append(begin(PPCLEMuslTriples), end(PPCLEMuslTriples));
++ break;
++ default:
++ break;
++ }
++ TripleAliases.push_back(TargetTriple.str());
++ if (TargetTriple.str() != BiarchTriple.str())
++ BiarchTripleAliases.push_back(BiarchTriple.str());
++ return;
++ }
++
+ // Android targets should not use GNU/Linux tools or libraries.
+ if (TargetTriple.isAndroid()) {
+ static const char *const AArch64AndroidTriples[] = {
diff --git a/srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch b/srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch
new file mode 100644
index 000000000000..4ad6412d1e6c
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch
@@ -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 =
diff --git a/srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch b/srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch
new file mode 100644
index 000000000000..21fc8003c5f1
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch
@@ -0,0 +1,48 @@
+--- a/clang/lib/Basic/Targets/PPC.h
++++ b/clang/lib/Basic/Targets/PPC.h
+@@ -415,11 +415,10 @@ public:
+ LongDoubleFormat = &llvm::APFloat::IEEEdouble();
+ } else if ((Triple.getArch() == llvm::Triple::ppc64le)) {
+ DataLayout = "e-m:e-i64:64-n32:64";
+- ABI = "elfv2";
+ } else {
+ DataLayout = "E-m:e-i64:64-n32:64";
+- ABI = "elfv1";
+ }
++ ABI = "elfv2";
+
+ if (Triple.isOSFreeBSD() || Triple.isOSOpenBSD() || Triple.isMusl()) {
+ LongDoubleWidth = LongDoubleAlign = 64;
+--- a/clang/lib/CodeGen/TargetInfo.cpp
++++ b/clang/lib/CodeGen/TargetInfo.cpp
+@@ -10927,9 +10927,9 @@ const TargetCodeGenInfo &CodeGenModule::getTargetCodeGenInfo() {
+ return SetCGInfo(new AIXTargetCodeGenInfo(Types, /*Is64Bit*/ true));
+
+ if (Triple.isOSBinFormatELF()) {
+- PPC64_SVR4_ABIInfo::ABIKind Kind = PPC64_SVR4_ABIInfo::ELFv1;
+- if (getTarget().getABI() == "elfv2")
+- Kind = PPC64_SVR4_ABIInfo::ELFv2;
++ PPC64_SVR4_ABIInfo::ABIKind Kind = PPC64_SVR4_ABIInfo::ELFv2;
++ if (getTarget().getABI() == "elfv1")
++ Kind = PPC64_SVR4_ABIInfo::ELFv1;
+ bool IsSoftFloat = CodeGenOpts.FloatABI == "soft";
+
+ return SetCGInfo(
+--- a/clang/lib/Driver/ToolChains/Clang.cpp
++++ b/clang/lib/Driver/ToolChains/Clang.cpp
+@@ -1920,14 +1920,7 @@ void Clang::AddPPCTargetArgs(const ArgList &Args,
+ const llvm::Triple &T = getToolChain().getTriple();
+ if (T.isOSBinFormatELF()) {
+ switch (getToolChain().getArch()) {
+- case llvm::Triple::ppc64: {
+- if ((T.isOSFreeBSD() && T.getOSMajorVersion() >= 13) ||
+- T.isOSOpenBSD() || T.isMusl())
+- ABIName = "elfv2";
+- else
+- ABIName = "elfv1";
+- break;
+- }
++ case llvm::Triple::ppc64:
+ case llvm::Triple::ppc64le:
+ ABIName = "elfv2";
+ break;
diff --git a/srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch b/srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch
new file mode 100644
index 000000000000..360cfc1ba7f1
--- /dev/null
+++ b/srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch
@@ -0,0 +1,35 @@
+--- 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__) || SANITIZER_RISCV64
++ defined(__hexagon__) || defined(__powerpc__) || 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_ANDROID
++#if (defined(__aarch64__) || defined(__powerpc__) || SANITIZER_RISCV64) && !SANITIZER_ANDROID
+ // GLIBC 2.20+ sys/user does not include asm/ptrace.h
+ # include <asm/ptrace.h>
+ #endif
diff --git a/srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip b/srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip
new file mode 100644
index 000000000000..d0b61c80c897
--- /dev/null
+++ b/srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip
@@ -0,0 +1,62 @@
+--- a/compiler-rt/lib/xray/xray_powerpc64.inc
++++ b/compiler-rt/lib/xray/xray_powerpc64.inc
+@@ -12,7 +12,13 @@
+
+ #include <cstdint>
+ #include <mutex>
++#ifdef __GLIBC__
+ #include <sys/platform/ppc.h>
++#else
++#include <cctype>
++#include <cstring>
++#include <cstdlib>
++#endif
+
+ #include "xray_defs.h"
+
+@@ -20,13 +26,45 @@ namespace __xray {
+
+ ALWAYS_INLINE uint64_t readTSC(uint8_t &CPU) XRAY_NEVER_INSTRUMENT {
+ CPU = 0;
++#ifdef __GLIBC__
+ return __ppc_get_timebase();
++#else
++ return __builtin_ppc_get_timebase();
++#endif
+ }
+
+ inline uint64_t getTSCFrequency() XRAY_NEVER_INSTRUMENT {
+ static std::mutex M;
+ std::lock_guard<std::mutex> Guard(M);
++#ifdef __GLIBC__
+ return __ppc_get_timebase_freq();
++#else
++ /* FIXME: a less dirty implementation? */
++ static uint64_t base;
++ if (!base) {
++ FILE *f = fopen("/proc/cpuinfo", "rb");
++ if (f) {
++ ssize_t nr;
++ /* virtually always big enough to hold the line */
++ char buf[512];
++ while (fgets(buf, sizeof(buf), f)) {
++ char *ret = strstr(buf, "timebase");
++ if (!ret) {
++ continue;
++ }
++ ret += sizeof("timebase") - 1;
++ ret = strchr(ret, ':');
++ if (!ret) {
++ continue;
++ }
++ base = strtoul(ret + 1, nullptr, 10);
++ break;
++ }
++ fclose(f);
++ }
++ }
++ return base;
++#endif
+ }
+
+ inline bool probeRequiredCPUFeatures() XRAY_NEVER_INSTRUMENT {
diff --git a/srcpkgs/llvm15/patches/libcxx-musl.patch b/srcpkgs/llvm15/patches/libcxx-musl.patch
new file mode 100644
index 000000000000..bbd31ffc2cb1
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxx-musl.patch
@@ -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,
+ typename remove_reference<decltype(errno)>::type __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
+ typename remove_reference<decltype(errno)>::type __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,
+ typename remove_reference<decltype(errno)>::type __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
+ typename remove_reference<decltype(errno)>::type __current_errno = errno;
+ if (__current_errno == 0)
+ errno = __save_errno;
diff --git a/srcpkgs/llvm15/patches/libcxx-ppc.patch b/srcpkgs/llvm15/patches/libcxx-ppc.patch
new file mode 100644
index 000000000000..7a92f8004e1c
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxx-ppc.patch
@@ -0,0 +1,22 @@
+This ensures `is_iec559` is defined correctly under all long double ABIs,
+including musl and its 64-bit long double. Also, `__ppc__` or `__ppc64__`
+is not defined on gcc.
+
+--- a/libcxx/include/limits
++++ b/libcxx/include/limits
+@@ -426,8 +426,14 @@ protected:
+ _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type signaling_NaN() _NOEXCEPT {return __builtin_nansl("");}
+ _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type denorm_min() _NOEXCEPT {return __LDBL_DENORM_MIN__;}
+
+-#if (defined(__ppc__) || defined(__ppc64__))
++#if defined(__powerpc__) || defined(__powerpc64__)
++#if (__LDBL_MAX_EXP__ > __DBL_MAX_EXP__) || (__LDBL_MANT_DIG__ == __DBL_MANT_DIG__)
++ /* IEEE 754 quadruple or double precision */
++ static _LIBCPP_CONSTEXPR const bool is_iec559 = true;
++#else
++ /* 128-bit IBM double-double */
+ static _LIBCPP_CONSTEXPR const bool is_iec559 = false;
++#endif
+ #else
+ static _LIBCPP_CONSTEXPR const bool is_iec559 = true;
+ #endif
diff --git a/srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch b/srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch
new file mode 100644
index 000000000000..70292beb2fcd
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch
@@ -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()
diff --git a/srcpkgs/llvm15/patches/libcxxabi-dl.patch b/srcpkgs/llvm15/patches/libcxxabi-dl.patch
new file mode 100644
index 000000000000..3a15f9db8c98
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxxabi-dl.patch
@@ -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 @@
+ target_link_libraries(${target} PRIVATE m)
+ endif()
+
++ if (LIBCXX_HAS_C_LIB)
++ target_link_libraries(${target} PRIVATE dl)
++ endif()
++
+ if (LIBCXX_HAS_RT_LIB)
+ target_link_libraries(${target} PRIVATE rt)
+ endif()
diff --git a/srcpkgs/llvm15/patches/libcxxabi-musl.patch b/srcpkgs/llvm15/patches/libcxxabi-musl.patch
new file mode 100644
index 000000000000..55bf6f5aaa08
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxxabi-musl.patch
@@ -0,0 +1,37 @@
+diff --git a/libcxx/include/__support/musl/xlocale.h b/libcxx/include/__support/musl/xlocale.h
+index e674a41fa..f546119b9 100644
+--- a/libcxx/include/__support/musl/xlocale.h
++++ b/libcxx/include/__support/musl/xlocale.h
+@@ -24,27 +24,27 @@
+ extern "C" {
+ #endif
+
+-inline _LIBCPP_HIDE_FROM_ABI long long
++static inline long long
+ strtoll_l(const char *__nptr, char **__endptr, int __base, locale_t) {
+ return ::strtoll(__nptr, __endptr, __base);
+ }
+
+-inline _LIBCPP_HIDE_FROM_ABI unsigned long long
++static inline unsigned long long
+ strtoull_l(const char *__nptr, char **__endptr, int __base, locale_t) {
+ return ::strtoull(__nptr, __endptr, __base);
+ }
+
+-inline _LIBCPP_HIDE_FROM_ABI long long
++static inline long long
+ wcstoll_l(const wchar_t *__nptr, wchar_t **__endptr, int __base, locale_t) {
+ return ::wcstoll(__nptr, __endptr, __base);
+ }
+
+-inline _LIBCPP_HIDE_FROM_ABI unsigned long long
++static inline unsigned long long
+ wcstoull_l(const wchar_t *__nptr, wchar_t **__endptr, int __base, locale_t) {
+ return ::wcstoull(__nptr, __endptr, __base);
+ }
+
+-inline _LIBCPP_HIDE_FROM_ABI long double
++static inline long double
+ wcstold_l(const wchar_t *__nptr, wchar_t **__endptr, locale_t) {
+ return ::wcstold(__nptr, __endptr);
+ }
diff --git a/srcpkgs/llvm15/patches/libomp-soname.patch b/srcpkgs/llvm15/patches/libomp-soname.patch
new file mode 100644
index 000000000000..9a622cd9254c
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libomp-soname.patch
@@ -0,0 +1,12 @@
+diff --git a/openmp/runtime/src/CMakeLists.txt b/openmp/runtime/src/CMakeLists.txt
+index df1ca9d90..9d2c3b7b9 100644
+--- a/openmp/runtime/src/CMakeLists.txt
++++ b/openmp/runtime/src/CMakeLists.txt
+@@ -150,6 +150,7 @@ libomp_get_libflags(LIBOMP_CONFIGURED_LIBFLAGS)
+ # Build libomp library. Add LLVMSupport dependency if building in-tree with libomptarget profiling enabled.
+ if(OPENMP_STANDALONE_BUILD OR (NOT OPENMP_ENABLE_LIBOMP_PROFILING))
+ add_library(omp ${LIBOMP_LIBRARY_KIND} ${LIBOMP_SOURCE_FILES})
++ set_target_properties(omp PROPERTIES VERSION ${LIBOMP_VERSION_MAJOR} SOVERSION ${LIBOMP_VERSION_MAJOR})
+ # Linking command will include libraries in LIBOMP_CONFIGURED_LIBFLAGS
+ target_link_libraries(omp ${LIBOMP_CONFIGURED_LIBFLAGS} ${LIBOMP_DL_LIBS})
+ else()
diff --git a/srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip b/srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip
new file mode 100644
index 000000000000..74aa7576ecf9
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip
@@ -0,0 +1,63 @@
+This fixes build at least with gcc9 which does not define `__ppc__`.
+
+--- a/libunwind/include/__libunwind_config.h
++++ b/libunwind/include/__libunwind_config.h
+@@ -49,7 +49,7 @@
+ # define _LIBUNWIND_CONTEXT_SIZE 167
+ # define _LIBUNWIND_CURSOR_SIZE 179
+ # define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_PPC64
+-# elif defined(__ppc__)
++# elif defined(__powerpc__)
+ # define _LIBUNWIND_TARGET_PPC 1
+ # define _LIBUNWIND_CONTEXT_SIZE 117
+ # define _LIBUNWIND_CURSOR_SIZE 124
+--- a/libunwind/src/UnwindRegistersRestore.S
++++ b/libunwind/src/UnwindRegistersRestore.S
+@@ -392,7 +392,7 @@ Lnovec:
+ PPC64_LR(3)
+ bctr
+
+-#elif defined(__ppc__)
++#elif defined(__powerpc__)
+
+ DEFINE_LIBUNWIND_FUNCTION(_ZN9libunwind13Registers_ppc6jumptoEv)
+ //
+--- a/libunwind/src/UnwindRegistersSave.S
++++ b/libunwind/src/UnwindRegistersSave.S
+@@ -554,7 +554,7 @@ DEFINE_LIBUNWIND_FUNCTION(__unw_getcontext)
+ blr
+
+
+-#elif defined(__ppc__)
++#elif defined(__powerpc__)
+
+ //
+ // extern int unw_getcontext(unw_context_t* thread_state)
+--- a/libunwind/src/config.h
++++ b/libunwind/src/config.h
+@@ -95,12 +95,12 @@
+ #define _LIBUNWIND_BUILD_SJLJ_APIS
+ #endif
+
+-#if defined(__i386__) || defined(__x86_64__) || defined(__ppc__) || defined(__ppc64__) || defined(__powerpc64__)
++#if defined(__i386__) || defined(__x86_64__) || defined(__powerpc__) || defined(__powerpc64__)
+ #define _LIBUNWIND_SUPPORT_FRAME_APIS
+ #endif
+
+ #if defined(__i386__) || defined(__x86_64__) || \
+- defined(__ppc__) || defined(__ppc64__) || defined(__powerpc64__) || \
++ defined(__powerpc__) || defined(__powerpc64__) || \
+ (!defined(__APPLE__) && defined(__arm__)) || \
+ (defined(__arm64__) || defined(__aarch64__)) || \
+ defined(__mips__)
+--- a/libunwind/src/libunwind.cpp
++++ b/libunwind/src/libunwind.cpp
+@@ -42,7 +42,7 @@ _LIBUNWIND_HIDDEN int __unw_init_local(unw_cursor_t *cursor,
+ # define REGISTER_KIND Registers_x86_64
+ #elif defined(__powerpc64__)
+ # define REGISTER_KIND Registers_ppc64
+-#elif defined(__ppc__)
++#elif defined(__powerpc__)
+ # define REGISTER_KIND Registers_ppc
+ #elif defined(__aarch64__)
+ # define REGISTER_KIND Registers_arm64
diff --git a/srcpkgs/llvm15/patches/lldb-musl.patch b/srcpkgs/llvm15/patches/lldb-musl.patch
new file mode 100644
index 000000000000..026c5e1e61ba
--- /dev/null
+++ b/srcpkgs/llvm15/patches/lldb-musl.patch
@@ -0,0 +1,40 @@
+--- a/lldb/source/Plugins/Process/Linux/Procfs.h
++++ b/lldb/source/Plugins/Process/Linux/Procfs.h
+@@ -10,6 +10,7 @@
+ // sys/procfs.h on Android/Linux for all supported architectures.
+
+ #include <sys/ptrace.h>
++#include <asm/ptrace.h>
+
+ #include "lldb/lldb-types.h"
+
+@@ -17,23 +18,13 @@
+
+ #include <vector>
+
+-#ifdef __ANDROID__
+-#if defined(__arm64__) || defined(__aarch64__)
+-typedef unsigned long elf_greg_t;
+-typedef elf_greg_t
+- elf_gregset_t[(sizeof(struct user_pt_regs) / sizeof(elf_greg_t))];
+-typedef struct user_fpsimd_state elf_fpregset_t;
+-#ifndef NT_FPREGSET
+-#define NT_FPREGSET NT_PRFPREG
+-#endif // NT_FPREGSET
+-#elif defined(__mips__)
+-#ifndef NT_FPREGSET
+-#define NT_FPREGSET NT_PRFPREG
+-#endif // NT_FPREGSET
+-#endif
+-#else // __ANDROID__
++#if !defined(__GLIBC__) && defined(__powerpc__)
++#define pt_regs musl_pt_regs
++#include <sys/procfs.h>
++#undef pt_regs
++#else
+ #include <sys/procfs.h>
+-#endif // __ANDROID__
++#endif
+
+ namespace lldb_private {
+ namespace process_linux {
diff --git a/srcpkgs/llvm15/patches/llvm-001-musl.patch b/srcpkgs/llvm15/patches/llvm-001-musl.patch
new file mode 100644
index 000000000000..f2a3f8d62813
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-001-musl.patch
@@ -0,0 +1,57 @@
+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;
+diff --git a/lib/Support/Unix/DynamicLibrary.inc b/lib/Support/Unix/DynamicLibrary.inc
+index a2a37996..2f86c470 100644
+--- a/llvm/lib/Support/Unix/DynamicLibrary.inc
++++ b/llvm/lib/Support/Unix/DynamicLibrary.inc
+@@ -102,7 +102,7 @@ static void *DoSearch(const char* SymbolName) {
+
+ // This macro returns the address of a well-known, explicit symbol
+ #define EXPLICIT_SYMBOL(SYM) \
+- if (!strcmp(SymbolName, #SYM)) return &SYM
++ if (!strcmp(SymbolName, #SYM)) return (void *)&SYM
+
+ // Under glibc we have a weird situation. The stderr/out/in symbols are both
+ // macros and global variables because of standards requirements. So, we
+diff --git a/utils/unittest/googletest/src/gtest.cc b/utils/unittest/googletest/src/gtest.cc
+index d882ab2e..f1fb12d0 100644
+--- a/llvm/utils/unittest/googletest/src/gtest.cc
++++ b/llvm/utils/unittest/googletest/src/gtest.cc
+@@ -128,6 +128,7 @@
+
+ #if GTEST_CAN_STREAM_RESULTS_
+ # include <arpa/inet.h> // NOLINT
++# include <sys/socket.h> // NOLINT
+ # include <netdb.h> // NOLINT
+ # include <sys/socket.h> // NOLINT
+ # include <sys/types.h> // NOLINT
diff --git a/srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch b/srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch
new file mode 100644
index 000000000000..0071d964bd37
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch
@@ -0,0 +1,30 @@
+This patches LLVM to use ELFv2 on ppc64 unconditionally unless overridden. We
+need this because unlike most distros we use ELFv2 for both glibc and musl
+on big endian ppc64.
+
+diff --git a/lib/Target/PowerPC/PPCTargetMachine.cpp b/lib/Target/PowerPC/PPCTargetMachine.cpp
+index 0634833e..b7cbc2e7 100644
+--- a/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp
++++ b/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp
+@@ -222,9 +222,8 @@ static PPCTargetMachine::PPCABI computeTargetABI(const Triple &TT,
+
+ switch (TT.getArch()) {
+ case Triple::ppc64le:
+- return PPCTargetMachine::PPC_ABI_ELFv2;
+ case Triple::ppc64:
+- return PPCTargetMachine::PPC_ABI_ELFv1;
++ return PPCTargetMachine::PPC_ABI_ELFv2;
+ default:
+ return PPCTargetMachine::PPC_ABI_UNKNOWN;
+ }
+diff --git a/test/CodeGen/PowerPC/ppc64-elf-abi.ll b/test/CodeGen/PowerPC/ppc64-elf-abi.ll
+index 8b1cf6b5..296a2afa 100644
+--- a/llvm/test/CodeGen/PowerPC/ppc64-elf-abi.ll
++++ b/llvm/test/CodeGen/PowerPC/ppc64-elf-abi.ll
+@@ -1,4 +1,5 @@
+-; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv1
++; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv2
++; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-musl < %s | FileCheck %s -check-prefix=CHECK-ELFv2
+ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu -target-abi elfv1 < %s | FileCheck %s -check-prefix=CHECK-ELFv1
+ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu -target-abi elfv2 < %s | FileCheck %s -check-prefix=CHECK-ELFv2
+ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv2
diff --git a/srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch b/srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch
new file mode 100644
index 000000000000..b5d15974375d
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch
@@ -0,0 +1,11 @@
+--- a/llvm/lib/Target/PowerPC/PPCSubtarget.cpp
++++ b/llvm/lib/Target/PowerPC/PPCSubtarget.cpp
+@@ -165,7 +165,7 @@ void PPCSubtarget::initSubtargetFeatures(StringRef CPU, StringRef FS) {
+
+ if ((TargetTriple.isOSFreeBSD() && TargetTriple.getOSMajorVersion() >= 13) ||
+ TargetTriple.isOSNetBSD() || TargetTriple.isOSOpenBSD() ||
+- TargetTriple.isMusl())
++ isTargetLinux())
+ SecurePlt = true;
+
+ if (HasSPE && IsPPC64)
diff --git a/srcpkgs/llvm15/patches/llvm-004-override-opt.patch b/srcpkgs/llvm15/patches/llvm-004-override-opt.patch
new file mode 100644
index 000000000000..51d0e4b31b32
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-004-override-opt.patch
@@ -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)
diff --git a/srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch b/srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch
new file mode 100644
index 000000000000..d332687b9d92
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch
@@ -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);
diff --git a/srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch b/srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch
new file mode 100644
index 000000000000..a00abd216665
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch
@@ -0,0 +1,25 @@
+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__) || defined (__ppc__) || \
+- defined(_POWER) || defined(_ARCH_PPC))
++ defined(_POWER) || defined(_ARCH_PPC) || (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
diff --git a/srcpkgs/llvm15/template b/srcpkgs/llvm15/template
new file mode 100644
index 000000000000..92dadb185a7a
--- /dev/null
+++ b/srcpkgs/llvm15/template
@@ -0,0 +1,437 @@
+# Template file for 'llvm15'
+pkgname=llvm15
+version=15.0.7
+revision=1
+build_wrksrc=llvm
+build_style=cmake
+_ext_suffix=".cpython-${py3_ver/./}-linux-${XBPS_TARGET_LIBC/glibc/gnu}.so"
+configure_args="
+ -DCMAKE_BUILD_TYPE=Release -Wno-dev
+ -DENABLE_LINKER_BUILD_ID=YES
+ -DLLDB_USE_SYSTEM_SIX=YES
+ -DLIBCXX_CXX_ABI=libcxxabi
+ -DLIBCXX_ENABLE_STATIC_ABI_LIBRARY=YES
+ -DLIBCXXABI_USE_LLVM_UNWINDER=YES
+ -DLIBCXXABI_ENABLE_STATIC_UNWINDER=YES
+ -DLIBOMP_ENABLE_SHARED=YES
+ -DLIBOMP_INSTALL_ALIASES=NO
+ -DLLVM_INCLUDE_DOCS=YES
+ -DLLVM_BUILD_DOCS=YES
+ -DLLVM_ENABLE_SPHINX=YES
+ -DSPHINX_WARNINGS_AS_ERRORS=NO
+ -DLLVM_INSTALL_UTILS=YES
+ -DLLVM_BUILD_LLVM_DYLIB=YES
+ -DLLVM_LINK_LLVM_DYLIB=YES
+ -DLLVM_ENABLE_RTTI=YES
+ -DLLVM_ENABLE_FFI=YES
+ -DLLVM_BINUTILS_INCDIR=/usr/include
+ -DLLVM_ENABLE_PER_TARGET_RUNTIME_DIR=NO
+ -DLLDB_PYTHON_RELATIVE_PATH=lib/python${py3_ver}/site-packages
+ -DLLDB_PYTHON_EXE_RELATIVE_PATH=bin/python${py3_ver}
+ -DLLDB_PYTHON_EXT_SUFFIX=$_ext_suffix"
+hostmakedepends="perl python3 zlib-devel libffi-devel swig python3-Sphinx
+ python3-recommonmark python3-sphinx-automodapi"
+makedepends="python3-devel zlib-devel elfutils-devel libffi-devel libedit-devel
+ libxml2-devel binutils-devel libatomic-devel"
+depends="libllvm15>=${version}_${revision}"
+short_desc="Low Level Virtual Machine"
+maintainer="Orphaned <orphan@voidlinux.org>"
+license="Apache-2.0"
+homepage="https://www.llvm.org"
+distfiles="https://github.com/llvm/llvm-project/releases/download/llvmorg-${version}/llvm-project-${version}.src.tar.xz"
+checksum=8b5fcb24b4128cf04df1b0b9410ce8b1a729cb3c544e6da885d234280dedeac6
+lib32disabled=yes
+python_version=3
+
+if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
+ configure_args+=" -DLIBCXX_HAS_MUSL_LIBC=YES
+ -DCOMPILER_RT_BUILD_GWP_ASAN=OFF"
+fi
+
+# "operand out of range" assembler failures
+case "$XBPS_TARGET_MACHINE" in
+ ppc64*) ;;
+ ppc*) configure_args+=" -DCLANG_ENABLE_CLANGD=OFF" ;;
+esac
+
+_enabled_projects="clang;clang-tools-extra;compiler-rt;libcxx;libcxxabi;libunwind;lld"
+
+_lldb_enable=yes
+_libomp_enable=no
+
+case "$XBPS_TARGET_MACHINE" in
+ ppc64le*) ;;
+ ppc*|i686*|riscv64*) _lldb_enable=no ;;
+esac
+
+case "$XBPS_TARGET_MACHINE" in
+ x86_64*|aarch64*|ppc64*) _libomp_enable=yes;;
+esac
+
+subpackages="clang-tools-extra"
+
+# must go before clang
+if [ "$_libomp_enable" = "yes" ]; then
+ _enabled_projects+=";openmp"
+ subpackages+=" libomp libomp-devel"
+ # because of cmake nonsense referencing libomptarget.so.*
+ depends+=" libomp>=${version}_${revision}"
+fi
+
+subpackages+=" clang clang-analyzer libclang libclang-cpp
+ llvm-libunwind llvm-libunwind-devel libcxx libcxx-devel
+ libcxxabi libcxxabi-devel libllvm15"
+
+if [ "$_lldb_enable" = "yes" ]; then
+ # XXX fails to cross compile due to python
+ _enabled_projects+=";lldb"
+ subpackages+=" lldb lldb-devel"
+fi
+
+subpackages+=" lld lld-devel"
+
+configure_args+=" -DLLVM_ENABLE_PROJECTS=${_enabled_projects}"
+
+post_patch() {
+ if [ "$_lldb_enable" = "yes" ]; then
+ if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
+ vsed -i 's|__ptrace_request|int|g' \
+ ${wrksrc}/lldb/source/Plugins/Process/Linux/NativeProcessLinux.cpp
+ fi
+ # disable docs for lldb as they fail to generate
+ vsed -i '/add_subdirectory(docs)/d' \
+ ${wrksrc}/lldb/CMakeLists.txt
+ fi
+
+ # update config.guess for better platform detection
+ cp $XBPS_COMMONDIR/environment/configure/automake/config.guess \
+ ${wrksrc}/llvm/cmake
+
+ # fix linker failures on some archs
+ vsed -i 's,check_library_exists(gcc_s .*,set(LIBCXXABI_HAS_GCC_S_LIB ON),' \
+ ${wrksrc}/libcxxabi/cmake/config-ix.cmake
+ vsed -i 's,check_library_exists(gcc .*,set(LIBCXXABI_HAS_GCC_LIB ON),' \
+ ${wrksrc}/libcxxabi/cmake/config-ix.cmake
+
+ # need libssp_nonshared on some musl platforms (because of nodefaultlibs)
+ case "$XBPS_TARGET_MACHINE" in
+ ppc64*) ;;
+ ppc*-musl|i686-musl|mips*-musl)
+ vsed -i 's,^# Setup flags.$,add_library_flags(ssp_nonshared),' \
+ ${wrksrc}/libunwind/src/CMakeLists.txt
+ vsed -i 's,^# Setup flags.$,add_library_flags(ssp_nonshared),' \
+ ${wrksrc}/libcxxabi/src/CMakeLists.txt
+ vsed -i 's,#ssp,,' ${wrksrc}/libcxx/CMakeLists.txt
+ ;;
+ esac
+
+ case "$XBPS_TARGET_MACHINE" in
+ arm*-musl|i686-musl) # sanitizer code is broken since it duplicates some libc bits
+ vsed -i 's/set(COMPILER_RT_HAS_SANITIZER_COMMON TRUE)/set(COMPILER_RT_HAS_SANITIZER_COMMON FALSE)/' \
+ ${wrksrc}/compiler-rt/cmake/config-ix.cmake
+ ;;
+ esac
+}
+
+pre_configure() {
+ local triplet
+
+ # Vastly reduce size of debugging symbols:
+ CFLAGS=${CFLAGS/ -g/ -g1}
+ CXXFLAGS=${CXXFLAGS/ -g/ -g1}
+
+ # since gcc9, the build likes to blow up for ppc32 apparently because
+ # of clang being too large for a 24-bit relative call to the PLT, so
+ # optimize for size instead
+ case "$XBPS_TARGET_MACHINE" in
+ ppc64*) ;;
+ mips*-musl|ppc*) configure_args+=" -DVOID_CXX_OPT_FLAGS=-Os" ;;
+ esac
+
+ if [ "$CROSS_BUILD" ]; then
+ msg_normal "Building host tblgen\n"
+ mkdir -p build/HOST
+ cd build/HOST
+ CC="$BUILD_CC" CXX="$BUILD_CXX" CFLAGS="$BUILD_CFLAGS" \
+ CXXFLAGS="$BUILD_CXXFLAGS" LDFLAGS="$BUILD_LDFLAGS" \
+ cmake ../.. -DCMAKE_BUILD_TYPE=Release \
+ -DLLVM_ENABLE_PROJECTS=${_enabled_projects}
+ make ${makejobs} -C utils/TableGen
+ make ${makejobs} -C tools/clang/utils/TableGen
+ make ${makejobs} -C tools/clang/tools/extra/clang-tidy/misc/ConfusableTable
+ make ${makejobs} -C tools/clang/tools/extra/pseudo/gen
+ [ "$_lldb_enable" = "yes" ] && make ${makejobs} -C tools/lldb/utils/TableGen
+ configure_args+=" -DLLVM_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/llvm-tblgen"
+ configure_args+=" -DCLANG_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/clang-tblgen"
+ configure_args+=" -DCLANG_TIDY_CONFUSABLE_CHARS_GEN=${wrksrc}/llvm/build/HOST/bin/clang-tidy-confusable-chars-gen"
+ configure_args+=" -DCLANG_PSEUDO_GEN=${wrksrc}/llvm/build/HOST/bin/clang-pseudo-gen"
+ [ "$_lldb_enable" = "yes" ] && configure_args+=" -DLLDB_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/lldb-tblgen"
+ cd ../..
+ fi
+
+ case "$XBPS_TARGET_MACHINE" in
+ i686*) _arch="X86";;
+ x86_64*) _arch="X86";;
+ armv5*) _arch="Armv5te";;
+ armv6*) _arch="Armv6";;
+ armv7*) _arch="Armv7";;
+ aarch64*) _arch="AArch64";;
+ mips*) _arch="Mips";;
+ ppc*) _arch="PowerPC";;
+ riscv64*) _arch="RISCV64";;
+ esac
+
+ triplet=${XBPS_CROSS_TRIPLET:-$XBPS_TRIPLET}
+
+ configure_args+=" -DLLVM_TARGET_ARCH=${_arch}"
+ configure_args+=" -DLLVM_HOST_TRIPLE=${triplet}"
+ configure_args+=" -DLLVM_DEFAULT_TARGET_TRIPLE=${triplet}"
+}
+
+do_install() {
+ cd build
+ cmake -DCMAKE_INSTALL_PREFIX=${DESTDIR}/usr -P cmake_install.cmake
+
+ # Required for multilib.
+ if [ "$XBPS_TARGET_MACHINE" = "x86_64" ]; then
+ for _header in llvm-config; do
+ mv ${DESTDIR}/usr/include/llvm/Config/${_header}{,-64}.h
+ vinstall ${FILESDIR}/llvm-Config-${_header}.h 644 \
+ usr/include/llvm/Config ${_header}.h
+ done
+ fi
+
+ # Remove llvm-config-host in cross builds.
+ if [ "$CROSS_BUILD" ]; then
+ rm -f ${DESTDIR}/usr/bin/llvm-config-host
+ fi
+
+ # Install libcxxabi headers
+ vinstall ${wrksrc}/libcxxabi/include/__cxxabi_config.h 644 usr/include
+ vinstall ${wrksrc}/libcxxabi/include/cxxabi.h 644 usr/include
+
+ # Install libunwind headers
+ vinstall ${wrksrc}/libunwind/include/__libunwind_config.h 644 usr/include
+ vinstall ${wrksrc}/libunwind/include/libunwind.h 644 usr/include
+ vinstall ${wrksrc}/libunwind/include/unwind.h 644 usr/include
+ vinstall ${wrksrc}/libunwind/include/mach-o/compact_unwind_encoding.h \
+ 644 usr/include/mach-o
+}
+
+clang-analyzer_package() {
+ pycompile_dirs="usr/share/scan-view"
+ depends="clang-${version}_${revision} python3 perl"
+ short_desc+=" - A source code analysis framework"
+ homepage="https://clang-analyzer.llvm.org/"
+ pkg_install() {
+ vmove "usr/bin/scan-*"
+ vmove "usr/libexec/*analyzer"
+ vmove "usr/share/scan-*"
+ vmove usr/share/man/man1/scan-build.1
+ }
+}
+
+clang-tools-extra_package() {
+ lib32disabled=yes
+ depends="clang-${version}_${revision} python3"
+ short_desc+=" - Extra Clang tools"
+ homepage="https://clang.llvm.org/extra/"
+ pkg_install() {
+ vmove usr/bin/clang-apply-replacements
+ vmove usr/bin/clang-doc
+ vmove usr/bin/clang-include-fixer
+ vmove usr/bin/clang-query
+ vmove usr/bin/clang-rename
+ vmove usr/bin/clang-reorder-fields
+ vmove usr/bin/clang-tidy
+ vmove usr/bin/clangd
+ vmove usr/bin/diagtool
+ vmove usr/bin/find-all-symbols
+ vmove usr/bin/hmaptool
+ vmove usr/bin/modularize
+ vmove usr/bin/pp-trace
+ vmove usr/bin/sancov
+ vmove usr/include/clang-tidy
+ vmove "usr/lib/libclangApplyReplacements*"
+ vmove "usr/lib/libclangDoc*"
+ vmove "usr/lib/libclangIncludeFixer*"
+ vmove "usr/lib/libclangReorderFields*"
+ vmove "usr/lib/libclangQuery*"
+ vmove "usr/lib/libclangTidy*"
+ vmove "usr/share/clang/*include-fixer*"
+ vmove "usr/share/clang/*rename*"
+ vmove "usr/share/clang/*tidy*"
+ vmove usr/share/doc/LLVM/clang-tools
+ vmove usr/share/man/man1/diagtool.1
+ vmove usr/share/man/man1/extraclangtools.1
+ }
+}
+
+clang_package() {
+ lib32disabled=yes
+ depends="libstdc++-devel libgcc-devel binutils ${XBPS_TARGET_LIBC}-devel
+ libclang-${version}_${revision}"
+ short_desc+=" - C language family frontend"
+ homepage="https://clang.llvm.org/"
+ pkg_install() {
+ vmove "usr/bin/*clang*"
+ vmove usr/bin/c-index-test
+ vmove usr/include/clang
+ vmove usr/include/clang-c
+ vmove usr/lib/clang
+ vmove usr/lib/cmake/clang
+ vmove "usr/lib/libclang*.a"
+ vmove "usr/lib/libclang*.so"
+ vmove usr/share/clang
+ vmove usr/share/doc/LLVM/clang
+ vmove usr/share/man/man1/clang.1
+ }
+}
+
+libclang_package() {
+ short_desc+=" - C frontend runtime library"
+ pkg_install() {
+ vmove "usr/lib/libclang.so.*"
+ }
+}
+
+libclang-cpp_package() {
+ short_desc+=" - C frontend runtime library (C++ interface)"
+ pkg_install() {
+ vmove "usr/lib/libclang-cpp.so.*"
+ }
+}
+
+lld_package() {
+ lib32disabled=yes
+ short_desc+=" - linker"
+ homepage="https://lld.llvm.org"
+ pkg_install() {
+ vmove "usr/bin/ld.lld*"
+ vmove "usr/bin/ld64.lld*"
+ vmove "usr/bin/lld*"
+ vmove usr/bin/wasm-ld
+ vmove usr/share/doc/LLVM/lld
+ }
+}
+
+lld-devel_package() {
+ lib32disabled=yes
+ short_desc+=" - linker - development files"
+ homepage="https://lld.llvm.org"
+ depends="lld>=${version}_${revision}"
+ pkg_install() {
+ vmove usr/include/lld
+ vmove usr/lib/cmake/lld
+ vmove "usr/lib/liblld*a"
+ }
+}
+
+lldb_package() {
+ lib32disabled=yes
+ depends+=" python3-six"
+ short_desc+=" - LLDB debugger"
+ homepage="https://lldb.llvm.org/"
+ pkg_install() {
+ vmove "usr/bin/*lldb*"
+ vmove "usr/lib/liblldb*so.*"
+ vmove usr/lib/python*
+ }
+}
+
+lldb-devel_package() {
+ lib32disabled=yes
+ depends="lldb>=${version}_${revision}"
+ short_desc+=" - LLDB debugger - development files"
+ pkg_install() {
+ vmove usr/include/lldb
+ vmove "usr/lib/liblldb*.so"
+ }
+}
+
+llvm-libunwind_package() {
+ short_desc+=" - libunwind"
+ pkg_install() {
+ vmove "usr/lib/libunwind.so.*"
+ }
+}
+
+llvm-libunwind-devel_package() {
+ short_desc+=" - libunwind - development files"
+ depends="llvm-libunwind>=${version}_${revision}"
+ conflicts="libunwind-devel>=0"
+ pkg_install() {
+ vmove usr/include/mach-o
+ vmove "usr/include/*unwind*"
+ vmove "usr/lib/libunwind.a"
+ vmove "usr/lib/libunwind.so"
+ vmove usr/share/doc/LLVM/libunwind
+ }
+}
+
+libcxxabi_package() {
+ short_desc+=" - low level support for libc++"
+ pkg_install() {
+ vmove "usr/lib/libc++abi.so.*"
+ }
+}
+
+libcxxabi-devel_package() {
+ short_desc+=" - low level support for libc++ - development files"
+ depends="libcxxabi>=${version}_${revision}"
+ pkg_install() {
+ vmove "usr/include/*cxxabi*"
+ vmove "usr/lib/libc++abi.so"
+ vmove "usr/lib/libc++abi.a"
+ }
+}
+
+libcxx_package() {
+ short_desc+=" - C++ standard library"
+ pkg_install() {
+ vmove "usr/lib/libc++.so.*"
+ }
+}
+
+libcxx-devel_package() {
+ short_desc+=" - C++ standard library - development files"
+ depends="libcxx>=${version}_${revision}"
+ pkg_install() {
+ vmove usr/include/c++
+ vmove "usr/lib/libc++.so"
+ vmove "usr/lib/libc++.a"
+ vmove "usr/lib/libc++experimental.a"
+ vmove usr/share/doc/LLVM/libcxx
+ }
+}
+
+libomp_package() {
+ short_desc+=" - Clang OpenMP support library"
+ pkg_install() {
+ vmove usr/lib/libarcher.so
+ vmove usr/lib/libompd.so
+ vmove "usr/lib/libomptarget.rtl.*.so"
+ vmove "usr/lib/libomp*.so.*"
+ }
+}
+
+libomp-devel_package() {
+ short_desc+=" - Clang OpenMP support library - development files"
+ depends="libomp>=${version}_${revision}"
+ pkg_install() {
+ vmove "usr/include/omp*.h"
+ vmove "usr/lib/clang/${version}/include/omp*.h"
+ vmove "usr/lib/libarcher*"
+ vmove "usr/lib/libomp*.so"
+ vmove usr/lib/cmake/openmp
+ vmove usr/share/doc/LLVM/openmp
+ vmove usr/share/man/man1/llvmopenmp.1
+ }
+}
+
+libllvm15_package() {
+ short_desc+=" - runtime library"
+ pkg_install() {
+ vmove "usr/lib/libLLVM-*.so*"
+ }
+}
diff --git a/srcpkgs/llvm15/update b/srcpkgs/llvm15/update
new file mode 100644
index 000000000000..e95cf26b3586
--- /dev/null
+++ b/srcpkgs/llvm15/update
@@ -0,0 +1,3 @@
+site="https://github.com/llvm/llvm-project/releases"
+pattern="llvmorg-\K(\d+.){2}\d+(-rc\d+)?"
+ignore="*-rc*"
From 29f2ced0a3f305243e3e797c0eda87c0cd8f0aa9 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Sun, 18 Dec 2022 00:40:18 +0100
Subject: [PATCH 02/17] llvm: update to 15
---
common/shlibs | 6 +++---
srcpkgs/clang | 2 +-
srcpkgs/clang-analyzer | 2 +-
srcpkgs/clang-tools-extra | 2 +-
srcpkgs/libclang | 2 +-
srcpkgs/libclang-cpp | 2 +-
srcpkgs/libcxx | 2 +-
srcpkgs/libcxx-devel | 2 +-
srcpkgs/libcxxabi | 2 +-
srcpkgs/libcxxabi-devel | 2 +-
srcpkgs/libomp | 2 +-
srcpkgs/libomp-devel | 2 +-
srcpkgs/lld | 2 +-
srcpkgs/lld-devel | 2 +-
srcpkgs/lldb | 2 +-
srcpkgs/lldb-devel | 2 +-
srcpkgs/llvm-libunwind | 2 +-
srcpkgs/llvm-libunwind-devel | 2 +-
srcpkgs/llvm/template | 6 +++---
19 files changed, 23 insertions(+), 23 deletions(-)
diff --git a/common/shlibs b/common/shlibs
index 837a476da03f..39870a6cbe5b 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -987,9 +987,9 @@ 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.12 lldb-12.0.0_1
-libclang.so.12 libclang-12.0.0_1
-libclang-cpp.so.12 libclang-cpp-12.0.0_1
+liblldb.so.15 lldb-15.0.7_1
+libclang.so.15 libclang-15.0.7_1
+libclang-cpp.so.15 libclang-cpp-15.0.7_1
libLLVM-11.so libllvm11-11.0.0_1
libLLVM-12.so libllvm12-12.0.0_1
libLLVM-15.so libllvm15-15.0.7_1
diff --git a/srcpkgs/clang b/srcpkgs/clang
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/clang
+++ b/srcpkgs/clang
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/clang-analyzer b/srcpkgs/clang-analyzer
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/clang-analyzer
+++ b/srcpkgs/clang-analyzer
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/clang-tools-extra b/srcpkgs/clang-tools-extra
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/clang-tools-extra
+++ b/srcpkgs/clang-tools-extra
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libclang b/srcpkgs/libclang
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libclang
+++ b/srcpkgs/libclang
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libclang-cpp b/srcpkgs/libclang-cpp
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libclang-cpp
+++ b/srcpkgs/libclang-cpp
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxx b/srcpkgs/libcxx
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxx
+++ b/srcpkgs/libcxx
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxx-devel b/srcpkgs/libcxx-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxx-devel
+++ b/srcpkgs/libcxx-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxxabi b/srcpkgs/libcxxabi
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxxabi
+++ b/srcpkgs/libcxxabi
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxxabi-devel b/srcpkgs/libcxxabi-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxxabi-devel
+++ b/srcpkgs/libcxxabi-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libomp b/srcpkgs/libomp
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libomp
+++ b/srcpkgs/libomp
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libomp-devel b/srcpkgs/libomp-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libomp-devel
+++ b/srcpkgs/libomp-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lld b/srcpkgs/lld
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lld
+++ b/srcpkgs/lld
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lld-devel b/srcpkgs/lld-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lld-devel
+++ b/srcpkgs/lld-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lldb b/srcpkgs/lldb
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lldb
+++ b/srcpkgs/lldb
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lldb-devel b/srcpkgs/lldb-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lldb-devel
+++ b/srcpkgs/lldb-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm-libunwind b/srcpkgs/llvm-libunwind
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/llvm-libunwind
+++ b/srcpkgs/llvm-libunwind
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm-libunwind-devel b/srcpkgs/llvm-libunwind-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/llvm-libunwind-devel
+++ b/srcpkgs/llvm-libunwind-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm/template b/srcpkgs/llvm/template
index a92db6f94f9f..fc1c850bd26f 100644
--- a/srcpkgs/llvm/template
+++ b/srcpkgs/llvm/template
@@ -1,11 +1,11 @@
# Template file for 'llvm'
pkgname=llvm
-version=12.0.0
+version=15
revision=1
build_style=meta
-depends="llvm12"
-replaces="llvm11>=0 llvm10>=0 llvm9>=0 llvm8>=0 llvm7>=0 llvm6.0>=0 llvm3.9>=0"
+depends="llvm15"
short_desc="LLVM meta package"
maintainer="Enno Boland <gottox@voidlinux.org>"
license="Public Domain"
homepage="https://www.voidlinux.org"
+replaces="llvm12>=0 llvm11>=0 llvm10>=0 llvm9>=0 llvm8>=0 llvm7>=0 llvm6.0>=0 llvm3.9>=0"
From 7a6608ac84a3f6737b0a034f759935ed6d37788a Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Sun, 18 Dec 2022 12:20:08 +0100
Subject: [PATCH 03/17] llvm12: remove bumped subpackages
---
srcpkgs/llvm12/template | 264 +---------------------------------------
1 file changed, 1 insertion(+), 263 deletions(-)
diff --git a/srcpkgs/llvm12/template b/srcpkgs/llvm12/template
index f8ea3ba641ae..aea0b43cf573 100644
--- a/srcpkgs/llvm12/template
+++ b/srcpkgs/llvm12/template
@@ -50,55 +50,7 @@ case "$XBPS_TARGET_MACHINE" in
ppc*) configure_args+=" -DCLANG_ENABLE_CLANGD=OFF" ;;
esac
-_enabled_projects="clang;clang-tools-extra;compiler-rt;libcxx;libcxxabi;libunwind;lld"
-
-_lldb_enable=yes
-_libomp_enable=no
-
-case "$XBPS_TARGET_MACHINE" in
- ppc64le*) ;;
- ppc*|i686*) _lldb_enable=no ;;
-esac
-
-case "$XBPS_TARGET_MACHINE" in
- x86_64*|aarch64*|ppc64*) _libomp_enable=yes;;
-esac
-
-subpackages="clang-tools-extra"
-
-# must go before clang
-if [ "$_libomp_enable" = "yes" ]; then
- _enabled_projects+=";openmp"
- subpackages+=" libomp libomp-devel"
- # because of cmake nonsense referencing libomptarget.so.*
- depends+=" libomp>=${version}_${revision}"
-fi
-
-subpackages+=" clang clang-analyzer libclang libclang-cpp
- llvm-libunwind llvm-libunwind-devel libcxx libcxx-devel
- libcxxabi libcxxabi-devel libllvm12"
-
-if [ "$_lldb_enable" = "yes" ]; then
- # XXX fails to cross compile due to python
- _enabled_projects+=";lldb"
- subpackages+=" lldb lldb-devel"
-fi
-
-subpackages+=" lld lld-devel"
-
-configure_args+=" -DLLVM_ENABLE_PROJECTS=${_enabled_projects}"
-
post_patch() {
- if [ "$_lldb_enable" = "yes" ]; then
- if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
- vsed -i 's|__ptrace_request|int|g' \
- ${wrksrc}/lldb/source/Plugins/Process/Linux/NativeProcessLinux.cpp
- fi
- # disable docs for lldb as they fail to generate
- vsed -i '/add_subdirectory(docs)/d' \
- ${wrksrc}/lldb/CMakeLists.txt
- fi
-
# update config.guess for better platform detection
cp $XBPS_COMMONDIR/environment/configure/automake/config.guess \
${wrksrc}/llvm/cmake
@@ -154,14 +106,12 @@ pre_configure() {
cd build/HOST
CC="$BUILD_CC" CXX="$BUILD_CXX" CFLAGS="$BUILD_CFLAGS" \
CXXFLAGS="$BUILD_CXXFLAGS" LDFLAGS="$BUILD_LDFLAGS" \
- cmake ../.. -DCMAKE_BUILD_TYPE=Release \
- -DLLVM_ENABLE_PROJECTS=${_enabled_projects}
+ cmake ../.. -DCMAKE_BUILD_TYPE=Release
make ${makejobs} -C utils/TableGen
make ${makejobs} -C tools/clang/utils/TableGen
[ "$_lldb_enable" = "yes" ] && make ${makejobs} -C tools/lldb/utils/TableGen
configure_args+=" -DLLVM_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/llvm-tblgen"
configure_args+=" -DCLANG_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/clang-tblgen"
- [ "$_lldb_enable" = "yes" ] && configure_args+=" -DLLDB_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/lldb-tblgen"
cd ../..
fi
@@ -201,218 +151,6 @@ do_install() {
if [ "$CROSS_BUILD" ]; then
rm -f ${DESTDIR}/usr/bin/llvm-config-host
fi
-
- # Install libcxxabi headers
- vinstall ${wrksrc}/libcxxabi/include/__cxxabi_config.h 644 usr/include
- vinstall ${wrksrc}/libcxxabi/include/cxxabi.h 644 usr/include
-
- # Install libunwind headers
- vinstall ${wrksrc}/libunwind/include/__libunwind_config.h 644 usr/include
- vinstall ${wrksrc}/libunwind/include/libunwind.h 644 usr/include
- vinstall ${wrksrc}/libunwind/include/unwind.h 644 usr/include
- vinstall ${wrksrc}/libunwind/include/mach-o/compact_unwind_encoding.h \
- 644 usr/include/mach-o
-}
-
-clang-analyzer_package() {
- pycompile_dirs="usr/share/scan-view"
- depends="clang-${version}_${revision} python3 perl"
- short_desc+=" - A source code analysis framework"
- homepage="https://clang-analyzer.llvm.org/"
- pkg_install() {
- vmove usr/share/man/man1/scan-build.1
- vmove "/usr/bin/scan-*"
- vmove "/usr/share/scan-*"
- vmove "/usr/libexec/*analyzer"
- }
-}
-
-clang-tools-extra_package() {
- lib32disabled=yes
- depends="clang-${version}_${revision} python3"
- short_desc+=" - Extra Clang tools"
- homepage="https://clang.llvm.org/extra/"
- pkg_install() {
- vmove usr/include/clang-tidy
- vmove usr/bin/clang-apply-replacements
- vmove usr/bin/clang-query
- vmove usr/bin/clang-rename
- vmove usr/bin/clang-tidy
- vmove usr/bin/diagtool
- vmove usr/bin/find-all-symbols
- vmove usr/bin/hmaptool
- vmove usr/bin/modularize
- vmove usr/bin/pp-trace
- vmove usr/bin/sancov
- vmove "usr/lib/libclangApplyReplacements*"
- vmove "usr/lib/libclangQuery*"
- vmove "usr/lib/libclangTidy*"
- vmove "usr/share/clang/*tidy*"
- vmove usr/share/doc/clang-tools
- vmove usr/share/man/man1/extraclangtools.1
- vmove usr/share/man/man1/diagtool.1
- }
-}
-
-clang_package() {
- lib32disabled=yes
- depends="libstdc++-devel libgcc-devel binutils ${XBPS_TARGET_LIBC}-devel
- libclang-${version}_${revision}"
- short_desc+=" - C language family frontend"
- homepage="https://clang.llvm.org/"
- pkg_install() {
- vmove usr/include/clang
- vmove usr/include/clang-c
- vmove "usr/bin/*clang*"
- vmove usr/bin/c-index-test
- vmove usr/lib/clang
- vmove usr/lib/cmake/clang
- vmove "usr/lib/libclang*.a"
- vmove "usr/lib/libclang*.so"
- vmove usr/share/clang
- vmove usr/share/doc/clang
- vmove usr/share/man/man1/clang.1
- }
-}
-
-libclang_package() {
- short_desc+=" - C frontend runtime library"
- pkg_install() {
- vmove "usr/lib/libclang.so.*"
- }
-}
-
-libclang-cpp_package() {
- short_desc+=" - C frontend runtime library (C++ interface)"
- pkg_install() {
- vmove "usr/lib/libclang-cpp.so.*"
- }
-}
-
-lld_package() {
- lib32disabled=yes
- short_desc+=" - linker"
- homepage="https://lld.llvm.org"
- pkg_install() {
- vmove usr/bin/lld*
- vmove usr/bin/wasm-ld
- vmove usr/bin/ld.lld*
- vmove usr/bin/ld64.lld*
- vmove usr/share/doc/lld
- }
-}
-
-lld-devel_package() {
- lib32disabled=yes
- short_desc+=" - linker - development files"
- homepage="https://lld.llvm.org"
- depends="lld>=${version}_${revision}"
- pkg_install() {
- vmove usr/include/lld
- vmove usr/lib/cmake/lld
- vmove "usr/lib/liblld*a"
- }
-}
-
-lldb_package() {
- lib32disabled=yes
- depends+=" python3-six"
- short_desc+=" - LLDB debugger"
- homepage="https://lldb.llvm.org/"
- pkg_install() {
- vmove usr/bin/*lldb*
- vmove usr/lib/liblldb*so.*
- vmove /usr/lib/python*
- }
-}
-
-lldb-devel_package() {
- lib32disabled=yes
- depends="lldb>=${version}_${revision}"
- short_desc+=" - LLDB debugger - development files"
- pkg_install() {
- vmove usr/include/lldb
- vmove "usr/lib/liblldb*.so"
- }
-}
-
-llvm-libunwind_package() {
- short_desc+=" - libunwind"
- pkg_install() {
- vmove "usr/lib/libunwind.so.*"
- }
-}
-
-llvm-libunwind-devel_package() {
- short_desc+=" - libunwind - development files"
- depends="llvm-libunwind>=${version}_${revision}"
- conflicts="libunwind-devel>=0"
- pkg_install() {
- vmove usr/lib/libunwind.so
- vmove usr/lib/libunwind.a
- vmove "usr/include/*unwind*"
- vmove usr/include/mach-o
- vmove usr/share/doc/libunwind
- }
-}
-
-libcxxabi_package() {
- short_desc+=" - low level support for libc++"
- pkg_install() {
- vmove "usr/lib/libc++abi.so.*"
- }
-}
-
-libcxxabi-devel_package() {
- short_desc+=" - low level support for libc++ - development files"
- depends="libcxxabi>=${version}_${revision}"
- pkg_install() {
- vmove usr/lib/libc++abi.so
- vmove usr/lib/libc++abi.a
- vmove "usr/include/*cxxabi*"
- }
-}
-
-libcxx_package() {
- short_desc+=" - C++ standard library"
- pkg_install() {
- vmove "usr/lib/libc++.so.*"
- }
-}
-
-libcxx-devel_package() {
- short_desc+=" - C++ standard library - development files"
- depends="libcxx>=${version}_${revision}"
- pkg_install() {
- vmove usr/lib/libc++.so
- vmove usr/lib/libc++.a
- vmove usr/lib/libc++experimental.a
- vmove usr/include/c++
- vmove usr/share/doc/libcxx
- }
-}
-
-libomp_package() {
- short_desc+=" - Clang OpenMP support library"
- pkg_install() {
- vmove usr/lib/libomp.so
- vmove "usr/lib/libomptarget.rtl.*.so"
- vmove usr/lib/libarcher.so
- vmove "usr/lib/libomp*.so.*"
- }
-}
-
-libomp-devel_package() {
- short_desc+=" - Clang OpenMP support library - development files"
- depends="libomp>=${version}_${revision}"
- pkg_install() {
- vmove "usr/lib/libomp*.so"
- vmove "usr/lib/libarcher*"
- vmove "usr/include/omp*.h"
- vmove "usr/lib/clang/${version}/include/omp*.h"
- vmove usr/share/man/man1/llvmopenmp.1
- vmove usr/share/doc/openmp
- }
}
libllvm12_package() {
From 22041e1f60b1bbe81393e41a848358981871fe41 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:27:03 +0100
Subject: [PATCH 04/17] mesa: rebuild for llvm15
---
srcpkgs/mesa/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/mesa/template b/srcpkgs/mesa/template
index 4c3c9ec6039e..0641b28a80d6 100644
--- a/srcpkgs/mesa/template
+++ b/srcpkgs/mesa/template
@@ -1,7 +1,7 @@
# Template file for 'mesa'
pkgname=mesa
version=22.2.4
-revision=2
+revision=3
build_style=meson
configure_args="-Dglvnd=true -Dshared-glapi=enabled -Dgbm=enabled -Degl=enabled
-Dosmesa=true -Dgles1=enabled -Dgles2=enabled -Dglx=dri -Ddri3=enabled
From d2724177cf21cc2dbd0596297b62861bb5971aaa Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:34:04 +0100
Subject: [PATCH 05/17] bcc: rebuild for llvm15
---
srcpkgs/bcc/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/bcc/template b/srcpkgs/bcc/template
index 7526580f17ed..bdbcff7227a0 100644
--- a/srcpkgs/bcc/template
+++ b/srcpkgs/bcc/template
@@ -1,7 +1,7 @@
# Template file for 'bcc'
pkgname=bcc
version=0.26.0
-revision=2
+revision=3
build_style=cmake
configure_args="-DREVISION=${version} -DENABLE_LLVM_SHARED=1"
hostmakedepends="flex python3-setuptools"
From b26023d1142be10fac4721b1e49bc7e872e36ae9 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:37:25 +0100
Subject: [PATCH 06/17] bpftrace: rebuild for llvm15
---
srcpkgs/bpftrace/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/bpftrace/template b/srcpkgs/bpftrace/template
index 857815d29eef..47f2b5e77024 100644
--- a/srcpkgs/bpftrace/template
+++ b/srcpkgs/bpftrace/template
@@ -1,7 +1,7 @@
# Template file for 'bpftrace'
pkgname=bpftrace
version=0.16.0
-revision=1
+revision=2
archs="x86_64* aarch64* ppc64*"
build_style=cmake
configure_args="-DBUILD_TESTING=OFF" # needs root to run
From 854cd00a2956948f8dd719b3921103e455f2efb6 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:43:53 +0100
Subject: [PATCH 07/17] CastXML: rebuild for llvm15
---
srcpkgs/CastXML/template | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/srcpkgs/CastXML/template b/srcpkgs/CastXML/template
index 5d7d9503658c..28c424c78073 100644
--- a/srcpkgs/CastXML/template
+++ b/srcpkgs/CastXML/template
@@ -1,7 +1,7 @@
# Template file for 'CastXML'
pkgname=CastXML
version=0.4.6
-revision=1
+revision=2
build_style=cmake
configure_args="-DSPHINX_MAN=YES -DCastXML_INSTALL_MAN_DIR=share/man"
hostmakedepends="clang python3-Sphinx"
@@ -12,8 +12,8 @@ short_desc="C-family abstract syntax tree XML output tool"
maintainer="Evgeny Ermakov <evgeny.v.ermakov@gmail.com>"
license="Apache-2.0"
homepage="https://github.com/CastXML/CastXML"
-distfiles="https://github.com/CastXML/CastXML/archive/v${version}.tar.gz"
-checksum=8dcdbc1f23a130e4bdb0b09f57c30761a02a346b4db4037555048af2a293d66a
+distfiles="https://github.com/CastXML/CastXML/archive/refs/tags/v${version}.tar.gz"
+checksum=bb9024ec9ea5082e0d527f19bf3c2df79f1699f54b6cec168c024e727b32e6d1
post_install() {
rm -r ${DESTDIR}/usr/share/castxml/clang/include
From 0ad3b237b3f85fc89dc33aae58f541fb33b65d16 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:48:55 +0100
Subject: [PATCH 08/17] ccls: rebuild for llvm15
---
srcpkgs/ccls/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/ccls/template b/srcpkgs/ccls/template
index 82fa61933878..ecc9f3e38a5d 100644
--- a/srcpkgs/ccls/template
+++ b/srcpkgs/ccls/template
@@ -1,7 +1,7 @@
# Template file for 'ccls'
pkgname=ccls
version=0.20220729
-revision=1
+revision=2
build_style=cmake
hostmakedepends="clang-tools-extra"
makedepends="clang-tools-extra libxml2-devel llvm ncurses-devel rapidjson zlib-devel"
From 6a293d6aced172d7e1cd35fc1699e55c698059ee Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:52:14 +0100
Subject: [PATCH 09/17] include-what-you-use: update to 0.19
---
srcpkgs/include-what-you-use/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/include-what-you-use/template b/srcpkgs/include-what-you-use/template
index d3655709c20c..1a30bc04bb2d 100644
--- a/srcpkgs/include-what-you-use/template
+++ b/srcpkgs/include-what-you-use/template
@@ -1,6 +1,6 @@
# Template file for 'include-what-you-use'
pkgname=include-what-you-use
-version=0.16
+version=0.19
revision=1
build_style=cmake
configure_args="-DIWYU_LLVM_ROOT_PATH=${XBPS_CROSS_BASE}/usr "
@@ -11,7 +11,7 @@ maintainer="Leah Neukirchen <leah@vuxu.org>"
license="NCSA"
homepage="https://include-what-you-use.org/"
distfiles="https://include-what-you-use.org/downloads/${pkgname}-${version}.src.tar.gz"
-checksum=8d6fc9b255343bc1e5ec459e39512df1d51c60e03562985e0076036119ff5a1c
+checksum=2b10157b60ea08adc08e3896b4921c73fcadd5ec4eb652b29a34129d501e5ee0
python_version=3
post_install() {
From 750f2c64b5a380cc32457900ea6115bf4fe3772a Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 15:11:06 +0100
Subject: [PATCH 10/17] SPIRV-LLVM-Translator: update to 15.0.0
---
srcpkgs/SPIRV-LLVM-Translator/template | 13 +++++++------
1 file changed, 7 insertions(+), 6 deletions(-)
diff --git a/srcpkgs/SPIRV-LLVM-Translator/template b/srcpkgs/SPIRV-LLVM-Translator/template
index a2754e58c0e8..bee99f9bcbb2 100644
--- a/srcpkgs/SPIRV-LLVM-Translator/template
+++ b/srcpkgs/SPIRV-LLVM-Translator/template
@@ -1,19 +1,20 @@
# Template file for 'SPIRV-LLVM-Translator'
pkgname=SPIRV-LLVM-Translator
-version=12.0.0
-revision=2
+version=15.0.0
+revision=1
build_style=cmake
make_build_args="llvm-spirv"
configure_args="-Wno-dev -DLLVM_LINK_LLVM_DYLIB=ON -DCMAKE_SKIP_RPATH=ON
- -DLLVM_SPIRV_INCLUDE_TESTS=OFF -DBUILD_SHARED_LIBS=ON"
+ -DLLVM_SPIRV_INCLUDE_TESTS=OFF -DBUILD_SHARED_LIBS=ON
+ -DLLVM_EXTERNAL_SPIRV_HEADERS_SOURCE_DIR=/usr"
hostmakedepends="clang llvm"
-makedepends="clang-tools-extra llvm"
+makedepends="clang-tools-extra llvm SPIRV-Headers"
short_desc="API and commands for processing SPIR-V modules"
maintainer="Orphaned <orphan@voidlinux.org>"
license="NCSA"
homepage="https://github.com/KhronosGroup/SPIRV-LLVM-Translator"
-distfiles="https://github.com/KhronosGroup/${pkgname}/archive/refs/tags/v${version}.tar.gz"
-checksum=6e4fad04203f25fcde4c308c53e9f59bd05a390978992db3212d4b63aff62108
+distfiles="https://github.com/KhronosGroup/SPIRV-LLVM-Translator/archive/refs/tags/v${version}.tar.gz"
+checksum=b1bebd77f72988758c00852e78c2ddc545815a612169a0cb377d021e2f846d88
post_install() {
vlicense LICENSE.TXT
From c85a9c0ef7471b8a60aa0acad4d4f27c93a6cf96 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Fri, 6 Jan 2023 17:11:04 +0100
Subject: [PATCH 11/17] rtags: rebuild for llvm15
---
srcpkgs/rtags/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/rtags/template b/srcpkgs/rtags/template
index b496a1b0e721..9b161e690d76 100644
--- a/srcpkgs/rtags/template
+++ b/srcpkgs/rtags/template
@@ -1,7 +1,7 @@
# Template file for 'rtags'
pkgname=rtags
version=2.38
-revision=5
+revision=6
build_style=cmake
# Don't run tests in do_install, please.
configure_args="-DSKIP_CTEST=TRUE"
From b4a72e0b01e73cd28cd2cc6a047723552a7ef78c Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Fri, 6 Jan 2023 17:14:14 +0100
Subject: [PATCH 12/17] juCi++: rebuild for llvm15
---
srcpkgs/juCi++/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/juCi++/template b/srcpkgs/juCi++/template
index c1969237f11d..416bde7cc4d0 100644
--- a/srcpkgs/juCi++/template
+++ b/srcpkgs/juCi++/template
@@ -1,7 +1,7 @@
# Template file for 'juCi++'
pkgname=juCi++
version=1.7.2
-revision=2
+revision=3
_libclangmm_commit="9704b9b6de0982a588fa41741157d5640afedf30"
_tiny_commit="839ff806dc447ff49af80f9a9eaa7949f770f8e5"
create_wrksrc=yes
From 8239f1f4a0925cfcfc0891798edbb722755d693a Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Sat, 7 Jan 2023 11:31:14 +0100
Subject: [PATCH 13/17] qt5: rebuild for llvm15
---
srcpkgs/qt5/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/qt5/template b/srcpkgs/qt5/template
index f4f9f5b5344a..b517b49ead2d 100644
--- a/srcpkgs/qt5/template
+++ b/srcpkgs/qt5/template
@@ -5,7 +5,7 @@ pkgname=qt5
version=5.15.7+20221119
# commit f8c9fb304bc3e53b3aa07f962cd74e9160decccc
# base repo: https://invent.kde.org/qt/qt/qt5
-revision=1
+revision=2
build_style=meta
hostmakedepends="cmake clang flex perl glib-devel pkg-config
python re2c ruby which"
From 01b48d2f05efde1727f513db94d7052eb82d6022 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Mon, 9 Jan 2023 01:22:18 +0100
Subject: [PATCH 14/17] codelite: rebuild for llvm15
---
srcpkgs/codelite/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/codelite/template b/srcpkgs/codelite/template
index 6b8b007c8a43..c6115e0274ce 100644
--- a/srcpkgs/codelite/template
+++ b/srcpkgs/codelite/template
@@ -1,7 +1,7 @@
# Template file for 'codelite'
pkgname=codelite
version=16.0.0
-revision=2
+revision=3
create_wrksrc=yes
build_style=cmake
build_helper=cmake-wxWidgets-gtk3
From b768b332b053c4686f83c6b3c946a053b8434b06 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Mon, 9 Jan 2023 01:58:21 +0100
Subject: [PATCH 15/17] kdevelop: rebuild for llvm15
---
srcpkgs/kdevelop/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/kdevelop/template b/srcpkgs/kdevelop/template
index 5eb275583138..c32ee5240a44 100644
--- a/srcpkgs/kdevelop/template
+++ b/srcpkgs/kdevelop/template
@@ -1,7 +1,7 @@
# Template file for 'kdevelop'
pkgname=kdevelop
version=22.12.1
-revision=1
+revision=2
build_style=cmake
configure_args="-DBUILD_TESTING=OFF"
hostmakedepends="extra-cmake-modules qt5-qmake qt5-host-tools qt5-tools
From 736b6562a14df9f93bc58806f54d3e51cea0916a Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Mon, 16 Jan 2023 14:43:47 +0100
Subject: [PATCH 16/17] zig: update to 0.10.1
---
.../0001-std.build-fix-handling-of-Dcpu.patch | 48 -------------------
srcpkgs/zig/template | 10 ++--
2 files changed, 6 insertions(+), 52 deletions(-)
delete mode 100644 srcpkgs/zig/patches/0001-std.build-fix-handling-of-Dcpu.patch
diff --git a/srcpkgs/zig/patches/0001-std.build-fix-handling-of-Dcpu.patch b/srcpkgs/zig/patches/0001-std.build-fix-handling-of-Dcpu.patch
deleted file mode 100644
index 4101f24459bb..000000000000
--- a/srcpkgs/zig/patches/0001-std.build-fix-handling-of-Dcpu.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From 1e8cdace7ad324a42228aeb5cd6eb8dd15429413 Mon Sep 17 00:00:00 2001
-From: Isaac Freund <ifreund@ifreund.xyz>
-Date: Tue, 21 Sep 2021 21:06:10 +0200
-Subject: [PATCH] std.build: fix handling of -Dcpu
-
-Currently -Dcpu is completely ignored if -Dtarget isn't passed as well.
-Further, -Dcpu=baseline is ignored even if -Dtarget=native is passed.
-
-This patch fixes these 2 issues, always respecting the -Dcpu option if
-present.
----
- lib/std/build.zig | 13 +++++++------
- 1 file changed, 7 insertions(+), 6 deletions(-)
-
-diff --git a/lib/std/build.zig b/lib/std/build.zig
-index 9b7ebb1f4..e398529f9 100644
---- a/lib/std/build.zig
-+++ b/lib/std/build.zig
-@@ -685,7 +685,11 @@ pub const Builder = struct {
- );
- const mcpu = self.option([]const u8, "cpu", "Target CPU");
-
-- const triple = maybe_triple orelse return args.default_target;
-+ if (maybe_triple == null and mcpu == null) {
-+ return args.default_target;
-+ }
-+
-+ const triple = maybe_triple orelse "native";
-
- var diags: CrossTarget.ParseOptions.Diagnostics = .{};
- const selected_target = CrossTarget.parse(.{
-@@ -2451,11 +2455,8 @@ pub const LibExeObjStep = struct {
-
- if (populated_cpu_features.eql(cross.cpu.features)) {
- // The CPU name alone is sufficient.
-- // If it is the baseline CPU, no command line args are required.
-- if (cross.cpu.model != std.Target.Cpu.baseline(cross.cpu.arch).model) {
-- try zig_args.append("-mcpu");
-- try zig_args.append(cross.cpu.model.name);
-- }
-+ try zig_args.append("-mcpu");
-+ try zig_args.append(cross.cpu.model.name);
- } else {
- var mcpu_buffer = std.ArrayList(u8).init(builder.allocator);
-
---
-2.33.1
-
diff --git a/srcpkgs/zig/template b/srcpkgs/zig/template
index 728c5a64e9df..9807f7ab206b 100644
--- a/srcpkgs/zig/template
+++ b/srcpkgs/zig/template
@@ -1,17 +1,19 @@
# Template file for 'zig'
pkgname=zig
-version=0.8.1
-revision=2
+version=0.10.1
+revision=1
archs="x86_64* aarch64*"
build_style=cmake
make_cmd=make
-makedepends="clang llvm12 lld-devel"
+# we add xml2, zstd, zlib and ncurses
+# because our lld is static-only and requires those to work
+makedepends="clang llvm15 lld-devel libxml2-devel libzstd-devel ncurses-devel zlib-devel"
short_desc="Programming language designed for robustness, optimality, and clarity"
maintainer="Isaac Freund <mail@isaacfreund.com>"
license="MIT"
homepage="https://ziglang.org"
distfiles="https://ziglang.org/download/${version}/zig-${version}.tar.xz"
-checksum=8c428e14a0a89cb7a15a6768424a37442292858cdb695e2eb503fa3c7bf47f1a
+checksum=69459bc804333df077d441ef052ffa143d53012b655a51f04cfef1414c04168c
nopie=yes
nocross=yes
From 144d508d5254bd72db0c5be3aefed6ab6d6c704b Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Tue, 24 Jan 2023 14:03:51 +0100
Subject: [PATCH 17/17] river: update to 0.2.3
---
...ble-PIE-for-river-riverctl-rivertile.patch | 42 -------------------
srcpkgs/river/template | 10 ++---
2 files changed, 5 insertions(+), 47 deletions(-)
delete mode 100644 srcpkgs/river/patches/0001-Enable-PIE-for-river-riverctl-rivertile.patch
diff --git a/srcpkgs/river/patches/0001-Enable-PIE-for-river-riverctl-rivertile.patch b/srcpkgs/river/patches/0001-Enable-PIE-for-river-riverctl-rivertile.patch
deleted file mode 100644
index ecc68302db09..000000000000
--- a/srcpkgs/river/patches/0001-Enable-PIE-for-river-riverctl-rivertile.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From 759c1c7a915083f3da46960ff82fa2a3566a7065 Mon Sep 17 00:00:00 2001
-From: Isaac Freund <mail@isaacfreund.com>
-Date: Wed, 3 Nov 2021 14:21:35 +0100
-Subject: [PATCH] Enable PIE for river, riverctl, rivertile
-
-There is sadly not yet a standard way to do this exposed by the zig
-build system. See: https://github.com/ziglang/zig/issues/7201
----
- build.zig | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/build.zig b/build.zig
-index d561f49..8ac9a4e 100644
---- a/build.zig
-+++ b/build.zig
-@@ -85,6 +85,7 @@ pub fn build(b: *zbs.Builder) !void {
- const river = b.addExecutable("river", "river/main.zig");
- river.setTarget(target);
- river.setBuildMode(mode);
-+ river.pie = true;
- river.addBuildOption(bool, "xwayland", xwayland);
- river.addBuildOption([:0]const u8, "version", full_version);
-
-@@ -97,6 +98,7 @@ pub fn build(b: *zbs.Builder) !void {
- const riverctl = b.addExecutable("riverctl", "riverctl/main.zig");
- riverctl.setTarget(target);
- riverctl.setBuildMode(mode);
-+ riverctl.pie = true;
- riverctl.addBuildOption([:0]const u8, "version", full_version);
-
- riverctl.step.dependOn(&scanner.step);
-@@ -114,6 +116,7 @@ pub fn build(b: *zbs.Builder) !void {
- const rivertile = b.addExecutable("rivertile", "rivertile/main.zig");
- rivertile.setTarget(target);
- rivertile.setBuildMode(mode);
-+ rivertile.pie = true;
- rivertile.addBuildOption([:0]const u8, "version", full_version);
-
- rivertile.step.dependOn(&scanner.step);
---
-2.33.1
-
diff --git a/srcpkgs/river/template b/srcpkgs/river/template
index 3906858d507e..431aa4bd8e8e 100644
--- a/srcpkgs/river/template
+++ b/srcpkgs/river/template
@@ -1,18 +1,18 @@
# Template file for 'river'
pkgname=river
-version=0.1.1
-revision=2
+version=0.2.3
+revision=1
build_style=zig-build
-configure_args="$(vopt_if xwayland -Dxwayland)"
+configure_args="$(vopt_if xwayland -Dxwayland) -Dpie"
hostmakedepends="pkg-config wayland-devel scdoc"
-makedepends="wlroots0.15-devel libevdev-devel"
+makedepends="wlroots-devel libevdev-devel"
depends="$(vopt_if xwayland xorg-server-xwayland)"
short_desc="Dynamic tiling Wayland compositor"
maintainer="Isaac Freund <mail@isaacfreund.com>"
license="GPL-3.0-or-later"
homepage="https://github.com/riverwm/river"
distfiles="${homepage}/releases/download/v${version}/river-${version}.tar.gz"
-checksum=2a0bcd4670ed9ebd39c279f2bf10803fc65c9f3ee2307ce40728df23ce914d18
+checksum=7acdd2b929e16a20006b4baf1f29e7a8dc7f70cf5747e1503a610a90d1637132
build_options="xwayland"
build_options_default="xwayland"
^ permalink raw reply [flat|nested] 96+ messages in thread
* Re: [PR PATCH] [Updated] [WIP] LLVM 15
2022-11-28 15:30 [PR PATCH] [WIP] LLVM 15 tranzystorek-io
` (55 preceding siblings ...)
2023-02-05 12:42 ` tranzystorek-io
@ 2023-02-05 13:58 ` tranzystorek-io
2023-02-07 9:14 ` tranzystorek-io
` (37 subsequent siblings)
94 siblings, 0 replies; 96+ messages in thread
From: tranzystorek-io @ 2023-02-05 13:58 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 1154 bytes --]
There is an updated pull request by tranzystorek-io against master on the void-packages repository
https://github.com/tranzystorek-io/void-packages llvm15
https://github.com/void-linux/void-packages/pull/40821
[WIP] LLVM 15
[ci skip]
TODO:
- [ ] Adjust patches marked as `.patch.skip`
- [x] Make libomp a shlib (change so file name and install a symlink)
- [x] Avoid creating triplet dirs under /usr/
TODO LLVM rdeps:
- [ ] clazy (breaking changes in clang API)
- [x] beignet (https://github.com/void-linux/void-packages/pull/41529)
- [ ] ispc (1.18.1 supports LLVM `<= 14`)
- [ ] ldc (1.30.0 supports LLVM `<= 14`)
- [ ] ghdl (2.0.0 supports LLVM `<= 14`)
- [x] qt
- [ ] qtcreator (breaking changes in clang-format API)
- [ ] shiboken2 (tests failing with llvm15)
- [x] bpftrace (https://github.com/void-linux/void-packages/pull/39002)
- [ ] libclc (tests fail with unresolved calls https://gist.githubusercontent.com/tranzystorek-io/a2aa8a0d8010af5299f7d1ff9f82c22b/raw/6d316d99d6079990b73ae77d274dd120b9560589/LastTest.log)
- [x] zig
A patch file from https://github.com/void-linux/void-packages/pull/40821.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-llvm15-40821.patch --]
[-- Type: text/x-diff, Size: 84846 bytes --]
From 83ed893c860f3dbb493b8aaa6ed56eace35a182a Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Sun, 18 Dec 2022 00:36:59 +0100
Subject: [PATCH 01/17] New package: llvm15-15.0.7
---
common/shlibs | 3 +
srcpkgs/libllvm15 | 1 +
.../llvm15/files/llvm-Config-llvm-config.h | 9 +
...clang-001-fix-unwind-chain-inclusion.patch | 44 ++
.../patches/clang-002-add-musl-triples.patch | 115 +++++
.../clang-003-ppc64-dynamic-linker-path.patch | 13 +
.../patches/clang-004-ppc64-musl-elfv2.patch | 48 ++
.../compiler-rt-sanitizer-ppc64-musl.patch | 35 ++
.../compiler-rt-xray-ppc64-musl.patch.skip | 62 +++
srcpkgs/llvm15/patches/libcxx-musl.patch | 26 ++
srcpkgs/llvm15/patches/libcxx-ppc.patch | 22 +
.../llvm15/patches/libcxx-ssp-nonshared.patch | 11 +
srcpkgs/llvm15/patches/libcxxabi-dl.patch | 25 +
srcpkgs/llvm15/patches/libcxxabi-musl.patch | 37 ++
srcpkgs/llvm15/patches/libomp-soname.patch | 12 +
.../llvm15/patches/libunwind-ppc32.patch.skip | 63 +++
srcpkgs/llvm15/patches/lldb-musl.patch | 40 ++
srcpkgs/llvm15/patches/llvm-001-musl.patch | 57 +++
.../patches/llvm-002-musl-ppc64-elfv2.patch | 30 ++
.../patches/llvm-003-ppc-secureplt.patch | 11 +
.../patches/llvm-004-override-opt.patch | 18 +
.../llvm15/patches/llvm-005-ppc-bigpic.patch | 36 ++
.../patches/llvm-006-aarch64-mf_exec.patch | 25 +
srcpkgs/llvm15/template | 442 ++++++++++++++++++
srcpkgs/llvm15/update | 3 +
25 files changed, 1188 insertions(+)
create mode 120000 srcpkgs/libllvm15
create mode 100644 srcpkgs/llvm15/files/llvm-Config-llvm-config.h
create mode 100644 srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch
create mode 100644 srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch
create mode 100644 srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch
create mode 100644 srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch
create mode 100644 srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch
create mode 100644 srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip
create mode 100644 srcpkgs/llvm15/patches/libcxx-musl.patch
create mode 100644 srcpkgs/llvm15/patches/libcxx-ppc.patch
create mode 100644 srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch
create mode 100644 srcpkgs/llvm15/patches/libcxxabi-dl.patch
create mode 100644 srcpkgs/llvm15/patches/libcxxabi-musl.patch
create mode 100644 srcpkgs/llvm15/patches/libomp-soname.patch
create mode 100644 srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip
create mode 100644 srcpkgs/llvm15/patches/lldb-musl.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-001-musl.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-004-override-opt.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch
create mode 100644 srcpkgs/llvm15/template
create mode 100644 srcpkgs/llvm15/update
diff --git a/common/shlibs b/common/shlibs
index 59444164928b..837a476da03f 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -992,6 +992,9 @@ libclang.so.12 libclang-12.0.0_1
libclang-cpp.so.12 libclang-cpp-12.0.0_1
libLLVM-11.so libllvm11-11.0.0_1
libLLVM-12.so libllvm12-12.0.0_1
+libLLVM-15.so libllvm15-15.0.7_1
+libomp.so.5 libomp-15.0.7_1
+libomptarget.so.15 libomp-15.0.7_1
libisofs.so.6 libisofs-0.6.24_1
libmpack.so.0 libmpack-1.0.5_1
libGeoIP.so.1 libgeoip-1.4.8_1
diff --git a/srcpkgs/libllvm15 b/srcpkgs/libllvm15
new file mode 120000
index 000000000000..ad57a969b9f9
--- /dev/null
+++ b/srcpkgs/libllvm15
@@ -0,0 +1 @@
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm15/files/llvm-Config-llvm-config.h b/srcpkgs/llvm15/files/llvm-Config-llvm-config.h
new file mode 100644
index 000000000000..2fa08c9be696
--- /dev/null
+++ b/srcpkgs/llvm15/files/llvm-Config-llvm-config.h
@@ -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
diff --git a/srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch b/srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch
new file mode 100644
index 000000000000..e4eaa7783e7a
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch
@@ -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
diff --git a/srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch b/srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch
new file mode 100644
index 000000000000..0ef4c7e75d6b
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch
@@ -0,0 +1,115 @@
+--- a/clang/lib/Driver/ToolChains/Gnu.cpp
++++ b/clang/lib/Driver/ToolChains/Gnu.cpp
+@@ -2086,7 +2086,8 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
+ static const char *const ARMHFTriples[] = {"arm-linux-gnueabihf",
+ "armv7hl-redhat-linux-gnueabi",
+ "armv6hl-suse-linux-gnueabi",
+- "armv7hl-suse-linux-gnueabi"};
++ "armv7hl-suse-linux-gnueabi",
++ "armv7l-linux-gnueabihf"};
+ static const char *const ARMebLibDirs[] = {"/lib"};
+ static const char *const ARMebTriples[] = {"armeb-linux-gnueabi",
+ "armeb-linux-androideabi"};
+@@ -2153,8 +2154,7 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
+ "powerpc64-suse-linux", "powerpc-montavista-linuxspe"};
+ static const char *const PPCLELibDirs[] = {"/lib32", "/lib"};
+ static const char *const PPCLETriples[] = {"powerpcle-linux-gnu",
+- "powerpcle-unknown-linux-gnu",
+- "powerpcle-linux-musl"};
++ "powerpcle-unknown-linux-gnu"};
+
+ static const char *const PPC64LibDirs[] = {"/lib64", "/lib"};
+ static const char *const PPC64Triples[] = {
+@@ -2235,6 +2235,92 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
+ return;
+ }
+
++ if (TargetTriple.isMusl()) {
++ static const char *const AArch64MuslTriples[] = {"aarch64-linux-musl"};
++ static const char *const ARMHFMuslTriples[] = {
++ "arm-linux-musleabihf", "armv7l-linux-musleabihf"
++ };
++ static const char *const ARMMuslTriples[] = {"arm-linux-musleabi"};
++ static const char *const X86_64MuslTriples[] = {"x86_64-linux-musl"};
++ static const char *const X86MuslTriples[] = {"i686-linux-musl"};
++ static const char *const MIPSMuslTriples[] = {
++ "mips-linux-musl", "mipsel-linux-musl",
++ "mipsel-linux-muslhf", "mips-linux-muslhf"
++ };
++ static const char *const PPCMuslTriples[] = {"powerpc-linux-musl"};
++ static const char *const PPCLEMuslTriples[] = {"powerpcle-linux-musl"};
++ static const char *const PPC64MuslTriples[] = {"powerpc64-linux-musl"};
++ static const char *const PPC64LEMuslTriples[] = {"powerpc64le-linux-musl"};
++ static const char *const RISCV64MuslTriples[] = {"riscv64-linux-musl"};
++
++ switch (TargetTriple.getArch()) {
++ case llvm::Triple::aarch64:
++ LibDirs.append(begin(AArch64LibDirs), end(AArch64LibDirs));
++ TripleAliases.append(begin(AArch64MuslTriples), end(AArch64MuslTriples));
++ BiarchLibDirs.append(begin(AArch64LibDirs), end(AArch64LibDirs));
++ BiarchTripleAliases.append(begin(AArch64MuslTriples), end(AArch64MuslTriples));
++ break;
++ case llvm::Triple::arm:
++ LibDirs.append(begin(ARMLibDirs), end(ARMLibDirs));
++ if (TargetTriple.getEnvironment() == llvm::Triple::MuslEABIHF) {
++ TripleAliases.append(begin(ARMHFMuslTriples), end(ARMHFMuslTriples));
++ } else {
++ TripleAliases.append(begin(ARMMuslTriples), end(ARMMuslTriples));
++ }
++ break;
++ case llvm::Triple::x86_64:
++ LibDirs.append(begin(X86_64LibDirs), end(X86_64LibDirs));
++ TripleAliases.append(begin(X86_64MuslTriples), end(X86_64MuslTriples));
++ BiarchLibDirs.append(begin(X86LibDirs), end(X86LibDirs));
++ BiarchTripleAliases.append(begin(X86MuslTriples), end(X86MuslTriples));
++ break;
++ case llvm::Triple::x86:
++ LibDirs.append(begin(X86LibDirs), end(X86LibDirs));
++ TripleAliases.append(begin(X86MuslTriples), end(X86MuslTriples));
++ BiarchLibDirs.append(begin(X86_64LibDirs), end(X86_64LibDirs));
++ BiarchTripleAliases.append(begin(X86_64MuslTriples), end(X86_64MuslTriples));
++ break;
++ case llvm::Triple::mips:
++ LibDirs.append(begin(MIPSLibDirs), end(MIPSLibDirs));
++ TripleAliases.append(begin(MIPSMuslTriples), end(MIPSMuslTriples));
++ break;
++ case llvm::Triple::ppc:
++ LibDirs.append(begin(PPCLibDirs), end(PPCLibDirs));
++ TripleAliases.append(begin(PPCMuslTriples), end(PPCMuslTriples));
++ BiarchLibDirs.append(begin(PPC64LibDirs), end(PPC64LibDirs));
++ BiarchTripleAliases.append(begin(PPC64MuslTriples), end(PPC64MuslTriples));
++ break;
++ case llvm::Triple::ppcle:
++ LibDirs.append(begin(PPCLELibDirs), end(PPCLELibDirs));
++ TripleAliases.append(begin(PPCLEMuslTriples), end(PPCLEMuslTriples));
++ BiarchLibDirs.append(begin(PPC64LELibDirs), end(PPC64LELibDirs));
++ BiarchTripleAliases.append(begin(PPC64LEMuslTriples), end(PPC64LEMuslTriples));
++ break;
++ case llvm::Triple::ppc64:
++ LibDirs.append(begin(PPC64LibDirs), end(PPC64LibDirs));
++ TripleAliases.append(begin(PPC64MuslTriples), end(PPC64MuslTriples));
++ BiarchLibDirs.append(begin(PPCLibDirs), end(PPCLibDirs));
++ BiarchTripleAliases.append(begin(PPCMuslTriples), end(PPCMuslTriples));
++ break;
++ case llvm::Triple::ppc64le:
++ LibDirs.append(begin(PPC64LELibDirs), end(PPC64LELibDirs));
++ TripleAliases.append(begin(PPC64LEMuslTriples), end(PPC64LEMuslTriples));
++ BiarchLibDirs.append(begin(PPCLELibDirs), end(PPCLELibDirs));
++ BiarchTripleAliases.append(begin(PPCLEMuslTriples), end(PPCLEMuslTriples));
++ break;
++ case llvm::Triple::riscv64:
++ LibDirs.append(begin(RISCV64LibDirs), end(RISCV64LibDirs));
++ TripleAliases.append(begin(RISCV64MuslTriples), end(RISCV64MuslTriples));
++ break;
++ default:
++ break;
++ }
++ TripleAliases.push_back(TargetTriple.str());
++ if (TargetTriple.str() != BiarchTriple.str())
++ BiarchTripleAliases.push_back(BiarchTriple.str());
++ return;
++ }
++
+ // Android targets should not use GNU/Linux tools or libraries.
+ if (TargetTriple.isAndroid()) {
+ static const char *const AArch64AndroidTriples[] = {
diff --git a/srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch b/srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch
new file mode 100644
index 000000000000..4ad6412d1e6c
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch
@@ -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 =
diff --git a/srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch b/srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch
new file mode 100644
index 000000000000..21fc8003c5f1
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch
@@ -0,0 +1,48 @@
+--- a/clang/lib/Basic/Targets/PPC.h
++++ b/clang/lib/Basic/Targets/PPC.h
+@@ -415,11 +415,10 @@ public:
+ LongDoubleFormat = &llvm::APFloat::IEEEdouble();
+ } else if ((Triple.getArch() == llvm::Triple::ppc64le)) {
+ DataLayout = "e-m:e-i64:64-n32:64";
+- ABI = "elfv2";
+ } else {
+ DataLayout = "E-m:e-i64:64-n32:64";
+- ABI = "elfv1";
+ }
++ ABI = "elfv2";
+
+ if (Triple.isOSFreeBSD() || Triple.isOSOpenBSD() || Triple.isMusl()) {
+ LongDoubleWidth = LongDoubleAlign = 64;
+--- a/clang/lib/CodeGen/TargetInfo.cpp
++++ b/clang/lib/CodeGen/TargetInfo.cpp
+@@ -10927,9 +10927,9 @@ const TargetCodeGenInfo &CodeGenModule::getTargetCodeGenInfo() {
+ return SetCGInfo(new AIXTargetCodeGenInfo(Types, /*Is64Bit*/ true));
+
+ if (Triple.isOSBinFormatELF()) {
+- PPC64_SVR4_ABIInfo::ABIKind Kind = PPC64_SVR4_ABIInfo::ELFv1;
+- if (getTarget().getABI() == "elfv2")
+- Kind = PPC64_SVR4_ABIInfo::ELFv2;
++ PPC64_SVR4_ABIInfo::ABIKind Kind = PPC64_SVR4_ABIInfo::ELFv2;
++ if (getTarget().getABI() == "elfv1")
++ Kind = PPC64_SVR4_ABIInfo::ELFv1;
+ bool IsSoftFloat = CodeGenOpts.FloatABI == "soft";
+
+ return SetCGInfo(
+--- a/clang/lib/Driver/ToolChains/Clang.cpp
++++ b/clang/lib/Driver/ToolChains/Clang.cpp
+@@ -1920,14 +1920,7 @@ void Clang::AddPPCTargetArgs(const ArgList &Args,
+ const llvm::Triple &T = getToolChain().getTriple();
+ if (T.isOSBinFormatELF()) {
+ switch (getToolChain().getArch()) {
+- case llvm::Triple::ppc64: {
+- if ((T.isOSFreeBSD() && T.getOSMajorVersion() >= 13) ||
+- T.isOSOpenBSD() || T.isMusl())
+- ABIName = "elfv2";
+- else
+- ABIName = "elfv1";
+- break;
+- }
++ case llvm::Triple::ppc64:
+ case llvm::Triple::ppc64le:
+ ABIName = "elfv2";
+ break;
diff --git a/srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch b/srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch
new file mode 100644
index 000000000000..360cfc1ba7f1
--- /dev/null
+++ b/srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch
@@ -0,0 +1,35 @@
+--- 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__) || SANITIZER_RISCV64
++ defined(__hexagon__) || defined(__powerpc__) || 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_ANDROID
++#if (defined(__aarch64__) || defined(__powerpc__) || SANITIZER_RISCV64) && !SANITIZER_ANDROID
+ // GLIBC 2.20+ sys/user does not include asm/ptrace.h
+ # include <asm/ptrace.h>
+ #endif
diff --git a/srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip b/srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip
new file mode 100644
index 000000000000..d0b61c80c897
--- /dev/null
+++ b/srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip
@@ -0,0 +1,62 @@
+--- a/compiler-rt/lib/xray/xray_powerpc64.inc
++++ b/compiler-rt/lib/xray/xray_powerpc64.inc
+@@ -12,7 +12,13 @@
+
+ #include <cstdint>
+ #include <mutex>
++#ifdef __GLIBC__
+ #include <sys/platform/ppc.h>
++#else
++#include <cctype>
++#include <cstring>
++#include <cstdlib>
++#endif
+
+ #include "xray_defs.h"
+
+@@ -20,13 +26,45 @@ namespace __xray {
+
+ ALWAYS_INLINE uint64_t readTSC(uint8_t &CPU) XRAY_NEVER_INSTRUMENT {
+ CPU = 0;
++#ifdef __GLIBC__
+ return __ppc_get_timebase();
++#else
++ return __builtin_ppc_get_timebase();
++#endif
+ }
+
+ inline uint64_t getTSCFrequency() XRAY_NEVER_INSTRUMENT {
+ static std::mutex M;
+ std::lock_guard<std::mutex> Guard(M);
++#ifdef __GLIBC__
+ return __ppc_get_timebase_freq();
++#else
++ /* FIXME: a less dirty implementation? */
++ static uint64_t base;
++ if (!base) {
++ FILE *f = fopen("/proc/cpuinfo", "rb");
++ if (f) {
++ ssize_t nr;
++ /* virtually always big enough to hold the line */
++ char buf[512];
++ while (fgets(buf, sizeof(buf), f)) {
++ char *ret = strstr(buf, "timebase");
++ if (!ret) {
++ continue;
++ }
++ ret += sizeof("timebase") - 1;
++ ret = strchr(ret, ':');
++ if (!ret) {
++ continue;
++ }
++ base = strtoul(ret + 1, nullptr, 10);
++ break;
++ }
++ fclose(f);
++ }
++ }
++ return base;
++#endif
+ }
+
+ inline bool probeRequiredCPUFeatures() XRAY_NEVER_INSTRUMENT {
diff --git a/srcpkgs/llvm15/patches/libcxx-musl.patch b/srcpkgs/llvm15/patches/libcxx-musl.patch
new file mode 100644
index 000000000000..bbd31ffc2cb1
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxx-musl.patch
@@ -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,
+ typename remove_reference<decltype(errno)>::type __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
+ typename remove_reference<decltype(errno)>::type __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,
+ typename remove_reference<decltype(errno)>::type __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
+ typename remove_reference<decltype(errno)>::type __current_errno = errno;
+ if (__current_errno == 0)
+ errno = __save_errno;
diff --git a/srcpkgs/llvm15/patches/libcxx-ppc.patch b/srcpkgs/llvm15/patches/libcxx-ppc.patch
new file mode 100644
index 000000000000..7a92f8004e1c
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxx-ppc.patch
@@ -0,0 +1,22 @@
+This ensures `is_iec559` is defined correctly under all long double ABIs,
+including musl and its 64-bit long double. Also, `__ppc__` or `__ppc64__`
+is not defined on gcc.
+
+--- a/libcxx/include/limits
++++ b/libcxx/include/limits
+@@ -426,8 +426,14 @@ protected:
+ _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type signaling_NaN() _NOEXCEPT {return __builtin_nansl("");}
+ _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type denorm_min() _NOEXCEPT {return __LDBL_DENORM_MIN__;}
+
+-#if (defined(__ppc__) || defined(__ppc64__))
++#if defined(__powerpc__) || defined(__powerpc64__)
++#if (__LDBL_MAX_EXP__ > __DBL_MAX_EXP__) || (__LDBL_MANT_DIG__ == __DBL_MANT_DIG__)
++ /* IEEE 754 quadruple or double precision */
++ static _LIBCPP_CONSTEXPR const bool is_iec559 = true;
++#else
++ /* 128-bit IBM double-double */
+ static _LIBCPP_CONSTEXPR const bool is_iec559 = false;
++#endif
+ #else
+ static _LIBCPP_CONSTEXPR const bool is_iec559 = true;
+ #endif
diff --git a/srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch b/srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch
new file mode 100644
index 000000000000..70292beb2fcd
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch
@@ -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()
diff --git a/srcpkgs/llvm15/patches/libcxxabi-dl.patch b/srcpkgs/llvm15/patches/libcxxabi-dl.patch
new file mode 100644
index 000000000000..3a15f9db8c98
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxxabi-dl.patch
@@ -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 @@
+ target_link_libraries(${target} PRIVATE m)
+ endif()
+
++ if (LIBCXX_HAS_C_LIB)
++ target_link_libraries(${target} PRIVATE dl)
++ endif()
++
+ if (LIBCXX_HAS_RT_LIB)
+ target_link_libraries(${target} PRIVATE rt)
+ endif()
diff --git a/srcpkgs/llvm15/patches/libcxxabi-musl.patch b/srcpkgs/llvm15/patches/libcxxabi-musl.patch
new file mode 100644
index 000000000000..55bf6f5aaa08
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxxabi-musl.patch
@@ -0,0 +1,37 @@
+diff --git a/libcxx/include/__support/musl/xlocale.h b/libcxx/include/__support/musl/xlocale.h
+index e674a41fa..f546119b9 100644
+--- a/libcxx/include/__support/musl/xlocale.h
++++ b/libcxx/include/__support/musl/xlocale.h
+@@ -24,27 +24,27 @@
+ extern "C" {
+ #endif
+
+-inline _LIBCPP_HIDE_FROM_ABI long long
++static inline long long
+ strtoll_l(const char *__nptr, char **__endptr, int __base, locale_t) {
+ return ::strtoll(__nptr, __endptr, __base);
+ }
+
+-inline _LIBCPP_HIDE_FROM_ABI unsigned long long
++static inline unsigned long long
+ strtoull_l(const char *__nptr, char **__endptr, int __base, locale_t) {
+ return ::strtoull(__nptr, __endptr, __base);
+ }
+
+-inline _LIBCPP_HIDE_FROM_ABI long long
++static inline long long
+ wcstoll_l(const wchar_t *__nptr, wchar_t **__endptr, int __base, locale_t) {
+ return ::wcstoll(__nptr, __endptr, __base);
+ }
+
+-inline _LIBCPP_HIDE_FROM_ABI unsigned long long
++static inline unsigned long long
+ wcstoull_l(const wchar_t *__nptr, wchar_t **__endptr, int __base, locale_t) {
+ return ::wcstoull(__nptr, __endptr, __base);
+ }
+
+-inline _LIBCPP_HIDE_FROM_ABI long double
++static inline long double
+ wcstold_l(const wchar_t *__nptr, wchar_t **__endptr, locale_t) {
+ return ::wcstold(__nptr, __endptr);
+ }
diff --git a/srcpkgs/llvm15/patches/libomp-soname.patch b/srcpkgs/llvm15/patches/libomp-soname.patch
new file mode 100644
index 000000000000..9a622cd9254c
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libomp-soname.patch
@@ -0,0 +1,12 @@
+diff --git a/openmp/runtime/src/CMakeLists.txt b/openmp/runtime/src/CMakeLists.txt
+index df1ca9d90..9d2c3b7b9 100644
+--- a/openmp/runtime/src/CMakeLists.txt
++++ b/openmp/runtime/src/CMakeLists.txt
+@@ -150,6 +150,7 @@ libomp_get_libflags(LIBOMP_CONFIGURED_LIBFLAGS)
+ # Build libomp library. Add LLVMSupport dependency if building in-tree with libomptarget profiling enabled.
+ if(OPENMP_STANDALONE_BUILD OR (NOT OPENMP_ENABLE_LIBOMP_PROFILING))
+ add_library(omp ${LIBOMP_LIBRARY_KIND} ${LIBOMP_SOURCE_FILES})
++ set_target_properties(omp PROPERTIES VERSION ${LIBOMP_VERSION_MAJOR} SOVERSION ${LIBOMP_VERSION_MAJOR})
+ # Linking command will include libraries in LIBOMP_CONFIGURED_LIBFLAGS
+ target_link_libraries(omp ${LIBOMP_CONFIGURED_LIBFLAGS} ${LIBOMP_DL_LIBS})
+ else()
diff --git a/srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip b/srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip
new file mode 100644
index 000000000000..74aa7576ecf9
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip
@@ -0,0 +1,63 @@
+This fixes build at least with gcc9 which does not define `__ppc__`.
+
+--- a/libunwind/include/__libunwind_config.h
++++ b/libunwind/include/__libunwind_config.h
+@@ -49,7 +49,7 @@
+ # define _LIBUNWIND_CONTEXT_SIZE 167
+ # define _LIBUNWIND_CURSOR_SIZE 179
+ # define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_PPC64
+-# elif defined(__ppc__)
++# elif defined(__powerpc__)
+ # define _LIBUNWIND_TARGET_PPC 1
+ # define _LIBUNWIND_CONTEXT_SIZE 117
+ # define _LIBUNWIND_CURSOR_SIZE 124
+--- a/libunwind/src/UnwindRegistersRestore.S
++++ b/libunwind/src/UnwindRegistersRestore.S
+@@ -392,7 +392,7 @@ Lnovec:
+ PPC64_LR(3)
+ bctr
+
+-#elif defined(__ppc__)
++#elif defined(__powerpc__)
+
+ DEFINE_LIBUNWIND_FUNCTION(_ZN9libunwind13Registers_ppc6jumptoEv)
+ //
+--- a/libunwind/src/UnwindRegistersSave.S
++++ b/libunwind/src/UnwindRegistersSave.S
+@@ -554,7 +554,7 @@ DEFINE_LIBUNWIND_FUNCTION(__unw_getcontext)
+ blr
+
+
+-#elif defined(__ppc__)
++#elif defined(__powerpc__)
+
+ //
+ // extern int unw_getcontext(unw_context_t* thread_state)
+--- a/libunwind/src/config.h
++++ b/libunwind/src/config.h
+@@ -95,12 +95,12 @@
+ #define _LIBUNWIND_BUILD_SJLJ_APIS
+ #endif
+
+-#if defined(__i386__) || defined(__x86_64__) || defined(__ppc__) || defined(__ppc64__) || defined(__powerpc64__)
++#if defined(__i386__) || defined(__x86_64__) || defined(__powerpc__) || defined(__powerpc64__)
+ #define _LIBUNWIND_SUPPORT_FRAME_APIS
+ #endif
+
+ #if defined(__i386__) || defined(__x86_64__) || \
+- defined(__ppc__) || defined(__ppc64__) || defined(__powerpc64__) || \
++ defined(__powerpc__) || defined(__powerpc64__) || \
+ (!defined(__APPLE__) && defined(__arm__)) || \
+ (defined(__arm64__) || defined(__aarch64__)) || \
+ defined(__mips__)
+--- a/libunwind/src/libunwind.cpp
++++ b/libunwind/src/libunwind.cpp
+@@ -42,7 +42,7 @@ _LIBUNWIND_HIDDEN int __unw_init_local(unw_cursor_t *cursor,
+ # define REGISTER_KIND Registers_x86_64
+ #elif defined(__powerpc64__)
+ # define REGISTER_KIND Registers_ppc64
+-#elif defined(__ppc__)
++#elif defined(__powerpc__)
+ # define REGISTER_KIND Registers_ppc
+ #elif defined(__aarch64__)
+ # define REGISTER_KIND Registers_arm64
diff --git a/srcpkgs/llvm15/patches/lldb-musl.patch b/srcpkgs/llvm15/patches/lldb-musl.patch
new file mode 100644
index 000000000000..026c5e1e61ba
--- /dev/null
+++ b/srcpkgs/llvm15/patches/lldb-musl.patch
@@ -0,0 +1,40 @@
+--- a/lldb/source/Plugins/Process/Linux/Procfs.h
++++ b/lldb/source/Plugins/Process/Linux/Procfs.h
+@@ -10,6 +10,7 @@
+ // sys/procfs.h on Android/Linux for all supported architectures.
+
+ #include <sys/ptrace.h>
++#include <asm/ptrace.h>
+
+ #include "lldb/lldb-types.h"
+
+@@ -17,23 +18,13 @@
+
+ #include <vector>
+
+-#ifdef __ANDROID__
+-#if defined(__arm64__) || defined(__aarch64__)
+-typedef unsigned long elf_greg_t;
+-typedef elf_greg_t
+- elf_gregset_t[(sizeof(struct user_pt_regs) / sizeof(elf_greg_t))];
+-typedef struct user_fpsimd_state elf_fpregset_t;
+-#ifndef NT_FPREGSET
+-#define NT_FPREGSET NT_PRFPREG
+-#endif // NT_FPREGSET
+-#elif defined(__mips__)
+-#ifndef NT_FPREGSET
+-#define NT_FPREGSET NT_PRFPREG
+-#endif // NT_FPREGSET
+-#endif
+-#else // __ANDROID__
++#if !defined(__GLIBC__) && defined(__powerpc__)
++#define pt_regs musl_pt_regs
++#include <sys/procfs.h>
++#undef pt_regs
++#else
+ #include <sys/procfs.h>
+-#endif // __ANDROID__
++#endif
+
+ namespace lldb_private {
+ namespace process_linux {
diff --git a/srcpkgs/llvm15/patches/llvm-001-musl.patch b/srcpkgs/llvm15/patches/llvm-001-musl.patch
new file mode 100644
index 000000000000..f2a3f8d62813
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-001-musl.patch
@@ -0,0 +1,57 @@
+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;
+diff --git a/lib/Support/Unix/DynamicLibrary.inc b/lib/Support/Unix/DynamicLibrary.inc
+index a2a37996..2f86c470 100644
+--- a/llvm/lib/Support/Unix/DynamicLibrary.inc
++++ b/llvm/lib/Support/Unix/DynamicLibrary.inc
+@@ -102,7 +102,7 @@ static void *DoSearch(const char* SymbolName) {
+
+ // This macro returns the address of a well-known, explicit symbol
+ #define EXPLICIT_SYMBOL(SYM) \
+- if (!strcmp(SymbolName, #SYM)) return &SYM
++ if (!strcmp(SymbolName, #SYM)) return (void *)&SYM
+
+ // Under glibc we have a weird situation. The stderr/out/in symbols are both
+ // macros and global variables because of standards requirements. So, we
+diff --git a/utils/unittest/googletest/src/gtest.cc b/utils/unittest/googletest/src/gtest.cc
+index d882ab2e..f1fb12d0 100644
+--- a/llvm/utils/unittest/googletest/src/gtest.cc
++++ b/llvm/utils/unittest/googletest/src/gtest.cc
+@@ -128,6 +128,7 @@
+
+ #if GTEST_CAN_STREAM_RESULTS_
+ # include <arpa/inet.h> // NOLINT
++# include <sys/socket.h> // NOLINT
+ # include <netdb.h> // NOLINT
+ # include <sys/socket.h> // NOLINT
+ # include <sys/types.h> // NOLINT
diff --git a/srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch b/srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch
new file mode 100644
index 000000000000..0071d964bd37
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch
@@ -0,0 +1,30 @@
+This patches LLVM to use ELFv2 on ppc64 unconditionally unless overridden. We
+need this because unlike most distros we use ELFv2 for both glibc and musl
+on big endian ppc64.
+
+diff --git a/lib/Target/PowerPC/PPCTargetMachine.cpp b/lib/Target/PowerPC/PPCTargetMachine.cpp
+index 0634833e..b7cbc2e7 100644
+--- a/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp
++++ b/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp
+@@ -222,9 +222,8 @@ static PPCTargetMachine::PPCABI computeTargetABI(const Triple &TT,
+
+ switch (TT.getArch()) {
+ case Triple::ppc64le:
+- return PPCTargetMachine::PPC_ABI_ELFv2;
+ case Triple::ppc64:
+- return PPCTargetMachine::PPC_ABI_ELFv1;
++ return PPCTargetMachine::PPC_ABI_ELFv2;
+ default:
+ return PPCTargetMachine::PPC_ABI_UNKNOWN;
+ }
+diff --git a/test/CodeGen/PowerPC/ppc64-elf-abi.ll b/test/CodeGen/PowerPC/ppc64-elf-abi.ll
+index 8b1cf6b5..296a2afa 100644
+--- a/llvm/test/CodeGen/PowerPC/ppc64-elf-abi.ll
++++ b/llvm/test/CodeGen/PowerPC/ppc64-elf-abi.ll
+@@ -1,4 +1,5 @@
+-; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv1
++; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv2
++; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-musl < %s | FileCheck %s -check-prefix=CHECK-ELFv2
+ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu -target-abi elfv1 < %s | FileCheck %s -check-prefix=CHECK-ELFv1
+ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu -target-abi elfv2 < %s | FileCheck %s -check-prefix=CHECK-ELFv2
+ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv2
diff --git a/srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch b/srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch
new file mode 100644
index 000000000000..b5d15974375d
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch
@@ -0,0 +1,11 @@
+--- a/llvm/lib/Target/PowerPC/PPCSubtarget.cpp
++++ b/llvm/lib/Target/PowerPC/PPCSubtarget.cpp
+@@ -165,7 +165,7 @@ void PPCSubtarget::initSubtargetFeatures(StringRef CPU, StringRef FS) {
+
+ if ((TargetTriple.isOSFreeBSD() && TargetTriple.getOSMajorVersion() >= 13) ||
+ TargetTriple.isOSNetBSD() || TargetTriple.isOSOpenBSD() ||
+- TargetTriple.isMusl())
++ isTargetLinux())
+ SecurePlt = true;
+
+ if (HasSPE && IsPPC64)
diff --git a/srcpkgs/llvm15/patches/llvm-004-override-opt.patch b/srcpkgs/llvm15/patches/llvm-004-override-opt.patch
new file mode 100644
index 000000000000..51d0e4b31b32
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-004-override-opt.patch
@@ -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)
diff --git a/srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch b/srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch
new file mode 100644
index 000000000000..d332687b9d92
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch
@@ -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);
diff --git a/srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch b/srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch
new file mode 100644
index 000000000000..a00abd216665
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch
@@ -0,0 +1,25 @@
+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__) || defined (__ppc__) || \
+- defined(_POWER) || defined(_ARCH_PPC))
++ defined(_POWER) || defined(_ARCH_PPC) || (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
diff --git a/srcpkgs/llvm15/template b/srcpkgs/llvm15/template
new file mode 100644
index 000000000000..4d2777451e24
--- /dev/null
+++ b/srcpkgs/llvm15/template
@@ -0,0 +1,442 @@
+# Template file for 'llvm15'
+pkgname=llvm15
+version=15.0.7
+revision=1
+build_wrksrc=llvm
+build_style=cmake
+_ext_suffix=".cpython-${py3_ver/./}-linux-${XBPS_TARGET_LIBC/glibc/gnu}.so"
+configure_args="
+ -DCMAKE_BUILD_TYPE=Release -Wno-dev
+ -DENABLE_LINKER_BUILD_ID=YES
+ -DLLDB_USE_SYSTEM_SIX=YES
+ -DLIBCXX_CXX_ABI=libcxxabi
+ -DLIBCXX_ENABLE_STATIC_ABI_LIBRARY=YES
+ -DLIBCXXABI_USE_LLVM_UNWINDER=YES
+ -DLIBCXXABI_ENABLE_STATIC_UNWINDER=YES
+ -DLIBOMP_ENABLE_SHARED=YES
+ -DLIBOMP_INSTALL_ALIASES=NO
+ -DLLVM_INCLUDE_DOCS=YES
+ -DLLVM_BUILD_DOCS=YES
+ -DLLVM_ENABLE_SPHINX=YES
+ -DSPHINX_WARNINGS_AS_ERRORS=NO
+ -DLLVM_INSTALL_UTILS=YES
+ -DLLVM_BUILD_LLVM_DYLIB=YES
+ -DLLVM_LINK_LLVM_DYLIB=YES
+ -DLLVM_ENABLE_RTTI=YES
+ -DLLVM_ENABLE_FFI=YES
+ -DLLVM_BINUTILS_INCDIR=/usr/include
+ -DLLVM_ENABLE_PER_TARGET_RUNTIME_DIR=NO
+ -DLLDB_PYTHON_RELATIVE_PATH=lib/python${py3_ver}/site-packages
+ -DLLDB_PYTHON_EXE_RELATIVE_PATH=bin/python${py3_ver}
+ -DLLDB_PYTHON_EXT_SUFFIX=$_ext_suffix"
+hostmakedepends="perl python3 zlib-devel libffi-devel swig python3-Sphinx
+ python3-recommonmark python3-sphinx-automodapi"
+makedepends="python3-devel zlib-devel elfutils-devel libffi-devel libedit-devel
+ libxml2-devel binutils-devel libatomic-devel"
+depends="libllvm15>=${version}_${revision}"
+short_desc="Low Level Virtual Machine"
+maintainer="Orphaned <orphan@voidlinux.org>"
+license="Apache-2.0"
+homepage="https://www.llvm.org"
+distfiles="https://github.com/llvm/llvm-project/releases/download/llvmorg-${version}/llvm-project-${version}.src.tar.xz"
+checksum=8b5fcb24b4128cf04df1b0b9410ce8b1a729cb3c544e6da885d234280dedeac6
+lib32disabled=yes
+python_version=3
+
+if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
+ configure_args+=" -DLIBCXX_HAS_MUSL_LIBC=YES
+ -DCOMPILER_RT_BUILD_GWP_ASAN=OFF"
+fi
+
+# "operand out of range" assembler failures
+case "$XBPS_TARGET_MACHINE" in
+ ppc64*) ;;
+ ppc*) configure_args+=" -DCLANG_ENABLE_CLANGD=OFF" ;;
+esac
+
+_enabled_projects="clang;clang-tools-extra;compiler-rt;libcxx;libcxxabi;libunwind;lld"
+
+_lldb_enable=yes
+_libomp_enable=no
+
+case "$XBPS_TARGET_MACHINE" in
+ ppc64le*) ;;
+ ppc*|i686*|riscv64*) _lldb_enable=no ;;
+esac
+
+case "$XBPS_TARGET_MACHINE" in
+ x86_64*|aarch64*|ppc64*) _libomp_enable=yes;;
+esac
+
+subpackages="clang-tools-extra"
+
+# must go before clang
+if [ "$_libomp_enable" = "yes" ]; then
+ _enabled_projects+=";openmp"
+ subpackages+=" libomp libomp-devel"
+ # because of cmake nonsense referencing libomptarget.so.*
+ depends+=" libomp>=${version}_${revision}"
+ if [ "$CROSS_BUILD" ]; then
+ # Seems to require a full host llvm/clang build
+ configure_args+=" -DLIBOMPTARGET_BUILD_CUDA_PLUGIN=OFF"
+ configure_args+=" -DLIBOMPTARGET_BUILD_AMDGPU_PLUGIN=OFF"
+ fi
+fi
+
+subpackages+=" clang clang-analyzer libclang libclang-cpp
+ llvm-libunwind llvm-libunwind-devel libcxx libcxx-devel
+ libcxxabi libcxxabi-devel libllvm15"
+
+if [ "$_lldb_enable" = "yes" ]; then
+ # XXX fails to cross compile due to python
+ _enabled_projects+=";lldb"
+ subpackages+=" lldb lldb-devel"
+fi
+
+subpackages+=" lld lld-devel"
+
+configure_args+=" -DLLVM_ENABLE_PROJECTS=${_enabled_projects}"
+
+post_patch() {
+ if [ "$_lldb_enable" = "yes" ]; then
+ if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
+ vsed -i 's|__ptrace_request|int|g' \
+ ${wrksrc}/lldb/source/Plugins/Process/Linux/NativeProcessLinux.cpp
+ fi
+ # disable docs for lldb as they fail to generate
+ vsed -i '/add_subdirectory(docs)/d' \
+ ${wrksrc}/lldb/CMakeLists.txt
+ fi
+
+ # update config.guess for better platform detection
+ cp $XBPS_COMMONDIR/environment/configure/automake/config.guess \
+ ${wrksrc}/llvm/cmake
+
+ # fix linker failures on some archs
+ vsed -i 's,check_library_exists(gcc_s .*,set(LIBCXXABI_HAS_GCC_S_LIB ON),' \
+ ${wrksrc}/libcxxabi/cmake/config-ix.cmake
+ vsed -i 's,check_library_exists(gcc .*,set(LIBCXXABI_HAS_GCC_LIB ON),' \
+ ${wrksrc}/libcxxabi/cmake/config-ix.cmake
+
+ # need libssp_nonshared on some musl platforms (because of nodefaultlibs)
+ case "$XBPS_TARGET_MACHINE" in
+ ppc64*) ;;
+ ppc*-musl|i686-musl|mips*-musl)
+ vsed -i 's,^# Setup flags.$,add_library_flags(ssp_nonshared),' \
+ ${wrksrc}/libunwind/src/CMakeLists.txt
+ vsed -i 's,^# Setup flags.$,add_library_flags(ssp_nonshared),' \
+ ${wrksrc}/libcxxabi/src/CMakeLists.txt
+ vsed -i 's,#ssp,,' ${wrksrc}/libcxx/CMakeLists.txt
+ ;;
+ esac
+
+ case "$XBPS_TARGET_MACHINE" in
+ arm*-musl|i686-musl) # sanitizer code is broken since it duplicates some libc bits
+ vsed -i 's/set(COMPILER_RT_HAS_SANITIZER_COMMON TRUE)/set(COMPILER_RT_HAS_SANITIZER_COMMON FALSE)/' \
+ ${wrksrc}/compiler-rt/cmake/config-ix.cmake
+ ;;
+ esac
+}
+
+pre_configure() {
+ local triplet
+
+ # Vastly reduce size of debugging symbols:
+ CFLAGS=${CFLAGS/ -g/ -g1}
+ CXXFLAGS=${CXXFLAGS/ -g/ -g1}
+
+ # since gcc9, the build likes to blow up for ppc32 apparently because
+ # of clang being too large for a 24-bit relative call to the PLT, so
+ # optimize for size instead
+ case "$XBPS_TARGET_MACHINE" in
+ ppc64*) ;;
+ mips*-musl|ppc*) configure_args+=" -DVOID_CXX_OPT_FLAGS=-Os" ;;
+ esac
+
+ if [ "$CROSS_BUILD" ]; then
+ msg_normal "Building host tblgen\n"
+ mkdir -p build/HOST
+ cd build/HOST
+ CC="$BUILD_CC" CXX="$BUILD_CXX" CFLAGS="$BUILD_CFLAGS" \
+ CXXFLAGS="$BUILD_CXXFLAGS" LDFLAGS="$BUILD_LDFLAGS" \
+ cmake ../.. -DCMAKE_BUILD_TYPE=Release \
+ -DLLVM_ENABLE_PROJECTS=${_enabled_projects}
+ make ${makejobs} -C utils/TableGen
+ make ${makejobs} -C tools/clang/utils/TableGen
+ make ${makejobs} -C tools/clang/tools/extra/clang-tidy/misc/ConfusableTable
+ make ${makejobs} -C tools/clang/tools/extra/pseudo/gen
+ [ "$_lldb_enable" = "yes" ] && make ${makejobs} -C tools/lldb/utils/TableGen
+ configure_args+=" -DLLVM_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/llvm-tblgen"
+ configure_args+=" -DCLANG_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/clang-tblgen"
+ configure_args+=" -DCLANG_TIDY_CONFUSABLE_CHARS_GEN=${wrksrc}/llvm/build/HOST/bin/clang-tidy-confusable-chars-gen"
+ configure_args+=" -DCLANG_PSEUDO_GEN=${wrksrc}/llvm/build/HOST/bin/clang-pseudo-gen"
+ [ "$_lldb_enable" = "yes" ] && configure_args+=" -DLLDB_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/lldb-tblgen"
+ cd ../..
+ fi
+
+ case "$XBPS_TARGET_MACHINE" in
+ i686*) _arch="X86";;
+ x86_64*) _arch="X86";;
+ armv5*) _arch="Armv5te";;
+ armv6*) _arch="Armv6";;
+ armv7*) _arch="Armv7";;
+ aarch64*) _arch="AArch64";;
+ mips*) _arch="Mips";;
+ ppc*) _arch="PowerPC";;
+ riscv64*) _arch="RISCV64";;
+ esac
+
+ triplet=${XBPS_CROSS_TRIPLET:-$XBPS_TRIPLET}
+
+ configure_args+=" -DLLVM_TARGET_ARCH=${_arch}"
+ configure_args+=" -DLLVM_HOST_TRIPLE=${triplet}"
+ configure_args+=" -DLLVM_DEFAULT_TARGET_TRIPLE=${triplet}"
+}
+
+do_install() {
+ cd build
+ cmake -DCMAKE_INSTALL_PREFIX=${DESTDIR}/usr -P cmake_install.cmake
+
+ # Required for multilib.
+ if [ "$XBPS_TARGET_MACHINE" = "x86_64" ]; then
+ for _header in llvm-config; do
+ mv ${DESTDIR}/usr/include/llvm/Config/${_header}{,-64}.h
+ vinstall ${FILESDIR}/llvm-Config-${_header}.h 644 \
+ usr/include/llvm/Config ${_header}.h
+ done
+ fi
+
+ # Remove llvm-config-host in cross builds.
+ if [ "$CROSS_BUILD" ]; then
+ rm -f ${DESTDIR}/usr/bin/llvm-config-host
+ fi
+
+ # Install libcxxabi headers
+ vinstall ${wrksrc}/libcxxabi/include/__cxxabi_config.h 644 usr/include
+ vinstall ${wrksrc}/libcxxabi/include/cxxabi.h 644 usr/include
+
+ # Install libunwind headers
+ vinstall ${wrksrc}/libunwind/include/__libunwind_config.h 644 usr/include
+ vinstall ${wrksrc}/libunwind/include/libunwind.h 644 usr/include
+ vinstall ${wrksrc}/libunwind/include/unwind.h 644 usr/include
+ vinstall ${wrksrc}/libunwind/include/mach-o/compact_unwind_encoding.h \
+ 644 usr/include/mach-o
+}
+
+clang-analyzer_package() {
+ pycompile_dirs="usr/share/scan-view"
+ depends="clang-${version}_${revision} python3 perl"
+ short_desc+=" - A source code analysis framework"
+ homepage="https://clang-analyzer.llvm.org/"
+ pkg_install() {
+ vmove "usr/bin/scan-*"
+ vmove "usr/libexec/*analyzer"
+ vmove "usr/share/scan-*"
+ vmove usr/share/man/man1/scan-build.1
+ }
+}
+
+clang-tools-extra_package() {
+ lib32disabled=yes
+ depends="clang-${version}_${revision} python3"
+ short_desc+=" - Extra Clang tools"
+ homepage="https://clang.llvm.org/extra/"
+ pkg_install() {
+ vmove usr/bin/clang-apply-replacements
+ vmove usr/bin/clang-doc
+ vmove usr/bin/clang-include-fixer
+ vmove usr/bin/clang-query
+ vmove usr/bin/clang-rename
+ vmove usr/bin/clang-reorder-fields
+ vmove usr/bin/clang-tidy
+ vmove usr/bin/clangd
+ vmove usr/bin/diagtool
+ vmove usr/bin/find-all-symbols
+ vmove usr/bin/hmaptool
+ vmove usr/bin/modularize
+ vmove usr/bin/pp-trace
+ vmove usr/bin/sancov
+ vmove usr/include/clang-tidy
+ vmove "usr/lib/libclangApplyReplacements*"
+ vmove "usr/lib/libclangDoc*"
+ vmove "usr/lib/libclangIncludeFixer*"
+ vmove "usr/lib/libclangReorderFields*"
+ vmove "usr/lib/libclangQuery*"
+ vmove "usr/lib/libclangTidy*"
+ vmove "usr/share/clang/*include-fixer*"
+ vmove "usr/share/clang/*rename*"
+ vmove "usr/share/clang/*tidy*"
+ vmove usr/share/doc/LLVM/clang-tools
+ vmove usr/share/man/man1/diagtool.1
+ vmove usr/share/man/man1/extraclangtools.1
+ }
+}
+
+clang_package() {
+ lib32disabled=yes
+ depends="libstdc++-devel libgcc-devel binutils ${XBPS_TARGET_LIBC}-devel
+ libclang-${version}_${revision}"
+ short_desc+=" - C language family frontend"
+ homepage="https://clang.llvm.org/"
+ pkg_install() {
+ vmove "usr/bin/*clang*"
+ vmove usr/bin/c-index-test
+ vmove usr/include/clang
+ vmove usr/include/clang-c
+ vmove usr/lib/clang
+ vmove usr/lib/cmake/clang
+ vmove "usr/lib/libclang*.a"
+ vmove "usr/lib/libclang*.so"
+ vmove usr/share/clang
+ vmove usr/share/doc/LLVM/clang
+ vmove usr/share/man/man1/clang.1
+ }
+}
+
+libclang_package() {
+ short_desc+=" - C frontend runtime library"
+ pkg_install() {
+ vmove "usr/lib/libclang.so.*"
+ }
+}
+
+libclang-cpp_package() {
+ short_desc+=" - C frontend runtime library (C++ interface)"
+ pkg_install() {
+ vmove "usr/lib/libclang-cpp.so.*"
+ }
+}
+
+lld_package() {
+ lib32disabled=yes
+ short_desc+=" - linker"
+ homepage="https://lld.llvm.org"
+ pkg_install() {
+ vmove "usr/bin/ld.lld*"
+ vmove "usr/bin/ld64.lld*"
+ vmove "usr/bin/lld*"
+ vmove usr/bin/wasm-ld
+ vmove usr/share/doc/LLVM/lld
+ }
+}
+
+lld-devel_package() {
+ lib32disabled=yes
+ short_desc+=" - linker - development files"
+ homepage="https://lld.llvm.org"
+ depends="lld>=${version}_${revision}"
+ pkg_install() {
+ vmove usr/include/lld
+ vmove usr/lib/cmake/lld
+ vmove "usr/lib/liblld*a"
+ }
+}
+
+lldb_package() {
+ lib32disabled=yes
+ depends+=" python3-six"
+ short_desc+=" - LLDB debugger"
+ homepage="https://lldb.llvm.org/"
+ pkg_install() {
+ vmove "usr/bin/*lldb*"
+ vmove "usr/lib/liblldb*so.*"
+ vmove usr/lib/python*
+ }
+}
+
+lldb-devel_package() {
+ lib32disabled=yes
+ depends="lldb>=${version}_${revision}"
+ short_desc+=" - LLDB debugger - development files"
+ pkg_install() {
+ vmove usr/include/lldb
+ vmove "usr/lib/liblldb*.so"
+ }
+}
+
+llvm-libunwind_package() {
+ short_desc+=" - libunwind"
+ pkg_install() {
+ vmove "usr/lib/libunwind.so.*"
+ }
+}
+
+llvm-libunwind-devel_package() {
+ short_desc+=" - libunwind - development files"
+ depends="llvm-libunwind>=${version}_${revision}"
+ conflicts="libunwind-devel>=0"
+ pkg_install() {
+ vmove usr/include/mach-o
+ vmove "usr/include/*unwind*"
+ vmove "usr/lib/libunwind.a"
+ vmove "usr/lib/libunwind.so"
+ vmove usr/share/doc/LLVM/libunwind
+ }
+}
+
+libcxxabi_package() {
+ short_desc+=" - low level support for libc++"
+ pkg_install() {
+ vmove "usr/lib/libc++abi.so.*"
+ }
+}
+
+libcxxabi-devel_package() {
+ short_desc+=" - low level support for libc++ - development files"
+ depends="libcxxabi>=${version}_${revision}"
+ pkg_install() {
+ vmove "usr/include/*cxxabi*"
+ vmove "usr/lib/libc++abi.so"
+ vmove "usr/lib/libc++abi.a"
+ }
+}
+
+libcxx_package() {
+ short_desc+=" - C++ standard library"
+ pkg_install() {
+ vmove "usr/lib/libc++.so.*"
+ }
+}
+
+libcxx-devel_package() {
+ short_desc+=" - C++ standard library - development files"
+ depends="libcxx>=${version}_${revision}"
+ pkg_install() {
+ vmove usr/include/c++
+ vmove "usr/lib/libc++.so"
+ vmove "usr/lib/libc++.a"
+ vmove "usr/lib/libc++experimental.a"
+ vmove usr/share/doc/LLVM/libcxx
+ }
+}
+
+libomp_package() {
+ short_desc+=" - Clang OpenMP support library"
+ pkg_install() {
+ vmove usr/lib/libarcher.so
+ vmove usr/lib/libompd.so
+ vmove "usr/lib/libomptarget.rtl.*.so"
+ vmove "usr/lib/libomp*.so.*"
+ }
+}
+
+libomp-devel_package() {
+ short_desc+=" - Clang OpenMP support library - development files"
+ depends="libomp>=${version}_${revision}"
+ pkg_install() {
+ vmove "usr/include/omp*.h"
+ vmove "usr/lib/clang/${version}/include/omp*.h"
+ vmove "usr/lib/libarcher*"
+ vmove "usr/lib/libomp*.so"
+ vmove usr/lib/cmake/openmp
+ vmove usr/share/doc/LLVM/openmp
+ vmove usr/share/man/man1/llvmopenmp.1
+ }
+}
+
+libllvm15_package() {
+ short_desc+=" - runtime library"
+ pkg_install() {
+ vmove "usr/lib/libLLVM-*.so*"
+ }
+}
diff --git a/srcpkgs/llvm15/update b/srcpkgs/llvm15/update
new file mode 100644
index 000000000000..e95cf26b3586
--- /dev/null
+++ b/srcpkgs/llvm15/update
@@ -0,0 +1,3 @@
+site="https://github.com/llvm/llvm-project/releases"
+pattern="llvmorg-\K(\d+.){2}\d+(-rc\d+)?"
+ignore="*-rc*"
From e284fa2440997fc7a719f67726f9972ac2b1d5a9 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Sun, 18 Dec 2022 00:40:18 +0100
Subject: [PATCH 02/17] llvm: update to 15
---
common/shlibs | 6 +++---
srcpkgs/clang | 2 +-
srcpkgs/clang-analyzer | 2 +-
srcpkgs/clang-tools-extra | 2 +-
srcpkgs/libclang | 2 +-
srcpkgs/libclang-cpp | 2 +-
srcpkgs/libcxx | 2 +-
srcpkgs/libcxx-devel | 2 +-
srcpkgs/libcxxabi | 2 +-
srcpkgs/libcxxabi-devel | 2 +-
srcpkgs/libomp | 2 +-
srcpkgs/libomp-devel | 2 +-
srcpkgs/lld | 2 +-
srcpkgs/lld-devel | 2 +-
srcpkgs/lldb | 2 +-
srcpkgs/lldb-devel | 2 +-
srcpkgs/llvm-libunwind | 2 +-
srcpkgs/llvm-libunwind-devel | 2 +-
srcpkgs/llvm/template | 6 +++---
19 files changed, 23 insertions(+), 23 deletions(-)
diff --git a/common/shlibs b/common/shlibs
index 837a476da03f..39870a6cbe5b 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -987,9 +987,9 @@ 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.12 lldb-12.0.0_1
-libclang.so.12 libclang-12.0.0_1
-libclang-cpp.so.12 libclang-cpp-12.0.0_1
+liblldb.so.15 lldb-15.0.7_1
+libclang.so.15 libclang-15.0.7_1
+libclang-cpp.so.15 libclang-cpp-15.0.7_1
libLLVM-11.so libllvm11-11.0.0_1
libLLVM-12.so libllvm12-12.0.0_1
libLLVM-15.so libllvm15-15.0.7_1
diff --git a/srcpkgs/clang b/srcpkgs/clang
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/clang
+++ b/srcpkgs/clang
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/clang-analyzer b/srcpkgs/clang-analyzer
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/clang-analyzer
+++ b/srcpkgs/clang-analyzer
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/clang-tools-extra b/srcpkgs/clang-tools-extra
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/clang-tools-extra
+++ b/srcpkgs/clang-tools-extra
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libclang b/srcpkgs/libclang
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libclang
+++ b/srcpkgs/libclang
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libclang-cpp b/srcpkgs/libclang-cpp
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libclang-cpp
+++ b/srcpkgs/libclang-cpp
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxx b/srcpkgs/libcxx
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxx
+++ b/srcpkgs/libcxx
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxx-devel b/srcpkgs/libcxx-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxx-devel
+++ b/srcpkgs/libcxx-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxxabi b/srcpkgs/libcxxabi
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxxabi
+++ b/srcpkgs/libcxxabi
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxxabi-devel b/srcpkgs/libcxxabi-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxxabi-devel
+++ b/srcpkgs/libcxxabi-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libomp b/srcpkgs/libomp
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libomp
+++ b/srcpkgs/libomp
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libomp-devel b/srcpkgs/libomp-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libomp-devel
+++ b/srcpkgs/libomp-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lld b/srcpkgs/lld
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lld
+++ b/srcpkgs/lld
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lld-devel b/srcpkgs/lld-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lld-devel
+++ b/srcpkgs/lld-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lldb b/srcpkgs/lldb
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lldb
+++ b/srcpkgs/lldb
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lldb-devel b/srcpkgs/lldb-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lldb-devel
+++ b/srcpkgs/lldb-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm-libunwind b/srcpkgs/llvm-libunwind
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/llvm-libunwind
+++ b/srcpkgs/llvm-libunwind
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm-libunwind-devel b/srcpkgs/llvm-libunwind-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/llvm-libunwind-devel
+++ b/srcpkgs/llvm-libunwind-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm/template b/srcpkgs/llvm/template
index a92db6f94f9f..fc1c850bd26f 100644
--- a/srcpkgs/llvm/template
+++ b/srcpkgs/llvm/template
@@ -1,11 +1,11 @@
# Template file for 'llvm'
pkgname=llvm
-version=12.0.0
+version=15
revision=1
build_style=meta
-depends="llvm12"
-replaces="llvm11>=0 llvm10>=0 llvm9>=0 llvm8>=0 llvm7>=0 llvm6.0>=0 llvm3.9>=0"
+depends="llvm15"
short_desc="LLVM meta package"
maintainer="Enno Boland <gottox@voidlinux.org>"
license="Public Domain"
homepage="https://www.voidlinux.org"
+replaces="llvm12>=0 llvm11>=0 llvm10>=0 llvm9>=0 llvm8>=0 llvm7>=0 llvm6.0>=0 llvm3.9>=0"
From 65c7ac23131bca8df2412f84e5f8c2cce004e069 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Sun, 18 Dec 2022 12:20:08 +0100
Subject: [PATCH 03/17] llvm12: remove bumped subpackages
---
srcpkgs/llvm12/template | 264 +---------------------------------------
1 file changed, 1 insertion(+), 263 deletions(-)
diff --git a/srcpkgs/llvm12/template b/srcpkgs/llvm12/template
index f8ea3ba641ae..aea0b43cf573 100644
--- a/srcpkgs/llvm12/template
+++ b/srcpkgs/llvm12/template
@@ -50,55 +50,7 @@ case "$XBPS_TARGET_MACHINE" in
ppc*) configure_args+=" -DCLANG_ENABLE_CLANGD=OFF" ;;
esac
-_enabled_projects="clang;clang-tools-extra;compiler-rt;libcxx;libcxxabi;libunwind;lld"
-
-_lldb_enable=yes
-_libomp_enable=no
-
-case "$XBPS_TARGET_MACHINE" in
- ppc64le*) ;;
- ppc*|i686*) _lldb_enable=no ;;
-esac
-
-case "$XBPS_TARGET_MACHINE" in
- x86_64*|aarch64*|ppc64*) _libomp_enable=yes;;
-esac
-
-subpackages="clang-tools-extra"
-
-# must go before clang
-if [ "$_libomp_enable" = "yes" ]; then
- _enabled_projects+=";openmp"
- subpackages+=" libomp libomp-devel"
- # because of cmake nonsense referencing libomptarget.so.*
- depends+=" libomp>=${version}_${revision}"
-fi
-
-subpackages+=" clang clang-analyzer libclang libclang-cpp
- llvm-libunwind llvm-libunwind-devel libcxx libcxx-devel
- libcxxabi libcxxabi-devel libllvm12"
-
-if [ "$_lldb_enable" = "yes" ]; then
- # XXX fails to cross compile due to python
- _enabled_projects+=";lldb"
- subpackages+=" lldb lldb-devel"
-fi
-
-subpackages+=" lld lld-devel"
-
-configure_args+=" -DLLVM_ENABLE_PROJECTS=${_enabled_projects}"
-
post_patch() {
- if [ "$_lldb_enable" = "yes" ]; then
- if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
- vsed -i 's|__ptrace_request|int|g' \
- ${wrksrc}/lldb/source/Plugins/Process/Linux/NativeProcessLinux.cpp
- fi
- # disable docs for lldb as they fail to generate
- vsed -i '/add_subdirectory(docs)/d' \
- ${wrksrc}/lldb/CMakeLists.txt
- fi
-
# update config.guess for better platform detection
cp $XBPS_COMMONDIR/environment/configure/automake/config.guess \
${wrksrc}/llvm/cmake
@@ -154,14 +106,12 @@ pre_configure() {
cd build/HOST
CC="$BUILD_CC" CXX="$BUILD_CXX" CFLAGS="$BUILD_CFLAGS" \
CXXFLAGS="$BUILD_CXXFLAGS" LDFLAGS="$BUILD_LDFLAGS" \
- cmake ../.. -DCMAKE_BUILD_TYPE=Release \
- -DLLVM_ENABLE_PROJECTS=${_enabled_projects}
+ cmake ../.. -DCMAKE_BUILD_TYPE=Release
make ${makejobs} -C utils/TableGen
make ${makejobs} -C tools/clang/utils/TableGen
[ "$_lldb_enable" = "yes" ] && make ${makejobs} -C tools/lldb/utils/TableGen
configure_args+=" -DLLVM_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/llvm-tblgen"
configure_args+=" -DCLANG_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/clang-tblgen"
- [ "$_lldb_enable" = "yes" ] && configure_args+=" -DLLDB_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/lldb-tblgen"
cd ../..
fi
@@ -201,218 +151,6 @@ do_install() {
if [ "$CROSS_BUILD" ]; then
rm -f ${DESTDIR}/usr/bin/llvm-config-host
fi
-
- # Install libcxxabi headers
- vinstall ${wrksrc}/libcxxabi/include/__cxxabi_config.h 644 usr/include
- vinstall ${wrksrc}/libcxxabi/include/cxxabi.h 644 usr/include
-
- # Install libunwind headers
- vinstall ${wrksrc}/libunwind/include/__libunwind_config.h 644 usr/include
- vinstall ${wrksrc}/libunwind/include/libunwind.h 644 usr/include
- vinstall ${wrksrc}/libunwind/include/unwind.h 644 usr/include
- vinstall ${wrksrc}/libunwind/include/mach-o/compact_unwind_encoding.h \
- 644 usr/include/mach-o
-}
-
-clang-analyzer_package() {
- pycompile_dirs="usr/share/scan-view"
- depends="clang-${version}_${revision} python3 perl"
- short_desc+=" - A source code analysis framework"
- homepage="https://clang-analyzer.llvm.org/"
- pkg_install() {
- vmove usr/share/man/man1/scan-build.1
- vmove "/usr/bin/scan-*"
- vmove "/usr/share/scan-*"
- vmove "/usr/libexec/*analyzer"
- }
-}
-
-clang-tools-extra_package() {
- lib32disabled=yes
- depends="clang-${version}_${revision} python3"
- short_desc+=" - Extra Clang tools"
- homepage="https://clang.llvm.org/extra/"
- pkg_install() {
- vmove usr/include/clang-tidy
- vmove usr/bin/clang-apply-replacements
- vmove usr/bin/clang-query
- vmove usr/bin/clang-rename
- vmove usr/bin/clang-tidy
- vmove usr/bin/diagtool
- vmove usr/bin/find-all-symbols
- vmove usr/bin/hmaptool
- vmove usr/bin/modularize
- vmove usr/bin/pp-trace
- vmove usr/bin/sancov
- vmove "usr/lib/libclangApplyReplacements*"
- vmove "usr/lib/libclangQuery*"
- vmove "usr/lib/libclangTidy*"
- vmove "usr/share/clang/*tidy*"
- vmove usr/share/doc/clang-tools
- vmove usr/share/man/man1/extraclangtools.1
- vmove usr/share/man/man1/diagtool.1
- }
-}
-
-clang_package() {
- lib32disabled=yes
- depends="libstdc++-devel libgcc-devel binutils ${XBPS_TARGET_LIBC}-devel
- libclang-${version}_${revision}"
- short_desc+=" - C language family frontend"
- homepage="https://clang.llvm.org/"
- pkg_install() {
- vmove usr/include/clang
- vmove usr/include/clang-c
- vmove "usr/bin/*clang*"
- vmove usr/bin/c-index-test
- vmove usr/lib/clang
- vmove usr/lib/cmake/clang
- vmove "usr/lib/libclang*.a"
- vmove "usr/lib/libclang*.so"
- vmove usr/share/clang
- vmove usr/share/doc/clang
- vmove usr/share/man/man1/clang.1
- }
-}
-
-libclang_package() {
- short_desc+=" - C frontend runtime library"
- pkg_install() {
- vmove "usr/lib/libclang.so.*"
- }
-}
-
-libclang-cpp_package() {
- short_desc+=" - C frontend runtime library (C++ interface)"
- pkg_install() {
- vmove "usr/lib/libclang-cpp.so.*"
- }
-}
-
-lld_package() {
- lib32disabled=yes
- short_desc+=" - linker"
- homepage="https://lld.llvm.org"
- pkg_install() {
- vmove usr/bin/lld*
- vmove usr/bin/wasm-ld
- vmove usr/bin/ld.lld*
- vmove usr/bin/ld64.lld*
- vmove usr/share/doc/lld
- }
-}
-
-lld-devel_package() {
- lib32disabled=yes
- short_desc+=" - linker - development files"
- homepage="https://lld.llvm.org"
- depends="lld>=${version}_${revision}"
- pkg_install() {
- vmove usr/include/lld
- vmove usr/lib/cmake/lld
- vmove "usr/lib/liblld*a"
- }
-}
-
-lldb_package() {
- lib32disabled=yes
- depends+=" python3-six"
- short_desc+=" - LLDB debugger"
- homepage="https://lldb.llvm.org/"
- pkg_install() {
- vmove usr/bin/*lldb*
- vmove usr/lib/liblldb*so.*
- vmove /usr/lib/python*
- }
-}
-
-lldb-devel_package() {
- lib32disabled=yes
- depends="lldb>=${version}_${revision}"
- short_desc+=" - LLDB debugger - development files"
- pkg_install() {
- vmove usr/include/lldb
- vmove "usr/lib/liblldb*.so"
- }
-}
-
-llvm-libunwind_package() {
- short_desc+=" - libunwind"
- pkg_install() {
- vmove "usr/lib/libunwind.so.*"
- }
-}
-
-llvm-libunwind-devel_package() {
- short_desc+=" - libunwind - development files"
- depends="llvm-libunwind>=${version}_${revision}"
- conflicts="libunwind-devel>=0"
- pkg_install() {
- vmove usr/lib/libunwind.so
- vmove usr/lib/libunwind.a
- vmove "usr/include/*unwind*"
- vmove usr/include/mach-o
- vmove usr/share/doc/libunwind
- }
-}
-
-libcxxabi_package() {
- short_desc+=" - low level support for libc++"
- pkg_install() {
- vmove "usr/lib/libc++abi.so.*"
- }
-}
-
-libcxxabi-devel_package() {
- short_desc+=" - low level support for libc++ - development files"
- depends="libcxxabi>=${version}_${revision}"
- pkg_install() {
- vmove usr/lib/libc++abi.so
- vmove usr/lib/libc++abi.a
- vmove "usr/include/*cxxabi*"
- }
-}
-
-libcxx_package() {
- short_desc+=" - C++ standard library"
- pkg_install() {
- vmove "usr/lib/libc++.so.*"
- }
-}
-
-libcxx-devel_package() {
- short_desc+=" - C++ standard library - development files"
- depends="libcxx>=${version}_${revision}"
- pkg_install() {
- vmove usr/lib/libc++.so
- vmove usr/lib/libc++.a
- vmove usr/lib/libc++experimental.a
- vmove usr/include/c++
- vmove usr/share/doc/libcxx
- }
-}
-
-libomp_package() {
- short_desc+=" - Clang OpenMP support library"
- pkg_install() {
- vmove usr/lib/libomp.so
- vmove "usr/lib/libomptarget.rtl.*.so"
- vmove usr/lib/libarcher.so
- vmove "usr/lib/libomp*.so.*"
- }
-}
-
-libomp-devel_package() {
- short_desc+=" - Clang OpenMP support library - development files"
- depends="libomp>=${version}_${revision}"
- pkg_install() {
- vmove "usr/lib/libomp*.so"
- vmove "usr/lib/libarcher*"
- vmove "usr/include/omp*.h"
- vmove "usr/lib/clang/${version}/include/omp*.h"
- vmove usr/share/man/man1/llvmopenmp.1
- vmove usr/share/doc/openmp
- }
}
libllvm12_package() {
From a64abdf63407e50fde12455c69ba2488f906421a Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:27:03 +0100
Subject: [PATCH 04/17] mesa: rebuild for llvm15
---
srcpkgs/mesa/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/mesa/template b/srcpkgs/mesa/template
index 4c3c9ec6039e..0641b28a80d6 100644
--- a/srcpkgs/mesa/template
+++ b/srcpkgs/mesa/template
@@ -1,7 +1,7 @@
# Template file for 'mesa'
pkgname=mesa
version=22.2.4
-revision=2
+revision=3
build_style=meson
configure_args="-Dglvnd=true -Dshared-glapi=enabled -Dgbm=enabled -Degl=enabled
-Dosmesa=true -Dgles1=enabled -Dgles2=enabled -Dglx=dri -Ddri3=enabled
From 6403589341ea809115ebbc08bffb7477598e784d Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:34:04 +0100
Subject: [PATCH 05/17] bcc: rebuild for llvm15
---
srcpkgs/bcc/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/bcc/template b/srcpkgs/bcc/template
index 7526580f17ed..bdbcff7227a0 100644
--- a/srcpkgs/bcc/template
+++ b/srcpkgs/bcc/template
@@ -1,7 +1,7 @@
# Template file for 'bcc'
pkgname=bcc
version=0.26.0
-revision=2
+revision=3
build_style=cmake
configure_args="-DREVISION=${version} -DENABLE_LLVM_SHARED=1"
hostmakedepends="flex python3-setuptools"
From b3b783d37f35cff147cb1d39ead9550d0982aae8 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:37:25 +0100
Subject: [PATCH 06/17] bpftrace: rebuild for llvm15
---
srcpkgs/bpftrace/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/bpftrace/template b/srcpkgs/bpftrace/template
index 857815d29eef..47f2b5e77024 100644
--- a/srcpkgs/bpftrace/template
+++ b/srcpkgs/bpftrace/template
@@ -1,7 +1,7 @@
# Template file for 'bpftrace'
pkgname=bpftrace
version=0.16.0
-revision=1
+revision=2
archs="x86_64* aarch64* ppc64*"
build_style=cmake
configure_args="-DBUILD_TESTING=OFF" # needs root to run
From a913a78f621ec3da9c96f833c2cddc670d51b859 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:43:53 +0100
Subject: [PATCH 07/17] CastXML: rebuild for llvm15
---
srcpkgs/CastXML/template | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/srcpkgs/CastXML/template b/srcpkgs/CastXML/template
index 5d7d9503658c..28c424c78073 100644
--- a/srcpkgs/CastXML/template
+++ b/srcpkgs/CastXML/template
@@ -1,7 +1,7 @@
# Template file for 'CastXML'
pkgname=CastXML
version=0.4.6
-revision=1
+revision=2
build_style=cmake
configure_args="-DSPHINX_MAN=YES -DCastXML_INSTALL_MAN_DIR=share/man"
hostmakedepends="clang python3-Sphinx"
@@ -12,8 +12,8 @@ short_desc="C-family abstract syntax tree XML output tool"
maintainer="Evgeny Ermakov <evgeny.v.ermakov@gmail.com>"
license="Apache-2.0"
homepage="https://github.com/CastXML/CastXML"
-distfiles="https://github.com/CastXML/CastXML/archive/v${version}.tar.gz"
-checksum=8dcdbc1f23a130e4bdb0b09f57c30761a02a346b4db4037555048af2a293d66a
+distfiles="https://github.com/CastXML/CastXML/archive/refs/tags/v${version}.tar.gz"
+checksum=bb9024ec9ea5082e0d527f19bf3c2df79f1699f54b6cec168c024e727b32e6d1
post_install() {
rm -r ${DESTDIR}/usr/share/castxml/clang/include
From 6417660149cad6a90005bd7675aea28e8ed1ea7f Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:48:55 +0100
Subject: [PATCH 08/17] ccls: rebuild for llvm15
---
srcpkgs/ccls/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/ccls/template b/srcpkgs/ccls/template
index 82fa61933878..ecc9f3e38a5d 100644
--- a/srcpkgs/ccls/template
+++ b/srcpkgs/ccls/template
@@ -1,7 +1,7 @@
# Template file for 'ccls'
pkgname=ccls
version=0.20220729
-revision=1
+revision=2
build_style=cmake
hostmakedepends="clang-tools-extra"
makedepends="clang-tools-extra libxml2-devel llvm ncurses-devel rapidjson zlib-devel"
From f1d5603b42bace59914668483b033f4436c42143 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:52:14 +0100
Subject: [PATCH 09/17] include-what-you-use: update to 0.19
---
srcpkgs/include-what-you-use/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/include-what-you-use/template b/srcpkgs/include-what-you-use/template
index d3655709c20c..1a30bc04bb2d 100644
--- a/srcpkgs/include-what-you-use/template
+++ b/srcpkgs/include-what-you-use/template
@@ -1,6 +1,6 @@
# Template file for 'include-what-you-use'
pkgname=include-what-you-use
-version=0.16
+version=0.19
revision=1
build_style=cmake
configure_args="-DIWYU_LLVM_ROOT_PATH=${XBPS_CROSS_BASE}/usr "
@@ -11,7 +11,7 @@ maintainer="Leah Neukirchen <leah@vuxu.org>"
license="NCSA"
homepage="https://include-what-you-use.org/"
distfiles="https://include-what-you-use.org/downloads/${pkgname}-${version}.src.tar.gz"
-checksum=8d6fc9b255343bc1e5ec459e39512df1d51c60e03562985e0076036119ff5a1c
+checksum=2b10157b60ea08adc08e3896b4921c73fcadd5ec4eb652b29a34129d501e5ee0
python_version=3
post_install() {
From 7b8e95960e6ac97c97d8fac34f299c7d1c7b2f7b Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 15:11:06 +0100
Subject: [PATCH 10/17] SPIRV-LLVM-Translator: update to 15.0.0
---
srcpkgs/SPIRV-LLVM-Translator/template | 13 +++++++------
1 file changed, 7 insertions(+), 6 deletions(-)
diff --git a/srcpkgs/SPIRV-LLVM-Translator/template b/srcpkgs/SPIRV-LLVM-Translator/template
index a2754e58c0e8..bee99f9bcbb2 100644
--- a/srcpkgs/SPIRV-LLVM-Translator/template
+++ b/srcpkgs/SPIRV-LLVM-Translator/template
@@ -1,19 +1,20 @@
# Template file for 'SPIRV-LLVM-Translator'
pkgname=SPIRV-LLVM-Translator
-version=12.0.0
-revision=2
+version=15.0.0
+revision=1
build_style=cmake
make_build_args="llvm-spirv"
configure_args="-Wno-dev -DLLVM_LINK_LLVM_DYLIB=ON -DCMAKE_SKIP_RPATH=ON
- -DLLVM_SPIRV_INCLUDE_TESTS=OFF -DBUILD_SHARED_LIBS=ON"
+ -DLLVM_SPIRV_INCLUDE_TESTS=OFF -DBUILD_SHARED_LIBS=ON
+ -DLLVM_EXTERNAL_SPIRV_HEADERS_SOURCE_DIR=/usr"
hostmakedepends="clang llvm"
-makedepends="clang-tools-extra llvm"
+makedepends="clang-tools-extra llvm SPIRV-Headers"
short_desc="API and commands for processing SPIR-V modules"
maintainer="Orphaned <orphan@voidlinux.org>"
license="NCSA"
homepage="https://github.com/KhronosGroup/SPIRV-LLVM-Translator"
-distfiles="https://github.com/KhronosGroup/${pkgname}/archive/refs/tags/v${version}.tar.gz"
-checksum=6e4fad04203f25fcde4c308c53e9f59bd05a390978992db3212d4b63aff62108
+distfiles="https://github.com/KhronosGroup/SPIRV-LLVM-Translator/archive/refs/tags/v${version}.tar.gz"
+checksum=b1bebd77f72988758c00852e78c2ddc545815a612169a0cb377d021e2f846d88
post_install() {
vlicense LICENSE.TXT
From 0b5073f0ad80bf84255ce7531ee7379aa79fc810 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Fri, 6 Jan 2023 17:11:04 +0100
Subject: [PATCH 11/17] rtags: rebuild for llvm15
---
srcpkgs/rtags/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/rtags/template b/srcpkgs/rtags/template
index b496a1b0e721..9b161e690d76 100644
--- a/srcpkgs/rtags/template
+++ b/srcpkgs/rtags/template
@@ -1,7 +1,7 @@
# Template file for 'rtags'
pkgname=rtags
version=2.38
-revision=5
+revision=6
build_style=cmake
# Don't run tests in do_install, please.
configure_args="-DSKIP_CTEST=TRUE"
From 50defe68a2b5d990ed363a7197e1f4f2c3599906 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Fri, 6 Jan 2023 17:14:14 +0100
Subject: [PATCH 12/17] juCi++: rebuild for llvm15
---
srcpkgs/juCi++/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/juCi++/template b/srcpkgs/juCi++/template
index c1969237f11d..416bde7cc4d0 100644
--- a/srcpkgs/juCi++/template
+++ b/srcpkgs/juCi++/template
@@ -1,7 +1,7 @@
# Template file for 'juCi++'
pkgname=juCi++
version=1.7.2
-revision=2
+revision=3
_libclangmm_commit="9704b9b6de0982a588fa41741157d5640afedf30"
_tiny_commit="839ff806dc447ff49af80f9a9eaa7949f770f8e5"
create_wrksrc=yes
From 5e4d02c538817a5ad985059a1deca48cf65d290e Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Sat, 7 Jan 2023 11:31:14 +0100
Subject: [PATCH 13/17] qt5: rebuild for llvm15
---
srcpkgs/qt5/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/qt5/template b/srcpkgs/qt5/template
index f4f9f5b5344a..b517b49ead2d 100644
--- a/srcpkgs/qt5/template
+++ b/srcpkgs/qt5/template
@@ -5,7 +5,7 @@ pkgname=qt5
version=5.15.7+20221119
# commit f8c9fb304bc3e53b3aa07f962cd74e9160decccc
# base repo: https://invent.kde.org/qt/qt/qt5
-revision=1
+revision=2
build_style=meta
hostmakedepends="cmake clang flex perl glib-devel pkg-config
python re2c ruby which"
From 167dc9bc34e9422eb98ed7228b31e8206bf760fb Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Mon, 9 Jan 2023 01:22:18 +0100
Subject: [PATCH 14/17] codelite: rebuild for llvm15
---
srcpkgs/codelite/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/codelite/template b/srcpkgs/codelite/template
index 6b8b007c8a43..c6115e0274ce 100644
--- a/srcpkgs/codelite/template
+++ b/srcpkgs/codelite/template
@@ -1,7 +1,7 @@
# Template file for 'codelite'
pkgname=codelite
version=16.0.0
-revision=2
+revision=3
create_wrksrc=yes
build_style=cmake
build_helper=cmake-wxWidgets-gtk3
From b8593281df85fc43260318bfeb429859b001f54f Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Mon, 9 Jan 2023 01:58:21 +0100
Subject: [PATCH 15/17] kdevelop: rebuild for llvm15
---
srcpkgs/kdevelop/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/kdevelop/template b/srcpkgs/kdevelop/template
index 5eb275583138..c32ee5240a44 100644
--- a/srcpkgs/kdevelop/template
+++ b/srcpkgs/kdevelop/template
@@ -1,7 +1,7 @@
# Template file for 'kdevelop'
pkgname=kdevelop
version=22.12.1
-revision=1
+revision=2
build_style=cmake
configure_args="-DBUILD_TESTING=OFF"
hostmakedepends="extra-cmake-modules qt5-qmake qt5-host-tools qt5-tools
From 688a0dde7b176013a2422ca97f851931d1ff7203 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Mon, 16 Jan 2023 14:43:47 +0100
Subject: [PATCH 16/17] zig: update to 0.10.1
---
.../0001-std.build-fix-handling-of-Dcpu.patch | 48 -------------------
srcpkgs/zig/template | 10 ++--
2 files changed, 6 insertions(+), 52 deletions(-)
delete mode 100644 srcpkgs/zig/patches/0001-std.build-fix-handling-of-Dcpu.patch
diff --git a/srcpkgs/zig/patches/0001-std.build-fix-handling-of-Dcpu.patch b/srcpkgs/zig/patches/0001-std.build-fix-handling-of-Dcpu.patch
deleted file mode 100644
index 4101f24459bb..000000000000
--- a/srcpkgs/zig/patches/0001-std.build-fix-handling-of-Dcpu.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From 1e8cdace7ad324a42228aeb5cd6eb8dd15429413 Mon Sep 17 00:00:00 2001
-From: Isaac Freund <ifreund@ifreund.xyz>
-Date: Tue, 21 Sep 2021 21:06:10 +0200
-Subject: [PATCH] std.build: fix handling of -Dcpu
-
-Currently -Dcpu is completely ignored if -Dtarget isn't passed as well.
-Further, -Dcpu=baseline is ignored even if -Dtarget=native is passed.
-
-This patch fixes these 2 issues, always respecting the -Dcpu option if
-present.
----
- lib/std/build.zig | 13 +++++++------
- 1 file changed, 7 insertions(+), 6 deletions(-)
-
-diff --git a/lib/std/build.zig b/lib/std/build.zig
-index 9b7ebb1f4..e398529f9 100644
---- a/lib/std/build.zig
-+++ b/lib/std/build.zig
-@@ -685,7 +685,11 @@ pub const Builder = struct {
- );
- const mcpu = self.option([]const u8, "cpu", "Target CPU");
-
-- const triple = maybe_triple orelse return args.default_target;
-+ if (maybe_triple == null and mcpu == null) {
-+ return args.default_target;
-+ }
-+
-+ const triple = maybe_triple orelse "native";
-
- var diags: CrossTarget.ParseOptions.Diagnostics = .{};
- const selected_target = CrossTarget.parse(.{
-@@ -2451,11 +2455,8 @@ pub const LibExeObjStep = struct {
-
- if (populated_cpu_features.eql(cross.cpu.features)) {
- // The CPU name alone is sufficient.
-- // If it is the baseline CPU, no command line args are required.
-- if (cross.cpu.model != std.Target.Cpu.baseline(cross.cpu.arch).model) {
-- try zig_args.append("-mcpu");
-- try zig_args.append(cross.cpu.model.name);
-- }
-+ try zig_args.append("-mcpu");
-+ try zig_args.append(cross.cpu.model.name);
- } else {
- var mcpu_buffer = std.ArrayList(u8).init(builder.allocator);
-
---
-2.33.1
-
diff --git a/srcpkgs/zig/template b/srcpkgs/zig/template
index 728c5a64e9df..9807f7ab206b 100644
--- a/srcpkgs/zig/template
+++ b/srcpkgs/zig/template
@@ -1,17 +1,19 @@
# Template file for 'zig'
pkgname=zig
-version=0.8.1
-revision=2
+version=0.10.1
+revision=1
archs="x86_64* aarch64*"
build_style=cmake
make_cmd=make
-makedepends="clang llvm12 lld-devel"
+# we add xml2, zstd, zlib and ncurses
+# because our lld is static-only and requires those to work
+makedepends="clang llvm15 lld-devel libxml2-devel libzstd-devel ncurses-devel zlib-devel"
short_desc="Programming language designed for robustness, optimality, and clarity"
maintainer="Isaac Freund <mail@isaacfreund.com>"
license="MIT"
homepage="https://ziglang.org"
distfiles="https://ziglang.org/download/${version}/zig-${version}.tar.xz"
-checksum=8c428e14a0a89cb7a15a6768424a37442292858cdb695e2eb503fa3c7bf47f1a
+checksum=69459bc804333df077d441ef052ffa143d53012b655a51f04cfef1414c04168c
nopie=yes
nocross=yes
From cbfd79b2f183eeaaf87269bdcb6f336ffeb06936 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Tue, 24 Jan 2023 14:03:51 +0100
Subject: [PATCH 17/17] river: update to 0.2.3
---
...ble-PIE-for-river-riverctl-rivertile.patch | 42 -------------------
srcpkgs/river/template | 10 ++---
2 files changed, 5 insertions(+), 47 deletions(-)
delete mode 100644 srcpkgs/river/patches/0001-Enable-PIE-for-river-riverctl-rivertile.patch
diff --git a/srcpkgs/river/patches/0001-Enable-PIE-for-river-riverctl-rivertile.patch b/srcpkgs/river/patches/0001-Enable-PIE-for-river-riverctl-rivertile.patch
deleted file mode 100644
index ecc68302db09..000000000000
--- a/srcpkgs/river/patches/0001-Enable-PIE-for-river-riverctl-rivertile.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From 759c1c7a915083f3da46960ff82fa2a3566a7065 Mon Sep 17 00:00:00 2001
-From: Isaac Freund <mail@isaacfreund.com>
-Date: Wed, 3 Nov 2021 14:21:35 +0100
-Subject: [PATCH] Enable PIE for river, riverctl, rivertile
-
-There is sadly not yet a standard way to do this exposed by the zig
-build system. See: https://github.com/ziglang/zig/issues/7201
----
- build.zig | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/build.zig b/build.zig
-index d561f49..8ac9a4e 100644
---- a/build.zig
-+++ b/build.zig
-@@ -85,6 +85,7 @@ pub fn build(b: *zbs.Builder) !void {
- const river = b.addExecutable("river", "river/main.zig");
- river.setTarget(target);
- river.setBuildMode(mode);
-+ river.pie = true;
- river.addBuildOption(bool, "xwayland", xwayland);
- river.addBuildOption([:0]const u8, "version", full_version);
-
-@@ -97,6 +98,7 @@ pub fn build(b: *zbs.Builder) !void {
- const riverctl = b.addExecutable("riverctl", "riverctl/main.zig");
- riverctl.setTarget(target);
- riverctl.setBuildMode(mode);
-+ riverctl.pie = true;
- riverctl.addBuildOption([:0]const u8, "version", full_version);
-
- riverctl.step.dependOn(&scanner.step);
-@@ -114,6 +116,7 @@ pub fn build(b: *zbs.Builder) !void {
- const rivertile = b.addExecutable("rivertile", "rivertile/main.zig");
- rivertile.setTarget(target);
- rivertile.setBuildMode(mode);
-+ rivertile.pie = true;
- rivertile.addBuildOption([:0]const u8, "version", full_version);
-
- rivertile.step.dependOn(&scanner.step);
---
-2.33.1
-
diff --git a/srcpkgs/river/template b/srcpkgs/river/template
index 3906858d507e..431aa4bd8e8e 100644
--- a/srcpkgs/river/template
+++ b/srcpkgs/river/template
@@ -1,18 +1,18 @@
# Template file for 'river'
pkgname=river
-version=0.1.1
-revision=2
+version=0.2.3
+revision=1
build_style=zig-build
-configure_args="$(vopt_if xwayland -Dxwayland)"
+configure_args="$(vopt_if xwayland -Dxwayland) -Dpie"
hostmakedepends="pkg-config wayland-devel scdoc"
-makedepends="wlroots0.15-devel libevdev-devel"
+makedepends="wlroots-devel libevdev-devel"
depends="$(vopt_if xwayland xorg-server-xwayland)"
short_desc="Dynamic tiling Wayland compositor"
maintainer="Isaac Freund <mail@isaacfreund.com>"
license="GPL-3.0-or-later"
homepage="https://github.com/riverwm/river"
distfiles="${homepage}/releases/download/v${version}/river-${version}.tar.gz"
-checksum=2a0bcd4670ed9ebd39c279f2bf10803fc65c9f3ee2307ce40728df23ce914d18
+checksum=7acdd2b929e16a20006b4baf1f29e7a8dc7f70cf5747e1503a610a90d1637132
build_options="xwayland"
build_options_default="xwayland"
^ permalink raw reply [flat|nested] 96+ messages in thread
* Re: [PR PATCH] [Updated] [WIP] LLVM 15
2022-11-28 15:30 [PR PATCH] [WIP] LLVM 15 tranzystorek-io
` (56 preceding siblings ...)
2023-02-05 13:58 ` tranzystorek-io
@ 2023-02-07 9:14 ` tranzystorek-io
2023-02-10 14:20 ` tranzystorek-io
` (36 subsequent siblings)
94 siblings, 0 replies; 96+ messages in thread
From: tranzystorek-io @ 2023-02-07 9:14 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 1154 bytes --]
There is an updated pull request by tranzystorek-io against master on the void-packages repository
https://github.com/tranzystorek-io/void-packages llvm15
https://github.com/void-linux/void-packages/pull/40821
[WIP] LLVM 15
[ci skip]
TODO:
- [ ] Adjust patches marked as `.patch.skip`
- [x] Make libomp a shlib (change so file name and install a symlink)
- [x] Avoid creating triplet dirs under /usr/
TODO LLVM rdeps:
- [ ] clazy (breaking changes in clang API)
- [x] beignet (https://github.com/void-linux/void-packages/pull/41529)
- [ ] ispc (1.18.1 supports LLVM `<= 14`)
- [ ] ldc (1.30.0 supports LLVM `<= 14`)
- [ ] ghdl (2.0.0 supports LLVM `<= 14`)
- [x] qt
- [ ] qtcreator (breaking changes in clang-format API)
- [ ] shiboken2 (tests failing with llvm15)
- [x] bpftrace (https://github.com/void-linux/void-packages/pull/39002)
- [ ] libclc (tests fail with unresolved calls https://gist.githubusercontent.com/tranzystorek-io/a2aa8a0d8010af5299f7d1ff9f82c22b/raw/6d316d99d6079990b73ae77d274dd120b9560589/LastTest.log)
- [x] zig
A patch file from https://github.com/void-linux/void-packages/pull/40821.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-llvm15-40821.patch --]
[-- Type: text/x-diff, Size: 84846 bytes --]
From fe708476a4f1bb670a669030b58794250a0a58a2 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Sun, 18 Dec 2022 00:36:59 +0100
Subject: [PATCH 01/17] New package: llvm15-15.0.7
---
common/shlibs | 3 +
srcpkgs/libllvm15 | 1 +
.../llvm15/files/llvm-Config-llvm-config.h | 9 +
...clang-001-fix-unwind-chain-inclusion.patch | 44 ++
.../patches/clang-002-add-musl-triples.patch | 115 +++++
.../clang-003-ppc64-dynamic-linker-path.patch | 13 +
.../patches/clang-004-ppc64-musl-elfv2.patch | 48 ++
.../compiler-rt-sanitizer-ppc64-musl.patch | 35 ++
.../compiler-rt-xray-ppc64-musl.patch.skip | 62 +++
srcpkgs/llvm15/patches/libcxx-musl.patch | 26 ++
srcpkgs/llvm15/patches/libcxx-ppc.patch | 22 +
.../llvm15/patches/libcxx-ssp-nonshared.patch | 11 +
srcpkgs/llvm15/patches/libcxxabi-dl.patch | 25 +
srcpkgs/llvm15/patches/libcxxabi-musl.patch | 37 ++
srcpkgs/llvm15/patches/libomp-soname.patch | 12 +
.../llvm15/patches/libunwind-ppc32.patch.skip | 63 +++
srcpkgs/llvm15/patches/lldb-musl.patch | 40 ++
srcpkgs/llvm15/patches/llvm-001-musl.patch | 57 +++
.../patches/llvm-002-musl-ppc64-elfv2.patch | 30 ++
.../patches/llvm-003-ppc-secureplt.patch | 11 +
.../patches/llvm-004-override-opt.patch | 18 +
.../llvm15/patches/llvm-005-ppc-bigpic.patch | 36 ++
.../patches/llvm-006-aarch64-mf_exec.patch | 25 +
srcpkgs/llvm15/template | 442 ++++++++++++++++++
srcpkgs/llvm15/update | 3 +
25 files changed, 1188 insertions(+)
create mode 120000 srcpkgs/libllvm15
create mode 100644 srcpkgs/llvm15/files/llvm-Config-llvm-config.h
create mode 100644 srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch
create mode 100644 srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch
create mode 100644 srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch
create mode 100644 srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch
create mode 100644 srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch
create mode 100644 srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip
create mode 100644 srcpkgs/llvm15/patches/libcxx-musl.patch
create mode 100644 srcpkgs/llvm15/patches/libcxx-ppc.patch
create mode 100644 srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch
create mode 100644 srcpkgs/llvm15/patches/libcxxabi-dl.patch
create mode 100644 srcpkgs/llvm15/patches/libcxxabi-musl.patch
create mode 100644 srcpkgs/llvm15/patches/libomp-soname.patch
create mode 100644 srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip
create mode 100644 srcpkgs/llvm15/patches/lldb-musl.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-001-musl.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-004-override-opt.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch
create mode 100644 srcpkgs/llvm15/template
create mode 100644 srcpkgs/llvm15/update
diff --git a/common/shlibs b/common/shlibs
index 504d29f4cb98..7c1c48c61065 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -992,6 +992,9 @@ libclang.so.12 libclang-12.0.0_1
libclang-cpp.so.12 libclang-cpp-12.0.0_1
libLLVM-11.so libllvm11-11.0.0_1
libLLVM-12.so libllvm12-12.0.0_1
+libLLVM-15.so libllvm15-15.0.7_1
+libomp.so.5 libomp-15.0.7_1
+libomptarget.so.15 libomp-15.0.7_1
libisofs.so.6 libisofs-0.6.24_1
libmpack.so.0 libmpack-1.0.5_1
libGeoIP.so.1 libgeoip-1.4.8_1
diff --git a/srcpkgs/libllvm15 b/srcpkgs/libllvm15
new file mode 120000
index 000000000000..ad57a969b9f9
--- /dev/null
+++ b/srcpkgs/libllvm15
@@ -0,0 +1 @@
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm15/files/llvm-Config-llvm-config.h b/srcpkgs/llvm15/files/llvm-Config-llvm-config.h
new file mode 100644
index 000000000000..2fa08c9be696
--- /dev/null
+++ b/srcpkgs/llvm15/files/llvm-Config-llvm-config.h
@@ -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
diff --git a/srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch b/srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch
new file mode 100644
index 000000000000..e4eaa7783e7a
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch
@@ -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
diff --git a/srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch b/srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch
new file mode 100644
index 000000000000..0ef4c7e75d6b
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch
@@ -0,0 +1,115 @@
+--- a/clang/lib/Driver/ToolChains/Gnu.cpp
++++ b/clang/lib/Driver/ToolChains/Gnu.cpp
+@@ -2086,7 +2086,8 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
+ static const char *const ARMHFTriples[] = {"arm-linux-gnueabihf",
+ "armv7hl-redhat-linux-gnueabi",
+ "armv6hl-suse-linux-gnueabi",
+- "armv7hl-suse-linux-gnueabi"};
++ "armv7hl-suse-linux-gnueabi",
++ "armv7l-linux-gnueabihf"};
+ static const char *const ARMebLibDirs[] = {"/lib"};
+ static const char *const ARMebTriples[] = {"armeb-linux-gnueabi",
+ "armeb-linux-androideabi"};
+@@ -2153,8 +2154,7 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
+ "powerpc64-suse-linux", "powerpc-montavista-linuxspe"};
+ static const char *const PPCLELibDirs[] = {"/lib32", "/lib"};
+ static const char *const PPCLETriples[] = {"powerpcle-linux-gnu",
+- "powerpcle-unknown-linux-gnu",
+- "powerpcle-linux-musl"};
++ "powerpcle-unknown-linux-gnu"};
+
+ static const char *const PPC64LibDirs[] = {"/lib64", "/lib"};
+ static const char *const PPC64Triples[] = {
+@@ -2235,6 +2235,92 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
+ return;
+ }
+
++ if (TargetTriple.isMusl()) {
++ static const char *const AArch64MuslTriples[] = {"aarch64-linux-musl"};
++ static const char *const ARMHFMuslTriples[] = {
++ "arm-linux-musleabihf", "armv7l-linux-musleabihf"
++ };
++ static const char *const ARMMuslTriples[] = {"arm-linux-musleabi"};
++ static const char *const X86_64MuslTriples[] = {"x86_64-linux-musl"};
++ static const char *const X86MuslTriples[] = {"i686-linux-musl"};
++ static const char *const MIPSMuslTriples[] = {
++ "mips-linux-musl", "mipsel-linux-musl",
++ "mipsel-linux-muslhf", "mips-linux-muslhf"
++ };
++ static const char *const PPCMuslTriples[] = {"powerpc-linux-musl"};
++ static const char *const PPCLEMuslTriples[] = {"powerpcle-linux-musl"};
++ static const char *const PPC64MuslTriples[] = {"powerpc64-linux-musl"};
++ static const char *const PPC64LEMuslTriples[] = {"powerpc64le-linux-musl"};
++ static const char *const RISCV64MuslTriples[] = {"riscv64-linux-musl"};
++
++ switch (TargetTriple.getArch()) {
++ case llvm::Triple::aarch64:
++ LibDirs.append(begin(AArch64LibDirs), end(AArch64LibDirs));
++ TripleAliases.append(begin(AArch64MuslTriples), end(AArch64MuslTriples));
++ BiarchLibDirs.append(begin(AArch64LibDirs), end(AArch64LibDirs));
++ BiarchTripleAliases.append(begin(AArch64MuslTriples), end(AArch64MuslTriples));
++ break;
++ case llvm::Triple::arm:
++ LibDirs.append(begin(ARMLibDirs), end(ARMLibDirs));
++ if (TargetTriple.getEnvironment() == llvm::Triple::MuslEABIHF) {
++ TripleAliases.append(begin(ARMHFMuslTriples), end(ARMHFMuslTriples));
++ } else {
++ TripleAliases.append(begin(ARMMuslTriples), end(ARMMuslTriples));
++ }
++ break;
++ case llvm::Triple::x86_64:
++ LibDirs.append(begin(X86_64LibDirs), end(X86_64LibDirs));
++ TripleAliases.append(begin(X86_64MuslTriples), end(X86_64MuslTriples));
++ BiarchLibDirs.append(begin(X86LibDirs), end(X86LibDirs));
++ BiarchTripleAliases.append(begin(X86MuslTriples), end(X86MuslTriples));
++ break;
++ case llvm::Triple::x86:
++ LibDirs.append(begin(X86LibDirs), end(X86LibDirs));
++ TripleAliases.append(begin(X86MuslTriples), end(X86MuslTriples));
++ BiarchLibDirs.append(begin(X86_64LibDirs), end(X86_64LibDirs));
++ BiarchTripleAliases.append(begin(X86_64MuslTriples), end(X86_64MuslTriples));
++ break;
++ case llvm::Triple::mips:
++ LibDirs.append(begin(MIPSLibDirs), end(MIPSLibDirs));
++ TripleAliases.append(begin(MIPSMuslTriples), end(MIPSMuslTriples));
++ break;
++ case llvm::Triple::ppc:
++ LibDirs.append(begin(PPCLibDirs), end(PPCLibDirs));
++ TripleAliases.append(begin(PPCMuslTriples), end(PPCMuslTriples));
++ BiarchLibDirs.append(begin(PPC64LibDirs), end(PPC64LibDirs));
++ BiarchTripleAliases.append(begin(PPC64MuslTriples), end(PPC64MuslTriples));
++ break;
++ case llvm::Triple::ppcle:
++ LibDirs.append(begin(PPCLELibDirs), end(PPCLELibDirs));
++ TripleAliases.append(begin(PPCLEMuslTriples), end(PPCLEMuslTriples));
++ BiarchLibDirs.append(begin(PPC64LELibDirs), end(PPC64LELibDirs));
++ BiarchTripleAliases.append(begin(PPC64LEMuslTriples), end(PPC64LEMuslTriples));
++ break;
++ case llvm::Triple::ppc64:
++ LibDirs.append(begin(PPC64LibDirs), end(PPC64LibDirs));
++ TripleAliases.append(begin(PPC64MuslTriples), end(PPC64MuslTriples));
++ BiarchLibDirs.append(begin(PPCLibDirs), end(PPCLibDirs));
++ BiarchTripleAliases.append(begin(PPCMuslTriples), end(PPCMuslTriples));
++ break;
++ case llvm::Triple::ppc64le:
++ LibDirs.append(begin(PPC64LELibDirs), end(PPC64LELibDirs));
++ TripleAliases.append(begin(PPC64LEMuslTriples), end(PPC64LEMuslTriples));
++ BiarchLibDirs.append(begin(PPCLELibDirs), end(PPCLELibDirs));
++ BiarchTripleAliases.append(begin(PPCLEMuslTriples), end(PPCLEMuslTriples));
++ break;
++ case llvm::Triple::riscv64:
++ LibDirs.append(begin(RISCV64LibDirs), end(RISCV64LibDirs));
++ TripleAliases.append(begin(RISCV64MuslTriples), end(RISCV64MuslTriples));
++ break;
++ default:
++ break;
++ }
++ TripleAliases.push_back(TargetTriple.str());
++ if (TargetTriple.str() != BiarchTriple.str())
++ BiarchTripleAliases.push_back(BiarchTriple.str());
++ return;
++ }
++
+ // Android targets should not use GNU/Linux tools or libraries.
+ if (TargetTriple.isAndroid()) {
+ static const char *const AArch64AndroidTriples[] = {
diff --git a/srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch b/srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch
new file mode 100644
index 000000000000..4ad6412d1e6c
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch
@@ -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 =
diff --git a/srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch b/srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch
new file mode 100644
index 000000000000..21fc8003c5f1
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch
@@ -0,0 +1,48 @@
+--- a/clang/lib/Basic/Targets/PPC.h
++++ b/clang/lib/Basic/Targets/PPC.h
+@@ -415,11 +415,10 @@ public:
+ LongDoubleFormat = &llvm::APFloat::IEEEdouble();
+ } else if ((Triple.getArch() == llvm::Triple::ppc64le)) {
+ DataLayout = "e-m:e-i64:64-n32:64";
+- ABI = "elfv2";
+ } else {
+ DataLayout = "E-m:e-i64:64-n32:64";
+- ABI = "elfv1";
+ }
++ ABI = "elfv2";
+
+ if (Triple.isOSFreeBSD() || Triple.isOSOpenBSD() || Triple.isMusl()) {
+ LongDoubleWidth = LongDoubleAlign = 64;
+--- a/clang/lib/CodeGen/TargetInfo.cpp
++++ b/clang/lib/CodeGen/TargetInfo.cpp
+@@ -10927,9 +10927,9 @@ const TargetCodeGenInfo &CodeGenModule::getTargetCodeGenInfo() {
+ return SetCGInfo(new AIXTargetCodeGenInfo(Types, /*Is64Bit*/ true));
+
+ if (Triple.isOSBinFormatELF()) {
+- PPC64_SVR4_ABIInfo::ABIKind Kind = PPC64_SVR4_ABIInfo::ELFv1;
+- if (getTarget().getABI() == "elfv2")
+- Kind = PPC64_SVR4_ABIInfo::ELFv2;
++ PPC64_SVR4_ABIInfo::ABIKind Kind = PPC64_SVR4_ABIInfo::ELFv2;
++ if (getTarget().getABI() == "elfv1")
++ Kind = PPC64_SVR4_ABIInfo::ELFv1;
+ bool IsSoftFloat = CodeGenOpts.FloatABI == "soft";
+
+ return SetCGInfo(
+--- a/clang/lib/Driver/ToolChains/Clang.cpp
++++ b/clang/lib/Driver/ToolChains/Clang.cpp
+@@ -1920,14 +1920,7 @@ void Clang::AddPPCTargetArgs(const ArgList &Args,
+ const llvm::Triple &T = getToolChain().getTriple();
+ if (T.isOSBinFormatELF()) {
+ switch (getToolChain().getArch()) {
+- case llvm::Triple::ppc64: {
+- if ((T.isOSFreeBSD() && T.getOSMajorVersion() >= 13) ||
+- T.isOSOpenBSD() || T.isMusl())
+- ABIName = "elfv2";
+- else
+- ABIName = "elfv1";
+- break;
+- }
++ case llvm::Triple::ppc64:
+ case llvm::Triple::ppc64le:
+ ABIName = "elfv2";
+ break;
diff --git a/srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch b/srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch
new file mode 100644
index 000000000000..360cfc1ba7f1
--- /dev/null
+++ b/srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch
@@ -0,0 +1,35 @@
+--- 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__) || SANITIZER_RISCV64
++ defined(__hexagon__) || defined(__powerpc__) || 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_ANDROID
++#if (defined(__aarch64__) || defined(__powerpc__) || SANITIZER_RISCV64) && !SANITIZER_ANDROID
+ // GLIBC 2.20+ sys/user does not include asm/ptrace.h
+ # include <asm/ptrace.h>
+ #endif
diff --git a/srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip b/srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip
new file mode 100644
index 000000000000..d0b61c80c897
--- /dev/null
+++ b/srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip
@@ -0,0 +1,62 @@
+--- a/compiler-rt/lib/xray/xray_powerpc64.inc
++++ b/compiler-rt/lib/xray/xray_powerpc64.inc
+@@ -12,7 +12,13 @@
+
+ #include <cstdint>
+ #include <mutex>
++#ifdef __GLIBC__
+ #include <sys/platform/ppc.h>
++#else
++#include <cctype>
++#include <cstring>
++#include <cstdlib>
++#endif
+
+ #include "xray_defs.h"
+
+@@ -20,13 +26,45 @@ namespace __xray {
+
+ ALWAYS_INLINE uint64_t readTSC(uint8_t &CPU) XRAY_NEVER_INSTRUMENT {
+ CPU = 0;
++#ifdef __GLIBC__
+ return __ppc_get_timebase();
++#else
++ return __builtin_ppc_get_timebase();
++#endif
+ }
+
+ inline uint64_t getTSCFrequency() XRAY_NEVER_INSTRUMENT {
+ static std::mutex M;
+ std::lock_guard<std::mutex> Guard(M);
++#ifdef __GLIBC__
+ return __ppc_get_timebase_freq();
++#else
++ /* FIXME: a less dirty implementation? */
++ static uint64_t base;
++ if (!base) {
++ FILE *f = fopen("/proc/cpuinfo", "rb");
++ if (f) {
++ ssize_t nr;
++ /* virtually always big enough to hold the line */
++ char buf[512];
++ while (fgets(buf, sizeof(buf), f)) {
++ char *ret = strstr(buf, "timebase");
++ if (!ret) {
++ continue;
++ }
++ ret += sizeof("timebase") - 1;
++ ret = strchr(ret, ':');
++ if (!ret) {
++ continue;
++ }
++ base = strtoul(ret + 1, nullptr, 10);
++ break;
++ }
++ fclose(f);
++ }
++ }
++ return base;
++#endif
+ }
+
+ inline bool probeRequiredCPUFeatures() XRAY_NEVER_INSTRUMENT {
diff --git a/srcpkgs/llvm15/patches/libcxx-musl.patch b/srcpkgs/llvm15/patches/libcxx-musl.patch
new file mode 100644
index 000000000000..bbd31ffc2cb1
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxx-musl.patch
@@ -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,
+ typename remove_reference<decltype(errno)>::type __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
+ typename remove_reference<decltype(errno)>::type __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,
+ typename remove_reference<decltype(errno)>::type __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
+ typename remove_reference<decltype(errno)>::type __current_errno = errno;
+ if (__current_errno == 0)
+ errno = __save_errno;
diff --git a/srcpkgs/llvm15/patches/libcxx-ppc.patch b/srcpkgs/llvm15/patches/libcxx-ppc.patch
new file mode 100644
index 000000000000..7a92f8004e1c
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxx-ppc.patch
@@ -0,0 +1,22 @@
+This ensures `is_iec559` is defined correctly under all long double ABIs,
+including musl and its 64-bit long double. Also, `__ppc__` or `__ppc64__`
+is not defined on gcc.
+
+--- a/libcxx/include/limits
++++ b/libcxx/include/limits
+@@ -426,8 +426,14 @@ protected:
+ _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type signaling_NaN() _NOEXCEPT {return __builtin_nansl("");}
+ _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type denorm_min() _NOEXCEPT {return __LDBL_DENORM_MIN__;}
+
+-#if (defined(__ppc__) || defined(__ppc64__))
++#if defined(__powerpc__) || defined(__powerpc64__)
++#if (__LDBL_MAX_EXP__ > __DBL_MAX_EXP__) || (__LDBL_MANT_DIG__ == __DBL_MANT_DIG__)
++ /* IEEE 754 quadruple or double precision */
++ static _LIBCPP_CONSTEXPR const bool is_iec559 = true;
++#else
++ /* 128-bit IBM double-double */
+ static _LIBCPP_CONSTEXPR const bool is_iec559 = false;
++#endif
+ #else
+ static _LIBCPP_CONSTEXPR const bool is_iec559 = true;
+ #endif
diff --git a/srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch b/srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch
new file mode 100644
index 000000000000..70292beb2fcd
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch
@@ -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()
diff --git a/srcpkgs/llvm15/patches/libcxxabi-dl.patch b/srcpkgs/llvm15/patches/libcxxabi-dl.patch
new file mode 100644
index 000000000000..3a15f9db8c98
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxxabi-dl.patch
@@ -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 @@
+ target_link_libraries(${target} PRIVATE m)
+ endif()
+
++ if (LIBCXX_HAS_C_LIB)
++ target_link_libraries(${target} PRIVATE dl)
++ endif()
++
+ if (LIBCXX_HAS_RT_LIB)
+ target_link_libraries(${target} PRIVATE rt)
+ endif()
diff --git a/srcpkgs/llvm15/patches/libcxxabi-musl.patch b/srcpkgs/llvm15/patches/libcxxabi-musl.patch
new file mode 100644
index 000000000000..55bf6f5aaa08
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxxabi-musl.patch
@@ -0,0 +1,37 @@
+diff --git a/libcxx/include/__support/musl/xlocale.h b/libcxx/include/__support/musl/xlocale.h
+index e674a41fa..f546119b9 100644
+--- a/libcxx/include/__support/musl/xlocale.h
++++ b/libcxx/include/__support/musl/xlocale.h
+@@ -24,27 +24,27 @@
+ extern "C" {
+ #endif
+
+-inline _LIBCPP_HIDE_FROM_ABI long long
++static inline long long
+ strtoll_l(const char *__nptr, char **__endptr, int __base, locale_t) {
+ return ::strtoll(__nptr, __endptr, __base);
+ }
+
+-inline _LIBCPP_HIDE_FROM_ABI unsigned long long
++static inline unsigned long long
+ strtoull_l(const char *__nptr, char **__endptr, int __base, locale_t) {
+ return ::strtoull(__nptr, __endptr, __base);
+ }
+
+-inline _LIBCPP_HIDE_FROM_ABI long long
++static inline long long
+ wcstoll_l(const wchar_t *__nptr, wchar_t **__endptr, int __base, locale_t) {
+ return ::wcstoll(__nptr, __endptr, __base);
+ }
+
+-inline _LIBCPP_HIDE_FROM_ABI unsigned long long
++static inline unsigned long long
+ wcstoull_l(const wchar_t *__nptr, wchar_t **__endptr, int __base, locale_t) {
+ return ::wcstoull(__nptr, __endptr, __base);
+ }
+
+-inline _LIBCPP_HIDE_FROM_ABI long double
++static inline long double
+ wcstold_l(const wchar_t *__nptr, wchar_t **__endptr, locale_t) {
+ return ::wcstold(__nptr, __endptr);
+ }
diff --git a/srcpkgs/llvm15/patches/libomp-soname.patch b/srcpkgs/llvm15/patches/libomp-soname.patch
new file mode 100644
index 000000000000..9a622cd9254c
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libomp-soname.patch
@@ -0,0 +1,12 @@
+diff --git a/openmp/runtime/src/CMakeLists.txt b/openmp/runtime/src/CMakeLists.txt
+index df1ca9d90..9d2c3b7b9 100644
+--- a/openmp/runtime/src/CMakeLists.txt
++++ b/openmp/runtime/src/CMakeLists.txt
+@@ -150,6 +150,7 @@ libomp_get_libflags(LIBOMP_CONFIGURED_LIBFLAGS)
+ # Build libomp library. Add LLVMSupport dependency if building in-tree with libomptarget profiling enabled.
+ if(OPENMP_STANDALONE_BUILD OR (NOT OPENMP_ENABLE_LIBOMP_PROFILING))
+ add_library(omp ${LIBOMP_LIBRARY_KIND} ${LIBOMP_SOURCE_FILES})
++ set_target_properties(omp PROPERTIES VERSION ${LIBOMP_VERSION_MAJOR} SOVERSION ${LIBOMP_VERSION_MAJOR})
+ # Linking command will include libraries in LIBOMP_CONFIGURED_LIBFLAGS
+ target_link_libraries(omp ${LIBOMP_CONFIGURED_LIBFLAGS} ${LIBOMP_DL_LIBS})
+ else()
diff --git a/srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip b/srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip
new file mode 100644
index 000000000000..74aa7576ecf9
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip
@@ -0,0 +1,63 @@
+This fixes build at least with gcc9 which does not define `__ppc__`.
+
+--- a/libunwind/include/__libunwind_config.h
++++ b/libunwind/include/__libunwind_config.h
+@@ -49,7 +49,7 @@
+ # define _LIBUNWIND_CONTEXT_SIZE 167
+ # define _LIBUNWIND_CURSOR_SIZE 179
+ # define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_PPC64
+-# elif defined(__ppc__)
++# elif defined(__powerpc__)
+ # define _LIBUNWIND_TARGET_PPC 1
+ # define _LIBUNWIND_CONTEXT_SIZE 117
+ # define _LIBUNWIND_CURSOR_SIZE 124
+--- a/libunwind/src/UnwindRegistersRestore.S
++++ b/libunwind/src/UnwindRegistersRestore.S
+@@ -392,7 +392,7 @@ Lnovec:
+ PPC64_LR(3)
+ bctr
+
+-#elif defined(__ppc__)
++#elif defined(__powerpc__)
+
+ DEFINE_LIBUNWIND_FUNCTION(_ZN9libunwind13Registers_ppc6jumptoEv)
+ //
+--- a/libunwind/src/UnwindRegistersSave.S
++++ b/libunwind/src/UnwindRegistersSave.S
+@@ -554,7 +554,7 @@ DEFINE_LIBUNWIND_FUNCTION(__unw_getcontext)
+ blr
+
+
+-#elif defined(__ppc__)
++#elif defined(__powerpc__)
+
+ //
+ // extern int unw_getcontext(unw_context_t* thread_state)
+--- a/libunwind/src/config.h
++++ b/libunwind/src/config.h
+@@ -95,12 +95,12 @@
+ #define _LIBUNWIND_BUILD_SJLJ_APIS
+ #endif
+
+-#if defined(__i386__) || defined(__x86_64__) || defined(__ppc__) || defined(__ppc64__) || defined(__powerpc64__)
++#if defined(__i386__) || defined(__x86_64__) || defined(__powerpc__) || defined(__powerpc64__)
+ #define _LIBUNWIND_SUPPORT_FRAME_APIS
+ #endif
+
+ #if defined(__i386__) || defined(__x86_64__) || \
+- defined(__ppc__) || defined(__ppc64__) || defined(__powerpc64__) || \
++ defined(__powerpc__) || defined(__powerpc64__) || \
+ (!defined(__APPLE__) && defined(__arm__)) || \
+ (defined(__arm64__) || defined(__aarch64__)) || \
+ defined(__mips__)
+--- a/libunwind/src/libunwind.cpp
++++ b/libunwind/src/libunwind.cpp
+@@ -42,7 +42,7 @@ _LIBUNWIND_HIDDEN int __unw_init_local(unw_cursor_t *cursor,
+ # define REGISTER_KIND Registers_x86_64
+ #elif defined(__powerpc64__)
+ # define REGISTER_KIND Registers_ppc64
+-#elif defined(__ppc__)
++#elif defined(__powerpc__)
+ # define REGISTER_KIND Registers_ppc
+ #elif defined(__aarch64__)
+ # define REGISTER_KIND Registers_arm64
diff --git a/srcpkgs/llvm15/patches/lldb-musl.patch b/srcpkgs/llvm15/patches/lldb-musl.patch
new file mode 100644
index 000000000000..026c5e1e61ba
--- /dev/null
+++ b/srcpkgs/llvm15/patches/lldb-musl.patch
@@ -0,0 +1,40 @@
+--- a/lldb/source/Plugins/Process/Linux/Procfs.h
++++ b/lldb/source/Plugins/Process/Linux/Procfs.h
+@@ -10,6 +10,7 @@
+ // sys/procfs.h on Android/Linux for all supported architectures.
+
+ #include <sys/ptrace.h>
++#include <asm/ptrace.h>
+
+ #include "lldb/lldb-types.h"
+
+@@ -17,23 +18,13 @@
+
+ #include <vector>
+
+-#ifdef __ANDROID__
+-#if defined(__arm64__) || defined(__aarch64__)
+-typedef unsigned long elf_greg_t;
+-typedef elf_greg_t
+- elf_gregset_t[(sizeof(struct user_pt_regs) / sizeof(elf_greg_t))];
+-typedef struct user_fpsimd_state elf_fpregset_t;
+-#ifndef NT_FPREGSET
+-#define NT_FPREGSET NT_PRFPREG
+-#endif // NT_FPREGSET
+-#elif defined(__mips__)
+-#ifndef NT_FPREGSET
+-#define NT_FPREGSET NT_PRFPREG
+-#endif // NT_FPREGSET
+-#endif
+-#else // __ANDROID__
++#if !defined(__GLIBC__) && defined(__powerpc__)
++#define pt_regs musl_pt_regs
++#include <sys/procfs.h>
++#undef pt_regs
++#else
+ #include <sys/procfs.h>
+-#endif // __ANDROID__
++#endif
+
+ namespace lldb_private {
+ namespace process_linux {
diff --git a/srcpkgs/llvm15/patches/llvm-001-musl.patch b/srcpkgs/llvm15/patches/llvm-001-musl.patch
new file mode 100644
index 000000000000..f2a3f8d62813
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-001-musl.patch
@@ -0,0 +1,57 @@
+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;
+diff --git a/lib/Support/Unix/DynamicLibrary.inc b/lib/Support/Unix/DynamicLibrary.inc
+index a2a37996..2f86c470 100644
+--- a/llvm/lib/Support/Unix/DynamicLibrary.inc
++++ b/llvm/lib/Support/Unix/DynamicLibrary.inc
+@@ -102,7 +102,7 @@ static void *DoSearch(const char* SymbolName) {
+
+ // This macro returns the address of a well-known, explicit symbol
+ #define EXPLICIT_SYMBOL(SYM) \
+- if (!strcmp(SymbolName, #SYM)) return &SYM
++ if (!strcmp(SymbolName, #SYM)) return (void *)&SYM
+
+ // Under glibc we have a weird situation. The stderr/out/in symbols are both
+ // macros and global variables because of standards requirements. So, we
+diff --git a/utils/unittest/googletest/src/gtest.cc b/utils/unittest/googletest/src/gtest.cc
+index d882ab2e..f1fb12d0 100644
+--- a/llvm/utils/unittest/googletest/src/gtest.cc
++++ b/llvm/utils/unittest/googletest/src/gtest.cc
+@@ -128,6 +128,7 @@
+
+ #if GTEST_CAN_STREAM_RESULTS_
+ # include <arpa/inet.h> // NOLINT
++# include <sys/socket.h> // NOLINT
+ # include <netdb.h> // NOLINT
+ # include <sys/socket.h> // NOLINT
+ # include <sys/types.h> // NOLINT
diff --git a/srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch b/srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch
new file mode 100644
index 000000000000..0071d964bd37
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch
@@ -0,0 +1,30 @@
+This patches LLVM to use ELFv2 on ppc64 unconditionally unless overridden. We
+need this because unlike most distros we use ELFv2 for both glibc and musl
+on big endian ppc64.
+
+diff --git a/lib/Target/PowerPC/PPCTargetMachine.cpp b/lib/Target/PowerPC/PPCTargetMachine.cpp
+index 0634833e..b7cbc2e7 100644
+--- a/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp
++++ b/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp
+@@ -222,9 +222,8 @@ static PPCTargetMachine::PPCABI computeTargetABI(const Triple &TT,
+
+ switch (TT.getArch()) {
+ case Triple::ppc64le:
+- return PPCTargetMachine::PPC_ABI_ELFv2;
+ case Triple::ppc64:
+- return PPCTargetMachine::PPC_ABI_ELFv1;
++ return PPCTargetMachine::PPC_ABI_ELFv2;
+ default:
+ return PPCTargetMachine::PPC_ABI_UNKNOWN;
+ }
+diff --git a/test/CodeGen/PowerPC/ppc64-elf-abi.ll b/test/CodeGen/PowerPC/ppc64-elf-abi.ll
+index 8b1cf6b5..296a2afa 100644
+--- a/llvm/test/CodeGen/PowerPC/ppc64-elf-abi.ll
++++ b/llvm/test/CodeGen/PowerPC/ppc64-elf-abi.ll
+@@ -1,4 +1,5 @@
+-; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv1
++; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv2
++; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-musl < %s | FileCheck %s -check-prefix=CHECK-ELFv2
+ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu -target-abi elfv1 < %s | FileCheck %s -check-prefix=CHECK-ELFv1
+ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu -target-abi elfv2 < %s | FileCheck %s -check-prefix=CHECK-ELFv2
+ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv2
diff --git a/srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch b/srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch
new file mode 100644
index 000000000000..b5d15974375d
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch
@@ -0,0 +1,11 @@
+--- a/llvm/lib/Target/PowerPC/PPCSubtarget.cpp
++++ b/llvm/lib/Target/PowerPC/PPCSubtarget.cpp
+@@ -165,7 +165,7 @@ void PPCSubtarget::initSubtargetFeatures(StringRef CPU, StringRef FS) {
+
+ if ((TargetTriple.isOSFreeBSD() && TargetTriple.getOSMajorVersion() >= 13) ||
+ TargetTriple.isOSNetBSD() || TargetTriple.isOSOpenBSD() ||
+- TargetTriple.isMusl())
++ isTargetLinux())
+ SecurePlt = true;
+
+ if (HasSPE && IsPPC64)
diff --git a/srcpkgs/llvm15/patches/llvm-004-override-opt.patch b/srcpkgs/llvm15/patches/llvm-004-override-opt.patch
new file mode 100644
index 000000000000..51d0e4b31b32
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-004-override-opt.patch
@@ -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)
diff --git a/srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch b/srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch
new file mode 100644
index 000000000000..d332687b9d92
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch
@@ -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);
diff --git a/srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch b/srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch
new file mode 100644
index 000000000000..a00abd216665
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch
@@ -0,0 +1,25 @@
+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__) || defined (__ppc__) || \
+- defined(_POWER) || defined(_ARCH_PPC))
++ defined(_POWER) || defined(_ARCH_PPC) || (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
diff --git a/srcpkgs/llvm15/template b/srcpkgs/llvm15/template
new file mode 100644
index 000000000000..4d2777451e24
--- /dev/null
+++ b/srcpkgs/llvm15/template
@@ -0,0 +1,442 @@
+# Template file for 'llvm15'
+pkgname=llvm15
+version=15.0.7
+revision=1
+build_wrksrc=llvm
+build_style=cmake
+_ext_suffix=".cpython-${py3_ver/./}-linux-${XBPS_TARGET_LIBC/glibc/gnu}.so"
+configure_args="
+ -DCMAKE_BUILD_TYPE=Release -Wno-dev
+ -DENABLE_LINKER_BUILD_ID=YES
+ -DLLDB_USE_SYSTEM_SIX=YES
+ -DLIBCXX_CXX_ABI=libcxxabi
+ -DLIBCXX_ENABLE_STATIC_ABI_LIBRARY=YES
+ -DLIBCXXABI_USE_LLVM_UNWINDER=YES
+ -DLIBCXXABI_ENABLE_STATIC_UNWINDER=YES
+ -DLIBOMP_ENABLE_SHARED=YES
+ -DLIBOMP_INSTALL_ALIASES=NO
+ -DLLVM_INCLUDE_DOCS=YES
+ -DLLVM_BUILD_DOCS=YES
+ -DLLVM_ENABLE_SPHINX=YES
+ -DSPHINX_WARNINGS_AS_ERRORS=NO
+ -DLLVM_INSTALL_UTILS=YES
+ -DLLVM_BUILD_LLVM_DYLIB=YES
+ -DLLVM_LINK_LLVM_DYLIB=YES
+ -DLLVM_ENABLE_RTTI=YES
+ -DLLVM_ENABLE_FFI=YES
+ -DLLVM_BINUTILS_INCDIR=/usr/include
+ -DLLVM_ENABLE_PER_TARGET_RUNTIME_DIR=NO
+ -DLLDB_PYTHON_RELATIVE_PATH=lib/python${py3_ver}/site-packages
+ -DLLDB_PYTHON_EXE_RELATIVE_PATH=bin/python${py3_ver}
+ -DLLDB_PYTHON_EXT_SUFFIX=$_ext_suffix"
+hostmakedepends="perl python3 zlib-devel libffi-devel swig python3-Sphinx
+ python3-recommonmark python3-sphinx-automodapi"
+makedepends="python3-devel zlib-devel elfutils-devel libffi-devel libedit-devel
+ libxml2-devel binutils-devel libatomic-devel"
+depends="libllvm15>=${version}_${revision}"
+short_desc="Low Level Virtual Machine"
+maintainer="Orphaned <orphan@voidlinux.org>"
+license="Apache-2.0"
+homepage="https://www.llvm.org"
+distfiles="https://github.com/llvm/llvm-project/releases/download/llvmorg-${version}/llvm-project-${version}.src.tar.xz"
+checksum=8b5fcb24b4128cf04df1b0b9410ce8b1a729cb3c544e6da885d234280dedeac6
+lib32disabled=yes
+python_version=3
+
+if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
+ configure_args+=" -DLIBCXX_HAS_MUSL_LIBC=YES
+ -DCOMPILER_RT_BUILD_GWP_ASAN=OFF"
+fi
+
+# "operand out of range" assembler failures
+case "$XBPS_TARGET_MACHINE" in
+ ppc64*) ;;
+ ppc*) configure_args+=" -DCLANG_ENABLE_CLANGD=OFF" ;;
+esac
+
+_enabled_projects="clang;clang-tools-extra;compiler-rt;libcxx;libcxxabi;libunwind;lld"
+
+_lldb_enable=yes
+_libomp_enable=no
+
+case "$XBPS_TARGET_MACHINE" in
+ ppc64le*) ;;
+ ppc*|i686*|riscv64*) _lldb_enable=no ;;
+esac
+
+case "$XBPS_TARGET_MACHINE" in
+ x86_64*|aarch64*|ppc64*) _libomp_enable=yes;;
+esac
+
+subpackages="clang-tools-extra"
+
+# must go before clang
+if [ "$_libomp_enable" = "yes" ]; then
+ _enabled_projects+=";openmp"
+ subpackages+=" libomp libomp-devel"
+ # because of cmake nonsense referencing libomptarget.so.*
+ depends+=" libomp>=${version}_${revision}"
+ if [ "$CROSS_BUILD" ]; then
+ # Seems to require a full host llvm/clang build
+ configure_args+=" -DLIBOMPTARGET_BUILD_CUDA_PLUGIN=OFF"
+ configure_args+=" -DLIBOMPTARGET_BUILD_AMDGPU_PLUGIN=OFF"
+ fi
+fi
+
+subpackages+=" clang clang-analyzer libclang libclang-cpp
+ llvm-libunwind llvm-libunwind-devel libcxx libcxx-devel
+ libcxxabi libcxxabi-devel libllvm15"
+
+if [ "$_lldb_enable" = "yes" ]; then
+ # XXX fails to cross compile due to python
+ _enabled_projects+=";lldb"
+ subpackages+=" lldb lldb-devel"
+fi
+
+subpackages+=" lld lld-devel"
+
+configure_args+=" -DLLVM_ENABLE_PROJECTS=${_enabled_projects}"
+
+post_patch() {
+ if [ "$_lldb_enable" = "yes" ]; then
+ if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
+ vsed -i 's|__ptrace_request|int|g' \
+ ${wrksrc}/lldb/source/Plugins/Process/Linux/NativeProcessLinux.cpp
+ fi
+ # disable docs for lldb as they fail to generate
+ vsed -i '/add_subdirectory(docs)/d' \
+ ${wrksrc}/lldb/CMakeLists.txt
+ fi
+
+ # update config.guess for better platform detection
+ cp $XBPS_COMMONDIR/environment/configure/automake/config.guess \
+ ${wrksrc}/llvm/cmake
+
+ # fix linker failures on some archs
+ vsed -i 's,check_library_exists(gcc_s .*,set(LIBCXXABI_HAS_GCC_S_LIB ON),' \
+ ${wrksrc}/libcxxabi/cmake/config-ix.cmake
+ vsed -i 's,check_library_exists(gcc .*,set(LIBCXXABI_HAS_GCC_LIB ON),' \
+ ${wrksrc}/libcxxabi/cmake/config-ix.cmake
+
+ # need libssp_nonshared on some musl platforms (because of nodefaultlibs)
+ case "$XBPS_TARGET_MACHINE" in
+ ppc64*) ;;
+ ppc*-musl|i686-musl|mips*-musl)
+ vsed -i 's,^# Setup flags.$,add_library_flags(ssp_nonshared),' \
+ ${wrksrc}/libunwind/src/CMakeLists.txt
+ vsed -i 's,^# Setup flags.$,add_library_flags(ssp_nonshared),' \
+ ${wrksrc}/libcxxabi/src/CMakeLists.txt
+ vsed -i 's,#ssp,,' ${wrksrc}/libcxx/CMakeLists.txt
+ ;;
+ esac
+
+ case "$XBPS_TARGET_MACHINE" in
+ arm*-musl|i686-musl) # sanitizer code is broken since it duplicates some libc bits
+ vsed -i 's/set(COMPILER_RT_HAS_SANITIZER_COMMON TRUE)/set(COMPILER_RT_HAS_SANITIZER_COMMON FALSE)/' \
+ ${wrksrc}/compiler-rt/cmake/config-ix.cmake
+ ;;
+ esac
+}
+
+pre_configure() {
+ local triplet
+
+ # Vastly reduce size of debugging symbols:
+ CFLAGS=${CFLAGS/ -g/ -g1}
+ CXXFLAGS=${CXXFLAGS/ -g/ -g1}
+
+ # since gcc9, the build likes to blow up for ppc32 apparently because
+ # of clang being too large for a 24-bit relative call to the PLT, so
+ # optimize for size instead
+ case "$XBPS_TARGET_MACHINE" in
+ ppc64*) ;;
+ mips*-musl|ppc*) configure_args+=" -DVOID_CXX_OPT_FLAGS=-Os" ;;
+ esac
+
+ if [ "$CROSS_BUILD" ]; then
+ msg_normal "Building host tblgen\n"
+ mkdir -p build/HOST
+ cd build/HOST
+ CC="$BUILD_CC" CXX="$BUILD_CXX" CFLAGS="$BUILD_CFLAGS" \
+ CXXFLAGS="$BUILD_CXXFLAGS" LDFLAGS="$BUILD_LDFLAGS" \
+ cmake ../.. -DCMAKE_BUILD_TYPE=Release \
+ -DLLVM_ENABLE_PROJECTS=${_enabled_projects}
+ make ${makejobs} -C utils/TableGen
+ make ${makejobs} -C tools/clang/utils/TableGen
+ make ${makejobs} -C tools/clang/tools/extra/clang-tidy/misc/ConfusableTable
+ make ${makejobs} -C tools/clang/tools/extra/pseudo/gen
+ [ "$_lldb_enable" = "yes" ] && make ${makejobs} -C tools/lldb/utils/TableGen
+ configure_args+=" -DLLVM_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/llvm-tblgen"
+ configure_args+=" -DCLANG_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/clang-tblgen"
+ configure_args+=" -DCLANG_TIDY_CONFUSABLE_CHARS_GEN=${wrksrc}/llvm/build/HOST/bin/clang-tidy-confusable-chars-gen"
+ configure_args+=" -DCLANG_PSEUDO_GEN=${wrksrc}/llvm/build/HOST/bin/clang-pseudo-gen"
+ [ "$_lldb_enable" = "yes" ] && configure_args+=" -DLLDB_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/lldb-tblgen"
+ cd ../..
+ fi
+
+ case "$XBPS_TARGET_MACHINE" in
+ i686*) _arch="X86";;
+ x86_64*) _arch="X86";;
+ armv5*) _arch="Armv5te";;
+ armv6*) _arch="Armv6";;
+ armv7*) _arch="Armv7";;
+ aarch64*) _arch="AArch64";;
+ mips*) _arch="Mips";;
+ ppc*) _arch="PowerPC";;
+ riscv64*) _arch="RISCV64";;
+ esac
+
+ triplet=${XBPS_CROSS_TRIPLET:-$XBPS_TRIPLET}
+
+ configure_args+=" -DLLVM_TARGET_ARCH=${_arch}"
+ configure_args+=" -DLLVM_HOST_TRIPLE=${triplet}"
+ configure_args+=" -DLLVM_DEFAULT_TARGET_TRIPLE=${triplet}"
+}
+
+do_install() {
+ cd build
+ cmake -DCMAKE_INSTALL_PREFIX=${DESTDIR}/usr -P cmake_install.cmake
+
+ # Required for multilib.
+ if [ "$XBPS_TARGET_MACHINE" = "x86_64" ]; then
+ for _header in llvm-config; do
+ mv ${DESTDIR}/usr/include/llvm/Config/${_header}{,-64}.h
+ vinstall ${FILESDIR}/llvm-Config-${_header}.h 644 \
+ usr/include/llvm/Config ${_header}.h
+ done
+ fi
+
+ # Remove llvm-config-host in cross builds.
+ if [ "$CROSS_BUILD" ]; then
+ rm -f ${DESTDIR}/usr/bin/llvm-config-host
+ fi
+
+ # Install libcxxabi headers
+ vinstall ${wrksrc}/libcxxabi/include/__cxxabi_config.h 644 usr/include
+ vinstall ${wrksrc}/libcxxabi/include/cxxabi.h 644 usr/include
+
+ # Install libunwind headers
+ vinstall ${wrksrc}/libunwind/include/__libunwind_config.h 644 usr/include
+ vinstall ${wrksrc}/libunwind/include/libunwind.h 644 usr/include
+ vinstall ${wrksrc}/libunwind/include/unwind.h 644 usr/include
+ vinstall ${wrksrc}/libunwind/include/mach-o/compact_unwind_encoding.h \
+ 644 usr/include/mach-o
+}
+
+clang-analyzer_package() {
+ pycompile_dirs="usr/share/scan-view"
+ depends="clang-${version}_${revision} python3 perl"
+ short_desc+=" - A source code analysis framework"
+ homepage="https://clang-analyzer.llvm.org/"
+ pkg_install() {
+ vmove "usr/bin/scan-*"
+ vmove "usr/libexec/*analyzer"
+ vmove "usr/share/scan-*"
+ vmove usr/share/man/man1/scan-build.1
+ }
+}
+
+clang-tools-extra_package() {
+ lib32disabled=yes
+ depends="clang-${version}_${revision} python3"
+ short_desc+=" - Extra Clang tools"
+ homepage="https://clang.llvm.org/extra/"
+ pkg_install() {
+ vmove usr/bin/clang-apply-replacements
+ vmove usr/bin/clang-doc
+ vmove usr/bin/clang-include-fixer
+ vmove usr/bin/clang-query
+ vmove usr/bin/clang-rename
+ vmove usr/bin/clang-reorder-fields
+ vmove usr/bin/clang-tidy
+ vmove usr/bin/clangd
+ vmove usr/bin/diagtool
+ vmove usr/bin/find-all-symbols
+ vmove usr/bin/hmaptool
+ vmove usr/bin/modularize
+ vmove usr/bin/pp-trace
+ vmove usr/bin/sancov
+ vmove usr/include/clang-tidy
+ vmove "usr/lib/libclangApplyReplacements*"
+ vmove "usr/lib/libclangDoc*"
+ vmove "usr/lib/libclangIncludeFixer*"
+ vmove "usr/lib/libclangReorderFields*"
+ vmove "usr/lib/libclangQuery*"
+ vmove "usr/lib/libclangTidy*"
+ vmove "usr/share/clang/*include-fixer*"
+ vmove "usr/share/clang/*rename*"
+ vmove "usr/share/clang/*tidy*"
+ vmove usr/share/doc/LLVM/clang-tools
+ vmove usr/share/man/man1/diagtool.1
+ vmove usr/share/man/man1/extraclangtools.1
+ }
+}
+
+clang_package() {
+ lib32disabled=yes
+ depends="libstdc++-devel libgcc-devel binutils ${XBPS_TARGET_LIBC}-devel
+ libclang-${version}_${revision}"
+ short_desc+=" - C language family frontend"
+ homepage="https://clang.llvm.org/"
+ pkg_install() {
+ vmove "usr/bin/*clang*"
+ vmove usr/bin/c-index-test
+ vmove usr/include/clang
+ vmove usr/include/clang-c
+ vmove usr/lib/clang
+ vmove usr/lib/cmake/clang
+ vmove "usr/lib/libclang*.a"
+ vmove "usr/lib/libclang*.so"
+ vmove usr/share/clang
+ vmove usr/share/doc/LLVM/clang
+ vmove usr/share/man/man1/clang.1
+ }
+}
+
+libclang_package() {
+ short_desc+=" - C frontend runtime library"
+ pkg_install() {
+ vmove "usr/lib/libclang.so.*"
+ }
+}
+
+libclang-cpp_package() {
+ short_desc+=" - C frontend runtime library (C++ interface)"
+ pkg_install() {
+ vmove "usr/lib/libclang-cpp.so.*"
+ }
+}
+
+lld_package() {
+ lib32disabled=yes
+ short_desc+=" - linker"
+ homepage="https://lld.llvm.org"
+ pkg_install() {
+ vmove "usr/bin/ld.lld*"
+ vmove "usr/bin/ld64.lld*"
+ vmove "usr/bin/lld*"
+ vmove usr/bin/wasm-ld
+ vmove usr/share/doc/LLVM/lld
+ }
+}
+
+lld-devel_package() {
+ lib32disabled=yes
+ short_desc+=" - linker - development files"
+ homepage="https://lld.llvm.org"
+ depends="lld>=${version}_${revision}"
+ pkg_install() {
+ vmove usr/include/lld
+ vmove usr/lib/cmake/lld
+ vmove "usr/lib/liblld*a"
+ }
+}
+
+lldb_package() {
+ lib32disabled=yes
+ depends+=" python3-six"
+ short_desc+=" - LLDB debugger"
+ homepage="https://lldb.llvm.org/"
+ pkg_install() {
+ vmove "usr/bin/*lldb*"
+ vmove "usr/lib/liblldb*so.*"
+ vmove usr/lib/python*
+ }
+}
+
+lldb-devel_package() {
+ lib32disabled=yes
+ depends="lldb>=${version}_${revision}"
+ short_desc+=" - LLDB debugger - development files"
+ pkg_install() {
+ vmove usr/include/lldb
+ vmove "usr/lib/liblldb*.so"
+ }
+}
+
+llvm-libunwind_package() {
+ short_desc+=" - libunwind"
+ pkg_install() {
+ vmove "usr/lib/libunwind.so.*"
+ }
+}
+
+llvm-libunwind-devel_package() {
+ short_desc+=" - libunwind - development files"
+ depends="llvm-libunwind>=${version}_${revision}"
+ conflicts="libunwind-devel>=0"
+ pkg_install() {
+ vmove usr/include/mach-o
+ vmove "usr/include/*unwind*"
+ vmove "usr/lib/libunwind.a"
+ vmove "usr/lib/libunwind.so"
+ vmove usr/share/doc/LLVM/libunwind
+ }
+}
+
+libcxxabi_package() {
+ short_desc+=" - low level support for libc++"
+ pkg_install() {
+ vmove "usr/lib/libc++abi.so.*"
+ }
+}
+
+libcxxabi-devel_package() {
+ short_desc+=" - low level support for libc++ - development files"
+ depends="libcxxabi>=${version}_${revision}"
+ pkg_install() {
+ vmove "usr/include/*cxxabi*"
+ vmove "usr/lib/libc++abi.so"
+ vmove "usr/lib/libc++abi.a"
+ }
+}
+
+libcxx_package() {
+ short_desc+=" - C++ standard library"
+ pkg_install() {
+ vmove "usr/lib/libc++.so.*"
+ }
+}
+
+libcxx-devel_package() {
+ short_desc+=" - C++ standard library - development files"
+ depends="libcxx>=${version}_${revision}"
+ pkg_install() {
+ vmove usr/include/c++
+ vmove "usr/lib/libc++.so"
+ vmove "usr/lib/libc++.a"
+ vmove "usr/lib/libc++experimental.a"
+ vmove usr/share/doc/LLVM/libcxx
+ }
+}
+
+libomp_package() {
+ short_desc+=" - Clang OpenMP support library"
+ pkg_install() {
+ vmove usr/lib/libarcher.so
+ vmove usr/lib/libompd.so
+ vmove "usr/lib/libomptarget.rtl.*.so"
+ vmove "usr/lib/libomp*.so.*"
+ }
+}
+
+libomp-devel_package() {
+ short_desc+=" - Clang OpenMP support library - development files"
+ depends="libomp>=${version}_${revision}"
+ pkg_install() {
+ vmove "usr/include/omp*.h"
+ vmove "usr/lib/clang/${version}/include/omp*.h"
+ vmove "usr/lib/libarcher*"
+ vmove "usr/lib/libomp*.so"
+ vmove usr/lib/cmake/openmp
+ vmove usr/share/doc/LLVM/openmp
+ vmove usr/share/man/man1/llvmopenmp.1
+ }
+}
+
+libllvm15_package() {
+ short_desc+=" - runtime library"
+ pkg_install() {
+ vmove "usr/lib/libLLVM-*.so*"
+ }
+}
diff --git a/srcpkgs/llvm15/update b/srcpkgs/llvm15/update
new file mode 100644
index 000000000000..e95cf26b3586
--- /dev/null
+++ b/srcpkgs/llvm15/update
@@ -0,0 +1,3 @@
+site="https://github.com/llvm/llvm-project/releases"
+pattern="llvmorg-\K(\d+.){2}\d+(-rc\d+)?"
+ignore="*-rc*"
From b81398a9183fc5b6749ac0aeb58a44783527a258 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Sun, 18 Dec 2022 00:40:18 +0100
Subject: [PATCH 02/17] llvm: update to 15
---
common/shlibs | 6 +++---
srcpkgs/clang | 2 +-
srcpkgs/clang-analyzer | 2 +-
srcpkgs/clang-tools-extra | 2 +-
srcpkgs/libclang | 2 +-
srcpkgs/libclang-cpp | 2 +-
srcpkgs/libcxx | 2 +-
srcpkgs/libcxx-devel | 2 +-
srcpkgs/libcxxabi | 2 +-
srcpkgs/libcxxabi-devel | 2 +-
srcpkgs/libomp | 2 +-
srcpkgs/libomp-devel | 2 +-
srcpkgs/lld | 2 +-
srcpkgs/lld-devel | 2 +-
srcpkgs/lldb | 2 +-
srcpkgs/lldb-devel | 2 +-
srcpkgs/llvm-libunwind | 2 +-
srcpkgs/llvm-libunwind-devel | 2 +-
srcpkgs/llvm/template | 6 +++---
19 files changed, 23 insertions(+), 23 deletions(-)
diff --git a/common/shlibs b/common/shlibs
index 7c1c48c61065..44059d647598 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -987,9 +987,9 @@ 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.12 lldb-12.0.0_1
-libclang.so.12 libclang-12.0.0_1
-libclang-cpp.so.12 libclang-cpp-12.0.0_1
+liblldb.so.15 lldb-15.0.7_1
+libclang.so.15 libclang-15.0.7_1
+libclang-cpp.so.15 libclang-cpp-15.0.7_1
libLLVM-11.so libllvm11-11.0.0_1
libLLVM-12.so libllvm12-12.0.0_1
libLLVM-15.so libllvm15-15.0.7_1
diff --git a/srcpkgs/clang b/srcpkgs/clang
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/clang
+++ b/srcpkgs/clang
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/clang-analyzer b/srcpkgs/clang-analyzer
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/clang-analyzer
+++ b/srcpkgs/clang-analyzer
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/clang-tools-extra b/srcpkgs/clang-tools-extra
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/clang-tools-extra
+++ b/srcpkgs/clang-tools-extra
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libclang b/srcpkgs/libclang
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libclang
+++ b/srcpkgs/libclang
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libclang-cpp b/srcpkgs/libclang-cpp
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libclang-cpp
+++ b/srcpkgs/libclang-cpp
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxx b/srcpkgs/libcxx
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxx
+++ b/srcpkgs/libcxx
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxx-devel b/srcpkgs/libcxx-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxx-devel
+++ b/srcpkgs/libcxx-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxxabi b/srcpkgs/libcxxabi
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxxabi
+++ b/srcpkgs/libcxxabi
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxxabi-devel b/srcpkgs/libcxxabi-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxxabi-devel
+++ b/srcpkgs/libcxxabi-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libomp b/srcpkgs/libomp
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libomp
+++ b/srcpkgs/libomp
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libomp-devel b/srcpkgs/libomp-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libomp-devel
+++ b/srcpkgs/libomp-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lld b/srcpkgs/lld
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lld
+++ b/srcpkgs/lld
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lld-devel b/srcpkgs/lld-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lld-devel
+++ b/srcpkgs/lld-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lldb b/srcpkgs/lldb
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lldb
+++ b/srcpkgs/lldb
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lldb-devel b/srcpkgs/lldb-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lldb-devel
+++ b/srcpkgs/lldb-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm-libunwind b/srcpkgs/llvm-libunwind
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/llvm-libunwind
+++ b/srcpkgs/llvm-libunwind
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm-libunwind-devel b/srcpkgs/llvm-libunwind-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/llvm-libunwind-devel
+++ b/srcpkgs/llvm-libunwind-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm/template b/srcpkgs/llvm/template
index a92db6f94f9f..fc1c850bd26f 100644
--- a/srcpkgs/llvm/template
+++ b/srcpkgs/llvm/template
@@ -1,11 +1,11 @@
# Template file for 'llvm'
pkgname=llvm
-version=12.0.0
+version=15
revision=1
build_style=meta
-depends="llvm12"
-replaces="llvm11>=0 llvm10>=0 llvm9>=0 llvm8>=0 llvm7>=0 llvm6.0>=0 llvm3.9>=0"
+depends="llvm15"
short_desc="LLVM meta package"
maintainer="Enno Boland <gottox@voidlinux.org>"
license="Public Domain"
homepage="https://www.voidlinux.org"
+replaces="llvm12>=0 llvm11>=0 llvm10>=0 llvm9>=0 llvm8>=0 llvm7>=0 llvm6.0>=0 llvm3.9>=0"
From 34d4df6ce2bc5330a78442bb2f0021614595f97a Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Sun, 18 Dec 2022 12:20:08 +0100
Subject: [PATCH 03/17] llvm12: remove bumped subpackages
---
srcpkgs/llvm12/template | 264 +---------------------------------------
1 file changed, 1 insertion(+), 263 deletions(-)
diff --git a/srcpkgs/llvm12/template b/srcpkgs/llvm12/template
index f8ea3ba641ae..aea0b43cf573 100644
--- a/srcpkgs/llvm12/template
+++ b/srcpkgs/llvm12/template
@@ -50,55 +50,7 @@ case "$XBPS_TARGET_MACHINE" in
ppc*) configure_args+=" -DCLANG_ENABLE_CLANGD=OFF" ;;
esac
-_enabled_projects="clang;clang-tools-extra;compiler-rt;libcxx;libcxxabi;libunwind;lld"
-
-_lldb_enable=yes
-_libomp_enable=no
-
-case "$XBPS_TARGET_MACHINE" in
- ppc64le*) ;;
- ppc*|i686*) _lldb_enable=no ;;
-esac
-
-case "$XBPS_TARGET_MACHINE" in
- x86_64*|aarch64*|ppc64*) _libomp_enable=yes;;
-esac
-
-subpackages="clang-tools-extra"
-
-# must go before clang
-if [ "$_libomp_enable" = "yes" ]; then
- _enabled_projects+=";openmp"
- subpackages+=" libomp libomp-devel"
- # because of cmake nonsense referencing libomptarget.so.*
- depends+=" libomp>=${version}_${revision}"
-fi
-
-subpackages+=" clang clang-analyzer libclang libclang-cpp
- llvm-libunwind llvm-libunwind-devel libcxx libcxx-devel
- libcxxabi libcxxabi-devel libllvm12"
-
-if [ "$_lldb_enable" = "yes" ]; then
- # XXX fails to cross compile due to python
- _enabled_projects+=";lldb"
- subpackages+=" lldb lldb-devel"
-fi
-
-subpackages+=" lld lld-devel"
-
-configure_args+=" -DLLVM_ENABLE_PROJECTS=${_enabled_projects}"
-
post_patch() {
- if [ "$_lldb_enable" = "yes" ]; then
- if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
- vsed -i 's|__ptrace_request|int|g' \
- ${wrksrc}/lldb/source/Plugins/Process/Linux/NativeProcessLinux.cpp
- fi
- # disable docs for lldb as they fail to generate
- vsed -i '/add_subdirectory(docs)/d' \
- ${wrksrc}/lldb/CMakeLists.txt
- fi
-
# update config.guess for better platform detection
cp $XBPS_COMMONDIR/environment/configure/automake/config.guess \
${wrksrc}/llvm/cmake
@@ -154,14 +106,12 @@ pre_configure() {
cd build/HOST
CC="$BUILD_CC" CXX="$BUILD_CXX" CFLAGS="$BUILD_CFLAGS" \
CXXFLAGS="$BUILD_CXXFLAGS" LDFLAGS="$BUILD_LDFLAGS" \
- cmake ../.. -DCMAKE_BUILD_TYPE=Release \
- -DLLVM_ENABLE_PROJECTS=${_enabled_projects}
+ cmake ../.. -DCMAKE_BUILD_TYPE=Release
make ${makejobs} -C utils/TableGen
make ${makejobs} -C tools/clang/utils/TableGen
[ "$_lldb_enable" = "yes" ] && make ${makejobs} -C tools/lldb/utils/TableGen
configure_args+=" -DLLVM_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/llvm-tblgen"
configure_args+=" -DCLANG_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/clang-tblgen"
- [ "$_lldb_enable" = "yes" ] && configure_args+=" -DLLDB_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/lldb-tblgen"
cd ../..
fi
@@ -201,218 +151,6 @@ do_install() {
if [ "$CROSS_BUILD" ]; then
rm -f ${DESTDIR}/usr/bin/llvm-config-host
fi
-
- # Install libcxxabi headers
- vinstall ${wrksrc}/libcxxabi/include/__cxxabi_config.h 644 usr/include
- vinstall ${wrksrc}/libcxxabi/include/cxxabi.h 644 usr/include
-
- # Install libunwind headers
- vinstall ${wrksrc}/libunwind/include/__libunwind_config.h 644 usr/include
- vinstall ${wrksrc}/libunwind/include/libunwind.h 644 usr/include
- vinstall ${wrksrc}/libunwind/include/unwind.h 644 usr/include
- vinstall ${wrksrc}/libunwind/include/mach-o/compact_unwind_encoding.h \
- 644 usr/include/mach-o
-}
-
-clang-analyzer_package() {
- pycompile_dirs="usr/share/scan-view"
- depends="clang-${version}_${revision} python3 perl"
- short_desc+=" - A source code analysis framework"
- homepage="https://clang-analyzer.llvm.org/"
- pkg_install() {
- vmove usr/share/man/man1/scan-build.1
- vmove "/usr/bin/scan-*"
- vmove "/usr/share/scan-*"
- vmove "/usr/libexec/*analyzer"
- }
-}
-
-clang-tools-extra_package() {
- lib32disabled=yes
- depends="clang-${version}_${revision} python3"
- short_desc+=" - Extra Clang tools"
- homepage="https://clang.llvm.org/extra/"
- pkg_install() {
- vmove usr/include/clang-tidy
- vmove usr/bin/clang-apply-replacements
- vmove usr/bin/clang-query
- vmove usr/bin/clang-rename
- vmove usr/bin/clang-tidy
- vmove usr/bin/diagtool
- vmove usr/bin/find-all-symbols
- vmove usr/bin/hmaptool
- vmove usr/bin/modularize
- vmove usr/bin/pp-trace
- vmove usr/bin/sancov
- vmove "usr/lib/libclangApplyReplacements*"
- vmove "usr/lib/libclangQuery*"
- vmove "usr/lib/libclangTidy*"
- vmove "usr/share/clang/*tidy*"
- vmove usr/share/doc/clang-tools
- vmove usr/share/man/man1/extraclangtools.1
- vmove usr/share/man/man1/diagtool.1
- }
-}
-
-clang_package() {
- lib32disabled=yes
- depends="libstdc++-devel libgcc-devel binutils ${XBPS_TARGET_LIBC}-devel
- libclang-${version}_${revision}"
- short_desc+=" - C language family frontend"
- homepage="https://clang.llvm.org/"
- pkg_install() {
- vmove usr/include/clang
- vmove usr/include/clang-c
- vmove "usr/bin/*clang*"
- vmove usr/bin/c-index-test
- vmove usr/lib/clang
- vmove usr/lib/cmake/clang
- vmove "usr/lib/libclang*.a"
- vmove "usr/lib/libclang*.so"
- vmove usr/share/clang
- vmove usr/share/doc/clang
- vmove usr/share/man/man1/clang.1
- }
-}
-
-libclang_package() {
- short_desc+=" - C frontend runtime library"
- pkg_install() {
- vmove "usr/lib/libclang.so.*"
- }
-}
-
-libclang-cpp_package() {
- short_desc+=" - C frontend runtime library (C++ interface)"
- pkg_install() {
- vmove "usr/lib/libclang-cpp.so.*"
- }
-}
-
-lld_package() {
- lib32disabled=yes
- short_desc+=" - linker"
- homepage="https://lld.llvm.org"
- pkg_install() {
- vmove usr/bin/lld*
- vmove usr/bin/wasm-ld
- vmove usr/bin/ld.lld*
- vmove usr/bin/ld64.lld*
- vmove usr/share/doc/lld
- }
-}
-
-lld-devel_package() {
- lib32disabled=yes
- short_desc+=" - linker - development files"
- homepage="https://lld.llvm.org"
- depends="lld>=${version}_${revision}"
- pkg_install() {
- vmove usr/include/lld
- vmove usr/lib/cmake/lld
- vmove "usr/lib/liblld*a"
- }
-}
-
-lldb_package() {
- lib32disabled=yes
- depends+=" python3-six"
- short_desc+=" - LLDB debugger"
- homepage="https://lldb.llvm.org/"
- pkg_install() {
- vmove usr/bin/*lldb*
- vmove usr/lib/liblldb*so.*
- vmove /usr/lib/python*
- }
-}
-
-lldb-devel_package() {
- lib32disabled=yes
- depends="lldb>=${version}_${revision}"
- short_desc+=" - LLDB debugger - development files"
- pkg_install() {
- vmove usr/include/lldb
- vmove "usr/lib/liblldb*.so"
- }
-}
-
-llvm-libunwind_package() {
- short_desc+=" - libunwind"
- pkg_install() {
- vmove "usr/lib/libunwind.so.*"
- }
-}
-
-llvm-libunwind-devel_package() {
- short_desc+=" - libunwind - development files"
- depends="llvm-libunwind>=${version}_${revision}"
- conflicts="libunwind-devel>=0"
- pkg_install() {
- vmove usr/lib/libunwind.so
- vmove usr/lib/libunwind.a
- vmove "usr/include/*unwind*"
- vmove usr/include/mach-o
- vmove usr/share/doc/libunwind
- }
-}
-
-libcxxabi_package() {
- short_desc+=" - low level support for libc++"
- pkg_install() {
- vmove "usr/lib/libc++abi.so.*"
- }
-}
-
-libcxxabi-devel_package() {
- short_desc+=" - low level support for libc++ - development files"
- depends="libcxxabi>=${version}_${revision}"
- pkg_install() {
- vmove usr/lib/libc++abi.so
- vmove usr/lib/libc++abi.a
- vmove "usr/include/*cxxabi*"
- }
-}
-
-libcxx_package() {
- short_desc+=" - C++ standard library"
- pkg_install() {
- vmove "usr/lib/libc++.so.*"
- }
-}
-
-libcxx-devel_package() {
- short_desc+=" - C++ standard library - development files"
- depends="libcxx>=${version}_${revision}"
- pkg_install() {
- vmove usr/lib/libc++.so
- vmove usr/lib/libc++.a
- vmove usr/lib/libc++experimental.a
- vmove usr/include/c++
- vmove usr/share/doc/libcxx
- }
-}
-
-libomp_package() {
- short_desc+=" - Clang OpenMP support library"
- pkg_install() {
- vmove usr/lib/libomp.so
- vmove "usr/lib/libomptarget.rtl.*.so"
- vmove usr/lib/libarcher.so
- vmove "usr/lib/libomp*.so.*"
- }
-}
-
-libomp-devel_package() {
- short_desc+=" - Clang OpenMP support library - development files"
- depends="libomp>=${version}_${revision}"
- pkg_install() {
- vmove "usr/lib/libomp*.so"
- vmove "usr/lib/libarcher*"
- vmove "usr/include/omp*.h"
- vmove "usr/lib/clang/${version}/include/omp*.h"
- vmove usr/share/man/man1/llvmopenmp.1
- vmove usr/share/doc/openmp
- }
}
libllvm12_package() {
From 880e264c233cda747a9917c5cbf2678d89359632 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:27:03 +0100
Subject: [PATCH 04/17] mesa: rebuild for llvm15
---
srcpkgs/mesa/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/mesa/template b/srcpkgs/mesa/template
index 4c3c9ec6039e..0641b28a80d6 100644
--- a/srcpkgs/mesa/template
+++ b/srcpkgs/mesa/template
@@ -1,7 +1,7 @@
# Template file for 'mesa'
pkgname=mesa
version=22.2.4
-revision=2
+revision=3
build_style=meson
configure_args="-Dglvnd=true -Dshared-glapi=enabled -Dgbm=enabled -Degl=enabled
-Dosmesa=true -Dgles1=enabled -Dgles2=enabled -Dglx=dri -Ddri3=enabled
From 357225b9a24dc884a9ac3ab2db1c647230cda13e Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:34:04 +0100
Subject: [PATCH 05/17] bcc: rebuild for llvm15
---
srcpkgs/bcc/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/bcc/template b/srcpkgs/bcc/template
index 7526580f17ed..bdbcff7227a0 100644
--- a/srcpkgs/bcc/template
+++ b/srcpkgs/bcc/template
@@ -1,7 +1,7 @@
# Template file for 'bcc'
pkgname=bcc
version=0.26.0
-revision=2
+revision=3
build_style=cmake
configure_args="-DREVISION=${version} -DENABLE_LLVM_SHARED=1"
hostmakedepends="flex python3-setuptools"
From a41d1cb64d4100cc1a2c6758b2ad71eb5e263095 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:37:25 +0100
Subject: [PATCH 06/17] bpftrace: rebuild for llvm15
---
srcpkgs/bpftrace/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/bpftrace/template b/srcpkgs/bpftrace/template
index 857815d29eef..47f2b5e77024 100644
--- a/srcpkgs/bpftrace/template
+++ b/srcpkgs/bpftrace/template
@@ -1,7 +1,7 @@
# Template file for 'bpftrace'
pkgname=bpftrace
version=0.16.0
-revision=1
+revision=2
archs="x86_64* aarch64* ppc64*"
build_style=cmake
configure_args="-DBUILD_TESTING=OFF" # needs root to run
From f8a8e657bf3909ecde8d8de0cdcbaa8d0c86ce66 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:43:53 +0100
Subject: [PATCH 07/17] CastXML: rebuild for llvm15
---
srcpkgs/CastXML/template | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/srcpkgs/CastXML/template b/srcpkgs/CastXML/template
index 5d7d9503658c..28c424c78073 100644
--- a/srcpkgs/CastXML/template
+++ b/srcpkgs/CastXML/template
@@ -1,7 +1,7 @@
# Template file for 'CastXML'
pkgname=CastXML
version=0.4.6
-revision=1
+revision=2
build_style=cmake
configure_args="-DSPHINX_MAN=YES -DCastXML_INSTALL_MAN_DIR=share/man"
hostmakedepends="clang python3-Sphinx"
@@ -12,8 +12,8 @@ short_desc="C-family abstract syntax tree XML output tool"
maintainer="Evgeny Ermakov <evgeny.v.ermakov@gmail.com>"
license="Apache-2.0"
homepage="https://github.com/CastXML/CastXML"
-distfiles="https://github.com/CastXML/CastXML/archive/v${version}.tar.gz"
-checksum=8dcdbc1f23a130e4bdb0b09f57c30761a02a346b4db4037555048af2a293d66a
+distfiles="https://github.com/CastXML/CastXML/archive/refs/tags/v${version}.tar.gz"
+checksum=bb9024ec9ea5082e0d527f19bf3c2df79f1699f54b6cec168c024e727b32e6d1
post_install() {
rm -r ${DESTDIR}/usr/share/castxml/clang/include
From 396d37c9bd91a5fe907666a7919bcd51228913af Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:48:55 +0100
Subject: [PATCH 08/17] ccls: rebuild for llvm15
---
srcpkgs/ccls/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/ccls/template b/srcpkgs/ccls/template
index 82fa61933878..ecc9f3e38a5d 100644
--- a/srcpkgs/ccls/template
+++ b/srcpkgs/ccls/template
@@ -1,7 +1,7 @@
# Template file for 'ccls'
pkgname=ccls
version=0.20220729
-revision=1
+revision=2
build_style=cmake
hostmakedepends="clang-tools-extra"
makedepends="clang-tools-extra libxml2-devel llvm ncurses-devel rapidjson zlib-devel"
From 254bb0b014ed7b4680460b90b6a333fd2387808d Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:52:14 +0100
Subject: [PATCH 09/17] include-what-you-use: update to 0.19
---
srcpkgs/include-what-you-use/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/include-what-you-use/template b/srcpkgs/include-what-you-use/template
index d3655709c20c..1a30bc04bb2d 100644
--- a/srcpkgs/include-what-you-use/template
+++ b/srcpkgs/include-what-you-use/template
@@ -1,6 +1,6 @@
# Template file for 'include-what-you-use'
pkgname=include-what-you-use
-version=0.16
+version=0.19
revision=1
build_style=cmake
configure_args="-DIWYU_LLVM_ROOT_PATH=${XBPS_CROSS_BASE}/usr "
@@ -11,7 +11,7 @@ maintainer="Leah Neukirchen <leah@vuxu.org>"
license="NCSA"
homepage="https://include-what-you-use.org/"
distfiles="https://include-what-you-use.org/downloads/${pkgname}-${version}.src.tar.gz"
-checksum=8d6fc9b255343bc1e5ec459e39512df1d51c60e03562985e0076036119ff5a1c
+checksum=2b10157b60ea08adc08e3896b4921c73fcadd5ec4eb652b29a34129d501e5ee0
python_version=3
post_install() {
From 52fe4cfeb5ba960f3862f21365c3d06db7bd957b Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 15:11:06 +0100
Subject: [PATCH 10/17] SPIRV-LLVM-Translator: update to 15.0.0
---
srcpkgs/SPIRV-LLVM-Translator/template | 13 +++++++------
1 file changed, 7 insertions(+), 6 deletions(-)
diff --git a/srcpkgs/SPIRV-LLVM-Translator/template b/srcpkgs/SPIRV-LLVM-Translator/template
index a2754e58c0e8..bee99f9bcbb2 100644
--- a/srcpkgs/SPIRV-LLVM-Translator/template
+++ b/srcpkgs/SPIRV-LLVM-Translator/template
@@ -1,19 +1,20 @@
# Template file for 'SPIRV-LLVM-Translator'
pkgname=SPIRV-LLVM-Translator
-version=12.0.0
-revision=2
+version=15.0.0
+revision=1
build_style=cmake
make_build_args="llvm-spirv"
configure_args="-Wno-dev -DLLVM_LINK_LLVM_DYLIB=ON -DCMAKE_SKIP_RPATH=ON
- -DLLVM_SPIRV_INCLUDE_TESTS=OFF -DBUILD_SHARED_LIBS=ON"
+ -DLLVM_SPIRV_INCLUDE_TESTS=OFF -DBUILD_SHARED_LIBS=ON
+ -DLLVM_EXTERNAL_SPIRV_HEADERS_SOURCE_DIR=/usr"
hostmakedepends="clang llvm"
-makedepends="clang-tools-extra llvm"
+makedepends="clang-tools-extra llvm SPIRV-Headers"
short_desc="API and commands for processing SPIR-V modules"
maintainer="Orphaned <orphan@voidlinux.org>"
license="NCSA"
homepage="https://github.com/KhronosGroup/SPIRV-LLVM-Translator"
-distfiles="https://github.com/KhronosGroup/${pkgname}/archive/refs/tags/v${version}.tar.gz"
-checksum=6e4fad04203f25fcde4c308c53e9f59bd05a390978992db3212d4b63aff62108
+distfiles="https://github.com/KhronosGroup/SPIRV-LLVM-Translator/archive/refs/tags/v${version}.tar.gz"
+checksum=b1bebd77f72988758c00852e78c2ddc545815a612169a0cb377d021e2f846d88
post_install() {
vlicense LICENSE.TXT
From b36190b13690c53467460558f3682365e177ec72 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Fri, 6 Jan 2023 17:11:04 +0100
Subject: [PATCH 11/17] rtags: rebuild for llvm15
---
srcpkgs/rtags/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/rtags/template b/srcpkgs/rtags/template
index b496a1b0e721..9b161e690d76 100644
--- a/srcpkgs/rtags/template
+++ b/srcpkgs/rtags/template
@@ -1,7 +1,7 @@
# Template file for 'rtags'
pkgname=rtags
version=2.38
-revision=5
+revision=6
build_style=cmake
# Don't run tests in do_install, please.
configure_args="-DSKIP_CTEST=TRUE"
From 23cfbfe59ae4f227a5ed4a331b6b5674be26e8a1 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Fri, 6 Jan 2023 17:14:14 +0100
Subject: [PATCH 12/17] juCi++: rebuild for llvm15
---
srcpkgs/juCi++/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/juCi++/template b/srcpkgs/juCi++/template
index c1969237f11d..416bde7cc4d0 100644
--- a/srcpkgs/juCi++/template
+++ b/srcpkgs/juCi++/template
@@ -1,7 +1,7 @@
# Template file for 'juCi++'
pkgname=juCi++
version=1.7.2
-revision=2
+revision=3
_libclangmm_commit="9704b9b6de0982a588fa41741157d5640afedf30"
_tiny_commit="839ff806dc447ff49af80f9a9eaa7949f770f8e5"
create_wrksrc=yes
From 98e49b931d6eceba0fd02f1dccedd018a3f39c5b Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Sat, 7 Jan 2023 11:31:14 +0100
Subject: [PATCH 13/17] qt5: rebuild for llvm15
---
srcpkgs/qt5/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/qt5/template b/srcpkgs/qt5/template
index f4f9f5b5344a..b517b49ead2d 100644
--- a/srcpkgs/qt5/template
+++ b/srcpkgs/qt5/template
@@ -5,7 +5,7 @@ pkgname=qt5
version=5.15.7+20221119
# commit f8c9fb304bc3e53b3aa07f962cd74e9160decccc
# base repo: https://invent.kde.org/qt/qt/qt5
-revision=1
+revision=2
build_style=meta
hostmakedepends="cmake clang flex perl glib-devel pkg-config
python re2c ruby which"
From fa7cfdd6ee61f602031d23dfc1bfbffad5d4f87e Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Mon, 9 Jan 2023 01:22:18 +0100
Subject: [PATCH 14/17] codelite: rebuild for llvm15
---
srcpkgs/codelite/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/codelite/template b/srcpkgs/codelite/template
index 6b8b007c8a43..c6115e0274ce 100644
--- a/srcpkgs/codelite/template
+++ b/srcpkgs/codelite/template
@@ -1,7 +1,7 @@
# Template file for 'codelite'
pkgname=codelite
version=16.0.0
-revision=2
+revision=3
create_wrksrc=yes
build_style=cmake
build_helper=cmake-wxWidgets-gtk3
From 5f9ea31f680ccd431088b2562ad08dde2265e0ea Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Mon, 9 Jan 2023 01:58:21 +0100
Subject: [PATCH 15/17] kdevelop: rebuild for llvm15
---
srcpkgs/kdevelop/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/kdevelop/template b/srcpkgs/kdevelop/template
index 5eb275583138..c32ee5240a44 100644
--- a/srcpkgs/kdevelop/template
+++ b/srcpkgs/kdevelop/template
@@ -1,7 +1,7 @@
# Template file for 'kdevelop'
pkgname=kdevelop
version=22.12.1
-revision=1
+revision=2
build_style=cmake
configure_args="-DBUILD_TESTING=OFF"
hostmakedepends="extra-cmake-modules qt5-qmake qt5-host-tools qt5-tools
From 34d7c81e1cfc10e4d106ca997b8b25dc9f284e5a Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Mon, 16 Jan 2023 14:43:47 +0100
Subject: [PATCH 16/17] zig: update to 0.10.1
---
.../0001-std.build-fix-handling-of-Dcpu.patch | 48 -------------------
srcpkgs/zig/template | 10 ++--
2 files changed, 6 insertions(+), 52 deletions(-)
delete mode 100644 srcpkgs/zig/patches/0001-std.build-fix-handling-of-Dcpu.patch
diff --git a/srcpkgs/zig/patches/0001-std.build-fix-handling-of-Dcpu.patch b/srcpkgs/zig/patches/0001-std.build-fix-handling-of-Dcpu.patch
deleted file mode 100644
index 4101f24459bb..000000000000
--- a/srcpkgs/zig/patches/0001-std.build-fix-handling-of-Dcpu.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From 1e8cdace7ad324a42228aeb5cd6eb8dd15429413 Mon Sep 17 00:00:00 2001
-From: Isaac Freund <ifreund@ifreund.xyz>
-Date: Tue, 21 Sep 2021 21:06:10 +0200
-Subject: [PATCH] std.build: fix handling of -Dcpu
-
-Currently -Dcpu is completely ignored if -Dtarget isn't passed as well.
-Further, -Dcpu=baseline is ignored even if -Dtarget=native is passed.
-
-This patch fixes these 2 issues, always respecting the -Dcpu option if
-present.
----
- lib/std/build.zig | 13 +++++++------
- 1 file changed, 7 insertions(+), 6 deletions(-)
-
-diff --git a/lib/std/build.zig b/lib/std/build.zig
-index 9b7ebb1f4..e398529f9 100644
---- a/lib/std/build.zig
-+++ b/lib/std/build.zig
-@@ -685,7 +685,11 @@ pub const Builder = struct {
- );
- const mcpu = self.option([]const u8, "cpu", "Target CPU");
-
-- const triple = maybe_triple orelse return args.default_target;
-+ if (maybe_triple == null and mcpu == null) {
-+ return args.default_target;
-+ }
-+
-+ const triple = maybe_triple orelse "native";
-
- var diags: CrossTarget.ParseOptions.Diagnostics = .{};
- const selected_target = CrossTarget.parse(.{
-@@ -2451,11 +2455,8 @@ pub const LibExeObjStep = struct {
-
- if (populated_cpu_features.eql(cross.cpu.features)) {
- // The CPU name alone is sufficient.
-- // If it is the baseline CPU, no command line args are required.
-- if (cross.cpu.model != std.Target.Cpu.baseline(cross.cpu.arch).model) {
-- try zig_args.append("-mcpu");
-- try zig_args.append(cross.cpu.model.name);
-- }
-+ try zig_args.append("-mcpu");
-+ try zig_args.append(cross.cpu.model.name);
- } else {
- var mcpu_buffer = std.ArrayList(u8).init(builder.allocator);
-
---
-2.33.1
-
diff --git a/srcpkgs/zig/template b/srcpkgs/zig/template
index 728c5a64e9df..9807f7ab206b 100644
--- a/srcpkgs/zig/template
+++ b/srcpkgs/zig/template
@@ -1,17 +1,19 @@
# Template file for 'zig'
pkgname=zig
-version=0.8.1
-revision=2
+version=0.10.1
+revision=1
archs="x86_64* aarch64*"
build_style=cmake
make_cmd=make
-makedepends="clang llvm12 lld-devel"
+# we add xml2, zstd, zlib and ncurses
+# because our lld is static-only and requires those to work
+makedepends="clang llvm15 lld-devel libxml2-devel libzstd-devel ncurses-devel zlib-devel"
short_desc="Programming language designed for robustness, optimality, and clarity"
maintainer="Isaac Freund <mail@isaacfreund.com>"
license="MIT"
homepage="https://ziglang.org"
distfiles="https://ziglang.org/download/${version}/zig-${version}.tar.xz"
-checksum=8c428e14a0a89cb7a15a6768424a37442292858cdb695e2eb503fa3c7bf47f1a
+checksum=69459bc804333df077d441ef052ffa143d53012b655a51f04cfef1414c04168c
nopie=yes
nocross=yes
From d7e40e38e90b7f69c1a2820063e74f834e109146 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Tue, 24 Jan 2023 14:03:51 +0100
Subject: [PATCH 17/17] river: update to 0.2.3
---
...ble-PIE-for-river-riverctl-rivertile.patch | 42 -------------------
srcpkgs/river/template | 10 ++---
2 files changed, 5 insertions(+), 47 deletions(-)
delete mode 100644 srcpkgs/river/patches/0001-Enable-PIE-for-river-riverctl-rivertile.patch
diff --git a/srcpkgs/river/patches/0001-Enable-PIE-for-river-riverctl-rivertile.patch b/srcpkgs/river/patches/0001-Enable-PIE-for-river-riverctl-rivertile.patch
deleted file mode 100644
index ecc68302db09..000000000000
--- a/srcpkgs/river/patches/0001-Enable-PIE-for-river-riverctl-rivertile.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From 759c1c7a915083f3da46960ff82fa2a3566a7065 Mon Sep 17 00:00:00 2001
-From: Isaac Freund <mail@isaacfreund.com>
-Date: Wed, 3 Nov 2021 14:21:35 +0100
-Subject: [PATCH] Enable PIE for river, riverctl, rivertile
-
-There is sadly not yet a standard way to do this exposed by the zig
-build system. See: https://github.com/ziglang/zig/issues/7201
----
- build.zig | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/build.zig b/build.zig
-index d561f49..8ac9a4e 100644
---- a/build.zig
-+++ b/build.zig
-@@ -85,6 +85,7 @@ pub fn build(b: *zbs.Builder) !void {
- const river = b.addExecutable("river", "river/main.zig");
- river.setTarget(target);
- river.setBuildMode(mode);
-+ river.pie = true;
- river.addBuildOption(bool, "xwayland", xwayland);
- river.addBuildOption([:0]const u8, "version", full_version);
-
-@@ -97,6 +98,7 @@ pub fn build(b: *zbs.Builder) !void {
- const riverctl = b.addExecutable("riverctl", "riverctl/main.zig");
- riverctl.setTarget(target);
- riverctl.setBuildMode(mode);
-+ riverctl.pie = true;
- riverctl.addBuildOption([:0]const u8, "version", full_version);
-
- riverctl.step.dependOn(&scanner.step);
-@@ -114,6 +116,7 @@ pub fn build(b: *zbs.Builder) !void {
- const rivertile = b.addExecutable("rivertile", "rivertile/main.zig");
- rivertile.setTarget(target);
- rivertile.setBuildMode(mode);
-+ rivertile.pie = true;
- rivertile.addBuildOption([:0]const u8, "version", full_version);
-
- rivertile.step.dependOn(&scanner.step);
---
-2.33.1
-
diff --git a/srcpkgs/river/template b/srcpkgs/river/template
index 3906858d507e..431aa4bd8e8e 100644
--- a/srcpkgs/river/template
+++ b/srcpkgs/river/template
@@ -1,18 +1,18 @@
# Template file for 'river'
pkgname=river
-version=0.1.1
-revision=2
+version=0.2.3
+revision=1
build_style=zig-build
-configure_args="$(vopt_if xwayland -Dxwayland)"
+configure_args="$(vopt_if xwayland -Dxwayland) -Dpie"
hostmakedepends="pkg-config wayland-devel scdoc"
-makedepends="wlroots0.15-devel libevdev-devel"
+makedepends="wlroots-devel libevdev-devel"
depends="$(vopt_if xwayland xorg-server-xwayland)"
short_desc="Dynamic tiling Wayland compositor"
maintainer="Isaac Freund <mail@isaacfreund.com>"
license="GPL-3.0-or-later"
homepage="https://github.com/riverwm/river"
distfiles="${homepage}/releases/download/v${version}/river-${version}.tar.gz"
-checksum=2a0bcd4670ed9ebd39c279f2bf10803fc65c9f3ee2307ce40728df23ce914d18
+checksum=7acdd2b929e16a20006b4baf1f29e7a8dc7f70cf5747e1503a610a90d1637132
build_options="xwayland"
build_options_default="xwayland"
^ permalink raw reply [flat|nested] 96+ messages in thread
* Re: [PR PATCH] [Updated] [WIP] LLVM 15
2022-11-28 15:30 [PR PATCH] [WIP] LLVM 15 tranzystorek-io
` (57 preceding siblings ...)
2023-02-07 9:14 ` tranzystorek-io
@ 2023-02-10 14:20 ` tranzystorek-io
2023-02-10 14:49 ` oreo639
` (35 subsequent siblings)
94 siblings, 0 replies; 96+ messages in thread
From: tranzystorek-io @ 2023-02-10 14:20 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 1154 bytes --]
There is an updated pull request by tranzystorek-io against master on the void-packages repository
https://github.com/tranzystorek-io/void-packages llvm15
https://github.com/void-linux/void-packages/pull/40821
[WIP] LLVM 15
[ci skip]
TODO:
- [ ] Adjust patches marked as `.patch.skip`
- [x] Make libomp a shlib (change so file name and install a symlink)
- [x] Avoid creating triplet dirs under /usr/
TODO LLVM rdeps:
- [ ] clazy (breaking changes in clang API)
- [x] beignet (https://github.com/void-linux/void-packages/pull/41529)
- [ ] ispc (1.18.1 supports LLVM `<= 14`)
- [ ] ldc (1.30.0 supports LLVM `<= 14`)
- [ ] ghdl (2.0.0 supports LLVM `<= 14`)
- [x] qt
- [ ] qtcreator (breaking changes in clang-format API)
- [ ] shiboken2 (tests failing with llvm15)
- [x] bpftrace (https://github.com/void-linux/void-packages/pull/39002)
- [ ] libclc (tests fail with unresolved calls https://gist.githubusercontent.com/tranzystorek-io/a2aa8a0d8010af5299f7d1ff9f82c22b/raw/6d316d99d6079990b73ae77d274dd120b9560589/LastTest.log)
- [x] zig
A patch file from https://github.com/void-linux/void-packages/pull/40821.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-llvm15-40821.patch --]
[-- Type: text/x-diff, Size: 84869 bytes --]
From fb0c52ffe973a6110b9bf45c87af5b24386fb919 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Sun, 18 Dec 2022 00:36:59 +0100
Subject: [PATCH 01/17] New package: llvm15-15.0.7
---
common/shlibs | 3 +
srcpkgs/libllvm15 | 1 +
.../llvm15/files/llvm-Config-llvm-config.h | 9 +
...clang-001-fix-unwind-chain-inclusion.patch | 44 ++
.../patches/clang-002-add-musl-triples.patch | 115 +++++
.../clang-003-ppc64-dynamic-linker-path.patch | 13 +
.../patches/clang-004-ppc64-musl-elfv2.patch | 48 ++
.../compiler-rt-sanitizer-ppc64-musl.patch | 35 ++
.../compiler-rt-xray-ppc64-musl.patch.skip | 62 +++
srcpkgs/llvm15/patches/libcxx-musl.patch | 26 ++
srcpkgs/llvm15/patches/libcxx-ppc.patch | 22 +
.../llvm15/patches/libcxx-ssp-nonshared.patch | 11 +
srcpkgs/llvm15/patches/libcxxabi-dl.patch | 25 +
srcpkgs/llvm15/patches/libcxxabi-musl.patch | 37 ++
srcpkgs/llvm15/patches/libomp-soname.patch | 12 +
.../llvm15/patches/libunwind-ppc32.patch.skip | 63 +++
srcpkgs/llvm15/patches/lldb-musl.patch | 40 ++
srcpkgs/llvm15/patches/llvm-001-musl.patch | 57 +++
.../patches/llvm-002-musl-ppc64-elfv2.patch | 30 ++
.../patches/llvm-003-ppc-secureplt.patch | 11 +
.../patches/llvm-004-override-opt.patch | 18 +
.../llvm15/patches/llvm-005-ppc-bigpic.patch | 36 ++
.../patches/llvm-006-aarch64-mf_exec.patch | 25 +
srcpkgs/llvm15/template | 442 ++++++++++++++++++
srcpkgs/llvm15/update | 3 +
25 files changed, 1188 insertions(+)
create mode 120000 srcpkgs/libllvm15
create mode 100644 srcpkgs/llvm15/files/llvm-Config-llvm-config.h
create mode 100644 srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch
create mode 100644 srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch
create mode 100644 srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch
create mode 100644 srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch
create mode 100644 srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch
create mode 100644 srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip
create mode 100644 srcpkgs/llvm15/patches/libcxx-musl.patch
create mode 100644 srcpkgs/llvm15/patches/libcxx-ppc.patch
create mode 100644 srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch
create mode 100644 srcpkgs/llvm15/patches/libcxxabi-dl.patch
create mode 100644 srcpkgs/llvm15/patches/libcxxabi-musl.patch
create mode 100644 srcpkgs/llvm15/patches/libomp-soname.patch
create mode 100644 srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip
create mode 100644 srcpkgs/llvm15/patches/lldb-musl.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-001-musl.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-004-override-opt.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch
create mode 100644 srcpkgs/llvm15/template
create mode 100644 srcpkgs/llvm15/update
diff --git a/common/shlibs b/common/shlibs
index 504d29f4cb98..7c1c48c61065 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -992,6 +992,9 @@ libclang.so.12 libclang-12.0.0_1
libclang-cpp.so.12 libclang-cpp-12.0.0_1
libLLVM-11.so libllvm11-11.0.0_1
libLLVM-12.so libllvm12-12.0.0_1
+libLLVM-15.so libllvm15-15.0.7_1
+libomp.so.5 libomp-15.0.7_1
+libomptarget.so.15 libomp-15.0.7_1
libisofs.so.6 libisofs-0.6.24_1
libmpack.so.0 libmpack-1.0.5_1
libGeoIP.so.1 libgeoip-1.4.8_1
diff --git a/srcpkgs/libllvm15 b/srcpkgs/libllvm15
new file mode 120000
index 000000000000..ad57a969b9f9
--- /dev/null
+++ b/srcpkgs/libllvm15
@@ -0,0 +1 @@
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm15/files/llvm-Config-llvm-config.h b/srcpkgs/llvm15/files/llvm-Config-llvm-config.h
new file mode 100644
index 000000000000..2fa08c9be696
--- /dev/null
+++ b/srcpkgs/llvm15/files/llvm-Config-llvm-config.h
@@ -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
diff --git a/srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch b/srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch
new file mode 100644
index 000000000000..e4eaa7783e7a
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch
@@ -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
diff --git a/srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch b/srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch
new file mode 100644
index 000000000000..0ef4c7e75d6b
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch
@@ -0,0 +1,115 @@
+--- a/clang/lib/Driver/ToolChains/Gnu.cpp
++++ b/clang/lib/Driver/ToolChains/Gnu.cpp
+@@ -2086,7 +2086,8 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
+ static const char *const ARMHFTriples[] = {"arm-linux-gnueabihf",
+ "armv7hl-redhat-linux-gnueabi",
+ "armv6hl-suse-linux-gnueabi",
+- "armv7hl-suse-linux-gnueabi"};
++ "armv7hl-suse-linux-gnueabi",
++ "armv7l-linux-gnueabihf"};
+ static const char *const ARMebLibDirs[] = {"/lib"};
+ static const char *const ARMebTriples[] = {"armeb-linux-gnueabi",
+ "armeb-linux-androideabi"};
+@@ -2153,8 +2154,7 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
+ "powerpc64-suse-linux", "powerpc-montavista-linuxspe"};
+ static const char *const PPCLELibDirs[] = {"/lib32", "/lib"};
+ static const char *const PPCLETriples[] = {"powerpcle-linux-gnu",
+- "powerpcle-unknown-linux-gnu",
+- "powerpcle-linux-musl"};
++ "powerpcle-unknown-linux-gnu"};
+
+ static const char *const PPC64LibDirs[] = {"/lib64", "/lib"};
+ static const char *const PPC64Triples[] = {
+@@ -2235,6 +2235,92 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
+ return;
+ }
+
++ if (TargetTriple.isMusl()) {
++ static const char *const AArch64MuslTriples[] = {"aarch64-linux-musl"};
++ static const char *const ARMHFMuslTriples[] = {
++ "arm-linux-musleabihf", "armv7l-linux-musleabihf"
++ };
++ static const char *const ARMMuslTriples[] = {"arm-linux-musleabi"};
++ static const char *const X86_64MuslTriples[] = {"x86_64-linux-musl"};
++ static const char *const X86MuslTriples[] = {"i686-linux-musl"};
++ static const char *const MIPSMuslTriples[] = {
++ "mips-linux-musl", "mipsel-linux-musl",
++ "mipsel-linux-muslhf", "mips-linux-muslhf"
++ };
++ static const char *const PPCMuslTriples[] = {"powerpc-linux-musl"};
++ static const char *const PPCLEMuslTriples[] = {"powerpcle-linux-musl"};
++ static const char *const PPC64MuslTriples[] = {"powerpc64-linux-musl"};
++ static const char *const PPC64LEMuslTriples[] = {"powerpc64le-linux-musl"};
++ static const char *const RISCV64MuslTriples[] = {"riscv64-linux-musl"};
++
++ switch (TargetTriple.getArch()) {
++ case llvm::Triple::aarch64:
++ LibDirs.append(begin(AArch64LibDirs), end(AArch64LibDirs));
++ TripleAliases.append(begin(AArch64MuslTriples), end(AArch64MuslTriples));
++ BiarchLibDirs.append(begin(AArch64LibDirs), end(AArch64LibDirs));
++ BiarchTripleAliases.append(begin(AArch64MuslTriples), end(AArch64MuslTriples));
++ break;
++ case llvm::Triple::arm:
++ LibDirs.append(begin(ARMLibDirs), end(ARMLibDirs));
++ if (TargetTriple.getEnvironment() == llvm::Triple::MuslEABIHF) {
++ TripleAliases.append(begin(ARMHFMuslTriples), end(ARMHFMuslTriples));
++ } else {
++ TripleAliases.append(begin(ARMMuslTriples), end(ARMMuslTriples));
++ }
++ break;
++ case llvm::Triple::x86_64:
++ LibDirs.append(begin(X86_64LibDirs), end(X86_64LibDirs));
++ TripleAliases.append(begin(X86_64MuslTriples), end(X86_64MuslTriples));
++ BiarchLibDirs.append(begin(X86LibDirs), end(X86LibDirs));
++ BiarchTripleAliases.append(begin(X86MuslTriples), end(X86MuslTriples));
++ break;
++ case llvm::Triple::x86:
++ LibDirs.append(begin(X86LibDirs), end(X86LibDirs));
++ TripleAliases.append(begin(X86MuslTriples), end(X86MuslTriples));
++ BiarchLibDirs.append(begin(X86_64LibDirs), end(X86_64LibDirs));
++ BiarchTripleAliases.append(begin(X86_64MuslTriples), end(X86_64MuslTriples));
++ break;
++ case llvm::Triple::mips:
++ LibDirs.append(begin(MIPSLibDirs), end(MIPSLibDirs));
++ TripleAliases.append(begin(MIPSMuslTriples), end(MIPSMuslTriples));
++ break;
++ case llvm::Triple::ppc:
++ LibDirs.append(begin(PPCLibDirs), end(PPCLibDirs));
++ TripleAliases.append(begin(PPCMuslTriples), end(PPCMuslTriples));
++ BiarchLibDirs.append(begin(PPC64LibDirs), end(PPC64LibDirs));
++ BiarchTripleAliases.append(begin(PPC64MuslTriples), end(PPC64MuslTriples));
++ break;
++ case llvm::Triple::ppcle:
++ LibDirs.append(begin(PPCLELibDirs), end(PPCLELibDirs));
++ TripleAliases.append(begin(PPCLEMuslTriples), end(PPCLEMuslTriples));
++ BiarchLibDirs.append(begin(PPC64LELibDirs), end(PPC64LELibDirs));
++ BiarchTripleAliases.append(begin(PPC64LEMuslTriples), end(PPC64LEMuslTriples));
++ break;
++ case llvm::Triple::ppc64:
++ LibDirs.append(begin(PPC64LibDirs), end(PPC64LibDirs));
++ TripleAliases.append(begin(PPC64MuslTriples), end(PPC64MuslTriples));
++ BiarchLibDirs.append(begin(PPCLibDirs), end(PPCLibDirs));
++ BiarchTripleAliases.append(begin(PPCMuslTriples), end(PPCMuslTriples));
++ break;
++ case llvm::Triple::ppc64le:
++ LibDirs.append(begin(PPC64LELibDirs), end(PPC64LELibDirs));
++ TripleAliases.append(begin(PPC64LEMuslTriples), end(PPC64LEMuslTriples));
++ BiarchLibDirs.append(begin(PPCLELibDirs), end(PPCLELibDirs));
++ BiarchTripleAliases.append(begin(PPCLEMuslTriples), end(PPCLEMuslTriples));
++ break;
++ case llvm::Triple::riscv64:
++ LibDirs.append(begin(RISCV64LibDirs), end(RISCV64LibDirs));
++ TripleAliases.append(begin(RISCV64MuslTriples), end(RISCV64MuslTriples));
++ break;
++ default:
++ break;
++ }
++ TripleAliases.push_back(TargetTriple.str());
++ if (TargetTriple.str() != BiarchTriple.str())
++ BiarchTripleAliases.push_back(BiarchTriple.str());
++ return;
++ }
++
+ // Android targets should not use GNU/Linux tools or libraries.
+ if (TargetTriple.isAndroid()) {
+ static const char *const AArch64AndroidTriples[] = {
diff --git a/srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch b/srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch
new file mode 100644
index 000000000000..4ad6412d1e6c
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch
@@ -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 =
diff --git a/srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch b/srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch
new file mode 100644
index 000000000000..21fc8003c5f1
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch
@@ -0,0 +1,48 @@
+--- a/clang/lib/Basic/Targets/PPC.h
++++ b/clang/lib/Basic/Targets/PPC.h
+@@ -415,11 +415,10 @@ public:
+ LongDoubleFormat = &llvm::APFloat::IEEEdouble();
+ } else if ((Triple.getArch() == llvm::Triple::ppc64le)) {
+ DataLayout = "e-m:e-i64:64-n32:64";
+- ABI = "elfv2";
+ } else {
+ DataLayout = "E-m:e-i64:64-n32:64";
+- ABI = "elfv1";
+ }
++ ABI = "elfv2";
+
+ if (Triple.isOSFreeBSD() || Triple.isOSOpenBSD() || Triple.isMusl()) {
+ LongDoubleWidth = LongDoubleAlign = 64;
+--- a/clang/lib/CodeGen/TargetInfo.cpp
++++ b/clang/lib/CodeGen/TargetInfo.cpp
+@@ -10927,9 +10927,9 @@ const TargetCodeGenInfo &CodeGenModule::getTargetCodeGenInfo() {
+ return SetCGInfo(new AIXTargetCodeGenInfo(Types, /*Is64Bit*/ true));
+
+ if (Triple.isOSBinFormatELF()) {
+- PPC64_SVR4_ABIInfo::ABIKind Kind = PPC64_SVR4_ABIInfo::ELFv1;
+- if (getTarget().getABI() == "elfv2")
+- Kind = PPC64_SVR4_ABIInfo::ELFv2;
++ PPC64_SVR4_ABIInfo::ABIKind Kind = PPC64_SVR4_ABIInfo::ELFv2;
++ if (getTarget().getABI() == "elfv1")
++ Kind = PPC64_SVR4_ABIInfo::ELFv1;
+ bool IsSoftFloat = CodeGenOpts.FloatABI == "soft";
+
+ return SetCGInfo(
+--- a/clang/lib/Driver/ToolChains/Clang.cpp
++++ b/clang/lib/Driver/ToolChains/Clang.cpp
+@@ -1920,14 +1920,7 @@ void Clang::AddPPCTargetArgs(const ArgList &Args,
+ const llvm::Triple &T = getToolChain().getTriple();
+ if (T.isOSBinFormatELF()) {
+ switch (getToolChain().getArch()) {
+- case llvm::Triple::ppc64: {
+- if ((T.isOSFreeBSD() && T.getOSMajorVersion() >= 13) ||
+- T.isOSOpenBSD() || T.isMusl())
+- ABIName = "elfv2";
+- else
+- ABIName = "elfv1";
+- break;
+- }
++ case llvm::Triple::ppc64:
+ case llvm::Triple::ppc64le:
+ ABIName = "elfv2";
+ break;
diff --git a/srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch b/srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch
new file mode 100644
index 000000000000..360cfc1ba7f1
--- /dev/null
+++ b/srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch
@@ -0,0 +1,35 @@
+--- 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__) || SANITIZER_RISCV64
++ defined(__hexagon__) || defined(__powerpc__) || 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_ANDROID
++#if (defined(__aarch64__) || defined(__powerpc__) || SANITIZER_RISCV64) && !SANITIZER_ANDROID
+ // GLIBC 2.20+ sys/user does not include asm/ptrace.h
+ # include <asm/ptrace.h>
+ #endif
diff --git a/srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip b/srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip
new file mode 100644
index 000000000000..d0b61c80c897
--- /dev/null
+++ b/srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip
@@ -0,0 +1,62 @@
+--- a/compiler-rt/lib/xray/xray_powerpc64.inc
++++ b/compiler-rt/lib/xray/xray_powerpc64.inc
+@@ -12,7 +12,13 @@
+
+ #include <cstdint>
+ #include <mutex>
++#ifdef __GLIBC__
+ #include <sys/platform/ppc.h>
++#else
++#include <cctype>
++#include <cstring>
++#include <cstdlib>
++#endif
+
+ #include "xray_defs.h"
+
+@@ -20,13 +26,45 @@ namespace __xray {
+
+ ALWAYS_INLINE uint64_t readTSC(uint8_t &CPU) XRAY_NEVER_INSTRUMENT {
+ CPU = 0;
++#ifdef __GLIBC__
+ return __ppc_get_timebase();
++#else
++ return __builtin_ppc_get_timebase();
++#endif
+ }
+
+ inline uint64_t getTSCFrequency() XRAY_NEVER_INSTRUMENT {
+ static std::mutex M;
+ std::lock_guard<std::mutex> Guard(M);
++#ifdef __GLIBC__
+ return __ppc_get_timebase_freq();
++#else
++ /* FIXME: a less dirty implementation? */
++ static uint64_t base;
++ if (!base) {
++ FILE *f = fopen("/proc/cpuinfo", "rb");
++ if (f) {
++ ssize_t nr;
++ /* virtually always big enough to hold the line */
++ char buf[512];
++ while (fgets(buf, sizeof(buf), f)) {
++ char *ret = strstr(buf, "timebase");
++ if (!ret) {
++ continue;
++ }
++ ret += sizeof("timebase") - 1;
++ ret = strchr(ret, ':');
++ if (!ret) {
++ continue;
++ }
++ base = strtoul(ret + 1, nullptr, 10);
++ break;
++ }
++ fclose(f);
++ }
++ }
++ return base;
++#endif
+ }
+
+ inline bool probeRequiredCPUFeatures() XRAY_NEVER_INSTRUMENT {
diff --git a/srcpkgs/llvm15/patches/libcxx-musl.patch b/srcpkgs/llvm15/patches/libcxx-musl.patch
new file mode 100644
index 000000000000..bbd31ffc2cb1
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxx-musl.patch
@@ -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,
+ typename remove_reference<decltype(errno)>::type __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
+ typename remove_reference<decltype(errno)>::type __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,
+ typename remove_reference<decltype(errno)>::type __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
+ typename remove_reference<decltype(errno)>::type __current_errno = errno;
+ if (__current_errno == 0)
+ errno = __save_errno;
diff --git a/srcpkgs/llvm15/patches/libcxx-ppc.patch b/srcpkgs/llvm15/patches/libcxx-ppc.patch
new file mode 100644
index 000000000000..7a92f8004e1c
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxx-ppc.patch
@@ -0,0 +1,22 @@
+This ensures `is_iec559` is defined correctly under all long double ABIs,
+including musl and its 64-bit long double. Also, `__ppc__` or `__ppc64__`
+is not defined on gcc.
+
+--- a/libcxx/include/limits
++++ b/libcxx/include/limits
+@@ -426,8 +426,14 @@ protected:
+ _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type signaling_NaN() _NOEXCEPT {return __builtin_nansl("");}
+ _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type denorm_min() _NOEXCEPT {return __LDBL_DENORM_MIN__;}
+
+-#if (defined(__ppc__) || defined(__ppc64__))
++#if defined(__powerpc__) || defined(__powerpc64__)
++#if (__LDBL_MAX_EXP__ > __DBL_MAX_EXP__) || (__LDBL_MANT_DIG__ == __DBL_MANT_DIG__)
++ /* IEEE 754 quadruple or double precision */
++ static _LIBCPP_CONSTEXPR const bool is_iec559 = true;
++#else
++ /* 128-bit IBM double-double */
+ static _LIBCPP_CONSTEXPR const bool is_iec559 = false;
++#endif
+ #else
+ static _LIBCPP_CONSTEXPR const bool is_iec559 = true;
+ #endif
diff --git a/srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch b/srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch
new file mode 100644
index 000000000000..70292beb2fcd
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch
@@ -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()
diff --git a/srcpkgs/llvm15/patches/libcxxabi-dl.patch b/srcpkgs/llvm15/patches/libcxxabi-dl.patch
new file mode 100644
index 000000000000..3a15f9db8c98
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxxabi-dl.patch
@@ -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 @@
+ target_link_libraries(${target} PRIVATE m)
+ endif()
+
++ if (LIBCXX_HAS_C_LIB)
++ target_link_libraries(${target} PRIVATE dl)
++ endif()
++
+ if (LIBCXX_HAS_RT_LIB)
+ target_link_libraries(${target} PRIVATE rt)
+ endif()
diff --git a/srcpkgs/llvm15/patches/libcxxabi-musl.patch b/srcpkgs/llvm15/patches/libcxxabi-musl.patch
new file mode 100644
index 000000000000..55bf6f5aaa08
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxxabi-musl.patch
@@ -0,0 +1,37 @@
+diff --git a/libcxx/include/__support/musl/xlocale.h b/libcxx/include/__support/musl/xlocale.h
+index e674a41fa..f546119b9 100644
+--- a/libcxx/include/__support/musl/xlocale.h
++++ b/libcxx/include/__support/musl/xlocale.h
+@@ -24,27 +24,27 @@
+ extern "C" {
+ #endif
+
+-inline _LIBCPP_HIDE_FROM_ABI long long
++static inline long long
+ strtoll_l(const char *__nptr, char **__endptr, int __base, locale_t) {
+ return ::strtoll(__nptr, __endptr, __base);
+ }
+
+-inline _LIBCPP_HIDE_FROM_ABI unsigned long long
++static inline unsigned long long
+ strtoull_l(const char *__nptr, char **__endptr, int __base, locale_t) {
+ return ::strtoull(__nptr, __endptr, __base);
+ }
+
+-inline _LIBCPP_HIDE_FROM_ABI long long
++static inline long long
+ wcstoll_l(const wchar_t *__nptr, wchar_t **__endptr, int __base, locale_t) {
+ return ::wcstoll(__nptr, __endptr, __base);
+ }
+
+-inline _LIBCPP_HIDE_FROM_ABI unsigned long long
++static inline unsigned long long
+ wcstoull_l(const wchar_t *__nptr, wchar_t **__endptr, int __base, locale_t) {
+ return ::wcstoull(__nptr, __endptr, __base);
+ }
+
+-inline _LIBCPP_HIDE_FROM_ABI long double
++static inline long double
+ wcstold_l(const wchar_t *__nptr, wchar_t **__endptr, locale_t) {
+ return ::wcstold(__nptr, __endptr);
+ }
diff --git a/srcpkgs/llvm15/patches/libomp-soname.patch b/srcpkgs/llvm15/patches/libomp-soname.patch
new file mode 100644
index 000000000000..9a622cd9254c
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libomp-soname.patch
@@ -0,0 +1,12 @@
+diff --git a/openmp/runtime/src/CMakeLists.txt b/openmp/runtime/src/CMakeLists.txt
+index df1ca9d90..9d2c3b7b9 100644
+--- a/openmp/runtime/src/CMakeLists.txt
++++ b/openmp/runtime/src/CMakeLists.txt
+@@ -150,6 +150,7 @@ libomp_get_libflags(LIBOMP_CONFIGURED_LIBFLAGS)
+ # Build libomp library. Add LLVMSupport dependency if building in-tree with libomptarget profiling enabled.
+ if(OPENMP_STANDALONE_BUILD OR (NOT OPENMP_ENABLE_LIBOMP_PROFILING))
+ add_library(omp ${LIBOMP_LIBRARY_KIND} ${LIBOMP_SOURCE_FILES})
++ set_target_properties(omp PROPERTIES VERSION ${LIBOMP_VERSION_MAJOR} SOVERSION ${LIBOMP_VERSION_MAJOR})
+ # Linking command will include libraries in LIBOMP_CONFIGURED_LIBFLAGS
+ target_link_libraries(omp ${LIBOMP_CONFIGURED_LIBFLAGS} ${LIBOMP_DL_LIBS})
+ else()
diff --git a/srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip b/srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip
new file mode 100644
index 000000000000..74aa7576ecf9
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip
@@ -0,0 +1,63 @@
+This fixes build at least with gcc9 which does not define `__ppc__`.
+
+--- a/libunwind/include/__libunwind_config.h
++++ b/libunwind/include/__libunwind_config.h
+@@ -49,7 +49,7 @@
+ # define _LIBUNWIND_CONTEXT_SIZE 167
+ # define _LIBUNWIND_CURSOR_SIZE 179
+ # define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_PPC64
+-# elif defined(__ppc__)
++# elif defined(__powerpc__)
+ # define _LIBUNWIND_TARGET_PPC 1
+ # define _LIBUNWIND_CONTEXT_SIZE 117
+ # define _LIBUNWIND_CURSOR_SIZE 124
+--- a/libunwind/src/UnwindRegistersRestore.S
++++ b/libunwind/src/UnwindRegistersRestore.S
+@@ -392,7 +392,7 @@ Lnovec:
+ PPC64_LR(3)
+ bctr
+
+-#elif defined(__ppc__)
++#elif defined(__powerpc__)
+
+ DEFINE_LIBUNWIND_FUNCTION(_ZN9libunwind13Registers_ppc6jumptoEv)
+ //
+--- a/libunwind/src/UnwindRegistersSave.S
++++ b/libunwind/src/UnwindRegistersSave.S
+@@ -554,7 +554,7 @@ DEFINE_LIBUNWIND_FUNCTION(__unw_getcontext)
+ blr
+
+
+-#elif defined(__ppc__)
++#elif defined(__powerpc__)
+
+ //
+ // extern int unw_getcontext(unw_context_t* thread_state)
+--- a/libunwind/src/config.h
++++ b/libunwind/src/config.h
+@@ -95,12 +95,12 @@
+ #define _LIBUNWIND_BUILD_SJLJ_APIS
+ #endif
+
+-#if defined(__i386__) || defined(__x86_64__) || defined(__ppc__) || defined(__ppc64__) || defined(__powerpc64__)
++#if defined(__i386__) || defined(__x86_64__) || defined(__powerpc__) || defined(__powerpc64__)
+ #define _LIBUNWIND_SUPPORT_FRAME_APIS
+ #endif
+
+ #if defined(__i386__) || defined(__x86_64__) || \
+- defined(__ppc__) || defined(__ppc64__) || defined(__powerpc64__) || \
++ defined(__powerpc__) || defined(__powerpc64__) || \
+ (!defined(__APPLE__) && defined(__arm__)) || \
+ (defined(__arm64__) || defined(__aarch64__)) || \
+ defined(__mips__)
+--- a/libunwind/src/libunwind.cpp
++++ b/libunwind/src/libunwind.cpp
+@@ -42,7 +42,7 @@ _LIBUNWIND_HIDDEN int __unw_init_local(unw_cursor_t *cursor,
+ # define REGISTER_KIND Registers_x86_64
+ #elif defined(__powerpc64__)
+ # define REGISTER_KIND Registers_ppc64
+-#elif defined(__ppc__)
++#elif defined(__powerpc__)
+ # define REGISTER_KIND Registers_ppc
+ #elif defined(__aarch64__)
+ # define REGISTER_KIND Registers_arm64
diff --git a/srcpkgs/llvm15/patches/lldb-musl.patch b/srcpkgs/llvm15/patches/lldb-musl.patch
new file mode 100644
index 000000000000..026c5e1e61ba
--- /dev/null
+++ b/srcpkgs/llvm15/patches/lldb-musl.patch
@@ -0,0 +1,40 @@
+--- a/lldb/source/Plugins/Process/Linux/Procfs.h
++++ b/lldb/source/Plugins/Process/Linux/Procfs.h
+@@ -10,6 +10,7 @@
+ // sys/procfs.h on Android/Linux for all supported architectures.
+
+ #include <sys/ptrace.h>
++#include <asm/ptrace.h>
+
+ #include "lldb/lldb-types.h"
+
+@@ -17,23 +18,13 @@
+
+ #include <vector>
+
+-#ifdef __ANDROID__
+-#if defined(__arm64__) || defined(__aarch64__)
+-typedef unsigned long elf_greg_t;
+-typedef elf_greg_t
+- elf_gregset_t[(sizeof(struct user_pt_regs) / sizeof(elf_greg_t))];
+-typedef struct user_fpsimd_state elf_fpregset_t;
+-#ifndef NT_FPREGSET
+-#define NT_FPREGSET NT_PRFPREG
+-#endif // NT_FPREGSET
+-#elif defined(__mips__)
+-#ifndef NT_FPREGSET
+-#define NT_FPREGSET NT_PRFPREG
+-#endif // NT_FPREGSET
+-#endif
+-#else // __ANDROID__
++#if !defined(__GLIBC__) && defined(__powerpc__)
++#define pt_regs musl_pt_regs
++#include <sys/procfs.h>
++#undef pt_regs
++#else
+ #include <sys/procfs.h>
+-#endif // __ANDROID__
++#endif
+
+ namespace lldb_private {
+ namespace process_linux {
diff --git a/srcpkgs/llvm15/patches/llvm-001-musl.patch b/srcpkgs/llvm15/patches/llvm-001-musl.patch
new file mode 100644
index 000000000000..f2a3f8d62813
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-001-musl.patch
@@ -0,0 +1,57 @@
+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;
+diff --git a/lib/Support/Unix/DynamicLibrary.inc b/lib/Support/Unix/DynamicLibrary.inc
+index a2a37996..2f86c470 100644
+--- a/llvm/lib/Support/Unix/DynamicLibrary.inc
++++ b/llvm/lib/Support/Unix/DynamicLibrary.inc
+@@ -102,7 +102,7 @@ static void *DoSearch(const char* SymbolName) {
+
+ // This macro returns the address of a well-known, explicit symbol
+ #define EXPLICIT_SYMBOL(SYM) \
+- if (!strcmp(SymbolName, #SYM)) return &SYM
++ if (!strcmp(SymbolName, #SYM)) return (void *)&SYM
+
+ // Under glibc we have a weird situation. The stderr/out/in symbols are both
+ // macros and global variables because of standards requirements. So, we
+diff --git a/utils/unittest/googletest/src/gtest.cc b/utils/unittest/googletest/src/gtest.cc
+index d882ab2e..f1fb12d0 100644
+--- a/llvm/utils/unittest/googletest/src/gtest.cc
++++ b/llvm/utils/unittest/googletest/src/gtest.cc
+@@ -128,6 +128,7 @@
+
+ #if GTEST_CAN_STREAM_RESULTS_
+ # include <arpa/inet.h> // NOLINT
++# include <sys/socket.h> // NOLINT
+ # include <netdb.h> // NOLINT
+ # include <sys/socket.h> // NOLINT
+ # include <sys/types.h> // NOLINT
diff --git a/srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch b/srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch
new file mode 100644
index 000000000000..0071d964bd37
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch
@@ -0,0 +1,30 @@
+This patches LLVM to use ELFv2 on ppc64 unconditionally unless overridden. We
+need this because unlike most distros we use ELFv2 for both glibc and musl
+on big endian ppc64.
+
+diff --git a/lib/Target/PowerPC/PPCTargetMachine.cpp b/lib/Target/PowerPC/PPCTargetMachine.cpp
+index 0634833e..b7cbc2e7 100644
+--- a/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp
++++ b/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp
+@@ -222,9 +222,8 @@ static PPCTargetMachine::PPCABI computeTargetABI(const Triple &TT,
+
+ switch (TT.getArch()) {
+ case Triple::ppc64le:
+- return PPCTargetMachine::PPC_ABI_ELFv2;
+ case Triple::ppc64:
+- return PPCTargetMachine::PPC_ABI_ELFv1;
++ return PPCTargetMachine::PPC_ABI_ELFv2;
+ default:
+ return PPCTargetMachine::PPC_ABI_UNKNOWN;
+ }
+diff --git a/test/CodeGen/PowerPC/ppc64-elf-abi.ll b/test/CodeGen/PowerPC/ppc64-elf-abi.ll
+index 8b1cf6b5..296a2afa 100644
+--- a/llvm/test/CodeGen/PowerPC/ppc64-elf-abi.ll
++++ b/llvm/test/CodeGen/PowerPC/ppc64-elf-abi.ll
+@@ -1,4 +1,5 @@
+-; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv1
++; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv2
++; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-musl < %s | FileCheck %s -check-prefix=CHECK-ELFv2
+ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu -target-abi elfv1 < %s | FileCheck %s -check-prefix=CHECK-ELFv1
+ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu -target-abi elfv2 < %s | FileCheck %s -check-prefix=CHECK-ELFv2
+ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv2
diff --git a/srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch b/srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch
new file mode 100644
index 000000000000..b5d15974375d
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch
@@ -0,0 +1,11 @@
+--- a/llvm/lib/Target/PowerPC/PPCSubtarget.cpp
++++ b/llvm/lib/Target/PowerPC/PPCSubtarget.cpp
+@@ -165,7 +165,7 @@ void PPCSubtarget::initSubtargetFeatures(StringRef CPU, StringRef FS) {
+
+ if ((TargetTriple.isOSFreeBSD() && TargetTriple.getOSMajorVersion() >= 13) ||
+ TargetTriple.isOSNetBSD() || TargetTriple.isOSOpenBSD() ||
+- TargetTriple.isMusl())
++ isTargetLinux())
+ SecurePlt = true;
+
+ if (HasSPE && IsPPC64)
diff --git a/srcpkgs/llvm15/patches/llvm-004-override-opt.patch b/srcpkgs/llvm15/patches/llvm-004-override-opt.patch
new file mode 100644
index 000000000000..51d0e4b31b32
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-004-override-opt.patch
@@ -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)
diff --git a/srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch b/srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch
new file mode 100644
index 000000000000..d332687b9d92
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch
@@ -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);
diff --git a/srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch b/srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch
new file mode 100644
index 000000000000..a00abd216665
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch
@@ -0,0 +1,25 @@
+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__) || defined (__ppc__) || \
+- defined(_POWER) || defined(_ARCH_PPC))
++ defined(_POWER) || defined(_ARCH_PPC) || (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
diff --git a/srcpkgs/llvm15/template b/srcpkgs/llvm15/template
new file mode 100644
index 000000000000..4d2777451e24
--- /dev/null
+++ b/srcpkgs/llvm15/template
@@ -0,0 +1,442 @@
+# Template file for 'llvm15'
+pkgname=llvm15
+version=15.0.7
+revision=1
+build_wrksrc=llvm
+build_style=cmake
+_ext_suffix=".cpython-${py3_ver/./}-linux-${XBPS_TARGET_LIBC/glibc/gnu}.so"
+configure_args="
+ -DCMAKE_BUILD_TYPE=Release -Wno-dev
+ -DENABLE_LINKER_BUILD_ID=YES
+ -DLLDB_USE_SYSTEM_SIX=YES
+ -DLIBCXX_CXX_ABI=libcxxabi
+ -DLIBCXX_ENABLE_STATIC_ABI_LIBRARY=YES
+ -DLIBCXXABI_USE_LLVM_UNWINDER=YES
+ -DLIBCXXABI_ENABLE_STATIC_UNWINDER=YES
+ -DLIBOMP_ENABLE_SHARED=YES
+ -DLIBOMP_INSTALL_ALIASES=NO
+ -DLLVM_INCLUDE_DOCS=YES
+ -DLLVM_BUILD_DOCS=YES
+ -DLLVM_ENABLE_SPHINX=YES
+ -DSPHINX_WARNINGS_AS_ERRORS=NO
+ -DLLVM_INSTALL_UTILS=YES
+ -DLLVM_BUILD_LLVM_DYLIB=YES
+ -DLLVM_LINK_LLVM_DYLIB=YES
+ -DLLVM_ENABLE_RTTI=YES
+ -DLLVM_ENABLE_FFI=YES
+ -DLLVM_BINUTILS_INCDIR=/usr/include
+ -DLLVM_ENABLE_PER_TARGET_RUNTIME_DIR=NO
+ -DLLDB_PYTHON_RELATIVE_PATH=lib/python${py3_ver}/site-packages
+ -DLLDB_PYTHON_EXE_RELATIVE_PATH=bin/python${py3_ver}
+ -DLLDB_PYTHON_EXT_SUFFIX=$_ext_suffix"
+hostmakedepends="perl python3 zlib-devel libffi-devel swig python3-Sphinx
+ python3-recommonmark python3-sphinx-automodapi"
+makedepends="python3-devel zlib-devel elfutils-devel libffi-devel libedit-devel
+ libxml2-devel binutils-devel libatomic-devel"
+depends="libllvm15>=${version}_${revision}"
+short_desc="Low Level Virtual Machine"
+maintainer="Orphaned <orphan@voidlinux.org>"
+license="Apache-2.0"
+homepage="https://www.llvm.org"
+distfiles="https://github.com/llvm/llvm-project/releases/download/llvmorg-${version}/llvm-project-${version}.src.tar.xz"
+checksum=8b5fcb24b4128cf04df1b0b9410ce8b1a729cb3c544e6da885d234280dedeac6
+lib32disabled=yes
+python_version=3
+
+if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
+ configure_args+=" -DLIBCXX_HAS_MUSL_LIBC=YES
+ -DCOMPILER_RT_BUILD_GWP_ASAN=OFF"
+fi
+
+# "operand out of range" assembler failures
+case "$XBPS_TARGET_MACHINE" in
+ ppc64*) ;;
+ ppc*) configure_args+=" -DCLANG_ENABLE_CLANGD=OFF" ;;
+esac
+
+_enabled_projects="clang;clang-tools-extra;compiler-rt;libcxx;libcxxabi;libunwind;lld"
+
+_lldb_enable=yes
+_libomp_enable=no
+
+case "$XBPS_TARGET_MACHINE" in
+ ppc64le*) ;;
+ ppc*|i686*|riscv64*) _lldb_enable=no ;;
+esac
+
+case "$XBPS_TARGET_MACHINE" in
+ x86_64*|aarch64*|ppc64*) _libomp_enable=yes;;
+esac
+
+subpackages="clang-tools-extra"
+
+# must go before clang
+if [ "$_libomp_enable" = "yes" ]; then
+ _enabled_projects+=";openmp"
+ subpackages+=" libomp libomp-devel"
+ # because of cmake nonsense referencing libomptarget.so.*
+ depends+=" libomp>=${version}_${revision}"
+ if [ "$CROSS_BUILD" ]; then
+ # Seems to require a full host llvm/clang build
+ configure_args+=" -DLIBOMPTARGET_BUILD_CUDA_PLUGIN=OFF"
+ configure_args+=" -DLIBOMPTARGET_BUILD_AMDGPU_PLUGIN=OFF"
+ fi
+fi
+
+subpackages+=" clang clang-analyzer libclang libclang-cpp
+ llvm-libunwind llvm-libunwind-devel libcxx libcxx-devel
+ libcxxabi libcxxabi-devel libllvm15"
+
+if [ "$_lldb_enable" = "yes" ]; then
+ # XXX fails to cross compile due to python
+ _enabled_projects+=";lldb"
+ subpackages+=" lldb lldb-devel"
+fi
+
+subpackages+=" lld lld-devel"
+
+configure_args+=" -DLLVM_ENABLE_PROJECTS=${_enabled_projects}"
+
+post_patch() {
+ if [ "$_lldb_enable" = "yes" ]; then
+ if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
+ vsed -i 's|__ptrace_request|int|g' \
+ ${wrksrc}/lldb/source/Plugins/Process/Linux/NativeProcessLinux.cpp
+ fi
+ # disable docs for lldb as they fail to generate
+ vsed -i '/add_subdirectory(docs)/d' \
+ ${wrksrc}/lldb/CMakeLists.txt
+ fi
+
+ # update config.guess for better platform detection
+ cp $XBPS_COMMONDIR/environment/configure/automake/config.guess \
+ ${wrksrc}/llvm/cmake
+
+ # fix linker failures on some archs
+ vsed -i 's,check_library_exists(gcc_s .*,set(LIBCXXABI_HAS_GCC_S_LIB ON),' \
+ ${wrksrc}/libcxxabi/cmake/config-ix.cmake
+ vsed -i 's,check_library_exists(gcc .*,set(LIBCXXABI_HAS_GCC_LIB ON),' \
+ ${wrksrc}/libcxxabi/cmake/config-ix.cmake
+
+ # need libssp_nonshared on some musl platforms (because of nodefaultlibs)
+ case "$XBPS_TARGET_MACHINE" in
+ ppc64*) ;;
+ ppc*-musl|i686-musl|mips*-musl)
+ vsed -i 's,^# Setup flags.$,add_library_flags(ssp_nonshared),' \
+ ${wrksrc}/libunwind/src/CMakeLists.txt
+ vsed -i 's,^# Setup flags.$,add_library_flags(ssp_nonshared),' \
+ ${wrksrc}/libcxxabi/src/CMakeLists.txt
+ vsed -i 's,#ssp,,' ${wrksrc}/libcxx/CMakeLists.txt
+ ;;
+ esac
+
+ case "$XBPS_TARGET_MACHINE" in
+ arm*-musl|i686-musl) # sanitizer code is broken since it duplicates some libc bits
+ vsed -i 's/set(COMPILER_RT_HAS_SANITIZER_COMMON TRUE)/set(COMPILER_RT_HAS_SANITIZER_COMMON FALSE)/' \
+ ${wrksrc}/compiler-rt/cmake/config-ix.cmake
+ ;;
+ esac
+}
+
+pre_configure() {
+ local triplet
+
+ # Vastly reduce size of debugging symbols:
+ CFLAGS=${CFLAGS/ -g/ -g1}
+ CXXFLAGS=${CXXFLAGS/ -g/ -g1}
+
+ # since gcc9, the build likes to blow up for ppc32 apparently because
+ # of clang being too large for a 24-bit relative call to the PLT, so
+ # optimize for size instead
+ case "$XBPS_TARGET_MACHINE" in
+ ppc64*) ;;
+ mips*-musl|ppc*) configure_args+=" -DVOID_CXX_OPT_FLAGS=-Os" ;;
+ esac
+
+ if [ "$CROSS_BUILD" ]; then
+ msg_normal "Building host tblgen\n"
+ mkdir -p build/HOST
+ cd build/HOST
+ CC="$BUILD_CC" CXX="$BUILD_CXX" CFLAGS="$BUILD_CFLAGS" \
+ CXXFLAGS="$BUILD_CXXFLAGS" LDFLAGS="$BUILD_LDFLAGS" \
+ cmake ../.. -DCMAKE_BUILD_TYPE=Release \
+ -DLLVM_ENABLE_PROJECTS=${_enabled_projects}
+ make ${makejobs} -C utils/TableGen
+ make ${makejobs} -C tools/clang/utils/TableGen
+ make ${makejobs} -C tools/clang/tools/extra/clang-tidy/misc/ConfusableTable
+ make ${makejobs} -C tools/clang/tools/extra/pseudo/gen
+ [ "$_lldb_enable" = "yes" ] && make ${makejobs} -C tools/lldb/utils/TableGen
+ configure_args+=" -DLLVM_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/llvm-tblgen"
+ configure_args+=" -DCLANG_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/clang-tblgen"
+ configure_args+=" -DCLANG_TIDY_CONFUSABLE_CHARS_GEN=${wrksrc}/llvm/build/HOST/bin/clang-tidy-confusable-chars-gen"
+ configure_args+=" -DCLANG_PSEUDO_GEN=${wrksrc}/llvm/build/HOST/bin/clang-pseudo-gen"
+ [ "$_lldb_enable" = "yes" ] && configure_args+=" -DLLDB_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/lldb-tblgen"
+ cd ../..
+ fi
+
+ case "$XBPS_TARGET_MACHINE" in
+ i686*) _arch="X86";;
+ x86_64*) _arch="X86";;
+ armv5*) _arch="Armv5te";;
+ armv6*) _arch="Armv6";;
+ armv7*) _arch="Armv7";;
+ aarch64*) _arch="AArch64";;
+ mips*) _arch="Mips";;
+ ppc*) _arch="PowerPC";;
+ riscv64*) _arch="RISCV64";;
+ esac
+
+ triplet=${XBPS_CROSS_TRIPLET:-$XBPS_TRIPLET}
+
+ configure_args+=" -DLLVM_TARGET_ARCH=${_arch}"
+ configure_args+=" -DLLVM_HOST_TRIPLE=${triplet}"
+ configure_args+=" -DLLVM_DEFAULT_TARGET_TRIPLE=${triplet}"
+}
+
+do_install() {
+ cd build
+ cmake -DCMAKE_INSTALL_PREFIX=${DESTDIR}/usr -P cmake_install.cmake
+
+ # Required for multilib.
+ if [ "$XBPS_TARGET_MACHINE" = "x86_64" ]; then
+ for _header in llvm-config; do
+ mv ${DESTDIR}/usr/include/llvm/Config/${_header}{,-64}.h
+ vinstall ${FILESDIR}/llvm-Config-${_header}.h 644 \
+ usr/include/llvm/Config ${_header}.h
+ done
+ fi
+
+ # Remove llvm-config-host in cross builds.
+ if [ "$CROSS_BUILD" ]; then
+ rm -f ${DESTDIR}/usr/bin/llvm-config-host
+ fi
+
+ # Install libcxxabi headers
+ vinstall ${wrksrc}/libcxxabi/include/__cxxabi_config.h 644 usr/include
+ vinstall ${wrksrc}/libcxxabi/include/cxxabi.h 644 usr/include
+
+ # Install libunwind headers
+ vinstall ${wrksrc}/libunwind/include/__libunwind_config.h 644 usr/include
+ vinstall ${wrksrc}/libunwind/include/libunwind.h 644 usr/include
+ vinstall ${wrksrc}/libunwind/include/unwind.h 644 usr/include
+ vinstall ${wrksrc}/libunwind/include/mach-o/compact_unwind_encoding.h \
+ 644 usr/include/mach-o
+}
+
+clang-analyzer_package() {
+ pycompile_dirs="usr/share/scan-view"
+ depends="clang-${version}_${revision} python3 perl"
+ short_desc+=" - A source code analysis framework"
+ homepage="https://clang-analyzer.llvm.org/"
+ pkg_install() {
+ vmove "usr/bin/scan-*"
+ vmove "usr/libexec/*analyzer"
+ vmove "usr/share/scan-*"
+ vmove usr/share/man/man1/scan-build.1
+ }
+}
+
+clang-tools-extra_package() {
+ lib32disabled=yes
+ depends="clang-${version}_${revision} python3"
+ short_desc+=" - Extra Clang tools"
+ homepage="https://clang.llvm.org/extra/"
+ pkg_install() {
+ vmove usr/bin/clang-apply-replacements
+ vmove usr/bin/clang-doc
+ vmove usr/bin/clang-include-fixer
+ vmove usr/bin/clang-query
+ vmove usr/bin/clang-rename
+ vmove usr/bin/clang-reorder-fields
+ vmove usr/bin/clang-tidy
+ vmove usr/bin/clangd
+ vmove usr/bin/diagtool
+ vmove usr/bin/find-all-symbols
+ vmove usr/bin/hmaptool
+ vmove usr/bin/modularize
+ vmove usr/bin/pp-trace
+ vmove usr/bin/sancov
+ vmove usr/include/clang-tidy
+ vmove "usr/lib/libclangApplyReplacements*"
+ vmove "usr/lib/libclangDoc*"
+ vmove "usr/lib/libclangIncludeFixer*"
+ vmove "usr/lib/libclangReorderFields*"
+ vmove "usr/lib/libclangQuery*"
+ vmove "usr/lib/libclangTidy*"
+ vmove "usr/share/clang/*include-fixer*"
+ vmove "usr/share/clang/*rename*"
+ vmove "usr/share/clang/*tidy*"
+ vmove usr/share/doc/LLVM/clang-tools
+ vmove usr/share/man/man1/diagtool.1
+ vmove usr/share/man/man1/extraclangtools.1
+ }
+}
+
+clang_package() {
+ lib32disabled=yes
+ depends="libstdc++-devel libgcc-devel binutils ${XBPS_TARGET_LIBC}-devel
+ libclang-${version}_${revision}"
+ short_desc+=" - C language family frontend"
+ homepage="https://clang.llvm.org/"
+ pkg_install() {
+ vmove "usr/bin/*clang*"
+ vmove usr/bin/c-index-test
+ vmove usr/include/clang
+ vmove usr/include/clang-c
+ vmove usr/lib/clang
+ vmove usr/lib/cmake/clang
+ vmove "usr/lib/libclang*.a"
+ vmove "usr/lib/libclang*.so"
+ vmove usr/share/clang
+ vmove usr/share/doc/LLVM/clang
+ vmove usr/share/man/man1/clang.1
+ }
+}
+
+libclang_package() {
+ short_desc+=" - C frontend runtime library"
+ pkg_install() {
+ vmove "usr/lib/libclang.so.*"
+ }
+}
+
+libclang-cpp_package() {
+ short_desc+=" - C frontend runtime library (C++ interface)"
+ pkg_install() {
+ vmove "usr/lib/libclang-cpp.so.*"
+ }
+}
+
+lld_package() {
+ lib32disabled=yes
+ short_desc+=" - linker"
+ homepage="https://lld.llvm.org"
+ pkg_install() {
+ vmove "usr/bin/ld.lld*"
+ vmove "usr/bin/ld64.lld*"
+ vmove "usr/bin/lld*"
+ vmove usr/bin/wasm-ld
+ vmove usr/share/doc/LLVM/lld
+ }
+}
+
+lld-devel_package() {
+ lib32disabled=yes
+ short_desc+=" - linker - development files"
+ homepage="https://lld.llvm.org"
+ depends="lld>=${version}_${revision}"
+ pkg_install() {
+ vmove usr/include/lld
+ vmove usr/lib/cmake/lld
+ vmove "usr/lib/liblld*a"
+ }
+}
+
+lldb_package() {
+ lib32disabled=yes
+ depends+=" python3-six"
+ short_desc+=" - LLDB debugger"
+ homepage="https://lldb.llvm.org/"
+ pkg_install() {
+ vmove "usr/bin/*lldb*"
+ vmove "usr/lib/liblldb*so.*"
+ vmove usr/lib/python*
+ }
+}
+
+lldb-devel_package() {
+ lib32disabled=yes
+ depends="lldb>=${version}_${revision}"
+ short_desc+=" - LLDB debugger - development files"
+ pkg_install() {
+ vmove usr/include/lldb
+ vmove "usr/lib/liblldb*.so"
+ }
+}
+
+llvm-libunwind_package() {
+ short_desc+=" - libunwind"
+ pkg_install() {
+ vmove "usr/lib/libunwind.so.*"
+ }
+}
+
+llvm-libunwind-devel_package() {
+ short_desc+=" - libunwind - development files"
+ depends="llvm-libunwind>=${version}_${revision}"
+ conflicts="libunwind-devel>=0"
+ pkg_install() {
+ vmove usr/include/mach-o
+ vmove "usr/include/*unwind*"
+ vmove "usr/lib/libunwind.a"
+ vmove "usr/lib/libunwind.so"
+ vmove usr/share/doc/LLVM/libunwind
+ }
+}
+
+libcxxabi_package() {
+ short_desc+=" - low level support for libc++"
+ pkg_install() {
+ vmove "usr/lib/libc++abi.so.*"
+ }
+}
+
+libcxxabi-devel_package() {
+ short_desc+=" - low level support for libc++ - development files"
+ depends="libcxxabi>=${version}_${revision}"
+ pkg_install() {
+ vmove "usr/include/*cxxabi*"
+ vmove "usr/lib/libc++abi.so"
+ vmove "usr/lib/libc++abi.a"
+ }
+}
+
+libcxx_package() {
+ short_desc+=" - C++ standard library"
+ pkg_install() {
+ vmove "usr/lib/libc++.so.*"
+ }
+}
+
+libcxx-devel_package() {
+ short_desc+=" - C++ standard library - development files"
+ depends="libcxx>=${version}_${revision}"
+ pkg_install() {
+ vmove usr/include/c++
+ vmove "usr/lib/libc++.so"
+ vmove "usr/lib/libc++.a"
+ vmove "usr/lib/libc++experimental.a"
+ vmove usr/share/doc/LLVM/libcxx
+ }
+}
+
+libomp_package() {
+ short_desc+=" - Clang OpenMP support library"
+ pkg_install() {
+ vmove usr/lib/libarcher.so
+ vmove usr/lib/libompd.so
+ vmove "usr/lib/libomptarget.rtl.*.so"
+ vmove "usr/lib/libomp*.so.*"
+ }
+}
+
+libomp-devel_package() {
+ short_desc+=" - Clang OpenMP support library - development files"
+ depends="libomp>=${version}_${revision}"
+ pkg_install() {
+ vmove "usr/include/omp*.h"
+ vmove "usr/lib/clang/${version}/include/omp*.h"
+ vmove "usr/lib/libarcher*"
+ vmove "usr/lib/libomp*.so"
+ vmove usr/lib/cmake/openmp
+ vmove usr/share/doc/LLVM/openmp
+ vmove usr/share/man/man1/llvmopenmp.1
+ }
+}
+
+libllvm15_package() {
+ short_desc+=" - runtime library"
+ pkg_install() {
+ vmove "usr/lib/libLLVM-*.so*"
+ }
+}
diff --git a/srcpkgs/llvm15/update b/srcpkgs/llvm15/update
new file mode 100644
index 000000000000..e95cf26b3586
--- /dev/null
+++ b/srcpkgs/llvm15/update
@@ -0,0 +1,3 @@
+site="https://github.com/llvm/llvm-project/releases"
+pattern="llvmorg-\K(\d+.){2}\d+(-rc\d+)?"
+ignore="*-rc*"
From 016ed775e5f482f98a2ede7a10bc24b0069eb0e0 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Sun, 18 Dec 2022 00:40:18 +0100
Subject: [PATCH 02/17] llvm: update to 15
---
common/shlibs | 6 +++---
srcpkgs/clang | 2 +-
srcpkgs/clang-analyzer | 2 +-
srcpkgs/clang-tools-extra | 2 +-
srcpkgs/libclang | 2 +-
srcpkgs/libclang-cpp | 2 +-
srcpkgs/libcxx | 2 +-
srcpkgs/libcxx-devel | 2 +-
srcpkgs/libcxxabi | 2 +-
srcpkgs/libcxxabi-devel | 2 +-
srcpkgs/libomp | 2 +-
srcpkgs/libomp-devel | 2 +-
srcpkgs/lld | 2 +-
srcpkgs/lld-devel | 2 +-
srcpkgs/lldb | 2 +-
srcpkgs/lldb-devel | 2 +-
srcpkgs/llvm-libunwind | 2 +-
srcpkgs/llvm-libunwind-devel | 2 +-
srcpkgs/llvm/template | 6 +++---
19 files changed, 23 insertions(+), 23 deletions(-)
diff --git a/common/shlibs b/common/shlibs
index 7c1c48c61065..44059d647598 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -987,9 +987,9 @@ 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.12 lldb-12.0.0_1
-libclang.so.12 libclang-12.0.0_1
-libclang-cpp.so.12 libclang-cpp-12.0.0_1
+liblldb.so.15 lldb-15.0.7_1
+libclang.so.15 libclang-15.0.7_1
+libclang-cpp.so.15 libclang-cpp-15.0.7_1
libLLVM-11.so libllvm11-11.0.0_1
libLLVM-12.so libllvm12-12.0.0_1
libLLVM-15.so libllvm15-15.0.7_1
diff --git a/srcpkgs/clang b/srcpkgs/clang
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/clang
+++ b/srcpkgs/clang
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/clang-analyzer b/srcpkgs/clang-analyzer
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/clang-analyzer
+++ b/srcpkgs/clang-analyzer
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/clang-tools-extra b/srcpkgs/clang-tools-extra
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/clang-tools-extra
+++ b/srcpkgs/clang-tools-extra
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libclang b/srcpkgs/libclang
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libclang
+++ b/srcpkgs/libclang
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libclang-cpp b/srcpkgs/libclang-cpp
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libclang-cpp
+++ b/srcpkgs/libclang-cpp
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxx b/srcpkgs/libcxx
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxx
+++ b/srcpkgs/libcxx
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxx-devel b/srcpkgs/libcxx-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxx-devel
+++ b/srcpkgs/libcxx-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxxabi b/srcpkgs/libcxxabi
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxxabi
+++ b/srcpkgs/libcxxabi
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxxabi-devel b/srcpkgs/libcxxabi-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxxabi-devel
+++ b/srcpkgs/libcxxabi-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libomp b/srcpkgs/libomp
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libomp
+++ b/srcpkgs/libomp
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libomp-devel b/srcpkgs/libomp-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libomp-devel
+++ b/srcpkgs/libomp-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lld b/srcpkgs/lld
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lld
+++ b/srcpkgs/lld
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lld-devel b/srcpkgs/lld-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lld-devel
+++ b/srcpkgs/lld-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lldb b/srcpkgs/lldb
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lldb
+++ b/srcpkgs/lldb
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lldb-devel b/srcpkgs/lldb-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lldb-devel
+++ b/srcpkgs/lldb-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm-libunwind b/srcpkgs/llvm-libunwind
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/llvm-libunwind
+++ b/srcpkgs/llvm-libunwind
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm-libunwind-devel b/srcpkgs/llvm-libunwind-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/llvm-libunwind-devel
+++ b/srcpkgs/llvm-libunwind-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm/template b/srcpkgs/llvm/template
index a92db6f94f9f..fc1c850bd26f 100644
--- a/srcpkgs/llvm/template
+++ b/srcpkgs/llvm/template
@@ -1,11 +1,11 @@
# Template file for 'llvm'
pkgname=llvm
-version=12.0.0
+version=15
revision=1
build_style=meta
-depends="llvm12"
-replaces="llvm11>=0 llvm10>=0 llvm9>=0 llvm8>=0 llvm7>=0 llvm6.0>=0 llvm3.9>=0"
+depends="llvm15"
short_desc="LLVM meta package"
maintainer="Enno Boland <gottox@voidlinux.org>"
license="Public Domain"
homepage="https://www.voidlinux.org"
+replaces="llvm12>=0 llvm11>=0 llvm10>=0 llvm9>=0 llvm8>=0 llvm7>=0 llvm6.0>=0 llvm3.9>=0"
From 6ffb3cba2fc9858ba7d8c4134f5c717ffa7fb9bd Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Sun, 18 Dec 2022 12:20:08 +0100
Subject: [PATCH 03/17] llvm12: remove bumped subpackages
---
srcpkgs/llvm12/template | 264 +---------------------------------------
1 file changed, 1 insertion(+), 263 deletions(-)
diff --git a/srcpkgs/llvm12/template b/srcpkgs/llvm12/template
index f8ea3ba641ae..aea0b43cf573 100644
--- a/srcpkgs/llvm12/template
+++ b/srcpkgs/llvm12/template
@@ -50,55 +50,7 @@ case "$XBPS_TARGET_MACHINE" in
ppc*) configure_args+=" -DCLANG_ENABLE_CLANGD=OFF" ;;
esac
-_enabled_projects="clang;clang-tools-extra;compiler-rt;libcxx;libcxxabi;libunwind;lld"
-
-_lldb_enable=yes
-_libomp_enable=no
-
-case "$XBPS_TARGET_MACHINE" in
- ppc64le*) ;;
- ppc*|i686*) _lldb_enable=no ;;
-esac
-
-case "$XBPS_TARGET_MACHINE" in
- x86_64*|aarch64*|ppc64*) _libomp_enable=yes;;
-esac
-
-subpackages="clang-tools-extra"
-
-# must go before clang
-if [ "$_libomp_enable" = "yes" ]; then
- _enabled_projects+=";openmp"
- subpackages+=" libomp libomp-devel"
- # because of cmake nonsense referencing libomptarget.so.*
- depends+=" libomp>=${version}_${revision}"
-fi
-
-subpackages+=" clang clang-analyzer libclang libclang-cpp
- llvm-libunwind llvm-libunwind-devel libcxx libcxx-devel
- libcxxabi libcxxabi-devel libllvm12"
-
-if [ "$_lldb_enable" = "yes" ]; then
- # XXX fails to cross compile due to python
- _enabled_projects+=";lldb"
- subpackages+=" lldb lldb-devel"
-fi
-
-subpackages+=" lld lld-devel"
-
-configure_args+=" -DLLVM_ENABLE_PROJECTS=${_enabled_projects}"
-
post_patch() {
- if [ "$_lldb_enable" = "yes" ]; then
- if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
- vsed -i 's|__ptrace_request|int|g' \
- ${wrksrc}/lldb/source/Plugins/Process/Linux/NativeProcessLinux.cpp
- fi
- # disable docs for lldb as they fail to generate
- vsed -i '/add_subdirectory(docs)/d' \
- ${wrksrc}/lldb/CMakeLists.txt
- fi
-
# update config.guess for better platform detection
cp $XBPS_COMMONDIR/environment/configure/automake/config.guess \
${wrksrc}/llvm/cmake
@@ -154,14 +106,12 @@ pre_configure() {
cd build/HOST
CC="$BUILD_CC" CXX="$BUILD_CXX" CFLAGS="$BUILD_CFLAGS" \
CXXFLAGS="$BUILD_CXXFLAGS" LDFLAGS="$BUILD_LDFLAGS" \
- cmake ../.. -DCMAKE_BUILD_TYPE=Release \
- -DLLVM_ENABLE_PROJECTS=${_enabled_projects}
+ cmake ../.. -DCMAKE_BUILD_TYPE=Release
make ${makejobs} -C utils/TableGen
make ${makejobs} -C tools/clang/utils/TableGen
[ "$_lldb_enable" = "yes" ] && make ${makejobs} -C tools/lldb/utils/TableGen
configure_args+=" -DLLVM_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/llvm-tblgen"
configure_args+=" -DCLANG_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/clang-tblgen"
- [ "$_lldb_enable" = "yes" ] && configure_args+=" -DLLDB_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/lldb-tblgen"
cd ../..
fi
@@ -201,218 +151,6 @@ do_install() {
if [ "$CROSS_BUILD" ]; then
rm -f ${DESTDIR}/usr/bin/llvm-config-host
fi
-
- # Install libcxxabi headers
- vinstall ${wrksrc}/libcxxabi/include/__cxxabi_config.h 644 usr/include
- vinstall ${wrksrc}/libcxxabi/include/cxxabi.h 644 usr/include
-
- # Install libunwind headers
- vinstall ${wrksrc}/libunwind/include/__libunwind_config.h 644 usr/include
- vinstall ${wrksrc}/libunwind/include/libunwind.h 644 usr/include
- vinstall ${wrksrc}/libunwind/include/unwind.h 644 usr/include
- vinstall ${wrksrc}/libunwind/include/mach-o/compact_unwind_encoding.h \
- 644 usr/include/mach-o
-}
-
-clang-analyzer_package() {
- pycompile_dirs="usr/share/scan-view"
- depends="clang-${version}_${revision} python3 perl"
- short_desc+=" - A source code analysis framework"
- homepage="https://clang-analyzer.llvm.org/"
- pkg_install() {
- vmove usr/share/man/man1/scan-build.1
- vmove "/usr/bin/scan-*"
- vmove "/usr/share/scan-*"
- vmove "/usr/libexec/*analyzer"
- }
-}
-
-clang-tools-extra_package() {
- lib32disabled=yes
- depends="clang-${version}_${revision} python3"
- short_desc+=" - Extra Clang tools"
- homepage="https://clang.llvm.org/extra/"
- pkg_install() {
- vmove usr/include/clang-tidy
- vmove usr/bin/clang-apply-replacements
- vmove usr/bin/clang-query
- vmove usr/bin/clang-rename
- vmove usr/bin/clang-tidy
- vmove usr/bin/diagtool
- vmove usr/bin/find-all-symbols
- vmove usr/bin/hmaptool
- vmove usr/bin/modularize
- vmove usr/bin/pp-trace
- vmove usr/bin/sancov
- vmove "usr/lib/libclangApplyReplacements*"
- vmove "usr/lib/libclangQuery*"
- vmove "usr/lib/libclangTidy*"
- vmove "usr/share/clang/*tidy*"
- vmove usr/share/doc/clang-tools
- vmove usr/share/man/man1/extraclangtools.1
- vmove usr/share/man/man1/diagtool.1
- }
-}
-
-clang_package() {
- lib32disabled=yes
- depends="libstdc++-devel libgcc-devel binutils ${XBPS_TARGET_LIBC}-devel
- libclang-${version}_${revision}"
- short_desc+=" - C language family frontend"
- homepage="https://clang.llvm.org/"
- pkg_install() {
- vmove usr/include/clang
- vmove usr/include/clang-c
- vmove "usr/bin/*clang*"
- vmove usr/bin/c-index-test
- vmove usr/lib/clang
- vmove usr/lib/cmake/clang
- vmove "usr/lib/libclang*.a"
- vmove "usr/lib/libclang*.so"
- vmove usr/share/clang
- vmove usr/share/doc/clang
- vmove usr/share/man/man1/clang.1
- }
-}
-
-libclang_package() {
- short_desc+=" - C frontend runtime library"
- pkg_install() {
- vmove "usr/lib/libclang.so.*"
- }
-}
-
-libclang-cpp_package() {
- short_desc+=" - C frontend runtime library (C++ interface)"
- pkg_install() {
- vmove "usr/lib/libclang-cpp.so.*"
- }
-}
-
-lld_package() {
- lib32disabled=yes
- short_desc+=" - linker"
- homepage="https://lld.llvm.org"
- pkg_install() {
- vmove usr/bin/lld*
- vmove usr/bin/wasm-ld
- vmove usr/bin/ld.lld*
- vmove usr/bin/ld64.lld*
- vmove usr/share/doc/lld
- }
-}
-
-lld-devel_package() {
- lib32disabled=yes
- short_desc+=" - linker - development files"
- homepage="https://lld.llvm.org"
- depends="lld>=${version}_${revision}"
- pkg_install() {
- vmove usr/include/lld
- vmove usr/lib/cmake/lld
- vmove "usr/lib/liblld*a"
- }
-}
-
-lldb_package() {
- lib32disabled=yes
- depends+=" python3-six"
- short_desc+=" - LLDB debugger"
- homepage="https://lldb.llvm.org/"
- pkg_install() {
- vmove usr/bin/*lldb*
- vmove usr/lib/liblldb*so.*
- vmove /usr/lib/python*
- }
-}
-
-lldb-devel_package() {
- lib32disabled=yes
- depends="lldb>=${version}_${revision}"
- short_desc+=" - LLDB debugger - development files"
- pkg_install() {
- vmove usr/include/lldb
- vmove "usr/lib/liblldb*.so"
- }
-}
-
-llvm-libunwind_package() {
- short_desc+=" - libunwind"
- pkg_install() {
- vmove "usr/lib/libunwind.so.*"
- }
-}
-
-llvm-libunwind-devel_package() {
- short_desc+=" - libunwind - development files"
- depends="llvm-libunwind>=${version}_${revision}"
- conflicts="libunwind-devel>=0"
- pkg_install() {
- vmove usr/lib/libunwind.so
- vmove usr/lib/libunwind.a
- vmove "usr/include/*unwind*"
- vmove usr/include/mach-o
- vmove usr/share/doc/libunwind
- }
-}
-
-libcxxabi_package() {
- short_desc+=" - low level support for libc++"
- pkg_install() {
- vmove "usr/lib/libc++abi.so.*"
- }
-}
-
-libcxxabi-devel_package() {
- short_desc+=" - low level support for libc++ - development files"
- depends="libcxxabi>=${version}_${revision}"
- pkg_install() {
- vmove usr/lib/libc++abi.so
- vmove usr/lib/libc++abi.a
- vmove "usr/include/*cxxabi*"
- }
-}
-
-libcxx_package() {
- short_desc+=" - C++ standard library"
- pkg_install() {
- vmove "usr/lib/libc++.so.*"
- }
-}
-
-libcxx-devel_package() {
- short_desc+=" - C++ standard library - development files"
- depends="libcxx>=${version}_${revision}"
- pkg_install() {
- vmove usr/lib/libc++.so
- vmove usr/lib/libc++.a
- vmove usr/lib/libc++experimental.a
- vmove usr/include/c++
- vmove usr/share/doc/libcxx
- }
-}
-
-libomp_package() {
- short_desc+=" - Clang OpenMP support library"
- pkg_install() {
- vmove usr/lib/libomp.so
- vmove "usr/lib/libomptarget.rtl.*.so"
- vmove usr/lib/libarcher.so
- vmove "usr/lib/libomp*.so.*"
- }
-}
-
-libomp-devel_package() {
- short_desc+=" - Clang OpenMP support library - development files"
- depends="libomp>=${version}_${revision}"
- pkg_install() {
- vmove "usr/lib/libomp*.so"
- vmove "usr/lib/libarcher*"
- vmove "usr/include/omp*.h"
- vmove "usr/lib/clang/${version}/include/omp*.h"
- vmove usr/share/man/man1/llvmopenmp.1
- vmove usr/share/doc/openmp
- }
}
libllvm12_package() {
From f107c174d7db3ec041d33f29d3ace0e0ca7a3643 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:27:03 +0100
Subject: [PATCH 04/17] mesa: rebuild for llvm15
---
srcpkgs/mesa/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/mesa/template b/srcpkgs/mesa/template
index 4c3c9ec6039e..0641b28a80d6 100644
--- a/srcpkgs/mesa/template
+++ b/srcpkgs/mesa/template
@@ -1,7 +1,7 @@
# Template file for 'mesa'
pkgname=mesa
version=22.2.4
-revision=2
+revision=3
build_style=meson
configure_args="-Dglvnd=true -Dshared-glapi=enabled -Dgbm=enabled -Degl=enabled
-Dosmesa=true -Dgles1=enabled -Dgles2=enabled -Dglx=dri -Ddri3=enabled
From 2c014990d7cabd857e083e0ac251d5a1a2c44497 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:34:04 +0100
Subject: [PATCH 05/17] bcc: rebuild for llvm15
---
srcpkgs/bcc/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/bcc/template b/srcpkgs/bcc/template
index 7526580f17ed..bdbcff7227a0 100644
--- a/srcpkgs/bcc/template
+++ b/srcpkgs/bcc/template
@@ -1,7 +1,7 @@
# Template file for 'bcc'
pkgname=bcc
version=0.26.0
-revision=2
+revision=3
build_style=cmake
configure_args="-DREVISION=${version} -DENABLE_LLVM_SHARED=1"
hostmakedepends="flex python3-setuptools"
From ad39f276bbf08e7f46e82254e5dfe05e0eac66ca Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:37:25 +0100
Subject: [PATCH 06/17] bpftrace: rebuild for llvm15
---
srcpkgs/bpftrace/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/bpftrace/template b/srcpkgs/bpftrace/template
index 952682662128..2f01dbf69530 100644
--- a/srcpkgs/bpftrace/template
+++ b/srcpkgs/bpftrace/template
@@ -1,7 +1,7 @@
# Template file for 'bpftrace'
pkgname=bpftrace
version=0.17.0
-revision=1
+revision=2
archs="x86_64* aarch64* ppc64*"
build_style=cmake
configure_args="-DUSE_SYSTEM_BPF_BCC=ON -DBUILD_TESTING=OFF" # needs root to run
From dab4452e67bcaeab84a0dd9b57e42c2794939d96 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:43:53 +0100
Subject: [PATCH 07/17] CastXML: rebuild for llvm15
---
srcpkgs/CastXML/template | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/srcpkgs/CastXML/template b/srcpkgs/CastXML/template
index 5d7d9503658c..28c424c78073 100644
--- a/srcpkgs/CastXML/template
+++ b/srcpkgs/CastXML/template
@@ -1,7 +1,7 @@
# Template file for 'CastXML'
pkgname=CastXML
version=0.4.6
-revision=1
+revision=2
build_style=cmake
configure_args="-DSPHINX_MAN=YES -DCastXML_INSTALL_MAN_DIR=share/man"
hostmakedepends="clang python3-Sphinx"
@@ -12,8 +12,8 @@ short_desc="C-family abstract syntax tree XML output tool"
maintainer="Evgeny Ermakov <evgeny.v.ermakov@gmail.com>"
license="Apache-2.0"
homepage="https://github.com/CastXML/CastXML"
-distfiles="https://github.com/CastXML/CastXML/archive/v${version}.tar.gz"
-checksum=8dcdbc1f23a130e4bdb0b09f57c30761a02a346b4db4037555048af2a293d66a
+distfiles="https://github.com/CastXML/CastXML/archive/refs/tags/v${version}.tar.gz"
+checksum=bb9024ec9ea5082e0d527f19bf3c2df79f1699f54b6cec168c024e727b32e6d1
post_install() {
rm -r ${DESTDIR}/usr/share/castxml/clang/include
From 6575511ac94de71e86bee37bbe1eb9ac035b34bb Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:48:55 +0100
Subject: [PATCH 08/17] ccls: rebuild for llvm15
---
srcpkgs/ccls/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/ccls/template b/srcpkgs/ccls/template
index 82fa61933878..ecc9f3e38a5d 100644
--- a/srcpkgs/ccls/template
+++ b/srcpkgs/ccls/template
@@ -1,7 +1,7 @@
# Template file for 'ccls'
pkgname=ccls
version=0.20220729
-revision=1
+revision=2
build_style=cmake
hostmakedepends="clang-tools-extra"
makedepends="clang-tools-extra libxml2-devel llvm ncurses-devel rapidjson zlib-devel"
From cfb10130dbbe37aa8eaf3ebbcb6c8ba830eea236 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:52:14 +0100
Subject: [PATCH 09/17] include-what-you-use: update to 0.19
---
srcpkgs/include-what-you-use/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/include-what-you-use/template b/srcpkgs/include-what-you-use/template
index d3655709c20c..1a30bc04bb2d 100644
--- a/srcpkgs/include-what-you-use/template
+++ b/srcpkgs/include-what-you-use/template
@@ -1,6 +1,6 @@
# Template file for 'include-what-you-use'
pkgname=include-what-you-use
-version=0.16
+version=0.19
revision=1
build_style=cmake
configure_args="-DIWYU_LLVM_ROOT_PATH=${XBPS_CROSS_BASE}/usr "
@@ -11,7 +11,7 @@ maintainer="Leah Neukirchen <leah@vuxu.org>"
license="NCSA"
homepage="https://include-what-you-use.org/"
distfiles="https://include-what-you-use.org/downloads/${pkgname}-${version}.src.tar.gz"
-checksum=8d6fc9b255343bc1e5ec459e39512df1d51c60e03562985e0076036119ff5a1c
+checksum=2b10157b60ea08adc08e3896b4921c73fcadd5ec4eb652b29a34129d501e5ee0
python_version=3
post_install() {
From a227b2c3d4d2d874b07df6b09de77824c37093f1 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 15:11:06 +0100
Subject: [PATCH 10/17] SPIRV-LLVM-Translator: update to 15.0.0
---
srcpkgs/SPIRV-LLVM-Translator/template | 13 +++++++------
1 file changed, 7 insertions(+), 6 deletions(-)
diff --git a/srcpkgs/SPIRV-LLVM-Translator/template b/srcpkgs/SPIRV-LLVM-Translator/template
index a2754e58c0e8..bee99f9bcbb2 100644
--- a/srcpkgs/SPIRV-LLVM-Translator/template
+++ b/srcpkgs/SPIRV-LLVM-Translator/template
@@ -1,19 +1,20 @@
# Template file for 'SPIRV-LLVM-Translator'
pkgname=SPIRV-LLVM-Translator
-version=12.0.0
-revision=2
+version=15.0.0
+revision=1
build_style=cmake
make_build_args="llvm-spirv"
configure_args="-Wno-dev -DLLVM_LINK_LLVM_DYLIB=ON -DCMAKE_SKIP_RPATH=ON
- -DLLVM_SPIRV_INCLUDE_TESTS=OFF -DBUILD_SHARED_LIBS=ON"
+ -DLLVM_SPIRV_INCLUDE_TESTS=OFF -DBUILD_SHARED_LIBS=ON
+ -DLLVM_EXTERNAL_SPIRV_HEADERS_SOURCE_DIR=/usr"
hostmakedepends="clang llvm"
-makedepends="clang-tools-extra llvm"
+makedepends="clang-tools-extra llvm SPIRV-Headers"
short_desc="API and commands for processing SPIR-V modules"
maintainer="Orphaned <orphan@voidlinux.org>"
license="NCSA"
homepage="https://github.com/KhronosGroup/SPIRV-LLVM-Translator"
-distfiles="https://github.com/KhronosGroup/${pkgname}/archive/refs/tags/v${version}.tar.gz"
-checksum=6e4fad04203f25fcde4c308c53e9f59bd05a390978992db3212d4b63aff62108
+distfiles="https://github.com/KhronosGroup/SPIRV-LLVM-Translator/archive/refs/tags/v${version}.tar.gz"
+checksum=b1bebd77f72988758c00852e78c2ddc545815a612169a0cb377d021e2f846d88
post_install() {
vlicense LICENSE.TXT
From 74116ebc192456de70491ac34c64b0222efde682 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Fri, 6 Jan 2023 17:11:04 +0100
Subject: [PATCH 11/17] rtags: rebuild for llvm15
---
srcpkgs/rtags/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/rtags/template b/srcpkgs/rtags/template
index b496a1b0e721..9b161e690d76 100644
--- a/srcpkgs/rtags/template
+++ b/srcpkgs/rtags/template
@@ -1,7 +1,7 @@
# Template file for 'rtags'
pkgname=rtags
version=2.38
-revision=5
+revision=6
build_style=cmake
# Don't run tests in do_install, please.
configure_args="-DSKIP_CTEST=TRUE"
From b6b4447de6417801abb7ddb9a4c148c7328d9639 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Fri, 6 Jan 2023 17:14:14 +0100
Subject: [PATCH 12/17] juCi++: rebuild for llvm15
---
srcpkgs/juCi++/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/juCi++/template b/srcpkgs/juCi++/template
index c1969237f11d..416bde7cc4d0 100644
--- a/srcpkgs/juCi++/template
+++ b/srcpkgs/juCi++/template
@@ -1,7 +1,7 @@
# Template file for 'juCi++'
pkgname=juCi++
version=1.7.2
-revision=2
+revision=3
_libclangmm_commit="9704b9b6de0982a588fa41741157d5640afedf30"
_tiny_commit="839ff806dc447ff49af80f9a9eaa7949f770f8e5"
create_wrksrc=yes
From dc093beccdff4269e28883f1e1ac6044af192586 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Sat, 7 Jan 2023 11:31:14 +0100
Subject: [PATCH 13/17] qt5: rebuild for llvm15
---
srcpkgs/qt5/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/qt5/template b/srcpkgs/qt5/template
index f4f9f5b5344a..b517b49ead2d 100644
--- a/srcpkgs/qt5/template
+++ b/srcpkgs/qt5/template
@@ -5,7 +5,7 @@ pkgname=qt5
version=5.15.7+20221119
# commit f8c9fb304bc3e53b3aa07f962cd74e9160decccc
# base repo: https://invent.kde.org/qt/qt/qt5
-revision=1
+revision=2
build_style=meta
hostmakedepends="cmake clang flex perl glib-devel pkg-config
python re2c ruby which"
From 9124558c136377ee1417486e7ba3b351d5321eb6 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Mon, 9 Jan 2023 01:22:18 +0100
Subject: [PATCH 14/17] codelite: rebuild for llvm15
---
srcpkgs/codelite/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/codelite/template b/srcpkgs/codelite/template
index 6b8b007c8a43..c6115e0274ce 100644
--- a/srcpkgs/codelite/template
+++ b/srcpkgs/codelite/template
@@ -1,7 +1,7 @@
# Template file for 'codelite'
pkgname=codelite
version=16.0.0
-revision=2
+revision=3
create_wrksrc=yes
build_style=cmake
build_helper=cmake-wxWidgets-gtk3
From b79afad74cea41a0637fd8529ea72b64e2c22e32 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Mon, 9 Jan 2023 01:58:21 +0100
Subject: [PATCH 15/17] kdevelop: rebuild for llvm15
---
srcpkgs/kdevelop/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/kdevelop/template b/srcpkgs/kdevelop/template
index 5eb275583138..c32ee5240a44 100644
--- a/srcpkgs/kdevelop/template
+++ b/srcpkgs/kdevelop/template
@@ -1,7 +1,7 @@
# Template file for 'kdevelop'
pkgname=kdevelop
version=22.12.1
-revision=1
+revision=2
build_style=cmake
configure_args="-DBUILD_TESTING=OFF"
hostmakedepends="extra-cmake-modules qt5-qmake qt5-host-tools qt5-tools
From 7c3e77332a91c1c6edee94f525cba001196c9131 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Mon, 16 Jan 2023 14:43:47 +0100
Subject: [PATCH 16/17] zig: update to 0.10.1
---
.../0001-std.build-fix-handling-of-Dcpu.patch | 48 -------------------
srcpkgs/zig/template | 10 ++--
2 files changed, 6 insertions(+), 52 deletions(-)
delete mode 100644 srcpkgs/zig/patches/0001-std.build-fix-handling-of-Dcpu.patch
diff --git a/srcpkgs/zig/patches/0001-std.build-fix-handling-of-Dcpu.patch b/srcpkgs/zig/patches/0001-std.build-fix-handling-of-Dcpu.patch
deleted file mode 100644
index 4101f24459bb..000000000000
--- a/srcpkgs/zig/patches/0001-std.build-fix-handling-of-Dcpu.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From 1e8cdace7ad324a42228aeb5cd6eb8dd15429413 Mon Sep 17 00:00:00 2001
-From: Isaac Freund <ifreund@ifreund.xyz>
-Date: Tue, 21 Sep 2021 21:06:10 +0200
-Subject: [PATCH] std.build: fix handling of -Dcpu
-
-Currently -Dcpu is completely ignored if -Dtarget isn't passed as well.
-Further, -Dcpu=baseline is ignored even if -Dtarget=native is passed.
-
-This patch fixes these 2 issues, always respecting the -Dcpu option if
-present.
----
- lib/std/build.zig | 13 +++++++------
- 1 file changed, 7 insertions(+), 6 deletions(-)
-
-diff --git a/lib/std/build.zig b/lib/std/build.zig
-index 9b7ebb1f4..e398529f9 100644
---- a/lib/std/build.zig
-+++ b/lib/std/build.zig
-@@ -685,7 +685,11 @@ pub const Builder = struct {
- );
- const mcpu = self.option([]const u8, "cpu", "Target CPU");
-
-- const triple = maybe_triple orelse return args.default_target;
-+ if (maybe_triple == null and mcpu == null) {
-+ return args.default_target;
-+ }
-+
-+ const triple = maybe_triple orelse "native";
-
- var diags: CrossTarget.ParseOptions.Diagnostics = .{};
- const selected_target = CrossTarget.parse(.{
-@@ -2451,11 +2455,8 @@ pub const LibExeObjStep = struct {
-
- if (populated_cpu_features.eql(cross.cpu.features)) {
- // The CPU name alone is sufficient.
-- // If it is the baseline CPU, no command line args are required.
-- if (cross.cpu.model != std.Target.Cpu.baseline(cross.cpu.arch).model) {
-- try zig_args.append("-mcpu");
-- try zig_args.append(cross.cpu.model.name);
-- }
-+ try zig_args.append("-mcpu");
-+ try zig_args.append(cross.cpu.model.name);
- } else {
- var mcpu_buffer = std.ArrayList(u8).init(builder.allocator);
-
---
-2.33.1
-
diff --git a/srcpkgs/zig/template b/srcpkgs/zig/template
index 728c5a64e9df..9807f7ab206b 100644
--- a/srcpkgs/zig/template
+++ b/srcpkgs/zig/template
@@ -1,17 +1,19 @@
# Template file for 'zig'
pkgname=zig
-version=0.8.1
-revision=2
+version=0.10.1
+revision=1
archs="x86_64* aarch64*"
build_style=cmake
make_cmd=make
-makedepends="clang llvm12 lld-devel"
+# we add xml2, zstd, zlib and ncurses
+# because our lld is static-only and requires those to work
+makedepends="clang llvm15 lld-devel libxml2-devel libzstd-devel ncurses-devel zlib-devel"
short_desc="Programming language designed for robustness, optimality, and clarity"
maintainer="Isaac Freund <mail@isaacfreund.com>"
license="MIT"
homepage="https://ziglang.org"
distfiles="https://ziglang.org/download/${version}/zig-${version}.tar.xz"
-checksum=8c428e14a0a89cb7a15a6768424a37442292858cdb695e2eb503fa3c7bf47f1a
+checksum=69459bc804333df077d441ef052ffa143d53012b655a51f04cfef1414c04168c
nopie=yes
nocross=yes
From 9f7e9b679d0fc46301afe5472f2cd9f0627d83ef Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Tue, 24 Jan 2023 14:03:51 +0100
Subject: [PATCH 17/17] river: update to 0.2.3
---
...ble-PIE-for-river-riverctl-rivertile.patch | 42 -------------------
srcpkgs/river/template | 10 ++---
2 files changed, 5 insertions(+), 47 deletions(-)
delete mode 100644 srcpkgs/river/patches/0001-Enable-PIE-for-river-riverctl-rivertile.patch
diff --git a/srcpkgs/river/patches/0001-Enable-PIE-for-river-riverctl-rivertile.patch b/srcpkgs/river/patches/0001-Enable-PIE-for-river-riverctl-rivertile.patch
deleted file mode 100644
index ecc68302db09..000000000000
--- a/srcpkgs/river/patches/0001-Enable-PIE-for-river-riverctl-rivertile.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From 759c1c7a915083f3da46960ff82fa2a3566a7065 Mon Sep 17 00:00:00 2001
-From: Isaac Freund <mail@isaacfreund.com>
-Date: Wed, 3 Nov 2021 14:21:35 +0100
-Subject: [PATCH] Enable PIE for river, riverctl, rivertile
-
-There is sadly not yet a standard way to do this exposed by the zig
-build system. See: https://github.com/ziglang/zig/issues/7201
----
- build.zig | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/build.zig b/build.zig
-index d561f49..8ac9a4e 100644
---- a/build.zig
-+++ b/build.zig
-@@ -85,6 +85,7 @@ pub fn build(b: *zbs.Builder) !void {
- const river = b.addExecutable("river", "river/main.zig");
- river.setTarget(target);
- river.setBuildMode(mode);
-+ river.pie = true;
- river.addBuildOption(bool, "xwayland", xwayland);
- river.addBuildOption([:0]const u8, "version", full_version);
-
-@@ -97,6 +98,7 @@ pub fn build(b: *zbs.Builder) !void {
- const riverctl = b.addExecutable("riverctl", "riverctl/main.zig");
- riverctl.setTarget(target);
- riverctl.setBuildMode(mode);
-+ riverctl.pie = true;
- riverctl.addBuildOption([:0]const u8, "version", full_version);
-
- riverctl.step.dependOn(&scanner.step);
-@@ -114,6 +116,7 @@ pub fn build(b: *zbs.Builder) !void {
- const rivertile = b.addExecutable("rivertile", "rivertile/main.zig");
- rivertile.setTarget(target);
- rivertile.setBuildMode(mode);
-+ rivertile.pie = true;
- rivertile.addBuildOption([:0]const u8, "version", full_version);
-
- rivertile.step.dependOn(&scanner.step);
---
-2.33.1
-
diff --git a/srcpkgs/river/template b/srcpkgs/river/template
index 3906858d507e..431aa4bd8e8e 100644
--- a/srcpkgs/river/template
+++ b/srcpkgs/river/template
@@ -1,18 +1,18 @@
# Template file for 'river'
pkgname=river
-version=0.1.1
-revision=2
+version=0.2.3
+revision=1
build_style=zig-build
-configure_args="$(vopt_if xwayland -Dxwayland)"
+configure_args="$(vopt_if xwayland -Dxwayland) -Dpie"
hostmakedepends="pkg-config wayland-devel scdoc"
-makedepends="wlroots0.15-devel libevdev-devel"
+makedepends="wlroots-devel libevdev-devel"
depends="$(vopt_if xwayland xorg-server-xwayland)"
short_desc="Dynamic tiling Wayland compositor"
maintainer="Isaac Freund <mail@isaacfreund.com>"
license="GPL-3.0-or-later"
homepage="https://github.com/riverwm/river"
distfiles="${homepage}/releases/download/v${version}/river-${version}.tar.gz"
-checksum=2a0bcd4670ed9ebd39c279f2bf10803fc65c9f3ee2307ce40728df23ce914d18
+checksum=7acdd2b929e16a20006b4baf1f29e7a8dc7f70cf5747e1503a610a90d1637132
build_options="xwayland"
build_options_default="xwayland"
^ permalink raw reply [flat|nested] 96+ messages in thread
* Re: [WIP] LLVM 15
2022-11-28 15:30 [PR PATCH] [WIP] LLVM 15 tranzystorek-io
` (58 preceding siblings ...)
2023-02-10 14:20 ` tranzystorek-io
@ 2023-02-10 14:49 ` oreo639
2023-02-10 14:50 ` oreo639
` (34 subsequent siblings)
94 siblings, 0 replies; 96+ messages in thread
From: oreo639 @ 2023-02-10 14:49 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 321 bytes --]
New comment by oreo639 on void-packages repository
https://github.com/void-linux/void-packages/pull/40821#issuecomment-1425912418
Comment:
The libclc tests fail on every distro afaict (at least on Debian, Fedora, and Alpine) LLVM upstream's CI compiles with everything enabled except clspv and doesn't run those tests.
^ permalink raw reply [flat|nested] 96+ messages in thread
* Re: [WIP] LLVM 15
2022-11-28 15:30 [PR PATCH] [WIP] LLVM 15 tranzystorek-io
` (59 preceding siblings ...)
2023-02-10 14:49 ` oreo639
@ 2023-02-10 14:50 ` oreo639
2023-02-10 14:51 ` oreo639
` (33 subsequent siblings)
94 siblings, 0 replies; 96+ messages in thread
From: oreo639 @ 2023-02-10 14:50 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 501 bytes --]
New comment by oreo639 on void-packages repository
https://github.com/void-linux/void-packages/pull/40821#issuecomment-1425912418
Comment:
> libclc (tests fail with unresolved calls https://gist.githubusercontent.com/tranzystorek-io/a2aa8a0d8010af5299f7d1ff9f82c22b/raw/6d316d99d6079990b73ae77d274dd120b9560589/LastTest.log)
The libclc tests fail on every distro afaict (at least on Fedora and Alpine) LLVM upstream's CI compiles with everything enabled except clspv and doesn't run those tests.
^ permalink raw reply [flat|nested] 96+ messages in thread
* Re: [WIP] LLVM 15
2022-11-28 15:30 [PR PATCH] [WIP] LLVM 15 tranzystorek-io
` (60 preceding siblings ...)
2023-02-10 14:50 ` oreo639
@ 2023-02-10 14:51 ` oreo639
2023-02-10 14:51 ` oreo639
` (32 subsequent siblings)
94 siblings, 0 replies; 96+ messages in thread
From: oreo639 @ 2023-02-10 14:51 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 571 bytes --]
New comment by oreo639 on void-packages repository
https://github.com/void-linux/void-packages/pull/40821#issuecomment-1425912418
Comment:
> libclc (tests fail with unresolved calls https://gist.githubusercontent.com/tranzystorek-io/a2aa8a0d8010af5299f7d1ff9f82c22b/raw/6d316d99d6079990b73ae77d274dd120b9560589/LastTest.log)
The clspv libclc tests fail on every distro afaict (at least on Fedora and Alpine) LLVM upstream's CI compiles with everything enabled except clspv and doesn't run those tests. We don't ship clspv so it should be fine to just not enable it.
^ permalink raw reply [flat|nested] 96+ messages in thread
* Re: [WIP] LLVM 15
2022-11-28 15:30 [PR PATCH] [WIP] LLVM 15 tranzystorek-io
` (61 preceding siblings ...)
2023-02-10 14:51 ` oreo639
@ 2023-02-10 14:51 ` oreo639
2023-02-10 14:55 ` oreo639
` (31 subsequent siblings)
94 siblings, 0 replies; 96+ messages in thread
From: oreo639 @ 2023-02-10 14:51 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 568 bytes --]
New comment by oreo639 on void-packages repository
https://github.com/void-linux/void-packages/pull/40821#issuecomment-1425912418
Comment:
> libclc (tests fail with unresolved calls https://gist.githubusercontent.com/tranzystorek-io/a2aa8a0d8010af5299f7d1ff9f82c22b/raw/6d316d99d6079990b73ae77d274dd120b9560589/LastTest.log)
The clspv libclc tests fail on every distro afaict (at least on Fedora and Alpine) LLVM upstream's CI compiles with everything enabled except clspv and doesn't run those tests. We don't ship clspv so it should be fine to just disable it.
^ permalink raw reply [flat|nested] 96+ messages in thread
* Re: [WIP] LLVM 15
2022-11-28 15:30 [PR PATCH] [WIP] LLVM 15 tranzystorek-io
` (62 preceding siblings ...)
2023-02-10 14:51 ` oreo639
@ 2023-02-10 14:55 ` oreo639
2023-02-10 16:26 ` [PR PATCH] [Updated] " tranzystorek-io
` (30 subsequent siblings)
94 siblings, 0 replies; 96+ messages in thread
From: oreo639 @ 2023-02-10 14:55 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 816 bytes --]
New comment by oreo639 on void-packages repository
https://github.com/void-linux/void-packages/pull/40821#issuecomment-1425912418
Comment:
> libclc (tests fail with unresolved calls https://gist.githubusercontent.com/tranzystorek-io/a2aa8a0d8010af5299f7d1ff9f82c22b/raw/6d316d99d6079990b73ae77d274dd120b9560589/LastTest.log)
The clspv libclc tests fail on every distro afaict (at least on Fedora and Alpine) LLVM upstream's CI compiles with everything enabled except clspv and doesn't run those tests. We don't ship clspv so it should be fine to just disable it.
https://src.fedoraproject.org/rpms/libclc/blob/rawhide/f/libclc.spec#_83
https://github.com/alpinelinux/aports/blob/master/testing/libclc/APKBUILD#L25
https://github.com/llvm/llvm-project/blob/main/.github/workflows/llvm-project-tests.yml#L93
^ permalink raw reply [flat|nested] 96+ messages in thread
* Re: [PR PATCH] [Updated] [WIP] LLVM 15
2022-11-28 15:30 [PR PATCH] [WIP] LLVM 15 tranzystorek-io
` (63 preceding siblings ...)
2023-02-10 14:55 ` oreo639
@ 2023-02-10 16:26 ` tranzystorek-io
2023-02-10 16:42 ` tranzystorek-io
` (29 subsequent siblings)
94 siblings, 0 replies; 96+ messages in thread
From: tranzystorek-io @ 2023-02-10 16:26 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 1154 bytes --]
There is an updated pull request by tranzystorek-io against master on the void-packages repository
https://github.com/tranzystorek-io/void-packages llvm15
https://github.com/void-linux/void-packages/pull/40821
[WIP] LLVM 15
[ci skip]
TODO:
- [ ] Adjust patches marked as `.patch.skip`
- [x] Make libomp a shlib (change so file name and install a symlink)
- [x] Avoid creating triplet dirs under /usr/
TODO LLVM rdeps:
- [ ] clazy (breaking changes in clang API)
- [x] beignet (https://github.com/void-linux/void-packages/pull/41529)
- [ ] ispc (1.18.1 supports LLVM `<= 14`)
- [ ] ldc (1.30.0 supports LLVM `<= 14`)
- [ ] ghdl (2.0.0 supports LLVM `<= 14`)
- [x] qt
- [ ] qtcreator (breaking changes in clang-format API)
- [ ] shiboken2 (tests failing with llvm15)
- [x] bpftrace (https://github.com/void-linux/void-packages/pull/39002)
- [ ] libclc (tests fail with unresolved calls https://gist.githubusercontent.com/tranzystorek-io/a2aa8a0d8010af5299f7d1ff9f82c22b/raw/6d316d99d6079990b73ae77d274dd120b9560589/LastTest.log)
- [x] zig
A patch file from https://github.com/void-linux/void-packages/pull/40821.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-llvm15-40821.patch --]
[-- Type: text/x-diff, Size: 86398 bytes --]
From fb0c52ffe973a6110b9bf45c87af5b24386fb919 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Sun, 18 Dec 2022 00:36:59 +0100
Subject: [PATCH 01/18] New package: llvm15-15.0.7
---
common/shlibs | 3 +
srcpkgs/libllvm15 | 1 +
.../llvm15/files/llvm-Config-llvm-config.h | 9 +
...clang-001-fix-unwind-chain-inclusion.patch | 44 ++
.../patches/clang-002-add-musl-triples.patch | 115 +++++
.../clang-003-ppc64-dynamic-linker-path.patch | 13 +
.../patches/clang-004-ppc64-musl-elfv2.patch | 48 ++
.../compiler-rt-sanitizer-ppc64-musl.patch | 35 ++
.../compiler-rt-xray-ppc64-musl.patch.skip | 62 +++
srcpkgs/llvm15/patches/libcxx-musl.patch | 26 ++
srcpkgs/llvm15/patches/libcxx-ppc.patch | 22 +
.../llvm15/patches/libcxx-ssp-nonshared.patch | 11 +
srcpkgs/llvm15/patches/libcxxabi-dl.patch | 25 +
srcpkgs/llvm15/patches/libcxxabi-musl.patch | 37 ++
srcpkgs/llvm15/patches/libomp-soname.patch | 12 +
.../llvm15/patches/libunwind-ppc32.patch.skip | 63 +++
srcpkgs/llvm15/patches/lldb-musl.patch | 40 ++
srcpkgs/llvm15/patches/llvm-001-musl.patch | 57 +++
.../patches/llvm-002-musl-ppc64-elfv2.patch | 30 ++
.../patches/llvm-003-ppc-secureplt.patch | 11 +
.../patches/llvm-004-override-opt.patch | 18 +
.../llvm15/patches/llvm-005-ppc-bigpic.patch | 36 ++
.../patches/llvm-006-aarch64-mf_exec.patch | 25 +
srcpkgs/llvm15/template | 442 ++++++++++++++++++
srcpkgs/llvm15/update | 3 +
25 files changed, 1188 insertions(+)
create mode 120000 srcpkgs/libllvm15
create mode 100644 srcpkgs/llvm15/files/llvm-Config-llvm-config.h
create mode 100644 srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch
create mode 100644 srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch
create mode 100644 srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch
create mode 100644 srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch
create mode 100644 srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch
create mode 100644 srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip
create mode 100644 srcpkgs/llvm15/patches/libcxx-musl.patch
create mode 100644 srcpkgs/llvm15/patches/libcxx-ppc.patch
create mode 100644 srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch
create mode 100644 srcpkgs/llvm15/patches/libcxxabi-dl.patch
create mode 100644 srcpkgs/llvm15/patches/libcxxabi-musl.patch
create mode 100644 srcpkgs/llvm15/patches/libomp-soname.patch
create mode 100644 srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip
create mode 100644 srcpkgs/llvm15/patches/lldb-musl.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-001-musl.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-004-override-opt.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch
create mode 100644 srcpkgs/llvm15/template
create mode 100644 srcpkgs/llvm15/update
diff --git a/common/shlibs b/common/shlibs
index 504d29f4cb98..7c1c48c61065 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -992,6 +992,9 @@ libclang.so.12 libclang-12.0.0_1
libclang-cpp.so.12 libclang-cpp-12.0.0_1
libLLVM-11.so libllvm11-11.0.0_1
libLLVM-12.so libllvm12-12.0.0_1
+libLLVM-15.so libllvm15-15.0.7_1
+libomp.so.5 libomp-15.0.7_1
+libomptarget.so.15 libomp-15.0.7_1
libisofs.so.6 libisofs-0.6.24_1
libmpack.so.0 libmpack-1.0.5_1
libGeoIP.so.1 libgeoip-1.4.8_1
diff --git a/srcpkgs/libllvm15 b/srcpkgs/libllvm15
new file mode 120000
index 000000000000..ad57a969b9f9
--- /dev/null
+++ b/srcpkgs/libllvm15
@@ -0,0 +1 @@
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm15/files/llvm-Config-llvm-config.h b/srcpkgs/llvm15/files/llvm-Config-llvm-config.h
new file mode 100644
index 000000000000..2fa08c9be696
--- /dev/null
+++ b/srcpkgs/llvm15/files/llvm-Config-llvm-config.h
@@ -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
diff --git a/srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch b/srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch
new file mode 100644
index 000000000000..e4eaa7783e7a
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch
@@ -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
diff --git a/srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch b/srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch
new file mode 100644
index 000000000000..0ef4c7e75d6b
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch
@@ -0,0 +1,115 @@
+--- a/clang/lib/Driver/ToolChains/Gnu.cpp
++++ b/clang/lib/Driver/ToolChains/Gnu.cpp
+@@ -2086,7 +2086,8 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
+ static const char *const ARMHFTriples[] = {"arm-linux-gnueabihf",
+ "armv7hl-redhat-linux-gnueabi",
+ "armv6hl-suse-linux-gnueabi",
+- "armv7hl-suse-linux-gnueabi"};
++ "armv7hl-suse-linux-gnueabi",
++ "armv7l-linux-gnueabihf"};
+ static const char *const ARMebLibDirs[] = {"/lib"};
+ static const char *const ARMebTriples[] = {"armeb-linux-gnueabi",
+ "armeb-linux-androideabi"};
+@@ -2153,8 +2154,7 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
+ "powerpc64-suse-linux", "powerpc-montavista-linuxspe"};
+ static const char *const PPCLELibDirs[] = {"/lib32", "/lib"};
+ static const char *const PPCLETriples[] = {"powerpcle-linux-gnu",
+- "powerpcle-unknown-linux-gnu",
+- "powerpcle-linux-musl"};
++ "powerpcle-unknown-linux-gnu"};
+
+ static const char *const PPC64LibDirs[] = {"/lib64", "/lib"};
+ static const char *const PPC64Triples[] = {
+@@ -2235,6 +2235,92 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
+ return;
+ }
+
++ if (TargetTriple.isMusl()) {
++ static const char *const AArch64MuslTriples[] = {"aarch64-linux-musl"};
++ static const char *const ARMHFMuslTriples[] = {
++ "arm-linux-musleabihf", "armv7l-linux-musleabihf"
++ };
++ static const char *const ARMMuslTriples[] = {"arm-linux-musleabi"};
++ static const char *const X86_64MuslTriples[] = {"x86_64-linux-musl"};
++ static const char *const X86MuslTriples[] = {"i686-linux-musl"};
++ static const char *const MIPSMuslTriples[] = {
++ "mips-linux-musl", "mipsel-linux-musl",
++ "mipsel-linux-muslhf", "mips-linux-muslhf"
++ };
++ static const char *const PPCMuslTriples[] = {"powerpc-linux-musl"};
++ static const char *const PPCLEMuslTriples[] = {"powerpcle-linux-musl"};
++ static const char *const PPC64MuslTriples[] = {"powerpc64-linux-musl"};
++ static const char *const PPC64LEMuslTriples[] = {"powerpc64le-linux-musl"};
++ static const char *const RISCV64MuslTriples[] = {"riscv64-linux-musl"};
++
++ switch (TargetTriple.getArch()) {
++ case llvm::Triple::aarch64:
++ LibDirs.append(begin(AArch64LibDirs), end(AArch64LibDirs));
++ TripleAliases.append(begin(AArch64MuslTriples), end(AArch64MuslTriples));
++ BiarchLibDirs.append(begin(AArch64LibDirs), end(AArch64LibDirs));
++ BiarchTripleAliases.append(begin(AArch64MuslTriples), end(AArch64MuslTriples));
++ break;
++ case llvm::Triple::arm:
++ LibDirs.append(begin(ARMLibDirs), end(ARMLibDirs));
++ if (TargetTriple.getEnvironment() == llvm::Triple::MuslEABIHF) {
++ TripleAliases.append(begin(ARMHFMuslTriples), end(ARMHFMuslTriples));
++ } else {
++ TripleAliases.append(begin(ARMMuslTriples), end(ARMMuslTriples));
++ }
++ break;
++ case llvm::Triple::x86_64:
++ LibDirs.append(begin(X86_64LibDirs), end(X86_64LibDirs));
++ TripleAliases.append(begin(X86_64MuslTriples), end(X86_64MuslTriples));
++ BiarchLibDirs.append(begin(X86LibDirs), end(X86LibDirs));
++ BiarchTripleAliases.append(begin(X86MuslTriples), end(X86MuslTriples));
++ break;
++ case llvm::Triple::x86:
++ LibDirs.append(begin(X86LibDirs), end(X86LibDirs));
++ TripleAliases.append(begin(X86MuslTriples), end(X86MuslTriples));
++ BiarchLibDirs.append(begin(X86_64LibDirs), end(X86_64LibDirs));
++ BiarchTripleAliases.append(begin(X86_64MuslTriples), end(X86_64MuslTriples));
++ break;
++ case llvm::Triple::mips:
++ LibDirs.append(begin(MIPSLibDirs), end(MIPSLibDirs));
++ TripleAliases.append(begin(MIPSMuslTriples), end(MIPSMuslTriples));
++ break;
++ case llvm::Triple::ppc:
++ LibDirs.append(begin(PPCLibDirs), end(PPCLibDirs));
++ TripleAliases.append(begin(PPCMuslTriples), end(PPCMuslTriples));
++ BiarchLibDirs.append(begin(PPC64LibDirs), end(PPC64LibDirs));
++ BiarchTripleAliases.append(begin(PPC64MuslTriples), end(PPC64MuslTriples));
++ break;
++ case llvm::Triple::ppcle:
++ LibDirs.append(begin(PPCLELibDirs), end(PPCLELibDirs));
++ TripleAliases.append(begin(PPCLEMuslTriples), end(PPCLEMuslTriples));
++ BiarchLibDirs.append(begin(PPC64LELibDirs), end(PPC64LELibDirs));
++ BiarchTripleAliases.append(begin(PPC64LEMuslTriples), end(PPC64LEMuslTriples));
++ break;
++ case llvm::Triple::ppc64:
++ LibDirs.append(begin(PPC64LibDirs), end(PPC64LibDirs));
++ TripleAliases.append(begin(PPC64MuslTriples), end(PPC64MuslTriples));
++ BiarchLibDirs.append(begin(PPCLibDirs), end(PPCLibDirs));
++ BiarchTripleAliases.append(begin(PPCMuslTriples), end(PPCMuslTriples));
++ break;
++ case llvm::Triple::ppc64le:
++ LibDirs.append(begin(PPC64LELibDirs), end(PPC64LELibDirs));
++ TripleAliases.append(begin(PPC64LEMuslTriples), end(PPC64LEMuslTriples));
++ BiarchLibDirs.append(begin(PPCLELibDirs), end(PPCLELibDirs));
++ BiarchTripleAliases.append(begin(PPCLEMuslTriples), end(PPCLEMuslTriples));
++ break;
++ case llvm::Triple::riscv64:
++ LibDirs.append(begin(RISCV64LibDirs), end(RISCV64LibDirs));
++ TripleAliases.append(begin(RISCV64MuslTriples), end(RISCV64MuslTriples));
++ break;
++ default:
++ break;
++ }
++ TripleAliases.push_back(TargetTriple.str());
++ if (TargetTriple.str() != BiarchTriple.str())
++ BiarchTripleAliases.push_back(BiarchTriple.str());
++ return;
++ }
++
+ // Android targets should not use GNU/Linux tools or libraries.
+ if (TargetTriple.isAndroid()) {
+ static const char *const AArch64AndroidTriples[] = {
diff --git a/srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch b/srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch
new file mode 100644
index 000000000000..4ad6412d1e6c
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch
@@ -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 =
diff --git a/srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch b/srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch
new file mode 100644
index 000000000000..21fc8003c5f1
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch
@@ -0,0 +1,48 @@
+--- a/clang/lib/Basic/Targets/PPC.h
++++ b/clang/lib/Basic/Targets/PPC.h
+@@ -415,11 +415,10 @@ public:
+ LongDoubleFormat = &llvm::APFloat::IEEEdouble();
+ } else if ((Triple.getArch() == llvm::Triple::ppc64le)) {
+ DataLayout = "e-m:e-i64:64-n32:64";
+- ABI = "elfv2";
+ } else {
+ DataLayout = "E-m:e-i64:64-n32:64";
+- ABI = "elfv1";
+ }
++ ABI = "elfv2";
+
+ if (Triple.isOSFreeBSD() || Triple.isOSOpenBSD() || Triple.isMusl()) {
+ LongDoubleWidth = LongDoubleAlign = 64;
+--- a/clang/lib/CodeGen/TargetInfo.cpp
++++ b/clang/lib/CodeGen/TargetInfo.cpp
+@@ -10927,9 +10927,9 @@ const TargetCodeGenInfo &CodeGenModule::getTargetCodeGenInfo() {
+ return SetCGInfo(new AIXTargetCodeGenInfo(Types, /*Is64Bit*/ true));
+
+ if (Triple.isOSBinFormatELF()) {
+- PPC64_SVR4_ABIInfo::ABIKind Kind = PPC64_SVR4_ABIInfo::ELFv1;
+- if (getTarget().getABI() == "elfv2")
+- Kind = PPC64_SVR4_ABIInfo::ELFv2;
++ PPC64_SVR4_ABIInfo::ABIKind Kind = PPC64_SVR4_ABIInfo::ELFv2;
++ if (getTarget().getABI() == "elfv1")
++ Kind = PPC64_SVR4_ABIInfo::ELFv1;
+ bool IsSoftFloat = CodeGenOpts.FloatABI == "soft";
+
+ return SetCGInfo(
+--- a/clang/lib/Driver/ToolChains/Clang.cpp
++++ b/clang/lib/Driver/ToolChains/Clang.cpp
+@@ -1920,14 +1920,7 @@ void Clang::AddPPCTargetArgs(const ArgList &Args,
+ const llvm::Triple &T = getToolChain().getTriple();
+ if (T.isOSBinFormatELF()) {
+ switch (getToolChain().getArch()) {
+- case llvm::Triple::ppc64: {
+- if ((T.isOSFreeBSD() && T.getOSMajorVersion() >= 13) ||
+- T.isOSOpenBSD() || T.isMusl())
+- ABIName = "elfv2";
+- else
+- ABIName = "elfv1";
+- break;
+- }
++ case llvm::Triple::ppc64:
+ case llvm::Triple::ppc64le:
+ ABIName = "elfv2";
+ break;
diff --git a/srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch b/srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch
new file mode 100644
index 000000000000..360cfc1ba7f1
--- /dev/null
+++ b/srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch
@@ -0,0 +1,35 @@
+--- 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__) || SANITIZER_RISCV64
++ defined(__hexagon__) || defined(__powerpc__) || 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_ANDROID
++#if (defined(__aarch64__) || defined(__powerpc__) || SANITIZER_RISCV64) && !SANITIZER_ANDROID
+ // GLIBC 2.20+ sys/user does not include asm/ptrace.h
+ # include <asm/ptrace.h>
+ #endif
diff --git a/srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip b/srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip
new file mode 100644
index 000000000000..d0b61c80c897
--- /dev/null
+++ b/srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip
@@ -0,0 +1,62 @@
+--- a/compiler-rt/lib/xray/xray_powerpc64.inc
++++ b/compiler-rt/lib/xray/xray_powerpc64.inc
+@@ -12,7 +12,13 @@
+
+ #include <cstdint>
+ #include <mutex>
++#ifdef __GLIBC__
+ #include <sys/platform/ppc.h>
++#else
++#include <cctype>
++#include <cstring>
++#include <cstdlib>
++#endif
+
+ #include "xray_defs.h"
+
+@@ -20,13 +26,45 @@ namespace __xray {
+
+ ALWAYS_INLINE uint64_t readTSC(uint8_t &CPU) XRAY_NEVER_INSTRUMENT {
+ CPU = 0;
++#ifdef __GLIBC__
+ return __ppc_get_timebase();
++#else
++ return __builtin_ppc_get_timebase();
++#endif
+ }
+
+ inline uint64_t getTSCFrequency() XRAY_NEVER_INSTRUMENT {
+ static std::mutex M;
+ std::lock_guard<std::mutex> Guard(M);
++#ifdef __GLIBC__
+ return __ppc_get_timebase_freq();
++#else
++ /* FIXME: a less dirty implementation? */
++ static uint64_t base;
++ if (!base) {
++ FILE *f = fopen("/proc/cpuinfo", "rb");
++ if (f) {
++ ssize_t nr;
++ /* virtually always big enough to hold the line */
++ char buf[512];
++ while (fgets(buf, sizeof(buf), f)) {
++ char *ret = strstr(buf, "timebase");
++ if (!ret) {
++ continue;
++ }
++ ret += sizeof("timebase") - 1;
++ ret = strchr(ret, ':');
++ if (!ret) {
++ continue;
++ }
++ base = strtoul(ret + 1, nullptr, 10);
++ break;
++ }
++ fclose(f);
++ }
++ }
++ return base;
++#endif
+ }
+
+ inline bool probeRequiredCPUFeatures() XRAY_NEVER_INSTRUMENT {
diff --git a/srcpkgs/llvm15/patches/libcxx-musl.patch b/srcpkgs/llvm15/patches/libcxx-musl.patch
new file mode 100644
index 000000000000..bbd31ffc2cb1
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxx-musl.patch
@@ -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,
+ typename remove_reference<decltype(errno)>::type __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
+ typename remove_reference<decltype(errno)>::type __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,
+ typename remove_reference<decltype(errno)>::type __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
+ typename remove_reference<decltype(errno)>::type __current_errno = errno;
+ if (__current_errno == 0)
+ errno = __save_errno;
diff --git a/srcpkgs/llvm15/patches/libcxx-ppc.patch b/srcpkgs/llvm15/patches/libcxx-ppc.patch
new file mode 100644
index 000000000000..7a92f8004e1c
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxx-ppc.patch
@@ -0,0 +1,22 @@
+This ensures `is_iec559` is defined correctly under all long double ABIs,
+including musl and its 64-bit long double. Also, `__ppc__` or `__ppc64__`
+is not defined on gcc.
+
+--- a/libcxx/include/limits
++++ b/libcxx/include/limits
+@@ -426,8 +426,14 @@ protected:
+ _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type signaling_NaN() _NOEXCEPT {return __builtin_nansl("");}
+ _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type denorm_min() _NOEXCEPT {return __LDBL_DENORM_MIN__;}
+
+-#if (defined(__ppc__) || defined(__ppc64__))
++#if defined(__powerpc__) || defined(__powerpc64__)
++#if (__LDBL_MAX_EXP__ > __DBL_MAX_EXP__) || (__LDBL_MANT_DIG__ == __DBL_MANT_DIG__)
++ /* IEEE 754 quadruple or double precision */
++ static _LIBCPP_CONSTEXPR const bool is_iec559 = true;
++#else
++ /* 128-bit IBM double-double */
+ static _LIBCPP_CONSTEXPR const bool is_iec559 = false;
++#endif
+ #else
+ static _LIBCPP_CONSTEXPR const bool is_iec559 = true;
+ #endif
diff --git a/srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch b/srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch
new file mode 100644
index 000000000000..70292beb2fcd
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch
@@ -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()
diff --git a/srcpkgs/llvm15/patches/libcxxabi-dl.patch b/srcpkgs/llvm15/patches/libcxxabi-dl.patch
new file mode 100644
index 000000000000..3a15f9db8c98
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxxabi-dl.patch
@@ -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 @@
+ target_link_libraries(${target} PRIVATE m)
+ endif()
+
++ if (LIBCXX_HAS_C_LIB)
++ target_link_libraries(${target} PRIVATE dl)
++ endif()
++
+ if (LIBCXX_HAS_RT_LIB)
+ target_link_libraries(${target} PRIVATE rt)
+ endif()
diff --git a/srcpkgs/llvm15/patches/libcxxabi-musl.patch b/srcpkgs/llvm15/patches/libcxxabi-musl.patch
new file mode 100644
index 000000000000..55bf6f5aaa08
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxxabi-musl.patch
@@ -0,0 +1,37 @@
+diff --git a/libcxx/include/__support/musl/xlocale.h b/libcxx/include/__support/musl/xlocale.h
+index e674a41fa..f546119b9 100644
+--- a/libcxx/include/__support/musl/xlocale.h
++++ b/libcxx/include/__support/musl/xlocale.h
+@@ -24,27 +24,27 @@
+ extern "C" {
+ #endif
+
+-inline _LIBCPP_HIDE_FROM_ABI long long
++static inline long long
+ strtoll_l(const char *__nptr, char **__endptr, int __base, locale_t) {
+ return ::strtoll(__nptr, __endptr, __base);
+ }
+
+-inline _LIBCPP_HIDE_FROM_ABI unsigned long long
++static inline unsigned long long
+ strtoull_l(const char *__nptr, char **__endptr, int __base, locale_t) {
+ return ::strtoull(__nptr, __endptr, __base);
+ }
+
+-inline _LIBCPP_HIDE_FROM_ABI long long
++static inline long long
+ wcstoll_l(const wchar_t *__nptr, wchar_t **__endptr, int __base, locale_t) {
+ return ::wcstoll(__nptr, __endptr, __base);
+ }
+
+-inline _LIBCPP_HIDE_FROM_ABI unsigned long long
++static inline unsigned long long
+ wcstoull_l(const wchar_t *__nptr, wchar_t **__endptr, int __base, locale_t) {
+ return ::wcstoull(__nptr, __endptr, __base);
+ }
+
+-inline _LIBCPP_HIDE_FROM_ABI long double
++static inline long double
+ wcstold_l(const wchar_t *__nptr, wchar_t **__endptr, locale_t) {
+ return ::wcstold(__nptr, __endptr);
+ }
diff --git a/srcpkgs/llvm15/patches/libomp-soname.patch b/srcpkgs/llvm15/patches/libomp-soname.patch
new file mode 100644
index 000000000000..9a622cd9254c
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libomp-soname.patch
@@ -0,0 +1,12 @@
+diff --git a/openmp/runtime/src/CMakeLists.txt b/openmp/runtime/src/CMakeLists.txt
+index df1ca9d90..9d2c3b7b9 100644
+--- a/openmp/runtime/src/CMakeLists.txt
++++ b/openmp/runtime/src/CMakeLists.txt
+@@ -150,6 +150,7 @@ libomp_get_libflags(LIBOMP_CONFIGURED_LIBFLAGS)
+ # Build libomp library. Add LLVMSupport dependency if building in-tree with libomptarget profiling enabled.
+ if(OPENMP_STANDALONE_BUILD OR (NOT OPENMP_ENABLE_LIBOMP_PROFILING))
+ add_library(omp ${LIBOMP_LIBRARY_KIND} ${LIBOMP_SOURCE_FILES})
++ set_target_properties(omp PROPERTIES VERSION ${LIBOMP_VERSION_MAJOR} SOVERSION ${LIBOMP_VERSION_MAJOR})
+ # Linking command will include libraries in LIBOMP_CONFIGURED_LIBFLAGS
+ target_link_libraries(omp ${LIBOMP_CONFIGURED_LIBFLAGS} ${LIBOMP_DL_LIBS})
+ else()
diff --git a/srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip b/srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip
new file mode 100644
index 000000000000..74aa7576ecf9
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip
@@ -0,0 +1,63 @@
+This fixes build at least with gcc9 which does not define `__ppc__`.
+
+--- a/libunwind/include/__libunwind_config.h
++++ b/libunwind/include/__libunwind_config.h
+@@ -49,7 +49,7 @@
+ # define _LIBUNWIND_CONTEXT_SIZE 167
+ # define _LIBUNWIND_CURSOR_SIZE 179
+ # define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_PPC64
+-# elif defined(__ppc__)
++# elif defined(__powerpc__)
+ # define _LIBUNWIND_TARGET_PPC 1
+ # define _LIBUNWIND_CONTEXT_SIZE 117
+ # define _LIBUNWIND_CURSOR_SIZE 124
+--- a/libunwind/src/UnwindRegistersRestore.S
++++ b/libunwind/src/UnwindRegistersRestore.S
+@@ -392,7 +392,7 @@ Lnovec:
+ PPC64_LR(3)
+ bctr
+
+-#elif defined(__ppc__)
++#elif defined(__powerpc__)
+
+ DEFINE_LIBUNWIND_FUNCTION(_ZN9libunwind13Registers_ppc6jumptoEv)
+ //
+--- a/libunwind/src/UnwindRegistersSave.S
++++ b/libunwind/src/UnwindRegistersSave.S
+@@ -554,7 +554,7 @@ DEFINE_LIBUNWIND_FUNCTION(__unw_getcontext)
+ blr
+
+
+-#elif defined(__ppc__)
++#elif defined(__powerpc__)
+
+ //
+ // extern int unw_getcontext(unw_context_t* thread_state)
+--- a/libunwind/src/config.h
++++ b/libunwind/src/config.h
+@@ -95,12 +95,12 @@
+ #define _LIBUNWIND_BUILD_SJLJ_APIS
+ #endif
+
+-#if defined(__i386__) || defined(__x86_64__) || defined(__ppc__) || defined(__ppc64__) || defined(__powerpc64__)
++#if defined(__i386__) || defined(__x86_64__) || defined(__powerpc__) || defined(__powerpc64__)
+ #define _LIBUNWIND_SUPPORT_FRAME_APIS
+ #endif
+
+ #if defined(__i386__) || defined(__x86_64__) || \
+- defined(__ppc__) || defined(__ppc64__) || defined(__powerpc64__) || \
++ defined(__powerpc__) || defined(__powerpc64__) || \
+ (!defined(__APPLE__) && defined(__arm__)) || \
+ (defined(__arm64__) || defined(__aarch64__)) || \
+ defined(__mips__)
+--- a/libunwind/src/libunwind.cpp
++++ b/libunwind/src/libunwind.cpp
+@@ -42,7 +42,7 @@ _LIBUNWIND_HIDDEN int __unw_init_local(unw_cursor_t *cursor,
+ # define REGISTER_KIND Registers_x86_64
+ #elif defined(__powerpc64__)
+ # define REGISTER_KIND Registers_ppc64
+-#elif defined(__ppc__)
++#elif defined(__powerpc__)
+ # define REGISTER_KIND Registers_ppc
+ #elif defined(__aarch64__)
+ # define REGISTER_KIND Registers_arm64
diff --git a/srcpkgs/llvm15/patches/lldb-musl.patch b/srcpkgs/llvm15/patches/lldb-musl.patch
new file mode 100644
index 000000000000..026c5e1e61ba
--- /dev/null
+++ b/srcpkgs/llvm15/patches/lldb-musl.patch
@@ -0,0 +1,40 @@
+--- a/lldb/source/Plugins/Process/Linux/Procfs.h
++++ b/lldb/source/Plugins/Process/Linux/Procfs.h
+@@ -10,6 +10,7 @@
+ // sys/procfs.h on Android/Linux for all supported architectures.
+
+ #include <sys/ptrace.h>
++#include <asm/ptrace.h>
+
+ #include "lldb/lldb-types.h"
+
+@@ -17,23 +18,13 @@
+
+ #include <vector>
+
+-#ifdef __ANDROID__
+-#if defined(__arm64__) || defined(__aarch64__)
+-typedef unsigned long elf_greg_t;
+-typedef elf_greg_t
+- elf_gregset_t[(sizeof(struct user_pt_regs) / sizeof(elf_greg_t))];
+-typedef struct user_fpsimd_state elf_fpregset_t;
+-#ifndef NT_FPREGSET
+-#define NT_FPREGSET NT_PRFPREG
+-#endif // NT_FPREGSET
+-#elif defined(__mips__)
+-#ifndef NT_FPREGSET
+-#define NT_FPREGSET NT_PRFPREG
+-#endif // NT_FPREGSET
+-#endif
+-#else // __ANDROID__
++#if !defined(__GLIBC__) && defined(__powerpc__)
++#define pt_regs musl_pt_regs
++#include <sys/procfs.h>
++#undef pt_regs
++#else
+ #include <sys/procfs.h>
+-#endif // __ANDROID__
++#endif
+
+ namespace lldb_private {
+ namespace process_linux {
diff --git a/srcpkgs/llvm15/patches/llvm-001-musl.patch b/srcpkgs/llvm15/patches/llvm-001-musl.patch
new file mode 100644
index 000000000000..f2a3f8d62813
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-001-musl.patch
@@ -0,0 +1,57 @@
+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;
+diff --git a/lib/Support/Unix/DynamicLibrary.inc b/lib/Support/Unix/DynamicLibrary.inc
+index a2a37996..2f86c470 100644
+--- a/llvm/lib/Support/Unix/DynamicLibrary.inc
++++ b/llvm/lib/Support/Unix/DynamicLibrary.inc
+@@ -102,7 +102,7 @@ static void *DoSearch(const char* SymbolName) {
+
+ // This macro returns the address of a well-known, explicit symbol
+ #define EXPLICIT_SYMBOL(SYM) \
+- if (!strcmp(SymbolName, #SYM)) return &SYM
++ if (!strcmp(SymbolName, #SYM)) return (void *)&SYM
+
+ // Under glibc we have a weird situation. The stderr/out/in symbols are both
+ // macros and global variables because of standards requirements. So, we
+diff --git a/utils/unittest/googletest/src/gtest.cc b/utils/unittest/googletest/src/gtest.cc
+index d882ab2e..f1fb12d0 100644
+--- a/llvm/utils/unittest/googletest/src/gtest.cc
++++ b/llvm/utils/unittest/googletest/src/gtest.cc
+@@ -128,6 +128,7 @@
+
+ #if GTEST_CAN_STREAM_RESULTS_
+ # include <arpa/inet.h> // NOLINT
++# include <sys/socket.h> // NOLINT
+ # include <netdb.h> // NOLINT
+ # include <sys/socket.h> // NOLINT
+ # include <sys/types.h> // NOLINT
diff --git a/srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch b/srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch
new file mode 100644
index 000000000000..0071d964bd37
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch
@@ -0,0 +1,30 @@
+This patches LLVM to use ELFv2 on ppc64 unconditionally unless overridden. We
+need this because unlike most distros we use ELFv2 for both glibc and musl
+on big endian ppc64.
+
+diff --git a/lib/Target/PowerPC/PPCTargetMachine.cpp b/lib/Target/PowerPC/PPCTargetMachine.cpp
+index 0634833e..b7cbc2e7 100644
+--- a/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp
++++ b/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp
+@@ -222,9 +222,8 @@ static PPCTargetMachine::PPCABI computeTargetABI(const Triple &TT,
+
+ switch (TT.getArch()) {
+ case Triple::ppc64le:
+- return PPCTargetMachine::PPC_ABI_ELFv2;
+ case Triple::ppc64:
+- return PPCTargetMachine::PPC_ABI_ELFv1;
++ return PPCTargetMachine::PPC_ABI_ELFv2;
+ default:
+ return PPCTargetMachine::PPC_ABI_UNKNOWN;
+ }
+diff --git a/test/CodeGen/PowerPC/ppc64-elf-abi.ll b/test/CodeGen/PowerPC/ppc64-elf-abi.ll
+index 8b1cf6b5..296a2afa 100644
+--- a/llvm/test/CodeGen/PowerPC/ppc64-elf-abi.ll
++++ b/llvm/test/CodeGen/PowerPC/ppc64-elf-abi.ll
+@@ -1,4 +1,5 @@
+-; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv1
++; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv2
++; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-musl < %s | FileCheck %s -check-prefix=CHECK-ELFv2
+ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu -target-abi elfv1 < %s | FileCheck %s -check-prefix=CHECK-ELFv1
+ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu -target-abi elfv2 < %s | FileCheck %s -check-prefix=CHECK-ELFv2
+ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv2
diff --git a/srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch b/srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch
new file mode 100644
index 000000000000..b5d15974375d
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch
@@ -0,0 +1,11 @@
+--- a/llvm/lib/Target/PowerPC/PPCSubtarget.cpp
++++ b/llvm/lib/Target/PowerPC/PPCSubtarget.cpp
+@@ -165,7 +165,7 @@ void PPCSubtarget::initSubtargetFeatures(StringRef CPU, StringRef FS) {
+
+ if ((TargetTriple.isOSFreeBSD() && TargetTriple.getOSMajorVersion() >= 13) ||
+ TargetTriple.isOSNetBSD() || TargetTriple.isOSOpenBSD() ||
+- TargetTriple.isMusl())
++ isTargetLinux())
+ SecurePlt = true;
+
+ if (HasSPE && IsPPC64)
diff --git a/srcpkgs/llvm15/patches/llvm-004-override-opt.patch b/srcpkgs/llvm15/patches/llvm-004-override-opt.patch
new file mode 100644
index 000000000000..51d0e4b31b32
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-004-override-opt.patch
@@ -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)
diff --git a/srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch b/srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch
new file mode 100644
index 000000000000..d332687b9d92
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch
@@ -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);
diff --git a/srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch b/srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch
new file mode 100644
index 000000000000..a00abd216665
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch
@@ -0,0 +1,25 @@
+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__) || defined (__ppc__) || \
+- defined(_POWER) || defined(_ARCH_PPC))
++ defined(_POWER) || defined(_ARCH_PPC) || (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
diff --git a/srcpkgs/llvm15/template b/srcpkgs/llvm15/template
new file mode 100644
index 000000000000..4d2777451e24
--- /dev/null
+++ b/srcpkgs/llvm15/template
@@ -0,0 +1,442 @@
+# Template file for 'llvm15'
+pkgname=llvm15
+version=15.0.7
+revision=1
+build_wrksrc=llvm
+build_style=cmake
+_ext_suffix=".cpython-${py3_ver/./}-linux-${XBPS_TARGET_LIBC/glibc/gnu}.so"
+configure_args="
+ -DCMAKE_BUILD_TYPE=Release -Wno-dev
+ -DENABLE_LINKER_BUILD_ID=YES
+ -DLLDB_USE_SYSTEM_SIX=YES
+ -DLIBCXX_CXX_ABI=libcxxabi
+ -DLIBCXX_ENABLE_STATIC_ABI_LIBRARY=YES
+ -DLIBCXXABI_USE_LLVM_UNWINDER=YES
+ -DLIBCXXABI_ENABLE_STATIC_UNWINDER=YES
+ -DLIBOMP_ENABLE_SHARED=YES
+ -DLIBOMP_INSTALL_ALIASES=NO
+ -DLLVM_INCLUDE_DOCS=YES
+ -DLLVM_BUILD_DOCS=YES
+ -DLLVM_ENABLE_SPHINX=YES
+ -DSPHINX_WARNINGS_AS_ERRORS=NO
+ -DLLVM_INSTALL_UTILS=YES
+ -DLLVM_BUILD_LLVM_DYLIB=YES
+ -DLLVM_LINK_LLVM_DYLIB=YES
+ -DLLVM_ENABLE_RTTI=YES
+ -DLLVM_ENABLE_FFI=YES
+ -DLLVM_BINUTILS_INCDIR=/usr/include
+ -DLLVM_ENABLE_PER_TARGET_RUNTIME_DIR=NO
+ -DLLDB_PYTHON_RELATIVE_PATH=lib/python${py3_ver}/site-packages
+ -DLLDB_PYTHON_EXE_RELATIVE_PATH=bin/python${py3_ver}
+ -DLLDB_PYTHON_EXT_SUFFIX=$_ext_suffix"
+hostmakedepends="perl python3 zlib-devel libffi-devel swig python3-Sphinx
+ python3-recommonmark python3-sphinx-automodapi"
+makedepends="python3-devel zlib-devel elfutils-devel libffi-devel libedit-devel
+ libxml2-devel binutils-devel libatomic-devel"
+depends="libllvm15>=${version}_${revision}"
+short_desc="Low Level Virtual Machine"
+maintainer="Orphaned <orphan@voidlinux.org>"
+license="Apache-2.0"
+homepage="https://www.llvm.org"
+distfiles="https://github.com/llvm/llvm-project/releases/download/llvmorg-${version}/llvm-project-${version}.src.tar.xz"
+checksum=8b5fcb24b4128cf04df1b0b9410ce8b1a729cb3c544e6da885d234280dedeac6
+lib32disabled=yes
+python_version=3
+
+if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
+ configure_args+=" -DLIBCXX_HAS_MUSL_LIBC=YES
+ -DCOMPILER_RT_BUILD_GWP_ASAN=OFF"
+fi
+
+# "operand out of range" assembler failures
+case "$XBPS_TARGET_MACHINE" in
+ ppc64*) ;;
+ ppc*) configure_args+=" -DCLANG_ENABLE_CLANGD=OFF" ;;
+esac
+
+_enabled_projects="clang;clang-tools-extra;compiler-rt;libcxx;libcxxabi;libunwind;lld"
+
+_lldb_enable=yes
+_libomp_enable=no
+
+case "$XBPS_TARGET_MACHINE" in
+ ppc64le*) ;;
+ ppc*|i686*|riscv64*) _lldb_enable=no ;;
+esac
+
+case "$XBPS_TARGET_MACHINE" in
+ x86_64*|aarch64*|ppc64*) _libomp_enable=yes;;
+esac
+
+subpackages="clang-tools-extra"
+
+# must go before clang
+if [ "$_libomp_enable" = "yes" ]; then
+ _enabled_projects+=";openmp"
+ subpackages+=" libomp libomp-devel"
+ # because of cmake nonsense referencing libomptarget.so.*
+ depends+=" libomp>=${version}_${revision}"
+ if [ "$CROSS_BUILD" ]; then
+ # Seems to require a full host llvm/clang build
+ configure_args+=" -DLIBOMPTARGET_BUILD_CUDA_PLUGIN=OFF"
+ configure_args+=" -DLIBOMPTARGET_BUILD_AMDGPU_PLUGIN=OFF"
+ fi
+fi
+
+subpackages+=" clang clang-analyzer libclang libclang-cpp
+ llvm-libunwind llvm-libunwind-devel libcxx libcxx-devel
+ libcxxabi libcxxabi-devel libllvm15"
+
+if [ "$_lldb_enable" = "yes" ]; then
+ # XXX fails to cross compile due to python
+ _enabled_projects+=";lldb"
+ subpackages+=" lldb lldb-devel"
+fi
+
+subpackages+=" lld lld-devel"
+
+configure_args+=" -DLLVM_ENABLE_PROJECTS=${_enabled_projects}"
+
+post_patch() {
+ if [ "$_lldb_enable" = "yes" ]; then
+ if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
+ vsed -i 's|__ptrace_request|int|g' \
+ ${wrksrc}/lldb/source/Plugins/Process/Linux/NativeProcessLinux.cpp
+ fi
+ # disable docs for lldb as they fail to generate
+ vsed -i '/add_subdirectory(docs)/d' \
+ ${wrksrc}/lldb/CMakeLists.txt
+ fi
+
+ # update config.guess for better platform detection
+ cp $XBPS_COMMONDIR/environment/configure/automake/config.guess \
+ ${wrksrc}/llvm/cmake
+
+ # fix linker failures on some archs
+ vsed -i 's,check_library_exists(gcc_s .*,set(LIBCXXABI_HAS_GCC_S_LIB ON),' \
+ ${wrksrc}/libcxxabi/cmake/config-ix.cmake
+ vsed -i 's,check_library_exists(gcc .*,set(LIBCXXABI_HAS_GCC_LIB ON),' \
+ ${wrksrc}/libcxxabi/cmake/config-ix.cmake
+
+ # need libssp_nonshared on some musl platforms (because of nodefaultlibs)
+ case "$XBPS_TARGET_MACHINE" in
+ ppc64*) ;;
+ ppc*-musl|i686-musl|mips*-musl)
+ vsed -i 's,^# Setup flags.$,add_library_flags(ssp_nonshared),' \
+ ${wrksrc}/libunwind/src/CMakeLists.txt
+ vsed -i 's,^# Setup flags.$,add_library_flags(ssp_nonshared),' \
+ ${wrksrc}/libcxxabi/src/CMakeLists.txt
+ vsed -i 's,#ssp,,' ${wrksrc}/libcxx/CMakeLists.txt
+ ;;
+ esac
+
+ case "$XBPS_TARGET_MACHINE" in
+ arm*-musl|i686-musl) # sanitizer code is broken since it duplicates some libc bits
+ vsed -i 's/set(COMPILER_RT_HAS_SANITIZER_COMMON TRUE)/set(COMPILER_RT_HAS_SANITIZER_COMMON FALSE)/' \
+ ${wrksrc}/compiler-rt/cmake/config-ix.cmake
+ ;;
+ esac
+}
+
+pre_configure() {
+ local triplet
+
+ # Vastly reduce size of debugging symbols:
+ CFLAGS=${CFLAGS/ -g/ -g1}
+ CXXFLAGS=${CXXFLAGS/ -g/ -g1}
+
+ # since gcc9, the build likes to blow up for ppc32 apparently because
+ # of clang being too large for a 24-bit relative call to the PLT, so
+ # optimize for size instead
+ case "$XBPS_TARGET_MACHINE" in
+ ppc64*) ;;
+ mips*-musl|ppc*) configure_args+=" -DVOID_CXX_OPT_FLAGS=-Os" ;;
+ esac
+
+ if [ "$CROSS_BUILD" ]; then
+ msg_normal "Building host tblgen\n"
+ mkdir -p build/HOST
+ cd build/HOST
+ CC="$BUILD_CC" CXX="$BUILD_CXX" CFLAGS="$BUILD_CFLAGS" \
+ CXXFLAGS="$BUILD_CXXFLAGS" LDFLAGS="$BUILD_LDFLAGS" \
+ cmake ../.. -DCMAKE_BUILD_TYPE=Release \
+ -DLLVM_ENABLE_PROJECTS=${_enabled_projects}
+ make ${makejobs} -C utils/TableGen
+ make ${makejobs} -C tools/clang/utils/TableGen
+ make ${makejobs} -C tools/clang/tools/extra/clang-tidy/misc/ConfusableTable
+ make ${makejobs} -C tools/clang/tools/extra/pseudo/gen
+ [ "$_lldb_enable" = "yes" ] && make ${makejobs} -C tools/lldb/utils/TableGen
+ configure_args+=" -DLLVM_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/llvm-tblgen"
+ configure_args+=" -DCLANG_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/clang-tblgen"
+ configure_args+=" -DCLANG_TIDY_CONFUSABLE_CHARS_GEN=${wrksrc}/llvm/build/HOST/bin/clang-tidy-confusable-chars-gen"
+ configure_args+=" -DCLANG_PSEUDO_GEN=${wrksrc}/llvm/build/HOST/bin/clang-pseudo-gen"
+ [ "$_lldb_enable" = "yes" ] && configure_args+=" -DLLDB_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/lldb-tblgen"
+ cd ../..
+ fi
+
+ case "$XBPS_TARGET_MACHINE" in
+ i686*) _arch="X86";;
+ x86_64*) _arch="X86";;
+ armv5*) _arch="Armv5te";;
+ armv6*) _arch="Armv6";;
+ armv7*) _arch="Armv7";;
+ aarch64*) _arch="AArch64";;
+ mips*) _arch="Mips";;
+ ppc*) _arch="PowerPC";;
+ riscv64*) _arch="RISCV64";;
+ esac
+
+ triplet=${XBPS_CROSS_TRIPLET:-$XBPS_TRIPLET}
+
+ configure_args+=" -DLLVM_TARGET_ARCH=${_arch}"
+ configure_args+=" -DLLVM_HOST_TRIPLE=${triplet}"
+ configure_args+=" -DLLVM_DEFAULT_TARGET_TRIPLE=${triplet}"
+}
+
+do_install() {
+ cd build
+ cmake -DCMAKE_INSTALL_PREFIX=${DESTDIR}/usr -P cmake_install.cmake
+
+ # Required for multilib.
+ if [ "$XBPS_TARGET_MACHINE" = "x86_64" ]; then
+ for _header in llvm-config; do
+ mv ${DESTDIR}/usr/include/llvm/Config/${_header}{,-64}.h
+ vinstall ${FILESDIR}/llvm-Config-${_header}.h 644 \
+ usr/include/llvm/Config ${_header}.h
+ done
+ fi
+
+ # Remove llvm-config-host in cross builds.
+ if [ "$CROSS_BUILD" ]; then
+ rm -f ${DESTDIR}/usr/bin/llvm-config-host
+ fi
+
+ # Install libcxxabi headers
+ vinstall ${wrksrc}/libcxxabi/include/__cxxabi_config.h 644 usr/include
+ vinstall ${wrksrc}/libcxxabi/include/cxxabi.h 644 usr/include
+
+ # Install libunwind headers
+ vinstall ${wrksrc}/libunwind/include/__libunwind_config.h 644 usr/include
+ vinstall ${wrksrc}/libunwind/include/libunwind.h 644 usr/include
+ vinstall ${wrksrc}/libunwind/include/unwind.h 644 usr/include
+ vinstall ${wrksrc}/libunwind/include/mach-o/compact_unwind_encoding.h \
+ 644 usr/include/mach-o
+}
+
+clang-analyzer_package() {
+ pycompile_dirs="usr/share/scan-view"
+ depends="clang-${version}_${revision} python3 perl"
+ short_desc+=" - A source code analysis framework"
+ homepage="https://clang-analyzer.llvm.org/"
+ pkg_install() {
+ vmove "usr/bin/scan-*"
+ vmove "usr/libexec/*analyzer"
+ vmove "usr/share/scan-*"
+ vmove usr/share/man/man1/scan-build.1
+ }
+}
+
+clang-tools-extra_package() {
+ lib32disabled=yes
+ depends="clang-${version}_${revision} python3"
+ short_desc+=" - Extra Clang tools"
+ homepage="https://clang.llvm.org/extra/"
+ pkg_install() {
+ vmove usr/bin/clang-apply-replacements
+ vmove usr/bin/clang-doc
+ vmove usr/bin/clang-include-fixer
+ vmove usr/bin/clang-query
+ vmove usr/bin/clang-rename
+ vmove usr/bin/clang-reorder-fields
+ vmove usr/bin/clang-tidy
+ vmove usr/bin/clangd
+ vmove usr/bin/diagtool
+ vmove usr/bin/find-all-symbols
+ vmove usr/bin/hmaptool
+ vmove usr/bin/modularize
+ vmove usr/bin/pp-trace
+ vmove usr/bin/sancov
+ vmove usr/include/clang-tidy
+ vmove "usr/lib/libclangApplyReplacements*"
+ vmove "usr/lib/libclangDoc*"
+ vmove "usr/lib/libclangIncludeFixer*"
+ vmove "usr/lib/libclangReorderFields*"
+ vmove "usr/lib/libclangQuery*"
+ vmove "usr/lib/libclangTidy*"
+ vmove "usr/share/clang/*include-fixer*"
+ vmove "usr/share/clang/*rename*"
+ vmove "usr/share/clang/*tidy*"
+ vmove usr/share/doc/LLVM/clang-tools
+ vmove usr/share/man/man1/diagtool.1
+ vmove usr/share/man/man1/extraclangtools.1
+ }
+}
+
+clang_package() {
+ lib32disabled=yes
+ depends="libstdc++-devel libgcc-devel binutils ${XBPS_TARGET_LIBC}-devel
+ libclang-${version}_${revision}"
+ short_desc+=" - C language family frontend"
+ homepage="https://clang.llvm.org/"
+ pkg_install() {
+ vmove "usr/bin/*clang*"
+ vmove usr/bin/c-index-test
+ vmove usr/include/clang
+ vmove usr/include/clang-c
+ vmove usr/lib/clang
+ vmove usr/lib/cmake/clang
+ vmove "usr/lib/libclang*.a"
+ vmove "usr/lib/libclang*.so"
+ vmove usr/share/clang
+ vmove usr/share/doc/LLVM/clang
+ vmove usr/share/man/man1/clang.1
+ }
+}
+
+libclang_package() {
+ short_desc+=" - C frontend runtime library"
+ pkg_install() {
+ vmove "usr/lib/libclang.so.*"
+ }
+}
+
+libclang-cpp_package() {
+ short_desc+=" - C frontend runtime library (C++ interface)"
+ pkg_install() {
+ vmove "usr/lib/libclang-cpp.so.*"
+ }
+}
+
+lld_package() {
+ lib32disabled=yes
+ short_desc+=" - linker"
+ homepage="https://lld.llvm.org"
+ pkg_install() {
+ vmove "usr/bin/ld.lld*"
+ vmove "usr/bin/ld64.lld*"
+ vmove "usr/bin/lld*"
+ vmove usr/bin/wasm-ld
+ vmove usr/share/doc/LLVM/lld
+ }
+}
+
+lld-devel_package() {
+ lib32disabled=yes
+ short_desc+=" - linker - development files"
+ homepage="https://lld.llvm.org"
+ depends="lld>=${version}_${revision}"
+ pkg_install() {
+ vmove usr/include/lld
+ vmove usr/lib/cmake/lld
+ vmove "usr/lib/liblld*a"
+ }
+}
+
+lldb_package() {
+ lib32disabled=yes
+ depends+=" python3-six"
+ short_desc+=" - LLDB debugger"
+ homepage="https://lldb.llvm.org/"
+ pkg_install() {
+ vmove "usr/bin/*lldb*"
+ vmove "usr/lib/liblldb*so.*"
+ vmove usr/lib/python*
+ }
+}
+
+lldb-devel_package() {
+ lib32disabled=yes
+ depends="lldb>=${version}_${revision}"
+ short_desc+=" - LLDB debugger - development files"
+ pkg_install() {
+ vmove usr/include/lldb
+ vmove "usr/lib/liblldb*.so"
+ }
+}
+
+llvm-libunwind_package() {
+ short_desc+=" - libunwind"
+ pkg_install() {
+ vmove "usr/lib/libunwind.so.*"
+ }
+}
+
+llvm-libunwind-devel_package() {
+ short_desc+=" - libunwind - development files"
+ depends="llvm-libunwind>=${version}_${revision}"
+ conflicts="libunwind-devel>=0"
+ pkg_install() {
+ vmove usr/include/mach-o
+ vmove "usr/include/*unwind*"
+ vmove "usr/lib/libunwind.a"
+ vmove "usr/lib/libunwind.so"
+ vmove usr/share/doc/LLVM/libunwind
+ }
+}
+
+libcxxabi_package() {
+ short_desc+=" - low level support for libc++"
+ pkg_install() {
+ vmove "usr/lib/libc++abi.so.*"
+ }
+}
+
+libcxxabi-devel_package() {
+ short_desc+=" - low level support for libc++ - development files"
+ depends="libcxxabi>=${version}_${revision}"
+ pkg_install() {
+ vmove "usr/include/*cxxabi*"
+ vmove "usr/lib/libc++abi.so"
+ vmove "usr/lib/libc++abi.a"
+ }
+}
+
+libcxx_package() {
+ short_desc+=" - C++ standard library"
+ pkg_install() {
+ vmove "usr/lib/libc++.so.*"
+ }
+}
+
+libcxx-devel_package() {
+ short_desc+=" - C++ standard library - development files"
+ depends="libcxx>=${version}_${revision}"
+ pkg_install() {
+ vmove usr/include/c++
+ vmove "usr/lib/libc++.so"
+ vmove "usr/lib/libc++.a"
+ vmove "usr/lib/libc++experimental.a"
+ vmove usr/share/doc/LLVM/libcxx
+ }
+}
+
+libomp_package() {
+ short_desc+=" - Clang OpenMP support library"
+ pkg_install() {
+ vmove usr/lib/libarcher.so
+ vmove usr/lib/libompd.so
+ vmove "usr/lib/libomptarget.rtl.*.so"
+ vmove "usr/lib/libomp*.so.*"
+ }
+}
+
+libomp-devel_package() {
+ short_desc+=" - Clang OpenMP support library - development files"
+ depends="libomp>=${version}_${revision}"
+ pkg_install() {
+ vmove "usr/include/omp*.h"
+ vmove "usr/lib/clang/${version}/include/omp*.h"
+ vmove "usr/lib/libarcher*"
+ vmove "usr/lib/libomp*.so"
+ vmove usr/lib/cmake/openmp
+ vmove usr/share/doc/LLVM/openmp
+ vmove usr/share/man/man1/llvmopenmp.1
+ }
+}
+
+libllvm15_package() {
+ short_desc+=" - runtime library"
+ pkg_install() {
+ vmove "usr/lib/libLLVM-*.so*"
+ }
+}
diff --git a/srcpkgs/llvm15/update b/srcpkgs/llvm15/update
new file mode 100644
index 000000000000..e95cf26b3586
--- /dev/null
+++ b/srcpkgs/llvm15/update
@@ -0,0 +1,3 @@
+site="https://github.com/llvm/llvm-project/releases"
+pattern="llvmorg-\K(\d+.){2}\d+(-rc\d+)?"
+ignore="*-rc*"
From 016ed775e5f482f98a2ede7a10bc24b0069eb0e0 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Sun, 18 Dec 2022 00:40:18 +0100
Subject: [PATCH 02/18] llvm: update to 15
---
common/shlibs | 6 +++---
srcpkgs/clang | 2 +-
srcpkgs/clang-analyzer | 2 +-
srcpkgs/clang-tools-extra | 2 +-
srcpkgs/libclang | 2 +-
srcpkgs/libclang-cpp | 2 +-
srcpkgs/libcxx | 2 +-
srcpkgs/libcxx-devel | 2 +-
srcpkgs/libcxxabi | 2 +-
srcpkgs/libcxxabi-devel | 2 +-
srcpkgs/libomp | 2 +-
srcpkgs/libomp-devel | 2 +-
srcpkgs/lld | 2 +-
srcpkgs/lld-devel | 2 +-
srcpkgs/lldb | 2 +-
srcpkgs/lldb-devel | 2 +-
srcpkgs/llvm-libunwind | 2 +-
srcpkgs/llvm-libunwind-devel | 2 +-
srcpkgs/llvm/template | 6 +++---
19 files changed, 23 insertions(+), 23 deletions(-)
diff --git a/common/shlibs b/common/shlibs
index 7c1c48c61065..44059d647598 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -987,9 +987,9 @@ 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.12 lldb-12.0.0_1
-libclang.so.12 libclang-12.0.0_1
-libclang-cpp.so.12 libclang-cpp-12.0.0_1
+liblldb.so.15 lldb-15.0.7_1
+libclang.so.15 libclang-15.0.7_1
+libclang-cpp.so.15 libclang-cpp-15.0.7_1
libLLVM-11.so libllvm11-11.0.0_1
libLLVM-12.so libllvm12-12.0.0_1
libLLVM-15.so libllvm15-15.0.7_1
diff --git a/srcpkgs/clang b/srcpkgs/clang
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/clang
+++ b/srcpkgs/clang
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/clang-analyzer b/srcpkgs/clang-analyzer
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/clang-analyzer
+++ b/srcpkgs/clang-analyzer
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/clang-tools-extra b/srcpkgs/clang-tools-extra
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/clang-tools-extra
+++ b/srcpkgs/clang-tools-extra
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libclang b/srcpkgs/libclang
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libclang
+++ b/srcpkgs/libclang
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libclang-cpp b/srcpkgs/libclang-cpp
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libclang-cpp
+++ b/srcpkgs/libclang-cpp
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxx b/srcpkgs/libcxx
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxx
+++ b/srcpkgs/libcxx
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxx-devel b/srcpkgs/libcxx-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxx-devel
+++ b/srcpkgs/libcxx-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxxabi b/srcpkgs/libcxxabi
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxxabi
+++ b/srcpkgs/libcxxabi
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxxabi-devel b/srcpkgs/libcxxabi-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxxabi-devel
+++ b/srcpkgs/libcxxabi-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libomp b/srcpkgs/libomp
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libomp
+++ b/srcpkgs/libomp
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libomp-devel b/srcpkgs/libomp-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libomp-devel
+++ b/srcpkgs/libomp-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lld b/srcpkgs/lld
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lld
+++ b/srcpkgs/lld
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lld-devel b/srcpkgs/lld-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lld-devel
+++ b/srcpkgs/lld-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lldb b/srcpkgs/lldb
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lldb
+++ b/srcpkgs/lldb
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lldb-devel b/srcpkgs/lldb-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lldb-devel
+++ b/srcpkgs/lldb-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm-libunwind b/srcpkgs/llvm-libunwind
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/llvm-libunwind
+++ b/srcpkgs/llvm-libunwind
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm-libunwind-devel b/srcpkgs/llvm-libunwind-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/llvm-libunwind-devel
+++ b/srcpkgs/llvm-libunwind-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm/template b/srcpkgs/llvm/template
index a92db6f94f9f..fc1c850bd26f 100644
--- a/srcpkgs/llvm/template
+++ b/srcpkgs/llvm/template
@@ -1,11 +1,11 @@
# Template file for 'llvm'
pkgname=llvm
-version=12.0.0
+version=15
revision=1
build_style=meta
-depends="llvm12"
-replaces="llvm11>=0 llvm10>=0 llvm9>=0 llvm8>=0 llvm7>=0 llvm6.0>=0 llvm3.9>=0"
+depends="llvm15"
short_desc="LLVM meta package"
maintainer="Enno Boland <gottox@voidlinux.org>"
license="Public Domain"
homepage="https://www.voidlinux.org"
+replaces="llvm12>=0 llvm11>=0 llvm10>=0 llvm9>=0 llvm8>=0 llvm7>=0 llvm6.0>=0 llvm3.9>=0"
From 6ffb3cba2fc9858ba7d8c4134f5c717ffa7fb9bd Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Sun, 18 Dec 2022 12:20:08 +0100
Subject: [PATCH 03/18] llvm12: remove bumped subpackages
---
srcpkgs/llvm12/template | 264 +---------------------------------------
1 file changed, 1 insertion(+), 263 deletions(-)
diff --git a/srcpkgs/llvm12/template b/srcpkgs/llvm12/template
index f8ea3ba641ae..aea0b43cf573 100644
--- a/srcpkgs/llvm12/template
+++ b/srcpkgs/llvm12/template
@@ -50,55 +50,7 @@ case "$XBPS_TARGET_MACHINE" in
ppc*) configure_args+=" -DCLANG_ENABLE_CLANGD=OFF" ;;
esac
-_enabled_projects="clang;clang-tools-extra;compiler-rt;libcxx;libcxxabi;libunwind;lld"
-
-_lldb_enable=yes
-_libomp_enable=no
-
-case "$XBPS_TARGET_MACHINE" in
- ppc64le*) ;;
- ppc*|i686*) _lldb_enable=no ;;
-esac
-
-case "$XBPS_TARGET_MACHINE" in
- x86_64*|aarch64*|ppc64*) _libomp_enable=yes;;
-esac
-
-subpackages="clang-tools-extra"
-
-# must go before clang
-if [ "$_libomp_enable" = "yes" ]; then
- _enabled_projects+=";openmp"
- subpackages+=" libomp libomp-devel"
- # because of cmake nonsense referencing libomptarget.so.*
- depends+=" libomp>=${version}_${revision}"
-fi
-
-subpackages+=" clang clang-analyzer libclang libclang-cpp
- llvm-libunwind llvm-libunwind-devel libcxx libcxx-devel
- libcxxabi libcxxabi-devel libllvm12"
-
-if [ "$_lldb_enable" = "yes" ]; then
- # XXX fails to cross compile due to python
- _enabled_projects+=";lldb"
- subpackages+=" lldb lldb-devel"
-fi
-
-subpackages+=" lld lld-devel"
-
-configure_args+=" -DLLVM_ENABLE_PROJECTS=${_enabled_projects}"
-
post_patch() {
- if [ "$_lldb_enable" = "yes" ]; then
- if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
- vsed -i 's|__ptrace_request|int|g' \
- ${wrksrc}/lldb/source/Plugins/Process/Linux/NativeProcessLinux.cpp
- fi
- # disable docs for lldb as they fail to generate
- vsed -i '/add_subdirectory(docs)/d' \
- ${wrksrc}/lldb/CMakeLists.txt
- fi
-
# update config.guess for better platform detection
cp $XBPS_COMMONDIR/environment/configure/automake/config.guess \
${wrksrc}/llvm/cmake
@@ -154,14 +106,12 @@ pre_configure() {
cd build/HOST
CC="$BUILD_CC" CXX="$BUILD_CXX" CFLAGS="$BUILD_CFLAGS" \
CXXFLAGS="$BUILD_CXXFLAGS" LDFLAGS="$BUILD_LDFLAGS" \
- cmake ../.. -DCMAKE_BUILD_TYPE=Release \
- -DLLVM_ENABLE_PROJECTS=${_enabled_projects}
+ cmake ../.. -DCMAKE_BUILD_TYPE=Release
make ${makejobs} -C utils/TableGen
make ${makejobs} -C tools/clang/utils/TableGen
[ "$_lldb_enable" = "yes" ] && make ${makejobs} -C tools/lldb/utils/TableGen
configure_args+=" -DLLVM_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/llvm-tblgen"
configure_args+=" -DCLANG_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/clang-tblgen"
- [ "$_lldb_enable" = "yes" ] && configure_args+=" -DLLDB_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/lldb-tblgen"
cd ../..
fi
@@ -201,218 +151,6 @@ do_install() {
if [ "$CROSS_BUILD" ]; then
rm -f ${DESTDIR}/usr/bin/llvm-config-host
fi
-
- # Install libcxxabi headers
- vinstall ${wrksrc}/libcxxabi/include/__cxxabi_config.h 644 usr/include
- vinstall ${wrksrc}/libcxxabi/include/cxxabi.h 644 usr/include
-
- # Install libunwind headers
- vinstall ${wrksrc}/libunwind/include/__libunwind_config.h 644 usr/include
- vinstall ${wrksrc}/libunwind/include/libunwind.h 644 usr/include
- vinstall ${wrksrc}/libunwind/include/unwind.h 644 usr/include
- vinstall ${wrksrc}/libunwind/include/mach-o/compact_unwind_encoding.h \
- 644 usr/include/mach-o
-}
-
-clang-analyzer_package() {
- pycompile_dirs="usr/share/scan-view"
- depends="clang-${version}_${revision} python3 perl"
- short_desc+=" - A source code analysis framework"
- homepage="https://clang-analyzer.llvm.org/"
- pkg_install() {
- vmove usr/share/man/man1/scan-build.1
- vmove "/usr/bin/scan-*"
- vmove "/usr/share/scan-*"
- vmove "/usr/libexec/*analyzer"
- }
-}
-
-clang-tools-extra_package() {
- lib32disabled=yes
- depends="clang-${version}_${revision} python3"
- short_desc+=" - Extra Clang tools"
- homepage="https://clang.llvm.org/extra/"
- pkg_install() {
- vmove usr/include/clang-tidy
- vmove usr/bin/clang-apply-replacements
- vmove usr/bin/clang-query
- vmove usr/bin/clang-rename
- vmove usr/bin/clang-tidy
- vmove usr/bin/diagtool
- vmove usr/bin/find-all-symbols
- vmove usr/bin/hmaptool
- vmove usr/bin/modularize
- vmove usr/bin/pp-trace
- vmove usr/bin/sancov
- vmove "usr/lib/libclangApplyReplacements*"
- vmove "usr/lib/libclangQuery*"
- vmove "usr/lib/libclangTidy*"
- vmove "usr/share/clang/*tidy*"
- vmove usr/share/doc/clang-tools
- vmove usr/share/man/man1/extraclangtools.1
- vmove usr/share/man/man1/diagtool.1
- }
-}
-
-clang_package() {
- lib32disabled=yes
- depends="libstdc++-devel libgcc-devel binutils ${XBPS_TARGET_LIBC}-devel
- libclang-${version}_${revision}"
- short_desc+=" - C language family frontend"
- homepage="https://clang.llvm.org/"
- pkg_install() {
- vmove usr/include/clang
- vmove usr/include/clang-c
- vmove "usr/bin/*clang*"
- vmove usr/bin/c-index-test
- vmove usr/lib/clang
- vmove usr/lib/cmake/clang
- vmove "usr/lib/libclang*.a"
- vmove "usr/lib/libclang*.so"
- vmove usr/share/clang
- vmove usr/share/doc/clang
- vmove usr/share/man/man1/clang.1
- }
-}
-
-libclang_package() {
- short_desc+=" - C frontend runtime library"
- pkg_install() {
- vmove "usr/lib/libclang.so.*"
- }
-}
-
-libclang-cpp_package() {
- short_desc+=" - C frontend runtime library (C++ interface)"
- pkg_install() {
- vmove "usr/lib/libclang-cpp.so.*"
- }
-}
-
-lld_package() {
- lib32disabled=yes
- short_desc+=" - linker"
- homepage="https://lld.llvm.org"
- pkg_install() {
- vmove usr/bin/lld*
- vmove usr/bin/wasm-ld
- vmove usr/bin/ld.lld*
- vmove usr/bin/ld64.lld*
- vmove usr/share/doc/lld
- }
-}
-
-lld-devel_package() {
- lib32disabled=yes
- short_desc+=" - linker - development files"
- homepage="https://lld.llvm.org"
- depends="lld>=${version}_${revision}"
- pkg_install() {
- vmove usr/include/lld
- vmove usr/lib/cmake/lld
- vmove "usr/lib/liblld*a"
- }
-}
-
-lldb_package() {
- lib32disabled=yes
- depends+=" python3-six"
- short_desc+=" - LLDB debugger"
- homepage="https://lldb.llvm.org/"
- pkg_install() {
- vmove usr/bin/*lldb*
- vmove usr/lib/liblldb*so.*
- vmove /usr/lib/python*
- }
-}
-
-lldb-devel_package() {
- lib32disabled=yes
- depends="lldb>=${version}_${revision}"
- short_desc+=" - LLDB debugger - development files"
- pkg_install() {
- vmove usr/include/lldb
- vmove "usr/lib/liblldb*.so"
- }
-}
-
-llvm-libunwind_package() {
- short_desc+=" - libunwind"
- pkg_install() {
- vmove "usr/lib/libunwind.so.*"
- }
-}
-
-llvm-libunwind-devel_package() {
- short_desc+=" - libunwind - development files"
- depends="llvm-libunwind>=${version}_${revision}"
- conflicts="libunwind-devel>=0"
- pkg_install() {
- vmove usr/lib/libunwind.so
- vmove usr/lib/libunwind.a
- vmove "usr/include/*unwind*"
- vmove usr/include/mach-o
- vmove usr/share/doc/libunwind
- }
-}
-
-libcxxabi_package() {
- short_desc+=" - low level support for libc++"
- pkg_install() {
- vmove "usr/lib/libc++abi.so.*"
- }
-}
-
-libcxxabi-devel_package() {
- short_desc+=" - low level support for libc++ - development files"
- depends="libcxxabi>=${version}_${revision}"
- pkg_install() {
- vmove usr/lib/libc++abi.so
- vmove usr/lib/libc++abi.a
- vmove "usr/include/*cxxabi*"
- }
-}
-
-libcxx_package() {
- short_desc+=" - C++ standard library"
- pkg_install() {
- vmove "usr/lib/libc++.so.*"
- }
-}
-
-libcxx-devel_package() {
- short_desc+=" - C++ standard library - development files"
- depends="libcxx>=${version}_${revision}"
- pkg_install() {
- vmove usr/lib/libc++.so
- vmove usr/lib/libc++.a
- vmove usr/lib/libc++experimental.a
- vmove usr/include/c++
- vmove usr/share/doc/libcxx
- }
-}
-
-libomp_package() {
- short_desc+=" - Clang OpenMP support library"
- pkg_install() {
- vmove usr/lib/libomp.so
- vmove "usr/lib/libomptarget.rtl.*.so"
- vmove usr/lib/libarcher.so
- vmove "usr/lib/libomp*.so.*"
- }
-}
-
-libomp-devel_package() {
- short_desc+=" - Clang OpenMP support library - development files"
- depends="libomp>=${version}_${revision}"
- pkg_install() {
- vmove "usr/lib/libomp*.so"
- vmove "usr/lib/libarcher*"
- vmove "usr/include/omp*.h"
- vmove "usr/lib/clang/${version}/include/omp*.h"
- vmove usr/share/man/man1/llvmopenmp.1
- vmove usr/share/doc/openmp
- }
}
libllvm12_package() {
From f107c174d7db3ec041d33f29d3ace0e0ca7a3643 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:27:03 +0100
Subject: [PATCH 04/18] mesa: rebuild for llvm15
---
srcpkgs/mesa/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/mesa/template b/srcpkgs/mesa/template
index 4c3c9ec6039e..0641b28a80d6 100644
--- a/srcpkgs/mesa/template
+++ b/srcpkgs/mesa/template
@@ -1,7 +1,7 @@
# Template file for 'mesa'
pkgname=mesa
version=22.2.4
-revision=2
+revision=3
build_style=meson
configure_args="-Dglvnd=true -Dshared-glapi=enabled -Dgbm=enabled -Degl=enabled
-Dosmesa=true -Dgles1=enabled -Dgles2=enabled -Dglx=dri -Ddri3=enabled
From 2c014990d7cabd857e083e0ac251d5a1a2c44497 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:34:04 +0100
Subject: [PATCH 05/18] bcc: rebuild for llvm15
---
srcpkgs/bcc/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/bcc/template b/srcpkgs/bcc/template
index 7526580f17ed..bdbcff7227a0 100644
--- a/srcpkgs/bcc/template
+++ b/srcpkgs/bcc/template
@@ -1,7 +1,7 @@
# Template file for 'bcc'
pkgname=bcc
version=0.26.0
-revision=2
+revision=3
build_style=cmake
configure_args="-DREVISION=${version} -DENABLE_LLVM_SHARED=1"
hostmakedepends="flex python3-setuptools"
From ad39f276bbf08e7f46e82254e5dfe05e0eac66ca Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:37:25 +0100
Subject: [PATCH 06/18] bpftrace: rebuild for llvm15
---
srcpkgs/bpftrace/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/bpftrace/template b/srcpkgs/bpftrace/template
index 952682662128..2f01dbf69530 100644
--- a/srcpkgs/bpftrace/template
+++ b/srcpkgs/bpftrace/template
@@ -1,7 +1,7 @@
# Template file for 'bpftrace'
pkgname=bpftrace
version=0.17.0
-revision=1
+revision=2
archs="x86_64* aarch64* ppc64*"
build_style=cmake
configure_args="-DUSE_SYSTEM_BPF_BCC=ON -DBUILD_TESTING=OFF" # needs root to run
From dab4452e67bcaeab84a0dd9b57e42c2794939d96 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:43:53 +0100
Subject: [PATCH 07/18] CastXML: rebuild for llvm15
---
srcpkgs/CastXML/template | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/srcpkgs/CastXML/template b/srcpkgs/CastXML/template
index 5d7d9503658c..28c424c78073 100644
--- a/srcpkgs/CastXML/template
+++ b/srcpkgs/CastXML/template
@@ -1,7 +1,7 @@
# Template file for 'CastXML'
pkgname=CastXML
version=0.4.6
-revision=1
+revision=2
build_style=cmake
configure_args="-DSPHINX_MAN=YES -DCastXML_INSTALL_MAN_DIR=share/man"
hostmakedepends="clang python3-Sphinx"
@@ -12,8 +12,8 @@ short_desc="C-family abstract syntax tree XML output tool"
maintainer="Evgeny Ermakov <evgeny.v.ermakov@gmail.com>"
license="Apache-2.0"
homepage="https://github.com/CastXML/CastXML"
-distfiles="https://github.com/CastXML/CastXML/archive/v${version}.tar.gz"
-checksum=8dcdbc1f23a130e4bdb0b09f57c30761a02a346b4db4037555048af2a293d66a
+distfiles="https://github.com/CastXML/CastXML/archive/refs/tags/v${version}.tar.gz"
+checksum=bb9024ec9ea5082e0d527f19bf3c2df79f1699f54b6cec168c024e727b32e6d1
post_install() {
rm -r ${DESTDIR}/usr/share/castxml/clang/include
From 6575511ac94de71e86bee37bbe1eb9ac035b34bb Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:48:55 +0100
Subject: [PATCH 08/18] ccls: rebuild for llvm15
---
srcpkgs/ccls/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/ccls/template b/srcpkgs/ccls/template
index 82fa61933878..ecc9f3e38a5d 100644
--- a/srcpkgs/ccls/template
+++ b/srcpkgs/ccls/template
@@ -1,7 +1,7 @@
# Template file for 'ccls'
pkgname=ccls
version=0.20220729
-revision=1
+revision=2
build_style=cmake
hostmakedepends="clang-tools-extra"
makedepends="clang-tools-extra libxml2-devel llvm ncurses-devel rapidjson zlib-devel"
From cfb10130dbbe37aa8eaf3ebbcb6c8ba830eea236 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:52:14 +0100
Subject: [PATCH 09/18] include-what-you-use: update to 0.19
---
srcpkgs/include-what-you-use/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/include-what-you-use/template b/srcpkgs/include-what-you-use/template
index d3655709c20c..1a30bc04bb2d 100644
--- a/srcpkgs/include-what-you-use/template
+++ b/srcpkgs/include-what-you-use/template
@@ -1,6 +1,6 @@
# Template file for 'include-what-you-use'
pkgname=include-what-you-use
-version=0.16
+version=0.19
revision=1
build_style=cmake
configure_args="-DIWYU_LLVM_ROOT_PATH=${XBPS_CROSS_BASE}/usr "
@@ -11,7 +11,7 @@ maintainer="Leah Neukirchen <leah@vuxu.org>"
license="NCSA"
homepage="https://include-what-you-use.org/"
distfiles="https://include-what-you-use.org/downloads/${pkgname}-${version}.src.tar.gz"
-checksum=8d6fc9b255343bc1e5ec459e39512df1d51c60e03562985e0076036119ff5a1c
+checksum=2b10157b60ea08adc08e3896b4921c73fcadd5ec4eb652b29a34129d501e5ee0
python_version=3
post_install() {
From a227b2c3d4d2d874b07df6b09de77824c37093f1 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 15:11:06 +0100
Subject: [PATCH 10/18] SPIRV-LLVM-Translator: update to 15.0.0
---
srcpkgs/SPIRV-LLVM-Translator/template | 13 +++++++------
1 file changed, 7 insertions(+), 6 deletions(-)
diff --git a/srcpkgs/SPIRV-LLVM-Translator/template b/srcpkgs/SPIRV-LLVM-Translator/template
index a2754e58c0e8..bee99f9bcbb2 100644
--- a/srcpkgs/SPIRV-LLVM-Translator/template
+++ b/srcpkgs/SPIRV-LLVM-Translator/template
@@ -1,19 +1,20 @@
# Template file for 'SPIRV-LLVM-Translator'
pkgname=SPIRV-LLVM-Translator
-version=12.0.0
-revision=2
+version=15.0.0
+revision=1
build_style=cmake
make_build_args="llvm-spirv"
configure_args="-Wno-dev -DLLVM_LINK_LLVM_DYLIB=ON -DCMAKE_SKIP_RPATH=ON
- -DLLVM_SPIRV_INCLUDE_TESTS=OFF -DBUILD_SHARED_LIBS=ON"
+ -DLLVM_SPIRV_INCLUDE_TESTS=OFF -DBUILD_SHARED_LIBS=ON
+ -DLLVM_EXTERNAL_SPIRV_HEADERS_SOURCE_DIR=/usr"
hostmakedepends="clang llvm"
-makedepends="clang-tools-extra llvm"
+makedepends="clang-tools-extra llvm SPIRV-Headers"
short_desc="API and commands for processing SPIR-V modules"
maintainer="Orphaned <orphan@voidlinux.org>"
license="NCSA"
homepage="https://github.com/KhronosGroup/SPIRV-LLVM-Translator"
-distfiles="https://github.com/KhronosGroup/${pkgname}/archive/refs/tags/v${version}.tar.gz"
-checksum=6e4fad04203f25fcde4c308c53e9f59bd05a390978992db3212d4b63aff62108
+distfiles="https://github.com/KhronosGroup/SPIRV-LLVM-Translator/archive/refs/tags/v${version}.tar.gz"
+checksum=b1bebd77f72988758c00852e78c2ddc545815a612169a0cb377d021e2f846d88
post_install() {
vlicense LICENSE.TXT
From 74116ebc192456de70491ac34c64b0222efde682 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Fri, 6 Jan 2023 17:11:04 +0100
Subject: [PATCH 11/18] rtags: rebuild for llvm15
---
srcpkgs/rtags/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/rtags/template b/srcpkgs/rtags/template
index b496a1b0e721..9b161e690d76 100644
--- a/srcpkgs/rtags/template
+++ b/srcpkgs/rtags/template
@@ -1,7 +1,7 @@
# Template file for 'rtags'
pkgname=rtags
version=2.38
-revision=5
+revision=6
build_style=cmake
# Don't run tests in do_install, please.
configure_args="-DSKIP_CTEST=TRUE"
From b6b4447de6417801abb7ddb9a4c148c7328d9639 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Fri, 6 Jan 2023 17:14:14 +0100
Subject: [PATCH 12/18] juCi++: rebuild for llvm15
---
srcpkgs/juCi++/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/juCi++/template b/srcpkgs/juCi++/template
index c1969237f11d..416bde7cc4d0 100644
--- a/srcpkgs/juCi++/template
+++ b/srcpkgs/juCi++/template
@@ -1,7 +1,7 @@
# Template file for 'juCi++'
pkgname=juCi++
version=1.7.2
-revision=2
+revision=3
_libclangmm_commit="9704b9b6de0982a588fa41741157d5640afedf30"
_tiny_commit="839ff806dc447ff49af80f9a9eaa7949f770f8e5"
create_wrksrc=yes
From dc093beccdff4269e28883f1e1ac6044af192586 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Sat, 7 Jan 2023 11:31:14 +0100
Subject: [PATCH 13/18] qt5: rebuild for llvm15
---
srcpkgs/qt5/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/qt5/template b/srcpkgs/qt5/template
index f4f9f5b5344a..b517b49ead2d 100644
--- a/srcpkgs/qt5/template
+++ b/srcpkgs/qt5/template
@@ -5,7 +5,7 @@ pkgname=qt5
version=5.15.7+20221119
# commit f8c9fb304bc3e53b3aa07f962cd74e9160decccc
# base repo: https://invent.kde.org/qt/qt/qt5
-revision=1
+revision=2
build_style=meta
hostmakedepends="cmake clang flex perl glib-devel pkg-config
python re2c ruby which"
From 9124558c136377ee1417486e7ba3b351d5321eb6 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Mon, 9 Jan 2023 01:22:18 +0100
Subject: [PATCH 14/18] codelite: rebuild for llvm15
---
srcpkgs/codelite/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/codelite/template b/srcpkgs/codelite/template
index 6b8b007c8a43..c6115e0274ce 100644
--- a/srcpkgs/codelite/template
+++ b/srcpkgs/codelite/template
@@ -1,7 +1,7 @@
# Template file for 'codelite'
pkgname=codelite
version=16.0.0
-revision=2
+revision=3
create_wrksrc=yes
build_style=cmake
build_helper=cmake-wxWidgets-gtk3
From b79afad74cea41a0637fd8529ea72b64e2c22e32 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Mon, 9 Jan 2023 01:58:21 +0100
Subject: [PATCH 15/18] kdevelop: rebuild for llvm15
---
srcpkgs/kdevelop/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/kdevelop/template b/srcpkgs/kdevelop/template
index 5eb275583138..c32ee5240a44 100644
--- a/srcpkgs/kdevelop/template
+++ b/srcpkgs/kdevelop/template
@@ -1,7 +1,7 @@
# Template file for 'kdevelop'
pkgname=kdevelop
version=22.12.1
-revision=1
+revision=2
build_style=cmake
configure_args="-DBUILD_TESTING=OFF"
hostmakedepends="extra-cmake-modules qt5-qmake qt5-host-tools qt5-tools
From 7c3e77332a91c1c6edee94f525cba001196c9131 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Mon, 16 Jan 2023 14:43:47 +0100
Subject: [PATCH 16/18] zig: update to 0.10.1
---
.../0001-std.build-fix-handling-of-Dcpu.patch | 48 -------------------
srcpkgs/zig/template | 10 ++--
2 files changed, 6 insertions(+), 52 deletions(-)
delete mode 100644 srcpkgs/zig/patches/0001-std.build-fix-handling-of-Dcpu.patch
diff --git a/srcpkgs/zig/patches/0001-std.build-fix-handling-of-Dcpu.patch b/srcpkgs/zig/patches/0001-std.build-fix-handling-of-Dcpu.patch
deleted file mode 100644
index 4101f24459bb..000000000000
--- a/srcpkgs/zig/patches/0001-std.build-fix-handling-of-Dcpu.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From 1e8cdace7ad324a42228aeb5cd6eb8dd15429413 Mon Sep 17 00:00:00 2001
-From: Isaac Freund <ifreund@ifreund.xyz>
-Date: Tue, 21 Sep 2021 21:06:10 +0200
-Subject: [PATCH] std.build: fix handling of -Dcpu
-
-Currently -Dcpu is completely ignored if -Dtarget isn't passed as well.
-Further, -Dcpu=baseline is ignored even if -Dtarget=native is passed.
-
-This patch fixes these 2 issues, always respecting the -Dcpu option if
-present.
----
- lib/std/build.zig | 13 +++++++------
- 1 file changed, 7 insertions(+), 6 deletions(-)
-
-diff --git a/lib/std/build.zig b/lib/std/build.zig
-index 9b7ebb1f4..e398529f9 100644
---- a/lib/std/build.zig
-+++ b/lib/std/build.zig
-@@ -685,7 +685,11 @@ pub const Builder = struct {
- );
- const mcpu = self.option([]const u8, "cpu", "Target CPU");
-
-- const triple = maybe_triple orelse return args.default_target;
-+ if (maybe_triple == null and mcpu == null) {
-+ return args.default_target;
-+ }
-+
-+ const triple = maybe_triple orelse "native";
-
- var diags: CrossTarget.ParseOptions.Diagnostics = .{};
- const selected_target = CrossTarget.parse(.{
-@@ -2451,11 +2455,8 @@ pub const LibExeObjStep = struct {
-
- if (populated_cpu_features.eql(cross.cpu.features)) {
- // The CPU name alone is sufficient.
-- // If it is the baseline CPU, no command line args are required.
-- if (cross.cpu.model != std.Target.Cpu.baseline(cross.cpu.arch).model) {
-- try zig_args.append("-mcpu");
-- try zig_args.append(cross.cpu.model.name);
-- }
-+ try zig_args.append("-mcpu");
-+ try zig_args.append(cross.cpu.model.name);
- } else {
- var mcpu_buffer = std.ArrayList(u8).init(builder.allocator);
-
---
-2.33.1
-
diff --git a/srcpkgs/zig/template b/srcpkgs/zig/template
index 728c5a64e9df..9807f7ab206b 100644
--- a/srcpkgs/zig/template
+++ b/srcpkgs/zig/template
@@ -1,17 +1,19 @@
# Template file for 'zig'
pkgname=zig
-version=0.8.1
-revision=2
+version=0.10.1
+revision=1
archs="x86_64* aarch64*"
build_style=cmake
make_cmd=make
-makedepends="clang llvm12 lld-devel"
+# we add xml2, zstd, zlib and ncurses
+# because our lld is static-only and requires those to work
+makedepends="clang llvm15 lld-devel libxml2-devel libzstd-devel ncurses-devel zlib-devel"
short_desc="Programming language designed for robustness, optimality, and clarity"
maintainer="Isaac Freund <mail@isaacfreund.com>"
license="MIT"
homepage="https://ziglang.org"
distfiles="https://ziglang.org/download/${version}/zig-${version}.tar.xz"
-checksum=8c428e14a0a89cb7a15a6768424a37442292858cdb695e2eb503fa3c7bf47f1a
+checksum=69459bc804333df077d441ef052ffa143d53012b655a51f04cfef1414c04168c
nopie=yes
nocross=yes
From 9f7e9b679d0fc46301afe5472f2cd9f0627d83ef Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Tue, 24 Jan 2023 14:03:51 +0100
Subject: [PATCH 17/18] river: update to 0.2.3
---
...ble-PIE-for-river-riverctl-rivertile.patch | 42 -------------------
srcpkgs/river/template | 10 ++---
2 files changed, 5 insertions(+), 47 deletions(-)
delete mode 100644 srcpkgs/river/patches/0001-Enable-PIE-for-river-riverctl-rivertile.patch
diff --git a/srcpkgs/river/patches/0001-Enable-PIE-for-river-riverctl-rivertile.patch b/srcpkgs/river/patches/0001-Enable-PIE-for-river-riverctl-rivertile.patch
deleted file mode 100644
index ecc68302db09..000000000000
--- a/srcpkgs/river/patches/0001-Enable-PIE-for-river-riverctl-rivertile.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From 759c1c7a915083f3da46960ff82fa2a3566a7065 Mon Sep 17 00:00:00 2001
-From: Isaac Freund <mail@isaacfreund.com>
-Date: Wed, 3 Nov 2021 14:21:35 +0100
-Subject: [PATCH] Enable PIE for river, riverctl, rivertile
-
-There is sadly not yet a standard way to do this exposed by the zig
-build system. See: https://github.com/ziglang/zig/issues/7201
----
- build.zig | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/build.zig b/build.zig
-index d561f49..8ac9a4e 100644
---- a/build.zig
-+++ b/build.zig
-@@ -85,6 +85,7 @@ pub fn build(b: *zbs.Builder) !void {
- const river = b.addExecutable("river", "river/main.zig");
- river.setTarget(target);
- river.setBuildMode(mode);
-+ river.pie = true;
- river.addBuildOption(bool, "xwayland", xwayland);
- river.addBuildOption([:0]const u8, "version", full_version);
-
-@@ -97,6 +98,7 @@ pub fn build(b: *zbs.Builder) !void {
- const riverctl = b.addExecutable("riverctl", "riverctl/main.zig");
- riverctl.setTarget(target);
- riverctl.setBuildMode(mode);
-+ riverctl.pie = true;
- riverctl.addBuildOption([:0]const u8, "version", full_version);
-
- riverctl.step.dependOn(&scanner.step);
-@@ -114,6 +116,7 @@ pub fn build(b: *zbs.Builder) !void {
- const rivertile = b.addExecutable("rivertile", "rivertile/main.zig");
- rivertile.setTarget(target);
- rivertile.setBuildMode(mode);
-+ rivertile.pie = true;
- rivertile.addBuildOption([:0]const u8, "version", full_version);
-
- rivertile.step.dependOn(&scanner.step);
---
-2.33.1
-
diff --git a/srcpkgs/river/template b/srcpkgs/river/template
index 3906858d507e..431aa4bd8e8e 100644
--- a/srcpkgs/river/template
+++ b/srcpkgs/river/template
@@ -1,18 +1,18 @@
# Template file for 'river'
pkgname=river
-version=0.1.1
-revision=2
+version=0.2.3
+revision=1
build_style=zig-build
-configure_args="$(vopt_if xwayland -Dxwayland)"
+configure_args="$(vopt_if xwayland -Dxwayland) -Dpie"
hostmakedepends="pkg-config wayland-devel scdoc"
-makedepends="wlroots0.15-devel libevdev-devel"
+makedepends="wlroots-devel libevdev-devel"
depends="$(vopt_if xwayland xorg-server-xwayland)"
short_desc="Dynamic tiling Wayland compositor"
maintainer="Isaac Freund <mail@isaacfreund.com>"
license="GPL-3.0-or-later"
homepage="https://github.com/riverwm/river"
distfiles="${homepage}/releases/download/v${version}/river-${version}.tar.gz"
-checksum=2a0bcd4670ed9ebd39c279f2bf10803fc65c9f3ee2307ce40728df23ce914d18
+checksum=7acdd2b929e16a20006b4baf1f29e7a8dc7f70cf5747e1503a610a90d1637132
build_options="xwayland"
build_options_default="xwayland"
From cd6bb59d0104d7671658a9f6f5e240e30f033cef Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Fri, 10 Feb 2023 17:25:32 +0100
Subject: [PATCH 18/18] libclc: update to 15.0.7
---
srcpkgs/libclc/template | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/srcpkgs/libclc/template b/srcpkgs/libclc/template
index 779519fd666f..1ec7dfef383a 100644
--- a/srcpkgs/libclc/template
+++ b/srcpkgs/libclc/template
@@ -1,9 +1,11 @@
# Template file for 'libclc'
pkgname=libclc
-version=12.0.0
+version=15.0.7
revision=1
build_style=cmake
-configure_args="-DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release"
+# disable clspv (failing tests, we don't ship it)
+configure_args="-DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release
+ -DLIBCLC_TARGETS_TO_BUILD=amdgcn--;amdgcn--amdhsa;r600--;nvptx--;nvptx64--;nvptx--nvidiacl;nvptx64--nvidiacl"
hostmakedepends="cmake clang llvm python3 libedit-devel libffi-devel
ncurses-devel zlib-devel SPIRV-LLVM-Translator"
short_desc="Open implementation of the OpenCL C programming language"
@@ -11,7 +13,7 @@ maintainer="Orphaned <orphan@voidlinux.org>"
license="BSD-3-Clause, MIT"
homepage="https://libclc.llvm.org"
distfiles="https://github.com/llvm/llvm-project/releases/download/llvmorg-${version}/libclc-${version}.src.tar.xz"
-checksum=6b777ee2cd57da1b122f76c208463f620eef508f4128210c6b1a96bfb75c74dc
+checksum=35731fea7be224f21acf5bf3cd9f0ed058bf4ada5eceaf7f10ee96e139bd3389
replaces="libclc-git>=0"
do_configure() {
^ permalink raw reply [flat|nested] 96+ messages in thread
* Re: [PR PATCH] [Updated] [WIP] LLVM 15
2022-11-28 15:30 [PR PATCH] [WIP] LLVM 15 tranzystorek-io
` (64 preceding siblings ...)
2023-02-10 16:26 ` [PR PATCH] [Updated] " tranzystorek-io
@ 2023-02-10 16:42 ` tranzystorek-io
2023-02-10 19:21 ` tranzystorek-io
` (28 subsequent siblings)
94 siblings, 0 replies; 96+ messages in thread
From: tranzystorek-io @ 2023-02-10 16:42 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 1171 bytes --]
There is an updated pull request by tranzystorek-io against master on the void-packages repository
https://github.com/tranzystorek-io/void-packages llvm15
https://github.com/void-linux/void-packages/pull/40821
[WIP] LLVM 15
[ci skip]
TODO:
- [ ] Adjust patches marked as `.patch.skip`
- [x] Make libomp a shlib (change so file name and install a symlink)
- [x] Avoid creating triplet dirs under /usr/
TODO LLVM rdeps:
- [ ] clazy (breaking changes in clang API)
- [x] beignet (https://github.com/void-linux/void-packages/pull/41529)
- [ ] ispc (1.18.1 supports LLVM `<= 14`)
- [ ] ldc (1.30.0 supports LLVM `<= 14`)
- [ ] ghdl (2.0.0 supports LLVM `<= 14`)
- [x] qt
- [ ] qtcreator (breaking changes in clang-format API)
- [ ] shiboken2 (tests failing with llvm15)
- [x] bpftrace (https://github.com/void-linux/void-packages/pull/39002)
- [x] libclc (tests fail with unresolved calls https://gist.githubusercontent.com/tranzystorek-io/a2aa8a0d8010af5299f7d1ff9f82c22b/raw/6d316d99d6079990b73ae77d274dd120b9560589/LastTest.log) -> removed clspv
- [x] zig
A patch file from https://github.com/void-linux/void-packages/pull/40821.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-llvm15-40821.patch --]
[-- Type: text/x-diff, Size: 86428 bytes --]
From fb0c52ffe973a6110b9bf45c87af5b24386fb919 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Sun, 18 Dec 2022 00:36:59 +0100
Subject: [PATCH 01/18] New package: llvm15-15.0.7
---
common/shlibs | 3 +
srcpkgs/libllvm15 | 1 +
.../llvm15/files/llvm-Config-llvm-config.h | 9 +
...clang-001-fix-unwind-chain-inclusion.patch | 44 ++
.../patches/clang-002-add-musl-triples.patch | 115 +++++
.../clang-003-ppc64-dynamic-linker-path.patch | 13 +
.../patches/clang-004-ppc64-musl-elfv2.patch | 48 ++
.../compiler-rt-sanitizer-ppc64-musl.patch | 35 ++
.../compiler-rt-xray-ppc64-musl.patch.skip | 62 +++
srcpkgs/llvm15/patches/libcxx-musl.patch | 26 ++
srcpkgs/llvm15/patches/libcxx-ppc.patch | 22 +
.../llvm15/patches/libcxx-ssp-nonshared.patch | 11 +
srcpkgs/llvm15/patches/libcxxabi-dl.patch | 25 +
srcpkgs/llvm15/patches/libcxxabi-musl.patch | 37 ++
srcpkgs/llvm15/patches/libomp-soname.patch | 12 +
.../llvm15/patches/libunwind-ppc32.patch.skip | 63 +++
srcpkgs/llvm15/patches/lldb-musl.patch | 40 ++
srcpkgs/llvm15/patches/llvm-001-musl.patch | 57 +++
.../patches/llvm-002-musl-ppc64-elfv2.patch | 30 ++
.../patches/llvm-003-ppc-secureplt.patch | 11 +
.../patches/llvm-004-override-opt.patch | 18 +
.../llvm15/patches/llvm-005-ppc-bigpic.patch | 36 ++
.../patches/llvm-006-aarch64-mf_exec.patch | 25 +
srcpkgs/llvm15/template | 442 ++++++++++++++++++
srcpkgs/llvm15/update | 3 +
25 files changed, 1188 insertions(+)
create mode 120000 srcpkgs/libllvm15
create mode 100644 srcpkgs/llvm15/files/llvm-Config-llvm-config.h
create mode 100644 srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch
create mode 100644 srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch
create mode 100644 srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch
create mode 100644 srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch
create mode 100644 srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch
create mode 100644 srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip
create mode 100644 srcpkgs/llvm15/patches/libcxx-musl.patch
create mode 100644 srcpkgs/llvm15/patches/libcxx-ppc.patch
create mode 100644 srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch
create mode 100644 srcpkgs/llvm15/patches/libcxxabi-dl.patch
create mode 100644 srcpkgs/llvm15/patches/libcxxabi-musl.patch
create mode 100644 srcpkgs/llvm15/patches/libomp-soname.patch
create mode 100644 srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip
create mode 100644 srcpkgs/llvm15/patches/lldb-musl.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-001-musl.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-004-override-opt.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch
create mode 100644 srcpkgs/llvm15/template
create mode 100644 srcpkgs/llvm15/update
diff --git a/common/shlibs b/common/shlibs
index 504d29f4cb98..7c1c48c61065 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -992,6 +992,9 @@ libclang.so.12 libclang-12.0.0_1
libclang-cpp.so.12 libclang-cpp-12.0.0_1
libLLVM-11.so libllvm11-11.0.0_1
libLLVM-12.so libllvm12-12.0.0_1
+libLLVM-15.so libllvm15-15.0.7_1
+libomp.so.5 libomp-15.0.7_1
+libomptarget.so.15 libomp-15.0.7_1
libisofs.so.6 libisofs-0.6.24_1
libmpack.so.0 libmpack-1.0.5_1
libGeoIP.so.1 libgeoip-1.4.8_1
diff --git a/srcpkgs/libllvm15 b/srcpkgs/libllvm15
new file mode 120000
index 000000000000..ad57a969b9f9
--- /dev/null
+++ b/srcpkgs/libllvm15
@@ -0,0 +1 @@
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm15/files/llvm-Config-llvm-config.h b/srcpkgs/llvm15/files/llvm-Config-llvm-config.h
new file mode 100644
index 000000000000..2fa08c9be696
--- /dev/null
+++ b/srcpkgs/llvm15/files/llvm-Config-llvm-config.h
@@ -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
diff --git a/srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch b/srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch
new file mode 100644
index 000000000000..e4eaa7783e7a
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch
@@ -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
diff --git a/srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch b/srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch
new file mode 100644
index 000000000000..0ef4c7e75d6b
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch
@@ -0,0 +1,115 @@
+--- a/clang/lib/Driver/ToolChains/Gnu.cpp
++++ b/clang/lib/Driver/ToolChains/Gnu.cpp
+@@ -2086,7 +2086,8 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
+ static const char *const ARMHFTriples[] = {"arm-linux-gnueabihf",
+ "armv7hl-redhat-linux-gnueabi",
+ "armv6hl-suse-linux-gnueabi",
+- "armv7hl-suse-linux-gnueabi"};
++ "armv7hl-suse-linux-gnueabi",
++ "armv7l-linux-gnueabihf"};
+ static const char *const ARMebLibDirs[] = {"/lib"};
+ static const char *const ARMebTriples[] = {"armeb-linux-gnueabi",
+ "armeb-linux-androideabi"};
+@@ -2153,8 +2154,7 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
+ "powerpc64-suse-linux", "powerpc-montavista-linuxspe"};
+ static const char *const PPCLELibDirs[] = {"/lib32", "/lib"};
+ static const char *const PPCLETriples[] = {"powerpcle-linux-gnu",
+- "powerpcle-unknown-linux-gnu",
+- "powerpcle-linux-musl"};
++ "powerpcle-unknown-linux-gnu"};
+
+ static const char *const PPC64LibDirs[] = {"/lib64", "/lib"};
+ static const char *const PPC64Triples[] = {
+@@ -2235,6 +2235,92 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
+ return;
+ }
+
++ if (TargetTriple.isMusl()) {
++ static const char *const AArch64MuslTriples[] = {"aarch64-linux-musl"};
++ static const char *const ARMHFMuslTriples[] = {
++ "arm-linux-musleabihf", "armv7l-linux-musleabihf"
++ };
++ static const char *const ARMMuslTriples[] = {"arm-linux-musleabi"};
++ static const char *const X86_64MuslTriples[] = {"x86_64-linux-musl"};
++ static const char *const X86MuslTriples[] = {"i686-linux-musl"};
++ static const char *const MIPSMuslTriples[] = {
++ "mips-linux-musl", "mipsel-linux-musl",
++ "mipsel-linux-muslhf", "mips-linux-muslhf"
++ };
++ static const char *const PPCMuslTriples[] = {"powerpc-linux-musl"};
++ static const char *const PPCLEMuslTriples[] = {"powerpcle-linux-musl"};
++ static const char *const PPC64MuslTriples[] = {"powerpc64-linux-musl"};
++ static const char *const PPC64LEMuslTriples[] = {"powerpc64le-linux-musl"};
++ static const char *const RISCV64MuslTriples[] = {"riscv64-linux-musl"};
++
++ switch (TargetTriple.getArch()) {
++ case llvm::Triple::aarch64:
++ LibDirs.append(begin(AArch64LibDirs), end(AArch64LibDirs));
++ TripleAliases.append(begin(AArch64MuslTriples), end(AArch64MuslTriples));
++ BiarchLibDirs.append(begin(AArch64LibDirs), end(AArch64LibDirs));
++ BiarchTripleAliases.append(begin(AArch64MuslTriples), end(AArch64MuslTriples));
++ break;
++ case llvm::Triple::arm:
++ LibDirs.append(begin(ARMLibDirs), end(ARMLibDirs));
++ if (TargetTriple.getEnvironment() == llvm::Triple::MuslEABIHF) {
++ TripleAliases.append(begin(ARMHFMuslTriples), end(ARMHFMuslTriples));
++ } else {
++ TripleAliases.append(begin(ARMMuslTriples), end(ARMMuslTriples));
++ }
++ break;
++ case llvm::Triple::x86_64:
++ LibDirs.append(begin(X86_64LibDirs), end(X86_64LibDirs));
++ TripleAliases.append(begin(X86_64MuslTriples), end(X86_64MuslTriples));
++ BiarchLibDirs.append(begin(X86LibDirs), end(X86LibDirs));
++ BiarchTripleAliases.append(begin(X86MuslTriples), end(X86MuslTriples));
++ break;
++ case llvm::Triple::x86:
++ LibDirs.append(begin(X86LibDirs), end(X86LibDirs));
++ TripleAliases.append(begin(X86MuslTriples), end(X86MuslTriples));
++ BiarchLibDirs.append(begin(X86_64LibDirs), end(X86_64LibDirs));
++ BiarchTripleAliases.append(begin(X86_64MuslTriples), end(X86_64MuslTriples));
++ break;
++ case llvm::Triple::mips:
++ LibDirs.append(begin(MIPSLibDirs), end(MIPSLibDirs));
++ TripleAliases.append(begin(MIPSMuslTriples), end(MIPSMuslTriples));
++ break;
++ case llvm::Triple::ppc:
++ LibDirs.append(begin(PPCLibDirs), end(PPCLibDirs));
++ TripleAliases.append(begin(PPCMuslTriples), end(PPCMuslTriples));
++ BiarchLibDirs.append(begin(PPC64LibDirs), end(PPC64LibDirs));
++ BiarchTripleAliases.append(begin(PPC64MuslTriples), end(PPC64MuslTriples));
++ break;
++ case llvm::Triple::ppcle:
++ LibDirs.append(begin(PPCLELibDirs), end(PPCLELibDirs));
++ TripleAliases.append(begin(PPCLEMuslTriples), end(PPCLEMuslTriples));
++ BiarchLibDirs.append(begin(PPC64LELibDirs), end(PPC64LELibDirs));
++ BiarchTripleAliases.append(begin(PPC64LEMuslTriples), end(PPC64LEMuslTriples));
++ break;
++ case llvm::Triple::ppc64:
++ LibDirs.append(begin(PPC64LibDirs), end(PPC64LibDirs));
++ TripleAliases.append(begin(PPC64MuslTriples), end(PPC64MuslTriples));
++ BiarchLibDirs.append(begin(PPCLibDirs), end(PPCLibDirs));
++ BiarchTripleAliases.append(begin(PPCMuslTriples), end(PPCMuslTriples));
++ break;
++ case llvm::Triple::ppc64le:
++ LibDirs.append(begin(PPC64LELibDirs), end(PPC64LELibDirs));
++ TripleAliases.append(begin(PPC64LEMuslTriples), end(PPC64LEMuslTriples));
++ BiarchLibDirs.append(begin(PPCLELibDirs), end(PPCLELibDirs));
++ BiarchTripleAliases.append(begin(PPCLEMuslTriples), end(PPCLEMuslTriples));
++ break;
++ case llvm::Triple::riscv64:
++ LibDirs.append(begin(RISCV64LibDirs), end(RISCV64LibDirs));
++ TripleAliases.append(begin(RISCV64MuslTriples), end(RISCV64MuslTriples));
++ break;
++ default:
++ break;
++ }
++ TripleAliases.push_back(TargetTriple.str());
++ if (TargetTriple.str() != BiarchTriple.str())
++ BiarchTripleAliases.push_back(BiarchTriple.str());
++ return;
++ }
++
+ // Android targets should not use GNU/Linux tools or libraries.
+ if (TargetTriple.isAndroid()) {
+ static const char *const AArch64AndroidTriples[] = {
diff --git a/srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch b/srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch
new file mode 100644
index 000000000000..4ad6412d1e6c
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch
@@ -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 =
diff --git a/srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch b/srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch
new file mode 100644
index 000000000000..21fc8003c5f1
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch
@@ -0,0 +1,48 @@
+--- a/clang/lib/Basic/Targets/PPC.h
++++ b/clang/lib/Basic/Targets/PPC.h
+@@ -415,11 +415,10 @@ public:
+ LongDoubleFormat = &llvm::APFloat::IEEEdouble();
+ } else if ((Triple.getArch() == llvm::Triple::ppc64le)) {
+ DataLayout = "e-m:e-i64:64-n32:64";
+- ABI = "elfv2";
+ } else {
+ DataLayout = "E-m:e-i64:64-n32:64";
+- ABI = "elfv1";
+ }
++ ABI = "elfv2";
+
+ if (Triple.isOSFreeBSD() || Triple.isOSOpenBSD() || Triple.isMusl()) {
+ LongDoubleWidth = LongDoubleAlign = 64;
+--- a/clang/lib/CodeGen/TargetInfo.cpp
++++ b/clang/lib/CodeGen/TargetInfo.cpp
+@@ -10927,9 +10927,9 @@ const TargetCodeGenInfo &CodeGenModule::getTargetCodeGenInfo() {
+ return SetCGInfo(new AIXTargetCodeGenInfo(Types, /*Is64Bit*/ true));
+
+ if (Triple.isOSBinFormatELF()) {
+- PPC64_SVR4_ABIInfo::ABIKind Kind = PPC64_SVR4_ABIInfo::ELFv1;
+- if (getTarget().getABI() == "elfv2")
+- Kind = PPC64_SVR4_ABIInfo::ELFv2;
++ PPC64_SVR4_ABIInfo::ABIKind Kind = PPC64_SVR4_ABIInfo::ELFv2;
++ if (getTarget().getABI() == "elfv1")
++ Kind = PPC64_SVR4_ABIInfo::ELFv1;
+ bool IsSoftFloat = CodeGenOpts.FloatABI == "soft";
+
+ return SetCGInfo(
+--- a/clang/lib/Driver/ToolChains/Clang.cpp
++++ b/clang/lib/Driver/ToolChains/Clang.cpp
+@@ -1920,14 +1920,7 @@ void Clang::AddPPCTargetArgs(const ArgList &Args,
+ const llvm::Triple &T = getToolChain().getTriple();
+ if (T.isOSBinFormatELF()) {
+ switch (getToolChain().getArch()) {
+- case llvm::Triple::ppc64: {
+- if ((T.isOSFreeBSD() && T.getOSMajorVersion() >= 13) ||
+- T.isOSOpenBSD() || T.isMusl())
+- ABIName = "elfv2";
+- else
+- ABIName = "elfv1";
+- break;
+- }
++ case llvm::Triple::ppc64:
+ case llvm::Triple::ppc64le:
+ ABIName = "elfv2";
+ break;
diff --git a/srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch b/srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch
new file mode 100644
index 000000000000..360cfc1ba7f1
--- /dev/null
+++ b/srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch
@@ -0,0 +1,35 @@
+--- 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__) || SANITIZER_RISCV64
++ defined(__hexagon__) || defined(__powerpc__) || 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_ANDROID
++#if (defined(__aarch64__) || defined(__powerpc__) || SANITIZER_RISCV64) && !SANITIZER_ANDROID
+ // GLIBC 2.20+ sys/user does not include asm/ptrace.h
+ # include <asm/ptrace.h>
+ #endif
diff --git a/srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip b/srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip
new file mode 100644
index 000000000000..d0b61c80c897
--- /dev/null
+++ b/srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip
@@ -0,0 +1,62 @@
+--- a/compiler-rt/lib/xray/xray_powerpc64.inc
++++ b/compiler-rt/lib/xray/xray_powerpc64.inc
+@@ -12,7 +12,13 @@
+
+ #include <cstdint>
+ #include <mutex>
++#ifdef __GLIBC__
+ #include <sys/platform/ppc.h>
++#else
++#include <cctype>
++#include <cstring>
++#include <cstdlib>
++#endif
+
+ #include "xray_defs.h"
+
+@@ -20,13 +26,45 @@ namespace __xray {
+
+ ALWAYS_INLINE uint64_t readTSC(uint8_t &CPU) XRAY_NEVER_INSTRUMENT {
+ CPU = 0;
++#ifdef __GLIBC__
+ return __ppc_get_timebase();
++#else
++ return __builtin_ppc_get_timebase();
++#endif
+ }
+
+ inline uint64_t getTSCFrequency() XRAY_NEVER_INSTRUMENT {
+ static std::mutex M;
+ std::lock_guard<std::mutex> Guard(M);
++#ifdef __GLIBC__
+ return __ppc_get_timebase_freq();
++#else
++ /* FIXME: a less dirty implementation? */
++ static uint64_t base;
++ if (!base) {
++ FILE *f = fopen("/proc/cpuinfo", "rb");
++ if (f) {
++ ssize_t nr;
++ /* virtually always big enough to hold the line */
++ char buf[512];
++ while (fgets(buf, sizeof(buf), f)) {
++ char *ret = strstr(buf, "timebase");
++ if (!ret) {
++ continue;
++ }
++ ret += sizeof("timebase") - 1;
++ ret = strchr(ret, ':');
++ if (!ret) {
++ continue;
++ }
++ base = strtoul(ret + 1, nullptr, 10);
++ break;
++ }
++ fclose(f);
++ }
++ }
++ return base;
++#endif
+ }
+
+ inline bool probeRequiredCPUFeatures() XRAY_NEVER_INSTRUMENT {
diff --git a/srcpkgs/llvm15/patches/libcxx-musl.patch b/srcpkgs/llvm15/patches/libcxx-musl.patch
new file mode 100644
index 000000000000..bbd31ffc2cb1
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxx-musl.patch
@@ -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,
+ typename remove_reference<decltype(errno)>::type __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
+ typename remove_reference<decltype(errno)>::type __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,
+ typename remove_reference<decltype(errno)>::type __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
+ typename remove_reference<decltype(errno)>::type __current_errno = errno;
+ if (__current_errno == 0)
+ errno = __save_errno;
diff --git a/srcpkgs/llvm15/patches/libcxx-ppc.patch b/srcpkgs/llvm15/patches/libcxx-ppc.patch
new file mode 100644
index 000000000000..7a92f8004e1c
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxx-ppc.patch
@@ -0,0 +1,22 @@
+This ensures `is_iec559` is defined correctly under all long double ABIs,
+including musl and its 64-bit long double. Also, `__ppc__` or `__ppc64__`
+is not defined on gcc.
+
+--- a/libcxx/include/limits
++++ b/libcxx/include/limits
+@@ -426,8 +426,14 @@ protected:
+ _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type signaling_NaN() _NOEXCEPT {return __builtin_nansl("");}
+ _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type denorm_min() _NOEXCEPT {return __LDBL_DENORM_MIN__;}
+
+-#if (defined(__ppc__) || defined(__ppc64__))
++#if defined(__powerpc__) || defined(__powerpc64__)
++#if (__LDBL_MAX_EXP__ > __DBL_MAX_EXP__) || (__LDBL_MANT_DIG__ == __DBL_MANT_DIG__)
++ /* IEEE 754 quadruple or double precision */
++ static _LIBCPP_CONSTEXPR const bool is_iec559 = true;
++#else
++ /* 128-bit IBM double-double */
+ static _LIBCPP_CONSTEXPR const bool is_iec559 = false;
++#endif
+ #else
+ static _LIBCPP_CONSTEXPR const bool is_iec559 = true;
+ #endif
diff --git a/srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch b/srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch
new file mode 100644
index 000000000000..70292beb2fcd
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch
@@ -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()
diff --git a/srcpkgs/llvm15/patches/libcxxabi-dl.patch b/srcpkgs/llvm15/patches/libcxxabi-dl.patch
new file mode 100644
index 000000000000..3a15f9db8c98
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxxabi-dl.patch
@@ -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 @@
+ target_link_libraries(${target} PRIVATE m)
+ endif()
+
++ if (LIBCXX_HAS_C_LIB)
++ target_link_libraries(${target} PRIVATE dl)
++ endif()
++
+ if (LIBCXX_HAS_RT_LIB)
+ target_link_libraries(${target} PRIVATE rt)
+ endif()
diff --git a/srcpkgs/llvm15/patches/libcxxabi-musl.patch b/srcpkgs/llvm15/patches/libcxxabi-musl.patch
new file mode 100644
index 000000000000..55bf6f5aaa08
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxxabi-musl.patch
@@ -0,0 +1,37 @@
+diff --git a/libcxx/include/__support/musl/xlocale.h b/libcxx/include/__support/musl/xlocale.h
+index e674a41fa..f546119b9 100644
+--- a/libcxx/include/__support/musl/xlocale.h
++++ b/libcxx/include/__support/musl/xlocale.h
+@@ -24,27 +24,27 @@
+ extern "C" {
+ #endif
+
+-inline _LIBCPP_HIDE_FROM_ABI long long
++static inline long long
+ strtoll_l(const char *__nptr, char **__endptr, int __base, locale_t) {
+ return ::strtoll(__nptr, __endptr, __base);
+ }
+
+-inline _LIBCPP_HIDE_FROM_ABI unsigned long long
++static inline unsigned long long
+ strtoull_l(const char *__nptr, char **__endptr, int __base, locale_t) {
+ return ::strtoull(__nptr, __endptr, __base);
+ }
+
+-inline _LIBCPP_HIDE_FROM_ABI long long
++static inline long long
+ wcstoll_l(const wchar_t *__nptr, wchar_t **__endptr, int __base, locale_t) {
+ return ::wcstoll(__nptr, __endptr, __base);
+ }
+
+-inline _LIBCPP_HIDE_FROM_ABI unsigned long long
++static inline unsigned long long
+ wcstoull_l(const wchar_t *__nptr, wchar_t **__endptr, int __base, locale_t) {
+ return ::wcstoull(__nptr, __endptr, __base);
+ }
+
+-inline _LIBCPP_HIDE_FROM_ABI long double
++static inline long double
+ wcstold_l(const wchar_t *__nptr, wchar_t **__endptr, locale_t) {
+ return ::wcstold(__nptr, __endptr);
+ }
diff --git a/srcpkgs/llvm15/patches/libomp-soname.patch b/srcpkgs/llvm15/patches/libomp-soname.patch
new file mode 100644
index 000000000000..9a622cd9254c
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libomp-soname.patch
@@ -0,0 +1,12 @@
+diff --git a/openmp/runtime/src/CMakeLists.txt b/openmp/runtime/src/CMakeLists.txt
+index df1ca9d90..9d2c3b7b9 100644
+--- a/openmp/runtime/src/CMakeLists.txt
++++ b/openmp/runtime/src/CMakeLists.txt
+@@ -150,6 +150,7 @@ libomp_get_libflags(LIBOMP_CONFIGURED_LIBFLAGS)
+ # Build libomp library. Add LLVMSupport dependency if building in-tree with libomptarget profiling enabled.
+ if(OPENMP_STANDALONE_BUILD OR (NOT OPENMP_ENABLE_LIBOMP_PROFILING))
+ add_library(omp ${LIBOMP_LIBRARY_KIND} ${LIBOMP_SOURCE_FILES})
++ set_target_properties(omp PROPERTIES VERSION ${LIBOMP_VERSION_MAJOR} SOVERSION ${LIBOMP_VERSION_MAJOR})
+ # Linking command will include libraries in LIBOMP_CONFIGURED_LIBFLAGS
+ target_link_libraries(omp ${LIBOMP_CONFIGURED_LIBFLAGS} ${LIBOMP_DL_LIBS})
+ else()
diff --git a/srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip b/srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip
new file mode 100644
index 000000000000..74aa7576ecf9
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip
@@ -0,0 +1,63 @@
+This fixes build at least with gcc9 which does not define `__ppc__`.
+
+--- a/libunwind/include/__libunwind_config.h
++++ b/libunwind/include/__libunwind_config.h
+@@ -49,7 +49,7 @@
+ # define _LIBUNWIND_CONTEXT_SIZE 167
+ # define _LIBUNWIND_CURSOR_SIZE 179
+ # define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_PPC64
+-# elif defined(__ppc__)
++# elif defined(__powerpc__)
+ # define _LIBUNWIND_TARGET_PPC 1
+ # define _LIBUNWIND_CONTEXT_SIZE 117
+ # define _LIBUNWIND_CURSOR_SIZE 124
+--- a/libunwind/src/UnwindRegistersRestore.S
++++ b/libunwind/src/UnwindRegistersRestore.S
+@@ -392,7 +392,7 @@ Lnovec:
+ PPC64_LR(3)
+ bctr
+
+-#elif defined(__ppc__)
++#elif defined(__powerpc__)
+
+ DEFINE_LIBUNWIND_FUNCTION(_ZN9libunwind13Registers_ppc6jumptoEv)
+ //
+--- a/libunwind/src/UnwindRegistersSave.S
++++ b/libunwind/src/UnwindRegistersSave.S
+@@ -554,7 +554,7 @@ DEFINE_LIBUNWIND_FUNCTION(__unw_getcontext)
+ blr
+
+
+-#elif defined(__ppc__)
++#elif defined(__powerpc__)
+
+ //
+ // extern int unw_getcontext(unw_context_t* thread_state)
+--- a/libunwind/src/config.h
++++ b/libunwind/src/config.h
+@@ -95,12 +95,12 @@
+ #define _LIBUNWIND_BUILD_SJLJ_APIS
+ #endif
+
+-#if defined(__i386__) || defined(__x86_64__) || defined(__ppc__) || defined(__ppc64__) || defined(__powerpc64__)
++#if defined(__i386__) || defined(__x86_64__) || defined(__powerpc__) || defined(__powerpc64__)
+ #define _LIBUNWIND_SUPPORT_FRAME_APIS
+ #endif
+
+ #if defined(__i386__) || defined(__x86_64__) || \
+- defined(__ppc__) || defined(__ppc64__) || defined(__powerpc64__) || \
++ defined(__powerpc__) || defined(__powerpc64__) || \
+ (!defined(__APPLE__) && defined(__arm__)) || \
+ (defined(__arm64__) || defined(__aarch64__)) || \
+ defined(__mips__)
+--- a/libunwind/src/libunwind.cpp
++++ b/libunwind/src/libunwind.cpp
+@@ -42,7 +42,7 @@ _LIBUNWIND_HIDDEN int __unw_init_local(unw_cursor_t *cursor,
+ # define REGISTER_KIND Registers_x86_64
+ #elif defined(__powerpc64__)
+ # define REGISTER_KIND Registers_ppc64
+-#elif defined(__ppc__)
++#elif defined(__powerpc__)
+ # define REGISTER_KIND Registers_ppc
+ #elif defined(__aarch64__)
+ # define REGISTER_KIND Registers_arm64
diff --git a/srcpkgs/llvm15/patches/lldb-musl.patch b/srcpkgs/llvm15/patches/lldb-musl.patch
new file mode 100644
index 000000000000..026c5e1e61ba
--- /dev/null
+++ b/srcpkgs/llvm15/patches/lldb-musl.patch
@@ -0,0 +1,40 @@
+--- a/lldb/source/Plugins/Process/Linux/Procfs.h
++++ b/lldb/source/Plugins/Process/Linux/Procfs.h
+@@ -10,6 +10,7 @@
+ // sys/procfs.h on Android/Linux for all supported architectures.
+
+ #include <sys/ptrace.h>
++#include <asm/ptrace.h>
+
+ #include "lldb/lldb-types.h"
+
+@@ -17,23 +18,13 @@
+
+ #include <vector>
+
+-#ifdef __ANDROID__
+-#if defined(__arm64__) || defined(__aarch64__)
+-typedef unsigned long elf_greg_t;
+-typedef elf_greg_t
+- elf_gregset_t[(sizeof(struct user_pt_regs) / sizeof(elf_greg_t))];
+-typedef struct user_fpsimd_state elf_fpregset_t;
+-#ifndef NT_FPREGSET
+-#define NT_FPREGSET NT_PRFPREG
+-#endif // NT_FPREGSET
+-#elif defined(__mips__)
+-#ifndef NT_FPREGSET
+-#define NT_FPREGSET NT_PRFPREG
+-#endif // NT_FPREGSET
+-#endif
+-#else // __ANDROID__
++#if !defined(__GLIBC__) && defined(__powerpc__)
++#define pt_regs musl_pt_regs
++#include <sys/procfs.h>
++#undef pt_regs
++#else
+ #include <sys/procfs.h>
+-#endif // __ANDROID__
++#endif
+
+ namespace lldb_private {
+ namespace process_linux {
diff --git a/srcpkgs/llvm15/patches/llvm-001-musl.patch b/srcpkgs/llvm15/patches/llvm-001-musl.patch
new file mode 100644
index 000000000000..f2a3f8d62813
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-001-musl.patch
@@ -0,0 +1,57 @@
+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;
+diff --git a/lib/Support/Unix/DynamicLibrary.inc b/lib/Support/Unix/DynamicLibrary.inc
+index a2a37996..2f86c470 100644
+--- a/llvm/lib/Support/Unix/DynamicLibrary.inc
++++ b/llvm/lib/Support/Unix/DynamicLibrary.inc
+@@ -102,7 +102,7 @@ static void *DoSearch(const char* SymbolName) {
+
+ // This macro returns the address of a well-known, explicit symbol
+ #define EXPLICIT_SYMBOL(SYM) \
+- if (!strcmp(SymbolName, #SYM)) return &SYM
++ if (!strcmp(SymbolName, #SYM)) return (void *)&SYM
+
+ // Under glibc we have a weird situation. The stderr/out/in symbols are both
+ // macros and global variables because of standards requirements. So, we
+diff --git a/utils/unittest/googletest/src/gtest.cc b/utils/unittest/googletest/src/gtest.cc
+index d882ab2e..f1fb12d0 100644
+--- a/llvm/utils/unittest/googletest/src/gtest.cc
++++ b/llvm/utils/unittest/googletest/src/gtest.cc
+@@ -128,6 +128,7 @@
+
+ #if GTEST_CAN_STREAM_RESULTS_
+ # include <arpa/inet.h> // NOLINT
++# include <sys/socket.h> // NOLINT
+ # include <netdb.h> // NOLINT
+ # include <sys/socket.h> // NOLINT
+ # include <sys/types.h> // NOLINT
diff --git a/srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch b/srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch
new file mode 100644
index 000000000000..0071d964bd37
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch
@@ -0,0 +1,30 @@
+This patches LLVM to use ELFv2 on ppc64 unconditionally unless overridden. We
+need this because unlike most distros we use ELFv2 for both glibc and musl
+on big endian ppc64.
+
+diff --git a/lib/Target/PowerPC/PPCTargetMachine.cpp b/lib/Target/PowerPC/PPCTargetMachine.cpp
+index 0634833e..b7cbc2e7 100644
+--- a/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp
++++ b/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp
+@@ -222,9 +222,8 @@ static PPCTargetMachine::PPCABI computeTargetABI(const Triple &TT,
+
+ switch (TT.getArch()) {
+ case Triple::ppc64le:
+- return PPCTargetMachine::PPC_ABI_ELFv2;
+ case Triple::ppc64:
+- return PPCTargetMachine::PPC_ABI_ELFv1;
++ return PPCTargetMachine::PPC_ABI_ELFv2;
+ default:
+ return PPCTargetMachine::PPC_ABI_UNKNOWN;
+ }
+diff --git a/test/CodeGen/PowerPC/ppc64-elf-abi.ll b/test/CodeGen/PowerPC/ppc64-elf-abi.ll
+index 8b1cf6b5..296a2afa 100644
+--- a/llvm/test/CodeGen/PowerPC/ppc64-elf-abi.ll
++++ b/llvm/test/CodeGen/PowerPC/ppc64-elf-abi.ll
+@@ -1,4 +1,5 @@
+-; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv1
++; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv2
++; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-musl < %s | FileCheck %s -check-prefix=CHECK-ELFv2
+ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu -target-abi elfv1 < %s | FileCheck %s -check-prefix=CHECK-ELFv1
+ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu -target-abi elfv2 < %s | FileCheck %s -check-prefix=CHECK-ELFv2
+ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv2
diff --git a/srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch b/srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch
new file mode 100644
index 000000000000..b5d15974375d
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch
@@ -0,0 +1,11 @@
+--- a/llvm/lib/Target/PowerPC/PPCSubtarget.cpp
++++ b/llvm/lib/Target/PowerPC/PPCSubtarget.cpp
+@@ -165,7 +165,7 @@ void PPCSubtarget::initSubtargetFeatures(StringRef CPU, StringRef FS) {
+
+ if ((TargetTriple.isOSFreeBSD() && TargetTriple.getOSMajorVersion() >= 13) ||
+ TargetTriple.isOSNetBSD() || TargetTriple.isOSOpenBSD() ||
+- TargetTriple.isMusl())
++ isTargetLinux())
+ SecurePlt = true;
+
+ if (HasSPE && IsPPC64)
diff --git a/srcpkgs/llvm15/patches/llvm-004-override-opt.patch b/srcpkgs/llvm15/patches/llvm-004-override-opt.patch
new file mode 100644
index 000000000000..51d0e4b31b32
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-004-override-opt.patch
@@ -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)
diff --git a/srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch b/srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch
new file mode 100644
index 000000000000..d332687b9d92
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch
@@ -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);
diff --git a/srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch b/srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch
new file mode 100644
index 000000000000..a00abd216665
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch
@@ -0,0 +1,25 @@
+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__) || defined (__ppc__) || \
+- defined(_POWER) || defined(_ARCH_PPC))
++ defined(_POWER) || defined(_ARCH_PPC) || (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
diff --git a/srcpkgs/llvm15/template b/srcpkgs/llvm15/template
new file mode 100644
index 000000000000..4d2777451e24
--- /dev/null
+++ b/srcpkgs/llvm15/template
@@ -0,0 +1,442 @@
+# Template file for 'llvm15'
+pkgname=llvm15
+version=15.0.7
+revision=1
+build_wrksrc=llvm
+build_style=cmake
+_ext_suffix=".cpython-${py3_ver/./}-linux-${XBPS_TARGET_LIBC/glibc/gnu}.so"
+configure_args="
+ -DCMAKE_BUILD_TYPE=Release -Wno-dev
+ -DENABLE_LINKER_BUILD_ID=YES
+ -DLLDB_USE_SYSTEM_SIX=YES
+ -DLIBCXX_CXX_ABI=libcxxabi
+ -DLIBCXX_ENABLE_STATIC_ABI_LIBRARY=YES
+ -DLIBCXXABI_USE_LLVM_UNWINDER=YES
+ -DLIBCXXABI_ENABLE_STATIC_UNWINDER=YES
+ -DLIBOMP_ENABLE_SHARED=YES
+ -DLIBOMP_INSTALL_ALIASES=NO
+ -DLLVM_INCLUDE_DOCS=YES
+ -DLLVM_BUILD_DOCS=YES
+ -DLLVM_ENABLE_SPHINX=YES
+ -DSPHINX_WARNINGS_AS_ERRORS=NO
+ -DLLVM_INSTALL_UTILS=YES
+ -DLLVM_BUILD_LLVM_DYLIB=YES
+ -DLLVM_LINK_LLVM_DYLIB=YES
+ -DLLVM_ENABLE_RTTI=YES
+ -DLLVM_ENABLE_FFI=YES
+ -DLLVM_BINUTILS_INCDIR=/usr/include
+ -DLLVM_ENABLE_PER_TARGET_RUNTIME_DIR=NO
+ -DLLDB_PYTHON_RELATIVE_PATH=lib/python${py3_ver}/site-packages
+ -DLLDB_PYTHON_EXE_RELATIVE_PATH=bin/python${py3_ver}
+ -DLLDB_PYTHON_EXT_SUFFIX=$_ext_suffix"
+hostmakedepends="perl python3 zlib-devel libffi-devel swig python3-Sphinx
+ python3-recommonmark python3-sphinx-automodapi"
+makedepends="python3-devel zlib-devel elfutils-devel libffi-devel libedit-devel
+ libxml2-devel binutils-devel libatomic-devel"
+depends="libllvm15>=${version}_${revision}"
+short_desc="Low Level Virtual Machine"
+maintainer="Orphaned <orphan@voidlinux.org>"
+license="Apache-2.0"
+homepage="https://www.llvm.org"
+distfiles="https://github.com/llvm/llvm-project/releases/download/llvmorg-${version}/llvm-project-${version}.src.tar.xz"
+checksum=8b5fcb24b4128cf04df1b0b9410ce8b1a729cb3c544e6da885d234280dedeac6
+lib32disabled=yes
+python_version=3
+
+if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
+ configure_args+=" -DLIBCXX_HAS_MUSL_LIBC=YES
+ -DCOMPILER_RT_BUILD_GWP_ASAN=OFF"
+fi
+
+# "operand out of range" assembler failures
+case "$XBPS_TARGET_MACHINE" in
+ ppc64*) ;;
+ ppc*) configure_args+=" -DCLANG_ENABLE_CLANGD=OFF" ;;
+esac
+
+_enabled_projects="clang;clang-tools-extra;compiler-rt;libcxx;libcxxabi;libunwind;lld"
+
+_lldb_enable=yes
+_libomp_enable=no
+
+case "$XBPS_TARGET_MACHINE" in
+ ppc64le*) ;;
+ ppc*|i686*|riscv64*) _lldb_enable=no ;;
+esac
+
+case "$XBPS_TARGET_MACHINE" in
+ x86_64*|aarch64*|ppc64*) _libomp_enable=yes;;
+esac
+
+subpackages="clang-tools-extra"
+
+# must go before clang
+if [ "$_libomp_enable" = "yes" ]; then
+ _enabled_projects+=";openmp"
+ subpackages+=" libomp libomp-devel"
+ # because of cmake nonsense referencing libomptarget.so.*
+ depends+=" libomp>=${version}_${revision}"
+ if [ "$CROSS_BUILD" ]; then
+ # Seems to require a full host llvm/clang build
+ configure_args+=" -DLIBOMPTARGET_BUILD_CUDA_PLUGIN=OFF"
+ configure_args+=" -DLIBOMPTARGET_BUILD_AMDGPU_PLUGIN=OFF"
+ fi
+fi
+
+subpackages+=" clang clang-analyzer libclang libclang-cpp
+ llvm-libunwind llvm-libunwind-devel libcxx libcxx-devel
+ libcxxabi libcxxabi-devel libllvm15"
+
+if [ "$_lldb_enable" = "yes" ]; then
+ # XXX fails to cross compile due to python
+ _enabled_projects+=";lldb"
+ subpackages+=" lldb lldb-devel"
+fi
+
+subpackages+=" lld lld-devel"
+
+configure_args+=" -DLLVM_ENABLE_PROJECTS=${_enabled_projects}"
+
+post_patch() {
+ if [ "$_lldb_enable" = "yes" ]; then
+ if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
+ vsed -i 's|__ptrace_request|int|g' \
+ ${wrksrc}/lldb/source/Plugins/Process/Linux/NativeProcessLinux.cpp
+ fi
+ # disable docs for lldb as they fail to generate
+ vsed -i '/add_subdirectory(docs)/d' \
+ ${wrksrc}/lldb/CMakeLists.txt
+ fi
+
+ # update config.guess for better platform detection
+ cp $XBPS_COMMONDIR/environment/configure/automake/config.guess \
+ ${wrksrc}/llvm/cmake
+
+ # fix linker failures on some archs
+ vsed -i 's,check_library_exists(gcc_s .*,set(LIBCXXABI_HAS_GCC_S_LIB ON),' \
+ ${wrksrc}/libcxxabi/cmake/config-ix.cmake
+ vsed -i 's,check_library_exists(gcc .*,set(LIBCXXABI_HAS_GCC_LIB ON),' \
+ ${wrksrc}/libcxxabi/cmake/config-ix.cmake
+
+ # need libssp_nonshared on some musl platforms (because of nodefaultlibs)
+ case "$XBPS_TARGET_MACHINE" in
+ ppc64*) ;;
+ ppc*-musl|i686-musl|mips*-musl)
+ vsed -i 's,^# Setup flags.$,add_library_flags(ssp_nonshared),' \
+ ${wrksrc}/libunwind/src/CMakeLists.txt
+ vsed -i 's,^# Setup flags.$,add_library_flags(ssp_nonshared),' \
+ ${wrksrc}/libcxxabi/src/CMakeLists.txt
+ vsed -i 's,#ssp,,' ${wrksrc}/libcxx/CMakeLists.txt
+ ;;
+ esac
+
+ case "$XBPS_TARGET_MACHINE" in
+ arm*-musl|i686-musl) # sanitizer code is broken since it duplicates some libc bits
+ vsed -i 's/set(COMPILER_RT_HAS_SANITIZER_COMMON TRUE)/set(COMPILER_RT_HAS_SANITIZER_COMMON FALSE)/' \
+ ${wrksrc}/compiler-rt/cmake/config-ix.cmake
+ ;;
+ esac
+}
+
+pre_configure() {
+ local triplet
+
+ # Vastly reduce size of debugging symbols:
+ CFLAGS=${CFLAGS/ -g/ -g1}
+ CXXFLAGS=${CXXFLAGS/ -g/ -g1}
+
+ # since gcc9, the build likes to blow up for ppc32 apparently because
+ # of clang being too large for a 24-bit relative call to the PLT, so
+ # optimize for size instead
+ case "$XBPS_TARGET_MACHINE" in
+ ppc64*) ;;
+ mips*-musl|ppc*) configure_args+=" -DVOID_CXX_OPT_FLAGS=-Os" ;;
+ esac
+
+ if [ "$CROSS_BUILD" ]; then
+ msg_normal "Building host tblgen\n"
+ mkdir -p build/HOST
+ cd build/HOST
+ CC="$BUILD_CC" CXX="$BUILD_CXX" CFLAGS="$BUILD_CFLAGS" \
+ CXXFLAGS="$BUILD_CXXFLAGS" LDFLAGS="$BUILD_LDFLAGS" \
+ cmake ../.. -DCMAKE_BUILD_TYPE=Release \
+ -DLLVM_ENABLE_PROJECTS=${_enabled_projects}
+ make ${makejobs} -C utils/TableGen
+ make ${makejobs} -C tools/clang/utils/TableGen
+ make ${makejobs} -C tools/clang/tools/extra/clang-tidy/misc/ConfusableTable
+ make ${makejobs} -C tools/clang/tools/extra/pseudo/gen
+ [ "$_lldb_enable" = "yes" ] && make ${makejobs} -C tools/lldb/utils/TableGen
+ configure_args+=" -DLLVM_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/llvm-tblgen"
+ configure_args+=" -DCLANG_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/clang-tblgen"
+ configure_args+=" -DCLANG_TIDY_CONFUSABLE_CHARS_GEN=${wrksrc}/llvm/build/HOST/bin/clang-tidy-confusable-chars-gen"
+ configure_args+=" -DCLANG_PSEUDO_GEN=${wrksrc}/llvm/build/HOST/bin/clang-pseudo-gen"
+ [ "$_lldb_enable" = "yes" ] && configure_args+=" -DLLDB_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/lldb-tblgen"
+ cd ../..
+ fi
+
+ case "$XBPS_TARGET_MACHINE" in
+ i686*) _arch="X86";;
+ x86_64*) _arch="X86";;
+ armv5*) _arch="Armv5te";;
+ armv6*) _arch="Armv6";;
+ armv7*) _arch="Armv7";;
+ aarch64*) _arch="AArch64";;
+ mips*) _arch="Mips";;
+ ppc*) _arch="PowerPC";;
+ riscv64*) _arch="RISCV64";;
+ esac
+
+ triplet=${XBPS_CROSS_TRIPLET:-$XBPS_TRIPLET}
+
+ configure_args+=" -DLLVM_TARGET_ARCH=${_arch}"
+ configure_args+=" -DLLVM_HOST_TRIPLE=${triplet}"
+ configure_args+=" -DLLVM_DEFAULT_TARGET_TRIPLE=${triplet}"
+}
+
+do_install() {
+ cd build
+ cmake -DCMAKE_INSTALL_PREFIX=${DESTDIR}/usr -P cmake_install.cmake
+
+ # Required for multilib.
+ if [ "$XBPS_TARGET_MACHINE" = "x86_64" ]; then
+ for _header in llvm-config; do
+ mv ${DESTDIR}/usr/include/llvm/Config/${_header}{,-64}.h
+ vinstall ${FILESDIR}/llvm-Config-${_header}.h 644 \
+ usr/include/llvm/Config ${_header}.h
+ done
+ fi
+
+ # Remove llvm-config-host in cross builds.
+ if [ "$CROSS_BUILD" ]; then
+ rm -f ${DESTDIR}/usr/bin/llvm-config-host
+ fi
+
+ # Install libcxxabi headers
+ vinstall ${wrksrc}/libcxxabi/include/__cxxabi_config.h 644 usr/include
+ vinstall ${wrksrc}/libcxxabi/include/cxxabi.h 644 usr/include
+
+ # Install libunwind headers
+ vinstall ${wrksrc}/libunwind/include/__libunwind_config.h 644 usr/include
+ vinstall ${wrksrc}/libunwind/include/libunwind.h 644 usr/include
+ vinstall ${wrksrc}/libunwind/include/unwind.h 644 usr/include
+ vinstall ${wrksrc}/libunwind/include/mach-o/compact_unwind_encoding.h \
+ 644 usr/include/mach-o
+}
+
+clang-analyzer_package() {
+ pycompile_dirs="usr/share/scan-view"
+ depends="clang-${version}_${revision} python3 perl"
+ short_desc+=" - A source code analysis framework"
+ homepage="https://clang-analyzer.llvm.org/"
+ pkg_install() {
+ vmove "usr/bin/scan-*"
+ vmove "usr/libexec/*analyzer"
+ vmove "usr/share/scan-*"
+ vmove usr/share/man/man1/scan-build.1
+ }
+}
+
+clang-tools-extra_package() {
+ lib32disabled=yes
+ depends="clang-${version}_${revision} python3"
+ short_desc+=" - Extra Clang tools"
+ homepage="https://clang.llvm.org/extra/"
+ pkg_install() {
+ vmove usr/bin/clang-apply-replacements
+ vmove usr/bin/clang-doc
+ vmove usr/bin/clang-include-fixer
+ vmove usr/bin/clang-query
+ vmove usr/bin/clang-rename
+ vmove usr/bin/clang-reorder-fields
+ vmove usr/bin/clang-tidy
+ vmove usr/bin/clangd
+ vmove usr/bin/diagtool
+ vmove usr/bin/find-all-symbols
+ vmove usr/bin/hmaptool
+ vmove usr/bin/modularize
+ vmove usr/bin/pp-trace
+ vmove usr/bin/sancov
+ vmove usr/include/clang-tidy
+ vmove "usr/lib/libclangApplyReplacements*"
+ vmove "usr/lib/libclangDoc*"
+ vmove "usr/lib/libclangIncludeFixer*"
+ vmove "usr/lib/libclangReorderFields*"
+ vmove "usr/lib/libclangQuery*"
+ vmove "usr/lib/libclangTidy*"
+ vmove "usr/share/clang/*include-fixer*"
+ vmove "usr/share/clang/*rename*"
+ vmove "usr/share/clang/*tidy*"
+ vmove usr/share/doc/LLVM/clang-tools
+ vmove usr/share/man/man1/diagtool.1
+ vmove usr/share/man/man1/extraclangtools.1
+ }
+}
+
+clang_package() {
+ lib32disabled=yes
+ depends="libstdc++-devel libgcc-devel binutils ${XBPS_TARGET_LIBC}-devel
+ libclang-${version}_${revision}"
+ short_desc+=" - C language family frontend"
+ homepage="https://clang.llvm.org/"
+ pkg_install() {
+ vmove "usr/bin/*clang*"
+ vmove usr/bin/c-index-test
+ vmove usr/include/clang
+ vmove usr/include/clang-c
+ vmove usr/lib/clang
+ vmove usr/lib/cmake/clang
+ vmove "usr/lib/libclang*.a"
+ vmove "usr/lib/libclang*.so"
+ vmove usr/share/clang
+ vmove usr/share/doc/LLVM/clang
+ vmove usr/share/man/man1/clang.1
+ }
+}
+
+libclang_package() {
+ short_desc+=" - C frontend runtime library"
+ pkg_install() {
+ vmove "usr/lib/libclang.so.*"
+ }
+}
+
+libclang-cpp_package() {
+ short_desc+=" - C frontend runtime library (C++ interface)"
+ pkg_install() {
+ vmove "usr/lib/libclang-cpp.so.*"
+ }
+}
+
+lld_package() {
+ lib32disabled=yes
+ short_desc+=" - linker"
+ homepage="https://lld.llvm.org"
+ pkg_install() {
+ vmove "usr/bin/ld.lld*"
+ vmove "usr/bin/ld64.lld*"
+ vmove "usr/bin/lld*"
+ vmove usr/bin/wasm-ld
+ vmove usr/share/doc/LLVM/lld
+ }
+}
+
+lld-devel_package() {
+ lib32disabled=yes
+ short_desc+=" - linker - development files"
+ homepage="https://lld.llvm.org"
+ depends="lld>=${version}_${revision}"
+ pkg_install() {
+ vmove usr/include/lld
+ vmove usr/lib/cmake/lld
+ vmove "usr/lib/liblld*a"
+ }
+}
+
+lldb_package() {
+ lib32disabled=yes
+ depends+=" python3-six"
+ short_desc+=" - LLDB debugger"
+ homepage="https://lldb.llvm.org/"
+ pkg_install() {
+ vmove "usr/bin/*lldb*"
+ vmove "usr/lib/liblldb*so.*"
+ vmove usr/lib/python*
+ }
+}
+
+lldb-devel_package() {
+ lib32disabled=yes
+ depends="lldb>=${version}_${revision}"
+ short_desc+=" - LLDB debugger - development files"
+ pkg_install() {
+ vmove usr/include/lldb
+ vmove "usr/lib/liblldb*.so"
+ }
+}
+
+llvm-libunwind_package() {
+ short_desc+=" - libunwind"
+ pkg_install() {
+ vmove "usr/lib/libunwind.so.*"
+ }
+}
+
+llvm-libunwind-devel_package() {
+ short_desc+=" - libunwind - development files"
+ depends="llvm-libunwind>=${version}_${revision}"
+ conflicts="libunwind-devel>=0"
+ pkg_install() {
+ vmove usr/include/mach-o
+ vmove "usr/include/*unwind*"
+ vmove "usr/lib/libunwind.a"
+ vmove "usr/lib/libunwind.so"
+ vmove usr/share/doc/LLVM/libunwind
+ }
+}
+
+libcxxabi_package() {
+ short_desc+=" - low level support for libc++"
+ pkg_install() {
+ vmove "usr/lib/libc++abi.so.*"
+ }
+}
+
+libcxxabi-devel_package() {
+ short_desc+=" - low level support for libc++ - development files"
+ depends="libcxxabi>=${version}_${revision}"
+ pkg_install() {
+ vmove "usr/include/*cxxabi*"
+ vmove "usr/lib/libc++abi.so"
+ vmove "usr/lib/libc++abi.a"
+ }
+}
+
+libcxx_package() {
+ short_desc+=" - C++ standard library"
+ pkg_install() {
+ vmove "usr/lib/libc++.so.*"
+ }
+}
+
+libcxx-devel_package() {
+ short_desc+=" - C++ standard library - development files"
+ depends="libcxx>=${version}_${revision}"
+ pkg_install() {
+ vmove usr/include/c++
+ vmove "usr/lib/libc++.so"
+ vmove "usr/lib/libc++.a"
+ vmove "usr/lib/libc++experimental.a"
+ vmove usr/share/doc/LLVM/libcxx
+ }
+}
+
+libomp_package() {
+ short_desc+=" - Clang OpenMP support library"
+ pkg_install() {
+ vmove usr/lib/libarcher.so
+ vmove usr/lib/libompd.so
+ vmove "usr/lib/libomptarget.rtl.*.so"
+ vmove "usr/lib/libomp*.so.*"
+ }
+}
+
+libomp-devel_package() {
+ short_desc+=" - Clang OpenMP support library - development files"
+ depends="libomp>=${version}_${revision}"
+ pkg_install() {
+ vmove "usr/include/omp*.h"
+ vmove "usr/lib/clang/${version}/include/omp*.h"
+ vmove "usr/lib/libarcher*"
+ vmove "usr/lib/libomp*.so"
+ vmove usr/lib/cmake/openmp
+ vmove usr/share/doc/LLVM/openmp
+ vmove usr/share/man/man1/llvmopenmp.1
+ }
+}
+
+libllvm15_package() {
+ short_desc+=" - runtime library"
+ pkg_install() {
+ vmove "usr/lib/libLLVM-*.so*"
+ }
+}
diff --git a/srcpkgs/llvm15/update b/srcpkgs/llvm15/update
new file mode 100644
index 000000000000..e95cf26b3586
--- /dev/null
+++ b/srcpkgs/llvm15/update
@@ -0,0 +1,3 @@
+site="https://github.com/llvm/llvm-project/releases"
+pattern="llvmorg-\K(\d+.){2}\d+(-rc\d+)?"
+ignore="*-rc*"
From 016ed775e5f482f98a2ede7a10bc24b0069eb0e0 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Sun, 18 Dec 2022 00:40:18 +0100
Subject: [PATCH 02/18] llvm: update to 15
---
common/shlibs | 6 +++---
srcpkgs/clang | 2 +-
srcpkgs/clang-analyzer | 2 +-
srcpkgs/clang-tools-extra | 2 +-
srcpkgs/libclang | 2 +-
srcpkgs/libclang-cpp | 2 +-
srcpkgs/libcxx | 2 +-
srcpkgs/libcxx-devel | 2 +-
srcpkgs/libcxxabi | 2 +-
srcpkgs/libcxxabi-devel | 2 +-
srcpkgs/libomp | 2 +-
srcpkgs/libomp-devel | 2 +-
srcpkgs/lld | 2 +-
srcpkgs/lld-devel | 2 +-
srcpkgs/lldb | 2 +-
srcpkgs/lldb-devel | 2 +-
srcpkgs/llvm-libunwind | 2 +-
srcpkgs/llvm-libunwind-devel | 2 +-
srcpkgs/llvm/template | 6 +++---
19 files changed, 23 insertions(+), 23 deletions(-)
diff --git a/common/shlibs b/common/shlibs
index 7c1c48c61065..44059d647598 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -987,9 +987,9 @@ 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.12 lldb-12.0.0_1
-libclang.so.12 libclang-12.0.0_1
-libclang-cpp.so.12 libclang-cpp-12.0.0_1
+liblldb.so.15 lldb-15.0.7_1
+libclang.so.15 libclang-15.0.7_1
+libclang-cpp.so.15 libclang-cpp-15.0.7_1
libLLVM-11.so libllvm11-11.0.0_1
libLLVM-12.so libllvm12-12.0.0_1
libLLVM-15.so libllvm15-15.0.7_1
diff --git a/srcpkgs/clang b/srcpkgs/clang
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/clang
+++ b/srcpkgs/clang
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/clang-analyzer b/srcpkgs/clang-analyzer
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/clang-analyzer
+++ b/srcpkgs/clang-analyzer
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/clang-tools-extra b/srcpkgs/clang-tools-extra
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/clang-tools-extra
+++ b/srcpkgs/clang-tools-extra
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libclang b/srcpkgs/libclang
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libclang
+++ b/srcpkgs/libclang
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libclang-cpp b/srcpkgs/libclang-cpp
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libclang-cpp
+++ b/srcpkgs/libclang-cpp
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxx b/srcpkgs/libcxx
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxx
+++ b/srcpkgs/libcxx
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxx-devel b/srcpkgs/libcxx-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxx-devel
+++ b/srcpkgs/libcxx-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxxabi b/srcpkgs/libcxxabi
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxxabi
+++ b/srcpkgs/libcxxabi
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxxabi-devel b/srcpkgs/libcxxabi-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxxabi-devel
+++ b/srcpkgs/libcxxabi-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libomp b/srcpkgs/libomp
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libomp
+++ b/srcpkgs/libomp
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libomp-devel b/srcpkgs/libomp-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libomp-devel
+++ b/srcpkgs/libomp-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lld b/srcpkgs/lld
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lld
+++ b/srcpkgs/lld
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lld-devel b/srcpkgs/lld-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lld-devel
+++ b/srcpkgs/lld-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lldb b/srcpkgs/lldb
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lldb
+++ b/srcpkgs/lldb
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lldb-devel b/srcpkgs/lldb-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lldb-devel
+++ b/srcpkgs/lldb-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm-libunwind b/srcpkgs/llvm-libunwind
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/llvm-libunwind
+++ b/srcpkgs/llvm-libunwind
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm-libunwind-devel b/srcpkgs/llvm-libunwind-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/llvm-libunwind-devel
+++ b/srcpkgs/llvm-libunwind-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm/template b/srcpkgs/llvm/template
index a92db6f94f9f..fc1c850bd26f 100644
--- a/srcpkgs/llvm/template
+++ b/srcpkgs/llvm/template
@@ -1,11 +1,11 @@
# Template file for 'llvm'
pkgname=llvm
-version=12.0.0
+version=15
revision=1
build_style=meta
-depends="llvm12"
-replaces="llvm11>=0 llvm10>=0 llvm9>=0 llvm8>=0 llvm7>=0 llvm6.0>=0 llvm3.9>=0"
+depends="llvm15"
short_desc="LLVM meta package"
maintainer="Enno Boland <gottox@voidlinux.org>"
license="Public Domain"
homepage="https://www.voidlinux.org"
+replaces="llvm12>=0 llvm11>=0 llvm10>=0 llvm9>=0 llvm8>=0 llvm7>=0 llvm6.0>=0 llvm3.9>=0"
From 6ffb3cba2fc9858ba7d8c4134f5c717ffa7fb9bd Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Sun, 18 Dec 2022 12:20:08 +0100
Subject: [PATCH 03/18] llvm12: remove bumped subpackages
---
srcpkgs/llvm12/template | 264 +---------------------------------------
1 file changed, 1 insertion(+), 263 deletions(-)
diff --git a/srcpkgs/llvm12/template b/srcpkgs/llvm12/template
index f8ea3ba641ae..aea0b43cf573 100644
--- a/srcpkgs/llvm12/template
+++ b/srcpkgs/llvm12/template
@@ -50,55 +50,7 @@ case "$XBPS_TARGET_MACHINE" in
ppc*) configure_args+=" -DCLANG_ENABLE_CLANGD=OFF" ;;
esac
-_enabled_projects="clang;clang-tools-extra;compiler-rt;libcxx;libcxxabi;libunwind;lld"
-
-_lldb_enable=yes
-_libomp_enable=no
-
-case "$XBPS_TARGET_MACHINE" in
- ppc64le*) ;;
- ppc*|i686*) _lldb_enable=no ;;
-esac
-
-case "$XBPS_TARGET_MACHINE" in
- x86_64*|aarch64*|ppc64*) _libomp_enable=yes;;
-esac
-
-subpackages="clang-tools-extra"
-
-# must go before clang
-if [ "$_libomp_enable" = "yes" ]; then
- _enabled_projects+=";openmp"
- subpackages+=" libomp libomp-devel"
- # because of cmake nonsense referencing libomptarget.so.*
- depends+=" libomp>=${version}_${revision}"
-fi
-
-subpackages+=" clang clang-analyzer libclang libclang-cpp
- llvm-libunwind llvm-libunwind-devel libcxx libcxx-devel
- libcxxabi libcxxabi-devel libllvm12"
-
-if [ "$_lldb_enable" = "yes" ]; then
- # XXX fails to cross compile due to python
- _enabled_projects+=";lldb"
- subpackages+=" lldb lldb-devel"
-fi
-
-subpackages+=" lld lld-devel"
-
-configure_args+=" -DLLVM_ENABLE_PROJECTS=${_enabled_projects}"
-
post_patch() {
- if [ "$_lldb_enable" = "yes" ]; then
- if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
- vsed -i 's|__ptrace_request|int|g' \
- ${wrksrc}/lldb/source/Plugins/Process/Linux/NativeProcessLinux.cpp
- fi
- # disable docs for lldb as they fail to generate
- vsed -i '/add_subdirectory(docs)/d' \
- ${wrksrc}/lldb/CMakeLists.txt
- fi
-
# update config.guess for better platform detection
cp $XBPS_COMMONDIR/environment/configure/automake/config.guess \
${wrksrc}/llvm/cmake
@@ -154,14 +106,12 @@ pre_configure() {
cd build/HOST
CC="$BUILD_CC" CXX="$BUILD_CXX" CFLAGS="$BUILD_CFLAGS" \
CXXFLAGS="$BUILD_CXXFLAGS" LDFLAGS="$BUILD_LDFLAGS" \
- cmake ../.. -DCMAKE_BUILD_TYPE=Release \
- -DLLVM_ENABLE_PROJECTS=${_enabled_projects}
+ cmake ../.. -DCMAKE_BUILD_TYPE=Release
make ${makejobs} -C utils/TableGen
make ${makejobs} -C tools/clang/utils/TableGen
[ "$_lldb_enable" = "yes" ] && make ${makejobs} -C tools/lldb/utils/TableGen
configure_args+=" -DLLVM_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/llvm-tblgen"
configure_args+=" -DCLANG_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/clang-tblgen"
- [ "$_lldb_enable" = "yes" ] && configure_args+=" -DLLDB_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/lldb-tblgen"
cd ../..
fi
@@ -201,218 +151,6 @@ do_install() {
if [ "$CROSS_BUILD" ]; then
rm -f ${DESTDIR}/usr/bin/llvm-config-host
fi
-
- # Install libcxxabi headers
- vinstall ${wrksrc}/libcxxabi/include/__cxxabi_config.h 644 usr/include
- vinstall ${wrksrc}/libcxxabi/include/cxxabi.h 644 usr/include
-
- # Install libunwind headers
- vinstall ${wrksrc}/libunwind/include/__libunwind_config.h 644 usr/include
- vinstall ${wrksrc}/libunwind/include/libunwind.h 644 usr/include
- vinstall ${wrksrc}/libunwind/include/unwind.h 644 usr/include
- vinstall ${wrksrc}/libunwind/include/mach-o/compact_unwind_encoding.h \
- 644 usr/include/mach-o
-}
-
-clang-analyzer_package() {
- pycompile_dirs="usr/share/scan-view"
- depends="clang-${version}_${revision} python3 perl"
- short_desc+=" - A source code analysis framework"
- homepage="https://clang-analyzer.llvm.org/"
- pkg_install() {
- vmove usr/share/man/man1/scan-build.1
- vmove "/usr/bin/scan-*"
- vmove "/usr/share/scan-*"
- vmove "/usr/libexec/*analyzer"
- }
-}
-
-clang-tools-extra_package() {
- lib32disabled=yes
- depends="clang-${version}_${revision} python3"
- short_desc+=" - Extra Clang tools"
- homepage="https://clang.llvm.org/extra/"
- pkg_install() {
- vmove usr/include/clang-tidy
- vmove usr/bin/clang-apply-replacements
- vmove usr/bin/clang-query
- vmove usr/bin/clang-rename
- vmove usr/bin/clang-tidy
- vmove usr/bin/diagtool
- vmove usr/bin/find-all-symbols
- vmove usr/bin/hmaptool
- vmove usr/bin/modularize
- vmove usr/bin/pp-trace
- vmove usr/bin/sancov
- vmove "usr/lib/libclangApplyReplacements*"
- vmove "usr/lib/libclangQuery*"
- vmove "usr/lib/libclangTidy*"
- vmove "usr/share/clang/*tidy*"
- vmove usr/share/doc/clang-tools
- vmove usr/share/man/man1/extraclangtools.1
- vmove usr/share/man/man1/diagtool.1
- }
-}
-
-clang_package() {
- lib32disabled=yes
- depends="libstdc++-devel libgcc-devel binutils ${XBPS_TARGET_LIBC}-devel
- libclang-${version}_${revision}"
- short_desc+=" - C language family frontend"
- homepage="https://clang.llvm.org/"
- pkg_install() {
- vmove usr/include/clang
- vmove usr/include/clang-c
- vmove "usr/bin/*clang*"
- vmove usr/bin/c-index-test
- vmove usr/lib/clang
- vmove usr/lib/cmake/clang
- vmove "usr/lib/libclang*.a"
- vmove "usr/lib/libclang*.so"
- vmove usr/share/clang
- vmove usr/share/doc/clang
- vmove usr/share/man/man1/clang.1
- }
-}
-
-libclang_package() {
- short_desc+=" - C frontend runtime library"
- pkg_install() {
- vmove "usr/lib/libclang.so.*"
- }
-}
-
-libclang-cpp_package() {
- short_desc+=" - C frontend runtime library (C++ interface)"
- pkg_install() {
- vmove "usr/lib/libclang-cpp.so.*"
- }
-}
-
-lld_package() {
- lib32disabled=yes
- short_desc+=" - linker"
- homepage="https://lld.llvm.org"
- pkg_install() {
- vmove usr/bin/lld*
- vmove usr/bin/wasm-ld
- vmove usr/bin/ld.lld*
- vmove usr/bin/ld64.lld*
- vmove usr/share/doc/lld
- }
-}
-
-lld-devel_package() {
- lib32disabled=yes
- short_desc+=" - linker - development files"
- homepage="https://lld.llvm.org"
- depends="lld>=${version}_${revision}"
- pkg_install() {
- vmove usr/include/lld
- vmove usr/lib/cmake/lld
- vmove "usr/lib/liblld*a"
- }
-}
-
-lldb_package() {
- lib32disabled=yes
- depends+=" python3-six"
- short_desc+=" - LLDB debugger"
- homepage="https://lldb.llvm.org/"
- pkg_install() {
- vmove usr/bin/*lldb*
- vmove usr/lib/liblldb*so.*
- vmove /usr/lib/python*
- }
-}
-
-lldb-devel_package() {
- lib32disabled=yes
- depends="lldb>=${version}_${revision}"
- short_desc+=" - LLDB debugger - development files"
- pkg_install() {
- vmove usr/include/lldb
- vmove "usr/lib/liblldb*.so"
- }
-}
-
-llvm-libunwind_package() {
- short_desc+=" - libunwind"
- pkg_install() {
- vmove "usr/lib/libunwind.so.*"
- }
-}
-
-llvm-libunwind-devel_package() {
- short_desc+=" - libunwind - development files"
- depends="llvm-libunwind>=${version}_${revision}"
- conflicts="libunwind-devel>=0"
- pkg_install() {
- vmove usr/lib/libunwind.so
- vmove usr/lib/libunwind.a
- vmove "usr/include/*unwind*"
- vmove usr/include/mach-o
- vmove usr/share/doc/libunwind
- }
-}
-
-libcxxabi_package() {
- short_desc+=" - low level support for libc++"
- pkg_install() {
- vmove "usr/lib/libc++abi.so.*"
- }
-}
-
-libcxxabi-devel_package() {
- short_desc+=" - low level support for libc++ - development files"
- depends="libcxxabi>=${version}_${revision}"
- pkg_install() {
- vmove usr/lib/libc++abi.so
- vmove usr/lib/libc++abi.a
- vmove "usr/include/*cxxabi*"
- }
-}
-
-libcxx_package() {
- short_desc+=" - C++ standard library"
- pkg_install() {
- vmove "usr/lib/libc++.so.*"
- }
-}
-
-libcxx-devel_package() {
- short_desc+=" - C++ standard library - development files"
- depends="libcxx>=${version}_${revision}"
- pkg_install() {
- vmove usr/lib/libc++.so
- vmove usr/lib/libc++.a
- vmove usr/lib/libc++experimental.a
- vmove usr/include/c++
- vmove usr/share/doc/libcxx
- }
-}
-
-libomp_package() {
- short_desc+=" - Clang OpenMP support library"
- pkg_install() {
- vmove usr/lib/libomp.so
- vmove "usr/lib/libomptarget.rtl.*.so"
- vmove usr/lib/libarcher.so
- vmove "usr/lib/libomp*.so.*"
- }
-}
-
-libomp-devel_package() {
- short_desc+=" - Clang OpenMP support library - development files"
- depends="libomp>=${version}_${revision}"
- pkg_install() {
- vmove "usr/lib/libomp*.so"
- vmove "usr/lib/libarcher*"
- vmove "usr/include/omp*.h"
- vmove "usr/lib/clang/${version}/include/omp*.h"
- vmove usr/share/man/man1/llvmopenmp.1
- vmove usr/share/doc/openmp
- }
}
libllvm12_package() {
From f107c174d7db3ec041d33f29d3ace0e0ca7a3643 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:27:03 +0100
Subject: [PATCH 04/18] mesa: rebuild for llvm15
---
srcpkgs/mesa/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/mesa/template b/srcpkgs/mesa/template
index 4c3c9ec6039e..0641b28a80d6 100644
--- a/srcpkgs/mesa/template
+++ b/srcpkgs/mesa/template
@@ -1,7 +1,7 @@
# Template file for 'mesa'
pkgname=mesa
version=22.2.4
-revision=2
+revision=3
build_style=meson
configure_args="-Dglvnd=true -Dshared-glapi=enabled -Dgbm=enabled -Degl=enabled
-Dosmesa=true -Dgles1=enabled -Dgles2=enabled -Dglx=dri -Ddri3=enabled
From 2c014990d7cabd857e083e0ac251d5a1a2c44497 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:34:04 +0100
Subject: [PATCH 05/18] bcc: rebuild for llvm15
---
srcpkgs/bcc/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/bcc/template b/srcpkgs/bcc/template
index 7526580f17ed..bdbcff7227a0 100644
--- a/srcpkgs/bcc/template
+++ b/srcpkgs/bcc/template
@@ -1,7 +1,7 @@
# Template file for 'bcc'
pkgname=bcc
version=0.26.0
-revision=2
+revision=3
build_style=cmake
configure_args="-DREVISION=${version} -DENABLE_LLVM_SHARED=1"
hostmakedepends="flex python3-setuptools"
From ad39f276bbf08e7f46e82254e5dfe05e0eac66ca Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:37:25 +0100
Subject: [PATCH 06/18] bpftrace: rebuild for llvm15
---
srcpkgs/bpftrace/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/bpftrace/template b/srcpkgs/bpftrace/template
index 952682662128..2f01dbf69530 100644
--- a/srcpkgs/bpftrace/template
+++ b/srcpkgs/bpftrace/template
@@ -1,7 +1,7 @@
# Template file for 'bpftrace'
pkgname=bpftrace
version=0.17.0
-revision=1
+revision=2
archs="x86_64* aarch64* ppc64*"
build_style=cmake
configure_args="-DUSE_SYSTEM_BPF_BCC=ON -DBUILD_TESTING=OFF" # needs root to run
From dab4452e67bcaeab84a0dd9b57e42c2794939d96 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:43:53 +0100
Subject: [PATCH 07/18] CastXML: rebuild for llvm15
---
srcpkgs/CastXML/template | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/srcpkgs/CastXML/template b/srcpkgs/CastXML/template
index 5d7d9503658c..28c424c78073 100644
--- a/srcpkgs/CastXML/template
+++ b/srcpkgs/CastXML/template
@@ -1,7 +1,7 @@
# Template file for 'CastXML'
pkgname=CastXML
version=0.4.6
-revision=1
+revision=2
build_style=cmake
configure_args="-DSPHINX_MAN=YES -DCastXML_INSTALL_MAN_DIR=share/man"
hostmakedepends="clang python3-Sphinx"
@@ -12,8 +12,8 @@ short_desc="C-family abstract syntax tree XML output tool"
maintainer="Evgeny Ermakov <evgeny.v.ermakov@gmail.com>"
license="Apache-2.0"
homepage="https://github.com/CastXML/CastXML"
-distfiles="https://github.com/CastXML/CastXML/archive/v${version}.tar.gz"
-checksum=8dcdbc1f23a130e4bdb0b09f57c30761a02a346b4db4037555048af2a293d66a
+distfiles="https://github.com/CastXML/CastXML/archive/refs/tags/v${version}.tar.gz"
+checksum=bb9024ec9ea5082e0d527f19bf3c2df79f1699f54b6cec168c024e727b32e6d1
post_install() {
rm -r ${DESTDIR}/usr/share/castxml/clang/include
From 6575511ac94de71e86bee37bbe1eb9ac035b34bb Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:48:55 +0100
Subject: [PATCH 08/18] ccls: rebuild for llvm15
---
srcpkgs/ccls/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/ccls/template b/srcpkgs/ccls/template
index 82fa61933878..ecc9f3e38a5d 100644
--- a/srcpkgs/ccls/template
+++ b/srcpkgs/ccls/template
@@ -1,7 +1,7 @@
# Template file for 'ccls'
pkgname=ccls
version=0.20220729
-revision=1
+revision=2
build_style=cmake
hostmakedepends="clang-tools-extra"
makedepends="clang-tools-extra libxml2-devel llvm ncurses-devel rapidjson zlib-devel"
From cfb10130dbbe37aa8eaf3ebbcb6c8ba830eea236 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:52:14 +0100
Subject: [PATCH 09/18] include-what-you-use: update to 0.19
---
srcpkgs/include-what-you-use/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/include-what-you-use/template b/srcpkgs/include-what-you-use/template
index d3655709c20c..1a30bc04bb2d 100644
--- a/srcpkgs/include-what-you-use/template
+++ b/srcpkgs/include-what-you-use/template
@@ -1,6 +1,6 @@
# Template file for 'include-what-you-use'
pkgname=include-what-you-use
-version=0.16
+version=0.19
revision=1
build_style=cmake
configure_args="-DIWYU_LLVM_ROOT_PATH=${XBPS_CROSS_BASE}/usr "
@@ -11,7 +11,7 @@ maintainer="Leah Neukirchen <leah@vuxu.org>"
license="NCSA"
homepage="https://include-what-you-use.org/"
distfiles="https://include-what-you-use.org/downloads/${pkgname}-${version}.src.tar.gz"
-checksum=8d6fc9b255343bc1e5ec459e39512df1d51c60e03562985e0076036119ff5a1c
+checksum=2b10157b60ea08adc08e3896b4921c73fcadd5ec4eb652b29a34129d501e5ee0
python_version=3
post_install() {
From a227b2c3d4d2d874b07df6b09de77824c37093f1 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 15:11:06 +0100
Subject: [PATCH 10/18] SPIRV-LLVM-Translator: update to 15.0.0
---
srcpkgs/SPIRV-LLVM-Translator/template | 13 +++++++------
1 file changed, 7 insertions(+), 6 deletions(-)
diff --git a/srcpkgs/SPIRV-LLVM-Translator/template b/srcpkgs/SPIRV-LLVM-Translator/template
index a2754e58c0e8..bee99f9bcbb2 100644
--- a/srcpkgs/SPIRV-LLVM-Translator/template
+++ b/srcpkgs/SPIRV-LLVM-Translator/template
@@ -1,19 +1,20 @@
# Template file for 'SPIRV-LLVM-Translator'
pkgname=SPIRV-LLVM-Translator
-version=12.0.0
-revision=2
+version=15.0.0
+revision=1
build_style=cmake
make_build_args="llvm-spirv"
configure_args="-Wno-dev -DLLVM_LINK_LLVM_DYLIB=ON -DCMAKE_SKIP_RPATH=ON
- -DLLVM_SPIRV_INCLUDE_TESTS=OFF -DBUILD_SHARED_LIBS=ON"
+ -DLLVM_SPIRV_INCLUDE_TESTS=OFF -DBUILD_SHARED_LIBS=ON
+ -DLLVM_EXTERNAL_SPIRV_HEADERS_SOURCE_DIR=/usr"
hostmakedepends="clang llvm"
-makedepends="clang-tools-extra llvm"
+makedepends="clang-tools-extra llvm SPIRV-Headers"
short_desc="API and commands for processing SPIR-V modules"
maintainer="Orphaned <orphan@voidlinux.org>"
license="NCSA"
homepage="https://github.com/KhronosGroup/SPIRV-LLVM-Translator"
-distfiles="https://github.com/KhronosGroup/${pkgname}/archive/refs/tags/v${version}.tar.gz"
-checksum=6e4fad04203f25fcde4c308c53e9f59bd05a390978992db3212d4b63aff62108
+distfiles="https://github.com/KhronosGroup/SPIRV-LLVM-Translator/archive/refs/tags/v${version}.tar.gz"
+checksum=b1bebd77f72988758c00852e78c2ddc545815a612169a0cb377d021e2f846d88
post_install() {
vlicense LICENSE.TXT
From 74116ebc192456de70491ac34c64b0222efde682 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Fri, 6 Jan 2023 17:11:04 +0100
Subject: [PATCH 11/18] rtags: rebuild for llvm15
---
srcpkgs/rtags/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/rtags/template b/srcpkgs/rtags/template
index b496a1b0e721..9b161e690d76 100644
--- a/srcpkgs/rtags/template
+++ b/srcpkgs/rtags/template
@@ -1,7 +1,7 @@
# Template file for 'rtags'
pkgname=rtags
version=2.38
-revision=5
+revision=6
build_style=cmake
# Don't run tests in do_install, please.
configure_args="-DSKIP_CTEST=TRUE"
From b6b4447de6417801abb7ddb9a4c148c7328d9639 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Fri, 6 Jan 2023 17:14:14 +0100
Subject: [PATCH 12/18] juCi++: rebuild for llvm15
---
srcpkgs/juCi++/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/juCi++/template b/srcpkgs/juCi++/template
index c1969237f11d..416bde7cc4d0 100644
--- a/srcpkgs/juCi++/template
+++ b/srcpkgs/juCi++/template
@@ -1,7 +1,7 @@
# Template file for 'juCi++'
pkgname=juCi++
version=1.7.2
-revision=2
+revision=3
_libclangmm_commit="9704b9b6de0982a588fa41741157d5640afedf30"
_tiny_commit="839ff806dc447ff49af80f9a9eaa7949f770f8e5"
create_wrksrc=yes
From dc093beccdff4269e28883f1e1ac6044af192586 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Sat, 7 Jan 2023 11:31:14 +0100
Subject: [PATCH 13/18] qt5: rebuild for llvm15
---
srcpkgs/qt5/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/qt5/template b/srcpkgs/qt5/template
index f4f9f5b5344a..b517b49ead2d 100644
--- a/srcpkgs/qt5/template
+++ b/srcpkgs/qt5/template
@@ -5,7 +5,7 @@ pkgname=qt5
version=5.15.7+20221119
# commit f8c9fb304bc3e53b3aa07f962cd74e9160decccc
# base repo: https://invent.kde.org/qt/qt/qt5
-revision=1
+revision=2
build_style=meta
hostmakedepends="cmake clang flex perl glib-devel pkg-config
python re2c ruby which"
From 9124558c136377ee1417486e7ba3b351d5321eb6 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Mon, 9 Jan 2023 01:22:18 +0100
Subject: [PATCH 14/18] codelite: rebuild for llvm15
---
srcpkgs/codelite/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/codelite/template b/srcpkgs/codelite/template
index 6b8b007c8a43..c6115e0274ce 100644
--- a/srcpkgs/codelite/template
+++ b/srcpkgs/codelite/template
@@ -1,7 +1,7 @@
# Template file for 'codelite'
pkgname=codelite
version=16.0.0
-revision=2
+revision=3
create_wrksrc=yes
build_style=cmake
build_helper=cmake-wxWidgets-gtk3
From b79afad74cea41a0637fd8529ea72b64e2c22e32 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Mon, 9 Jan 2023 01:58:21 +0100
Subject: [PATCH 15/18] kdevelop: rebuild for llvm15
---
srcpkgs/kdevelop/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/kdevelop/template b/srcpkgs/kdevelop/template
index 5eb275583138..c32ee5240a44 100644
--- a/srcpkgs/kdevelop/template
+++ b/srcpkgs/kdevelop/template
@@ -1,7 +1,7 @@
# Template file for 'kdevelop'
pkgname=kdevelop
version=22.12.1
-revision=1
+revision=2
build_style=cmake
configure_args="-DBUILD_TESTING=OFF"
hostmakedepends="extra-cmake-modules qt5-qmake qt5-host-tools qt5-tools
From 7c3e77332a91c1c6edee94f525cba001196c9131 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Mon, 16 Jan 2023 14:43:47 +0100
Subject: [PATCH 16/18] zig: update to 0.10.1
---
.../0001-std.build-fix-handling-of-Dcpu.patch | 48 -------------------
srcpkgs/zig/template | 10 ++--
2 files changed, 6 insertions(+), 52 deletions(-)
delete mode 100644 srcpkgs/zig/patches/0001-std.build-fix-handling-of-Dcpu.patch
diff --git a/srcpkgs/zig/patches/0001-std.build-fix-handling-of-Dcpu.patch b/srcpkgs/zig/patches/0001-std.build-fix-handling-of-Dcpu.patch
deleted file mode 100644
index 4101f24459bb..000000000000
--- a/srcpkgs/zig/patches/0001-std.build-fix-handling-of-Dcpu.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From 1e8cdace7ad324a42228aeb5cd6eb8dd15429413 Mon Sep 17 00:00:00 2001
-From: Isaac Freund <ifreund@ifreund.xyz>
-Date: Tue, 21 Sep 2021 21:06:10 +0200
-Subject: [PATCH] std.build: fix handling of -Dcpu
-
-Currently -Dcpu is completely ignored if -Dtarget isn't passed as well.
-Further, -Dcpu=baseline is ignored even if -Dtarget=native is passed.
-
-This patch fixes these 2 issues, always respecting the -Dcpu option if
-present.
----
- lib/std/build.zig | 13 +++++++------
- 1 file changed, 7 insertions(+), 6 deletions(-)
-
-diff --git a/lib/std/build.zig b/lib/std/build.zig
-index 9b7ebb1f4..e398529f9 100644
---- a/lib/std/build.zig
-+++ b/lib/std/build.zig
-@@ -685,7 +685,11 @@ pub const Builder = struct {
- );
- const mcpu = self.option([]const u8, "cpu", "Target CPU");
-
-- const triple = maybe_triple orelse return args.default_target;
-+ if (maybe_triple == null and mcpu == null) {
-+ return args.default_target;
-+ }
-+
-+ const triple = maybe_triple orelse "native";
-
- var diags: CrossTarget.ParseOptions.Diagnostics = .{};
- const selected_target = CrossTarget.parse(.{
-@@ -2451,11 +2455,8 @@ pub const LibExeObjStep = struct {
-
- if (populated_cpu_features.eql(cross.cpu.features)) {
- // The CPU name alone is sufficient.
-- // If it is the baseline CPU, no command line args are required.
-- if (cross.cpu.model != std.Target.Cpu.baseline(cross.cpu.arch).model) {
-- try zig_args.append("-mcpu");
-- try zig_args.append(cross.cpu.model.name);
-- }
-+ try zig_args.append("-mcpu");
-+ try zig_args.append(cross.cpu.model.name);
- } else {
- var mcpu_buffer = std.ArrayList(u8).init(builder.allocator);
-
---
-2.33.1
-
diff --git a/srcpkgs/zig/template b/srcpkgs/zig/template
index 728c5a64e9df..9807f7ab206b 100644
--- a/srcpkgs/zig/template
+++ b/srcpkgs/zig/template
@@ -1,17 +1,19 @@
# Template file for 'zig'
pkgname=zig
-version=0.8.1
-revision=2
+version=0.10.1
+revision=1
archs="x86_64* aarch64*"
build_style=cmake
make_cmd=make
-makedepends="clang llvm12 lld-devel"
+# we add xml2, zstd, zlib and ncurses
+# because our lld is static-only and requires those to work
+makedepends="clang llvm15 lld-devel libxml2-devel libzstd-devel ncurses-devel zlib-devel"
short_desc="Programming language designed for robustness, optimality, and clarity"
maintainer="Isaac Freund <mail@isaacfreund.com>"
license="MIT"
homepage="https://ziglang.org"
distfiles="https://ziglang.org/download/${version}/zig-${version}.tar.xz"
-checksum=8c428e14a0a89cb7a15a6768424a37442292858cdb695e2eb503fa3c7bf47f1a
+checksum=69459bc804333df077d441ef052ffa143d53012b655a51f04cfef1414c04168c
nopie=yes
nocross=yes
From 9f7e9b679d0fc46301afe5472f2cd9f0627d83ef Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Tue, 24 Jan 2023 14:03:51 +0100
Subject: [PATCH 17/18] river: update to 0.2.3
---
...ble-PIE-for-river-riverctl-rivertile.patch | 42 -------------------
srcpkgs/river/template | 10 ++---
2 files changed, 5 insertions(+), 47 deletions(-)
delete mode 100644 srcpkgs/river/patches/0001-Enable-PIE-for-river-riverctl-rivertile.patch
diff --git a/srcpkgs/river/patches/0001-Enable-PIE-for-river-riverctl-rivertile.patch b/srcpkgs/river/patches/0001-Enable-PIE-for-river-riverctl-rivertile.patch
deleted file mode 100644
index ecc68302db09..000000000000
--- a/srcpkgs/river/patches/0001-Enable-PIE-for-river-riverctl-rivertile.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From 759c1c7a915083f3da46960ff82fa2a3566a7065 Mon Sep 17 00:00:00 2001
-From: Isaac Freund <mail@isaacfreund.com>
-Date: Wed, 3 Nov 2021 14:21:35 +0100
-Subject: [PATCH] Enable PIE for river, riverctl, rivertile
-
-There is sadly not yet a standard way to do this exposed by the zig
-build system. See: https://github.com/ziglang/zig/issues/7201
----
- build.zig | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/build.zig b/build.zig
-index d561f49..8ac9a4e 100644
---- a/build.zig
-+++ b/build.zig
-@@ -85,6 +85,7 @@ pub fn build(b: *zbs.Builder) !void {
- const river = b.addExecutable("river", "river/main.zig");
- river.setTarget(target);
- river.setBuildMode(mode);
-+ river.pie = true;
- river.addBuildOption(bool, "xwayland", xwayland);
- river.addBuildOption([:0]const u8, "version", full_version);
-
-@@ -97,6 +98,7 @@ pub fn build(b: *zbs.Builder) !void {
- const riverctl = b.addExecutable("riverctl", "riverctl/main.zig");
- riverctl.setTarget(target);
- riverctl.setBuildMode(mode);
-+ riverctl.pie = true;
- riverctl.addBuildOption([:0]const u8, "version", full_version);
-
- riverctl.step.dependOn(&scanner.step);
-@@ -114,6 +116,7 @@ pub fn build(b: *zbs.Builder) !void {
- const rivertile = b.addExecutable("rivertile", "rivertile/main.zig");
- rivertile.setTarget(target);
- rivertile.setBuildMode(mode);
-+ rivertile.pie = true;
- rivertile.addBuildOption([:0]const u8, "version", full_version);
-
- rivertile.step.dependOn(&scanner.step);
---
-2.33.1
-
diff --git a/srcpkgs/river/template b/srcpkgs/river/template
index 3906858d507e..431aa4bd8e8e 100644
--- a/srcpkgs/river/template
+++ b/srcpkgs/river/template
@@ -1,18 +1,18 @@
# Template file for 'river'
pkgname=river
-version=0.1.1
-revision=2
+version=0.2.3
+revision=1
build_style=zig-build
-configure_args="$(vopt_if xwayland -Dxwayland)"
+configure_args="$(vopt_if xwayland -Dxwayland) -Dpie"
hostmakedepends="pkg-config wayland-devel scdoc"
-makedepends="wlroots0.15-devel libevdev-devel"
+makedepends="wlroots-devel libevdev-devel"
depends="$(vopt_if xwayland xorg-server-xwayland)"
short_desc="Dynamic tiling Wayland compositor"
maintainer="Isaac Freund <mail@isaacfreund.com>"
license="GPL-3.0-or-later"
homepage="https://github.com/riverwm/river"
distfiles="${homepage}/releases/download/v${version}/river-${version}.tar.gz"
-checksum=2a0bcd4670ed9ebd39c279f2bf10803fc65c9f3ee2307ce40728df23ce914d18
+checksum=7acdd2b929e16a20006b4baf1f29e7a8dc7f70cf5747e1503a610a90d1637132
build_options="xwayland"
build_options_default="xwayland"
From b2d458256c4a9df1afd200c9bf1f7f352cdcaa98 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Fri, 10 Feb 2023 17:25:32 +0100
Subject: [PATCH 18/18] libclc: update to 15.0.7
---
srcpkgs/libclc/template | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/srcpkgs/libclc/template b/srcpkgs/libclc/template
index 779519fd666f..adb60f6ad1f1 100644
--- a/srcpkgs/libclc/template
+++ b/srcpkgs/libclc/template
@@ -1,9 +1,11 @@
# Template file for 'libclc'
pkgname=libclc
-version=12.0.0
+version=15.0.7
revision=1
build_style=cmake
-configure_args="-DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release"
+# disable clspv (failing tests, we don't ship it)
+configure_args="-DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release
+ -DLIBCLC_TARGETS_TO_BUILD=amdgcn--;amdgcn--amdhsa;r600--;nvptx--;nvptx64--;nvptx--nvidiacl;nvptx64--nvidiacl;spirv-mesa3d-;spirv64-mesa3d-"
hostmakedepends="cmake clang llvm python3 libedit-devel libffi-devel
ncurses-devel zlib-devel SPIRV-LLVM-Translator"
short_desc="Open implementation of the OpenCL C programming language"
@@ -11,7 +13,7 @@ maintainer="Orphaned <orphan@voidlinux.org>"
license="BSD-3-Clause, MIT"
homepage="https://libclc.llvm.org"
distfiles="https://github.com/llvm/llvm-project/releases/download/llvmorg-${version}/libclc-${version}.src.tar.xz"
-checksum=6b777ee2cd57da1b122f76c208463f620eef508f4128210c6b1a96bfb75c74dc
+checksum=35731fea7be224f21acf5bf3cd9f0ed058bf4ada5eceaf7f10ee96e139bd3389
replaces="libclc-git>=0"
do_configure() {
^ permalink raw reply [flat|nested] 96+ messages in thread
* Re: [PR PATCH] [Updated] [WIP] LLVM 15
2022-11-28 15:30 [PR PATCH] [WIP] LLVM 15 tranzystorek-io
` (65 preceding siblings ...)
2023-02-10 16:42 ` tranzystorek-io
@ 2023-02-10 19:21 ` tranzystorek-io
2023-02-15 17:27 ` tranzystorek-io
` (27 subsequent siblings)
94 siblings, 0 replies; 96+ messages in thread
From: tranzystorek-io @ 2023-02-10 19:21 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 1171 bytes --]
There is an updated pull request by tranzystorek-io against master on the void-packages repository
https://github.com/tranzystorek-io/void-packages llvm15
https://github.com/void-linux/void-packages/pull/40821
[WIP] LLVM 15
[ci skip]
TODO:
- [ ] Adjust patches marked as `.patch.skip`
- [x] Make libomp a shlib (change so file name and install a symlink)
- [x] Avoid creating triplet dirs under /usr/
TODO LLVM rdeps:
- [ ] clazy (breaking changes in clang API)
- [x] beignet (https://github.com/void-linux/void-packages/pull/41529)
- [ ] ispc (1.18.1 supports LLVM `<= 14`)
- [ ] ldc (1.30.0 supports LLVM `<= 14`)
- [ ] ghdl (2.0.0 supports LLVM `<= 14`)
- [x] qt
- [ ] qtcreator (breaking changes in clang-format API)
- [ ] shiboken2 (tests failing with llvm15)
- [x] bpftrace (https://github.com/void-linux/void-packages/pull/39002)
- [x] libclc (tests fail with unresolved calls https://gist.githubusercontent.com/tranzystorek-io/a2aa8a0d8010af5299f7d1ff9f82c22b/raw/6d316d99d6079990b73ae77d274dd120b9560589/LastTest.log) -> removed clspv
- [x] zig
A patch file from https://github.com/void-linux/void-packages/pull/40821.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-llvm15-40821.patch --]
[-- Type: text/x-diff, Size: 87616 bytes --]
From fb0c52ffe973a6110b9bf45c87af5b24386fb919 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Sun, 18 Dec 2022 00:36:59 +0100
Subject: [PATCH 01/19] New package: llvm15-15.0.7
---
common/shlibs | 3 +
srcpkgs/libllvm15 | 1 +
.../llvm15/files/llvm-Config-llvm-config.h | 9 +
...clang-001-fix-unwind-chain-inclusion.patch | 44 ++
.../patches/clang-002-add-musl-triples.patch | 115 +++++
.../clang-003-ppc64-dynamic-linker-path.patch | 13 +
.../patches/clang-004-ppc64-musl-elfv2.patch | 48 ++
.../compiler-rt-sanitizer-ppc64-musl.patch | 35 ++
.../compiler-rt-xray-ppc64-musl.patch.skip | 62 +++
srcpkgs/llvm15/patches/libcxx-musl.patch | 26 ++
srcpkgs/llvm15/patches/libcxx-ppc.patch | 22 +
.../llvm15/patches/libcxx-ssp-nonshared.patch | 11 +
srcpkgs/llvm15/patches/libcxxabi-dl.patch | 25 +
srcpkgs/llvm15/patches/libcxxabi-musl.patch | 37 ++
srcpkgs/llvm15/patches/libomp-soname.patch | 12 +
.../llvm15/patches/libunwind-ppc32.patch.skip | 63 +++
srcpkgs/llvm15/patches/lldb-musl.patch | 40 ++
srcpkgs/llvm15/patches/llvm-001-musl.patch | 57 +++
.../patches/llvm-002-musl-ppc64-elfv2.patch | 30 ++
.../patches/llvm-003-ppc-secureplt.patch | 11 +
.../patches/llvm-004-override-opt.patch | 18 +
.../llvm15/patches/llvm-005-ppc-bigpic.patch | 36 ++
.../patches/llvm-006-aarch64-mf_exec.patch | 25 +
srcpkgs/llvm15/template | 442 ++++++++++++++++++
srcpkgs/llvm15/update | 3 +
25 files changed, 1188 insertions(+)
create mode 120000 srcpkgs/libllvm15
create mode 100644 srcpkgs/llvm15/files/llvm-Config-llvm-config.h
create mode 100644 srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch
create mode 100644 srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch
create mode 100644 srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch
create mode 100644 srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch
create mode 100644 srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch
create mode 100644 srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip
create mode 100644 srcpkgs/llvm15/patches/libcxx-musl.patch
create mode 100644 srcpkgs/llvm15/patches/libcxx-ppc.patch
create mode 100644 srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch
create mode 100644 srcpkgs/llvm15/patches/libcxxabi-dl.patch
create mode 100644 srcpkgs/llvm15/patches/libcxxabi-musl.patch
create mode 100644 srcpkgs/llvm15/patches/libomp-soname.patch
create mode 100644 srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip
create mode 100644 srcpkgs/llvm15/patches/lldb-musl.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-001-musl.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-004-override-opt.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch
create mode 100644 srcpkgs/llvm15/template
create mode 100644 srcpkgs/llvm15/update
diff --git a/common/shlibs b/common/shlibs
index 504d29f4cb98..7c1c48c61065 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -992,6 +992,9 @@ libclang.so.12 libclang-12.0.0_1
libclang-cpp.so.12 libclang-cpp-12.0.0_1
libLLVM-11.so libllvm11-11.0.0_1
libLLVM-12.so libllvm12-12.0.0_1
+libLLVM-15.so libllvm15-15.0.7_1
+libomp.so.5 libomp-15.0.7_1
+libomptarget.so.15 libomp-15.0.7_1
libisofs.so.6 libisofs-0.6.24_1
libmpack.so.0 libmpack-1.0.5_1
libGeoIP.so.1 libgeoip-1.4.8_1
diff --git a/srcpkgs/libllvm15 b/srcpkgs/libllvm15
new file mode 120000
index 000000000000..ad57a969b9f9
--- /dev/null
+++ b/srcpkgs/libllvm15
@@ -0,0 +1 @@
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm15/files/llvm-Config-llvm-config.h b/srcpkgs/llvm15/files/llvm-Config-llvm-config.h
new file mode 100644
index 000000000000..2fa08c9be696
--- /dev/null
+++ b/srcpkgs/llvm15/files/llvm-Config-llvm-config.h
@@ -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
diff --git a/srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch b/srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch
new file mode 100644
index 000000000000..e4eaa7783e7a
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch
@@ -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
diff --git a/srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch b/srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch
new file mode 100644
index 000000000000..0ef4c7e75d6b
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch
@@ -0,0 +1,115 @@
+--- a/clang/lib/Driver/ToolChains/Gnu.cpp
++++ b/clang/lib/Driver/ToolChains/Gnu.cpp
+@@ -2086,7 +2086,8 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
+ static const char *const ARMHFTriples[] = {"arm-linux-gnueabihf",
+ "armv7hl-redhat-linux-gnueabi",
+ "armv6hl-suse-linux-gnueabi",
+- "armv7hl-suse-linux-gnueabi"};
++ "armv7hl-suse-linux-gnueabi",
++ "armv7l-linux-gnueabihf"};
+ static const char *const ARMebLibDirs[] = {"/lib"};
+ static const char *const ARMebTriples[] = {"armeb-linux-gnueabi",
+ "armeb-linux-androideabi"};
+@@ -2153,8 +2154,7 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
+ "powerpc64-suse-linux", "powerpc-montavista-linuxspe"};
+ static const char *const PPCLELibDirs[] = {"/lib32", "/lib"};
+ static const char *const PPCLETriples[] = {"powerpcle-linux-gnu",
+- "powerpcle-unknown-linux-gnu",
+- "powerpcle-linux-musl"};
++ "powerpcle-unknown-linux-gnu"};
+
+ static const char *const PPC64LibDirs[] = {"/lib64", "/lib"};
+ static const char *const PPC64Triples[] = {
+@@ -2235,6 +2235,92 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
+ return;
+ }
+
++ if (TargetTriple.isMusl()) {
++ static const char *const AArch64MuslTriples[] = {"aarch64-linux-musl"};
++ static const char *const ARMHFMuslTriples[] = {
++ "arm-linux-musleabihf", "armv7l-linux-musleabihf"
++ };
++ static const char *const ARMMuslTriples[] = {"arm-linux-musleabi"};
++ static const char *const X86_64MuslTriples[] = {"x86_64-linux-musl"};
++ static const char *const X86MuslTriples[] = {"i686-linux-musl"};
++ static const char *const MIPSMuslTriples[] = {
++ "mips-linux-musl", "mipsel-linux-musl",
++ "mipsel-linux-muslhf", "mips-linux-muslhf"
++ };
++ static const char *const PPCMuslTriples[] = {"powerpc-linux-musl"};
++ static const char *const PPCLEMuslTriples[] = {"powerpcle-linux-musl"};
++ static const char *const PPC64MuslTriples[] = {"powerpc64-linux-musl"};
++ static const char *const PPC64LEMuslTriples[] = {"powerpc64le-linux-musl"};
++ static const char *const RISCV64MuslTriples[] = {"riscv64-linux-musl"};
++
++ switch (TargetTriple.getArch()) {
++ case llvm::Triple::aarch64:
++ LibDirs.append(begin(AArch64LibDirs), end(AArch64LibDirs));
++ TripleAliases.append(begin(AArch64MuslTriples), end(AArch64MuslTriples));
++ BiarchLibDirs.append(begin(AArch64LibDirs), end(AArch64LibDirs));
++ BiarchTripleAliases.append(begin(AArch64MuslTriples), end(AArch64MuslTriples));
++ break;
++ case llvm::Triple::arm:
++ LibDirs.append(begin(ARMLibDirs), end(ARMLibDirs));
++ if (TargetTriple.getEnvironment() == llvm::Triple::MuslEABIHF) {
++ TripleAliases.append(begin(ARMHFMuslTriples), end(ARMHFMuslTriples));
++ } else {
++ TripleAliases.append(begin(ARMMuslTriples), end(ARMMuslTriples));
++ }
++ break;
++ case llvm::Triple::x86_64:
++ LibDirs.append(begin(X86_64LibDirs), end(X86_64LibDirs));
++ TripleAliases.append(begin(X86_64MuslTriples), end(X86_64MuslTriples));
++ BiarchLibDirs.append(begin(X86LibDirs), end(X86LibDirs));
++ BiarchTripleAliases.append(begin(X86MuslTriples), end(X86MuslTriples));
++ break;
++ case llvm::Triple::x86:
++ LibDirs.append(begin(X86LibDirs), end(X86LibDirs));
++ TripleAliases.append(begin(X86MuslTriples), end(X86MuslTriples));
++ BiarchLibDirs.append(begin(X86_64LibDirs), end(X86_64LibDirs));
++ BiarchTripleAliases.append(begin(X86_64MuslTriples), end(X86_64MuslTriples));
++ break;
++ case llvm::Triple::mips:
++ LibDirs.append(begin(MIPSLibDirs), end(MIPSLibDirs));
++ TripleAliases.append(begin(MIPSMuslTriples), end(MIPSMuslTriples));
++ break;
++ case llvm::Triple::ppc:
++ LibDirs.append(begin(PPCLibDirs), end(PPCLibDirs));
++ TripleAliases.append(begin(PPCMuslTriples), end(PPCMuslTriples));
++ BiarchLibDirs.append(begin(PPC64LibDirs), end(PPC64LibDirs));
++ BiarchTripleAliases.append(begin(PPC64MuslTriples), end(PPC64MuslTriples));
++ break;
++ case llvm::Triple::ppcle:
++ LibDirs.append(begin(PPCLELibDirs), end(PPCLELibDirs));
++ TripleAliases.append(begin(PPCLEMuslTriples), end(PPCLEMuslTriples));
++ BiarchLibDirs.append(begin(PPC64LELibDirs), end(PPC64LELibDirs));
++ BiarchTripleAliases.append(begin(PPC64LEMuslTriples), end(PPC64LEMuslTriples));
++ break;
++ case llvm::Triple::ppc64:
++ LibDirs.append(begin(PPC64LibDirs), end(PPC64LibDirs));
++ TripleAliases.append(begin(PPC64MuslTriples), end(PPC64MuslTriples));
++ BiarchLibDirs.append(begin(PPCLibDirs), end(PPCLibDirs));
++ BiarchTripleAliases.append(begin(PPCMuslTriples), end(PPCMuslTriples));
++ break;
++ case llvm::Triple::ppc64le:
++ LibDirs.append(begin(PPC64LELibDirs), end(PPC64LELibDirs));
++ TripleAliases.append(begin(PPC64LEMuslTriples), end(PPC64LEMuslTriples));
++ BiarchLibDirs.append(begin(PPCLELibDirs), end(PPCLELibDirs));
++ BiarchTripleAliases.append(begin(PPCLEMuslTriples), end(PPCLEMuslTriples));
++ break;
++ case llvm::Triple::riscv64:
++ LibDirs.append(begin(RISCV64LibDirs), end(RISCV64LibDirs));
++ TripleAliases.append(begin(RISCV64MuslTriples), end(RISCV64MuslTriples));
++ break;
++ default:
++ break;
++ }
++ TripleAliases.push_back(TargetTriple.str());
++ if (TargetTriple.str() != BiarchTriple.str())
++ BiarchTripleAliases.push_back(BiarchTriple.str());
++ return;
++ }
++
+ // Android targets should not use GNU/Linux tools or libraries.
+ if (TargetTriple.isAndroid()) {
+ static const char *const AArch64AndroidTriples[] = {
diff --git a/srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch b/srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch
new file mode 100644
index 000000000000..4ad6412d1e6c
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch
@@ -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 =
diff --git a/srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch b/srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch
new file mode 100644
index 000000000000..21fc8003c5f1
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch
@@ -0,0 +1,48 @@
+--- a/clang/lib/Basic/Targets/PPC.h
++++ b/clang/lib/Basic/Targets/PPC.h
+@@ -415,11 +415,10 @@ public:
+ LongDoubleFormat = &llvm::APFloat::IEEEdouble();
+ } else if ((Triple.getArch() == llvm::Triple::ppc64le)) {
+ DataLayout = "e-m:e-i64:64-n32:64";
+- ABI = "elfv2";
+ } else {
+ DataLayout = "E-m:e-i64:64-n32:64";
+- ABI = "elfv1";
+ }
++ ABI = "elfv2";
+
+ if (Triple.isOSFreeBSD() || Triple.isOSOpenBSD() || Triple.isMusl()) {
+ LongDoubleWidth = LongDoubleAlign = 64;
+--- a/clang/lib/CodeGen/TargetInfo.cpp
++++ b/clang/lib/CodeGen/TargetInfo.cpp
+@@ -10927,9 +10927,9 @@ const TargetCodeGenInfo &CodeGenModule::getTargetCodeGenInfo() {
+ return SetCGInfo(new AIXTargetCodeGenInfo(Types, /*Is64Bit*/ true));
+
+ if (Triple.isOSBinFormatELF()) {
+- PPC64_SVR4_ABIInfo::ABIKind Kind = PPC64_SVR4_ABIInfo::ELFv1;
+- if (getTarget().getABI() == "elfv2")
+- Kind = PPC64_SVR4_ABIInfo::ELFv2;
++ PPC64_SVR4_ABIInfo::ABIKind Kind = PPC64_SVR4_ABIInfo::ELFv2;
++ if (getTarget().getABI() == "elfv1")
++ Kind = PPC64_SVR4_ABIInfo::ELFv1;
+ bool IsSoftFloat = CodeGenOpts.FloatABI == "soft";
+
+ return SetCGInfo(
+--- a/clang/lib/Driver/ToolChains/Clang.cpp
++++ b/clang/lib/Driver/ToolChains/Clang.cpp
+@@ -1920,14 +1920,7 @@ void Clang::AddPPCTargetArgs(const ArgList &Args,
+ const llvm::Triple &T = getToolChain().getTriple();
+ if (T.isOSBinFormatELF()) {
+ switch (getToolChain().getArch()) {
+- case llvm::Triple::ppc64: {
+- if ((T.isOSFreeBSD() && T.getOSMajorVersion() >= 13) ||
+- T.isOSOpenBSD() || T.isMusl())
+- ABIName = "elfv2";
+- else
+- ABIName = "elfv1";
+- break;
+- }
++ case llvm::Triple::ppc64:
+ case llvm::Triple::ppc64le:
+ ABIName = "elfv2";
+ break;
diff --git a/srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch b/srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch
new file mode 100644
index 000000000000..360cfc1ba7f1
--- /dev/null
+++ b/srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch
@@ -0,0 +1,35 @@
+--- 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__) || SANITIZER_RISCV64
++ defined(__hexagon__) || defined(__powerpc__) || 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_ANDROID
++#if (defined(__aarch64__) || defined(__powerpc__) || SANITIZER_RISCV64) && !SANITIZER_ANDROID
+ // GLIBC 2.20+ sys/user does not include asm/ptrace.h
+ # include <asm/ptrace.h>
+ #endif
diff --git a/srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip b/srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip
new file mode 100644
index 000000000000..d0b61c80c897
--- /dev/null
+++ b/srcpkgs/llvm15/patches/compiler-rt-xray-ppc64-musl.patch.skip
@@ -0,0 +1,62 @@
+--- a/compiler-rt/lib/xray/xray_powerpc64.inc
++++ b/compiler-rt/lib/xray/xray_powerpc64.inc
+@@ -12,7 +12,13 @@
+
+ #include <cstdint>
+ #include <mutex>
++#ifdef __GLIBC__
+ #include <sys/platform/ppc.h>
++#else
++#include <cctype>
++#include <cstring>
++#include <cstdlib>
++#endif
+
+ #include "xray_defs.h"
+
+@@ -20,13 +26,45 @@ namespace __xray {
+
+ ALWAYS_INLINE uint64_t readTSC(uint8_t &CPU) XRAY_NEVER_INSTRUMENT {
+ CPU = 0;
++#ifdef __GLIBC__
+ return __ppc_get_timebase();
++#else
++ return __builtin_ppc_get_timebase();
++#endif
+ }
+
+ inline uint64_t getTSCFrequency() XRAY_NEVER_INSTRUMENT {
+ static std::mutex M;
+ std::lock_guard<std::mutex> Guard(M);
++#ifdef __GLIBC__
+ return __ppc_get_timebase_freq();
++#else
++ /* FIXME: a less dirty implementation? */
++ static uint64_t base;
++ if (!base) {
++ FILE *f = fopen("/proc/cpuinfo", "rb");
++ if (f) {
++ ssize_t nr;
++ /* virtually always big enough to hold the line */
++ char buf[512];
++ while (fgets(buf, sizeof(buf), f)) {
++ char *ret = strstr(buf, "timebase");
++ if (!ret) {
++ continue;
++ }
++ ret += sizeof("timebase") - 1;
++ ret = strchr(ret, ':');
++ if (!ret) {
++ continue;
++ }
++ base = strtoul(ret + 1, nullptr, 10);
++ break;
++ }
++ fclose(f);
++ }
++ }
++ return base;
++#endif
+ }
+
+ inline bool probeRequiredCPUFeatures() XRAY_NEVER_INSTRUMENT {
diff --git a/srcpkgs/llvm15/patches/libcxx-musl.patch b/srcpkgs/llvm15/patches/libcxx-musl.patch
new file mode 100644
index 000000000000..bbd31ffc2cb1
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxx-musl.patch
@@ -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,
+ typename remove_reference<decltype(errno)>::type __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
+ typename remove_reference<decltype(errno)>::type __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,
+ typename remove_reference<decltype(errno)>::type __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
+ typename remove_reference<decltype(errno)>::type __current_errno = errno;
+ if (__current_errno == 0)
+ errno = __save_errno;
diff --git a/srcpkgs/llvm15/patches/libcxx-ppc.patch b/srcpkgs/llvm15/patches/libcxx-ppc.patch
new file mode 100644
index 000000000000..7a92f8004e1c
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxx-ppc.patch
@@ -0,0 +1,22 @@
+This ensures `is_iec559` is defined correctly under all long double ABIs,
+including musl and its 64-bit long double. Also, `__ppc__` or `__ppc64__`
+is not defined on gcc.
+
+--- a/libcxx/include/limits
++++ b/libcxx/include/limits
+@@ -426,8 +426,14 @@ protected:
+ _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type signaling_NaN() _NOEXCEPT {return __builtin_nansl("");}
+ _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type denorm_min() _NOEXCEPT {return __LDBL_DENORM_MIN__;}
+
+-#if (defined(__ppc__) || defined(__ppc64__))
++#if defined(__powerpc__) || defined(__powerpc64__)
++#if (__LDBL_MAX_EXP__ > __DBL_MAX_EXP__) || (__LDBL_MANT_DIG__ == __DBL_MANT_DIG__)
++ /* IEEE 754 quadruple or double precision */
++ static _LIBCPP_CONSTEXPR const bool is_iec559 = true;
++#else
++ /* 128-bit IBM double-double */
+ static _LIBCPP_CONSTEXPR const bool is_iec559 = false;
++#endif
+ #else
+ static _LIBCPP_CONSTEXPR const bool is_iec559 = true;
+ #endif
diff --git a/srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch b/srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch
new file mode 100644
index 000000000000..70292beb2fcd
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch
@@ -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()
diff --git a/srcpkgs/llvm15/patches/libcxxabi-dl.patch b/srcpkgs/llvm15/patches/libcxxabi-dl.patch
new file mode 100644
index 000000000000..3a15f9db8c98
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxxabi-dl.patch
@@ -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 @@
+ target_link_libraries(${target} PRIVATE m)
+ endif()
+
++ if (LIBCXX_HAS_C_LIB)
++ target_link_libraries(${target} PRIVATE dl)
++ endif()
++
+ if (LIBCXX_HAS_RT_LIB)
+ target_link_libraries(${target} PRIVATE rt)
+ endif()
diff --git a/srcpkgs/llvm15/patches/libcxxabi-musl.patch b/srcpkgs/llvm15/patches/libcxxabi-musl.patch
new file mode 100644
index 000000000000..55bf6f5aaa08
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxxabi-musl.patch
@@ -0,0 +1,37 @@
+diff --git a/libcxx/include/__support/musl/xlocale.h b/libcxx/include/__support/musl/xlocale.h
+index e674a41fa..f546119b9 100644
+--- a/libcxx/include/__support/musl/xlocale.h
++++ b/libcxx/include/__support/musl/xlocale.h
+@@ -24,27 +24,27 @@
+ extern "C" {
+ #endif
+
+-inline _LIBCPP_HIDE_FROM_ABI long long
++static inline long long
+ strtoll_l(const char *__nptr, char **__endptr, int __base, locale_t) {
+ return ::strtoll(__nptr, __endptr, __base);
+ }
+
+-inline _LIBCPP_HIDE_FROM_ABI unsigned long long
++static inline unsigned long long
+ strtoull_l(const char *__nptr, char **__endptr, int __base, locale_t) {
+ return ::strtoull(__nptr, __endptr, __base);
+ }
+
+-inline _LIBCPP_HIDE_FROM_ABI long long
++static inline long long
+ wcstoll_l(const wchar_t *__nptr, wchar_t **__endptr, int __base, locale_t) {
+ return ::wcstoll(__nptr, __endptr, __base);
+ }
+
+-inline _LIBCPP_HIDE_FROM_ABI unsigned long long
++static inline unsigned long long
+ wcstoull_l(const wchar_t *__nptr, wchar_t **__endptr, int __base, locale_t) {
+ return ::wcstoull(__nptr, __endptr, __base);
+ }
+
+-inline _LIBCPP_HIDE_FROM_ABI long double
++static inline long double
+ wcstold_l(const wchar_t *__nptr, wchar_t **__endptr, locale_t) {
+ return ::wcstold(__nptr, __endptr);
+ }
diff --git a/srcpkgs/llvm15/patches/libomp-soname.patch b/srcpkgs/llvm15/patches/libomp-soname.patch
new file mode 100644
index 000000000000..9a622cd9254c
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libomp-soname.patch
@@ -0,0 +1,12 @@
+diff --git a/openmp/runtime/src/CMakeLists.txt b/openmp/runtime/src/CMakeLists.txt
+index df1ca9d90..9d2c3b7b9 100644
+--- a/openmp/runtime/src/CMakeLists.txt
++++ b/openmp/runtime/src/CMakeLists.txt
+@@ -150,6 +150,7 @@ libomp_get_libflags(LIBOMP_CONFIGURED_LIBFLAGS)
+ # Build libomp library. Add LLVMSupport dependency if building in-tree with libomptarget profiling enabled.
+ if(OPENMP_STANDALONE_BUILD OR (NOT OPENMP_ENABLE_LIBOMP_PROFILING))
+ add_library(omp ${LIBOMP_LIBRARY_KIND} ${LIBOMP_SOURCE_FILES})
++ set_target_properties(omp PROPERTIES VERSION ${LIBOMP_VERSION_MAJOR} SOVERSION ${LIBOMP_VERSION_MAJOR})
+ # Linking command will include libraries in LIBOMP_CONFIGURED_LIBFLAGS
+ target_link_libraries(omp ${LIBOMP_CONFIGURED_LIBFLAGS} ${LIBOMP_DL_LIBS})
+ else()
diff --git a/srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip b/srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip
new file mode 100644
index 000000000000..74aa7576ecf9
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libunwind-ppc32.patch.skip
@@ -0,0 +1,63 @@
+This fixes build at least with gcc9 which does not define `__ppc__`.
+
+--- a/libunwind/include/__libunwind_config.h
++++ b/libunwind/include/__libunwind_config.h
+@@ -49,7 +49,7 @@
+ # define _LIBUNWIND_CONTEXT_SIZE 167
+ # define _LIBUNWIND_CURSOR_SIZE 179
+ # define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_PPC64
+-# elif defined(__ppc__)
++# elif defined(__powerpc__)
+ # define _LIBUNWIND_TARGET_PPC 1
+ # define _LIBUNWIND_CONTEXT_SIZE 117
+ # define _LIBUNWIND_CURSOR_SIZE 124
+--- a/libunwind/src/UnwindRegistersRestore.S
++++ b/libunwind/src/UnwindRegistersRestore.S
+@@ -392,7 +392,7 @@ Lnovec:
+ PPC64_LR(3)
+ bctr
+
+-#elif defined(__ppc__)
++#elif defined(__powerpc__)
+
+ DEFINE_LIBUNWIND_FUNCTION(_ZN9libunwind13Registers_ppc6jumptoEv)
+ //
+--- a/libunwind/src/UnwindRegistersSave.S
++++ b/libunwind/src/UnwindRegistersSave.S
+@@ -554,7 +554,7 @@ DEFINE_LIBUNWIND_FUNCTION(__unw_getcontext)
+ blr
+
+
+-#elif defined(__ppc__)
++#elif defined(__powerpc__)
+
+ //
+ // extern int unw_getcontext(unw_context_t* thread_state)
+--- a/libunwind/src/config.h
++++ b/libunwind/src/config.h
+@@ -95,12 +95,12 @@
+ #define _LIBUNWIND_BUILD_SJLJ_APIS
+ #endif
+
+-#if defined(__i386__) || defined(__x86_64__) || defined(__ppc__) || defined(__ppc64__) || defined(__powerpc64__)
++#if defined(__i386__) || defined(__x86_64__) || defined(__powerpc__) || defined(__powerpc64__)
+ #define _LIBUNWIND_SUPPORT_FRAME_APIS
+ #endif
+
+ #if defined(__i386__) || defined(__x86_64__) || \
+- defined(__ppc__) || defined(__ppc64__) || defined(__powerpc64__) || \
++ defined(__powerpc__) || defined(__powerpc64__) || \
+ (!defined(__APPLE__) && defined(__arm__)) || \
+ (defined(__arm64__) || defined(__aarch64__)) || \
+ defined(__mips__)
+--- a/libunwind/src/libunwind.cpp
++++ b/libunwind/src/libunwind.cpp
+@@ -42,7 +42,7 @@ _LIBUNWIND_HIDDEN int __unw_init_local(unw_cursor_t *cursor,
+ # define REGISTER_KIND Registers_x86_64
+ #elif defined(__powerpc64__)
+ # define REGISTER_KIND Registers_ppc64
+-#elif defined(__ppc__)
++#elif defined(__powerpc__)
+ # define REGISTER_KIND Registers_ppc
+ #elif defined(__aarch64__)
+ # define REGISTER_KIND Registers_arm64
diff --git a/srcpkgs/llvm15/patches/lldb-musl.patch b/srcpkgs/llvm15/patches/lldb-musl.patch
new file mode 100644
index 000000000000..026c5e1e61ba
--- /dev/null
+++ b/srcpkgs/llvm15/patches/lldb-musl.patch
@@ -0,0 +1,40 @@
+--- a/lldb/source/Plugins/Process/Linux/Procfs.h
++++ b/lldb/source/Plugins/Process/Linux/Procfs.h
+@@ -10,6 +10,7 @@
+ // sys/procfs.h on Android/Linux for all supported architectures.
+
+ #include <sys/ptrace.h>
++#include <asm/ptrace.h>
+
+ #include "lldb/lldb-types.h"
+
+@@ -17,23 +18,13 @@
+
+ #include <vector>
+
+-#ifdef __ANDROID__
+-#if defined(__arm64__) || defined(__aarch64__)
+-typedef unsigned long elf_greg_t;
+-typedef elf_greg_t
+- elf_gregset_t[(sizeof(struct user_pt_regs) / sizeof(elf_greg_t))];
+-typedef struct user_fpsimd_state elf_fpregset_t;
+-#ifndef NT_FPREGSET
+-#define NT_FPREGSET NT_PRFPREG
+-#endif // NT_FPREGSET
+-#elif defined(__mips__)
+-#ifndef NT_FPREGSET
+-#define NT_FPREGSET NT_PRFPREG
+-#endif // NT_FPREGSET
+-#endif
+-#else // __ANDROID__
++#if !defined(__GLIBC__) && defined(__powerpc__)
++#define pt_regs musl_pt_regs
++#include <sys/procfs.h>
++#undef pt_regs
++#else
+ #include <sys/procfs.h>
+-#endif // __ANDROID__
++#endif
+
+ namespace lldb_private {
+ namespace process_linux {
diff --git a/srcpkgs/llvm15/patches/llvm-001-musl.patch b/srcpkgs/llvm15/patches/llvm-001-musl.patch
new file mode 100644
index 000000000000..f2a3f8d62813
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-001-musl.patch
@@ -0,0 +1,57 @@
+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;
+diff --git a/lib/Support/Unix/DynamicLibrary.inc b/lib/Support/Unix/DynamicLibrary.inc
+index a2a37996..2f86c470 100644
+--- a/llvm/lib/Support/Unix/DynamicLibrary.inc
++++ b/llvm/lib/Support/Unix/DynamicLibrary.inc
+@@ -102,7 +102,7 @@ static void *DoSearch(const char* SymbolName) {
+
+ // This macro returns the address of a well-known, explicit symbol
+ #define EXPLICIT_SYMBOL(SYM) \
+- if (!strcmp(SymbolName, #SYM)) return &SYM
++ if (!strcmp(SymbolName, #SYM)) return (void *)&SYM
+
+ // Under glibc we have a weird situation. The stderr/out/in symbols are both
+ // macros and global variables because of standards requirements. So, we
+diff --git a/utils/unittest/googletest/src/gtest.cc b/utils/unittest/googletest/src/gtest.cc
+index d882ab2e..f1fb12d0 100644
+--- a/llvm/utils/unittest/googletest/src/gtest.cc
++++ b/llvm/utils/unittest/googletest/src/gtest.cc
+@@ -128,6 +128,7 @@
+
+ #if GTEST_CAN_STREAM_RESULTS_
+ # include <arpa/inet.h> // NOLINT
++# include <sys/socket.h> // NOLINT
+ # include <netdb.h> // NOLINT
+ # include <sys/socket.h> // NOLINT
+ # include <sys/types.h> // NOLINT
diff --git a/srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch b/srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch
new file mode 100644
index 000000000000..0071d964bd37
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch
@@ -0,0 +1,30 @@
+This patches LLVM to use ELFv2 on ppc64 unconditionally unless overridden. We
+need this because unlike most distros we use ELFv2 for both glibc and musl
+on big endian ppc64.
+
+diff --git a/lib/Target/PowerPC/PPCTargetMachine.cpp b/lib/Target/PowerPC/PPCTargetMachine.cpp
+index 0634833e..b7cbc2e7 100644
+--- a/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp
++++ b/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp
+@@ -222,9 +222,8 @@ static PPCTargetMachine::PPCABI computeTargetABI(const Triple &TT,
+
+ switch (TT.getArch()) {
+ case Triple::ppc64le:
+- return PPCTargetMachine::PPC_ABI_ELFv2;
+ case Triple::ppc64:
+- return PPCTargetMachine::PPC_ABI_ELFv1;
++ return PPCTargetMachine::PPC_ABI_ELFv2;
+ default:
+ return PPCTargetMachine::PPC_ABI_UNKNOWN;
+ }
+diff --git a/test/CodeGen/PowerPC/ppc64-elf-abi.ll b/test/CodeGen/PowerPC/ppc64-elf-abi.ll
+index 8b1cf6b5..296a2afa 100644
+--- a/llvm/test/CodeGen/PowerPC/ppc64-elf-abi.ll
++++ b/llvm/test/CodeGen/PowerPC/ppc64-elf-abi.ll
+@@ -1,4 +1,5 @@
+-; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv1
++; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv2
++; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-musl < %s | FileCheck %s -check-prefix=CHECK-ELFv2
+ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu -target-abi elfv1 < %s | FileCheck %s -check-prefix=CHECK-ELFv1
+ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu -target-abi elfv2 < %s | FileCheck %s -check-prefix=CHECK-ELFv2
+ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv2
diff --git a/srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch b/srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch
new file mode 100644
index 000000000000..b5d15974375d
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch
@@ -0,0 +1,11 @@
+--- a/llvm/lib/Target/PowerPC/PPCSubtarget.cpp
++++ b/llvm/lib/Target/PowerPC/PPCSubtarget.cpp
+@@ -165,7 +165,7 @@ void PPCSubtarget::initSubtargetFeatures(StringRef CPU, StringRef FS) {
+
+ if ((TargetTriple.isOSFreeBSD() && TargetTriple.getOSMajorVersion() >= 13) ||
+ TargetTriple.isOSNetBSD() || TargetTriple.isOSOpenBSD() ||
+- TargetTriple.isMusl())
++ isTargetLinux())
+ SecurePlt = true;
+
+ if (HasSPE && IsPPC64)
diff --git a/srcpkgs/llvm15/patches/llvm-004-override-opt.patch b/srcpkgs/llvm15/patches/llvm-004-override-opt.patch
new file mode 100644
index 000000000000..51d0e4b31b32
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-004-override-opt.patch
@@ -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)
diff --git a/srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch b/srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch
new file mode 100644
index 000000000000..d332687b9d92
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch
@@ -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);
diff --git a/srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch b/srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch
new file mode 100644
index 000000000000..a00abd216665
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch
@@ -0,0 +1,25 @@
+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__) || defined (__ppc__) || \
+- defined(_POWER) || defined(_ARCH_PPC))
++ defined(_POWER) || defined(_ARCH_PPC) || (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
diff --git a/srcpkgs/llvm15/template b/srcpkgs/llvm15/template
new file mode 100644
index 000000000000..4d2777451e24
--- /dev/null
+++ b/srcpkgs/llvm15/template
@@ -0,0 +1,442 @@
+# Template file for 'llvm15'
+pkgname=llvm15
+version=15.0.7
+revision=1
+build_wrksrc=llvm
+build_style=cmake
+_ext_suffix=".cpython-${py3_ver/./}-linux-${XBPS_TARGET_LIBC/glibc/gnu}.so"
+configure_args="
+ -DCMAKE_BUILD_TYPE=Release -Wno-dev
+ -DENABLE_LINKER_BUILD_ID=YES
+ -DLLDB_USE_SYSTEM_SIX=YES
+ -DLIBCXX_CXX_ABI=libcxxabi
+ -DLIBCXX_ENABLE_STATIC_ABI_LIBRARY=YES
+ -DLIBCXXABI_USE_LLVM_UNWINDER=YES
+ -DLIBCXXABI_ENABLE_STATIC_UNWINDER=YES
+ -DLIBOMP_ENABLE_SHARED=YES
+ -DLIBOMP_INSTALL_ALIASES=NO
+ -DLLVM_INCLUDE_DOCS=YES
+ -DLLVM_BUILD_DOCS=YES
+ -DLLVM_ENABLE_SPHINX=YES
+ -DSPHINX_WARNINGS_AS_ERRORS=NO
+ -DLLVM_INSTALL_UTILS=YES
+ -DLLVM_BUILD_LLVM_DYLIB=YES
+ -DLLVM_LINK_LLVM_DYLIB=YES
+ -DLLVM_ENABLE_RTTI=YES
+ -DLLVM_ENABLE_FFI=YES
+ -DLLVM_BINUTILS_INCDIR=/usr/include
+ -DLLVM_ENABLE_PER_TARGET_RUNTIME_DIR=NO
+ -DLLDB_PYTHON_RELATIVE_PATH=lib/python${py3_ver}/site-packages
+ -DLLDB_PYTHON_EXE_RELATIVE_PATH=bin/python${py3_ver}
+ -DLLDB_PYTHON_EXT_SUFFIX=$_ext_suffix"
+hostmakedepends="perl python3 zlib-devel libffi-devel swig python3-Sphinx
+ python3-recommonmark python3-sphinx-automodapi"
+makedepends="python3-devel zlib-devel elfutils-devel libffi-devel libedit-devel
+ libxml2-devel binutils-devel libatomic-devel"
+depends="libllvm15>=${version}_${revision}"
+short_desc="Low Level Virtual Machine"
+maintainer="Orphaned <orphan@voidlinux.org>"
+license="Apache-2.0"
+homepage="https://www.llvm.org"
+distfiles="https://github.com/llvm/llvm-project/releases/download/llvmorg-${version}/llvm-project-${version}.src.tar.xz"
+checksum=8b5fcb24b4128cf04df1b0b9410ce8b1a729cb3c544e6da885d234280dedeac6
+lib32disabled=yes
+python_version=3
+
+if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
+ configure_args+=" -DLIBCXX_HAS_MUSL_LIBC=YES
+ -DCOMPILER_RT_BUILD_GWP_ASAN=OFF"
+fi
+
+# "operand out of range" assembler failures
+case "$XBPS_TARGET_MACHINE" in
+ ppc64*) ;;
+ ppc*) configure_args+=" -DCLANG_ENABLE_CLANGD=OFF" ;;
+esac
+
+_enabled_projects="clang;clang-tools-extra;compiler-rt;libcxx;libcxxabi;libunwind;lld"
+
+_lldb_enable=yes
+_libomp_enable=no
+
+case "$XBPS_TARGET_MACHINE" in
+ ppc64le*) ;;
+ ppc*|i686*|riscv64*) _lldb_enable=no ;;
+esac
+
+case "$XBPS_TARGET_MACHINE" in
+ x86_64*|aarch64*|ppc64*) _libomp_enable=yes;;
+esac
+
+subpackages="clang-tools-extra"
+
+# must go before clang
+if [ "$_libomp_enable" = "yes" ]; then
+ _enabled_projects+=";openmp"
+ subpackages+=" libomp libomp-devel"
+ # because of cmake nonsense referencing libomptarget.so.*
+ depends+=" libomp>=${version}_${revision}"
+ if [ "$CROSS_BUILD" ]; then
+ # Seems to require a full host llvm/clang build
+ configure_args+=" -DLIBOMPTARGET_BUILD_CUDA_PLUGIN=OFF"
+ configure_args+=" -DLIBOMPTARGET_BUILD_AMDGPU_PLUGIN=OFF"
+ fi
+fi
+
+subpackages+=" clang clang-analyzer libclang libclang-cpp
+ llvm-libunwind llvm-libunwind-devel libcxx libcxx-devel
+ libcxxabi libcxxabi-devel libllvm15"
+
+if [ "$_lldb_enable" = "yes" ]; then
+ # XXX fails to cross compile due to python
+ _enabled_projects+=";lldb"
+ subpackages+=" lldb lldb-devel"
+fi
+
+subpackages+=" lld lld-devel"
+
+configure_args+=" -DLLVM_ENABLE_PROJECTS=${_enabled_projects}"
+
+post_patch() {
+ if [ "$_lldb_enable" = "yes" ]; then
+ if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
+ vsed -i 's|__ptrace_request|int|g' \
+ ${wrksrc}/lldb/source/Plugins/Process/Linux/NativeProcessLinux.cpp
+ fi
+ # disable docs for lldb as they fail to generate
+ vsed -i '/add_subdirectory(docs)/d' \
+ ${wrksrc}/lldb/CMakeLists.txt
+ fi
+
+ # update config.guess for better platform detection
+ cp $XBPS_COMMONDIR/environment/configure/automake/config.guess \
+ ${wrksrc}/llvm/cmake
+
+ # fix linker failures on some archs
+ vsed -i 's,check_library_exists(gcc_s .*,set(LIBCXXABI_HAS_GCC_S_LIB ON),' \
+ ${wrksrc}/libcxxabi/cmake/config-ix.cmake
+ vsed -i 's,check_library_exists(gcc .*,set(LIBCXXABI_HAS_GCC_LIB ON),' \
+ ${wrksrc}/libcxxabi/cmake/config-ix.cmake
+
+ # need libssp_nonshared on some musl platforms (because of nodefaultlibs)
+ case "$XBPS_TARGET_MACHINE" in
+ ppc64*) ;;
+ ppc*-musl|i686-musl|mips*-musl)
+ vsed -i 's,^# Setup flags.$,add_library_flags(ssp_nonshared),' \
+ ${wrksrc}/libunwind/src/CMakeLists.txt
+ vsed -i 's,^# Setup flags.$,add_library_flags(ssp_nonshared),' \
+ ${wrksrc}/libcxxabi/src/CMakeLists.txt
+ vsed -i 's,#ssp,,' ${wrksrc}/libcxx/CMakeLists.txt
+ ;;
+ esac
+
+ case "$XBPS_TARGET_MACHINE" in
+ arm*-musl|i686-musl) # sanitizer code is broken since it duplicates some libc bits
+ vsed -i 's/set(COMPILER_RT_HAS_SANITIZER_COMMON TRUE)/set(COMPILER_RT_HAS_SANITIZER_COMMON FALSE)/' \
+ ${wrksrc}/compiler-rt/cmake/config-ix.cmake
+ ;;
+ esac
+}
+
+pre_configure() {
+ local triplet
+
+ # Vastly reduce size of debugging symbols:
+ CFLAGS=${CFLAGS/ -g/ -g1}
+ CXXFLAGS=${CXXFLAGS/ -g/ -g1}
+
+ # since gcc9, the build likes to blow up for ppc32 apparently because
+ # of clang being too large for a 24-bit relative call to the PLT, so
+ # optimize for size instead
+ case "$XBPS_TARGET_MACHINE" in
+ ppc64*) ;;
+ mips*-musl|ppc*) configure_args+=" -DVOID_CXX_OPT_FLAGS=-Os" ;;
+ esac
+
+ if [ "$CROSS_BUILD" ]; then
+ msg_normal "Building host tblgen\n"
+ mkdir -p build/HOST
+ cd build/HOST
+ CC="$BUILD_CC" CXX="$BUILD_CXX" CFLAGS="$BUILD_CFLAGS" \
+ CXXFLAGS="$BUILD_CXXFLAGS" LDFLAGS="$BUILD_LDFLAGS" \
+ cmake ../.. -DCMAKE_BUILD_TYPE=Release \
+ -DLLVM_ENABLE_PROJECTS=${_enabled_projects}
+ make ${makejobs} -C utils/TableGen
+ make ${makejobs} -C tools/clang/utils/TableGen
+ make ${makejobs} -C tools/clang/tools/extra/clang-tidy/misc/ConfusableTable
+ make ${makejobs} -C tools/clang/tools/extra/pseudo/gen
+ [ "$_lldb_enable" = "yes" ] && make ${makejobs} -C tools/lldb/utils/TableGen
+ configure_args+=" -DLLVM_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/llvm-tblgen"
+ configure_args+=" -DCLANG_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/clang-tblgen"
+ configure_args+=" -DCLANG_TIDY_CONFUSABLE_CHARS_GEN=${wrksrc}/llvm/build/HOST/bin/clang-tidy-confusable-chars-gen"
+ configure_args+=" -DCLANG_PSEUDO_GEN=${wrksrc}/llvm/build/HOST/bin/clang-pseudo-gen"
+ [ "$_lldb_enable" = "yes" ] && configure_args+=" -DLLDB_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/lldb-tblgen"
+ cd ../..
+ fi
+
+ case "$XBPS_TARGET_MACHINE" in
+ i686*) _arch="X86";;
+ x86_64*) _arch="X86";;
+ armv5*) _arch="Armv5te";;
+ armv6*) _arch="Armv6";;
+ armv7*) _arch="Armv7";;
+ aarch64*) _arch="AArch64";;
+ mips*) _arch="Mips";;
+ ppc*) _arch="PowerPC";;
+ riscv64*) _arch="RISCV64";;
+ esac
+
+ triplet=${XBPS_CROSS_TRIPLET:-$XBPS_TRIPLET}
+
+ configure_args+=" -DLLVM_TARGET_ARCH=${_arch}"
+ configure_args+=" -DLLVM_HOST_TRIPLE=${triplet}"
+ configure_args+=" -DLLVM_DEFAULT_TARGET_TRIPLE=${triplet}"
+}
+
+do_install() {
+ cd build
+ cmake -DCMAKE_INSTALL_PREFIX=${DESTDIR}/usr -P cmake_install.cmake
+
+ # Required for multilib.
+ if [ "$XBPS_TARGET_MACHINE" = "x86_64" ]; then
+ for _header in llvm-config; do
+ mv ${DESTDIR}/usr/include/llvm/Config/${_header}{,-64}.h
+ vinstall ${FILESDIR}/llvm-Config-${_header}.h 644 \
+ usr/include/llvm/Config ${_header}.h
+ done
+ fi
+
+ # Remove llvm-config-host in cross builds.
+ if [ "$CROSS_BUILD" ]; then
+ rm -f ${DESTDIR}/usr/bin/llvm-config-host
+ fi
+
+ # Install libcxxabi headers
+ vinstall ${wrksrc}/libcxxabi/include/__cxxabi_config.h 644 usr/include
+ vinstall ${wrksrc}/libcxxabi/include/cxxabi.h 644 usr/include
+
+ # Install libunwind headers
+ vinstall ${wrksrc}/libunwind/include/__libunwind_config.h 644 usr/include
+ vinstall ${wrksrc}/libunwind/include/libunwind.h 644 usr/include
+ vinstall ${wrksrc}/libunwind/include/unwind.h 644 usr/include
+ vinstall ${wrksrc}/libunwind/include/mach-o/compact_unwind_encoding.h \
+ 644 usr/include/mach-o
+}
+
+clang-analyzer_package() {
+ pycompile_dirs="usr/share/scan-view"
+ depends="clang-${version}_${revision} python3 perl"
+ short_desc+=" - A source code analysis framework"
+ homepage="https://clang-analyzer.llvm.org/"
+ pkg_install() {
+ vmove "usr/bin/scan-*"
+ vmove "usr/libexec/*analyzer"
+ vmove "usr/share/scan-*"
+ vmove usr/share/man/man1/scan-build.1
+ }
+}
+
+clang-tools-extra_package() {
+ lib32disabled=yes
+ depends="clang-${version}_${revision} python3"
+ short_desc+=" - Extra Clang tools"
+ homepage="https://clang.llvm.org/extra/"
+ pkg_install() {
+ vmove usr/bin/clang-apply-replacements
+ vmove usr/bin/clang-doc
+ vmove usr/bin/clang-include-fixer
+ vmove usr/bin/clang-query
+ vmove usr/bin/clang-rename
+ vmove usr/bin/clang-reorder-fields
+ vmove usr/bin/clang-tidy
+ vmove usr/bin/clangd
+ vmove usr/bin/diagtool
+ vmove usr/bin/find-all-symbols
+ vmove usr/bin/hmaptool
+ vmove usr/bin/modularize
+ vmove usr/bin/pp-trace
+ vmove usr/bin/sancov
+ vmove usr/include/clang-tidy
+ vmove "usr/lib/libclangApplyReplacements*"
+ vmove "usr/lib/libclangDoc*"
+ vmove "usr/lib/libclangIncludeFixer*"
+ vmove "usr/lib/libclangReorderFields*"
+ vmove "usr/lib/libclangQuery*"
+ vmove "usr/lib/libclangTidy*"
+ vmove "usr/share/clang/*include-fixer*"
+ vmove "usr/share/clang/*rename*"
+ vmove "usr/share/clang/*tidy*"
+ vmove usr/share/doc/LLVM/clang-tools
+ vmove usr/share/man/man1/diagtool.1
+ vmove usr/share/man/man1/extraclangtools.1
+ }
+}
+
+clang_package() {
+ lib32disabled=yes
+ depends="libstdc++-devel libgcc-devel binutils ${XBPS_TARGET_LIBC}-devel
+ libclang-${version}_${revision}"
+ short_desc+=" - C language family frontend"
+ homepage="https://clang.llvm.org/"
+ pkg_install() {
+ vmove "usr/bin/*clang*"
+ vmove usr/bin/c-index-test
+ vmove usr/include/clang
+ vmove usr/include/clang-c
+ vmove usr/lib/clang
+ vmove usr/lib/cmake/clang
+ vmove "usr/lib/libclang*.a"
+ vmove "usr/lib/libclang*.so"
+ vmove usr/share/clang
+ vmove usr/share/doc/LLVM/clang
+ vmove usr/share/man/man1/clang.1
+ }
+}
+
+libclang_package() {
+ short_desc+=" - C frontend runtime library"
+ pkg_install() {
+ vmove "usr/lib/libclang.so.*"
+ }
+}
+
+libclang-cpp_package() {
+ short_desc+=" - C frontend runtime library (C++ interface)"
+ pkg_install() {
+ vmove "usr/lib/libclang-cpp.so.*"
+ }
+}
+
+lld_package() {
+ lib32disabled=yes
+ short_desc+=" - linker"
+ homepage="https://lld.llvm.org"
+ pkg_install() {
+ vmove "usr/bin/ld.lld*"
+ vmove "usr/bin/ld64.lld*"
+ vmove "usr/bin/lld*"
+ vmove usr/bin/wasm-ld
+ vmove usr/share/doc/LLVM/lld
+ }
+}
+
+lld-devel_package() {
+ lib32disabled=yes
+ short_desc+=" - linker - development files"
+ homepage="https://lld.llvm.org"
+ depends="lld>=${version}_${revision}"
+ pkg_install() {
+ vmove usr/include/lld
+ vmove usr/lib/cmake/lld
+ vmove "usr/lib/liblld*a"
+ }
+}
+
+lldb_package() {
+ lib32disabled=yes
+ depends+=" python3-six"
+ short_desc+=" - LLDB debugger"
+ homepage="https://lldb.llvm.org/"
+ pkg_install() {
+ vmove "usr/bin/*lldb*"
+ vmove "usr/lib/liblldb*so.*"
+ vmove usr/lib/python*
+ }
+}
+
+lldb-devel_package() {
+ lib32disabled=yes
+ depends="lldb>=${version}_${revision}"
+ short_desc+=" - LLDB debugger - development files"
+ pkg_install() {
+ vmove usr/include/lldb
+ vmove "usr/lib/liblldb*.so"
+ }
+}
+
+llvm-libunwind_package() {
+ short_desc+=" - libunwind"
+ pkg_install() {
+ vmove "usr/lib/libunwind.so.*"
+ }
+}
+
+llvm-libunwind-devel_package() {
+ short_desc+=" - libunwind - development files"
+ depends="llvm-libunwind>=${version}_${revision}"
+ conflicts="libunwind-devel>=0"
+ pkg_install() {
+ vmove usr/include/mach-o
+ vmove "usr/include/*unwind*"
+ vmove "usr/lib/libunwind.a"
+ vmove "usr/lib/libunwind.so"
+ vmove usr/share/doc/LLVM/libunwind
+ }
+}
+
+libcxxabi_package() {
+ short_desc+=" - low level support for libc++"
+ pkg_install() {
+ vmove "usr/lib/libc++abi.so.*"
+ }
+}
+
+libcxxabi-devel_package() {
+ short_desc+=" - low level support for libc++ - development files"
+ depends="libcxxabi>=${version}_${revision}"
+ pkg_install() {
+ vmove "usr/include/*cxxabi*"
+ vmove "usr/lib/libc++abi.so"
+ vmove "usr/lib/libc++abi.a"
+ }
+}
+
+libcxx_package() {
+ short_desc+=" - C++ standard library"
+ pkg_install() {
+ vmove "usr/lib/libc++.so.*"
+ }
+}
+
+libcxx-devel_package() {
+ short_desc+=" - C++ standard library - development files"
+ depends="libcxx>=${version}_${revision}"
+ pkg_install() {
+ vmove usr/include/c++
+ vmove "usr/lib/libc++.so"
+ vmove "usr/lib/libc++.a"
+ vmove "usr/lib/libc++experimental.a"
+ vmove usr/share/doc/LLVM/libcxx
+ }
+}
+
+libomp_package() {
+ short_desc+=" - Clang OpenMP support library"
+ pkg_install() {
+ vmove usr/lib/libarcher.so
+ vmove usr/lib/libompd.so
+ vmove "usr/lib/libomptarget.rtl.*.so"
+ vmove "usr/lib/libomp*.so.*"
+ }
+}
+
+libomp-devel_package() {
+ short_desc+=" - Clang OpenMP support library - development files"
+ depends="libomp>=${version}_${revision}"
+ pkg_install() {
+ vmove "usr/include/omp*.h"
+ vmove "usr/lib/clang/${version}/include/omp*.h"
+ vmove "usr/lib/libarcher*"
+ vmove "usr/lib/libomp*.so"
+ vmove usr/lib/cmake/openmp
+ vmove usr/share/doc/LLVM/openmp
+ vmove usr/share/man/man1/llvmopenmp.1
+ }
+}
+
+libllvm15_package() {
+ short_desc+=" - runtime library"
+ pkg_install() {
+ vmove "usr/lib/libLLVM-*.so*"
+ }
+}
diff --git a/srcpkgs/llvm15/update b/srcpkgs/llvm15/update
new file mode 100644
index 000000000000..e95cf26b3586
--- /dev/null
+++ b/srcpkgs/llvm15/update
@@ -0,0 +1,3 @@
+site="https://github.com/llvm/llvm-project/releases"
+pattern="llvmorg-\K(\d+.){2}\d+(-rc\d+)?"
+ignore="*-rc*"
From 016ed775e5f482f98a2ede7a10bc24b0069eb0e0 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Sun, 18 Dec 2022 00:40:18 +0100
Subject: [PATCH 02/19] llvm: update to 15
---
common/shlibs | 6 +++---
srcpkgs/clang | 2 +-
srcpkgs/clang-analyzer | 2 +-
srcpkgs/clang-tools-extra | 2 +-
srcpkgs/libclang | 2 +-
srcpkgs/libclang-cpp | 2 +-
srcpkgs/libcxx | 2 +-
srcpkgs/libcxx-devel | 2 +-
srcpkgs/libcxxabi | 2 +-
srcpkgs/libcxxabi-devel | 2 +-
srcpkgs/libomp | 2 +-
srcpkgs/libomp-devel | 2 +-
srcpkgs/lld | 2 +-
srcpkgs/lld-devel | 2 +-
srcpkgs/lldb | 2 +-
srcpkgs/lldb-devel | 2 +-
srcpkgs/llvm-libunwind | 2 +-
srcpkgs/llvm-libunwind-devel | 2 +-
srcpkgs/llvm/template | 6 +++---
19 files changed, 23 insertions(+), 23 deletions(-)
diff --git a/common/shlibs b/common/shlibs
index 7c1c48c61065..44059d647598 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -987,9 +987,9 @@ 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.12 lldb-12.0.0_1
-libclang.so.12 libclang-12.0.0_1
-libclang-cpp.so.12 libclang-cpp-12.0.0_1
+liblldb.so.15 lldb-15.0.7_1
+libclang.so.15 libclang-15.0.7_1
+libclang-cpp.so.15 libclang-cpp-15.0.7_1
libLLVM-11.so libllvm11-11.0.0_1
libLLVM-12.so libllvm12-12.0.0_1
libLLVM-15.so libllvm15-15.0.7_1
diff --git a/srcpkgs/clang b/srcpkgs/clang
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/clang
+++ b/srcpkgs/clang
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/clang-analyzer b/srcpkgs/clang-analyzer
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/clang-analyzer
+++ b/srcpkgs/clang-analyzer
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/clang-tools-extra b/srcpkgs/clang-tools-extra
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/clang-tools-extra
+++ b/srcpkgs/clang-tools-extra
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libclang b/srcpkgs/libclang
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libclang
+++ b/srcpkgs/libclang
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libclang-cpp b/srcpkgs/libclang-cpp
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libclang-cpp
+++ b/srcpkgs/libclang-cpp
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxx b/srcpkgs/libcxx
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxx
+++ b/srcpkgs/libcxx
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxx-devel b/srcpkgs/libcxx-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxx-devel
+++ b/srcpkgs/libcxx-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxxabi b/srcpkgs/libcxxabi
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxxabi
+++ b/srcpkgs/libcxxabi
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxxabi-devel b/srcpkgs/libcxxabi-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxxabi-devel
+++ b/srcpkgs/libcxxabi-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libomp b/srcpkgs/libomp
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libomp
+++ b/srcpkgs/libomp
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libomp-devel b/srcpkgs/libomp-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libomp-devel
+++ b/srcpkgs/libomp-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lld b/srcpkgs/lld
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lld
+++ b/srcpkgs/lld
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lld-devel b/srcpkgs/lld-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lld-devel
+++ b/srcpkgs/lld-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lldb b/srcpkgs/lldb
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lldb
+++ b/srcpkgs/lldb
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lldb-devel b/srcpkgs/lldb-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lldb-devel
+++ b/srcpkgs/lldb-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm-libunwind b/srcpkgs/llvm-libunwind
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/llvm-libunwind
+++ b/srcpkgs/llvm-libunwind
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm-libunwind-devel b/srcpkgs/llvm-libunwind-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/llvm-libunwind-devel
+++ b/srcpkgs/llvm-libunwind-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm/template b/srcpkgs/llvm/template
index a92db6f94f9f..fc1c850bd26f 100644
--- a/srcpkgs/llvm/template
+++ b/srcpkgs/llvm/template
@@ -1,11 +1,11 @@
# Template file for 'llvm'
pkgname=llvm
-version=12.0.0
+version=15
revision=1
build_style=meta
-depends="llvm12"
-replaces="llvm11>=0 llvm10>=0 llvm9>=0 llvm8>=0 llvm7>=0 llvm6.0>=0 llvm3.9>=0"
+depends="llvm15"
short_desc="LLVM meta package"
maintainer="Enno Boland <gottox@voidlinux.org>"
license="Public Domain"
homepage="https://www.voidlinux.org"
+replaces="llvm12>=0 llvm11>=0 llvm10>=0 llvm9>=0 llvm8>=0 llvm7>=0 llvm6.0>=0 llvm3.9>=0"
From 6ffb3cba2fc9858ba7d8c4134f5c717ffa7fb9bd Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Sun, 18 Dec 2022 12:20:08 +0100
Subject: [PATCH 03/19] llvm12: remove bumped subpackages
---
srcpkgs/llvm12/template | 264 +---------------------------------------
1 file changed, 1 insertion(+), 263 deletions(-)
diff --git a/srcpkgs/llvm12/template b/srcpkgs/llvm12/template
index f8ea3ba641ae..aea0b43cf573 100644
--- a/srcpkgs/llvm12/template
+++ b/srcpkgs/llvm12/template
@@ -50,55 +50,7 @@ case "$XBPS_TARGET_MACHINE" in
ppc*) configure_args+=" -DCLANG_ENABLE_CLANGD=OFF" ;;
esac
-_enabled_projects="clang;clang-tools-extra;compiler-rt;libcxx;libcxxabi;libunwind;lld"
-
-_lldb_enable=yes
-_libomp_enable=no
-
-case "$XBPS_TARGET_MACHINE" in
- ppc64le*) ;;
- ppc*|i686*) _lldb_enable=no ;;
-esac
-
-case "$XBPS_TARGET_MACHINE" in
- x86_64*|aarch64*|ppc64*) _libomp_enable=yes;;
-esac
-
-subpackages="clang-tools-extra"
-
-# must go before clang
-if [ "$_libomp_enable" = "yes" ]; then
- _enabled_projects+=";openmp"
- subpackages+=" libomp libomp-devel"
- # because of cmake nonsense referencing libomptarget.so.*
- depends+=" libomp>=${version}_${revision}"
-fi
-
-subpackages+=" clang clang-analyzer libclang libclang-cpp
- llvm-libunwind llvm-libunwind-devel libcxx libcxx-devel
- libcxxabi libcxxabi-devel libllvm12"
-
-if [ "$_lldb_enable" = "yes" ]; then
- # XXX fails to cross compile due to python
- _enabled_projects+=";lldb"
- subpackages+=" lldb lldb-devel"
-fi
-
-subpackages+=" lld lld-devel"
-
-configure_args+=" -DLLVM_ENABLE_PROJECTS=${_enabled_projects}"
-
post_patch() {
- if [ "$_lldb_enable" = "yes" ]; then
- if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
- vsed -i 's|__ptrace_request|int|g' \
- ${wrksrc}/lldb/source/Plugins/Process/Linux/NativeProcessLinux.cpp
- fi
- # disable docs for lldb as they fail to generate
- vsed -i '/add_subdirectory(docs)/d' \
- ${wrksrc}/lldb/CMakeLists.txt
- fi
-
# update config.guess for better platform detection
cp $XBPS_COMMONDIR/environment/configure/automake/config.guess \
${wrksrc}/llvm/cmake
@@ -154,14 +106,12 @@ pre_configure() {
cd build/HOST
CC="$BUILD_CC" CXX="$BUILD_CXX" CFLAGS="$BUILD_CFLAGS" \
CXXFLAGS="$BUILD_CXXFLAGS" LDFLAGS="$BUILD_LDFLAGS" \
- cmake ../.. -DCMAKE_BUILD_TYPE=Release \
- -DLLVM_ENABLE_PROJECTS=${_enabled_projects}
+ cmake ../.. -DCMAKE_BUILD_TYPE=Release
make ${makejobs} -C utils/TableGen
make ${makejobs} -C tools/clang/utils/TableGen
[ "$_lldb_enable" = "yes" ] && make ${makejobs} -C tools/lldb/utils/TableGen
configure_args+=" -DLLVM_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/llvm-tblgen"
configure_args+=" -DCLANG_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/clang-tblgen"
- [ "$_lldb_enable" = "yes" ] && configure_args+=" -DLLDB_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/lldb-tblgen"
cd ../..
fi
@@ -201,218 +151,6 @@ do_install() {
if [ "$CROSS_BUILD" ]; then
rm -f ${DESTDIR}/usr/bin/llvm-config-host
fi
-
- # Install libcxxabi headers
- vinstall ${wrksrc}/libcxxabi/include/__cxxabi_config.h 644 usr/include
- vinstall ${wrksrc}/libcxxabi/include/cxxabi.h 644 usr/include
-
- # Install libunwind headers
- vinstall ${wrksrc}/libunwind/include/__libunwind_config.h 644 usr/include
- vinstall ${wrksrc}/libunwind/include/libunwind.h 644 usr/include
- vinstall ${wrksrc}/libunwind/include/unwind.h 644 usr/include
- vinstall ${wrksrc}/libunwind/include/mach-o/compact_unwind_encoding.h \
- 644 usr/include/mach-o
-}
-
-clang-analyzer_package() {
- pycompile_dirs="usr/share/scan-view"
- depends="clang-${version}_${revision} python3 perl"
- short_desc+=" - A source code analysis framework"
- homepage="https://clang-analyzer.llvm.org/"
- pkg_install() {
- vmove usr/share/man/man1/scan-build.1
- vmove "/usr/bin/scan-*"
- vmove "/usr/share/scan-*"
- vmove "/usr/libexec/*analyzer"
- }
-}
-
-clang-tools-extra_package() {
- lib32disabled=yes
- depends="clang-${version}_${revision} python3"
- short_desc+=" - Extra Clang tools"
- homepage="https://clang.llvm.org/extra/"
- pkg_install() {
- vmove usr/include/clang-tidy
- vmove usr/bin/clang-apply-replacements
- vmove usr/bin/clang-query
- vmove usr/bin/clang-rename
- vmove usr/bin/clang-tidy
- vmove usr/bin/diagtool
- vmove usr/bin/find-all-symbols
- vmove usr/bin/hmaptool
- vmove usr/bin/modularize
- vmove usr/bin/pp-trace
- vmove usr/bin/sancov
- vmove "usr/lib/libclangApplyReplacements*"
- vmove "usr/lib/libclangQuery*"
- vmove "usr/lib/libclangTidy*"
- vmove "usr/share/clang/*tidy*"
- vmove usr/share/doc/clang-tools
- vmove usr/share/man/man1/extraclangtools.1
- vmove usr/share/man/man1/diagtool.1
- }
-}
-
-clang_package() {
- lib32disabled=yes
- depends="libstdc++-devel libgcc-devel binutils ${XBPS_TARGET_LIBC}-devel
- libclang-${version}_${revision}"
- short_desc+=" - C language family frontend"
- homepage="https://clang.llvm.org/"
- pkg_install() {
- vmove usr/include/clang
- vmove usr/include/clang-c
- vmove "usr/bin/*clang*"
- vmove usr/bin/c-index-test
- vmove usr/lib/clang
- vmove usr/lib/cmake/clang
- vmove "usr/lib/libclang*.a"
- vmove "usr/lib/libclang*.so"
- vmove usr/share/clang
- vmove usr/share/doc/clang
- vmove usr/share/man/man1/clang.1
- }
-}
-
-libclang_package() {
- short_desc+=" - C frontend runtime library"
- pkg_install() {
- vmove "usr/lib/libclang.so.*"
- }
-}
-
-libclang-cpp_package() {
- short_desc+=" - C frontend runtime library (C++ interface)"
- pkg_install() {
- vmove "usr/lib/libclang-cpp.so.*"
- }
-}
-
-lld_package() {
- lib32disabled=yes
- short_desc+=" - linker"
- homepage="https://lld.llvm.org"
- pkg_install() {
- vmove usr/bin/lld*
- vmove usr/bin/wasm-ld
- vmove usr/bin/ld.lld*
- vmove usr/bin/ld64.lld*
- vmove usr/share/doc/lld
- }
-}
-
-lld-devel_package() {
- lib32disabled=yes
- short_desc+=" - linker - development files"
- homepage="https://lld.llvm.org"
- depends="lld>=${version}_${revision}"
- pkg_install() {
- vmove usr/include/lld
- vmove usr/lib/cmake/lld
- vmove "usr/lib/liblld*a"
- }
-}
-
-lldb_package() {
- lib32disabled=yes
- depends+=" python3-six"
- short_desc+=" - LLDB debugger"
- homepage="https://lldb.llvm.org/"
- pkg_install() {
- vmove usr/bin/*lldb*
- vmove usr/lib/liblldb*so.*
- vmove /usr/lib/python*
- }
-}
-
-lldb-devel_package() {
- lib32disabled=yes
- depends="lldb>=${version}_${revision}"
- short_desc+=" - LLDB debugger - development files"
- pkg_install() {
- vmove usr/include/lldb
- vmove "usr/lib/liblldb*.so"
- }
-}
-
-llvm-libunwind_package() {
- short_desc+=" - libunwind"
- pkg_install() {
- vmove "usr/lib/libunwind.so.*"
- }
-}
-
-llvm-libunwind-devel_package() {
- short_desc+=" - libunwind - development files"
- depends="llvm-libunwind>=${version}_${revision}"
- conflicts="libunwind-devel>=0"
- pkg_install() {
- vmove usr/lib/libunwind.so
- vmove usr/lib/libunwind.a
- vmove "usr/include/*unwind*"
- vmove usr/include/mach-o
- vmove usr/share/doc/libunwind
- }
-}
-
-libcxxabi_package() {
- short_desc+=" - low level support for libc++"
- pkg_install() {
- vmove "usr/lib/libc++abi.so.*"
- }
-}
-
-libcxxabi-devel_package() {
- short_desc+=" - low level support for libc++ - development files"
- depends="libcxxabi>=${version}_${revision}"
- pkg_install() {
- vmove usr/lib/libc++abi.so
- vmove usr/lib/libc++abi.a
- vmove "usr/include/*cxxabi*"
- }
-}
-
-libcxx_package() {
- short_desc+=" - C++ standard library"
- pkg_install() {
- vmove "usr/lib/libc++.so.*"
- }
-}
-
-libcxx-devel_package() {
- short_desc+=" - C++ standard library - development files"
- depends="libcxx>=${version}_${revision}"
- pkg_install() {
- vmove usr/lib/libc++.so
- vmove usr/lib/libc++.a
- vmove usr/lib/libc++experimental.a
- vmove usr/include/c++
- vmove usr/share/doc/libcxx
- }
-}
-
-libomp_package() {
- short_desc+=" - Clang OpenMP support library"
- pkg_install() {
- vmove usr/lib/libomp.so
- vmove "usr/lib/libomptarget.rtl.*.so"
- vmove usr/lib/libarcher.so
- vmove "usr/lib/libomp*.so.*"
- }
-}
-
-libomp-devel_package() {
- short_desc+=" - Clang OpenMP support library - development files"
- depends="libomp>=${version}_${revision}"
- pkg_install() {
- vmove "usr/lib/libomp*.so"
- vmove "usr/lib/libarcher*"
- vmove "usr/include/omp*.h"
- vmove "usr/lib/clang/${version}/include/omp*.h"
- vmove usr/share/man/man1/llvmopenmp.1
- vmove usr/share/doc/openmp
- }
}
libllvm12_package() {
From f107c174d7db3ec041d33f29d3ace0e0ca7a3643 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:27:03 +0100
Subject: [PATCH 04/19] mesa: rebuild for llvm15
---
srcpkgs/mesa/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/mesa/template b/srcpkgs/mesa/template
index 4c3c9ec6039e..0641b28a80d6 100644
--- a/srcpkgs/mesa/template
+++ b/srcpkgs/mesa/template
@@ -1,7 +1,7 @@
# Template file for 'mesa'
pkgname=mesa
version=22.2.4
-revision=2
+revision=3
build_style=meson
configure_args="-Dglvnd=true -Dshared-glapi=enabled -Dgbm=enabled -Degl=enabled
-Dosmesa=true -Dgles1=enabled -Dgles2=enabled -Dglx=dri -Ddri3=enabled
From 2c014990d7cabd857e083e0ac251d5a1a2c44497 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:34:04 +0100
Subject: [PATCH 05/19] bcc: rebuild for llvm15
---
srcpkgs/bcc/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/bcc/template b/srcpkgs/bcc/template
index 7526580f17ed..bdbcff7227a0 100644
--- a/srcpkgs/bcc/template
+++ b/srcpkgs/bcc/template
@@ -1,7 +1,7 @@
# Template file for 'bcc'
pkgname=bcc
version=0.26.0
-revision=2
+revision=3
build_style=cmake
configure_args="-DREVISION=${version} -DENABLE_LLVM_SHARED=1"
hostmakedepends="flex python3-setuptools"
From ad39f276bbf08e7f46e82254e5dfe05e0eac66ca Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:37:25 +0100
Subject: [PATCH 06/19] bpftrace: rebuild for llvm15
---
srcpkgs/bpftrace/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/bpftrace/template b/srcpkgs/bpftrace/template
index 952682662128..2f01dbf69530 100644
--- a/srcpkgs/bpftrace/template
+++ b/srcpkgs/bpftrace/template
@@ -1,7 +1,7 @@
# Template file for 'bpftrace'
pkgname=bpftrace
version=0.17.0
-revision=1
+revision=2
archs="x86_64* aarch64* ppc64*"
build_style=cmake
configure_args="-DUSE_SYSTEM_BPF_BCC=ON -DBUILD_TESTING=OFF" # needs root to run
From dab4452e67bcaeab84a0dd9b57e42c2794939d96 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:43:53 +0100
Subject: [PATCH 07/19] CastXML: rebuild for llvm15
---
srcpkgs/CastXML/template | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/srcpkgs/CastXML/template b/srcpkgs/CastXML/template
index 5d7d9503658c..28c424c78073 100644
--- a/srcpkgs/CastXML/template
+++ b/srcpkgs/CastXML/template
@@ -1,7 +1,7 @@
# Template file for 'CastXML'
pkgname=CastXML
version=0.4.6
-revision=1
+revision=2
build_style=cmake
configure_args="-DSPHINX_MAN=YES -DCastXML_INSTALL_MAN_DIR=share/man"
hostmakedepends="clang python3-Sphinx"
@@ -12,8 +12,8 @@ short_desc="C-family abstract syntax tree XML output tool"
maintainer="Evgeny Ermakov <evgeny.v.ermakov@gmail.com>"
license="Apache-2.0"
homepage="https://github.com/CastXML/CastXML"
-distfiles="https://github.com/CastXML/CastXML/archive/v${version}.tar.gz"
-checksum=8dcdbc1f23a130e4bdb0b09f57c30761a02a346b4db4037555048af2a293d66a
+distfiles="https://github.com/CastXML/CastXML/archive/refs/tags/v${version}.tar.gz"
+checksum=bb9024ec9ea5082e0d527f19bf3c2df79f1699f54b6cec168c024e727b32e6d1
post_install() {
rm -r ${DESTDIR}/usr/share/castxml/clang/include
From 6575511ac94de71e86bee37bbe1eb9ac035b34bb Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:48:55 +0100
Subject: [PATCH 08/19] ccls: rebuild for llvm15
---
srcpkgs/ccls/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/ccls/template b/srcpkgs/ccls/template
index 82fa61933878..ecc9f3e38a5d 100644
--- a/srcpkgs/ccls/template
+++ b/srcpkgs/ccls/template
@@ -1,7 +1,7 @@
# Template file for 'ccls'
pkgname=ccls
version=0.20220729
-revision=1
+revision=2
build_style=cmake
hostmakedepends="clang-tools-extra"
makedepends="clang-tools-extra libxml2-devel llvm ncurses-devel rapidjson zlib-devel"
From cfb10130dbbe37aa8eaf3ebbcb6c8ba830eea236 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:52:14 +0100
Subject: [PATCH 09/19] include-what-you-use: update to 0.19
---
srcpkgs/include-what-you-use/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/include-what-you-use/template b/srcpkgs/include-what-you-use/template
index d3655709c20c..1a30bc04bb2d 100644
--- a/srcpkgs/include-what-you-use/template
+++ b/srcpkgs/include-what-you-use/template
@@ -1,6 +1,6 @@
# Template file for 'include-what-you-use'
pkgname=include-what-you-use
-version=0.16
+version=0.19
revision=1
build_style=cmake
configure_args="-DIWYU_LLVM_ROOT_PATH=${XBPS_CROSS_BASE}/usr "
@@ -11,7 +11,7 @@ maintainer="Leah Neukirchen <leah@vuxu.org>"
license="NCSA"
homepage="https://include-what-you-use.org/"
distfiles="https://include-what-you-use.org/downloads/${pkgname}-${version}.src.tar.gz"
-checksum=8d6fc9b255343bc1e5ec459e39512df1d51c60e03562985e0076036119ff5a1c
+checksum=2b10157b60ea08adc08e3896b4921c73fcadd5ec4eb652b29a34129d501e5ee0
python_version=3
post_install() {
From a227b2c3d4d2d874b07df6b09de77824c37093f1 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 15:11:06 +0100
Subject: [PATCH 10/19] SPIRV-LLVM-Translator: update to 15.0.0
---
srcpkgs/SPIRV-LLVM-Translator/template | 13 +++++++------
1 file changed, 7 insertions(+), 6 deletions(-)
diff --git a/srcpkgs/SPIRV-LLVM-Translator/template b/srcpkgs/SPIRV-LLVM-Translator/template
index a2754e58c0e8..bee99f9bcbb2 100644
--- a/srcpkgs/SPIRV-LLVM-Translator/template
+++ b/srcpkgs/SPIRV-LLVM-Translator/template
@@ -1,19 +1,20 @@
# Template file for 'SPIRV-LLVM-Translator'
pkgname=SPIRV-LLVM-Translator
-version=12.0.0
-revision=2
+version=15.0.0
+revision=1
build_style=cmake
make_build_args="llvm-spirv"
configure_args="-Wno-dev -DLLVM_LINK_LLVM_DYLIB=ON -DCMAKE_SKIP_RPATH=ON
- -DLLVM_SPIRV_INCLUDE_TESTS=OFF -DBUILD_SHARED_LIBS=ON"
+ -DLLVM_SPIRV_INCLUDE_TESTS=OFF -DBUILD_SHARED_LIBS=ON
+ -DLLVM_EXTERNAL_SPIRV_HEADERS_SOURCE_DIR=/usr"
hostmakedepends="clang llvm"
-makedepends="clang-tools-extra llvm"
+makedepends="clang-tools-extra llvm SPIRV-Headers"
short_desc="API and commands for processing SPIR-V modules"
maintainer="Orphaned <orphan@voidlinux.org>"
license="NCSA"
homepage="https://github.com/KhronosGroup/SPIRV-LLVM-Translator"
-distfiles="https://github.com/KhronosGroup/${pkgname}/archive/refs/tags/v${version}.tar.gz"
-checksum=6e4fad04203f25fcde4c308c53e9f59bd05a390978992db3212d4b63aff62108
+distfiles="https://github.com/KhronosGroup/SPIRV-LLVM-Translator/archive/refs/tags/v${version}.tar.gz"
+checksum=b1bebd77f72988758c00852e78c2ddc545815a612169a0cb377d021e2f846d88
post_install() {
vlicense LICENSE.TXT
From 74116ebc192456de70491ac34c64b0222efde682 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Fri, 6 Jan 2023 17:11:04 +0100
Subject: [PATCH 11/19] rtags: rebuild for llvm15
---
srcpkgs/rtags/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/rtags/template b/srcpkgs/rtags/template
index b496a1b0e721..9b161e690d76 100644
--- a/srcpkgs/rtags/template
+++ b/srcpkgs/rtags/template
@@ -1,7 +1,7 @@
# Template file for 'rtags'
pkgname=rtags
version=2.38
-revision=5
+revision=6
build_style=cmake
# Don't run tests in do_install, please.
configure_args="-DSKIP_CTEST=TRUE"
From b6b4447de6417801abb7ddb9a4c148c7328d9639 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Fri, 6 Jan 2023 17:14:14 +0100
Subject: [PATCH 12/19] juCi++: rebuild for llvm15
---
srcpkgs/juCi++/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/juCi++/template b/srcpkgs/juCi++/template
index c1969237f11d..416bde7cc4d0 100644
--- a/srcpkgs/juCi++/template
+++ b/srcpkgs/juCi++/template
@@ -1,7 +1,7 @@
# Template file for 'juCi++'
pkgname=juCi++
version=1.7.2
-revision=2
+revision=3
_libclangmm_commit="9704b9b6de0982a588fa41741157d5640afedf30"
_tiny_commit="839ff806dc447ff49af80f9a9eaa7949f770f8e5"
create_wrksrc=yes
From dc093beccdff4269e28883f1e1ac6044af192586 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Sat, 7 Jan 2023 11:31:14 +0100
Subject: [PATCH 13/19] qt5: rebuild for llvm15
---
srcpkgs/qt5/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/qt5/template b/srcpkgs/qt5/template
index f4f9f5b5344a..b517b49ead2d 100644
--- a/srcpkgs/qt5/template
+++ b/srcpkgs/qt5/template
@@ -5,7 +5,7 @@ pkgname=qt5
version=5.15.7+20221119
# commit f8c9fb304bc3e53b3aa07f962cd74e9160decccc
# base repo: https://invent.kde.org/qt/qt/qt5
-revision=1
+revision=2
build_style=meta
hostmakedepends="cmake clang flex perl glib-devel pkg-config
python re2c ruby which"
From 9124558c136377ee1417486e7ba3b351d5321eb6 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Mon, 9 Jan 2023 01:22:18 +0100
Subject: [PATCH 14/19] codelite: rebuild for llvm15
---
srcpkgs/codelite/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/codelite/template b/srcpkgs/codelite/template
index 6b8b007c8a43..c6115e0274ce 100644
--- a/srcpkgs/codelite/template
+++ b/srcpkgs/codelite/template
@@ -1,7 +1,7 @@
# Template file for 'codelite'
pkgname=codelite
version=16.0.0
-revision=2
+revision=3
create_wrksrc=yes
build_style=cmake
build_helper=cmake-wxWidgets-gtk3
From b79afad74cea41a0637fd8529ea72b64e2c22e32 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Mon, 9 Jan 2023 01:58:21 +0100
Subject: [PATCH 15/19] kdevelop: rebuild for llvm15
---
srcpkgs/kdevelop/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/kdevelop/template b/srcpkgs/kdevelop/template
index 5eb275583138..c32ee5240a44 100644
--- a/srcpkgs/kdevelop/template
+++ b/srcpkgs/kdevelop/template
@@ -1,7 +1,7 @@
# Template file for 'kdevelop'
pkgname=kdevelop
version=22.12.1
-revision=1
+revision=2
build_style=cmake
configure_args="-DBUILD_TESTING=OFF"
hostmakedepends="extra-cmake-modules qt5-qmake qt5-host-tools qt5-tools
From 7c3e77332a91c1c6edee94f525cba001196c9131 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Mon, 16 Jan 2023 14:43:47 +0100
Subject: [PATCH 16/19] zig: update to 0.10.1
---
.../0001-std.build-fix-handling-of-Dcpu.patch | 48 -------------------
srcpkgs/zig/template | 10 ++--
2 files changed, 6 insertions(+), 52 deletions(-)
delete mode 100644 srcpkgs/zig/patches/0001-std.build-fix-handling-of-Dcpu.patch
diff --git a/srcpkgs/zig/patches/0001-std.build-fix-handling-of-Dcpu.patch b/srcpkgs/zig/patches/0001-std.build-fix-handling-of-Dcpu.patch
deleted file mode 100644
index 4101f24459bb..000000000000
--- a/srcpkgs/zig/patches/0001-std.build-fix-handling-of-Dcpu.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From 1e8cdace7ad324a42228aeb5cd6eb8dd15429413 Mon Sep 17 00:00:00 2001
-From: Isaac Freund <ifreund@ifreund.xyz>
-Date: Tue, 21 Sep 2021 21:06:10 +0200
-Subject: [PATCH] std.build: fix handling of -Dcpu
-
-Currently -Dcpu is completely ignored if -Dtarget isn't passed as well.
-Further, -Dcpu=baseline is ignored even if -Dtarget=native is passed.
-
-This patch fixes these 2 issues, always respecting the -Dcpu option if
-present.
----
- lib/std/build.zig | 13 +++++++------
- 1 file changed, 7 insertions(+), 6 deletions(-)
-
-diff --git a/lib/std/build.zig b/lib/std/build.zig
-index 9b7ebb1f4..e398529f9 100644
---- a/lib/std/build.zig
-+++ b/lib/std/build.zig
-@@ -685,7 +685,11 @@ pub const Builder = struct {
- );
- const mcpu = self.option([]const u8, "cpu", "Target CPU");
-
-- const triple = maybe_triple orelse return args.default_target;
-+ if (maybe_triple == null and mcpu == null) {
-+ return args.default_target;
-+ }
-+
-+ const triple = maybe_triple orelse "native";
-
- var diags: CrossTarget.ParseOptions.Diagnostics = .{};
- const selected_target = CrossTarget.parse(.{
-@@ -2451,11 +2455,8 @@ pub const LibExeObjStep = struct {
-
- if (populated_cpu_features.eql(cross.cpu.features)) {
- // The CPU name alone is sufficient.
-- // If it is the baseline CPU, no command line args are required.
-- if (cross.cpu.model != std.Target.Cpu.baseline(cross.cpu.arch).model) {
-- try zig_args.append("-mcpu");
-- try zig_args.append(cross.cpu.model.name);
-- }
-+ try zig_args.append("-mcpu");
-+ try zig_args.append(cross.cpu.model.name);
- } else {
- var mcpu_buffer = std.ArrayList(u8).init(builder.allocator);
-
---
-2.33.1
-
diff --git a/srcpkgs/zig/template b/srcpkgs/zig/template
index 728c5a64e9df..9807f7ab206b 100644
--- a/srcpkgs/zig/template
+++ b/srcpkgs/zig/template
@@ -1,17 +1,19 @@
# Template file for 'zig'
pkgname=zig
-version=0.8.1
-revision=2
+version=0.10.1
+revision=1
archs="x86_64* aarch64*"
build_style=cmake
make_cmd=make
-makedepends="clang llvm12 lld-devel"
+# we add xml2, zstd, zlib and ncurses
+# because our lld is static-only and requires those to work
+makedepends="clang llvm15 lld-devel libxml2-devel libzstd-devel ncurses-devel zlib-devel"
short_desc="Programming language designed for robustness, optimality, and clarity"
maintainer="Isaac Freund <mail@isaacfreund.com>"
license="MIT"
homepage="https://ziglang.org"
distfiles="https://ziglang.org/download/${version}/zig-${version}.tar.xz"
-checksum=8c428e14a0a89cb7a15a6768424a37442292858cdb695e2eb503fa3c7bf47f1a
+checksum=69459bc804333df077d441ef052ffa143d53012b655a51f04cfef1414c04168c
nopie=yes
nocross=yes
From 9f7e9b679d0fc46301afe5472f2cd9f0627d83ef Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Tue, 24 Jan 2023 14:03:51 +0100
Subject: [PATCH 17/19] river: update to 0.2.3
---
...ble-PIE-for-river-riverctl-rivertile.patch | 42 -------------------
srcpkgs/river/template | 10 ++---
2 files changed, 5 insertions(+), 47 deletions(-)
delete mode 100644 srcpkgs/river/patches/0001-Enable-PIE-for-river-riverctl-rivertile.patch
diff --git a/srcpkgs/river/patches/0001-Enable-PIE-for-river-riverctl-rivertile.patch b/srcpkgs/river/patches/0001-Enable-PIE-for-river-riverctl-rivertile.patch
deleted file mode 100644
index ecc68302db09..000000000000
--- a/srcpkgs/river/patches/0001-Enable-PIE-for-river-riverctl-rivertile.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From 759c1c7a915083f3da46960ff82fa2a3566a7065 Mon Sep 17 00:00:00 2001
-From: Isaac Freund <mail@isaacfreund.com>
-Date: Wed, 3 Nov 2021 14:21:35 +0100
-Subject: [PATCH] Enable PIE for river, riverctl, rivertile
-
-There is sadly not yet a standard way to do this exposed by the zig
-build system. See: https://github.com/ziglang/zig/issues/7201
----
- build.zig | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/build.zig b/build.zig
-index d561f49..8ac9a4e 100644
---- a/build.zig
-+++ b/build.zig
-@@ -85,6 +85,7 @@ pub fn build(b: *zbs.Builder) !void {
- const river = b.addExecutable("river", "river/main.zig");
- river.setTarget(target);
- river.setBuildMode(mode);
-+ river.pie = true;
- river.addBuildOption(bool, "xwayland", xwayland);
- river.addBuildOption([:0]const u8, "version", full_version);
-
-@@ -97,6 +98,7 @@ pub fn build(b: *zbs.Builder) !void {
- const riverctl = b.addExecutable("riverctl", "riverctl/main.zig");
- riverctl.setTarget(target);
- riverctl.setBuildMode(mode);
-+ riverctl.pie = true;
- riverctl.addBuildOption([:0]const u8, "version", full_version);
-
- riverctl.step.dependOn(&scanner.step);
-@@ -114,6 +116,7 @@ pub fn build(b: *zbs.Builder) !void {
- const rivertile = b.addExecutable("rivertile", "rivertile/main.zig");
- rivertile.setTarget(target);
- rivertile.setBuildMode(mode);
-+ rivertile.pie = true;
- rivertile.addBuildOption([:0]const u8, "version", full_version);
-
- rivertile.step.dependOn(&scanner.step);
---
-2.33.1
-
diff --git a/srcpkgs/river/template b/srcpkgs/river/template
index 3906858d507e..431aa4bd8e8e 100644
--- a/srcpkgs/river/template
+++ b/srcpkgs/river/template
@@ -1,18 +1,18 @@
# Template file for 'river'
pkgname=river
-version=0.1.1
-revision=2
+version=0.2.3
+revision=1
build_style=zig-build
-configure_args="$(vopt_if xwayland -Dxwayland)"
+configure_args="$(vopt_if xwayland -Dxwayland) -Dpie"
hostmakedepends="pkg-config wayland-devel scdoc"
-makedepends="wlroots0.15-devel libevdev-devel"
+makedepends="wlroots-devel libevdev-devel"
depends="$(vopt_if xwayland xorg-server-xwayland)"
short_desc="Dynamic tiling Wayland compositor"
maintainer="Isaac Freund <mail@isaacfreund.com>"
license="GPL-3.0-or-later"
homepage="https://github.com/riverwm/river"
distfiles="${homepage}/releases/download/v${version}/river-${version}.tar.gz"
-checksum=2a0bcd4670ed9ebd39c279f2bf10803fc65c9f3ee2307ce40728df23ce914d18
+checksum=7acdd2b929e16a20006b4baf1f29e7a8dc7f70cf5747e1503a610a90d1637132
build_options="xwayland"
build_options_default="xwayland"
From b2d458256c4a9df1afd200c9bf1f7f352cdcaa98 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Fri, 10 Feb 2023 17:25:32 +0100
Subject: [PATCH 18/19] libclc: update to 15.0.7
---
srcpkgs/libclc/template | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/srcpkgs/libclc/template b/srcpkgs/libclc/template
index 779519fd666f..adb60f6ad1f1 100644
--- a/srcpkgs/libclc/template
+++ b/srcpkgs/libclc/template
@@ -1,9 +1,11 @@
# Template file for 'libclc'
pkgname=libclc
-version=12.0.0
+version=15.0.7
revision=1
build_style=cmake
-configure_args="-DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release"
+# disable clspv (failing tests, we don't ship it)
+configure_args="-DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release
+ -DLIBCLC_TARGETS_TO_BUILD=amdgcn--;amdgcn--amdhsa;r600--;nvptx--;nvptx64--;nvptx--nvidiacl;nvptx64--nvidiacl;spirv-mesa3d-;spirv64-mesa3d-"
hostmakedepends="cmake clang llvm python3 libedit-devel libffi-devel
ncurses-devel zlib-devel SPIRV-LLVM-Translator"
short_desc="Open implementation of the OpenCL C programming language"
@@ -11,7 +13,7 @@ maintainer="Orphaned <orphan@voidlinux.org>"
license="BSD-3-Clause, MIT"
homepage="https://libclc.llvm.org"
distfiles="https://github.com/llvm/llvm-project/releases/download/llvmorg-${version}/libclc-${version}.src.tar.xz"
-checksum=6b777ee2cd57da1b122f76c208463f620eef508f4128210c6b1a96bfb75c74dc
+checksum=35731fea7be224f21acf5bf3cd9f0ed058bf4ada5eceaf7f10ee96e139bd3389
replaces="libclc-git>=0"
do_configure() {
From b3812ef08fb46263d4e1684e75c9e31222ac6359 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Fri, 10 Feb 2023 20:20:43 +0100
Subject: [PATCH 19/19] shiboken2: update to 5.15.7
---
srcpkgs/shiboken2/template | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/srcpkgs/shiboken2/template b/srcpkgs/shiboken2/template
index 9ceb8b313de7..084ecc3ba1e1 100644
--- a/srcpkgs/shiboken2/template
+++ b/srcpkgs/shiboken2/template
@@ -1,7 +1,7 @@
# Template file for 'shiboken2'
pkgname=shiboken2
-version=5.15.5
-revision=2
+version=5.15.7
+revision=1
_pkgname="pyside-setup-opensource-src-${version}"
build_wrksrc="sources/shiboken2"
build_style=cmake
@@ -14,7 +14,7 @@ maintainer="yopito <pierre.bourgin@free.fr>"
license="GPL-3.0-or-later"
homepage="https://wiki.qt.io/Qt_for_Python/Shiboken"
distfiles="https://download.qt.io/official_releases/QtForPython/pyside2/PySide2-${version}-src/${_pkgname}.tar.xz"
-checksum=3920a4fb353300260c9bc46ff70f1fb975c5e7efa22e9d51222588928ce19b33
+checksum=f61210ae24e6882d5d0ca0059229e5dc4f35e2bca92dd6caf96c0f41943a8294
python_version=3
export CLANG_INSTALL_DIR=${XBPS_CROSS_BASE}/usr
^ permalink raw reply [flat|nested] 96+ messages in thread
* Re: [PR PATCH] [Updated] [WIP] LLVM 15
2022-11-28 15:30 [PR PATCH] [WIP] LLVM 15 tranzystorek-io
` (66 preceding siblings ...)
2023-02-10 19:21 ` tranzystorek-io
@ 2023-02-15 17:27 ` tranzystorek-io
2023-02-16 19:17 ` tranzystorek-io
` (26 subsequent siblings)
94 siblings, 0 replies; 96+ messages in thread
From: tranzystorek-io @ 2023-02-15 17:27 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 1171 bytes --]
There is an updated pull request by tranzystorek-io against master on the void-packages repository
https://github.com/tranzystorek-io/void-packages llvm15
https://github.com/void-linux/void-packages/pull/40821
[WIP] LLVM 15
[ci skip]
TODO:
- [ ] Adjust patches marked as `.patch.skip`
- [x] Make libomp a shlib (change so file name and install a symlink)
- [x] Avoid creating triplet dirs under /usr/
TODO LLVM rdeps:
- [ ] clazy (breaking changes in clang API)
- [x] beignet (https://github.com/void-linux/void-packages/pull/41529)
- [ ] ispc (1.18.1 supports LLVM `<= 14`)
- [ ] ldc (1.30.0 supports LLVM `<= 14`)
- [ ] ghdl (2.0.0 supports LLVM `<= 14`)
- [x] qt
- [ ] qtcreator (breaking changes in clang-format API)
- [x] shiboken2 (tests failing with llvm15)
- [x] bpftrace (https://github.com/void-linux/void-packages/pull/39002)
- [x] libclc (tests fail with unresolved calls https://gist.githubusercontent.com/tranzystorek-io/a2aa8a0d8010af5299f7d1ff9f82c22b/raw/6d316d99d6079990b73ae77d274dd120b9560589/LastTest.log) -> removed clspv
- [x] zig
A patch file from https://github.com/void-linux/void-packages/pull/40821.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-llvm15-40821.patch --]
[-- Type: text/x-diff, Size: 82967 bytes --]
From cc2eed74c2b16ca79fd5d987d9661440ed1e1282 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Sun, 18 Dec 2022 00:36:59 +0100
Subject: [PATCH 01/19] New package: llvm15-15.0.7
---
common/shlibs | 3 +
srcpkgs/libllvm15 | 1 +
.../llvm15/files/llvm-Config-llvm-config.h | 9 +
...clang-001-fix-unwind-chain-inclusion.patch | 44 ++
.../patches/clang-002-add-musl-triples.patch | 115 +++++
.../clang-003-ppc64-dynamic-linker-path.patch | 13 +
.../patches/clang-004-ppc64-musl-elfv2.patch | 48 ++
.../compiler-rt-sanitizer-ppc64-musl.patch | 35 ++
srcpkgs/llvm15/patches/libcxx-musl.patch | 26 ++
srcpkgs/llvm15/patches/libcxx-ppc.patch | 22 +
.../llvm15/patches/libcxx-ssp-nonshared.patch | 11 +
srcpkgs/llvm15/patches/libcxxabi-dl.patch | 25 +
srcpkgs/llvm15/patches/libcxxabi-musl.patch | 37 ++
srcpkgs/llvm15/patches/libomp-soname.patch | 12 +
srcpkgs/llvm15/patches/lldb-musl.patch | 40 ++
srcpkgs/llvm15/patches/llvm-001-musl.patch | 57 +++
.../patches/llvm-002-musl-ppc64-elfv2.patch | 30 ++
.../patches/llvm-003-ppc-secureplt.patch | 11 +
.../patches/llvm-004-override-opt.patch | 18 +
.../llvm15/patches/llvm-005-ppc-bigpic.patch | 36 ++
.../patches/llvm-006-aarch64-mf_exec.patch | 25 +
srcpkgs/llvm15/template | 442 ++++++++++++++++++
srcpkgs/llvm15/update | 3 +
23 files changed, 1063 insertions(+)
create mode 120000 srcpkgs/libllvm15
create mode 100644 srcpkgs/llvm15/files/llvm-Config-llvm-config.h
create mode 100644 srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch
create mode 100644 srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch
create mode 100644 srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch
create mode 100644 srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch
create mode 100644 srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch
create mode 100644 srcpkgs/llvm15/patches/libcxx-musl.patch
create mode 100644 srcpkgs/llvm15/patches/libcxx-ppc.patch
create mode 100644 srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch
create mode 100644 srcpkgs/llvm15/patches/libcxxabi-dl.patch
create mode 100644 srcpkgs/llvm15/patches/libcxxabi-musl.patch
create mode 100644 srcpkgs/llvm15/patches/libomp-soname.patch
create mode 100644 srcpkgs/llvm15/patches/lldb-musl.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-001-musl.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-004-override-opt.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch
create mode 100644 srcpkgs/llvm15/template
create mode 100644 srcpkgs/llvm15/update
diff --git a/common/shlibs b/common/shlibs
index f9a0d7794b79..501dbbce7846 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -990,6 +990,9 @@ libclang.so.12 libclang-12.0.0_1
libclang-cpp.so.12 libclang-cpp-12.0.0_1
libLLVM-11.so libllvm11-11.0.0_1
libLLVM-12.so libllvm12-12.0.0_1
+libLLVM-15.so libllvm15-15.0.7_1
+libomp.so.5 libomp-15.0.7_1
+libomptarget.so.15 libomp-15.0.7_1
libisofs.so.6 libisofs-0.6.24_1
libmpack.so.0 libmpack-1.0.5_1
libGeoIP.so.1 libgeoip-1.4.8_1
diff --git a/srcpkgs/libllvm15 b/srcpkgs/libllvm15
new file mode 120000
index 000000000000..ad57a969b9f9
--- /dev/null
+++ b/srcpkgs/libllvm15
@@ -0,0 +1 @@
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm15/files/llvm-Config-llvm-config.h b/srcpkgs/llvm15/files/llvm-Config-llvm-config.h
new file mode 100644
index 000000000000..2fa08c9be696
--- /dev/null
+++ b/srcpkgs/llvm15/files/llvm-Config-llvm-config.h
@@ -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
diff --git a/srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch b/srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch
new file mode 100644
index 000000000000..e4eaa7783e7a
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch
@@ -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
diff --git a/srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch b/srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch
new file mode 100644
index 000000000000..0ef4c7e75d6b
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch
@@ -0,0 +1,115 @@
+--- a/clang/lib/Driver/ToolChains/Gnu.cpp
++++ b/clang/lib/Driver/ToolChains/Gnu.cpp
+@@ -2086,7 +2086,8 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
+ static const char *const ARMHFTriples[] = {"arm-linux-gnueabihf",
+ "armv7hl-redhat-linux-gnueabi",
+ "armv6hl-suse-linux-gnueabi",
+- "armv7hl-suse-linux-gnueabi"};
++ "armv7hl-suse-linux-gnueabi",
++ "armv7l-linux-gnueabihf"};
+ static const char *const ARMebLibDirs[] = {"/lib"};
+ static const char *const ARMebTriples[] = {"armeb-linux-gnueabi",
+ "armeb-linux-androideabi"};
+@@ -2153,8 +2154,7 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
+ "powerpc64-suse-linux", "powerpc-montavista-linuxspe"};
+ static const char *const PPCLELibDirs[] = {"/lib32", "/lib"};
+ static const char *const PPCLETriples[] = {"powerpcle-linux-gnu",
+- "powerpcle-unknown-linux-gnu",
+- "powerpcle-linux-musl"};
++ "powerpcle-unknown-linux-gnu"};
+
+ static const char *const PPC64LibDirs[] = {"/lib64", "/lib"};
+ static const char *const PPC64Triples[] = {
+@@ -2235,6 +2235,92 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
+ return;
+ }
+
++ if (TargetTriple.isMusl()) {
++ static const char *const AArch64MuslTriples[] = {"aarch64-linux-musl"};
++ static const char *const ARMHFMuslTriples[] = {
++ "arm-linux-musleabihf", "armv7l-linux-musleabihf"
++ };
++ static const char *const ARMMuslTriples[] = {"arm-linux-musleabi"};
++ static const char *const X86_64MuslTriples[] = {"x86_64-linux-musl"};
++ static const char *const X86MuslTriples[] = {"i686-linux-musl"};
++ static const char *const MIPSMuslTriples[] = {
++ "mips-linux-musl", "mipsel-linux-musl",
++ "mipsel-linux-muslhf", "mips-linux-muslhf"
++ };
++ static const char *const PPCMuslTriples[] = {"powerpc-linux-musl"};
++ static const char *const PPCLEMuslTriples[] = {"powerpcle-linux-musl"};
++ static const char *const PPC64MuslTriples[] = {"powerpc64-linux-musl"};
++ static const char *const PPC64LEMuslTriples[] = {"powerpc64le-linux-musl"};
++ static const char *const RISCV64MuslTriples[] = {"riscv64-linux-musl"};
++
++ switch (TargetTriple.getArch()) {
++ case llvm::Triple::aarch64:
++ LibDirs.append(begin(AArch64LibDirs), end(AArch64LibDirs));
++ TripleAliases.append(begin(AArch64MuslTriples), end(AArch64MuslTriples));
++ BiarchLibDirs.append(begin(AArch64LibDirs), end(AArch64LibDirs));
++ BiarchTripleAliases.append(begin(AArch64MuslTriples), end(AArch64MuslTriples));
++ break;
++ case llvm::Triple::arm:
++ LibDirs.append(begin(ARMLibDirs), end(ARMLibDirs));
++ if (TargetTriple.getEnvironment() == llvm::Triple::MuslEABIHF) {
++ TripleAliases.append(begin(ARMHFMuslTriples), end(ARMHFMuslTriples));
++ } else {
++ TripleAliases.append(begin(ARMMuslTriples), end(ARMMuslTriples));
++ }
++ break;
++ case llvm::Triple::x86_64:
++ LibDirs.append(begin(X86_64LibDirs), end(X86_64LibDirs));
++ TripleAliases.append(begin(X86_64MuslTriples), end(X86_64MuslTriples));
++ BiarchLibDirs.append(begin(X86LibDirs), end(X86LibDirs));
++ BiarchTripleAliases.append(begin(X86MuslTriples), end(X86MuslTriples));
++ break;
++ case llvm::Triple::x86:
++ LibDirs.append(begin(X86LibDirs), end(X86LibDirs));
++ TripleAliases.append(begin(X86MuslTriples), end(X86MuslTriples));
++ BiarchLibDirs.append(begin(X86_64LibDirs), end(X86_64LibDirs));
++ BiarchTripleAliases.append(begin(X86_64MuslTriples), end(X86_64MuslTriples));
++ break;
++ case llvm::Triple::mips:
++ LibDirs.append(begin(MIPSLibDirs), end(MIPSLibDirs));
++ TripleAliases.append(begin(MIPSMuslTriples), end(MIPSMuslTriples));
++ break;
++ case llvm::Triple::ppc:
++ LibDirs.append(begin(PPCLibDirs), end(PPCLibDirs));
++ TripleAliases.append(begin(PPCMuslTriples), end(PPCMuslTriples));
++ BiarchLibDirs.append(begin(PPC64LibDirs), end(PPC64LibDirs));
++ BiarchTripleAliases.append(begin(PPC64MuslTriples), end(PPC64MuslTriples));
++ break;
++ case llvm::Triple::ppcle:
++ LibDirs.append(begin(PPCLELibDirs), end(PPCLELibDirs));
++ TripleAliases.append(begin(PPCLEMuslTriples), end(PPCLEMuslTriples));
++ BiarchLibDirs.append(begin(PPC64LELibDirs), end(PPC64LELibDirs));
++ BiarchTripleAliases.append(begin(PPC64LEMuslTriples), end(PPC64LEMuslTriples));
++ break;
++ case llvm::Triple::ppc64:
++ LibDirs.append(begin(PPC64LibDirs), end(PPC64LibDirs));
++ TripleAliases.append(begin(PPC64MuslTriples), end(PPC64MuslTriples));
++ BiarchLibDirs.append(begin(PPCLibDirs), end(PPCLibDirs));
++ BiarchTripleAliases.append(begin(PPCMuslTriples), end(PPCMuslTriples));
++ break;
++ case llvm::Triple::ppc64le:
++ LibDirs.append(begin(PPC64LELibDirs), end(PPC64LELibDirs));
++ TripleAliases.append(begin(PPC64LEMuslTriples), end(PPC64LEMuslTriples));
++ BiarchLibDirs.append(begin(PPCLELibDirs), end(PPCLELibDirs));
++ BiarchTripleAliases.append(begin(PPCLEMuslTriples), end(PPCLEMuslTriples));
++ break;
++ case llvm::Triple::riscv64:
++ LibDirs.append(begin(RISCV64LibDirs), end(RISCV64LibDirs));
++ TripleAliases.append(begin(RISCV64MuslTriples), end(RISCV64MuslTriples));
++ break;
++ default:
++ break;
++ }
++ TripleAliases.push_back(TargetTriple.str());
++ if (TargetTriple.str() != BiarchTriple.str())
++ BiarchTripleAliases.push_back(BiarchTriple.str());
++ return;
++ }
++
+ // Android targets should not use GNU/Linux tools or libraries.
+ if (TargetTriple.isAndroid()) {
+ static const char *const AArch64AndroidTriples[] = {
diff --git a/srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch b/srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch
new file mode 100644
index 000000000000..4ad6412d1e6c
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch
@@ -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 =
diff --git a/srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch b/srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch
new file mode 100644
index 000000000000..21fc8003c5f1
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch
@@ -0,0 +1,48 @@
+--- a/clang/lib/Basic/Targets/PPC.h
++++ b/clang/lib/Basic/Targets/PPC.h
+@@ -415,11 +415,10 @@ public:
+ LongDoubleFormat = &llvm::APFloat::IEEEdouble();
+ } else if ((Triple.getArch() == llvm::Triple::ppc64le)) {
+ DataLayout = "e-m:e-i64:64-n32:64";
+- ABI = "elfv2";
+ } else {
+ DataLayout = "E-m:e-i64:64-n32:64";
+- ABI = "elfv1";
+ }
++ ABI = "elfv2";
+
+ if (Triple.isOSFreeBSD() || Triple.isOSOpenBSD() || Triple.isMusl()) {
+ LongDoubleWidth = LongDoubleAlign = 64;
+--- a/clang/lib/CodeGen/TargetInfo.cpp
++++ b/clang/lib/CodeGen/TargetInfo.cpp
+@@ -10927,9 +10927,9 @@ const TargetCodeGenInfo &CodeGenModule::getTargetCodeGenInfo() {
+ return SetCGInfo(new AIXTargetCodeGenInfo(Types, /*Is64Bit*/ true));
+
+ if (Triple.isOSBinFormatELF()) {
+- PPC64_SVR4_ABIInfo::ABIKind Kind = PPC64_SVR4_ABIInfo::ELFv1;
+- if (getTarget().getABI() == "elfv2")
+- Kind = PPC64_SVR4_ABIInfo::ELFv2;
++ PPC64_SVR4_ABIInfo::ABIKind Kind = PPC64_SVR4_ABIInfo::ELFv2;
++ if (getTarget().getABI() == "elfv1")
++ Kind = PPC64_SVR4_ABIInfo::ELFv1;
+ bool IsSoftFloat = CodeGenOpts.FloatABI == "soft";
+
+ return SetCGInfo(
+--- a/clang/lib/Driver/ToolChains/Clang.cpp
++++ b/clang/lib/Driver/ToolChains/Clang.cpp
+@@ -1920,14 +1920,7 @@ void Clang::AddPPCTargetArgs(const ArgList &Args,
+ const llvm::Triple &T = getToolChain().getTriple();
+ if (T.isOSBinFormatELF()) {
+ switch (getToolChain().getArch()) {
+- case llvm::Triple::ppc64: {
+- if ((T.isOSFreeBSD() && T.getOSMajorVersion() >= 13) ||
+- T.isOSOpenBSD() || T.isMusl())
+- ABIName = "elfv2";
+- else
+- ABIName = "elfv1";
+- break;
+- }
++ case llvm::Triple::ppc64:
+ case llvm::Triple::ppc64le:
+ ABIName = "elfv2";
+ break;
diff --git a/srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch b/srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch
new file mode 100644
index 000000000000..360cfc1ba7f1
--- /dev/null
+++ b/srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch
@@ -0,0 +1,35 @@
+--- 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__) || SANITIZER_RISCV64
++ defined(__hexagon__) || defined(__powerpc__) || 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_ANDROID
++#if (defined(__aarch64__) || defined(__powerpc__) || SANITIZER_RISCV64) && !SANITIZER_ANDROID
+ // GLIBC 2.20+ sys/user does not include asm/ptrace.h
+ # include <asm/ptrace.h>
+ #endif
diff --git a/srcpkgs/llvm15/patches/libcxx-musl.patch b/srcpkgs/llvm15/patches/libcxx-musl.patch
new file mode 100644
index 000000000000..bbd31ffc2cb1
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxx-musl.patch
@@ -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,
+ typename remove_reference<decltype(errno)>::type __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
+ typename remove_reference<decltype(errno)>::type __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,
+ typename remove_reference<decltype(errno)>::type __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
+ typename remove_reference<decltype(errno)>::type __current_errno = errno;
+ if (__current_errno == 0)
+ errno = __save_errno;
diff --git a/srcpkgs/llvm15/patches/libcxx-ppc.patch b/srcpkgs/llvm15/patches/libcxx-ppc.patch
new file mode 100644
index 000000000000..7a92f8004e1c
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxx-ppc.patch
@@ -0,0 +1,22 @@
+This ensures `is_iec559` is defined correctly under all long double ABIs,
+including musl and its 64-bit long double. Also, `__ppc__` or `__ppc64__`
+is not defined on gcc.
+
+--- a/libcxx/include/limits
++++ b/libcxx/include/limits
+@@ -426,8 +426,14 @@ protected:
+ _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type signaling_NaN() _NOEXCEPT {return __builtin_nansl("");}
+ _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type denorm_min() _NOEXCEPT {return __LDBL_DENORM_MIN__;}
+
+-#if (defined(__ppc__) || defined(__ppc64__))
++#if defined(__powerpc__) || defined(__powerpc64__)
++#if (__LDBL_MAX_EXP__ > __DBL_MAX_EXP__) || (__LDBL_MANT_DIG__ == __DBL_MANT_DIG__)
++ /* IEEE 754 quadruple or double precision */
++ static _LIBCPP_CONSTEXPR const bool is_iec559 = true;
++#else
++ /* 128-bit IBM double-double */
+ static _LIBCPP_CONSTEXPR const bool is_iec559 = false;
++#endif
+ #else
+ static _LIBCPP_CONSTEXPR const bool is_iec559 = true;
+ #endif
diff --git a/srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch b/srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch
new file mode 100644
index 000000000000..70292beb2fcd
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch
@@ -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()
diff --git a/srcpkgs/llvm15/patches/libcxxabi-dl.patch b/srcpkgs/llvm15/patches/libcxxabi-dl.patch
new file mode 100644
index 000000000000..3a15f9db8c98
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxxabi-dl.patch
@@ -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 @@
+ target_link_libraries(${target} PRIVATE m)
+ endif()
+
++ if (LIBCXX_HAS_C_LIB)
++ target_link_libraries(${target} PRIVATE dl)
++ endif()
++
+ if (LIBCXX_HAS_RT_LIB)
+ target_link_libraries(${target} PRIVATE rt)
+ endif()
diff --git a/srcpkgs/llvm15/patches/libcxxabi-musl.patch b/srcpkgs/llvm15/patches/libcxxabi-musl.patch
new file mode 100644
index 000000000000..55bf6f5aaa08
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxxabi-musl.patch
@@ -0,0 +1,37 @@
+diff --git a/libcxx/include/__support/musl/xlocale.h b/libcxx/include/__support/musl/xlocale.h
+index e674a41fa..f546119b9 100644
+--- a/libcxx/include/__support/musl/xlocale.h
++++ b/libcxx/include/__support/musl/xlocale.h
+@@ -24,27 +24,27 @@
+ extern "C" {
+ #endif
+
+-inline _LIBCPP_HIDE_FROM_ABI long long
++static inline long long
+ strtoll_l(const char *__nptr, char **__endptr, int __base, locale_t) {
+ return ::strtoll(__nptr, __endptr, __base);
+ }
+
+-inline _LIBCPP_HIDE_FROM_ABI unsigned long long
++static inline unsigned long long
+ strtoull_l(const char *__nptr, char **__endptr, int __base, locale_t) {
+ return ::strtoull(__nptr, __endptr, __base);
+ }
+
+-inline _LIBCPP_HIDE_FROM_ABI long long
++static inline long long
+ wcstoll_l(const wchar_t *__nptr, wchar_t **__endptr, int __base, locale_t) {
+ return ::wcstoll(__nptr, __endptr, __base);
+ }
+
+-inline _LIBCPP_HIDE_FROM_ABI unsigned long long
++static inline unsigned long long
+ wcstoull_l(const wchar_t *__nptr, wchar_t **__endptr, int __base, locale_t) {
+ return ::wcstoull(__nptr, __endptr, __base);
+ }
+
+-inline _LIBCPP_HIDE_FROM_ABI long double
++static inline long double
+ wcstold_l(const wchar_t *__nptr, wchar_t **__endptr, locale_t) {
+ return ::wcstold(__nptr, __endptr);
+ }
diff --git a/srcpkgs/llvm15/patches/libomp-soname.patch b/srcpkgs/llvm15/patches/libomp-soname.patch
new file mode 100644
index 000000000000..9a622cd9254c
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libomp-soname.patch
@@ -0,0 +1,12 @@
+diff --git a/openmp/runtime/src/CMakeLists.txt b/openmp/runtime/src/CMakeLists.txt
+index df1ca9d90..9d2c3b7b9 100644
+--- a/openmp/runtime/src/CMakeLists.txt
++++ b/openmp/runtime/src/CMakeLists.txt
+@@ -150,6 +150,7 @@ libomp_get_libflags(LIBOMP_CONFIGURED_LIBFLAGS)
+ # Build libomp library. Add LLVMSupport dependency if building in-tree with libomptarget profiling enabled.
+ if(OPENMP_STANDALONE_BUILD OR (NOT OPENMP_ENABLE_LIBOMP_PROFILING))
+ add_library(omp ${LIBOMP_LIBRARY_KIND} ${LIBOMP_SOURCE_FILES})
++ set_target_properties(omp PROPERTIES VERSION ${LIBOMP_VERSION_MAJOR} SOVERSION ${LIBOMP_VERSION_MAJOR})
+ # Linking command will include libraries in LIBOMP_CONFIGURED_LIBFLAGS
+ target_link_libraries(omp ${LIBOMP_CONFIGURED_LIBFLAGS} ${LIBOMP_DL_LIBS})
+ else()
diff --git a/srcpkgs/llvm15/patches/lldb-musl.patch b/srcpkgs/llvm15/patches/lldb-musl.patch
new file mode 100644
index 000000000000..026c5e1e61ba
--- /dev/null
+++ b/srcpkgs/llvm15/patches/lldb-musl.patch
@@ -0,0 +1,40 @@
+--- a/lldb/source/Plugins/Process/Linux/Procfs.h
++++ b/lldb/source/Plugins/Process/Linux/Procfs.h
+@@ -10,6 +10,7 @@
+ // sys/procfs.h on Android/Linux for all supported architectures.
+
+ #include <sys/ptrace.h>
++#include <asm/ptrace.h>
+
+ #include "lldb/lldb-types.h"
+
+@@ -17,23 +18,13 @@
+
+ #include <vector>
+
+-#ifdef __ANDROID__
+-#if defined(__arm64__) || defined(__aarch64__)
+-typedef unsigned long elf_greg_t;
+-typedef elf_greg_t
+- elf_gregset_t[(sizeof(struct user_pt_regs) / sizeof(elf_greg_t))];
+-typedef struct user_fpsimd_state elf_fpregset_t;
+-#ifndef NT_FPREGSET
+-#define NT_FPREGSET NT_PRFPREG
+-#endif // NT_FPREGSET
+-#elif defined(__mips__)
+-#ifndef NT_FPREGSET
+-#define NT_FPREGSET NT_PRFPREG
+-#endif // NT_FPREGSET
+-#endif
+-#else // __ANDROID__
++#if !defined(__GLIBC__) && defined(__powerpc__)
++#define pt_regs musl_pt_regs
++#include <sys/procfs.h>
++#undef pt_regs
++#else
+ #include <sys/procfs.h>
+-#endif // __ANDROID__
++#endif
+
+ namespace lldb_private {
+ namespace process_linux {
diff --git a/srcpkgs/llvm15/patches/llvm-001-musl.patch b/srcpkgs/llvm15/patches/llvm-001-musl.patch
new file mode 100644
index 000000000000..f2a3f8d62813
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-001-musl.patch
@@ -0,0 +1,57 @@
+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;
+diff --git a/lib/Support/Unix/DynamicLibrary.inc b/lib/Support/Unix/DynamicLibrary.inc
+index a2a37996..2f86c470 100644
+--- a/llvm/lib/Support/Unix/DynamicLibrary.inc
++++ b/llvm/lib/Support/Unix/DynamicLibrary.inc
+@@ -102,7 +102,7 @@ static void *DoSearch(const char* SymbolName) {
+
+ // This macro returns the address of a well-known, explicit symbol
+ #define EXPLICIT_SYMBOL(SYM) \
+- if (!strcmp(SymbolName, #SYM)) return &SYM
++ if (!strcmp(SymbolName, #SYM)) return (void *)&SYM
+
+ // Under glibc we have a weird situation. The stderr/out/in symbols are both
+ // macros and global variables because of standards requirements. So, we
+diff --git a/utils/unittest/googletest/src/gtest.cc b/utils/unittest/googletest/src/gtest.cc
+index d882ab2e..f1fb12d0 100644
+--- a/llvm/utils/unittest/googletest/src/gtest.cc
++++ b/llvm/utils/unittest/googletest/src/gtest.cc
+@@ -128,6 +128,7 @@
+
+ #if GTEST_CAN_STREAM_RESULTS_
+ # include <arpa/inet.h> // NOLINT
++# include <sys/socket.h> // NOLINT
+ # include <netdb.h> // NOLINT
+ # include <sys/socket.h> // NOLINT
+ # include <sys/types.h> // NOLINT
diff --git a/srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch b/srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch
new file mode 100644
index 000000000000..0071d964bd37
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch
@@ -0,0 +1,30 @@
+This patches LLVM to use ELFv2 on ppc64 unconditionally unless overridden. We
+need this because unlike most distros we use ELFv2 for both glibc and musl
+on big endian ppc64.
+
+diff --git a/lib/Target/PowerPC/PPCTargetMachine.cpp b/lib/Target/PowerPC/PPCTargetMachine.cpp
+index 0634833e..b7cbc2e7 100644
+--- a/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp
++++ b/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp
+@@ -222,9 +222,8 @@ static PPCTargetMachine::PPCABI computeTargetABI(const Triple &TT,
+
+ switch (TT.getArch()) {
+ case Triple::ppc64le:
+- return PPCTargetMachine::PPC_ABI_ELFv2;
+ case Triple::ppc64:
+- return PPCTargetMachine::PPC_ABI_ELFv1;
++ return PPCTargetMachine::PPC_ABI_ELFv2;
+ default:
+ return PPCTargetMachine::PPC_ABI_UNKNOWN;
+ }
+diff --git a/test/CodeGen/PowerPC/ppc64-elf-abi.ll b/test/CodeGen/PowerPC/ppc64-elf-abi.ll
+index 8b1cf6b5..296a2afa 100644
+--- a/llvm/test/CodeGen/PowerPC/ppc64-elf-abi.ll
++++ b/llvm/test/CodeGen/PowerPC/ppc64-elf-abi.ll
+@@ -1,4 +1,5 @@
+-; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv1
++; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv2
++; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-musl < %s | FileCheck %s -check-prefix=CHECK-ELFv2
+ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu -target-abi elfv1 < %s | FileCheck %s -check-prefix=CHECK-ELFv1
+ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu -target-abi elfv2 < %s | FileCheck %s -check-prefix=CHECK-ELFv2
+ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv2
diff --git a/srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch b/srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch
new file mode 100644
index 000000000000..b5d15974375d
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch
@@ -0,0 +1,11 @@
+--- a/llvm/lib/Target/PowerPC/PPCSubtarget.cpp
++++ b/llvm/lib/Target/PowerPC/PPCSubtarget.cpp
+@@ -165,7 +165,7 @@ void PPCSubtarget::initSubtargetFeatures(StringRef CPU, StringRef FS) {
+
+ if ((TargetTriple.isOSFreeBSD() && TargetTriple.getOSMajorVersion() >= 13) ||
+ TargetTriple.isOSNetBSD() || TargetTriple.isOSOpenBSD() ||
+- TargetTriple.isMusl())
++ isTargetLinux())
+ SecurePlt = true;
+
+ if (HasSPE && IsPPC64)
diff --git a/srcpkgs/llvm15/patches/llvm-004-override-opt.patch b/srcpkgs/llvm15/patches/llvm-004-override-opt.patch
new file mode 100644
index 000000000000..51d0e4b31b32
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-004-override-opt.patch
@@ -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)
diff --git a/srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch b/srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch
new file mode 100644
index 000000000000..d332687b9d92
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch
@@ -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);
diff --git a/srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch b/srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch
new file mode 100644
index 000000000000..a00abd216665
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch
@@ -0,0 +1,25 @@
+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__) || defined (__ppc__) || \
+- defined(_POWER) || defined(_ARCH_PPC))
++ defined(_POWER) || defined(_ARCH_PPC) || (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
diff --git a/srcpkgs/llvm15/template b/srcpkgs/llvm15/template
new file mode 100644
index 000000000000..4d2777451e24
--- /dev/null
+++ b/srcpkgs/llvm15/template
@@ -0,0 +1,442 @@
+# Template file for 'llvm15'
+pkgname=llvm15
+version=15.0.7
+revision=1
+build_wrksrc=llvm
+build_style=cmake
+_ext_suffix=".cpython-${py3_ver/./}-linux-${XBPS_TARGET_LIBC/glibc/gnu}.so"
+configure_args="
+ -DCMAKE_BUILD_TYPE=Release -Wno-dev
+ -DENABLE_LINKER_BUILD_ID=YES
+ -DLLDB_USE_SYSTEM_SIX=YES
+ -DLIBCXX_CXX_ABI=libcxxabi
+ -DLIBCXX_ENABLE_STATIC_ABI_LIBRARY=YES
+ -DLIBCXXABI_USE_LLVM_UNWINDER=YES
+ -DLIBCXXABI_ENABLE_STATIC_UNWINDER=YES
+ -DLIBOMP_ENABLE_SHARED=YES
+ -DLIBOMP_INSTALL_ALIASES=NO
+ -DLLVM_INCLUDE_DOCS=YES
+ -DLLVM_BUILD_DOCS=YES
+ -DLLVM_ENABLE_SPHINX=YES
+ -DSPHINX_WARNINGS_AS_ERRORS=NO
+ -DLLVM_INSTALL_UTILS=YES
+ -DLLVM_BUILD_LLVM_DYLIB=YES
+ -DLLVM_LINK_LLVM_DYLIB=YES
+ -DLLVM_ENABLE_RTTI=YES
+ -DLLVM_ENABLE_FFI=YES
+ -DLLVM_BINUTILS_INCDIR=/usr/include
+ -DLLVM_ENABLE_PER_TARGET_RUNTIME_DIR=NO
+ -DLLDB_PYTHON_RELATIVE_PATH=lib/python${py3_ver}/site-packages
+ -DLLDB_PYTHON_EXE_RELATIVE_PATH=bin/python${py3_ver}
+ -DLLDB_PYTHON_EXT_SUFFIX=$_ext_suffix"
+hostmakedepends="perl python3 zlib-devel libffi-devel swig python3-Sphinx
+ python3-recommonmark python3-sphinx-automodapi"
+makedepends="python3-devel zlib-devel elfutils-devel libffi-devel libedit-devel
+ libxml2-devel binutils-devel libatomic-devel"
+depends="libllvm15>=${version}_${revision}"
+short_desc="Low Level Virtual Machine"
+maintainer="Orphaned <orphan@voidlinux.org>"
+license="Apache-2.0"
+homepage="https://www.llvm.org"
+distfiles="https://github.com/llvm/llvm-project/releases/download/llvmorg-${version}/llvm-project-${version}.src.tar.xz"
+checksum=8b5fcb24b4128cf04df1b0b9410ce8b1a729cb3c544e6da885d234280dedeac6
+lib32disabled=yes
+python_version=3
+
+if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
+ configure_args+=" -DLIBCXX_HAS_MUSL_LIBC=YES
+ -DCOMPILER_RT_BUILD_GWP_ASAN=OFF"
+fi
+
+# "operand out of range" assembler failures
+case "$XBPS_TARGET_MACHINE" in
+ ppc64*) ;;
+ ppc*) configure_args+=" -DCLANG_ENABLE_CLANGD=OFF" ;;
+esac
+
+_enabled_projects="clang;clang-tools-extra;compiler-rt;libcxx;libcxxabi;libunwind;lld"
+
+_lldb_enable=yes
+_libomp_enable=no
+
+case "$XBPS_TARGET_MACHINE" in
+ ppc64le*) ;;
+ ppc*|i686*|riscv64*) _lldb_enable=no ;;
+esac
+
+case "$XBPS_TARGET_MACHINE" in
+ x86_64*|aarch64*|ppc64*) _libomp_enable=yes;;
+esac
+
+subpackages="clang-tools-extra"
+
+# must go before clang
+if [ "$_libomp_enable" = "yes" ]; then
+ _enabled_projects+=";openmp"
+ subpackages+=" libomp libomp-devel"
+ # because of cmake nonsense referencing libomptarget.so.*
+ depends+=" libomp>=${version}_${revision}"
+ if [ "$CROSS_BUILD" ]; then
+ # Seems to require a full host llvm/clang build
+ configure_args+=" -DLIBOMPTARGET_BUILD_CUDA_PLUGIN=OFF"
+ configure_args+=" -DLIBOMPTARGET_BUILD_AMDGPU_PLUGIN=OFF"
+ fi
+fi
+
+subpackages+=" clang clang-analyzer libclang libclang-cpp
+ llvm-libunwind llvm-libunwind-devel libcxx libcxx-devel
+ libcxxabi libcxxabi-devel libllvm15"
+
+if [ "$_lldb_enable" = "yes" ]; then
+ # XXX fails to cross compile due to python
+ _enabled_projects+=";lldb"
+ subpackages+=" lldb lldb-devel"
+fi
+
+subpackages+=" lld lld-devel"
+
+configure_args+=" -DLLVM_ENABLE_PROJECTS=${_enabled_projects}"
+
+post_patch() {
+ if [ "$_lldb_enable" = "yes" ]; then
+ if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
+ vsed -i 's|__ptrace_request|int|g' \
+ ${wrksrc}/lldb/source/Plugins/Process/Linux/NativeProcessLinux.cpp
+ fi
+ # disable docs for lldb as they fail to generate
+ vsed -i '/add_subdirectory(docs)/d' \
+ ${wrksrc}/lldb/CMakeLists.txt
+ fi
+
+ # update config.guess for better platform detection
+ cp $XBPS_COMMONDIR/environment/configure/automake/config.guess \
+ ${wrksrc}/llvm/cmake
+
+ # fix linker failures on some archs
+ vsed -i 's,check_library_exists(gcc_s .*,set(LIBCXXABI_HAS_GCC_S_LIB ON),' \
+ ${wrksrc}/libcxxabi/cmake/config-ix.cmake
+ vsed -i 's,check_library_exists(gcc .*,set(LIBCXXABI_HAS_GCC_LIB ON),' \
+ ${wrksrc}/libcxxabi/cmake/config-ix.cmake
+
+ # need libssp_nonshared on some musl platforms (because of nodefaultlibs)
+ case "$XBPS_TARGET_MACHINE" in
+ ppc64*) ;;
+ ppc*-musl|i686-musl|mips*-musl)
+ vsed -i 's,^# Setup flags.$,add_library_flags(ssp_nonshared),' \
+ ${wrksrc}/libunwind/src/CMakeLists.txt
+ vsed -i 's,^# Setup flags.$,add_library_flags(ssp_nonshared),' \
+ ${wrksrc}/libcxxabi/src/CMakeLists.txt
+ vsed -i 's,#ssp,,' ${wrksrc}/libcxx/CMakeLists.txt
+ ;;
+ esac
+
+ case "$XBPS_TARGET_MACHINE" in
+ arm*-musl|i686-musl) # sanitizer code is broken since it duplicates some libc bits
+ vsed -i 's/set(COMPILER_RT_HAS_SANITIZER_COMMON TRUE)/set(COMPILER_RT_HAS_SANITIZER_COMMON FALSE)/' \
+ ${wrksrc}/compiler-rt/cmake/config-ix.cmake
+ ;;
+ esac
+}
+
+pre_configure() {
+ local triplet
+
+ # Vastly reduce size of debugging symbols:
+ CFLAGS=${CFLAGS/ -g/ -g1}
+ CXXFLAGS=${CXXFLAGS/ -g/ -g1}
+
+ # since gcc9, the build likes to blow up for ppc32 apparently because
+ # of clang being too large for a 24-bit relative call to the PLT, so
+ # optimize for size instead
+ case "$XBPS_TARGET_MACHINE" in
+ ppc64*) ;;
+ mips*-musl|ppc*) configure_args+=" -DVOID_CXX_OPT_FLAGS=-Os" ;;
+ esac
+
+ if [ "$CROSS_BUILD" ]; then
+ msg_normal "Building host tblgen\n"
+ mkdir -p build/HOST
+ cd build/HOST
+ CC="$BUILD_CC" CXX="$BUILD_CXX" CFLAGS="$BUILD_CFLAGS" \
+ CXXFLAGS="$BUILD_CXXFLAGS" LDFLAGS="$BUILD_LDFLAGS" \
+ cmake ../.. -DCMAKE_BUILD_TYPE=Release \
+ -DLLVM_ENABLE_PROJECTS=${_enabled_projects}
+ make ${makejobs} -C utils/TableGen
+ make ${makejobs} -C tools/clang/utils/TableGen
+ make ${makejobs} -C tools/clang/tools/extra/clang-tidy/misc/ConfusableTable
+ make ${makejobs} -C tools/clang/tools/extra/pseudo/gen
+ [ "$_lldb_enable" = "yes" ] && make ${makejobs} -C tools/lldb/utils/TableGen
+ configure_args+=" -DLLVM_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/llvm-tblgen"
+ configure_args+=" -DCLANG_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/clang-tblgen"
+ configure_args+=" -DCLANG_TIDY_CONFUSABLE_CHARS_GEN=${wrksrc}/llvm/build/HOST/bin/clang-tidy-confusable-chars-gen"
+ configure_args+=" -DCLANG_PSEUDO_GEN=${wrksrc}/llvm/build/HOST/bin/clang-pseudo-gen"
+ [ "$_lldb_enable" = "yes" ] && configure_args+=" -DLLDB_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/lldb-tblgen"
+ cd ../..
+ fi
+
+ case "$XBPS_TARGET_MACHINE" in
+ i686*) _arch="X86";;
+ x86_64*) _arch="X86";;
+ armv5*) _arch="Armv5te";;
+ armv6*) _arch="Armv6";;
+ armv7*) _arch="Armv7";;
+ aarch64*) _arch="AArch64";;
+ mips*) _arch="Mips";;
+ ppc*) _arch="PowerPC";;
+ riscv64*) _arch="RISCV64";;
+ esac
+
+ triplet=${XBPS_CROSS_TRIPLET:-$XBPS_TRIPLET}
+
+ configure_args+=" -DLLVM_TARGET_ARCH=${_arch}"
+ configure_args+=" -DLLVM_HOST_TRIPLE=${triplet}"
+ configure_args+=" -DLLVM_DEFAULT_TARGET_TRIPLE=${triplet}"
+}
+
+do_install() {
+ cd build
+ cmake -DCMAKE_INSTALL_PREFIX=${DESTDIR}/usr -P cmake_install.cmake
+
+ # Required for multilib.
+ if [ "$XBPS_TARGET_MACHINE" = "x86_64" ]; then
+ for _header in llvm-config; do
+ mv ${DESTDIR}/usr/include/llvm/Config/${_header}{,-64}.h
+ vinstall ${FILESDIR}/llvm-Config-${_header}.h 644 \
+ usr/include/llvm/Config ${_header}.h
+ done
+ fi
+
+ # Remove llvm-config-host in cross builds.
+ if [ "$CROSS_BUILD" ]; then
+ rm -f ${DESTDIR}/usr/bin/llvm-config-host
+ fi
+
+ # Install libcxxabi headers
+ vinstall ${wrksrc}/libcxxabi/include/__cxxabi_config.h 644 usr/include
+ vinstall ${wrksrc}/libcxxabi/include/cxxabi.h 644 usr/include
+
+ # Install libunwind headers
+ vinstall ${wrksrc}/libunwind/include/__libunwind_config.h 644 usr/include
+ vinstall ${wrksrc}/libunwind/include/libunwind.h 644 usr/include
+ vinstall ${wrksrc}/libunwind/include/unwind.h 644 usr/include
+ vinstall ${wrksrc}/libunwind/include/mach-o/compact_unwind_encoding.h \
+ 644 usr/include/mach-o
+}
+
+clang-analyzer_package() {
+ pycompile_dirs="usr/share/scan-view"
+ depends="clang-${version}_${revision} python3 perl"
+ short_desc+=" - A source code analysis framework"
+ homepage="https://clang-analyzer.llvm.org/"
+ pkg_install() {
+ vmove "usr/bin/scan-*"
+ vmove "usr/libexec/*analyzer"
+ vmove "usr/share/scan-*"
+ vmove usr/share/man/man1/scan-build.1
+ }
+}
+
+clang-tools-extra_package() {
+ lib32disabled=yes
+ depends="clang-${version}_${revision} python3"
+ short_desc+=" - Extra Clang tools"
+ homepage="https://clang.llvm.org/extra/"
+ pkg_install() {
+ vmove usr/bin/clang-apply-replacements
+ vmove usr/bin/clang-doc
+ vmove usr/bin/clang-include-fixer
+ vmove usr/bin/clang-query
+ vmove usr/bin/clang-rename
+ vmove usr/bin/clang-reorder-fields
+ vmove usr/bin/clang-tidy
+ vmove usr/bin/clangd
+ vmove usr/bin/diagtool
+ vmove usr/bin/find-all-symbols
+ vmove usr/bin/hmaptool
+ vmove usr/bin/modularize
+ vmove usr/bin/pp-trace
+ vmove usr/bin/sancov
+ vmove usr/include/clang-tidy
+ vmove "usr/lib/libclangApplyReplacements*"
+ vmove "usr/lib/libclangDoc*"
+ vmove "usr/lib/libclangIncludeFixer*"
+ vmove "usr/lib/libclangReorderFields*"
+ vmove "usr/lib/libclangQuery*"
+ vmove "usr/lib/libclangTidy*"
+ vmove "usr/share/clang/*include-fixer*"
+ vmove "usr/share/clang/*rename*"
+ vmove "usr/share/clang/*tidy*"
+ vmove usr/share/doc/LLVM/clang-tools
+ vmove usr/share/man/man1/diagtool.1
+ vmove usr/share/man/man1/extraclangtools.1
+ }
+}
+
+clang_package() {
+ lib32disabled=yes
+ depends="libstdc++-devel libgcc-devel binutils ${XBPS_TARGET_LIBC}-devel
+ libclang-${version}_${revision}"
+ short_desc+=" - C language family frontend"
+ homepage="https://clang.llvm.org/"
+ pkg_install() {
+ vmove "usr/bin/*clang*"
+ vmove usr/bin/c-index-test
+ vmove usr/include/clang
+ vmove usr/include/clang-c
+ vmove usr/lib/clang
+ vmove usr/lib/cmake/clang
+ vmove "usr/lib/libclang*.a"
+ vmove "usr/lib/libclang*.so"
+ vmove usr/share/clang
+ vmove usr/share/doc/LLVM/clang
+ vmove usr/share/man/man1/clang.1
+ }
+}
+
+libclang_package() {
+ short_desc+=" - C frontend runtime library"
+ pkg_install() {
+ vmove "usr/lib/libclang.so.*"
+ }
+}
+
+libclang-cpp_package() {
+ short_desc+=" - C frontend runtime library (C++ interface)"
+ pkg_install() {
+ vmove "usr/lib/libclang-cpp.so.*"
+ }
+}
+
+lld_package() {
+ lib32disabled=yes
+ short_desc+=" - linker"
+ homepage="https://lld.llvm.org"
+ pkg_install() {
+ vmove "usr/bin/ld.lld*"
+ vmove "usr/bin/ld64.lld*"
+ vmove "usr/bin/lld*"
+ vmove usr/bin/wasm-ld
+ vmove usr/share/doc/LLVM/lld
+ }
+}
+
+lld-devel_package() {
+ lib32disabled=yes
+ short_desc+=" - linker - development files"
+ homepage="https://lld.llvm.org"
+ depends="lld>=${version}_${revision}"
+ pkg_install() {
+ vmove usr/include/lld
+ vmove usr/lib/cmake/lld
+ vmove "usr/lib/liblld*a"
+ }
+}
+
+lldb_package() {
+ lib32disabled=yes
+ depends+=" python3-six"
+ short_desc+=" - LLDB debugger"
+ homepage="https://lldb.llvm.org/"
+ pkg_install() {
+ vmove "usr/bin/*lldb*"
+ vmove "usr/lib/liblldb*so.*"
+ vmove usr/lib/python*
+ }
+}
+
+lldb-devel_package() {
+ lib32disabled=yes
+ depends="lldb>=${version}_${revision}"
+ short_desc+=" - LLDB debugger - development files"
+ pkg_install() {
+ vmove usr/include/lldb
+ vmove "usr/lib/liblldb*.so"
+ }
+}
+
+llvm-libunwind_package() {
+ short_desc+=" - libunwind"
+ pkg_install() {
+ vmove "usr/lib/libunwind.so.*"
+ }
+}
+
+llvm-libunwind-devel_package() {
+ short_desc+=" - libunwind - development files"
+ depends="llvm-libunwind>=${version}_${revision}"
+ conflicts="libunwind-devel>=0"
+ pkg_install() {
+ vmove usr/include/mach-o
+ vmove "usr/include/*unwind*"
+ vmove "usr/lib/libunwind.a"
+ vmove "usr/lib/libunwind.so"
+ vmove usr/share/doc/LLVM/libunwind
+ }
+}
+
+libcxxabi_package() {
+ short_desc+=" - low level support for libc++"
+ pkg_install() {
+ vmove "usr/lib/libc++abi.so.*"
+ }
+}
+
+libcxxabi-devel_package() {
+ short_desc+=" - low level support for libc++ - development files"
+ depends="libcxxabi>=${version}_${revision}"
+ pkg_install() {
+ vmove "usr/include/*cxxabi*"
+ vmove "usr/lib/libc++abi.so"
+ vmove "usr/lib/libc++abi.a"
+ }
+}
+
+libcxx_package() {
+ short_desc+=" - C++ standard library"
+ pkg_install() {
+ vmove "usr/lib/libc++.so.*"
+ }
+}
+
+libcxx-devel_package() {
+ short_desc+=" - C++ standard library - development files"
+ depends="libcxx>=${version}_${revision}"
+ pkg_install() {
+ vmove usr/include/c++
+ vmove "usr/lib/libc++.so"
+ vmove "usr/lib/libc++.a"
+ vmove "usr/lib/libc++experimental.a"
+ vmove usr/share/doc/LLVM/libcxx
+ }
+}
+
+libomp_package() {
+ short_desc+=" - Clang OpenMP support library"
+ pkg_install() {
+ vmove usr/lib/libarcher.so
+ vmove usr/lib/libompd.so
+ vmove "usr/lib/libomptarget.rtl.*.so"
+ vmove "usr/lib/libomp*.so.*"
+ }
+}
+
+libomp-devel_package() {
+ short_desc+=" - Clang OpenMP support library - development files"
+ depends="libomp>=${version}_${revision}"
+ pkg_install() {
+ vmove "usr/include/omp*.h"
+ vmove "usr/lib/clang/${version}/include/omp*.h"
+ vmove "usr/lib/libarcher*"
+ vmove "usr/lib/libomp*.so"
+ vmove usr/lib/cmake/openmp
+ vmove usr/share/doc/LLVM/openmp
+ vmove usr/share/man/man1/llvmopenmp.1
+ }
+}
+
+libllvm15_package() {
+ short_desc+=" - runtime library"
+ pkg_install() {
+ vmove "usr/lib/libLLVM-*.so*"
+ }
+}
diff --git a/srcpkgs/llvm15/update b/srcpkgs/llvm15/update
new file mode 100644
index 000000000000..e95cf26b3586
--- /dev/null
+++ b/srcpkgs/llvm15/update
@@ -0,0 +1,3 @@
+site="https://github.com/llvm/llvm-project/releases"
+pattern="llvmorg-\K(\d+.){2}\d+(-rc\d+)?"
+ignore="*-rc*"
From cc0c0f8a0c554c5b7d542e30bcf165643c4c2311 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Sun, 18 Dec 2022 00:40:18 +0100
Subject: [PATCH 02/19] llvm: update to 15
---
common/shlibs | 6 +++---
srcpkgs/clang | 2 +-
srcpkgs/clang-analyzer | 2 +-
srcpkgs/clang-tools-extra | 2 +-
srcpkgs/libclang | 2 +-
srcpkgs/libclang-cpp | 2 +-
srcpkgs/libcxx | 2 +-
srcpkgs/libcxx-devel | 2 +-
srcpkgs/libcxxabi | 2 +-
srcpkgs/libcxxabi-devel | 2 +-
srcpkgs/libomp | 2 +-
srcpkgs/libomp-devel | 2 +-
srcpkgs/lld | 2 +-
srcpkgs/lld-devel | 2 +-
srcpkgs/lldb | 2 +-
srcpkgs/lldb-devel | 2 +-
srcpkgs/llvm-libunwind | 2 +-
srcpkgs/llvm-libunwind-devel | 2 +-
srcpkgs/llvm/template | 6 +++---
19 files changed, 23 insertions(+), 23 deletions(-)
diff --git a/common/shlibs b/common/shlibs
index 501dbbce7846..e8056352cef6 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -985,9 +985,9 @@ 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.12 lldb-12.0.0_1
-libclang.so.12 libclang-12.0.0_1
-libclang-cpp.so.12 libclang-cpp-12.0.0_1
+liblldb.so.15 lldb-15.0.7_1
+libclang.so.15 libclang-15.0.7_1
+libclang-cpp.so.15 libclang-cpp-15.0.7_1
libLLVM-11.so libllvm11-11.0.0_1
libLLVM-12.so libllvm12-12.0.0_1
libLLVM-15.so libllvm15-15.0.7_1
diff --git a/srcpkgs/clang b/srcpkgs/clang
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/clang
+++ b/srcpkgs/clang
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/clang-analyzer b/srcpkgs/clang-analyzer
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/clang-analyzer
+++ b/srcpkgs/clang-analyzer
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/clang-tools-extra b/srcpkgs/clang-tools-extra
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/clang-tools-extra
+++ b/srcpkgs/clang-tools-extra
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libclang b/srcpkgs/libclang
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libclang
+++ b/srcpkgs/libclang
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libclang-cpp b/srcpkgs/libclang-cpp
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libclang-cpp
+++ b/srcpkgs/libclang-cpp
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxx b/srcpkgs/libcxx
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxx
+++ b/srcpkgs/libcxx
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxx-devel b/srcpkgs/libcxx-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxx-devel
+++ b/srcpkgs/libcxx-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxxabi b/srcpkgs/libcxxabi
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxxabi
+++ b/srcpkgs/libcxxabi
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxxabi-devel b/srcpkgs/libcxxabi-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxxabi-devel
+++ b/srcpkgs/libcxxabi-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libomp b/srcpkgs/libomp
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libomp
+++ b/srcpkgs/libomp
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libomp-devel b/srcpkgs/libomp-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libomp-devel
+++ b/srcpkgs/libomp-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lld b/srcpkgs/lld
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lld
+++ b/srcpkgs/lld
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lld-devel b/srcpkgs/lld-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lld-devel
+++ b/srcpkgs/lld-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lldb b/srcpkgs/lldb
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lldb
+++ b/srcpkgs/lldb
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lldb-devel b/srcpkgs/lldb-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lldb-devel
+++ b/srcpkgs/lldb-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm-libunwind b/srcpkgs/llvm-libunwind
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/llvm-libunwind
+++ b/srcpkgs/llvm-libunwind
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm-libunwind-devel b/srcpkgs/llvm-libunwind-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/llvm-libunwind-devel
+++ b/srcpkgs/llvm-libunwind-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm/template b/srcpkgs/llvm/template
index a92db6f94f9f..fc1c850bd26f 100644
--- a/srcpkgs/llvm/template
+++ b/srcpkgs/llvm/template
@@ -1,11 +1,11 @@
# Template file for 'llvm'
pkgname=llvm
-version=12.0.0
+version=15
revision=1
build_style=meta
-depends="llvm12"
-replaces="llvm11>=0 llvm10>=0 llvm9>=0 llvm8>=0 llvm7>=0 llvm6.0>=0 llvm3.9>=0"
+depends="llvm15"
short_desc="LLVM meta package"
maintainer="Enno Boland <gottox@voidlinux.org>"
license="Public Domain"
homepage="https://www.voidlinux.org"
+replaces="llvm12>=0 llvm11>=0 llvm10>=0 llvm9>=0 llvm8>=0 llvm7>=0 llvm6.0>=0 llvm3.9>=0"
From 05f9377069fb4416137fe498a5e2fbeef248d39e Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Sun, 18 Dec 2022 12:20:08 +0100
Subject: [PATCH 03/19] llvm12: remove bumped subpackages
---
srcpkgs/llvm12/template | 264 +---------------------------------------
1 file changed, 1 insertion(+), 263 deletions(-)
diff --git a/srcpkgs/llvm12/template b/srcpkgs/llvm12/template
index f8ea3ba641ae..aea0b43cf573 100644
--- a/srcpkgs/llvm12/template
+++ b/srcpkgs/llvm12/template
@@ -50,55 +50,7 @@ case "$XBPS_TARGET_MACHINE" in
ppc*) configure_args+=" -DCLANG_ENABLE_CLANGD=OFF" ;;
esac
-_enabled_projects="clang;clang-tools-extra;compiler-rt;libcxx;libcxxabi;libunwind;lld"
-
-_lldb_enable=yes
-_libomp_enable=no
-
-case "$XBPS_TARGET_MACHINE" in
- ppc64le*) ;;
- ppc*|i686*) _lldb_enable=no ;;
-esac
-
-case "$XBPS_TARGET_MACHINE" in
- x86_64*|aarch64*|ppc64*) _libomp_enable=yes;;
-esac
-
-subpackages="clang-tools-extra"
-
-# must go before clang
-if [ "$_libomp_enable" = "yes" ]; then
- _enabled_projects+=";openmp"
- subpackages+=" libomp libomp-devel"
- # because of cmake nonsense referencing libomptarget.so.*
- depends+=" libomp>=${version}_${revision}"
-fi
-
-subpackages+=" clang clang-analyzer libclang libclang-cpp
- llvm-libunwind llvm-libunwind-devel libcxx libcxx-devel
- libcxxabi libcxxabi-devel libllvm12"
-
-if [ "$_lldb_enable" = "yes" ]; then
- # XXX fails to cross compile due to python
- _enabled_projects+=";lldb"
- subpackages+=" lldb lldb-devel"
-fi
-
-subpackages+=" lld lld-devel"
-
-configure_args+=" -DLLVM_ENABLE_PROJECTS=${_enabled_projects}"
-
post_patch() {
- if [ "$_lldb_enable" = "yes" ]; then
- if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
- vsed -i 's|__ptrace_request|int|g' \
- ${wrksrc}/lldb/source/Plugins/Process/Linux/NativeProcessLinux.cpp
- fi
- # disable docs for lldb as they fail to generate
- vsed -i '/add_subdirectory(docs)/d' \
- ${wrksrc}/lldb/CMakeLists.txt
- fi
-
# update config.guess for better platform detection
cp $XBPS_COMMONDIR/environment/configure/automake/config.guess \
${wrksrc}/llvm/cmake
@@ -154,14 +106,12 @@ pre_configure() {
cd build/HOST
CC="$BUILD_CC" CXX="$BUILD_CXX" CFLAGS="$BUILD_CFLAGS" \
CXXFLAGS="$BUILD_CXXFLAGS" LDFLAGS="$BUILD_LDFLAGS" \
- cmake ../.. -DCMAKE_BUILD_TYPE=Release \
- -DLLVM_ENABLE_PROJECTS=${_enabled_projects}
+ cmake ../.. -DCMAKE_BUILD_TYPE=Release
make ${makejobs} -C utils/TableGen
make ${makejobs} -C tools/clang/utils/TableGen
[ "$_lldb_enable" = "yes" ] && make ${makejobs} -C tools/lldb/utils/TableGen
configure_args+=" -DLLVM_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/llvm-tblgen"
configure_args+=" -DCLANG_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/clang-tblgen"
- [ "$_lldb_enable" = "yes" ] && configure_args+=" -DLLDB_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/lldb-tblgen"
cd ../..
fi
@@ -201,218 +151,6 @@ do_install() {
if [ "$CROSS_BUILD" ]; then
rm -f ${DESTDIR}/usr/bin/llvm-config-host
fi
-
- # Install libcxxabi headers
- vinstall ${wrksrc}/libcxxabi/include/__cxxabi_config.h 644 usr/include
- vinstall ${wrksrc}/libcxxabi/include/cxxabi.h 644 usr/include
-
- # Install libunwind headers
- vinstall ${wrksrc}/libunwind/include/__libunwind_config.h 644 usr/include
- vinstall ${wrksrc}/libunwind/include/libunwind.h 644 usr/include
- vinstall ${wrksrc}/libunwind/include/unwind.h 644 usr/include
- vinstall ${wrksrc}/libunwind/include/mach-o/compact_unwind_encoding.h \
- 644 usr/include/mach-o
-}
-
-clang-analyzer_package() {
- pycompile_dirs="usr/share/scan-view"
- depends="clang-${version}_${revision} python3 perl"
- short_desc+=" - A source code analysis framework"
- homepage="https://clang-analyzer.llvm.org/"
- pkg_install() {
- vmove usr/share/man/man1/scan-build.1
- vmove "/usr/bin/scan-*"
- vmove "/usr/share/scan-*"
- vmove "/usr/libexec/*analyzer"
- }
-}
-
-clang-tools-extra_package() {
- lib32disabled=yes
- depends="clang-${version}_${revision} python3"
- short_desc+=" - Extra Clang tools"
- homepage="https://clang.llvm.org/extra/"
- pkg_install() {
- vmove usr/include/clang-tidy
- vmove usr/bin/clang-apply-replacements
- vmove usr/bin/clang-query
- vmove usr/bin/clang-rename
- vmove usr/bin/clang-tidy
- vmove usr/bin/diagtool
- vmove usr/bin/find-all-symbols
- vmove usr/bin/hmaptool
- vmove usr/bin/modularize
- vmove usr/bin/pp-trace
- vmove usr/bin/sancov
- vmove "usr/lib/libclangApplyReplacements*"
- vmove "usr/lib/libclangQuery*"
- vmove "usr/lib/libclangTidy*"
- vmove "usr/share/clang/*tidy*"
- vmove usr/share/doc/clang-tools
- vmove usr/share/man/man1/extraclangtools.1
- vmove usr/share/man/man1/diagtool.1
- }
-}
-
-clang_package() {
- lib32disabled=yes
- depends="libstdc++-devel libgcc-devel binutils ${XBPS_TARGET_LIBC}-devel
- libclang-${version}_${revision}"
- short_desc+=" - C language family frontend"
- homepage="https://clang.llvm.org/"
- pkg_install() {
- vmove usr/include/clang
- vmove usr/include/clang-c
- vmove "usr/bin/*clang*"
- vmove usr/bin/c-index-test
- vmove usr/lib/clang
- vmove usr/lib/cmake/clang
- vmove "usr/lib/libclang*.a"
- vmove "usr/lib/libclang*.so"
- vmove usr/share/clang
- vmove usr/share/doc/clang
- vmove usr/share/man/man1/clang.1
- }
-}
-
-libclang_package() {
- short_desc+=" - C frontend runtime library"
- pkg_install() {
- vmove "usr/lib/libclang.so.*"
- }
-}
-
-libclang-cpp_package() {
- short_desc+=" - C frontend runtime library (C++ interface)"
- pkg_install() {
- vmove "usr/lib/libclang-cpp.so.*"
- }
-}
-
-lld_package() {
- lib32disabled=yes
- short_desc+=" - linker"
- homepage="https://lld.llvm.org"
- pkg_install() {
- vmove usr/bin/lld*
- vmove usr/bin/wasm-ld
- vmove usr/bin/ld.lld*
- vmove usr/bin/ld64.lld*
- vmove usr/share/doc/lld
- }
-}
-
-lld-devel_package() {
- lib32disabled=yes
- short_desc+=" - linker - development files"
- homepage="https://lld.llvm.org"
- depends="lld>=${version}_${revision}"
- pkg_install() {
- vmove usr/include/lld
- vmove usr/lib/cmake/lld
- vmove "usr/lib/liblld*a"
- }
-}
-
-lldb_package() {
- lib32disabled=yes
- depends+=" python3-six"
- short_desc+=" - LLDB debugger"
- homepage="https://lldb.llvm.org/"
- pkg_install() {
- vmove usr/bin/*lldb*
- vmove usr/lib/liblldb*so.*
- vmove /usr/lib/python*
- }
-}
-
-lldb-devel_package() {
- lib32disabled=yes
- depends="lldb>=${version}_${revision}"
- short_desc+=" - LLDB debugger - development files"
- pkg_install() {
- vmove usr/include/lldb
- vmove "usr/lib/liblldb*.so"
- }
-}
-
-llvm-libunwind_package() {
- short_desc+=" - libunwind"
- pkg_install() {
- vmove "usr/lib/libunwind.so.*"
- }
-}
-
-llvm-libunwind-devel_package() {
- short_desc+=" - libunwind - development files"
- depends="llvm-libunwind>=${version}_${revision}"
- conflicts="libunwind-devel>=0"
- pkg_install() {
- vmove usr/lib/libunwind.so
- vmove usr/lib/libunwind.a
- vmove "usr/include/*unwind*"
- vmove usr/include/mach-o
- vmove usr/share/doc/libunwind
- }
-}
-
-libcxxabi_package() {
- short_desc+=" - low level support for libc++"
- pkg_install() {
- vmove "usr/lib/libc++abi.so.*"
- }
-}
-
-libcxxabi-devel_package() {
- short_desc+=" - low level support for libc++ - development files"
- depends="libcxxabi>=${version}_${revision}"
- pkg_install() {
- vmove usr/lib/libc++abi.so
- vmove usr/lib/libc++abi.a
- vmove "usr/include/*cxxabi*"
- }
-}
-
-libcxx_package() {
- short_desc+=" - C++ standard library"
- pkg_install() {
- vmove "usr/lib/libc++.so.*"
- }
-}
-
-libcxx-devel_package() {
- short_desc+=" - C++ standard library - development files"
- depends="libcxx>=${version}_${revision}"
- pkg_install() {
- vmove usr/lib/libc++.so
- vmove usr/lib/libc++.a
- vmove usr/lib/libc++experimental.a
- vmove usr/include/c++
- vmove usr/share/doc/libcxx
- }
-}
-
-libomp_package() {
- short_desc+=" - Clang OpenMP support library"
- pkg_install() {
- vmove usr/lib/libomp.so
- vmove "usr/lib/libomptarget.rtl.*.so"
- vmove usr/lib/libarcher.so
- vmove "usr/lib/libomp*.so.*"
- }
-}
-
-libomp-devel_package() {
- short_desc+=" - Clang OpenMP support library - development files"
- depends="libomp>=${version}_${revision}"
- pkg_install() {
- vmove "usr/lib/libomp*.so"
- vmove "usr/lib/libarcher*"
- vmove "usr/include/omp*.h"
- vmove "usr/lib/clang/${version}/include/omp*.h"
- vmove usr/share/man/man1/llvmopenmp.1
- vmove usr/share/doc/openmp
- }
}
libllvm12_package() {
From b6401be9755f9a992324f91f18f134b6102bb1ae Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:27:03 +0100
Subject: [PATCH 04/19] mesa: rebuild for llvm15
---
srcpkgs/mesa/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/mesa/template b/srcpkgs/mesa/template
index 4c3c9ec6039e..0641b28a80d6 100644
--- a/srcpkgs/mesa/template
+++ b/srcpkgs/mesa/template
@@ -1,7 +1,7 @@
# Template file for 'mesa'
pkgname=mesa
version=22.2.4
-revision=2
+revision=3
build_style=meson
configure_args="-Dglvnd=true -Dshared-glapi=enabled -Dgbm=enabled -Degl=enabled
-Dosmesa=true -Dgles1=enabled -Dgles2=enabled -Dglx=dri -Ddri3=enabled
From e1baee5db88f77206c706f0f0321a21344c08383 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:34:04 +0100
Subject: [PATCH 05/19] bcc: rebuild for llvm15
---
srcpkgs/bcc/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/bcc/template b/srcpkgs/bcc/template
index 7526580f17ed..bdbcff7227a0 100644
--- a/srcpkgs/bcc/template
+++ b/srcpkgs/bcc/template
@@ -1,7 +1,7 @@
# Template file for 'bcc'
pkgname=bcc
version=0.26.0
-revision=2
+revision=3
build_style=cmake
configure_args="-DREVISION=${version} -DENABLE_LLVM_SHARED=1"
hostmakedepends="flex python3-setuptools"
From 170bc933b5d6fe68c56e667cdb3848be036163b6 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:37:25 +0100
Subject: [PATCH 06/19] bpftrace: rebuild for llvm15
---
srcpkgs/bpftrace/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/bpftrace/template b/srcpkgs/bpftrace/template
index 952682662128..2f01dbf69530 100644
--- a/srcpkgs/bpftrace/template
+++ b/srcpkgs/bpftrace/template
@@ -1,7 +1,7 @@
# Template file for 'bpftrace'
pkgname=bpftrace
version=0.17.0
-revision=1
+revision=2
archs="x86_64* aarch64* ppc64*"
build_style=cmake
configure_args="-DUSE_SYSTEM_BPF_BCC=ON -DBUILD_TESTING=OFF" # needs root to run
From f5863efce7516ad698d26a8bc9a976d203a5e82e Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:43:53 +0100
Subject: [PATCH 07/19] CastXML: rebuild for llvm15
---
srcpkgs/CastXML/template | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/srcpkgs/CastXML/template b/srcpkgs/CastXML/template
index 5d7d9503658c..28c424c78073 100644
--- a/srcpkgs/CastXML/template
+++ b/srcpkgs/CastXML/template
@@ -1,7 +1,7 @@
# Template file for 'CastXML'
pkgname=CastXML
version=0.4.6
-revision=1
+revision=2
build_style=cmake
configure_args="-DSPHINX_MAN=YES -DCastXML_INSTALL_MAN_DIR=share/man"
hostmakedepends="clang python3-Sphinx"
@@ -12,8 +12,8 @@ short_desc="C-family abstract syntax tree XML output tool"
maintainer="Evgeny Ermakov <evgeny.v.ermakov@gmail.com>"
license="Apache-2.0"
homepage="https://github.com/CastXML/CastXML"
-distfiles="https://github.com/CastXML/CastXML/archive/v${version}.tar.gz"
-checksum=8dcdbc1f23a130e4bdb0b09f57c30761a02a346b4db4037555048af2a293d66a
+distfiles="https://github.com/CastXML/CastXML/archive/refs/tags/v${version}.tar.gz"
+checksum=bb9024ec9ea5082e0d527f19bf3c2df79f1699f54b6cec168c024e727b32e6d1
post_install() {
rm -r ${DESTDIR}/usr/share/castxml/clang/include
From 008fef21f20fad39388e57ed1a53c999f3872224 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:48:55 +0100
Subject: [PATCH 08/19] ccls: rebuild for llvm15
---
srcpkgs/ccls/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/ccls/template b/srcpkgs/ccls/template
index 82fa61933878..ecc9f3e38a5d 100644
--- a/srcpkgs/ccls/template
+++ b/srcpkgs/ccls/template
@@ -1,7 +1,7 @@
# Template file for 'ccls'
pkgname=ccls
version=0.20220729
-revision=1
+revision=2
build_style=cmake
hostmakedepends="clang-tools-extra"
makedepends="clang-tools-extra libxml2-devel llvm ncurses-devel rapidjson zlib-devel"
From 0fd7c0fdd30de72139195f1571e6a1ae7ba8d6a0 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:52:14 +0100
Subject: [PATCH 09/19] include-what-you-use: update to 0.19
---
srcpkgs/include-what-you-use/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/include-what-you-use/template b/srcpkgs/include-what-you-use/template
index d3655709c20c..1a30bc04bb2d 100644
--- a/srcpkgs/include-what-you-use/template
+++ b/srcpkgs/include-what-you-use/template
@@ -1,6 +1,6 @@
# Template file for 'include-what-you-use'
pkgname=include-what-you-use
-version=0.16
+version=0.19
revision=1
build_style=cmake
configure_args="-DIWYU_LLVM_ROOT_PATH=${XBPS_CROSS_BASE}/usr "
@@ -11,7 +11,7 @@ maintainer="Leah Neukirchen <leah@vuxu.org>"
license="NCSA"
homepage="https://include-what-you-use.org/"
distfiles="https://include-what-you-use.org/downloads/${pkgname}-${version}.src.tar.gz"
-checksum=8d6fc9b255343bc1e5ec459e39512df1d51c60e03562985e0076036119ff5a1c
+checksum=2b10157b60ea08adc08e3896b4921c73fcadd5ec4eb652b29a34129d501e5ee0
python_version=3
post_install() {
From 8d86ed98b004f414eea7fc63e2cff783a42bc910 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 15:11:06 +0100
Subject: [PATCH 10/19] SPIRV-LLVM-Translator: update to 15.0.0
---
srcpkgs/SPIRV-LLVM-Translator/template | 13 +++++++------
1 file changed, 7 insertions(+), 6 deletions(-)
diff --git a/srcpkgs/SPIRV-LLVM-Translator/template b/srcpkgs/SPIRV-LLVM-Translator/template
index a2754e58c0e8..bee99f9bcbb2 100644
--- a/srcpkgs/SPIRV-LLVM-Translator/template
+++ b/srcpkgs/SPIRV-LLVM-Translator/template
@@ -1,19 +1,20 @@
# Template file for 'SPIRV-LLVM-Translator'
pkgname=SPIRV-LLVM-Translator
-version=12.0.0
-revision=2
+version=15.0.0
+revision=1
build_style=cmake
make_build_args="llvm-spirv"
configure_args="-Wno-dev -DLLVM_LINK_LLVM_DYLIB=ON -DCMAKE_SKIP_RPATH=ON
- -DLLVM_SPIRV_INCLUDE_TESTS=OFF -DBUILD_SHARED_LIBS=ON"
+ -DLLVM_SPIRV_INCLUDE_TESTS=OFF -DBUILD_SHARED_LIBS=ON
+ -DLLVM_EXTERNAL_SPIRV_HEADERS_SOURCE_DIR=/usr"
hostmakedepends="clang llvm"
-makedepends="clang-tools-extra llvm"
+makedepends="clang-tools-extra llvm SPIRV-Headers"
short_desc="API and commands for processing SPIR-V modules"
maintainer="Orphaned <orphan@voidlinux.org>"
license="NCSA"
homepage="https://github.com/KhronosGroup/SPIRV-LLVM-Translator"
-distfiles="https://github.com/KhronosGroup/${pkgname}/archive/refs/tags/v${version}.tar.gz"
-checksum=6e4fad04203f25fcde4c308c53e9f59bd05a390978992db3212d4b63aff62108
+distfiles="https://github.com/KhronosGroup/SPIRV-LLVM-Translator/archive/refs/tags/v${version}.tar.gz"
+checksum=b1bebd77f72988758c00852e78c2ddc545815a612169a0cb377d021e2f846d88
post_install() {
vlicense LICENSE.TXT
From 070871966522cec2b30ae6b62fd1986ebb32cb4c Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Fri, 6 Jan 2023 17:11:04 +0100
Subject: [PATCH 11/19] rtags: rebuild for llvm15
---
srcpkgs/rtags/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/rtags/template b/srcpkgs/rtags/template
index b496a1b0e721..9b161e690d76 100644
--- a/srcpkgs/rtags/template
+++ b/srcpkgs/rtags/template
@@ -1,7 +1,7 @@
# Template file for 'rtags'
pkgname=rtags
version=2.38
-revision=5
+revision=6
build_style=cmake
# Don't run tests in do_install, please.
configure_args="-DSKIP_CTEST=TRUE"
From 32e49aac388d03f2caea90d7c0d96913ac8a0a57 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Fri, 6 Jan 2023 17:14:14 +0100
Subject: [PATCH 12/19] juCi++: rebuild for llvm15
---
srcpkgs/juCi++/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/juCi++/template b/srcpkgs/juCi++/template
index c1969237f11d..416bde7cc4d0 100644
--- a/srcpkgs/juCi++/template
+++ b/srcpkgs/juCi++/template
@@ -1,7 +1,7 @@
# Template file for 'juCi++'
pkgname=juCi++
version=1.7.2
-revision=2
+revision=3
_libclangmm_commit="9704b9b6de0982a588fa41741157d5640afedf30"
_tiny_commit="839ff806dc447ff49af80f9a9eaa7949f770f8e5"
create_wrksrc=yes
From 1921c06551405c3320510e22c300a7e97adf45b7 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Sat, 7 Jan 2023 11:31:14 +0100
Subject: [PATCH 13/19] qt5: rebuild for llvm15
---
srcpkgs/qt5/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/qt5/template b/srcpkgs/qt5/template
index f4f9f5b5344a..b517b49ead2d 100644
--- a/srcpkgs/qt5/template
+++ b/srcpkgs/qt5/template
@@ -5,7 +5,7 @@ pkgname=qt5
version=5.15.7+20221119
# commit f8c9fb304bc3e53b3aa07f962cd74e9160decccc
# base repo: https://invent.kde.org/qt/qt/qt5
-revision=1
+revision=2
build_style=meta
hostmakedepends="cmake clang flex perl glib-devel pkg-config
python re2c ruby which"
From eb1da229f860a899d2d9e1892acbd751bbbc4cb2 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Mon, 9 Jan 2023 01:22:18 +0100
Subject: [PATCH 14/19] codelite: rebuild for llvm15
---
srcpkgs/codelite/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/codelite/template b/srcpkgs/codelite/template
index 6b8b007c8a43..c6115e0274ce 100644
--- a/srcpkgs/codelite/template
+++ b/srcpkgs/codelite/template
@@ -1,7 +1,7 @@
# Template file for 'codelite'
pkgname=codelite
version=16.0.0
-revision=2
+revision=3
create_wrksrc=yes
build_style=cmake
build_helper=cmake-wxWidgets-gtk3
From e83fe9f21bf237b9e19f197853eeec6d4740264c Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Mon, 9 Jan 2023 01:58:21 +0100
Subject: [PATCH 15/19] kdevelop: rebuild for llvm15
---
srcpkgs/kdevelop/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/kdevelop/template b/srcpkgs/kdevelop/template
index 5eb275583138..c32ee5240a44 100644
--- a/srcpkgs/kdevelop/template
+++ b/srcpkgs/kdevelop/template
@@ -1,7 +1,7 @@
# Template file for 'kdevelop'
pkgname=kdevelop
version=22.12.1
-revision=1
+revision=2
build_style=cmake
configure_args="-DBUILD_TESTING=OFF"
hostmakedepends="extra-cmake-modules qt5-qmake qt5-host-tools qt5-tools
From a04cdbfe671cbbbe256266b15fab581c84f20dc6 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Mon, 16 Jan 2023 14:43:47 +0100
Subject: [PATCH 16/19] zig: update to 0.10.1
---
.../0001-std.build-fix-handling-of-Dcpu.patch | 48 -------------------
srcpkgs/zig/template | 10 ++--
2 files changed, 6 insertions(+), 52 deletions(-)
delete mode 100644 srcpkgs/zig/patches/0001-std.build-fix-handling-of-Dcpu.patch
diff --git a/srcpkgs/zig/patches/0001-std.build-fix-handling-of-Dcpu.patch b/srcpkgs/zig/patches/0001-std.build-fix-handling-of-Dcpu.patch
deleted file mode 100644
index 4101f24459bb..000000000000
--- a/srcpkgs/zig/patches/0001-std.build-fix-handling-of-Dcpu.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From 1e8cdace7ad324a42228aeb5cd6eb8dd15429413 Mon Sep 17 00:00:00 2001
-From: Isaac Freund <ifreund@ifreund.xyz>
-Date: Tue, 21 Sep 2021 21:06:10 +0200
-Subject: [PATCH] std.build: fix handling of -Dcpu
-
-Currently -Dcpu is completely ignored if -Dtarget isn't passed as well.
-Further, -Dcpu=baseline is ignored even if -Dtarget=native is passed.
-
-This patch fixes these 2 issues, always respecting the -Dcpu option if
-present.
----
- lib/std/build.zig | 13 +++++++------
- 1 file changed, 7 insertions(+), 6 deletions(-)
-
-diff --git a/lib/std/build.zig b/lib/std/build.zig
-index 9b7ebb1f4..e398529f9 100644
---- a/lib/std/build.zig
-+++ b/lib/std/build.zig
-@@ -685,7 +685,11 @@ pub const Builder = struct {
- );
- const mcpu = self.option([]const u8, "cpu", "Target CPU");
-
-- const triple = maybe_triple orelse return args.default_target;
-+ if (maybe_triple == null and mcpu == null) {
-+ return args.default_target;
-+ }
-+
-+ const triple = maybe_triple orelse "native";
-
- var diags: CrossTarget.ParseOptions.Diagnostics = .{};
- const selected_target = CrossTarget.parse(.{
-@@ -2451,11 +2455,8 @@ pub const LibExeObjStep = struct {
-
- if (populated_cpu_features.eql(cross.cpu.features)) {
- // The CPU name alone is sufficient.
-- // If it is the baseline CPU, no command line args are required.
-- if (cross.cpu.model != std.Target.Cpu.baseline(cross.cpu.arch).model) {
-- try zig_args.append("-mcpu");
-- try zig_args.append(cross.cpu.model.name);
-- }
-+ try zig_args.append("-mcpu");
-+ try zig_args.append(cross.cpu.model.name);
- } else {
- var mcpu_buffer = std.ArrayList(u8).init(builder.allocator);
-
---
-2.33.1
-
diff --git a/srcpkgs/zig/template b/srcpkgs/zig/template
index 728c5a64e9df..9807f7ab206b 100644
--- a/srcpkgs/zig/template
+++ b/srcpkgs/zig/template
@@ -1,17 +1,19 @@
# Template file for 'zig'
pkgname=zig
-version=0.8.1
-revision=2
+version=0.10.1
+revision=1
archs="x86_64* aarch64*"
build_style=cmake
make_cmd=make
-makedepends="clang llvm12 lld-devel"
+# we add xml2, zstd, zlib and ncurses
+# because our lld is static-only and requires those to work
+makedepends="clang llvm15 lld-devel libxml2-devel libzstd-devel ncurses-devel zlib-devel"
short_desc="Programming language designed for robustness, optimality, and clarity"
maintainer="Isaac Freund <mail@isaacfreund.com>"
license="MIT"
homepage="https://ziglang.org"
distfiles="https://ziglang.org/download/${version}/zig-${version}.tar.xz"
-checksum=8c428e14a0a89cb7a15a6768424a37442292858cdb695e2eb503fa3c7bf47f1a
+checksum=69459bc804333df077d441ef052ffa143d53012b655a51f04cfef1414c04168c
nopie=yes
nocross=yes
From 13114afb5390d0e48ea340a90e430f00ba2c5d6a Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Tue, 24 Jan 2023 14:03:51 +0100
Subject: [PATCH 17/19] river: update to 0.2.3
---
...ble-PIE-for-river-riverctl-rivertile.patch | 42 -------------------
srcpkgs/river/template | 10 ++---
2 files changed, 5 insertions(+), 47 deletions(-)
delete mode 100644 srcpkgs/river/patches/0001-Enable-PIE-for-river-riverctl-rivertile.patch
diff --git a/srcpkgs/river/patches/0001-Enable-PIE-for-river-riverctl-rivertile.patch b/srcpkgs/river/patches/0001-Enable-PIE-for-river-riverctl-rivertile.patch
deleted file mode 100644
index ecc68302db09..000000000000
--- a/srcpkgs/river/patches/0001-Enable-PIE-for-river-riverctl-rivertile.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From 759c1c7a915083f3da46960ff82fa2a3566a7065 Mon Sep 17 00:00:00 2001
-From: Isaac Freund <mail@isaacfreund.com>
-Date: Wed, 3 Nov 2021 14:21:35 +0100
-Subject: [PATCH] Enable PIE for river, riverctl, rivertile
-
-There is sadly not yet a standard way to do this exposed by the zig
-build system. See: https://github.com/ziglang/zig/issues/7201
----
- build.zig | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/build.zig b/build.zig
-index d561f49..8ac9a4e 100644
---- a/build.zig
-+++ b/build.zig
-@@ -85,6 +85,7 @@ pub fn build(b: *zbs.Builder) !void {
- const river = b.addExecutable("river", "river/main.zig");
- river.setTarget(target);
- river.setBuildMode(mode);
-+ river.pie = true;
- river.addBuildOption(bool, "xwayland", xwayland);
- river.addBuildOption([:0]const u8, "version", full_version);
-
-@@ -97,6 +98,7 @@ pub fn build(b: *zbs.Builder) !void {
- const riverctl = b.addExecutable("riverctl", "riverctl/main.zig");
- riverctl.setTarget(target);
- riverctl.setBuildMode(mode);
-+ riverctl.pie = true;
- riverctl.addBuildOption([:0]const u8, "version", full_version);
-
- riverctl.step.dependOn(&scanner.step);
-@@ -114,6 +116,7 @@ pub fn build(b: *zbs.Builder) !void {
- const rivertile = b.addExecutable("rivertile", "rivertile/main.zig");
- rivertile.setTarget(target);
- rivertile.setBuildMode(mode);
-+ rivertile.pie = true;
- rivertile.addBuildOption([:0]const u8, "version", full_version);
-
- rivertile.step.dependOn(&scanner.step);
---
-2.33.1
-
diff --git a/srcpkgs/river/template b/srcpkgs/river/template
index 3906858d507e..431aa4bd8e8e 100644
--- a/srcpkgs/river/template
+++ b/srcpkgs/river/template
@@ -1,18 +1,18 @@
# Template file for 'river'
pkgname=river
-version=0.1.1
-revision=2
+version=0.2.3
+revision=1
build_style=zig-build
-configure_args="$(vopt_if xwayland -Dxwayland)"
+configure_args="$(vopt_if xwayland -Dxwayland) -Dpie"
hostmakedepends="pkg-config wayland-devel scdoc"
-makedepends="wlroots0.15-devel libevdev-devel"
+makedepends="wlroots-devel libevdev-devel"
depends="$(vopt_if xwayland xorg-server-xwayland)"
short_desc="Dynamic tiling Wayland compositor"
maintainer="Isaac Freund <mail@isaacfreund.com>"
license="GPL-3.0-or-later"
homepage="https://github.com/riverwm/river"
distfiles="${homepage}/releases/download/v${version}/river-${version}.tar.gz"
-checksum=2a0bcd4670ed9ebd39c279f2bf10803fc65c9f3ee2307ce40728df23ce914d18
+checksum=7acdd2b929e16a20006b4baf1f29e7a8dc7f70cf5747e1503a610a90d1637132
build_options="xwayland"
build_options_default="xwayland"
From 1eee3ba155f2ec9f7eacd90f7207917bc243a2a4 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Fri, 10 Feb 2023 17:25:32 +0100
Subject: [PATCH 18/19] libclc: update to 15.0.7
---
srcpkgs/libclc/template | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/srcpkgs/libclc/template b/srcpkgs/libclc/template
index 779519fd666f..adb60f6ad1f1 100644
--- a/srcpkgs/libclc/template
+++ b/srcpkgs/libclc/template
@@ -1,9 +1,11 @@
# Template file for 'libclc'
pkgname=libclc
-version=12.0.0
+version=15.0.7
revision=1
build_style=cmake
-configure_args="-DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release"
+# disable clspv (failing tests, we don't ship it)
+configure_args="-DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release
+ -DLIBCLC_TARGETS_TO_BUILD=amdgcn--;amdgcn--amdhsa;r600--;nvptx--;nvptx64--;nvptx--nvidiacl;nvptx64--nvidiacl;spirv-mesa3d-;spirv64-mesa3d-"
hostmakedepends="cmake clang llvm python3 libedit-devel libffi-devel
ncurses-devel zlib-devel SPIRV-LLVM-Translator"
short_desc="Open implementation of the OpenCL C programming language"
@@ -11,7 +13,7 @@ maintainer="Orphaned <orphan@voidlinux.org>"
license="BSD-3-Clause, MIT"
homepage="https://libclc.llvm.org"
distfiles="https://github.com/llvm/llvm-project/releases/download/llvmorg-${version}/libclc-${version}.src.tar.xz"
-checksum=6b777ee2cd57da1b122f76c208463f620eef508f4128210c6b1a96bfb75c74dc
+checksum=35731fea7be224f21acf5bf3cd9f0ed058bf4ada5eceaf7f10ee96e139bd3389
replaces="libclc-git>=0"
do_configure() {
From d49a7165718f92aaa90820ac29fc0f79159cb851 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Fri, 10 Feb 2023 20:20:43 +0100
Subject: [PATCH 19/19] shiboken2: update to 5.15.7
---
srcpkgs/shiboken2/template | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/srcpkgs/shiboken2/template b/srcpkgs/shiboken2/template
index 9ceb8b313de7..084ecc3ba1e1 100644
--- a/srcpkgs/shiboken2/template
+++ b/srcpkgs/shiboken2/template
@@ -1,7 +1,7 @@
# Template file for 'shiboken2'
pkgname=shiboken2
-version=5.15.5
-revision=2
+version=5.15.7
+revision=1
_pkgname="pyside-setup-opensource-src-${version}"
build_wrksrc="sources/shiboken2"
build_style=cmake
@@ -14,7 +14,7 @@ maintainer="yopito <pierre.bourgin@free.fr>"
license="GPL-3.0-or-later"
homepage="https://wiki.qt.io/Qt_for_Python/Shiboken"
distfiles="https://download.qt.io/official_releases/QtForPython/pyside2/PySide2-${version}-src/${_pkgname}.tar.xz"
-checksum=3920a4fb353300260c9bc46ff70f1fb975c5e7efa22e9d51222588928ce19b33
+checksum=f61210ae24e6882d5d0ca0059229e5dc4f35e2bca92dd6caf96c0f41943a8294
python_version=3
export CLANG_INSTALL_DIR=${XBPS_CROSS_BASE}/usr
^ permalink raw reply [flat|nested] 96+ messages in thread
* Re: [PR PATCH] [Updated] [WIP] LLVM 15
2022-11-28 15:30 [PR PATCH] [WIP] LLVM 15 tranzystorek-io
` (67 preceding siblings ...)
2023-02-15 17:27 ` tranzystorek-io
@ 2023-02-16 19:17 ` tranzystorek-io
2023-02-16 22:44 ` tranzystorek-io
` (25 subsequent siblings)
94 siblings, 0 replies; 96+ messages in thread
From: tranzystorek-io @ 2023-02-16 19:17 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 1220 bytes --]
There is an updated pull request by tranzystorek-io against master on the void-packages repository
https://github.com/tranzystorek-io/void-packages llvm15
https://github.com/void-linux/void-packages/pull/40821
[WIP] LLVM 15
[ci skip]
TODO:
- [x] ~~Adjust patches marked as `.patch.skip`~~ dropped support for ppc
- [x] Make libomp a shlib (change so file name and install a symlink)
- [x] Avoid creating triplet dirs under /usr/
TODO LLVM rdeps:
- [ ] clazy (breaking changes in clang API)
- [x] beignet (https://github.com/void-linux/void-packages/pull/41529)
- [ ] ispc (1.18.1 supports LLVM `<= 14`)
- [ ] ldc (1.30.0 supports LLVM `<= 14`)
- [x] ghdl (2.0.0 supports LLVM `<= 14`) - builds with llvm12
- [x] qt
- [ ] qtcreator (breaking changes in clang-format API)
- [x] shiboken2 (tests failing with llvm15)
- [x] bpftrace (https://github.com/void-linux/void-packages/pull/39002)
- [x] libclc (tests fail with unresolved calls https://gist.githubusercontent.com/tranzystorek-io/a2aa8a0d8010af5299f7d1ff9f82c22b/raw/6d316d99d6079990b73ae77d274dd120b9560589/LastTest.log) -> removed clspv
- [x] zig
A patch file from https://github.com/void-linux/void-packages/pull/40821.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-llvm15-40821.patch --]
[-- Type: text/x-diff, Size: 96339 bytes --]
From cc2eed74c2b16ca79fd5d987d9661440ed1e1282 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Sun, 18 Dec 2022 00:36:59 +0100
Subject: [PATCH 01/20] New package: llvm15-15.0.7
---
common/shlibs | 3 +
srcpkgs/libllvm15 | 1 +
.../llvm15/files/llvm-Config-llvm-config.h | 9 +
...clang-001-fix-unwind-chain-inclusion.patch | 44 ++
.../patches/clang-002-add-musl-triples.patch | 115 +++++
.../clang-003-ppc64-dynamic-linker-path.patch | 13 +
.../patches/clang-004-ppc64-musl-elfv2.patch | 48 ++
.../compiler-rt-sanitizer-ppc64-musl.patch | 35 ++
srcpkgs/llvm15/patches/libcxx-musl.patch | 26 ++
srcpkgs/llvm15/patches/libcxx-ppc.patch | 22 +
.../llvm15/patches/libcxx-ssp-nonshared.patch | 11 +
srcpkgs/llvm15/patches/libcxxabi-dl.patch | 25 +
srcpkgs/llvm15/patches/libcxxabi-musl.patch | 37 ++
srcpkgs/llvm15/patches/libomp-soname.patch | 12 +
srcpkgs/llvm15/patches/lldb-musl.patch | 40 ++
srcpkgs/llvm15/patches/llvm-001-musl.patch | 57 +++
.../patches/llvm-002-musl-ppc64-elfv2.patch | 30 ++
.../patches/llvm-003-ppc-secureplt.patch | 11 +
.../patches/llvm-004-override-opt.patch | 18 +
.../llvm15/patches/llvm-005-ppc-bigpic.patch | 36 ++
.../patches/llvm-006-aarch64-mf_exec.patch | 25 +
srcpkgs/llvm15/template | 442 ++++++++++++++++++
srcpkgs/llvm15/update | 3 +
23 files changed, 1063 insertions(+)
create mode 120000 srcpkgs/libllvm15
create mode 100644 srcpkgs/llvm15/files/llvm-Config-llvm-config.h
create mode 100644 srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch
create mode 100644 srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch
create mode 100644 srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch
create mode 100644 srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch
create mode 100644 srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch
create mode 100644 srcpkgs/llvm15/patches/libcxx-musl.patch
create mode 100644 srcpkgs/llvm15/patches/libcxx-ppc.patch
create mode 100644 srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch
create mode 100644 srcpkgs/llvm15/patches/libcxxabi-dl.patch
create mode 100644 srcpkgs/llvm15/patches/libcxxabi-musl.patch
create mode 100644 srcpkgs/llvm15/patches/libomp-soname.patch
create mode 100644 srcpkgs/llvm15/patches/lldb-musl.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-001-musl.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-004-override-opt.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch
create mode 100644 srcpkgs/llvm15/template
create mode 100644 srcpkgs/llvm15/update
diff --git a/common/shlibs b/common/shlibs
index f9a0d7794b79..501dbbce7846 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -990,6 +990,9 @@ libclang.so.12 libclang-12.0.0_1
libclang-cpp.so.12 libclang-cpp-12.0.0_1
libLLVM-11.so libllvm11-11.0.0_1
libLLVM-12.so libllvm12-12.0.0_1
+libLLVM-15.so libllvm15-15.0.7_1
+libomp.so.5 libomp-15.0.7_1
+libomptarget.so.15 libomp-15.0.7_1
libisofs.so.6 libisofs-0.6.24_1
libmpack.so.0 libmpack-1.0.5_1
libGeoIP.so.1 libgeoip-1.4.8_1
diff --git a/srcpkgs/libllvm15 b/srcpkgs/libllvm15
new file mode 120000
index 000000000000..ad57a969b9f9
--- /dev/null
+++ b/srcpkgs/libllvm15
@@ -0,0 +1 @@
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm15/files/llvm-Config-llvm-config.h b/srcpkgs/llvm15/files/llvm-Config-llvm-config.h
new file mode 100644
index 000000000000..2fa08c9be696
--- /dev/null
+++ b/srcpkgs/llvm15/files/llvm-Config-llvm-config.h
@@ -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
diff --git a/srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch b/srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch
new file mode 100644
index 000000000000..e4eaa7783e7a
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch
@@ -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
diff --git a/srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch b/srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch
new file mode 100644
index 000000000000..0ef4c7e75d6b
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch
@@ -0,0 +1,115 @@
+--- a/clang/lib/Driver/ToolChains/Gnu.cpp
++++ b/clang/lib/Driver/ToolChains/Gnu.cpp
+@@ -2086,7 +2086,8 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
+ static const char *const ARMHFTriples[] = {"arm-linux-gnueabihf",
+ "armv7hl-redhat-linux-gnueabi",
+ "armv6hl-suse-linux-gnueabi",
+- "armv7hl-suse-linux-gnueabi"};
++ "armv7hl-suse-linux-gnueabi",
++ "armv7l-linux-gnueabihf"};
+ static const char *const ARMebLibDirs[] = {"/lib"};
+ static const char *const ARMebTriples[] = {"armeb-linux-gnueabi",
+ "armeb-linux-androideabi"};
+@@ -2153,8 +2154,7 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
+ "powerpc64-suse-linux", "powerpc-montavista-linuxspe"};
+ static const char *const PPCLELibDirs[] = {"/lib32", "/lib"};
+ static const char *const PPCLETriples[] = {"powerpcle-linux-gnu",
+- "powerpcle-unknown-linux-gnu",
+- "powerpcle-linux-musl"};
++ "powerpcle-unknown-linux-gnu"};
+
+ static const char *const PPC64LibDirs[] = {"/lib64", "/lib"};
+ static const char *const PPC64Triples[] = {
+@@ -2235,6 +2235,92 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
+ return;
+ }
+
++ if (TargetTriple.isMusl()) {
++ static const char *const AArch64MuslTriples[] = {"aarch64-linux-musl"};
++ static const char *const ARMHFMuslTriples[] = {
++ "arm-linux-musleabihf", "armv7l-linux-musleabihf"
++ };
++ static const char *const ARMMuslTriples[] = {"arm-linux-musleabi"};
++ static const char *const X86_64MuslTriples[] = {"x86_64-linux-musl"};
++ static const char *const X86MuslTriples[] = {"i686-linux-musl"};
++ static const char *const MIPSMuslTriples[] = {
++ "mips-linux-musl", "mipsel-linux-musl",
++ "mipsel-linux-muslhf", "mips-linux-muslhf"
++ };
++ static const char *const PPCMuslTriples[] = {"powerpc-linux-musl"};
++ static const char *const PPCLEMuslTriples[] = {"powerpcle-linux-musl"};
++ static const char *const PPC64MuslTriples[] = {"powerpc64-linux-musl"};
++ static const char *const PPC64LEMuslTriples[] = {"powerpc64le-linux-musl"};
++ static const char *const RISCV64MuslTriples[] = {"riscv64-linux-musl"};
++
++ switch (TargetTriple.getArch()) {
++ case llvm::Triple::aarch64:
++ LibDirs.append(begin(AArch64LibDirs), end(AArch64LibDirs));
++ TripleAliases.append(begin(AArch64MuslTriples), end(AArch64MuslTriples));
++ BiarchLibDirs.append(begin(AArch64LibDirs), end(AArch64LibDirs));
++ BiarchTripleAliases.append(begin(AArch64MuslTriples), end(AArch64MuslTriples));
++ break;
++ case llvm::Triple::arm:
++ LibDirs.append(begin(ARMLibDirs), end(ARMLibDirs));
++ if (TargetTriple.getEnvironment() == llvm::Triple::MuslEABIHF) {
++ TripleAliases.append(begin(ARMHFMuslTriples), end(ARMHFMuslTriples));
++ } else {
++ TripleAliases.append(begin(ARMMuslTriples), end(ARMMuslTriples));
++ }
++ break;
++ case llvm::Triple::x86_64:
++ LibDirs.append(begin(X86_64LibDirs), end(X86_64LibDirs));
++ TripleAliases.append(begin(X86_64MuslTriples), end(X86_64MuslTriples));
++ BiarchLibDirs.append(begin(X86LibDirs), end(X86LibDirs));
++ BiarchTripleAliases.append(begin(X86MuslTriples), end(X86MuslTriples));
++ break;
++ case llvm::Triple::x86:
++ LibDirs.append(begin(X86LibDirs), end(X86LibDirs));
++ TripleAliases.append(begin(X86MuslTriples), end(X86MuslTriples));
++ BiarchLibDirs.append(begin(X86_64LibDirs), end(X86_64LibDirs));
++ BiarchTripleAliases.append(begin(X86_64MuslTriples), end(X86_64MuslTriples));
++ break;
++ case llvm::Triple::mips:
++ LibDirs.append(begin(MIPSLibDirs), end(MIPSLibDirs));
++ TripleAliases.append(begin(MIPSMuslTriples), end(MIPSMuslTriples));
++ break;
++ case llvm::Triple::ppc:
++ LibDirs.append(begin(PPCLibDirs), end(PPCLibDirs));
++ TripleAliases.append(begin(PPCMuslTriples), end(PPCMuslTriples));
++ BiarchLibDirs.append(begin(PPC64LibDirs), end(PPC64LibDirs));
++ BiarchTripleAliases.append(begin(PPC64MuslTriples), end(PPC64MuslTriples));
++ break;
++ case llvm::Triple::ppcle:
++ LibDirs.append(begin(PPCLELibDirs), end(PPCLELibDirs));
++ TripleAliases.append(begin(PPCLEMuslTriples), end(PPCLEMuslTriples));
++ BiarchLibDirs.append(begin(PPC64LELibDirs), end(PPC64LELibDirs));
++ BiarchTripleAliases.append(begin(PPC64LEMuslTriples), end(PPC64LEMuslTriples));
++ break;
++ case llvm::Triple::ppc64:
++ LibDirs.append(begin(PPC64LibDirs), end(PPC64LibDirs));
++ TripleAliases.append(begin(PPC64MuslTriples), end(PPC64MuslTriples));
++ BiarchLibDirs.append(begin(PPCLibDirs), end(PPCLibDirs));
++ BiarchTripleAliases.append(begin(PPCMuslTriples), end(PPCMuslTriples));
++ break;
++ case llvm::Triple::ppc64le:
++ LibDirs.append(begin(PPC64LELibDirs), end(PPC64LELibDirs));
++ TripleAliases.append(begin(PPC64LEMuslTriples), end(PPC64LEMuslTriples));
++ BiarchLibDirs.append(begin(PPCLELibDirs), end(PPCLELibDirs));
++ BiarchTripleAliases.append(begin(PPCLEMuslTriples), end(PPCLEMuslTriples));
++ break;
++ case llvm::Triple::riscv64:
++ LibDirs.append(begin(RISCV64LibDirs), end(RISCV64LibDirs));
++ TripleAliases.append(begin(RISCV64MuslTriples), end(RISCV64MuslTriples));
++ break;
++ default:
++ break;
++ }
++ TripleAliases.push_back(TargetTriple.str());
++ if (TargetTriple.str() != BiarchTriple.str())
++ BiarchTripleAliases.push_back(BiarchTriple.str());
++ return;
++ }
++
+ // Android targets should not use GNU/Linux tools or libraries.
+ if (TargetTriple.isAndroid()) {
+ static const char *const AArch64AndroidTriples[] = {
diff --git a/srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch b/srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch
new file mode 100644
index 000000000000..4ad6412d1e6c
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch
@@ -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 =
diff --git a/srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch b/srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch
new file mode 100644
index 000000000000..21fc8003c5f1
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch
@@ -0,0 +1,48 @@
+--- a/clang/lib/Basic/Targets/PPC.h
++++ b/clang/lib/Basic/Targets/PPC.h
+@@ -415,11 +415,10 @@ public:
+ LongDoubleFormat = &llvm::APFloat::IEEEdouble();
+ } else if ((Triple.getArch() == llvm::Triple::ppc64le)) {
+ DataLayout = "e-m:e-i64:64-n32:64";
+- ABI = "elfv2";
+ } else {
+ DataLayout = "E-m:e-i64:64-n32:64";
+- ABI = "elfv1";
+ }
++ ABI = "elfv2";
+
+ if (Triple.isOSFreeBSD() || Triple.isOSOpenBSD() || Triple.isMusl()) {
+ LongDoubleWidth = LongDoubleAlign = 64;
+--- a/clang/lib/CodeGen/TargetInfo.cpp
++++ b/clang/lib/CodeGen/TargetInfo.cpp
+@@ -10927,9 +10927,9 @@ const TargetCodeGenInfo &CodeGenModule::getTargetCodeGenInfo() {
+ return SetCGInfo(new AIXTargetCodeGenInfo(Types, /*Is64Bit*/ true));
+
+ if (Triple.isOSBinFormatELF()) {
+- PPC64_SVR4_ABIInfo::ABIKind Kind = PPC64_SVR4_ABIInfo::ELFv1;
+- if (getTarget().getABI() == "elfv2")
+- Kind = PPC64_SVR4_ABIInfo::ELFv2;
++ PPC64_SVR4_ABIInfo::ABIKind Kind = PPC64_SVR4_ABIInfo::ELFv2;
++ if (getTarget().getABI() == "elfv1")
++ Kind = PPC64_SVR4_ABIInfo::ELFv1;
+ bool IsSoftFloat = CodeGenOpts.FloatABI == "soft";
+
+ return SetCGInfo(
+--- a/clang/lib/Driver/ToolChains/Clang.cpp
++++ b/clang/lib/Driver/ToolChains/Clang.cpp
+@@ -1920,14 +1920,7 @@ void Clang::AddPPCTargetArgs(const ArgList &Args,
+ const llvm::Triple &T = getToolChain().getTriple();
+ if (T.isOSBinFormatELF()) {
+ switch (getToolChain().getArch()) {
+- case llvm::Triple::ppc64: {
+- if ((T.isOSFreeBSD() && T.getOSMajorVersion() >= 13) ||
+- T.isOSOpenBSD() || T.isMusl())
+- ABIName = "elfv2";
+- else
+- ABIName = "elfv1";
+- break;
+- }
++ case llvm::Triple::ppc64:
+ case llvm::Triple::ppc64le:
+ ABIName = "elfv2";
+ break;
diff --git a/srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch b/srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch
new file mode 100644
index 000000000000..360cfc1ba7f1
--- /dev/null
+++ b/srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch
@@ -0,0 +1,35 @@
+--- 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__) || SANITIZER_RISCV64
++ defined(__hexagon__) || defined(__powerpc__) || 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_ANDROID
++#if (defined(__aarch64__) || defined(__powerpc__) || SANITIZER_RISCV64) && !SANITIZER_ANDROID
+ // GLIBC 2.20+ sys/user does not include asm/ptrace.h
+ # include <asm/ptrace.h>
+ #endif
diff --git a/srcpkgs/llvm15/patches/libcxx-musl.patch b/srcpkgs/llvm15/patches/libcxx-musl.patch
new file mode 100644
index 000000000000..bbd31ffc2cb1
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxx-musl.patch
@@ -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,
+ typename remove_reference<decltype(errno)>::type __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
+ typename remove_reference<decltype(errno)>::type __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,
+ typename remove_reference<decltype(errno)>::type __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
+ typename remove_reference<decltype(errno)>::type __current_errno = errno;
+ if (__current_errno == 0)
+ errno = __save_errno;
diff --git a/srcpkgs/llvm15/patches/libcxx-ppc.patch b/srcpkgs/llvm15/patches/libcxx-ppc.patch
new file mode 100644
index 000000000000..7a92f8004e1c
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxx-ppc.patch
@@ -0,0 +1,22 @@
+This ensures `is_iec559` is defined correctly under all long double ABIs,
+including musl and its 64-bit long double. Also, `__ppc__` or `__ppc64__`
+is not defined on gcc.
+
+--- a/libcxx/include/limits
++++ b/libcxx/include/limits
+@@ -426,8 +426,14 @@ protected:
+ _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type signaling_NaN() _NOEXCEPT {return __builtin_nansl("");}
+ _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type denorm_min() _NOEXCEPT {return __LDBL_DENORM_MIN__;}
+
+-#if (defined(__ppc__) || defined(__ppc64__))
++#if defined(__powerpc__) || defined(__powerpc64__)
++#if (__LDBL_MAX_EXP__ > __DBL_MAX_EXP__) || (__LDBL_MANT_DIG__ == __DBL_MANT_DIG__)
++ /* IEEE 754 quadruple or double precision */
++ static _LIBCPP_CONSTEXPR const bool is_iec559 = true;
++#else
++ /* 128-bit IBM double-double */
+ static _LIBCPP_CONSTEXPR const bool is_iec559 = false;
++#endif
+ #else
+ static _LIBCPP_CONSTEXPR const bool is_iec559 = true;
+ #endif
diff --git a/srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch b/srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch
new file mode 100644
index 000000000000..70292beb2fcd
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch
@@ -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()
diff --git a/srcpkgs/llvm15/patches/libcxxabi-dl.patch b/srcpkgs/llvm15/patches/libcxxabi-dl.patch
new file mode 100644
index 000000000000..3a15f9db8c98
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxxabi-dl.patch
@@ -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 @@
+ target_link_libraries(${target} PRIVATE m)
+ endif()
+
++ if (LIBCXX_HAS_C_LIB)
++ target_link_libraries(${target} PRIVATE dl)
++ endif()
++
+ if (LIBCXX_HAS_RT_LIB)
+ target_link_libraries(${target} PRIVATE rt)
+ endif()
diff --git a/srcpkgs/llvm15/patches/libcxxabi-musl.patch b/srcpkgs/llvm15/patches/libcxxabi-musl.patch
new file mode 100644
index 000000000000..55bf6f5aaa08
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxxabi-musl.patch
@@ -0,0 +1,37 @@
+diff --git a/libcxx/include/__support/musl/xlocale.h b/libcxx/include/__support/musl/xlocale.h
+index e674a41fa..f546119b9 100644
+--- a/libcxx/include/__support/musl/xlocale.h
++++ b/libcxx/include/__support/musl/xlocale.h
+@@ -24,27 +24,27 @@
+ extern "C" {
+ #endif
+
+-inline _LIBCPP_HIDE_FROM_ABI long long
++static inline long long
+ strtoll_l(const char *__nptr, char **__endptr, int __base, locale_t) {
+ return ::strtoll(__nptr, __endptr, __base);
+ }
+
+-inline _LIBCPP_HIDE_FROM_ABI unsigned long long
++static inline unsigned long long
+ strtoull_l(const char *__nptr, char **__endptr, int __base, locale_t) {
+ return ::strtoull(__nptr, __endptr, __base);
+ }
+
+-inline _LIBCPP_HIDE_FROM_ABI long long
++static inline long long
+ wcstoll_l(const wchar_t *__nptr, wchar_t **__endptr, int __base, locale_t) {
+ return ::wcstoll(__nptr, __endptr, __base);
+ }
+
+-inline _LIBCPP_HIDE_FROM_ABI unsigned long long
++static inline unsigned long long
+ wcstoull_l(const wchar_t *__nptr, wchar_t **__endptr, int __base, locale_t) {
+ return ::wcstoull(__nptr, __endptr, __base);
+ }
+
+-inline _LIBCPP_HIDE_FROM_ABI long double
++static inline long double
+ wcstold_l(const wchar_t *__nptr, wchar_t **__endptr, locale_t) {
+ return ::wcstold(__nptr, __endptr);
+ }
diff --git a/srcpkgs/llvm15/patches/libomp-soname.patch b/srcpkgs/llvm15/patches/libomp-soname.patch
new file mode 100644
index 000000000000..9a622cd9254c
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libomp-soname.patch
@@ -0,0 +1,12 @@
+diff --git a/openmp/runtime/src/CMakeLists.txt b/openmp/runtime/src/CMakeLists.txt
+index df1ca9d90..9d2c3b7b9 100644
+--- a/openmp/runtime/src/CMakeLists.txt
++++ b/openmp/runtime/src/CMakeLists.txt
+@@ -150,6 +150,7 @@ libomp_get_libflags(LIBOMP_CONFIGURED_LIBFLAGS)
+ # Build libomp library. Add LLVMSupport dependency if building in-tree with libomptarget profiling enabled.
+ if(OPENMP_STANDALONE_BUILD OR (NOT OPENMP_ENABLE_LIBOMP_PROFILING))
+ add_library(omp ${LIBOMP_LIBRARY_KIND} ${LIBOMP_SOURCE_FILES})
++ set_target_properties(omp PROPERTIES VERSION ${LIBOMP_VERSION_MAJOR} SOVERSION ${LIBOMP_VERSION_MAJOR})
+ # Linking command will include libraries in LIBOMP_CONFIGURED_LIBFLAGS
+ target_link_libraries(omp ${LIBOMP_CONFIGURED_LIBFLAGS} ${LIBOMP_DL_LIBS})
+ else()
diff --git a/srcpkgs/llvm15/patches/lldb-musl.patch b/srcpkgs/llvm15/patches/lldb-musl.patch
new file mode 100644
index 000000000000..026c5e1e61ba
--- /dev/null
+++ b/srcpkgs/llvm15/patches/lldb-musl.patch
@@ -0,0 +1,40 @@
+--- a/lldb/source/Plugins/Process/Linux/Procfs.h
++++ b/lldb/source/Plugins/Process/Linux/Procfs.h
+@@ -10,6 +10,7 @@
+ // sys/procfs.h on Android/Linux for all supported architectures.
+
+ #include <sys/ptrace.h>
++#include <asm/ptrace.h>
+
+ #include "lldb/lldb-types.h"
+
+@@ -17,23 +18,13 @@
+
+ #include <vector>
+
+-#ifdef __ANDROID__
+-#if defined(__arm64__) || defined(__aarch64__)
+-typedef unsigned long elf_greg_t;
+-typedef elf_greg_t
+- elf_gregset_t[(sizeof(struct user_pt_regs) / sizeof(elf_greg_t))];
+-typedef struct user_fpsimd_state elf_fpregset_t;
+-#ifndef NT_FPREGSET
+-#define NT_FPREGSET NT_PRFPREG
+-#endif // NT_FPREGSET
+-#elif defined(__mips__)
+-#ifndef NT_FPREGSET
+-#define NT_FPREGSET NT_PRFPREG
+-#endif // NT_FPREGSET
+-#endif
+-#else // __ANDROID__
++#if !defined(__GLIBC__) && defined(__powerpc__)
++#define pt_regs musl_pt_regs
++#include <sys/procfs.h>
++#undef pt_regs
++#else
+ #include <sys/procfs.h>
+-#endif // __ANDROID__
++#endif
+
+ namespace lldb_private {
+ namespace process_linux {
diff --git a/srcpkgs/llvm15/patches/llvm-001-musl.patch b/srcpkgs/llvm15/patches/llvm-001-musl.patch
new file mode 100644
index 000000000000..f2a3f8d62813
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-001-musl.patch
@@ -0,0 +1,57 @@
+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;
+diff --git a/lib/Support/Unix/DynamicLibrary.inc b/lib/Support/Unix/DynamicLibrary.inc
+index a2a37996..2f86c470 100644
+--- a/llvm/lib/Support/Unix/DynamicLibrary.inc
++++ b/llvm/lib/Support/Unix/DynamicLibrary.inc
+@@ -102,7 +102,7 @@ static void *DoSearch(const char* SymbolName) {
+
+ // This macro returns the address of a well-known, explicit symbol
+ #define EXPLICIT_SYMBOL(SYM) \
+- if (!strcmp(SymbolName, #SYM)) return &SYM
++ if (!strcmp(SymbolName, #SYM)) return (void *)&SYM
+
+ // Under glibc we have a weird situation. The stderr/out/in symbols are both
+ // macros and global variables because of standards requirements. So, we
+diff --git a/utils/unittest/googletest/src/gtest.cc b/utils/unittest/googletest/src/gtest.cc
+index d882ab2e..f1fb12d0 100644
+--- a/llvm/utils/unittest/googletest/src/gtest.cc
++++ b/llvm/utils/unittest/googletest/src/gtest.cc
+@@ -128,6 +128,7 @@
+
+ #if GTEST_CAN_STREAM_RESULTS_
+ # include <arpa/inet.h> // NOLINT
++# include <sys/socket.h> // NOLINT
+ # include <netdb.h> // NOLINT
+ # include <sys/socket.h> // NOLINT
+ # include <sys/types.h> // NOLINT
diff --git a/srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch b/srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch
new file mode 100644
index 000000000000..0071d964bd37
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch
@@ -0,0 +1,30 @@
+This patches LLVM to use ELFv2 on ppc64 unconditionally unless overridden. We
+need this because unlike most distros we use ELFv2 for both glibc and musl
+on big endian ppc64.
+
+diff --git a/lib/Target/PowerPC/PPCTargetMachine.cpp b/lib/Target/PowerPC/PPCTargetMachine.cpp
+index 0634833e..b7cbc2e7 100644
+--- a/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp
++++ b/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp
+@@ -222,9 +222,8 @@ static PPCTargetMachine::PPCABI computeTargetABI(const Triple &TT,
+
+ switch (TT.getArch()) {
+ case Triple::ppc64le:
+- return PPCTargetMachine::PPC_ABI_ELFv2;
+ case Triple::ppc64:
+- return PPCTargetMachine::PPC_ABI_ELFv1;
++ return PPCTargetMachine::PPC_ABI_ELFv2;
+ default:
+ return PPCTargetMachine::PPC_ABI_UNKNOWN;
+ }
+diff --git a/test/CodeGen/PowerPC/ppc64-elf-abi.ll b/test/CodeGen/PowerPC/ppc64-elf-abi.ll
+index 8b1cf6b5..296a2afa 100644
+--- a/llvm/test/CodeGen/PowerPC/ppc64-elf-abi.ll
++++ b/llvm/test/CodeGen/PowerPC/ppc64-elf-abi.ll
+@@ -1,4 +1,5 @@
+-; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv1
++; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv2
++; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-musl < %s | FileCheck %s -check-prefix=CHECK-ELFv2
+ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu -target-abi elfv1 < %s | FileCheck %s -check-prefix=CHECK-ELFv1
+ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu -target-abi elfv2 < %s | FileCheck %s -check-prefix=CHECK-ELFv2
+ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv2
diff --git a/srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch b/srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch
new file mode 100644
index 000000000000..b5d15974375d
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch
@@ -0,0 +1,11 @@
+--- a/llvm/lib/Target/PowerPC/PPCSubtarget.cpp
++++ b/llvm/lib/Target/PowerPC/PPCSubtarget.cpp
+@@ -165,7 +165,7 @@ void PPCSubtarget::initSubtargetFeatures(StringRef CPU, StringRef FS) {
+
+ if ((TargetTriple.isOSFreeBSD() && TargetTriple.getOSMajorVersion() >= 13) ||
+ TargetTriple.isOSNetBSD() || TargetTriple.isOSOpenBSD() ||
+- TargetTriple.isMusl())
++ isTargetLinux())
+ SecurePlt = true;
+
+ if (HasSPE && IsPPC64)
diff --git a/srcpkgs/llvm15/patches/llvm-004-override-opt.patch b/srcpkgs/llvm15/patches/llvm-004-override-opt.patch
new file mode 100644
index 000000000000..51d0e4b31b32
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-004-override-opt.patch
@@ -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)
diff --git a/srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch b/srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch
new file mode 100644
index 000000000000..d332687b9d92
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch
@@ -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);
diff --git a/srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch b/srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch
new file mode 100644
index 000000000000..a00abd216665
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch
@@ -0,0 +1,25 @@
+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__) || defined (__ppc__) || \
+- defined(_POWER) || defined(_ARCH_PPC))
++ defined(_POWER) || defined(_ARCH_PPC) || (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
diff --git a/srcpkgs/llvm15/template b/srcpkgs/llvm15/template
new file mode 100644
index 000000000000..4d2777451e24
--- /dev/null
+++ b/srcpkgs/llvm15/template
@@ -0,0 +1,442 @@
+# Template file for 'llvm15'
+pkgname=llvm15
+version=15.0.7
+revision=1
+build_wrksrc=llvm
+build_style=cmake
+_ext_suffix=".cpython-${py3_ver/./}-linux-${XBPS_TARGET_LIBC/glibc/gnu}.so"
+configure_args="
+ -DCMAKE_BUILD_TYPE=Release -Wno-dev
+ -DENABLE_LINKER_BUILD_ID=YES
+ -DLLDB_USE_SYSTEM_SIX=YES
+ -DLIBCXX_CXX_ABI=libcxxabi
+ -DLIBCXX_ENABLE_STATIC_ABI_LIBRARY=YES
+ -DLIBCXXABI_USE_LLVM_UNWINDER=YES
+ -DLIBCXXABI_ENABLE_STATIC_UNWINDER=YES
+ -DLIBOMP_ENABLE_SHARED=YES
+ -DLIBOMP_INSTALL_ALIASES=NO
+ -DLLVM_INCLUDE_DOCS=YES
+ -DLLVM_BUILD_DOCS=YES
+ -DLLVM_ENABLE_SPHINX=YES
+ -DSPHINX_WARNINGS_AS_ERRORS=NO
+ -DLLVM_INSTALL_UTILS=YES
+ -DLLVM_BUILD_LLVM_DYLIB=YES
+ -DLLVM_LINK_LLVM_DYLIB=YES
+ -DLLVM_ENABLE_RTTI=YES
+ -DLLVM_ENABLE_FFI=YES
+ -DLLVM_BINUTILS_INCDIR=/usr/include
+ -DLLVM_ENABLE_PER_TARGET_RUNTIME_DIR=NO
+ -DLLDB_PYTHON_RELATIVE_PATH=lib/python${py3_ver}/site-packages
+ -DLLDB_PYTHON_EXE_RELATIVE_PATH=bin/python${py3_ver}
+ -DLLDB_PYTHON_EXT_SUFFIX=$_ext_suffix"
+hostmakedepends="perl python3 zlib-devel libffi-devel swig python3-Sphinx
+ python3-recommonmark python3-sphinx-automodapi"
+makedepends="python3-devel zlib-devel elfutils-devel libffi-devel libedit-devel
+ libxml2-devel binutils-devel libatomic-devel"
+depends="libllvm15>=${version}_${revision}"
+short_desc="Low Level Virtual Machine"
+maintainer="Orphaned <orphan@voidlinux.org>"
+license="Apache-2.0"
+homepage="https://www.llvm.org"
+distfiles="https://github.com/llvm/llvm-project/releases/download/llvmorg-${version}/llvm-project-${version}.src.tar.xz"
+checksum=8b5fcb24b4128cf04df1b0b9410ce8b1a729cb3c544e6da885d234280dedeac6
+lib32disabled=yes
+python_version=3
+
+if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
+ configure_args+=" -DLIBCXX_HAS_MUSL_LIBC=YES
+ -DCOMPILER_RT_BUILD_GWP_ASAN=OFF"
+fi
+
+# "operand out of range" assembler failures
+case "$XBPS_TARGET_MACHINE" in
+ ppc64*) ;;
+ ppc*) configure_args+=" -DCLANG_ENABLE_CLANGD=OFF" ;;
+esac
+
+_enabled_projects="clang;clang-tools-extra;compiler-rt;libcxx;libcxxabi;libunwind;lld"
+
+_lldb_enable=yes
+_libomp_enable=no
+
+case "$XBPS_TARGET_MACHINE" in
+ ppc64le*) ;;
+ ppc*|i686*|riscv64*) _lldb_enable=no ;;
+esac
+
+case "$XBPS_TARGET_MACHINE" in
+ x86_64*|aarch64*|ppc64*) _libomp_enable=yes;;
+esac
+
+subpackages="clang-tools-extra"
+
+# must go before clang
+if [ "$_libomp_enable" = "yes" ]; then
+ _enabled_projects+=";openmp"
+ subpackages+=" libomp libomp-devel"
+ # because of cmake nonsense referencing libomptarget.so.*
+ depends+=" libomp>=${version}_${revision}"
+ if [ "$CROSS_BUILD" ]; then
+ # Seems to require a full host llvm/clang build
+ configure_args+=" -DLIBOMPTARGET_BUILD_CUDA_PLUGIN=OFF"
+ configure_args+=" -DLIBOMPTARGET_BUILD_AMDGPU_PLUGIN=OFF"
+ fi
+fi
+
+subpackages+=" clang clang-analyzer libclang libclang-cpp
+ llvm-libunwind llvm-libunwind-devel libcxx libcxx-devel
+ libcxxabi libcxxabi-devel libllvm15"
+
+if [ "$_lldb_enable" = "yes" ]; then
+ # XXX fails to cross compile due to python
+ _enabled_projects+=";lldb"
+ subpackages+=" lldb lldb-devel"
+fi
+
+subpackages+=" lld lld-devel"
+
+configure_args+=" -DLLVM_ENABLE_PROJECTS=${_enabled_projects}"
+
+post_patch() {
+ if [ "$_lldb_enable" = "yes" ]; then
+ if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
+ vsed -i 's|__ptrace_request|int|g' \
+ ${wrksrc}/lldb/source/Plugins/Process/Linux/NativeProcessLinux.cpp
+ fi
+ # disable docs for lldb as they fail to generate
+ vsed -i '/add_subdirectory(docs)/d' \
+ ${wrksrc}/lldb/CMakeLists.txt
+ fi
+
+ # update config.guess for better platform detection
+ cp $XBPS_COMMONDIR/environment/configure/automake/config.guess \
+ ${wrksrc}/llvm/cmake
+
+ # fix linker failures on some archs
+ vsed -i 's,check_library_exists(gcc_s .*,set(LIBCXXABI_HAS_GCC_S_LIB ON),' \
+ ${wrksrc}/libcxxabi/cmake/config-ix.cmake
+ vsed -i 's,check_library_exists(gcc .*,set(LIBCXXABI_HAS_GCC_LIB ON),' \
+ ${wrksrc}/libcxxabi/cmake/config-ix.cmake
+
+ # need libssp_nonshared on some musl platforms (because of nodefaultlibs)
+ case "$XBPS_TARGET_MACHINE" in
+ ppc64*) ;;
+ ppc*-musl|i686-musl|mips*-musl)
+ vsed -i 's,^# Setup flags.$,add_library_flags(ssp_nonshared),' \
+ ${wrksrc}/libunwind/src/CMakeLists.txt
+ vsed -i 's,^# Setup flags.$,add_library_flags(ssp_nonshared),' \
+ ${wrksrc}/libcxxabi/src/CMakeLists.txt
+ vsed -i 's,#ssp,,' ${wrksrc}/libcxx/CMakeLists.txt
+ ;;
+ esac
+
+ case "$XBPS_TARGET_MACHINE" in
+ arm*-musl|i686-musl) # sanitizer code is broken since it duplicates some libc bits
+ vsed -i 's/set(COMPILER_RT_HAS_SANITIZER_COMMON TRUE)/set(COMPILER_RT_HAS_SANITIZER_COMMON FALSE)/' \
+ ${wrksrc}/compiler-rt/cmake/config-ix.cmake
+ ;;
+ esac
+}
+
+pre_configure() {
+ local triplet
+
+ # Vastly reduce size of debugging symbols:
+ CFLAGS=${CFLAGS/ -g/ -g1}
+ CXXFLAGS=${CXXFLAGS/ -g/ -g1}
+
+ # since gcc9, the build likes to blow up for ppc32 apparently because
+ # of clang being too large for a 24-bit relative call to the PLT, so
+ # optimize for size instead
+ case "$XBPS_TARGET_MACHINE" in
+ ppc64*) ;;
+ mips*-musl|ppc*) configure_args+=" -DVOID_CXX_OPT_FLAGS=-Os" ;;
+ esac
+
+ if [ "$CROSS_BUILD" ]; then
+ msg_normal "Building host tblgen\n"
+ mkdir -p build/HOST
+ cd build/HOST
+ CC="$BUILD_CC" CXX="$BUILD_CXX" CFLAGS="$BUILD_CFLAGS" \
+ CXXFLAGS="$BUILD_CXXFLAGS" LDFLAGS="$BUILD_LDFLAGS" \
+ cmake ../.. -DCMAKE_BUILD_TYPE=Release \
+ -DLLVM_ENABLE_PROJECTS=${_enabled_projects}
+ make ${makejobs} -C utils/TableGen
+ make ${makejobs} -C tools/clang/utils/TableGen
+ make ${makejobs} -C tools/clang/tools/extra/clang-tidy/misc/ConfusableTable
+ make ${makejobs} -C tools/clang/tools/extra/pseudo/gen
+ [ "$_lldb_enable" = "yes" ] && make ${makejobs} -C tools/lldb/utils/TableGen
+ configure_args+=" -DLLVM_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/llvm-tblgen"
+ configure_args+=" -DCLANG_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/clang-tblgen"
+ configure_args+=" -DCLANG_TIDY_CONFUSABLE_CHARS_GEN=${wrksrc}/llvm/build/HOST/bin/clang-tidy-confusable-chars-gen"
+ configure_args+=" -DCLANG_PSEUDO_GEN=${wrksrc}/llvm/build/HOST/bin/clang-pseudo-gen"
+ [ "$_lldb_enable" = "yes" ] && configure_args+=" -DLLDB_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/lldb-tblgen"
+ cd ../..
+ fi
+
+ case "$XBPS_TARGET_MACHINE" in
+ i686*) _arch="X86";;
+ x86_64*) _arch="X86";;
+ armv5*) _arch="Armv5te";;
+ armv6*) _arch="Armv6";;
+ armv7*) _arch="Armv7";;
+ aarch64*) _arch="AArch64";;
+ mips*) _arch="Mips";;
+ ppc*) _arch="PowerPC";;
+ riscv64*) _arch="RISCV64";;
+ esac
+
+ triplet=${XBPS_CROSS_TRIPLET:-$XBPS_TRIPLET}
+
+ configure_args+=" -DLLVM_TARGET_ARCH=${_arch}"
+ configure_args+=" -DLLVM_HOST_TRIPLE=${triplet}"
+ configure_args+=" -DLLVM_DEFAULT_TARGET_TRIPLE=${triplet}"
+}
+
+do_install() {
+ cd build
+ cmake -DCMAKE_INSTALL_PREFIX=${DESTDIR}/usr -P cmake_install.cmake
+
+ # Required for multilib.
+ if [ "$XBPS_TARGET_MACHINE" = "x86_64" ]; then
+ for _header in llvm-config; do
+ mv ${DESTDIR}/usr/include/llvm/Config/${_header}{,-64}.h
+ vinstall ${FILESDIR}/llvm-Config-${_header}.h 644 \
+ usr/include/llvm/Config ${_header}.h
+ done
+ fi
+
+ # Remove llvm-config-host in cross builds.
+ if [ "$CROSS_BUILD" ]; then
+ rm -f ${DESTDIR}/usr/bin/llvm-config-host
+ fi
+
+ # Install libcxxabi headers
+ vinstall ${wrksrc}/libcxxabi/include/__cxxabi_config.h 644 usr/include
+ vinstall ${wrksrc}/libcxxabi/include/cxxabi.h 644 usr/include
+
+ # Install libunwind headers
+ vinstall ${wrksrc}/libunwind/include/__libunwind_config.h 644 usr/include
+ vinstall ${wrksrc}/libunwind/include/libunwind.h 644 usr/include
+ vinstall ${wrksrc}/libunwind/include/unwind.h 644 usr/include
+ vinstall ${wrksrc}/libunwind/include/mach-o/compact_unwind_encoding.h \
+ 644 usr/include/mach-o
+}
+
+clang-analyzer_package() {
+ pycompile_dirs="usr/share/scan-view"
+ depends="clang-${version}_${revision} python3 perl"
+ short_desc+=" - A source code analysis framework"
+ homepage="https://clang-analyzer.llvm.org/"
+ pkg_install() {
+ vmove "usr/bin/scan-*"
+ vmove "usr/libexec/*analyzer"
+ vmove "usr/share/scan-*"
+ vmove usr/share/man/man1/scan-build.1
+ }
+}
+
+clang-tools-extra_package() {
+ lib32disabled=yes
+ depends="clang-${version}_${revision} python3"
+ short_desc+=" - Extra Clang tools"
+ homepage="https://clang.llvm.org/extra/"
+ pkg_install() {
+ vmove usr/bin/clang-apply-replacements
+ vmove usr/bin/clang-doc
+ vmove usr/bin/clang-include-fixer
+ vmove usr/bin/clang-query
+ vmove usr/bin/clang-rename
+ vmove usr/bin/clang-reorder-fields
+ vmove usr/bin/clang-tidy
+ vmove usr/bin/clangd
+ vmove usr/bin/diagtool
+ vmove usr/bin/find-all-symbols
+ vmove usr/bin/hmaptool
+ vmove usr/bin/modularize
+ vmove usr/bin/pp-trace
+ vmove usr/bin/sancov
+ vmove usr/include/clang-tidy
+ vmove "usr/lib/libclangApplyReplacements*"
+ vmove "usr/lib/libclangDoc*"
+ vmove "usr/lib/libclangIncludeFixer*"
+ vmove "usr/lib/libclangReorderFields*"
+ vmove "usr/lib/libclangQuery*"
+ vmove "usr/lib/libclangTidy*"
+ vmove "usr/share/clang/*include-fixer*"
+ vmove "usr/share/clang/*rename*"
+ vmove "usr/share/clang/*tidy*"
+ vmove usr/share/doc/LLVM/clang-tools
+ vmove usr/share/man/man1/diagtool.1
+ vmove usr/share/man/man1/extraclangtools.1
+ }
+}
+
+clang_package() {
+ lib32disabled=yes
+ depends="libstdc++-devel libgcc-devel binutils ${XBPS_TARGET_LIBC}-devel
+ libclang-${version}_${revision}"
+ short_desc+=" - C language family frontend"
+ homepage="https://clang.llvm.org/"
+ pkg_install() {
+ vmove "usr/bin/*clang*"
+ vmove usr/bin/c-index-test
+ vmove usr/include/clang
+ vmove usr/include/clang-c
+ vmove usr/lib/clang
+ vmove usr/lib/cmake/clang
+ vmove "usr/lib/libclang*.a"
+ vmove "usr/lib/libclang*.so"
+ vmove usr/share/clang
+ vmove usr/share/doc/LLVM/clang
+ vmove usr/share/man/man1/clang.1
+ }
+}
+
+libclang_package() {
+ short_desc+=" - C frontend runtime library"
+ pkg_install() {
+ vmove "usr/lib/libclang.so.*"
+ }
+}
+
+libclang-cpp_package() {
+ short_desc+=" - C frontend runtime library (C++ interface)"
+ pkg_install() {
+ vmove "usr/lib/libclang-cpp.so.*"
+ }
+}
+
+lld_package() {
+ lib32disabled=yes
+ short_desc+=" - linker"
+ homepage="https://lld.llvm.org"
+ pkg_install() {
+ vmove "usr/bin/ld.lld*"
+ vmove "usr/bin/ld64.lld*"
+ vmove "usr/bin/lld*"
+ vmove usr/bin/wasm-ld
+ vmove usr/share/doc/LLVM/lld
+ }
+}
+
+lld-devel_package() {
+ lib32disabled=yes
+ short_desc+=" - linker - development files"
+ homepage="https://lld.llvm.org"
+ depends="lld>=${version}_${revision}"
+ pkg_install() {
+ vmove usr/include/lld
+ vmove usr/lib/cmake/lld
+ vmove "usr/lib/liblld*a"
+ }
+}
+
+lldb_package() {
+ lib32disabled=yes
+ depends+=" python3-six"
+ short_desc+=" - LLDB debugger"
+ homepage="https://lldb.llvm.org/"
+ pkg_install() {
+ vmove "usr/bin/*lldb*"
+ vmove "usr/lib/liblldb*so.*"
+ vmove usr/lib/python*
+ }
+}
+
+lldb-devel_package() {
+ lib32disabled=yes
+ depends="lldb>=${version}_${revision}"
+ short_desc+=" - LLDB debugger - development files"
+ pkg_install() {
+ vmove usr/include/lldb
+ vmove "usr/lib/liblldb*.so"
+ }
+}
+
+llvm-libunwind_package() {
+ short_desc+=" - libunwind"
+ pkg_install() {
+ vmove "usr/lib/libunwind.so.*"
+ }
+}
+
+llvm-libunwind-devel_package() {
+ short_desc+=" - libunwind - development files"
+ depends="llvm-libunwind>=${version}_${revision}"
+ conflicts="libunwind-devel>=0"
+ pkg_install() {
+ vmove usr/include/mach-o
+ vmove "usr/include/*unwind*"
+ vmove "usr/lib/libunwind.a"
+ vmove "usr/lib/libunwind.so"
+ vmove usr/share/doc/LLVM/libunwind
+ }
+}
+
+libcxxabi_package() {
+ short_desc+=" - low level support for libc++"
+ pkg_install() {
+ vmove "usr/lib/libc++abi.so.*"
+ }
+}
+
+libcxxabi-devel_package() {
+ short_desc+=" - low level support for libc++ - development files"
+ depends="libcxxabi>=${version}_${revision}"
+ pkg_install() {
+ vmove "usr/include/*cxxabi*"
+ vmove "usr/lib/libc++abi.so"
+ vmove "usr/lib/libc++abi.a"
+ }
+}
+
+libcxx_package() {
+ short_desc+=" - C++ standard library"
+ pkg_install() {
+ vmove "usr/lib/libc++.so.*"
+ }
+}
+
+libcxx-devel_package() {
+ short_desc+=" - C++ standard library - development files"
+ depends="libcxx>=${version}_${revision}"
+ pkg_install() {
+ vmove usr/include/c++
+ vmove "usr/lib/libc++.so"
+ vmove "usr/lib/libc++.a"
+ vmove "usr/lib/libc++experimental.a"
+ vmove usr/share/doc/LLVM/libcxx
+ }
+}
+
+libomp_package() {
+ short_desc+=" - Clang OpenMP support library"
+ pkg_install() {
+ vmove usr/lib/libarcher.so
+ vmove usr/lib/libompd.so
+ vmove "usr/lib/libomptarget.rtl.*.so"
+ vmove "usr/lib/libomp*.so.*"
+ }
+}
+
+libomp-devel_package() {
+ short_desc+=" - Clang OpenMP support library - development files"
+ depends="libomp>=${version}_${revision}"
+ pkg_install() {
+ vmove "usr/include/omp*.h"
+ vmove "usr/lib/clang/${version}/include/omp*.h"
+ vmove "usr/lib/libarcher*"
+ vmove "usr/lib/libomp*.so"
+ vmove usr/lib/cmake/openmp
+ vmove usr/share/doc/LLVM/openmp
+ vmove usr/share/man/man1/llvmopenmp.1
+ }
+}
+
+libllvm15_package() {
+ short_desc+=" - runtime library"
+ pkg_install() {
+ vmove "usr/lib/libLLVM-*.so*"
+ }
+}
diff --git a/srcpkgs/llvm15/update b/srcpkgs/llvm15/update
new file mode 100644
index 000000000000..e95cf26b3586
--- /dev/null
+++ b/srcpkgs/llvm15/update
@@ -0,0 +1,3 @@
+site="https://github.com/llvm/llvm-project/releases"
+pattern="llvmorg-\K(\d+.){2}\d+(-rc\d+)?"
+ignore="*-rc*"
From cc0c0f8a0c554c5b7d542e30bcf165643c4c2311 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Sun, 18 Dec 2022 00:40:18 +0100
Subject: [PATCH 02/20] llvm: update to 15
---
common/shlibs | 6 +++---
srcpkgs/clang | 2 +-
srcpkgs/clang-analyzer | 2 +-
srcpkgs/clang-tools-extra | 2 +-
srcpkgs/libclang | 2 +-
srcpkgs/libclang-cpp | 2 +-
srcpkgs/libcxx | 2 +-
srcpkgs/libcxx-devel | 2 +-
srcpkgs/libcxxabi | 2 +-
srcpkgs/libcxxabi-devel | 2 +-
srcpkgs/libomp | 2 +-
srcpkgs/libomp-devel | 2 +-
srcpkgs/lld | 2 +-
srcpkgs/lld-devel | 2 +-
srcpkgs/lldb | 2 +-
srcpkgs/lldb-devel | 2 +-
srcpkgs/llvm-libunwind | 2 +-
srcpkgs/llvm-libunwind-devel | 2 +-
srcpkgs/llvm/template | 6 +++---
19 files changed, 23 insertions(+), 23 deletions(-)
diff --git a/common/shlibs b/common/shlibs
index 501dbbce7846..e8056352cef6 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -985,9 +985,9 @@ 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.12 lldb-12.0.0_1
-libclang.so.12 libclang-12.0.0_1
-libclang-cpp.so.12 libclang-cpp-12.0.0_1
+liblldb.so.15 lldb-15.0.7_1
+libclang.so.15 libclang-15.0.7_1
+libclang-cpp.so.15 libclang-cpp-15.0.7_1
libLLVM-11.so libllvm11-11.0.0_1
libLLVM-12.so libllvm12-12.0.0_1
libLLVM-15.so libllvm15-15.0.7_1
diff --git a/srcpkgs/clang b/srcpkgs/clang
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/clang
+++ b/srcpkgs/clang
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/clang-analyzer b/srcpkgs/clang-analyzer
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/clang-analyzer
+++ b/srcpkgs/clang-analyzer
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/clang-tools-extra b/srcpkgs/clang-tools-extra
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/clang-tools-extra
+++ b/srcpkgs/clang-tools-extra
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libclang b/srcpkgs/libclang
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libclang
+++ b/srcpkgs/libclang
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libclang-cpp b/srcpkgs/libclang-cpp
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libclang-cpp
+++ b/srcpkgs/libclang-cpp
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxx b/srcpkgs/libcxx
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxx
+++ b/srcpkgs/libcxx
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxx-devel b/srcpkgs/libcxx-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxx-devel
+++ b/srcpkgs/libcxx-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxxabi b/srcpkgs/libcxxabi
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxxabi
+++ b/srcpkgs/libcxxabi
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxxabi-devel b/srcpkgs/libcxxabi-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxxabi-devel
+++ b/srcpkgs/libcxxabi-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libomp b/srcpkgs/libomp
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libomp
+++ b/srcpkgs/libomp
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libomp-devel b/srcpkgs/libomp-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libomp-devel
+++ b/srcpkgs/libomp-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lld b/srcpkgs/lld
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lld
+++ b/srcpkgs/lld
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lld-devel b/srcpkgs/lld-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lld-devel
+++ b/srcpkgs/lld-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lldb b/srcpkgs/lldb
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lldb
+++ b/srcpkgs/lldb
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lldb-devel b/srcpkgs/lldb-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lldb-devel
+++ b/srcpkgs/lldb-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm-libunwind b/srcpkgs/llvm-libunwind
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/llvm-libunwind
+++ b/srcpkgs/llvm-libunwind
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm-libunwind-devel b/srcpkgs/llvm-libunwind-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/llvm-libunwind-devel
+++ b/srcpkgs/llvm-libunwind-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm/template b/srcpkgs/llvm/template
index a92db6f94f9f..fc1c850bd26f 100644
--- a/srcpkgs/llvm/template
+++ b/srcpkgs/llvm/template
@@ -1,11 +1,11 @@
# Template file for 'llvm'
pkgname=llvm
-version=12.0.0
+version=15
revision=1
build_style=meta
-depends="llvm12"
-replaces="llvm11>=0 llvm10>=0 llvm9>=0 llvm8>=0 llvm7>=0 llvm6.0>=0 llvm3.9>=0"
+depends="llvm15"
short_desc="LLVM meta package"
maintainer="Enno Boland <gottox@voidlinux.org>"
license="Public Domain"
homepage="https://www.voidlinux.org"
+replaces="llvm12>=0 llvm11>=0 llvm10>=0 llvm9>=0 llvm8>=0 llvm7>=0 llvm6.0>=0 llvm3.9>=0"
From 05f9377069fb4416137fe498a5e2fbeef248d39e Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Sun, 18 Dec 2022 12:20:08 +0100
Subject: [PATCH 03/20] llvm12: remove bumped subpackages
---
srcpkgs/llvm12/template | 264 +---------------------------------------
1 file changed, 1 insertion(+), 263 deletions(-)
diff --git a/srcpkgs/llvm12/template b/srcpkgs/llvm12/template
index f8ea3ba641ae..aea0b43cf573 100644
--- a/srcpkgs/llvm12/template
+++ b/srcpkgs/llvm12/template
@@ -50,55 +50,7 @@ case "$XBPS_TARGET_MACHINE" in
ppc*) configure_args+=" -DCLANG_ENABLE_CLANGD=OFF" ;;
esac
-_enabled_projects="clang;clang-tools-extra;compiler-rt;libcxx;libcxxabi;libunwind;lld"
-
-_lldb_enable=yes
-_libomp_enable=no
-
-case "$XBPS_TARGET_MACHINE" in
- ppc64le*) ;;
- ppc*|i686*) _lldb_enable=no ;;
-esac
-
-case "$XBPS_TARGET_MACHINE" in
- x86_64*|aarch64*|ppc64*) _libomp_enable=yes;;
-esac
-
-subpackages="clang-tools-extra"
-
-# must go before clang
-if [ "$_libomp_enable" = "yes" ]; then
- _enabled_projects+=";openmp"
- subpackages+=" libomp libomp-devel"
- # because of cmake nonsense referencing libomptarget.so.*
- depends+=" libomp>=${version}_${revision}"
-fi
-
-subpackages+=" clang clang-analyzer libclang libclang-cpp
- llvm-libunwind llvm-libunwind-devel libcxx libcxx-devel
- libcxxabi libcxxabi-devel libllvm12"
-
-if [ "$_lldb_enable" = "yes" ]; then
- # XXX fails to cross compile due to python
- _enabled_projects+=";lldb"
- subpackages+=" lldb lldb-devel"
-fi
-
-subpackages+=" lld lld-devel"
-
-configure_args+=" -DLLVM_ENABLE_PROJECTS=${_enabled_projects}"
-
post_patch() {
- if [ "$_lldb_enable" = "yes" ]; then
- if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
- vsed -i 's|__ptrace_request|int|g' \
- ${wrksrc}/lldb/source/Plugins/Process/Linux/NativeProcessLinux.cpp
- fi
- # disable docs for lldb as they fail to generate
- vsed -i '/add_subdirectory(docs)/d' \
- ${wrksrc}/lldb/CMakeLists.txt
- fi
-
# update config.guess for better platform detection
cp $XBPS_COMMONDIR/environment/configure/automake/config.guess \
${wrksrc}/llvm/cmake
@@ -154,14 +106,12 @@ pre_configure() {
cd build/HOST
CC="$BUILD_CC" CXX="$BUILD_CXX" CFLAGS="$BUILD_CFLAGS" \
CXXFLAGS="$BUILD_CXXFLAGS" LDFLAGS="$BUILD_LDFLAGS" \
- cmake ../.. -DCMAKE_BUILD_TYPE=Release \
- -DLLVM_ENABLE_PROJECTS=${_enabled_projects}
+ cmake ../.. -DCMAKE_BUILD_TYPE=Release
make ${makejobs} -C utils/TableGen
make ${makejobs} -C tools/clang/utils/TableGen
[ "$_lldb_enable" = "yes" ] && make ${makejobs} -C tools/lldb/utils/TableGen
configure_args+=" -DLLVM_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/llvm-tblgen"
configure_args+=" -DCLANG_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/clang-tblgen"
- [ "$_lldb_enable" = "yes" ] && configure_args+=" -DLLDB_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/lldb-tblgen"
cd ../..
fi
@@ -201,218 +151,6 @@ do_install() {
if [ "$CROSS_BUILD" ]; then
rm -f ${DESTDIR}/usr/bin/llvm-config-host
fi
-
- # Install libcxxabi headers
- vinstall ${wrksrc}/libcxxabi/include/__cxxabi_config.h 644 usr/include
- vinstall ${wrksrc}/libcxxabi/include/cxxabi.h 644 usr/include
-
- # Install libunwind headers
- vinstall ${wrksrc}/libunwind/include/__libunwind_config.h 644 usr/include
- vinstall ${wrksrc}/libunwind/include/libunwind.h 644 usr/include
- vinstall ${wrksrc}/libunwind/include/unwind.h 644 usr/include
- vinstall ${wrksrc}/libunwind/include/mach-o/compact_unwind_encoding.h \
- 644 usr/include/mach-o
-}
-
-clang-analyzer_package() {
- pycompile_dirs="usr/share/scan-view"
- depends="clang-${version}_${revision} python3 perl"
- short_desc+=" - A source code analysis framework"
- homepage="https://clang-analyzer.llvm.org/"
- pkg_install() {
- vmove usr/share/man/man1/scan-build.1
- vmove "/usr/bin/scan-*"
- vmove "/usr/share/scan-*"
- vmove "/usr/libexec/*analyzer"
- }
-}
-
-clang-tools-extra_package() {
- lib32disabled=yes
- depends="clang-${version}_${revision} python3"
- short_desc+=" - Extra Clang tools"
- homepage="https://clang.llvm.org/extra/"
- pkg_install() {
- vmove usr/include/clang-tidy
- vmove usr/bin/clang-apply-replacements
- vmove usr/bin/clang-query
- vmove usr/bin/clang-rename
- vmove usr/bin/clang-tidy
- vmove usr/bin/diagtool
- vmove usr/bin/find-all-symbols
- vmove usr/bin/hmaptool
- vmove usr/bin/modularize
- vmove usr/bin/pp-trace
- vmove usr/bin/sancov
- vmove "usr/lib/libclangApplyReplacements*"
- vmove "usr/lib/libclangQuery*"
- vmove "usr/lib/libclangTidy*"
- vmove "usr/share/clang/*tidy*"
- vmove usr/share/doc/clang-tools
- vmove usr/share/man/man1/extraclangtools.1
- vmove usr/share/man/man1/diagtool.1
- }
-}
-
-clang_package() {
- lib32disabled=yes
- depends="libstdc++-devel libgcc-devel binutils ${XBPS_TARGET_LIBC}-devel
- libclang-${version}_${revision}"
- short_desc+=" - C language family frontend"
- homepage="https://clang.llvm.org/"
- pkg_install() {
- vmove usr/include/clang
- vmove usr/include/clang-c
- vmove "usr/bin/*clang*"
- vmove usr/bin/c-index-test
- vmove usr/lib/clang
- vmove usr/lib/cmake/clang
- vmove "usr/lib/libclang*.a"
- vmove "usr/lib/libclang*.so"
- vmove usr/share/clang
- vmove usr/share/doc/clang
- vmove usr/share/man/man1/clang.1
- }
-}
-
-libclang_package() {
- short_desc+=" - C frontend runtime library"
- pkg_install() {
- vmove "usr/lib/libclang.so.*"
- }
-}
-
-libclang-cpp_package() {
- short_desc+=" - C frontend runtime library (C++ interface)"
- pkg_install() {
- vmove "usr/lib/libclang-cpp.so.*"
- }
-}
-
-lld_package() {
- lib32disabled=yes
- short_desc+=" - linker"
- homepage="https://lld.llvm.org"
- pkg_install() {
- vmove usr/bin/lld*
- vmove usr/bin/wasm-ld
- vmove usr/bin/ld.lld*
- vmove usr/bin/ld64.lld*
- vmove usr/share/doc/lld
- }
-}
-
-lld-devel_package() {
- lib32disabled=yes
- short_desc+=" - linker - development files"
- homepage="https://lld.llvm.org"
- depends="lld>=${version}_${revision}"
- pkg_install() {
- vmove usr/include/lld
- vmove usr/lib/cmake/lld
- vmove "usr/lib/liblld*a"
- }
-}
-
-lldb_package() {
- lib32disabled=yes
- depends+=" python3-six"
- short_desc+=" - LLDB debugger"
- homepage="https://lldb.llvm.org/"
- pkg_install() {
- vmove usr/bin/*lldb*
- vmove usr/lib/liblldb*so.*
- vmove /usr/lib/python*
- }
-}
-
-lldb-devel_package() {
- lib32disabled=yes
- depends="lldb>=${version}_${revision}"
- short_desc+=" - LLDB debugger - development files"
- pkg_install() {
- vmove usr/include/lldb
- vmove "usr/lib/liblldb*.so"
- }
-}
-
-llvm-libunwind_package() {
- short_desc+=" - libunwind"
- pkg_install() {
- vmove "usr/lib/libunwind.so.*"
- }
-}
-
-llvm-libunwind-devel_package() {
- short_desc+=" - libunwind - development files"
- depends="llvm-libunwind>=${version}_${revision}"
- conflicts="libunwind-devel>=0"
- pkg_install() {
- vmove usr/lib/libunwind.so
- vmove usr/lib/libunwind.a
- vmove "usr/include/*unwind*"
- vmove usr/include/mach-o
- vmove usr/share/doc/libunwind
- }
-}
-
-libcxxabi_package() {
- short_desc+=" - low level support for libc++"
- pkg_install() {
- vmove "usr/lib/libc++abi.so.*"
- }
-}
-
-libcxxabi-devel_package() {
- short_desc+=" - low level support for libc++ - development files"
- depends="libcxxabi>=${version}_${revision}"
- pkg_install() {
- vmove usr/lib/libc++abi.so
- vmove usr/lib/libc++abi.a
- vmove "usr/include/*cxxabi*"
- }
-}
-
-libcxx_package() {
- short_desc+=" - C++ standard library"
- pkg_install() {
- vmove "usr/lib/libc++.so.*"
- }
-}
-
-libcxx-devel_package() {
- short_desc+=" - C++ standard library - development files"
- depends="libcxx>=${version}_${revision}"
- pkg_install() {
- vmove usr/lib/libc++.so
- vmove usr/lib/libc++.a
- vmove usr/lib/libc++experimental.a
- vmove usr/include/c++
- vmove usr/share/doc/libcxx
- }
-}
-
-libomp_package() {
- short_desc+=" - Clang OpenMP support library"
- pkg_install() {
- vmove usr/lib/libomp.so
- vmove "usr/lib/libomptarget.rtl.*.so"
- vmove usr/lib/libarcher.so
- vmove "usr/lib/libomp*.so.*"
- }
-}
-
-libomp-devel_package() {
- short_desc+=" - Clang OpenMP support library - development files"
- depends="libomp>=${version}_${revision}"
- pkg_install() {
- vmove "usr/lib/libomp*.so"
- vmove "usr/lib/libarcher*"
- vmove "usr/include/omp*.h"
- vmove "usr/lib/clang/${version}/include/omp*.h"
- vmove usr/share/man/man1/llvmopenmp.1
- vmove usr/share/doc/openmp
- }
}
libllvm12_package() {
From b6401be9755f9a992324f91f18f134b6102bb1ae Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:27:03 +0100
Subject: [PATCH 04/20] mesa: rebuild for llvm15
---
srcpkgs/mesa/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/mesa/template b/srcpkgs/mesa/template
index 4c3c9ec6039e..0641b28a80d6 100644
--- a/srcpkgs/mesa/template
+++ b/srcpkgs/mesa/template
@@ -1,7 +1,7 @@
# Template file for 'mesa'
pkgname=mesa
version=22.2.4
-revision=2
+revision=3
build_style=meson
configure_args="-Dglvnd=true -Dshared-glapi=enabled -Dgbm=enabled -Degl=enabled
-Dosmesa=true -Dgles1=enabled -Dgles2=enabled -Dglx=dri -Ddri3=enabled
From e1baee5db88f77206c706f0f0321a21344c08383 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:34:04 +0100
Subject: [PATCH 05/20] bcc: rebuild for llvm15
---
srcpkgs/bcc/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/bcc/template b/srcpkgs/bcc/template
index 7526580f17ed..bdbcff7227a0 100644
--- a/srcpkgs/bcc/template
+++ b/srcpkgs/bcc/template
@@ -1,7 +1,7 @@
# Template file for 'bcc'
pkgname=bcc
version=0.26.0
-revision=2
+revision=3
build_style=cmake
configure_args="-DREVISION=${version} -DENABLE_LLVM_SHARED=1"
hostmakedepends="flex python3-setuptools"
From 170bc933b5d6fe68c56e667cdb3848be036163b6 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:37:25 +0100
Subject: [PATCH 06/20] bpftrace: rebuild for llvm15
---
srcpkgs/bpftrace/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/bpftrace/template b/srcpkgs/bpftrace/template
index 952682662128..2f01dbf69530 100644
--- a/srcpkgs/bpftrace/template
+++ b/srcpkgs/bpftrace/template
@@ -1,7 +1,7 @@
# Template file for 'bpftrace'
pkgname=bpftrace
version=0.17.0
-revision=1
+revision=2
archs="x86_64* aarch64* ppc64*"
build_style=cmake
configure_args="-DUSE_SYSTEM_BPF_BCC=ON -DBUILD_TESTING=OFF" # needs root to run
From f5863efce7516ad698d26a8bc9a976d203a5e82e Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:43:53 +0100
Subject: [PATCH 07/20] CastXML: rebuild for llvm15
---
srcpkgs/CastXML/template | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/srcpkgs/CastXML/template b/srcpkgs/CastXML/template
index 5d7d9503658c..28c424c78073 100644
--- a/srcpkgs/CastXML/template
+++ b/srcpkgs/CastXML/template
@@ -1,7 +1,7 @@
# Template file for 'CastXML'
pkgname=CastXML
version=0.4.6
-revision=1
+revision=2
build_style=cmake
configure_args="-DSPHINX_MAN=YES -DCastXML_INSTALL_MAN_DIR=share/man"
hostmakedepends="clang python3-Sphinx"
@@ -12,8 +12,8 @@ short_desc="C-family abstract syntax tree XML output tool"
maintainer="Evgeny Ermakov <evgeny.v.ermakov@gmail.com>"
license="Apache-2.0"
homepage="https://github.com/CastXML/CastXML"
-distfiles="https://github.com/CastXML/CastXML/archive/v${version}.tar.gz"
-checksum=8dcdbc1f23a130e4bdb0b09f57c30761a02a346b4db4037555048af2a293d66a
+distfiles="https://github.com/CastXML/CastXML/archive/refs/tags/v${version}.tar.gz"
+checksum=bb9024ec9ea5082e0d527f19bf3c2df79f1699f54b6cec168c024e727b32e6d1
post_install() {
rm -r ${DESTDIR}/usr/share/castxml/clang/include
From 008fef21f20fad39388e57ed1a53c999f3872224 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:48:55 +0100
Subject: [PATCH 08/20] ccls: rebuild for llvm15
---
srcpkgs/ccls/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/ccls/template b/srcpkgs/ccls/template
index 82fa61933878..ecc9f3e38a5d 100644
--- a/srcpkgs/ccls/template
+++ b/srcpkgs/ccls/template
@@ -1,7 +1,7 @@
# Template file for 'ccls'
pkgname=ccls
version=0.20220729
-revision=1
+revision=2
build_style=cmake
hostmakedepends="clang-tools-extra"
makedepends="clang-tools-extra libxml2-devel llvm ncurses-devel rapidjson zlib-devel"
From 0fd7c0fdd30de72139195f1571e6a1ae7ba8d6a0 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:52:14 +0100
Subject: [PATCH 09/20] include-what-you-use: update to 0.19
---
srcpkgs/include-what-you-use/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/include-what-you-use/template b/srcpkgs/include-what-you-use/template
index d3655709c20c..1a30bc04bb2d 100644
--- a/srcpkgs/include-what-you-use/template
+++ b/srcpkgs/include-what-you-use/template
@@ -1,6 +1,6 @@
# Template file for 'include-what-you-use'
pkgname=include-what-you-use
-version=0.16
+version=0.19
revision=1
build_style=cmake
configure_args="-DIWYU_LLVM_ROOT_PATH=${XBPS_CROSS_BASE}/usr "
@@ -11,7 +11,7 @@ maintainer="Leah Neukirchen <leah@vuxu.org>"
license="NCSA"
homepage="https://include-what-you-use.org/"
distfiles="https://include-what-you-use.org/downloads/${pkgname}-${version}.src.tar.gz"
-checksum=8d6fc9b255343bc1e5ec459e39512df1d51c60e03562985e0076036119ff5a1c
+checksum=2b10157b60ea08adc08e3896b4921c73fcadd5ec4eb652b29a34129d501e5ee0
python_version=3
post_install() {
From 8d86ed98b004f414eea7fc63e2cff783a42bc910 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 15:11:06 +0100
Subject: [PATCH 10/20] SPIRV-LLVM-Translator: update to 15.0.0
---
srcpkgs/SPIRV-LLVM-Translator/template | 13 +++++++------
1 file changed, 7 insertions(+), 6 deletions(-)
diff --git a/srcpkgs/SPIRV-LLVM-Translator/template b/srcpkgs/SPIRV-LLVM-Translator/template
index a2754e58c0e8..bee99f9bcbb2 100644
--- a/srcpkgs/SPIRV-LLVM-Translator/template
+++ b/srcpkgs/SPIRV-LLVM-Translator/template
@@ -1,19 +1,20 @@
# Template file for 'SPIRV-LLVM-Translator'
pkgname=SPIRV-LLVM-Translator
-version=12.0.0
-revision=2
+version=15.0.0
+revision=1
build_style=cmake
make_build_args="llvm-spirv"
configure_args="-Wno-dev -DLLVM_LINK_LLVM_DYLIB=ON -DCMAKE_SKIP_RPATH=ON
- -DLLVM_SPIRV_INCLUDE_TESTS=OFF -DBUILD_SHARED_LIBS=ON"
+ -DLLVM_SPIRV_INCLUDE_TESTS=OFF -DBUILD_SHARED_LIBS=ON
+ -DLLVM_EXTERNAL_SPIRV_HEADERS_SOURCE_DIR=/usr"
hostmakedepends="clang llvm"
-makedepends="clang-tools-extra llvm"
+makedepends="clang-tools-extra llvm SPIRV-Headers"
short_desc="API and commands for processing SPIR-V modules"
maintainer="Orphaned <orphan@voidlinux.org>"
license="NCSA"
homepage="https://github.com/KhronosGroup/SPIRV-LLVM-Translator"
-distfiles="https://github.com/KhronosGroup/${pkgname}/archive/refs/tags/v${version}.tar.gz"
-checksum=6e4fad04203f25fcde4c308c53e9f59bd05a390978992db3212d4b63aff62108
+distfiles="https://github.com/KhronosGroup/SPIRV-LLVM-Translator/archive/refs/tags/v${version}.tar.gz"
+checksum=b1bebd77f72988758c00852e78c2ddc545815a612169a0cb377d021e2f846d88
post_install() {
vlicense LICENSE.TXT
From 070871966522cec2b30ae6b62fd1986ebb32cb4c Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Fri, 6 Jan 2023 17:11:04 +0100
Subject: [PATCH 11/20] rtags: rebuild for llvm15
---
srcpkgs/rtags/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/rtags/template b/srcpkgs/rtags/template
index b496a1b0e721..9b161e690d76 100644
--- a/srcpkgs/rtags/template
+++ b/srcpkgs/rtags/template
@@ -1,7 +1,7 @@
# Template file for 'rtags'
pkgname=rtags
version=2.38
-revision=5
+revision=6
build_style=cmake
# Don't run tests in do_install, please.
configure_args="-DSKIP_CTEST=TRUE"
From 32e49aac388d03f2caea90d7c0d96913ac8a0a57 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Fri, 6 Jan 2023 17:14:14 +0100
Subject: [PATCH 12/20] juCi++: rebuild for llvm15
---
srcpkgs/juCi++/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/juCi++/template b/srcpkgs/juCi++/template
index c1969237f11d..416bde7cc4d0 100644
--- a/srcpkgs/juCi++/template
+++ b/srcpkgs/juCi++/template
@@ -1,7 +1,7 @@
# Template file for 'juCi++'
pkgname=juCi++
version=1.7.2
-revision=2
+revision=3
_libclangmm_commit="9704b9b6de0982a588fa41741157d5640afedf30"
_tiny_commit="839ff806dc447ff49af80f9a9eaa7949f770f8e5"
create_wrksrc=yes
From 1921c06551405c3320510e22c300a7e97adf45b7 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Sat, 7 Jan 2023 11:31:14 +0100
Subject: [PATCH 13/20] qt5: rebuild for llvm15
---
srcpkgs/qt5/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/qt5/template b/srcpkgs/qt5/template
index f4f9f5b5344a..b517b49ead2d 100644
--- a/srcpkgs/qt5/template
+++ b/srcpkgs/qt5/template
@@ -5,7 +5,7 @@ pkgname=qt5
version=5.15.7+20221119
# commit f8c9fb304bc3e53b3aa07f962cd74e9160decccc
# base repo: https://invent.kde.org/qt/qt/qt5
-revision=1
+revision=2
build_style=meta
hostmakedepends="cmake clang flex perl glib-devel pkg-config
python re2c ruby which"
From eb1da229f860a899d2d9e1892acbd751bbbc4cb2 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Mon, 9 Jan 2023 01:22:18 +0100
Subject: [PATCH 14/20] codelite: rebuild for llvm15
---
srcpkgs/codelite/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/codelite/template b/srcpkgs/codelite/template
index 6b8b007c8a43..c6115e0274ce 100644
--- a/srcpkgs/codelite/template
+++ b/srcpkgs/codelite/template
@@ -1,7 +1,7 @@
# Template file for 'codelite'
pkgname=codelite
version=16.0.0
-revision=2
+revision=3
create_wrksrc=yes
build_style=cmake
build_helper=cmake-wxWidgets-gtk3
From e83fe9f21bf237b9e19f197853eeec6d4740264c Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Mon, 9 Jan 2023 01:58:21 +0100
Subject: [PATCH 15/20] kdevelop: rebuild for llvm15
---
srcpkgs/kdevelop/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/kdevelop/template b/srcpkgs/kdevelop/template
index 5eb275583138..c32ee5240a44 100644
--- a/srcpkgs/kdevelop/template
+++ b/srcpkgs/kdevelop/template
@@ -1,7 +1,7 @@
# Template file for 'kdevelop'
pkgname=kdevelop
version=22.12.1
-revision=1
+revision=2
build_style=cmake
configure_args="-DBUILD_TESTING=OFF"
hostmakedepends="extra-cmake-modules qt5-qmake qt5-host-tools qt5-tools
From a04cdbfe671cbbbe256266b15fab581c84f20dc6 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Mon, 16 Jan 2023 14:43:47 +0100
Subject: [PATCH 16/20] zig: update to 0.10.1
---
.../0001-std.build-fix-handling-of-Dcpu.patch | 48 -------------------
srcpkgs/zig/template | 10 ++--
2 files changed, 6 insertions(+), 52 deletions(-)
delete mode 100644 srcpkgs/zig/patches/0001-std.build-fix-handling-of-Dcpu.patch
diff --git a/srcpkgs/zig/patches/0001-std.build-fix-handling-of-Dcpu.patch b/srcpkgs/zig/patches/0001-std.build-fix-handling-of-Dcpu.patch
deleted file mode 100644
index 4101f24459bb..000000000000
--- a/srcpkgs/zig/patches/0001-std.build-fix-handling-of-Dcpu.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From 1e8cdace7ad324a42228aeb5cd6eb8dd15429413 Mon Sep 17 00:00:00 2001
-From: Isaac Freund <ifreund@ifreund.xyz>
-Date: Tue, 21 Sep 2021 21:06:10 +0200
-Subject: [PATCH] std.build: fix handling of -Dcpu
-
-Currently -Dcpu is completely ignored if -Dtarget isn't passed as well.
-Further, -Dcpu=baseline is ignored even if -Dtarget=native is passed.
-
-This patch fixes these 2 issues, always respecting the -Dcpu option if
-present.
----
- lib/std/build.zig | 13 +++++++------
- 1 file changed, 7 insertions(+), 6 deletions(-)
-
-diff --git a/lib/std/build.zig b/lib/std/build.zig
-index 9b7ebb1f4..e398529f9 100644
---- a/lib/std/build.zig
-+++ b/lib/std/build.zig
-@@ -685,7 +685,11 @@ pub const Builder = struct {
- );
- const mcpu = self.option([]const u8, "cpu", "Target CPU");
-
-- const triple = maybe_triple orelse return args.default_target;
-+ if (maybe_triple == null and mcpu == null) {
-+ return args.default_target;
-+ }
-+
-+ const triple = maybe_triple orelse "native";
-
- var diags: CrossTarget.ParseOptions.Diagnostics = .{};
- const selected_target = CrossTarget.parse(.{
-@@ -2451,11 +2455,8 @@ pub const LibExeObjStep = struct {
-
- if (populated_cpu_features.eql(cross.cpu.features)) {
- // The CPU name alone is sufficient.
-- // If it is the baseline CPU, no command line args are required.
-- if (cross.cpu.model != std.Target.Cpu.baseline(cross.cpu.arch).model) {
-- try zig_args.append("-mcpu");
-- try zig_args.append(cross.cpu.model.name);
-- }
-+ try zig_args.append("-mcpu");
-+ try zig_args.append(cross.cpu.model.name);
- } else {
- var mcpu_buffer = std.ArrayList(u8).init(builder.allocator);
-
---
-2.33.1
-
diff --git a/srcpkgs/zig/template b/srcpkgs/zig/template
index 728c5a64e9df..9807f7ab206b 100644
--- a/srcpkgs/zig/template
+++ b/srcpkgs/zig/template
@@ -1,17 +1,19 @@
# Template file for 'zig'
pkgname=zig
-version=0.8.1
-revision=2
+version=0.10.1
+revision=1
archs="x86_64* aarch64*"
build_style=cmake
make_cmd=make
-makedepends="clang llvm12 lld-devel"
+# we add xml2, zstd, zlib and ncurses
+# because our lld is static-only and requires those to work
+makedepends="clang llvm15 lld-devel libxml2-devel libzstd-devel ncurses-devel zlib-devel"
short_desc="Programming language designed for robustness, optimality, and clarity"
maintainer="Isaac Freund <mail@isaacfreund.com>"
license="MIT"
homepage="https://ziglang.org"
distfiles="https://ziglang.org/download/${version}/zig-${version}.tar.xz"
-checksum=8c428e14a0a89cb7a15a6768424a37442292858cdb695e2eb503fa3c7bf47f1a
+checksum=69459bc804333df077d441ef052ffa143d53012b655a51f04cfef1414c04168c
nopie=yes
nocross=yes
From 13114afb5390d0e48ea340a90e430f00ba2c5d6a Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Tue, 24 Jan 2023 14:03:51 +0100
Subject: [PATCH 17/20] river: update to 0.2.3
---
...ble-PIE-for-river-riverctl-rivertile.patch | 42 -------------------
srcpkgs/river/template | 10 ++---
2 files changed, 5 insertions(+), 47 deletions(-)
delete mode 100644 srcpkgs/river/patches/0001-Enable-PIE-for-river-riverctl-rivertile.patch
diff --git a/srcpkgs/river/patches/0001-Enable-PIE-for-river-riverctl-rivertile.patch b/srcpkgs/river/patches/0001-Enable-PIE-for-river-riverctl-rivertile.patch
deleted file mode 100644
index ecc68302db09..000000000000
--- a/srcpkgs/river/patches/0001-Enable-PIE-for-river-riverctl-rivertile.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From 759c1c7a915083f3da46960ff82fa2a3566a7065 Mon Sep 17 00:00:00 2001
-From: Isaac Freund <mail@isaacfreund.com>
-Date: Wed, 3 Nov 2021 14:21:35 +0100
-Subject: [PATCH] Enable PIE for river, riverctl, rivertile
-
-There is sadly not yet a standard way to do this exposed by the zig
-build system. See: https://github.com/ziglang/zig/issues/7201
----
- build.zig | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/build.zig b/build.zig
-index d561f49..8ac9a4e 100644
---- a/build.zig
-+++ b/build.zig
-@@ -85,6 +85,7 @@ pub fn build(b: *zbs.Builder) !void {
- const river = b.addExecutable("river", "river/main.zig");
- river.setTarget(target);
- river.setBuildMode(mode);
-+ river.pie = true;
- river.addBuildOption(bool, "xwayland", xwayland);
- river.addBuildOption([:0]const u8, "version", full_version);
-
-@@ -97,6 +98,7 @@ pub fn build(b: *zbs.Builder) !void {
- const riverctl = b.addExecutable("riverctl", "riverctl/main.zig");
- riverctl.setTarget(target);
- riverctl.setBuildMode(mode);
-+ riverctl.pie = true;
- riverctl.addBuildOption([:0]const u8, "version", full_version);
-
- riverctl.step.dependOn(&scanner.step);
-@@ -114,6 +116,7 @@ pub fn build(b: *zbs.Builder) !void {
- const rivertile = b.addExecutable("rivertile", "rivertile/main.zig");
- rivertile.setTarget(target);
- rivertile.setBuildMode(mode);
-+ rivertile.pie = true;
- rivertile.addBuildOption([:0]const u8, "version", full_version);
-
- rivertile.step.dependOn(&scanner.step);
---
-2.33.1
-
diff --git a/srcpkgs/river/template b/srcpkgs/river/template
index 3906858d507e..431aa4bd8e8e 100644
--- a/srcpkgs/river/template
+++ b/srcpkgs/river/template
@@ -1,18 +1,18 @@
# Template file for 'river'
pkgname=river
-version=0.1.1
-revision=2
+version=0.2.3
+revision=1
build_style=zig-build
-configure_args="$(vopt_if xwayland -Dxwayland)"
+configure_args="$(vopt_if xwayland -Dxwayland) -Dpie"
hostmakedepends="pkg-config wayland-devel scdoc"
-makedepends="wlroots0.15-devel libevdev-devel"
+makedepends="wlroots-devel libevdev-devel"
depends="$(vopt_if xwayland xorg-server-xwayland)"
short_desc="Dynamic tiling Wayland compositor"
maintainer="Isaac Freund <mail@isaacfreund.com>"
license="GPL-3.0-or-later"
homepage="https://github.com/riverwm/river"
distfiles="${homepage}/releases/download/v${version}/river-${version}.tar.gz"
-checksum=2a0bcd4670ed9ebd39c279f2bf10803fc65c9f3ee2307ce40728df23ce914d18
+checksum=7acdd2b929e16a20006b4baf1f29e7a8dc7f70cf5747e1503a610a90d1637132
build_options="xwayland"
build_options_default="xwayland"
From 1eee3ba155f2ec9f7eacd90f7207917bc243a2a4 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Fri, 10 Feb 2023 17:25:32 +0100
Subject: [PATCH 18/20] libclc: update to 15.0.7
---
srcpkgs/libclc/template | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/srcpkgs/libclc/template b/srcpkgs/libclc/template
index 779519fd666f..adb60f6ad1f1 100644
--- a/srcpkgs/libclc/template
+++ b/srcpkgs/libclc/template
@@ -1,9 +1,11 @@
# Template file for 'libclc'
pkgname=libclc
-version=12.0.0
+version=15.0.7
revision=1
build_style=cmake
-configure_args="-DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release"
+# disable clspv (failing tests, we don't ship it)
+configure_args="-DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release
+ -DLIBCLC_TARGETS_TO_BUILD=amdgcn--;amdgcn--amdhsa;r600--;nvptx--;nvptx64--;nvptx--nvidiacl;nvptx64--nvidiacl;spirv-mesa3d-;spirv64-mesa3d-"
hostmakedepends="cmake clang llvm python3 libedit-devel libffi-devel
ncurses-devel zlib-devel SPIRV-LLVM-Translator"
short_desc="Open implementation of the OpenCL C programming language"
@@ -11,7 +13,7 @@ maintainer="Orphaned <orphan@voidlinux.org>"
license="BSD-3-Clause, MIT"
homepage="https://libclc.llvm.org"
distfiles="https://github.com/llvm/llvm-project/releases/download/llvmorg-${version}/libclc-${version}.src.tar.xz"
-checksum=6b777ee2cd57da1b122f76c208463f620eef508f4128210c6b1a96bfb75c74dc
+checksum=35731fea7be224f21acf5bf3cd9f0ed058bf4ada5eceaf7f10ee96e139bd3389
replaces="libclc-git>=0"
do_configure() {
From d49a7165718f92aaa90820ac29fc0f79159cb851 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Fri, 10 Feb 2023 20:20:43 +0100
Subject: [PATCH 19/20] shiboken2: update to 5.15.7
---
srcpkgs/shiboken2/template | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/srcpkgs/shiboken2/template b/srcpkgs/shiboken2/template
index 9ceb8b313de7..084ecc3ba1e1 100644
--- a/srcpkgs/shiboken2/template
+++ b/srcpkgs/shiboken2/template
@@ -1,7 +1,7 @@
# Template file for 'shiboken2'
pkgname=shiboken2
-version=5.15.5
-revision=2
+version=5.15.7
+revision=1
_pkgname="pyside-setup-opensource-src-${version}"
build_wrksrc="sources/shiboken2"
build_style=cmake
@@ -14,7 +14,7 @@ maintainer="yopito <pierre.bourgin@free.fr>"
license="GPL-3.0-or-later"
homepage="https://wiki.qt.io/Qt_for_Python/Shiboken"
distfiles="https://download.qt.io/official_releases/QtForPython/pyside2/PySide2-${version}-src/${_pkgname}.tar.xz"
-checksum=3920a4fb353300260c9bc46ff70f1fb975c5e7efa22e9d51222588928ce19b33
+checksum=f61210ae24e6882d5d0ca0059229e5dc4f35e2bca92dd6caf96c0f41943a8294
python_version=3
export CLANG_INSTALL_DIR=${XBPS_CROSS_BASE}/usr
From 53592868b17f741d077d645311701699a6964851 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 16 Feb 2023 20:13:02 +0100
Subject: [PATCH 20/20] clazy: rebuild for llvm15
---
.../patches/0002-llvm15-compatibility.patch | 220 ++++++++++++++++++
srcpkgs/clazy/template | 2 +-
2 files changed, 221 insertions(+), 1 deletion(-)
create mode 100644 srcpkgs/clazy/patches/0002-llvm15-compatibility.patch
diff --git a/srcpkgs/clazy/patches/0002-llvm15-compatibility.patch b/srcpkgs/clazy/patches/0002-llvm15-compatibility.patch
new file mode 100644
index 000000000000..18213a66fca1
--- /dev/null
+++ b/srcpkgs/clazy/patches/0002-llvm15-compatibility.patch
@@ -0,0 +1,220 @@
+From 20fca52da739ebefa47e35f6b338bb99a0da3cfe Mon Sep 17 00:00:00 2001
+From: Cristian Adam <cristian.adam@qt.io>
+Date: Tue, 6 Sep 2022 16:30:02 +0200
+Subject: [PATCH] Build fixes for LLVM/Clang 15.0.0
+
+Change-Id: Icc39a0b1acffb5a6a4798b1259d8ad4e7dd47bc5
+---
+ CMakeLists.txt | 6 ++++++
+ src/PreProcessorVisitor.cpp | 2 +-
+ src/PreProcessorVisitor.h | 2 +-
+ src/SourceCompatibilityHelpers.h | 15 +++++++++++++++
+ src/Utils.cpp | 3 ++-
+ src/checkbase.cpp | 4 ++--
+ src/checkbase.h | 4 ++--
+ src/checks/manuallevel/qt6-fwd-fixes.cpp | 2 +-
+ src/checks/manuallevel/qt6-fwd-fixes.h | 2 +-
+ src/checks/manuallevel/qt6-header-fixes.cpp | 2 +-
+ src/checks/manuallevel/qt6-header-fixes.h | 2 +-
+ 11 files changed, 33 insertions(+), 11 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 3c780b0d..100135af 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -114,6 +114,10 @@ else()
+ set(clang_tooling_refactoring_lib clangToolingRefactor)
+ endif()
+
++if (${LLVM_VERSION} VERSION_GREATER_EQUAL "15.0.0")
++ set(clang_support_lib clangSupport)
++endif()
++
+ macro(link_to_llvm name is_standalone)
+ if (CLAZY_LINK_CLANG_DYLIB)
+ target_link_libraries(${name} clang-cpp)
+@@ -131,6 +135,7 @@ macro(link_to_llvm name is_standalone)
+
+ target_link_libraries(${name} ${clang_lib})
+ endforeach()
++ target_link_libraries(${name} ${clang_support_lib})
+ target_link_libraries(${name} clangTooling)
+ target_link_libraries(${name} clangToolingCore)
+ target_link_libraries(${name} ${clang_tooling_refactoring_lib})
+@@ -302,6 +307,7 @@ else()
+ clangFrontendTool
+ clangRewrite
+ clangSerialization
++ ${clang_support_lib}
+ clangTooling
+ clangStaticAnalyzerCheckers
+ clangStaticAnalyzerCore
+diff --git a/src/PreProcessorVisitor.cpp b/src/PreProcessorVisitor.cpp
+index 5e63a131..5fdfe5f3 100644
+--- a/src/PreProcessorVisitor.cpp
++++ b/src/PreProcessorVisitor.cpp
+@@ -185,7 +185,7 @@ void PreProcessorVisitor::MacroExpands(const Token &MacroNameTok, const MacroDef
+
+ void PreProcessorVisitor::InclusionDirective (clang::SourceLocation, const clang::Token &,
+ clang::StringRef FileName, bool IsAngled, clang::CharSourceRange FilenameRange,
+- const clang::FileEntry *, clang::StringRef, clang::StringRef,
++ clazy::OptionalFileEntryRef, clang::StringRef, clang::StringRef,
+ const clang::Module *, clang::SrcMgr::CharacteristicKind)
+ {
+ if (m_ci.getPreprocessor().isInPrimaryFile() && !clazy::endsWith(FileName.str(), ".moc")) {
+diff --git a/src/PreProcessorVisitor.h b/src/PreProcessorVisitor.h
+index dc80ff36..1bb17a5e 100644
+--- a/src/PreProcessorVisitor.h
++++ b/src/PreProcessorVisitor.h
+@@ -71,7 +71,7 @@ class PreProcessorVisitor
+ clang::SourceRange range, const clang::MacroArgs *) override;
+ void InclusionDirective (clang::SourceLocation HashLoc, const clang::Token &IncludeTok,
+ clang::StringRef FileName, bool IsAngled, clang::CharSourceRange FilenameRange,
+- const clang::FileEntry *File, clang::StringRef SearchPath, clang::StringRef RelativePath,
++ clazy::OptionalFileEntryRef File, clang::StringRef SearchPath, clang::StringRef RelativePath,
+ const clang::Module *Imported, clang::SrcMgr::CharacteristicKind FileType) override;
+ private:
+ std::string getTokenSpelling(const clang::MacroDefinition &) const;
+diff --git a/src/SourceCompatibilityHelpers.h b/src/SourceCompatibilityHelpers.h
+index 4ea923a2..c1a23a4b 100644
+--- a/src/SourceCompatibilityHelpers.h
++++ b/src/SourceCompatibilityHelpers.h
+@@ -144,6 +144,21 @@ inline bool contains_lower(clang::StringRef haystack, clang::StringRef needle)
+ #endif
+ }
+
++#if LLVM_VERSION_MAJOR >= 15
++using OptionalFileEntryRef = clang::Optional<clang::FileEntryRef>;
++#else
++using OptionalFileEntryRef = const clang::FileEntry*;
++#endif
++
++inline bool isAscii(clang::StringLiteral *lt)
++{
++#if LLVM_VERSION_MAJOR >= 15
++ return lt->isOrdinary();
++#else
++ return lt->isAscii();
++#endif
++}
++
+ }
+
+ #endif
+diff --git a/src/Utils.cpp b/src/Utils.cpp
+index 3cdf7876..70e0577c 100644
+--- a/src/Utils.cpp
++++ b/src/Utils.cpp
+@@ -25,6 +25,7 @@
+ #include "Utils.h"
+ #include "StringUtils.h"
+ #include "HierarchyUtils.h"
++#include "SourceCompatibilityHelpers.h"
+ #include "StmtBodyRange.h"
+ #include "clazy_stl.h"
+
+@@ -670,7 +671,7 @@ const CXXRecordDecl *Utils::recordForMemberCall(CXXMemberCallExpr *call, string
+ bool Utils::isAscii(StringLiteral *lt)
+ {
+ // 'é' for some reason has isAscii() == true, so also call containsNonAsciiOrNull
+- return lt && lt->isAscii() && !lt->containsNonAsciiOrNull();
++ return lt && clazy::isAscii(lt) && !lt->containsNonAsciiOrNull();
+ }
+
+ bool Utils::isInDerefExpression(Stmt *s, ParentMap *map)
+diff --git a/src/checkbase.cpp b/src/checkbase.cpp
+index f5936dfd..dcc7c999 100644
+--- a/src/checkbase.cpp
++++ b/src/checkbase.cpp
+@@ -105,7 +105,7 @@ void ClazyPreprocessorCallbacks::MacroDefined(const Token ¯oNameTok, const M
+ }
+
+ void ClazyPreprocessorCallbacks::InclusionDirective(clang::SourceLocation HashLoc, const clang::Token &IncludeTok, clang::StringRef FileName, bool IsAngled,
+- clang::CharSourceRange FilenameRange, const clang::FileEntry *File, clang::StringRef SearchPath,
++ clang::CharSourceRange FilenameRange, clazy::OptionalFileEntryRef File, clang::StringRef SearchPath,
+ clang::StringRef RelativePath, const clang::Module *Imported, clang::SrcMgr::CharacteristicKind FileType)
+ {
+ check->VisitInclusionDirective(HashLoc, IncludeTok, FileName, IsAngled, FilenameRange, File, SearchPath, RelativePath, Imported, FileType);
+@@ -182,7 +182,7 @@ void CheckBase::VisitEndif(SourceLocation, SourceLocation)
+ }
+
+ void CheckBase::VisitInclusionDirective(clang::SourceLocation , const clang::Token &, clang::StringRef , bool ,
+- clang::CharSourceRange , const clang::FileEntry *, clang::StringRef ,
++ clang::CharSourceRange , clazy::OptionalFileEntryRef, clang::StringRef ,
+ clang::StringRef , const clang::Module *, clang::SrcMgr::CharacteristicKind )
+ {
+ // Overriden in derived classes
+diff --git a/src/checkbase.h b/src/checkbase.h
+index c5db2daf..02f6a6bf 100644
+--- a/src/checkbase.h
++++ b/src/checkbase.h
+@@ -91,7 +91,7 @@ class ClazyPreprocessorCallbacks
+ void Else(clang::SourceLocation loc, clang::SourceLocation ifLoc) override;
+ void Endif(clang::SourceLocation loc, clang::SourceLocation ifLoc) override;
+ void InclusionDirective(clang::SourceLocation HashLoc, const clang::Token &IncludeTok, clang::StringRef FileName, bool IsAngled,
+- clang::CharSourceRange FilenameRange, const clang::FileEntry *File, clang::StringRef SearchPath,
++ clang::CharSourceRange FilenameRange, clazy::OptionalFileEntryRef File, clang::StringRef SearchPath,
+ clang::StringRef RelativePath, const clang::Module *Imported, clang::SrcMgr::CharacteristicKind FileType) override;
+ private:
+ CheckBase *const check;
+@@ -151,7 +151,7 @@ class CheckBase
+ virtual void VisitElse(clang::SourceLocation loc, clang::SourceLocation ifLoc);
+ virtual void VisitEndif(clang::SourceLocation loc, clang::SourceLocation ifLoc);
+ virtual void VisitInclusionDirective(clang::SourceLocation HashLoc, const clang::Token &IncludeTok, clang::StringRef FileName, bool IsAngled,
+- clang::CharSourceRange FilenameRange, const clang::FileEntry *File, clang::StringRef SearchPath,
++ clang::CharSourceRange FilenameRange, clazy::OptionalFileEntryRef File, clang::StringRef SearchPath,
+ clang::StringRef RelativePath, const clang::Module *Imported, clang::SrcMgr::CharacteristicKind FileType);
+
+ void enablePreProcessorCallbacks();
+diff --git a/src/checks/manuallevel/qt6-fwd-fixes.cpp b/src/checks/manuallevel/qt6-fwd-fixes.cpp
+index 83bf81ee..c87d9ca0 100644
+--- a/src/checks/manuallevel/qt6-fwd-fixes.cpp
++++ b/src/checks/manuallevel/qt6-fwd-fixes.cpp
+@@ -166,7 +166,7 @@ void Qt6FwdFixes::VisitDecl(clang::Decl *decl)
+ }
+
+ void Qt6FwdFixes::VisitInclusionDirective(clang::SourceLocation HashLoc, const clang::Token &IncludeTok, clang::StringRef FileName, bool IsAngled,
+- clang::CharSourceRange FilenameRange, const clang::FileEntry *File, clang::StringRef SearchPath,
++ clang::CharSourceRange FilenameRange, clazy::OptionalFileEntryRef File, clang::StringRef SearchPath,
+ clang::StringRef RelativePath, const clang::Module *Imported, clang::SrcMgr::CharacteristicKind FileType)
+ {
+ auto current_file = m_sm.getFilename(HashLoc);
+diff --git a/src/checks/manuallevel/qt6-fwd-fixes.h b/src/checks/manuallevel/qt6-fwd-fixes.h
+index 37b59d95..bb928ba6 100644
+--- a/src/checks/manuallevel/qt6-fwd-fixes.h
++++ b/src/checks/manuallevel/qt6-fwd-fixes.h
+@@ -47,7 +47,7 @@ class Qt6FwdFixes
+ explicit Qt6FwdFixes(const std::string &name, ClazyContext *context);
+ void VisitDecl(clang::Decl *decl) override;
+ void VisitInclusionDirective(clang::SourceLocation HashLoc, const clang::Token &IncludeTok, clang::StringRef FileName, bool IsAngled,
+- clang::CharSourceRange FilenameRange, const clang::FileEntry *File, clang::StringRef SearchPath,
++ clang::CharSourceRange FilenameRange, clazy::OptionalFileEntryRef File, clang::StringRef SearchPath,
+ clang::StringRef RelativePath, const clang::Module *Imported, clang::SrcMgr::CharacteristicKind FileType) override;
+ bool m_including_qcontainerfwd = false;
+ std::set<clang::StringRef> m_qcontainerfwd_included_in_files;
+diff --git a/src/checks/manuallevel/qt6-header-fixes.cpp b/src/checks/manuallevel/qt6-header-fixes.cpp
+index d458b77c..aaa28093 100644
+--- a/src/checks/manuallevel/qt6-header-fixes.cpp
++++ b/src/checks/manuallevel/qt6-header-fixes.cpp
+@@ -270,7 +270,7 @@ Qt6HeaderFixes::Qt6HeaderFixes(const std::string &name, ClazyContext *context)
+ }
+
+ void Qt6HeaderFixes::VisitInclusionDirective(clang::SourceLocation HashLoc, const clang::Token &IncludeTok, clang::StringRef FileName, bool IsAngled,
+- clang::CharSourceRange FilenameRange, const clang::FileEntry *File, clang::StringRef SearchPath,
++ clang::CharSourceRange FilenameRange, clazy::OptionalFileEntryRef File, clang::StringRef SearchPath,
+ clang::StringRef RelativePath, const clang::Module *Imported, clang::SrcMgr::CharacteristicKind FileType)
+ {
+ if (shouldIgnoreFile(HashLoc))
+diff --git a/src/checks/manuallevel/qt6-header-fixes.h b/src/checks/manuallevel/qt6-header-fixes.h
+index ae09f7ad..8ffbb100 100644
+--- a/src/checks/manuallevel/qt6-header-fixes.h
++++ b/src/checks/manuallevel/qt6-header-fixes.h
+@@ -46,7 +46,7 @@ class Qt6HeaderFixes
+ public:
+ explicit Qt6HeaderFixes(const std::string &name, ClazyContext *context);
+ void VisitInclusionDirective(clang::SourceLocation HashLoc, const clang::Token &IncludeTok, clang::StringRef FileName, bool IsAngled,
+- clang::CharSourceRange FilenameRange, const clang::FileEntry *File, clang::StringRef SearchPath,
++ clang::CharSourceRange FilenameRange, clazy::OptionalFileEntryRef File, clang::StringRef SearchPath,
+ clang::StringRef RelativePath, const clang::Module *Imported, clang::SrcMgr::CharacteristicKind FileType) override;
+
+ };
diff --git a/srcpkgs/clazy/template b/srcpkgs/clazy/template
index 11f3bab55aef..f81de08ab836 100644
--- a/srcpkgs/clazy/template
+++ b/srcpkgs/clazy/template
@@ -1,7 +1,7 @@
# Template file for 'clazy'
pkgname=clazy
version=1.11
-revision=1
+revision=2
build_style=cmake
build_helper=qemu
hostmakedepends="llvm"
^ permalink raw reply [flat|nested] 96+ messages in thread
* Re: [PR PATCH] [Updated] [WIP] LLVM 15
2022-11-28 15:30 [PR PATCH] [WIP] LLVM 15 tranzystorek-io
` (68 preceding siblings ...)
2023-02-16 19:17 ` tranzystorek-io
@ 2023-02-16 22:44 ` tranzystorek-io
2023-02-18 19:34 ` tranzystorek-io
` (24 subsequent siblings)
94 siblings, 0 replies; 96+ messages in thread
From: tranzystorek-io @ 2023-02-16 22:44 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 1234 bytes --]
There is an updated pull request by tranzystorek-io against master on the void-packages repository
https://github.com/tranzystorek-io/void-packages llvm15
https://github.com/void-linux/void-packages/pull/40821
[WIP] LLVM 15
[ci skip]
TODO:
- [x] ~~Adjust patches marked as `.patch.skip`~~ dropped support for ppc
- [x] Make libomp a shlib (change so file name and install a symlink)
- [x] Avoid creating triplet dirs under /usr/
TODO LLVM rdeps:
- [x] clazy ~~(breaking changes in clang API)~~ - patched
- [x] beignet (https://github.com/void-linux/void-packages/pull/41529)
- [ ] ispc (1.18.1 supports LLVM `<= 14`)
- [ ] ldc (1.30.0 supports LLVM `<= 14`)
- [x] ghdl (2.0.0 supports LLVM `<= 14`) - builds with llvm12
- [x] qt
- [ ] qtcreator (breaking changes in clang-format API)
- [x] shiboken2 (tests failing with llvm15)
- [x] bpftrace (https://github.com/void-linux/void-packages/pull/39002)
- [x] libclc (tests fail with unresolved calls https://gist.githubusercontent.com/tranzystorek-io/a2aa8a0d8010af5299f7d1ff9f82c22b/raw/6d316d99d6079990b73ae77d274dd120b9560589/LastTest.log) -> removed clspv
- [x] zig
A patch file from https://github.com/void-linux/void-packages/pull/40821.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-llvm15-40821.patch --]
[-- Type: text/x-diff, Size: 103149 bytes --]
From 3a5f19871590ddcd7af7baa01493517ca26ce4b7 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Sun, 18 Dec 2022 00:36:59 +0100
Subject: [PATCH 01/23] New package: llvm15-15.0.7
---
common/shlibs | 3 +
srcpkgs/libllvm15 | 1 +
.../llvm15/files/llvm-Config-llvm-config.h | 9 +
...clang-001-fix-unwind-chain-inclusion.patch | 44 ++
.../patches/clang-002-add-musl-triples.patch | 115 +++++
.../clang-003-ppc64-dynamic-linker-path.patch | 13 +
.../patches/clang-004-ppc64-musl-elfv2.patch | 48 ++
.../compiler-rt-sanitizer-ppc64-musl.patch | 35 ++
srcpkgs/llvm15/patches/libcxx-musl.patch | 26 ++
srcpkgs/llvm15/patches/libcxx-ppc.patch | 22 +
.../llvm15/patches/libcxx-ssp-nonshared.patch | 11 +
srcpkgs/llvm15/patches/libcxxabi-dl.patch | 25 +
srcpkgs/llvm15/patches/libcxxabi-musl.patch | 37 ++
srcpkgs/llvm15/patches/libomp-soname.patch | 12 +
srcpkgs/llvm15/patches/lldb-musl.patch | 40 ++
srcpkgs/llvm15/patches/llvm-001-musl.patch | 57 +++
.../patches/llvm-002-musl-ppc64-elfv2.patch | 30 ++
.../patches/llvm-003-ppc-secureplt.patch | 11 +
.../patches/llvm-004-override-opt.patch | 18 +
.../llvm15/patches/llvm-005-ppc-bigpic.patch | 36 ++
.../patches/llvm-006-aarch64-mf_exec.patch | 25 +
srcpkgs/llvm15/template | 442 ++++++++++++++++++
srcpkgs/llvm15/update | 3 +
23 files changed, 1063 insertions(+)
create mode 120000 srcpkgs/libllvm15
create mode 100644 srcpkgs/llvm15/files/llvm-Config-llvm-config.h
create mode 100644 srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch
create mode 100644 srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch
create mode 100644 srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch
create mode 100644 srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch
create mode 100644 srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch
create mode 100644 srcpkgs/llvm15/patches/libcxx-musl.patch
create mode 100644 srcpkgs/llvm15/patches/libcxx-ppc.patch
create mode 100644 srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch
create mode 100644 srcpkgs/llvm15/patches/libcxxabi-dl.patch
create mode 100644 srcpkgs/llvm15/patches/libcxxabi-musl.patch
create mode 100644 srcpkgs/llvm15/patches/libomp-soname.patch
create mode 100644 srcpkgs/llvm15/patches/lldb-musl.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-001-musl.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-004-override-opt.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch
create mode 100644 srcpkgs/llvm15/template
create mode 100644 srcpkgs/llvm15/update
diff --git a/common/shlibs b/common/shlibs
index 0c1d545fbe27..661979817442 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -990,6 +990,9 @@ libclang.so.12 libclang-12.0.0_1
libclang-cpp.so.12 libclang-cpp-12.0.0_1
libLLVM-11.so libllvm11-11.0.0_1
libLLVM-12.so libllvm12-12.0.0_1
+libLLVM-15.so libllvm15-15.0.7_1
+libomp.so.5 libomp-15.0.7_1
+libomptarget.so.15 libomp-15.0.7_1
libisofs.so.6 libisofs-0.6.24_1
libmpack.so.0 libmpack-1.0.5_1
libGeoIP.so.1 libgeoip-1.4.8_1
diff --git a/srcpkgs/libllvm15 b/srcpkgs/libllvm15
new file mode 120000
index 000000000000..ad57a969b9f9
--- /dev/null
+++ b/srcpkgs/libllvm15
@@ -0,0 +1 @@
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm15/files/llvm-Config-llvm-config.h b/srcpkgs/llvm15/files/llvm-Config-llvm-config.h
new file mode 100644
index 000000000000..2fa08c9be696
--- /dev/null
+++ b/srcpkgs/llvm15/files/llvm-Config-llvm-config.h
@@ -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
diff --git a/srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch b/srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch
new file mode 100644
index 000000000000..e4eaa7783e7a
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch
@@ -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
diff --git a/srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch b/srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch
new file mode 100644
index 000000000000..0ef4c7e75d6b
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch
@@ -0,0 +1,115 @@
+--- a/clang/lib/Driver/ToolChains/Gnu.cpp
++++ b/clang/lib/Driver/ToolChains/Gnu.cpp
+@@ -2086,7 +2086,8 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
+ static const char *const ARMHFTriples[] = {"arm-linux-gnueabihf",
+ "armv7hl-redhat-linux-gnueabi",
+ "armv6hl-suse-linux-gnueabi",
+- "armv7hl-suse-linux-gnueabi"};
++ "armv7hl-suse-linux-gnueabi",
++ "armv7l-linux-gnueabihf"};
+ static const char *const ARMebLibDirs[] = {"/lib"};
+ static const char *const ARMebTriples[] = {"armeb-linux-gnueabi",
+ "armeb-linux-androideabi"};
+@@ -2153,8 +2154,7 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
+ "powerpc64-suse-linux", "powerpc-montavista-linuxspe"};
+ static const char *const PPCLELibDirs[] = {"/lib32", "/lib"};
+ static const char *const PPCLETriples[] = {"powerpcle-linux-gnu",
+- "powerpcle-unknown-linux-gnu",
+- "powerpcle-linux-musl"};
++ "powerpcle-unknown-linux-gnu"};
+
+ static const char *const PPC64LibDirs[] = {"/lib64", "/lib"};
+ static const char *const PPC64Triples[] = {
+@@ -2235,6 +2235,92 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
+ return;
+ }
+
++ if (TargetTriple.isMusl()) {
++ static const char *const AArch64MuslTriples[] = {"aarch64-linux-musl"};
++ static const char *const ARMHFMuslTriples[] = {
++ "arm-linux-musleabihf", "armv7l-linux-musleabihf"
++ };
++ static const char *const ARMMuslTriples[] = {"arm-linux-musleabi"};
++ static const char *const X86_64MuslTriples[] = {"x86_64-linux-musl"};
++ static const char *const X86MuslTriples[] = {"i686-linux-musl"};
++ static const char *const MIPSMuslTriples[] = {
++ "mips-linux-musl", "mipsel-linux-musl",
++ "mipsel-linux-muslhf", "mips-linux-muslhf"
++ };
++ static const char *const PPCMuslTriples[] = {"powerpc-linux-musl"};
++ static const char *const PPCLEMuslTriples[] = {"powerpcle-linux-musl"};
++ static const char *const PPC64MuslTriples[] = {"powerpc64-linux-musl"};
++ static const char *const PPC64LEMuslTriples[] = {"powerpc64le-linux-musl"};
++ static const char *const RISCV64MuslTriples[] = {"riscv64-linux-musl"};
++
++ switch (TargetTriple.getArch()) {
++ case llvm::Triple::aarch64:
++ LibDirs.append(begin(AArch64LibDirs), end(AArch64LibDirs));
++ TripleAliases.append(begin(AArch64MuslTriples), end(AArch64MuslTriples));
++ BiarchLibDirs.append(begin(AArch64LibDirs), end(AArch64LibDirs));
++ BiarchTripleAliases.append(begin(AArch64MuslTriples), end(AArch64MuslTriples));
++ break;
++ case llvm::Triple::arm:
++ LibDirs.append(begin(ARMLibDirs), end(ARMLibDirs));
++ if (TargetTriple.getEnvironment() == llvm::Triple::MuslEABIHF) {
++ TripleAliases.append(begin(ARMHFMuslTriples), end(ARMHFMuslTriples));
++ } else {
++ TripleAliases.append(begin(ARMMuslTriples), end(ARMMuslTriples));
++ }
++ break;
++ case llvm::Triple::x86_64:
++ LibDirs.append(begin(X86_64LibDirs), end(X86_64LibDirs));
++ TripleAliases.append(begin(X86_64MuslTriples), end(X86_64MuslTriples));
++ BiarchLibDirs.append(begin(X86LibDirs), end(X86LibDirs));
++ BiarchTripleAliases.append(begin(X86MuslTriples), end(X86MuslTriples));
++ break;
++ case llvm::Triple::x86:
++ LibDirs.append(begin(X86LibDirs), end(X86LibDirs));
++ TripleAliases.append(begin(X86MuslTriples), end(X86MuslTriples));
++ BiarchLibDirs.append(begin(X86_64LibDirs), end(X86_64LibDirs));
++ BiarchTripleAliases.append(begin(X86_64MuslTriples), end(X86_64MuslTriples));
++ break;
++ case llvm::Triple::mips:
++ LibDirs.append(begin(MIPSLibDirs), end(MIPSLibDirs));
++ TripleAliases.append(begin(MIPSMuslTriples), end(MIPSMuslTriples));
++ break;
++ case llvm::Triple::ppc:
++ LibDirs.append(begin(PPCLibDirs), end(PPCLibDirs));
++ TripleAliases.append(begin(PPCMuslTriples), end(PPCMuslTriples));
++ BiarchLibDirs.append(begin(PPC64LibDirs), end(PPC64LibDirs));
++ BiarchTripleAliases.append(begin(PPC64MuslTriples), end(PPC64MuslTriples));
++ break;
++ case llvm::Triple::ppcle:
++ LibDirs.append(begin(PPCLELibDirs), end(PPCLELibDirs));
++ TripleAliases.append(begin(PPCLEMuslTriples), end(PPCLEMuslTriples));
++ BiarchLibDirs.append(begin(PPC64LELibDirs), end(PPC64LELibDirs));
++ BiarchTripleAliases.append(begin(PPC64LEMuslTriples), end(PPC64LEMuslTriples));
++ break;
++ case llvm::Triple::ppc64:
++ LibDirs.append(begin(PPC64LibDirs), end(PPC64LibDirs));
++ TripleAliases.append(begin(PPC64MuslTriples), end(PPC64MuslTriples));
++ BiarchLibDirs.append(begin(PPCLibDirs), end(PPCLibDirs));
++ BiarchTripleAliases.append(begin(PPCMuslTriples), end(PPCMuslTriples));
++ break;
++ case llvm::Triple::ppc64le:
++ LibDirs.append(begin(PPC64LELibDirs), end(PPC64LELibDirs));
++ TripleAliases.append(begin(PPC64LEMuslTriples), end(PPC64LEMuslTriples));
++ BiarchLibDirs.append(begin(PPCLELibDirs), end(PPCLELibDirs));
++ BiarchTripleAliases.append(begin(PPCLEMuslTriples), end(PPCLEMuslTriples));
++ break;
++ case llvm::Triple::riscv64:
++ LibDirs.append(begin(RISCV64LibDirs), end(RISCV64LibDirs));
++ TripleAliases.append(begin(RISCV64MuslTriples), end(RISCV64MuslTriples));
++ break;
++ default:
++ break;
++ }
++ TripleAliases.push_back(TargetTriple.str());
++ if (TargetTriple.str() != BiarchTriple.str())
++ BiarchTripleAliases.push_back(BiarchTriple.str());
++ return;
++ }
++
+ // Android targets should not use GNU/Linux tools or libraries.
+ if (TargetTriple.isAndroid()) {
+ static const char *const AArch64AndroidTriples[] = {
diff --git a/srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch b/srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch
new file mode 100644
index 000000000000..4ad6412d1e6c
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch
@@ -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 =
diff --git a/srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch b/srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch
new file mode 100644
index 000000000000..21fc8003c5f1
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch
@@ -0,0 +1,48 @@
+--- a/clang/lib/Basic/Targets/PPC.h
++++ b/clang/lib/Basic/Targets/PPC.h
+@@ -415,11 +415,10 @@ public:
+ LongDoubleFormat = &llvm::APFloat::IEEEdouble();
+ } else if ((Triple.getArch() == llvm::Triple::ppc64le)) {
+ DataLayout = "e-m:e-i64:64-n32:64";
+- ABI = "elfv2";
+ } else {
+ DataLayout = "E-m:e-i64:64-n32:64";
+- ABI = "elfv1";
+ }
++ ABI = "elfv2";
+
+ if (Triple.isOSFreeBSD() || Triple.isOSOpenBSD() || Triple.isMusl()) {
+ LongDoubleWidth = LongDoubleAlign = 64;
+--- a/clang/lib/CodeGen/TargetInfo.cpp
++++ b/clang/lib/CodeGen/TargetInfo.cpp
+@@ -10927,9 +10927,9 @@ const TargetCodeGenInfo &CodeGenModule::getTargetCodeGenInfo() {
+ return SetCGInfo(new AIXTargetCodeGenInfo(Types, /*Is64Bit*/ true));
+
+ if (Triple.isOSBinFormatELF()) {
+- PPC64_SVR4_ABIInfo::ABIKind Kind = PPC64_SVR4_ABIInfo::ELFv1;
+- if (getTarget().getABI() == "elfv2")
+- Kind = PPC64_SVR4_ABIInfo::ELFv2;
++ PPC64_SVR4_ABIInfo::ABIKind Kind = PPC64_SVR4_ABIInfo::ELFv2;
++ if (getTarget().getABI() == "elfv1")
++ Kind = PPC64_SVR4_ABIInfo::ELFv1;
+ bool IsSoftFloat = CodeGenOpts.FloatABI == "soft";
+
+ return SetCGInfo(
+--- a/clang/lib/Driver/ToolChains/Clang.cpp
++++ b/clang/lib/Driver/ToolChains/Clang.cpp
+@@ -1920,14 +1920,7 @@ void Clang::AddPPCTargetArgs(const ArgList &Args,
+ const llvm::Triple &T = getToolChain().getTriple();
+ if (T.isOSBinFormatELF()) {
+ switch (getToolChain().getArch()) {
+- case llvm::Triple::ppc64: {
+- if ((T.isOSFreeBSD() && T.getOSMajorVersion() >= 13) ||
+- T.isOSOpenBSD() || T.isMusl())
+- ABIName = "elfv2";
+- else
+- ABIName = "elfv1";
+- break;
+- }
++ case llvm::Triple::ppc64:
+ case llvm::Triple::ppc64le:
+ ABIName = "elfv2";
+ break;
diff --git a/srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch b/srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch
new file mode 100644
index 000000000000..360cfc1ba7f1
--- /dev/null
+++ b/srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch
@@ -0,0 +1,35 @@
+--- 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__) || SANITIZER_RISCV64
++ defined(__hexagon__) || defined(__powerpc__) || 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_ANDROID
++#if (defined(__aarch64__) || defined(__powerpc__) || SANITIZER_RISCV64) && !SANITIZER_ANDROID
+ // GLIBC 2.20+ sys/user does not include asm/ptrace.h
+ # include <asm/ptrace.h>
+ #endif
diff --git a/srcpkgs/llvm15/patches/libcxx-musl.patch b/srcpkgs/llvm15/patches/libcxx-musl.patch
new file mode 100644
index 000000000000..bbd31ffc2cb1
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxx-musl.patch
@@ -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,
+ typename remove_reference<decltype(errno)>::type __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
+ typename remove_reference<decltype(errno)>::type __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,
+ typename remove_reference<decltype(errno)>::type __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
+ typename remove_reference<decltype(errno)>::type __current_errno = errno;
+ if (__current_errno == 0)
+ errno = __save_errno;
diff --git a/srcpkgs/llvm15/patches/libcxx-ppc.patch b/srcpkgs/llvm15/patches/libcxx-ppc.patch
new file mode 100644
index 000000000000..7a92f8004e1c
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxx-ppc.patch
@@ -0,0 +1,22 @@
+This ensures `is_iec559` is defined correctly under all long double ABIs,
+including musl and its 64-bit long double. Also, `__ppc__` or `__ppc64__`
+is not defined on gcc.
+
+--- a/libcxx/include/limits
++++ b/libcxx/include/limits
+@@ -426,8 +426,14 @@ protected:
+ _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type signaling_NaN() _NOEXCEPT {return __builtin_nansl("");}
+ _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type denorm_min() _NOEXCEPT {return __LDBL_DENORM_MIN__;}
+
+-#if (defined(__ppc__) || defined(__ppc64__))
++#if defined(__powerpc__) || defined(__powerpc64__)
++#if (__LDBL_MAX_EXP__ > __DBL_MAX_EXP__) || (__LDBL_MANT_DIG__ == __DBL_MANT_DIG__)
++ /* IEEE 754 quadruple or double precision */
++ static _LIBCPP_CONSTEXPR const bool is_iec559 = true;
++#else
++ /* 128-bit IBM double-double */
+ static _LIBCPP_CONSTEXPR const bool is_iec559 = false;
++#endif
+ #else
+ static _LIBCPP_CONSTEXPR const bool is_iec559 = true;
+ #endif
diff --git a/srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch b/srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch
new file mode 100644
index 000000000000..70292beb2fcd
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch
@@ -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()
diff --git a/srcpkgs/llvm15/patches/libcxxabi-dl.patch b/srcpkgs/llvm15/patches/libcxxabi-dl.patch
new file mode 100644
index 000000000000..3a15f9db8c98
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxxabi-dl.patch
@@ -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 @@
+ target_link_libraries(${target} PRIVATE m)
+ endif()
+
++ if (LIBCXX_HAS_C_LIB)
++ target_link_libraries(${target} PRIVATE dl)
++ endif()
++
+ if (LIBCXX_HAS_RT_LIB)
+ target_link_libraries(${target} PRIVATE rt)
+ endif()
diff --git a/srcpkgs/llvm15/patches/libcxxabi-musl.patch b/srcpkgs/llvm15/patches/libcxxabi-musl.patch
new file mode 100644
index 000000000000..55bf6f5aaa08
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxxabi-musl.patch
@@ -0,0 +1,37 @@
+diff --git a/libcxx/include/__support/musl/xlocale.h b/libcxx/include/__support/musl/xlocale.h
+index e674a41fa..f546119b9 100644
+--- a/libcxx/include/__support/musl/xlocale.h
++++ b/libcxx/include/__support/musl/xlocale.h
+@@ -24,27 +24,27 @@
+ extern "C" {
+ #endif
+
+-inline _LIBCPP_HIDE_FROM_ABI long long
++static inline long long
+ strtoll_l(const char *__nptr, char **__endptr, int __base, locale_t) {
+ return ::strtoll(__nptr, __endptr, __base);
+ }
+
+-inline _LIBCPP_HIDE_FROM_ABI unsigned long long
++static inline unsigned long long
+ strtoull_l(const char *__nptr, char **__endptr, int __base, locale_t) {
+ return ::strtoull(__nptr, __endptr, __base);
+ }
+
+-inline _LIBCPP_HIDE_FROM_ABI long long
++static inline long long
+ wcstoll_l(const wchar_t *__nptr, wchar_t **__endptr, int __base, locale_t) {
+ return ::wcstoll(__nptr, __endptr, __base);
+ }
+
+-inline _LIBCPP_HIDE_FROM_ABI unsigned long long
++static inline unsigned long long
+ wcstoull_l(const wchar_t *__nptr, wchar_t **__endptr, int __base, locale_t) {
+ return ::wcstoull(__nptr, __endptr, __base);
+ }
+
+-inline _LIBCPP_HIDE_FROM_ABI long double
++static inline long double
+ wcstold_l(const wchar_t *__nptr, wchar_t **__endptr, locale_t) {
+ return ::wcstold(__nptr, __endptr);
+ }
diff --git a/srcpkgs/llvm15/patches/libomp-soname.patch b/srcpkgs/llvm15/patches/libomp-soname.patch
new file mode 100644
index 000000000000..9a622cd9254c
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libomp-soname.patch
@@ -0,0 +1,12 @@
+diff --git a/openmp/runtime/src/CMakeLists.txt b/openmp/runtime/src/CMakeLists.txt
+index df1ca9d90..9d2c3b7b9 100644
+--- a/openmp/runtime/src/CMakeLists.txt
++++ b/openmp/runtime/src/CMakeLists.txt
+@@ -150,6 +150,7 @@ libomp_get_libflags(LIBOMP_CONFIGURED_LIBFLAGS)
+ # Build libomp library. Add LLVMSupport dependency if building in-tree with libomptarget profiling enabled.
+ if(OPENMP_STANDALONE_BUILD OR (NOT OPENMP_ENABLE_LIBOMP_PROFILING))
+ add_library(omp ${LIBOMP_LIBRARY_KIND} ${LIBOMP_SOURCE_FILES})
++ set_target_properties(omp PROPERTIES VERSION ${LIBOMP_VERSION_MAJOR} SOVERSION ${LIBOMP_VERSION_MAJOR})
+ # Linking command will include libraries in LIBOMP_CONFIGURED_LIBFLAGS
+ target_link_libraries(omp ${LIBOMP_CONFIGURED_LIBFLAGS} ${LIBOMP_DL_LIBS})
+ else()
diff --git a/srcpkgs/llvm15/patches/lldb-musl.patch b/srcpkgs/llvm15/patches/lldb-musl.patch
new file mode 100644
index 000000000000..026c5e1e61ba
--- /dev/null
+++ b/srcpkgs/llvm15/patches/lldb-musl.patch
@@ -0,0 +1,40 @@
+--- a/lldb/source/Plugins/Process/Linux/Procfs.h
++++ b/lldb/source/Plugins/Process/Linux/Procfs.h
+@@ -10,6 +10,7 @@
+ // sys/procfs.h on Android/Linux for all supported architectures.
+
+ #include <sys/ptrace.h>
++#include <asm/ptrace.h>
+
+ #include "lldb/lldb-types.h"
+
+@@ -17,23 +18,13 @@
+
+ #include <vector>
+
+-#ifdef __ANDROID__
+-#if defined(__arm64__) || defined(__aarch64__)
+-typedef unsigned long elf_greg_t;
+-typedef elf_greg_t
+- elf_gregset_t[(sizeof(struct user_pt_regs) / sizeof(elf_greg_t))];
+-typedef struct user_fpsimd_state elf_fpregset_t;
+-#ifndef NT_FPREGSET
+-#define NT_FPREGSET NT_PRFPREG
+-#endif // NT_FPREGSET
+-#elif defined(__mips__)
+-#ifndef NT_FPREGSET
+-#define NT_FPREGSET NT_PRFPREG
+-#endif // NT_FPREGSET
+-#endif
+-#else // __ANDROID__
++#if !defined(__GLIBC__) && defined(__powerpc__)
++#define pt_regs musl_pt_regs
++#include <sys/procfs.h>
++#undef pt_regs
++#else
+ #include <sys/procfs.h>
+-#endif // __ANDROID__
++#endif
+
+ namespace lldb_private {
+ namespace process_linux {
diff --git a/srcpkgs/llvm15/patches/llvm-001-musl.patch b/srcpkgs/llvm15/patches/llvm-001-musl.patch
new file mode 100644
index 000000000000..f2a3f8d62813
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-001-musl.patch
@@ -0,0 +1,57 @@
+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;
+diff --git a/lib/Support/Unix/DynamicLibrary.inc b/lib/Support/Unix/DynamicLibrary.inc
+index a2a37996..2f86c470 100644
+--- a/llvm/lib/Support/Unix/DynamicLibrary.inc
++++ b/llvm/lib/Support/Unix/DynamicLibrary.inc
+@@ -102,7 +102,7 @@ static void *DoSearch(const char* SymbolName) {
+
+ // This macro returns the address of a well-known, explicit symbol
+ #define EXPLICIT_SYMBOL(SYM) \
+- if (!strcmp(SymbolName, #SYM)) return &SYM
++ if (!strcmp(SymbolName, #SYM)) return (void *)&SYM
+
+ // Under glibc we have a weird situation. The stderr/out/in symbols are both
+ // macros and global variables because of standards requirements. So, we
+diff --git a/utils/unittest/googletest/src/gtest.cc b/utils/unittest/googletest/src/gtest.cc
+index d882ab2e..f1fb12d0 100644
+--- a/llvm/utils/unittest/googletest/src/gtest.cc
++++ b/llvm/utils/unittest/googletest/src/gtest.cc
+@@ -128,6 +128,7 @@
+
+ #if GTEST_CAN_STREAM_RESULTS_
+ # include <arpa/inet.h> // NOLINT
++# include <sys/socket.h> // NOLINT
+ # include <netdb.h> // NOLINT
+ # include <sys/socket.h> // NOLINT
+ # include <sys/types.h> // NOLINT
diff --git a/srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch b/srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch
new file mode 100644
index 000000000000..0071d964bd37
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch
@@ -0,0 +1,30 @@
+This patches LLVM to use ELFv2 on ppc64 unconditionally unless overridden. We
+need this because unlike most distros we use ELFv2 for both glibc and musl
+on big endian ppc64.
+
+diff --git a/lib/Target/PowerPC/PPCTargetMachine.cpp b/lib/Target/PowerPC/PPCTargetMachine.cpp
+index 0634833e..b7cbc2e7 100644
+--- a/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp
++++ b/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp
+@@ -222,9 +222,8 @@ static PPCTargetMachine::PPCABI computeTargetABI(const Triple &TT,
+
+ switch (TT.getArch()) {
+ case Triple::ppc64le:
+- return PPCTargetMachine::PPC_ABI_ELFv2;
+ case Triple::ppc64:
+- return PPCTargetMachine::PPC_ABI_ELFv1;
++ return PPCTargetMachine::PPC_ABI_ELFv2;
+ default:
+ return PPCTargetMachine::PPC_ABI_UNKNOWN;
+ }
+diff --git a/test/CodeGen/PowerPC/ppc64-elf-abi.ll b/test/CodeGen/PowerPC/ppc64-elf-abi.ll
+index 8b1cf6b5..296a2afa 100644
+--- a/llvm/test/CodeGen/PowerPC/ppc64-elf-abi.ll
++++ b/llvm/test/CodeGen/PowerPC/ppc64-elf-abi.ll
+@@ -1,4 +1,5 @@
+-; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv1
++; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv2
++; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-musl < %s | FileCheck %s -check-prefix=CHECK-ELFv2
+ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu -target-abi elfv1 < %s | FileCheck %s -check-prefix=CHECK-ELFv1
+ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu -target-abi elfv2 < %s | FileCheck %s -check-prefix=CHECK-ELFv2
+ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv2
diff --git a/srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch b/srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch
new file mode 100644
index 000000000000..b5d15974375d
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch
@@ -0,0 +1,11 @@
+--- a/llvm/lib/Target/PowerPC/PPCSubtarget.cpp
++++ b/llvm/lib/Target/PowerPC/PPCSubtarget.cpp
+@@ -165,7 +165,7 @@ void PPCSubtarget::initSubtargetFeatures(StringRef CPU, StringRef FS) {
+
+ if ((TargetTriple.isOSFreeBSD() && TargetTriple.getOSMajorVersion() >= 13) ||
+ TargetTriple.isOSNetBSD() || TargetTriple.isOSOpenBSD() ||
+- TargetTriple.isMusl())
++ isTargetLinux())
+ SecurePlt = true;
+
+ if (HasSPE && IsPPC64)
diff --git a/srcpkgs/llvm15/patches/llvm-004-override-opt.patch b/srcpkgs/llvm15/patches/llvm-004-override-opt.patch
new file mode 100644
index 000000000000..51d0e4b31b32
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-004-override-opt.patch
@@ -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)
diff --git a/srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch b/srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch
new file mode 100644
index 000000000000..d332687b9d92
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch
@@ -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);
diff --git a/srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch b/srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch
new file mode 100644
index 000000000000..a00abd216665
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch
@@ -0,0 +1,25 @@
+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__) || defined (__ppc__) || \
+- defined(_POWER) || defined(_ARCH_PPC))
++ defined(_POWER) || defined(_ARCH_PPC) || (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
diff --git a/srcpkgs/llvm15/template b/srcpkgs/llvm15/template
new file mode 100644
index 000000000000..4d2777451e24
--- /dev/null
+++ b/srcpkgs/llvm15/template
@@ -0,0 +1,442 @@
+# Template file for 'llvm15'
+pkgname=llvm15
+version=15.0.7
+revision=1
+build_wrksrc=llvm
+build_style=cmake
+_ext_suffix=".cpython-${py3_ver/./}-linux-${XBPS_TARGET_LIBC/glibc/gnu}.so"
+configure_args="
+ -DCMAKE_BUILD_TYPE=Release -Wno-dev
+ -DENABLE_LINKER_BUILD_ID=YES
+ -DLLDB_USE_SYSTEM_SIX=YES
+ -DLIBCXX_CXX_ABI=libcxxabi
+ -DLIBCXX_ENABLE_STATIC_ABI_LIBRARY=YES
+ -DLIBCXXABI_USE_LLVM_UNWINDER=YES
+ -DLIBCXXABI_ENABLE_STATIC_UNWINDER=YES
+ -DLIBOMP_ENABLE_SHARED=YES
+ -DLIBOMP_INSTALL_ALIASES=NO
+ -DLLVM_INCLUDE_DOCS=YES
+ -DLLVM_BUILD_DOCS=YES
+ -DLLVM_ENABLE_SPHINX=YES
+ -DSPHINX_WARNINGS_AS_ERRORS=NO
+ -DLLVM_INSTALL_UTILS=YES
+ -DLLVM_BUILD_LLVM_DYLIB=YES
+ -DLLVM_LINK_LLVM_DYLIB=YES
+ -DLLVM_ENABLE_RTTI=YES
+ -DLLVM_ENABLE_FFI=YES
+ -DLLVM_BINUTILS_INCDIR=/usr/include
+ -DLLVM_ENABLE_PER_TARGET_RUNTIME_DIR=NO
+ -DLLDB_PYTHON_RELATIVE_PATH=lib/python${py3_ver}/site-packages
+ -DLLDB_PYTHON_EXE_RELATIVE_PATH=bin/python${py3_ver}
+ -DLLDB_PYTHON_EXT_SUFFIX=$_ext_suffix"
+hostmakedepends="perl python3 zlib-devel libffi-devel swig python3-Sphinx
+ python3-recommonmark python3-sphinx-automodapi"
+makedepends="python3-devel zlib-devel elfutils-devel libffi-devel libedit-devel
+ libxml2-devel binutils-devel libatomic-devel"
+depends="libllvm15>=${version}_${revision}"
+short_desc="Low Level Virtual Machine"
+maintainer="Orphaned <orphan@voidlinux.org>"
+license="Apache-2.0"
+homepage="https://www.llvm.org"
+distfiles="https://github.com/llvm/llvm-project/releases/download/llvmorg-${version}/llvm-project-${version}.src.tar.xz"
+checksum=8b5fcb24b4128cf04df1b0b9410ce8b1a729cb3c544e6da885d234280dedeac6
+lib32disabled=yes
+python_version=3
+
+if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
+ configure_args+=" -DLIBCXX_HAS_MUSL_LIBC=YES
+ -DCOMPILER_RT_BUILD_GWP_ASAN=OFF"
+fi
+
+# "operand out of range" assembler failures
+case "$XBPS_TARGET_MACHINE" in
+ ppc64*) ;;
+ ppc*) configure_args+=" -DCLANG_ENABLE_CLANGD=OFF" ;;
+esac
+
+_enabled_projects="clang;clang-tools-extra;compiler-rt;libcxx;libcxxabi;libunwind;lld"
+
+_lldb_enable=yes
+_libomp_enable=no
+
+case "$XBPS_TARGET_MACHINE" in
+ ppc64le*) ;;
+ ppc*|i686*|riscv64*) _lldb_enable=no ;;
+esac
+
+case "$XBPS_TARGET_MACHINE" in
+ x86_64*|aarch64*|ppc64*) _libomp_enable=yes;;
+esac
+
+subpackages="clang-tools-extra"
+
+# must go before clang
+if [ "$_libomp_enable" = "yes" ]; then
+ _enabled_projects+=";openmp"
+ subpackages+=" libomp libomp-devel"
+ # because of cmake nonsense referencing libomptarget.so.*
+ depends+=" libomp>=${version}_${revision}"
+ if [ "$CROSS_BUILD" ]; then
+ # Seems to require a full host llvm/clang build
+ configure_args+=" -DLIBOMPTARGET_BUILD_CUDA_PLUGIN=OFF"
+ configure_args+=" -DLIBOMPTARGET_BUILD_AMDGPU_PLUGIN=OFF"
+ fi
+fi
+
+subpackages+=" clang clang-analyzer libclang libclang-cpp
+ llvm-libunwind llvm-libunwind-devel libcxx libcxx-devel
+ libcxxabi libcxxabi-devel libllvm15"
+
+if [ "$_lldb_enable" = "yes" ]; then
+ # XXX fails to cross compile due to python
+ _enabled_projects+=";lldb"
+ subpackages+=" lldb lldb-devel"
+fi
+
+subpackages+=" lld lld-devel"
+
+configure_args+=" -DLLVM_ENABLE_PROJECTS=${_enabled_projects}"
+
+post_patch() {
+ if [ "$_lldb_enable" = "yes" ]; then
+ if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
+ vsed -i 's|__ptrace_request|int|g' \
+ ${wrksrc}/lldb/source/Plugins/Process/Linux/NativeProcessLinux.cpp
+ fi
+ # disable docs for lldb as they fail to generate
+ vsed -i '/add_subdirectory(docs)/d' \
+ ${wrksrc}/lldb/CMakeLists.txt
+ fi
+
+ # update config.guess for better platform detection
+ cp $XBPS_COMMONDIR/environment/configure/automake/config.guess \
+ ${wrksrc}/llvm/cmake
+
+ # fix linker failures on some archs
+ vsed -i 's,check_library_exists(gcc_s .*,set(LIBCXXABI_HAS_GCC_S_LIB ON),' \
+ ${wrksrc}/libcxxabi/cmake/config-ix.cmake
+ vsed -i 's,check_library_exists(gcc .*,set(LIBCXXABI_HAS_GCC_LIB ON),' \
+ ${wrksrc}/libcxxabi/cmake/config-ix.cmake
+
+ # need libssp_nonshared on some musl platforms (because of nodefaultlibs)
+ case "$XBPS_TARGET_MACHINE" in
+ ppc64*) ;;
+ ppc*-musl|i686-musl|mips*-musl)
+ vsed -i 's,^# Setup flags.$,add_library_flags(ssp_nonshared),' \
+ ${wrksrc}/libunwind/src/CMakeLists.txt
+ vsed -i 's,^# Setup flags.$,add_library_flags(ssp_nonshared),' \
+ ${wrksrc}/libcxxabi/src/CMakeLists.txt
+ vsed -i 's,#ssp,,' ${wrksrc}/libcxx/CMakeLists.txt
+ ;;
+ esac
+
+ case "$XBPS_TARGET_MACHINE" in
+ arm*-musl|i686-musl) # sanitizer code is broken since it duplicates some libc bits
+ vsed -i 's/set(COMPILER_RT_HAS_SANITIZER_COMMON TRUE)/set(COMPILER_RT_HAS_SANITIZER_COMMON FALSE)/' \
+ ${wrksrc}/compiler-rt/cmake/config-ix.cmake
+ ;;
+ esac
+}
+
+pre_configure() {
+ local triplet
+
+ # Vastly reduce size of debugging symbols:
+ CFLAGS=${CFLAGS/ -g/ -g1}
+ CXXFLAGS=${CXXFLAGS/ -g/ -g1}
+
+ # since gcc9, the build likes to blow up for ppc32 apparently because
+ # of clang being too large for a 24-bit relative call to the PLT, so
+ # optimize for size instead
+ case "$XBPS_TARGET_MACHINE" in
+ ppc64*) ;;
+ mips*-musl|ppc*) configure_args+=" -DVOID_CXX_OPT_FLAGS=-Os" ;;
+ esac
+
+ if [ "$CROSS_BUILD" ]; then
+ msg_normal "Building host tblgen\n"
+ mkdir -p build/HOST
+ cd build/HOST
+ CC="$BUILD_CC" CXX="$BUILD_CXX" CFLAGS="$BUILD_CFLAGS" \
+ CXXFLAGS="$BUILD_CXXFLAGS" LDFLAGS="$BUILD_LDFLAGS" \
+ cmake ../.. -DCMAKE_BUILD_TYPE=Release \
+ -DLLVM_ENABLE_PROJECTS=${_enabled_projects}
+ make ${makejobs} -C utils/TableGen
+ make ${makejobs} -C tools/clang/utils/TableGen
+ make ${makejobs} -C tools/clang/tools/extra/clang-tidy/misc/ConfusableTable
+ make ${makejobs} -C tools/clang/tools/extra/pseudo/gen
+ [ "$_lldb_enable" = "yes" ] && make ${makejobs} -C tools/lldb/utils/TableGen
+ configure_args+=" -DLLVM_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/llvm-tblgen"
+ configure_args+=" -DCLANG_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/clang-tblgen"
+ configure_args+=" -DCLANG_TIDY_CONFUSABLE_CHARS_GEN=${wrksrc}/llvm/build/HOST/bin/clang-tidy-confusable-chars-gen"
+ configure_args+=" -DCLANG_PSEUDO_GEN=${wrksrc}/llvm/build/HOST/bin/clang-pseudo-gen"
+ [ "$_lldb_enable" = "yes" ] && configure_args+=" -DLLDB_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/lldb-tblgen"
+ cd ../..
+ fi
+
+ case "$XBPS_TARGET_MACHINE" in
+ i686*) _arch="X86";;
+ x86_64*) _arch="X86";;
+ armv5*) _arch="Armv5te";;
+ armv6*) _arch="Armv6";;
+ armv7*) _arch="Armv7";;
+ aarch64*) _arch="AArch64";;
+ mips*) _arch="Mips";;
+ ppc*) _arch="PowerPC";;
+ riscv64*) _arch="RISCV64";;
+ esac
+
+ triplet=${XBPS_CROSS_TRIPLET:-$XBPS_TRIPLET}
+
+ configure_args+=" -DLLVM_TARGET_ARCH=${_arch}"
+ configure_args+=" -DLLVM_HOST_TRIPLE=${triplet}"
+ configure_args+=" -DLLVM_DEFAULT_TARGET_TRIPLE=${triplet}"
+}
+
+do_install() {
+ cd build
+ cmake -DCMAKE_INSTALL_PREFIX=${DESTDIR}/usr -P cmake_install.cmake
+
+ # Required for multilib.
+ if [ "$XBPS_TARGET_MACHINE" = "x86_64" ]; then
+ for _header in llvm-config; do
+ mv ${DESTDIR}/usr/include/llvm/Config/${_header}{,-64}.h
+ vinstall ${FILESDIR}/llvm-Config-${_header}.h 644 \
+ usr/include/llvm/Config ${_header}.h
+ done
+ fi
+
+ # Remove llvm-config-host in cross builds.
+ if [ "$CROSS_BUILD" ]; then
+ rm -f ${DESTDIR}/usr/bin/llvm-config-host
+ fi
+
+ # Install libcxxabi headers
+ vinstall ${wrksrc}/libcxxabi/include/__cxxabi_config.h 644 usr/include
+ vinstall ${wrksrc}/libcxxabi/include/cxxabi.h 644 usr/include
+
+ # Install libunwind headers
+ vinstall ${wrksrc}/libunwind/include/__libunwind_config.h 644 usr/include
+ vinstall ${wrksrc}/libunwind/include/libunwind.h 644 usr/include
+ vinstall ${wrksrc}/libunwind/include/unwind.h 644 usr/include
+ vinstall ${wrksrc}/libunwind/include/mach-o/compact_unwind_encoding.h \
+ 644 usr/include/mach-o
+}
+
+clang-analyzer_package() {
+ pycompile_dirs="usr/share/scan-view"
+ depends="clang-${version}_${revision} python3 perl"
+ short_desc+=" - A source code analysis framework"
+ homepage="https://clang-analyzer.llvm.org/"
+ pkg_install() {
+ vmove "usr/bin/scan-*"
+ vmove "usr/libexec/*analyzer"
+ vmove "usr/share/scan-*"
+ vmove usr/share/man/man1/scan-build.1
+ }
+}
+
+clang-tools-extra_package() {
+ lib32disabled=yes
+ depends="clang-${version}_${revision} python3"
+ short_desc+=" - Extra Clang tools"
+ homepage="https://clang.llvm.org/extra/"
+ pkg_install() {
+ vmove usr/bin/clang-apply-replacements
+ vmove usr/bin/clang-doc
+ vmove usr/bin/clang-include-fixer
+ vmove usr/bin/clang-query
+ vmove usr/bin/clang-rename
+ vmove usr/bin/clang-reorder-fields
+ vmove usr/bin/clang-tidy
+ vmove usr/bin/clangd
+ vmove usr/bin/diagtool
+ vmove usr/bin/find-all-symbols
+ vmove usr/bin/hmaptool
+ vmove usr/bin/modularize
+ vmove usr/bin/pp-trace
+ vmove usr/bin/sancov
+ vmove usr/include/clang-tidy
+ vmove "usr/lib/libclangApplyReplacements*"
+ vmove "usr/lib/libclangDoc*"
+ vmove "usr/lib/libclangIncludeFixer*"
+ vmove "usr/lib/libclangReorderFields*"
+ vmove "usr/lib/libclangQuery*"
+ vmove "usr/lib/libclangTidy*"
+ vmove "usr/share/clang/*include-fixer*"
+ vmove "usr/share/clang/*rename*"
+ vmove "usr/share/clang/*tidy*"
+ vmove usr/share/doc/LLVM/clang-tools
+ vmove usr/share/man/man1/diagtool.1
+ vmove usr/share/man/man1/extraclangtools.1
+ }
+}
+
+clang_package() {
+ lib32disabled=yes
+ depends="libstdc++-devel libgcc-devel binutils ${XBPS_TARGET_LIBC}-devel
+ libclang-${version}_${revision}"
+ short_desc+=" - C language family frontend"
+ homepage="https://clang.llvm.org/"
+ pkg_install() {
+ vmove "usr/bin/*clang*"
+ vmove usr/bin/c-index-test
+ vmove usr/include/clang
+ vmove usr/include/clang-c
+ vmove usr/lib/clang
+ vmove usr/lib/cmake/clang
+ vmove "usr/lib/libclang*.a"
+ vmove "usr/lib/libclang*.so"
+ vmove usr/share/clang
+ vmove usr/share/doc/LLVM/clang
+ vmove usr/share/man/man1/clang.1
+ }
+}
+
+libclang_package() {
+ short_desc+=" - C frontend runtime library"
+ pkg_install() {
+ vmove "usr/lib/libclang.so.*"
+ }
+}
+
+libclang-cpp_package() {
+ short_desc+=" - C frontend runtime library (C++ interface)"
+ pkg_install() {
+ vmove "usr/lib/libclang-cpp.so.*"
+ }
+}
+
+lld_package() {
+ lib32disabled=yes
+ short_desc+=" - linker"
+ homepage="https://lld.llvm.org"
+ pkg_install() {
+ vmove "usr/bin/ld.lld*"
+ vmove "usr/bin/ld64.lld*"
+ vmove "usr/bin/lld*"
+ vmove usr/bin/wasm-ld
+ vmove usr/share/doc/LLVM/lld
+ }
+}
+
+lld-devel_package() {
+ lib32disabled=yes
+ short_desc+=" - linker - development files"
+ homepage="https://lld.llvm.org"
+ depends="lld>=${version}_${revision}"
+ pkg_install() {
+ vmove usr/include/lld
+ vmove usr/lib/cmake/lld
+ vmove "usr/lib/liblld*a"
+ }
+}
+
+lldb_package() {
+ lib32disabled=yes
+ depends+=" python3-six"
+ short_desc+=" - LLDB debugger"
+ homepage="https://lldb.llvm.org/"
+ pkg_install() {
+ vmove "usr/bin/*lldb*"
+ vmove "usr/lib/liblldb*so.*"
+ vmove usr/lib/python*
+ }
+}
+
+lldb-devel_package() {
+ lib32disabled=yes
+ depends="lldb>=${version}_${revision}"
+ short_desc+=" - LLDB debugger - development files"
+ pkg_install() {
+ vmove usr/include/lldb
+ vmove "usr/lib/liblldb*.so"
+ }
+}
+
+llvm-libunwind_package() {
+ short_desc+=" - libunwind"
+ pkg_install() {
+ vmove "usr/lib/libunwind.so.*"
+ }
+}
+
+llvm-libunwind-devel_package() {
+ short_desc+=" - libunwind - development files"
+ depends="llvm-libunwind>=${version}_${revision}"
+ conflicts="libunwind-devel>=0"
+ pkg_install() {
+ vmove usr/include/mach-o
+ vmove "usr/include/*unwind*"
+ vmove "usr/lib/libunwind.a"
+ vmove "usr/lib/libunwind.so"
+ vmove usr/share/doc/LLVM/libunwind
+ }
+}
+
+libcxxabi_package() {
+ short_desc+=" - low level support for libc++"
+ pkg_install() {
+ vmove "usr/lib/libc++abi.so.*"
+ }
+}
+
+libcxxabi-devel_package() {
+ short_desc+=" - low level support for libc++ - development files"
+ depends="libcxxabi>=${version}_${revision}"
+ pkg_install() {
+ vmove "usr/include/*cxxabi*"
+ vmove "usr/lib/libc++abi.so"
+ vmove "usr/lib/libc++abi.a"
+ }
+}
+
+libcxx_package() {
+ short_desc+=" - C++ standard library"
+ pkg_install() {
+ vmove "usr/lib/libc++.so.*"
+ }
+}
+
+libcxx-devel_package() {
+ short_desc+=" - C++ standard library - development files"
+ depends="libcxx>=${version}_${revision}"
+ pkg_install() {
+ vmove usr/include/c++
+ vmove "usr/lib/libc++.so"
+ vmove "usr/lib/libc++.a"
+ vmove "usr/lib/libc++experimental.a"
+ vmove usr/share/doc/LLVM/libcxx
+ }
+}
+
+libomp_package() {
+ short_desc+=" - Clang OpenMP support library"
+ pkg_install() {
+ vmove usr/lib/libarcher.so
+ vmove usr/lib/libompd.so
+ vmove "usr/lib/libomptarget.rtl.*.so"
+ vmove "usr/lib/libomp*.so.*"
+ }
+}
+
+libomp-devel_package() {
+ short_desc+=" - Clang OpenMP support library - development files"
+ depends="libomp>=${version}_${revision}"
+ pkg_install() {
+ vmove "usr/include/omp*.h"
+ vmove "usr/lib/clang/${version}/include/omp*.h"
+ vmove "usr/lib/libarcher*"
+ vmove "usr/lib/libomp*.so"
+ vmove usr/lib/cmake/openmp
+ vmove usr/share/doc/LLVM/openmp
+ vmove usr/share/man/man1/llvmopenmp.1
+ }
+}
+
+libllvm15_package() {
+ short_desc+=" - runtime library"
+ pkg_install() {
+ vmove "usr/lib/libLLVM-*.so*"
+ }
+}
diff --git a/srcpkgs/llvm15/update b/srcpkgs/llvm15/update
new file mode 100644
index 000000000000..e95cf26b3586
--- /dev/null
+++ b/srcpkgs/llvm15/update
@@ -0,0 +1,3 @@
+site="https://github.com/llvm/llvm-project/releases"
+pattern="llvmorg-\K(\d+.){2}\d+(-rc\d+)?"
+ignore="*-rc*"
From b7100e9d6a5681bf7aeeeb41612ffbba83f2875a Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Sun, 18 Dec 2022 00:40:18 +0100
Subject: [PATCH 02/23] llvm: update to 15
---
common/shlibs | 6 +++---
srcpkgs/clang | 2 +-
srcpkgs/clang-analyzer | 2 +-
srcpkgs/clang-tools-extra | 2 +-
srcpkgs/libclang | 2 +-
srcpkgs/libclang-cpp | 2 +-
srcpkgs/libcxx | 2 +-
srcpkgs/libcxx-devel | 2 +-
srcpkgs/libcxxabi | 2 +-
srcpkgs/libcxxabi-devel | 2 +-
srcpkgs/libomp | 2 +-
srcpkgs/libomp-devel | 2 +-
srcpkgs/lld | 2 +-
srcpkgs/lld-devel | 2 +-
srcpkgs/lldb | 2 +-
srcpkgs/lldb-devel | 2 +-
srcpkgs/llvm-libunwind | 2 +-
srcpkgs/llvm-libunwind-devel | 2 +-
srcpkgs/llvm/template | 6 +++---
19 files changed, 23 insertions(+), 23 deletions(-)
diff --git a/common/shlibs b/common/shlibs
index 661979817442..ce67bf777dab 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -985,9 +985,9 @@ 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.12 lldb-12.0.0_1
-libclang.so.12 libclang-12.0.0_1
-libclang-cpp.so.12 libclang-cpp-12.0.0_1
+liblldb.so.15 lldb-15.0.7_1
+libclang.so.15 libclang-15.0.7_1
+libclang-cpp.so.15 libclang-cpp-15.0.7_1
libLLVM-11.so libllvm11-11.0.0_1
libLLVM-12.so libllvm12-12.0.0_1
libLLVM-15.so libllvm15-15.0.7_1
diff --git a/srcpkgs/clang b/srcpkgs/clang
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/clang
+++ b/srcpkgs/clang
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/clang-analyzer b/srcpkgs/clang-analyzer
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/clang-analyzer
+++ b/srcpkgs/clang-analyzer
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/clang-tools-extra b/srcpkgs/clang-tools-extra
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/clang-tools-extra
+++ b/srcpkgs/clang-tools-extra
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libclang b/srcpkgs/libclang
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libclang
+++ b/srcpkgs/libclang
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libclang-cpp b/srcpkgs/libclang-cpp
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libclang-cpp
+++ b/srcpkgs/libclang-cpp
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxx b/srcpkgs/libcxx
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxx
+++ b/srcpkgs/libcxx
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxx-devel b/srcpkgs/libcxx-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxx-devel
+++ b/srcpkgs/libcxx-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxxabi b/srcpkgs/libcxxabi
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxxabi
+++ b/srcpkgs/libcxxabi
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxxabi-devel b/srcpkgs/libcxxabi-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxxabi-devel
+++ b/srcpkgs/libcxxabi-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libomp b/srcpkgs/libomp
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libomp
+++ b/srcpkgs/libomp
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libomp-devel b/srcpkgs/libomp-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libomp-devel
+++ b/srcpkgs/libomp-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lld b/srcpkgs/lld
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lld
+++ b/srcpkgs/lld
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lld-devel b/srcpkgs/lld-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lld-devel
+++ b/srcpkgs/lld-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lldb b/srcpkgs/lldb
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lldb
+++ b/srcpkgs/lldb
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lldb-devel b/srcpkgs/lldb-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lldb-devel
+++ b/srcpkgs/lldb-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm-libunwind b/srcpkgs/llvm-libunwind
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/llvm-libunwind
+++ b/srcpkgs/llvm-libunwind
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm-libunwind-devel b/srcpkgs/llvm-libunwind-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/llvm-libunwind-devel
+++ b/srcpkgs/llvm-libunwind-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm/template b/srcpkgs/llvm/template
index a92db6f94f9f..fc1c850bd26f 100644
--- a/srcpkgs/llvm/template
+++ b/srcpkgs/llvm/template
@@ -1,11 +1,11 @@
# Template file for 'llvm'
pkgname=llvm
-version=12.0.0
+version=15
revision=1
build_style=meta
-depends="llvm12"
-replaces="llvm11>=0 llvm10>=0 llvm9>=0 llvm8>=0 llvm7>=0 llvm6.0>=0 llvm3.9>=0"
+depends="llvm15"
short_desc="LLVM meta package"
maintainer="Enno Boland <gottox@voidlinux.org>"
license="Public Domain"
homepage="https://www.voidlinux.org"
+replaces="llvm12>=0 llvm11>=0 llvm10>=0 llvm9>=0 llvm8>=0 llvm7>=0 llvm6.0>=0 llvm3.9>=0"
From cbb85722dcbdc9242ed7dc18e9407d6f41f17376 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Sun, 18 Dec 2022 12:20:08 +0100
Subject: [PATCH 03/23] llvm12: remove bumped subpackages
---
srcpkgs/llvm12/template | 264 +---------------------------------------
1 file changed, 1 insertion(+), 263 deletions(-)
diff --git a/srcpkgs/llvm12/template b/srcpkgs/llvm12/template
index f8ea3ba641ae..aea0b43cf573 100644
--- a/srcpkgs/llvm12/template
+++ b/srcpkgs/llvm12/template
@@ -50,55 +50,7 @@ case "$XBPS_TARGET_MACHINE" in
ppc*) configure_args+=" -DCLANG_ENABLE_CLANGD=OFF" ;;
esac
-_enabled_projects="clang;clang-tools-extra;compiler-rt;libcxx;libcxxabi;libunwind;lld"
-
-_lldb_enable=yes
-_libomp_enable=no
-
-case "$XBPS_TARGET_MACHINE" in
- ppc64le*) ;;
- ppc*|i686*) _lldb_enable=no ;;
-esac
-
-case "$XBPS_TARGET_MACHINE" in
- x86_64*|aarch64*|ppc64*) _libomp_enable=yes;;
-esac
-
-subpackages="clang-tools-extra"
-
-# must go before clang
-if [ "$_libomp_enable" = "yes" ]; then
- _enabled_projects+=";openmp"
- subpackages+=" libomp libomp-devel"
- # because of cmake nonsense referencing libomptarget.so.*
- depends+=" libomp>=${version}_${revision}"
-fi
-
-subpackages+=" clang clang-analyzer libclang libclang-cpp
- llvm-libunwind llvm-libunwind-devel libcxx libcxx-devel
- libcxxabi libcxxabi-devel libllvm12"
-
-if [ "$_lldb_enable" = "yes" ]; then
- # XXX fails to cross compile due to python
- _enabled_projects+=";lldb"
- subpackages+=" lldb lldb-devel"
-fi
-
-subpackages+=" lld lld-devel"
-
-configure_args+=" -DLLVM_ENABLE_PROJECTS=${_enabled_projects}"
-
post_patch() {
- if [ "$_lldb_enable" = "yes" ]; then
- if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
- vsed -i 's|__ptrace_request|int|g' \
- ${wrksrc}/lldb/source/Plugins/Process/Linux/NativeProcessLinux.cpp
- fi
- # disable docs for lldb as they fail to generate
- vsed -i '/add_subdirectory(docs)/d' \
- ${wrksrc}/lldb/CMakeLists.txt
- fi
-
# update config.guess for better platform detection
cp $XBPS_COMMONDIR/environment/configure/automake/config.guess \
${wrksrc}/llvm/cmake
@@ -154,14 +106,12 @@ pre_configure() {
cd build/HOST
CC="$BUILD_CC" CXX="$BUILD_CXX" CFLAGS="$BUILD_CFLAGS" \
CXXFLAGS="$BUILD_CXXFLAGS" LDFLAGS="$BUILD_LDFLAGS" \
- cmake ../.. -DCMAKE_BUILD_TYPE=Release \
- -DLLVM_ENABLE_PROJECTS=${_enabled_projects}
+ cmake ../.. -DCMAKE_BUILD_TYPE=Release
make ${makejobs} -C utils/TableGen
make ${makejobs} -C tools/clang/utils/TableGen
[ "$_lldb_enable" = "yes" ] && make ${makejobs} -C tools/lldb/utils/TableGen
configure_args+=" -DLLVM_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/llvm-tblgen"
configure_args+=" -DCLANG_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/clang-tblgen"
- [ "$_lldb_enable" = "yes" ] && configure_args+=" -DLLDB_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/lldb-tblgen"
cd ../..
fi
@@ -201,218 +151,6 @@ do_install() {
if [ "$CROSS_BUILD" ]; then
rm -f ${DESTDIR}/usr/bin/llvm-config-host
fi
-
- # Install libcxxabi headers
- vinstall ${wrksrc}/libcxxabi/include/__cxxabi_config.h 644 usr/include
- vinstall ${wrksrc}/libcxxabi/include/cxxabi.h 644 usr/include
-
- # Install libunwind headers
- vinstall ${wrksrc}/libunwind/include/__libunwind_config.h 644 usr/include
- vinstall ${wrksrc}/libunwind/include/libunwind.h 644 usr/include
- vinstall ${wrksrc}/libunwind/include/unwind.h 644 usr/include
- vinstall ${wrksrc}/libunwind/include/mach-o/compact_unwind_encoding.h \
- 644 usr/include/mach-o
-}
-
-clang-analyzer_package() {
- pycompile_dirs="usr/share/scan-view"
- depends="clang-${version}_${revision} python3 perl"
- short_desc+=" - A source code analysis framework"
- homepage="https://clang-analyzer.llvm.org/"
- pkg_install() {
- vmove usr/share/man/man1/scan-build.1
- vmove "/usr/bin/scan-*"
- vmove "/usr/share/scan-*"
- vmove "/usr/libexec/*analyzer"
- }
-}
-
-clang-tools-extra_package() {
- lib32disabled=yes
- depends="clang-${version}_${revision} python3"
- short_desc+=" - Extra Clang tools"
- homepage="https://clang.llvm.org/extra/"
- pkg_install() {
- vmove usr/include/clang-tidy
- vmove usr/bin/clang-apply-replacements
- vmove usr/bin/clang-query
- vmove usr/bin/clang-rename
- vmove usr/bin/clang-tidy
- vmove usr/bin/diagtool
- vmove usr/bin/find-all-symbols
- vmove usr/bin/hmaptool
- vmove usr/bin/modularize
- vmove usr/bin/pp-trace
- vmove usr/bin/sancov
- vmove "usr/lib/libclangApplyReplacements*"
- vmove "usr/lib/libclangQuery*"
- vmove "usr/lib/libclangTidy*"
- vmove "usr/share/clang/*tidy*"
- vmove usr/share/doc/clang-tools
- vmove usr/share/man/man1/extraclangtools.1
- vmove usr/share/man/man1/diagtool.1
- }
-}
-
-clang_package() {
- lib32disabled=yes
- depends="libstdc++-devel libgcc-devel binutils ${XBPS_TARGET_LIBC}-devel
- libclang-${version}_${revision}"
- short_desc+=" - C language family frontend"
- homepage="https://clang.llvm.org/"
- pkg_install() {
- vmove usr/include/clang
- vmove usr/include/clang-c
- vmove "usr/bin/*clang*"
- vmove usr/bin/c-index-test
- vmove usr/lib/clang
- vmove usr/lib/cmake/clang
- vmove "usr/lib/libclang*.a"
- vmove "usr/lib/libclang*.so"
- vmove usr/share/clang
- vmove usr/share/doc/clang
- vmove usr/share/man/man1/clang.1
- }
-}
-
-libclang_package() {
- short_desc+=" - C frontend runtime library"
- pkg_install() {
- vmove "usr/lib/libclang.so.*"
- }
-}
-
-libclang-cpp_package() {
- short_desc+=" - C frontend runtime library (C++ interface)"
- pkg_install() {
- vmove "usr/lib/libclang-cpp.so.*"
- }
-}
-
-lld_package() {
- lib32disabled=yes
- short_desc+=" - linker"
- homepage="https://lld.llvm.org"
- pkg_install() {
- vmove usr/bin/lld*
- vmove usr/bin/wasm-ld
- vmove usr/bin/ld.lld*
- vmove usr/bin/ld64.lld*
- vmove usr/share/doc/lld
- }
-}
-
-lld-devel_package() {
- lib32disabled=yes
- short_desc+=" - linker - development files"
- homepage="https://lld.llvm.org"
- depends="lld>=${version}_${revision}"
- pkg_install() {
- vmove usr/include/lld
- vmove usr/lib/cmake/lld
- vmove "usr/lib/liblld*a"
- }
-}
-
-lldb_package() {
- lib32disabled=yes
- depends+=" python3-six"
- short_desc+=" - LLDB debugger"
- homepage="https://lldb.llvm.org/"
- pkg_install() {
- vmove usr/bin/*lldb*
- vmove usr/lib/liblldb*so.*
- vmove /usr/lib/python*
- }
-}
-
-lldb-devel_package() {
- lib32disabled=yes
- depends="lldb>=${version}_${revision}"
- short_desc+=" - LLDB debugger - development files"
- pkg_install() {
- vmove usr/include/lldb
- vmove "usr/lib/liblldb*.so"
- }
-}
-
-llvm-libunwind_package() {
- short_desc+=" - libunwind"
- pkg_install() {
- vmove "usr/lib/libunwind.so.*"
- }
-}
-
-llvm-libunwind-devel_package() {
- short_desc+=" - libunwind - development files"
- depends="llvm-libunwind>=${version}_${revision}"
- conflicts="libunwind-devel>=0"
- pkg_install() {
- vmove usr/lib/libunwind.so
- vmove usr/lib/libunwind.a
- vmove "usr/include/*unwind*"
- vmove usr/include/mach-o
- vmove usr/share/doc/libunwind
- }
-}
-
-libcxxabi_package() {
- short_desc+=" - low level support for libc++"
- pkg_install() {
- vmove "usr/lib/libc++abi.so.*"
- }
-}
-
-libcxxabi-devel_package() {
- short_desc+=" - low level support for libc++ - development files"
- depends="libcxxabi>=${version}_${revision}"
- pkg_install() {
- vmove usr/lib/libc++abi.so
- vmove usr/lib/libc++abi.a
- vmove "usr/include/*cxxabi*"
- }
-}
-
-libcxx_package() {
- short_desc+=" - C++ standard library"
- pkg_install() {
- vmove "usr/lib/libc++.so.*"
- }
-}
-
-libcxx-devel_package() {
- short_desc+=" - C++ standard library - development files"
- depends="libcxx>=${version}_${revision}"
- pkg_install() {
- vmove usr/lib/libc++.so
- vmove usr/lib/libc++.a
- vmove usr/lib/libc++experimental.a
- vmove usr/include/c++
- vmove usr/share/doc/libcxx
- }
-}
-
-libomp_package() {
- short_desc+=" - Clang OpenMP support library"
- pkg_install() {
- vmove usr/lib/libomp.so
- vmove "usr/lib/libomptarget.rtl.*.so"
- vmove usr/lib/libarcher.so
- vmove "usr/lib/libomp*.so.*"
- }
-}
-
-libomp-devel_package() {
- short_desc+=" - Clang OpenMP support library - development files"
- depends="libomp>=${version}_${revision}"
- pkg_install() {
- vmove "usr/lib/libomp*.so"
- vmove "usr/lib/libarcher*"
- vmove "usr/include/omp*.h"
- vmove "usr/lib/clang/${version}/include/omp*.h"
- vmove usr/share/man/man1/llvmopenmp.1
- vmove usr/share/doc/openmp
- }
}
libllvm12_package() {
From 47ef2f192c4f2bd5f8751b5651e4cbc256c67d01 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:27:03 +0100
Subject: [PATCH 04/23] mesa: rebuild for llvm15
---
srcpkgs/mesa/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/mesa/template b/srcpkgs/mesa/template
index 4c3c9ec6039e..0641b28a80d6 100644
--- a/srcpkgs/mesa/template
+++ b/srcpkgs/mesa/template
@@ -1,7 +1,7 @@
# Template file for 'mesa'
pkgname=mesa
version=22.2.4
-revision=2
+revision=3
build_style=meson
configure_args="-Dglvnd=true -Dshared-glapi=enabled -Dgbm=enabled -Degl=enabled
-Dosmesa=true -Dgles1=enabled -Dgles2=enabled -Dglx=dri -Ddri3=enabled
From d0a13a86a8b7b4033aba158d8538a5fd947c981f Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:34:04 +0100
Subject: [PATCH 05/23] bcc: rebuild for llvm15
---
srcpkgs/bcc/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/bcc/template b/srcpkgs/bcc/template
index 7526580f17ed..bdbcff7227a0 100644
--- a/srcpkgs/bcc/template
+++ b/srcpkgs/bcc/template
@@ -1,7 +1,7 @@
# Template file for 'bcc'
pkgname=bcc
version=0.26.0
-revision=2
+revision=3
build_style=cmake
configure_args="-DREVISION=${version} -DENABLE_LLVM_SHARED=1"
hostmakedepends="flex python3-setuptools"
From a5112ebd26157044b288b9f71a74158f004c2907 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:37:25 +0100
Subject: [PATCH 06/23] bpftrace: rebuild for llvm15
---
srcpkgs/bpftrace/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/bpftrace/template b/srcpkgs/bpftrace/template
index 952682662128..2f01dbf69530 100644
--- a/srcpkgs/bpftrace/template
+++ b/srcpkgs/bpftrace/template
@@ -1,7 +1,7 @@
# Template file for 'bpftrace'
pkgname=bpftrace
version=0.17.0
-revision=1
+revision=2
archs="x86_64* aarch64* ppc64*"
build_style=cmake
configure_args="-DUSE_SYSTEM_BPF_BCC=ON -DBUILD_TESTING=OFF" # needs root to run
From 04e81bf7953fa386072a0878df05ccaf36a1998f Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:43:53 +0100
Subject: [PATCH 07/23] CastXML: rebuild for llvm15
---
srcpkgs/CastXML/template | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/srcpkgs/CastXML/template b/srcpkgs/CastXML/template
index 5d7d9503658c..28c424c78073 100644
--- a/srcpkgs/CastXML/template
+++ b/srcpkgs/CastXML/template
@@ -1,7 +1,7 @@
# Template file for 'CastXML'
pkgname=CastXML
version=0.4.6
-revision=1
+revision=2
build_style=cmake
configure_args="-DSPHINX_MAN=YES -DCastXML_INSTALL_MAN_DIR=share/man"
hostmakedepends="clang python3-Sphinx"
@@ -12,8 +12,8 @@ short_desc="C-family abstract syntax tree XML output tool"
maintainer="Evgeny Ermakov <evgeny.v.ermakov@gmail.com>"
license="Apache-2.0"
homepage="https://github.com/CastXML/CastXML"
-distfiles="https://github.com/CastXML/CastXML/archive/v${version}.tar.gz"
-checksum=8dcdbc1f23a130e4bdb0b09f57c30761a02a346b4db4037555048af2a293d66a
+distfiles="https://github.com/CastXML/CastXML/archive/refs/tags/v${version}.tar.gz"
+checksum=bb9024ec9ea5082e0d527f19bf3c2df79f1699f54b6cec168c024e727b32e6d1
post_install() {
rm -r ${DESTDIR}/usr/share/castxml/clang/include
From a80fcca7a2514f351d031fae7d9b5ac983f6c63a Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:48:55 +0100
Subject: [PATCH 08/23] ccls: rebuild for llvm15
---
srcpkgs/ccls/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/ccls/template b/srcpkgs/ccls/template
index 82fa61933878..ecc9f3e38a5d 100644
--- a/srcpkgs/ccls/template
+++ b/srcpkgs/ccls/template
@@ -1,7 +1,7 @@
# Template file for 'ccls'
pkgname=ccls
version=0.20220729
-revision=1
+revision=2
build_style=cmake
hostmakedepends="clang-tools-extra"
makedepends="clang-tools-extra libxml2-devel llvm ncurses-devel rapidjson zlib-devel"
From bd2a87867612261270082ecb9f3b62e706f33b83 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:52:14 +0100
Subject: [PATCH 09/23] include-what-you-use: update to 0.19
---
srcpkgs/include-what-you-use/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/include-what-you-use/template b/srcpkgs/include-what-you-use/template
index d3655709c20c..1a30bc04bb2d 100644
--- a/srcpkgs/include-what-you-use/template
+++ b/srcpkgs/include-what-you-use/template
@@ -1,6 +1,6 @@
# Template file for 'include-what-you-use'
pkgname=include-what-you-use
-version=0.16
+version=0.19
revision=1
build_style=cmake
configure_args="-DIWYU_LLVM_ROOT_PATH=${XBPS_CROSS_BASE}/usr "
@@ -11,7 +11,7 @@ maintainer="Leah Neukirchen <leah@vuxu.org>"
license="NCSA"
homepage="https://include-what-you-use.org/"
distfiles="https://include-what-you-use.org/downloads/${pkgname}-${version}.src.tar.gz"
-checksum=8d6fc9b255343bc1e5ec459e39512df1d51c60e03562985e0076036119ff5a1c
+checksum=2b10157b60ea08adc08e3896b4921c73fcadd5ec4eb652b29a34129d501e5ee0
python_version=3
post_install() {
From 727334da98ef18ca0452ea1d18bba052f9195384 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 15:11:06 +0100
Subject: [PATCH 10/23] SPIRV-LLVM-Translator: update to 15.0.0
---
srcpkgs/SPIRV-LLVM-Translator/template | 13 +++++++------
1 file changed, 7 insertions(+), 6 deletions(-)
diff --git a/srcpkgs/SPIRV-LLVM-Translator/template b/srcpkgs/SPIRV-LLVM-Translator/template
index a2754e58c0e8..bee99f9bcbb2 100644
--- a/srcpkgs/SPIRV-LLVM-Translator/template
+++ b/srcpkgs/SPIRV-LLVM-Translator/template
@@ -1,19 +1,20 @@
# Template file for 'SPIRV-LLVM-Translator'
pkgname=SPIRV-LLVM-Translator
-version=12.0.0
-revision=2
+version=15.0.0
+revision=1
build_style=cmake
make_build_args="llvm-spirv"
configure_args="-Wno-dev -DLLVM_LINK_LLVM_DYLIB=ON -DCMAKE_SKIP_RPATH=ON
- -DLLVM_SPIRV_INCLUDE_TESTS=OFF -DBUILD_SHARED_LIBS=ON"
+ -DLLVM_SPIRV_INCLUDE_TESTS=OFF -DBUILD_SHARED_LIBS=ON
+ -DLLVM_EXTERNAL_SPIRV_HEADERS_SOURCE_DIR=/usr"
hostmakedepends="clang llvm"
-makedepends="clang-tools-extra llvm"
+makedepends="clang-tools-extra llvm SPIRV-Headers"
short_desc="API and commands for processing SPIR-V modules"
maintainer="Orphaned <orphan@voidlinux.org>"
license="NCSA"
homepage="https://github.com/KhronosGroup/SPIRV-LLVM-Translator"
-distfiles="https://github.com/KhronosGroup/${pkgname}/archive/refs/tags/v${version}.tar.gz"
-checksum=6e4fad04203f25fcde4c308c53e9f59bd05a390978992db3212d4b63aff62108
+distfiles="https://github.com/KhronosGroup/SPIRV-LLVM-Translator/archive/refs/tags/v${version}.tar.gz"
+checksum=b1bebd77f72988758c00852e78c2ddc545815a612169a0cb377d021e2f846d88
post_install() {
vlicense LICENSE.TXT
From 1029b66414dbcecbe9c9e8459e8d003d0e52a805 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Fri, 6 Jan 2023 17:11:04 +0100
Subject: [PATCH 11/23] rtags: rebuild for llvm15
---
srcpkgs/rtags/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/rtags/template b/srcpkgs/rtags/template
index b496a1b0e721..9b161e690d76 100644
--- a/srcpkgs/rtags/template
+++ b/srcpkgs/rtags/template
@@ -1,7 +1,7 @@
# Template file for 'rtags'
pkgname=rtags
version=2.38
-revision=5
+revision=6
build_style=cmake
# Don't run tests in do_install, please.
configure_args="-DSKIP_CTEST=TRUE"
From 4f5f4e9d0e2137b004eeb1f49d02f49d7f9651a8 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Fri, 6 Jan 2023 17:14:14 +0100
Subject: [PATCH 12/23] juCi++: rebuild for llvm15
---
srcpkgs/juCi++/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/juCi++/template b/srcpkgs/juCi++/template
index c1969237f11d..416bde7cc4d0 100644
--- a/srcpkgs/juCi++/template
+++ b/srcpkgs/juCi++/template
@@ -1,7 +1,7 @@
# Template file for 'juCi++'
pkgname=juCi++
version=1.7.2
-revision=2
+revision=3
_libclangmm_commit="9704b9b6de0982a588fa41741157d5640afedf30"
_tiny_commit="839ff806dc447ff49af80f9a9eaa7949f770f8e5"
create_wrksrc=yes
From 3cab7ce7d61c8b975001771e25023ffb6f2f3e58 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Sat, 7 Jan 2023 11:31:14 +0100
Subject: [PATCH 13/23] qt5: rebuild for llvm15
---
srcpkgs/qt5/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/qt5/template b/srcpkgs/qt5/template
index f4f9f5b5344a..b517b49ead2d 100644
--- a/srcpkgs/qt5/template
+++ b/srcpkgs/qt5/template
@@ -5,7 +5,7 @@ pkgname=qt5
version=5.15.7+20221119
# commit f8c9fb304bc3e53b3aa07f962cd74e9160decccc
# base repo: https://invent.kde.org/qt/qt/qt5
-revision=1
+revision=2
build_style=meta
hostmakedepends="cmake clang flex perl glib-devel pkg-config
python re2c ruby which"
From a24b7a7eb3341d46b1f40ff4209a3a3ca09a4000 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Mon, 9 Jan 2023 01:22:18 +0100
Subject: [PATCH 14/23] codelite: rebuild for llvm15
---
srcpkgs/codelite/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/codelite/template b/srcpkgs/codelite/template
index 6b8b007c8a43..c6115e0274ce 100644
--- a/srcpkgs/codelite/template
+++ b/srcpkgs/codelite/template
@@ -1,7 +1,7 @@
# Template file for 'codelite'
pkgname=codelite
version=16.0.0
-revision=2
+revision=3
create_wrksrc=yes
build_style=cmake
build_helper=cmake-wxWidgets-gtk3
From 8f831699378943712e344107c90fb688e6c650c1 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Mon, 9 Jan 2023 01:58:21 +0100
Subject: [PATCH 15/23] kdevelop: rebuild for llvm15
---
srcpkgs/kdevelop/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/kdevelop/template b/srcpkgs/kdevelop/template
index 5eb275583138..c32ee5240a44 100644
--- a/srcpkgs/kdevelop/template
+++ b/srcpkgs/kdevelop/template
@@ -1,7 +1,7 @@
# Template file for 'kdevelop'
pkgname=kdevelop
version=22.12.1
-revision=1
+revision=2
build_style=cmake
configure_args="-DBUILD_TESTING=OFF"
hostmakedepends="extra-cmake-modules qt5-qmake qt5-host-tools qt5-tools
From 4011610a26012d34d96e44c0e2521c15995731cb Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Mon, 16 Jan 2023 14:43:47 +0100
Subject: [PATCH 16/23] zig: update to 0.10.1
---
.../0001-std.build-fix-handling-of-Dcpu.patch | 48 -------------------
srcpkgs/zig/template | 10 ++--
2 files changed, 6 insertions(+), 52 deletions(-)
delete mode 100644 srcpkgs/zig/patches/0001-std.build-fix-handling-of-Dcpu.patch
diff --git a/srcpkgs/zig/patches/0001-std.build-fix-handling-of-Dcpu.patch b/srcpkgs/zig/patches/0001-std.build-fix-handling-of-Dcpu.patch
deleted file mode 100644
index 4101f24459bb..000000000000
--- a/srcpkgs/zig/patches/0001-std.build-fix-handling-of-Dcpu.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From 1e8cdace7ad324a42228aeb5cd6eb8dd15429413 Mon Sep 17 00:00:00 2001
-From: Isaac Freund <ifreund@ifreund.xyz>
-Date: Tue, 21 Sep 2021 21:06:10 +0200
-Subject: [PATCH] std.build: fix handling of -Dcpu
-
-Currently -Dcpu is completely ignored if -Dtarget isn't passed as well.
-Further, -Dcpu=baseline is ignored even if -Dtarget=native is passed.
-
-This patch fixes these 2 issues, always respecting the -Dcpu option if
-present.
----
- lib/std/build.zig | 13 +++++++------
- 1 file changed, 7 insertions(+), 6 deletions(-)
-
-diff --git a/lib/std/build.zig b/lib/std/build.zig
-index 9b7ebb1f4..e398529f9 100644
---- a/lib/std/build.zig
-+++ b/lib/std/build.zig
-@@ -685,7 +685,11 @@ pub const Builder = struct {
- );
- const mcpu = self.option([]const u8, "cpu", "Target CPU");
-
-- const triple = maybe_triple orelse return args.default_target;
-+ if (maybe_triple == null and mcpu == null) {
-+ return args.default_target;
-+ }
-+
-+ const triple = maybe_triple orelse "native";
-
- var diags: CrossTarget.ParseOptions.Diagnostics = .{};
- const selected_target = CrossTarget.parse(.{
-@@ -2451,11 +2455,8 @@ pub const LibExeObjStep = struct {
-
- if (populated_cpu_features.eql(cross.cpu.features)) {
- // The CPU name alone is sufficient.
-- // If it is the baseline CPU, no command line args are required.
-- if (cross.cpu.model != std.Target.Cpu.baseline(cross.cpu.arch).model) {
-- try zig_args.append("-mcpu");
-- try zig_args.append(cross.cpu.model.name);
-- }
-+ try zig_args.append("-mcpu");
-+ try zig_args.append(cross.cpu.model.name);
- } else {
- var mcpu_buffer = std.ArrayList(u8).init(builder.allocator);
-
---
-2.33.1
-
diff --git a/srcpkgs/zig/template b/srcpkgs/zig/template
index 728c5a64e9df..9807f7ab206b 100644
--- a/srcpkgs/zig/template
+++ b/srcpkgs/zig/template
@@ -1,17 +1,19 @@
# Template file for 'zig'
pkgname=zig
-version=0.8.1
-revision=2
+version=0.10.1
+revision=1
archs="x86_64* aarch64*"
build_style=cmake
make_cmd=make
-makedepends="clang llvm12 lld-devel"
+# we add xml2, zstd, zlib and ncurses
+# because our lld is static-only and requires those to work
+makedepends="clang llvm15 lld-devel libxml2-devel libzstd-devel ncurses-devel zlib-devel"
short_desc="Programming language designed for robustness, optimality, and clarity"
maintainer="Isaac Freund <mail@isaacfreund.com>"
license="MIT"
homepage="https://ziglang.org"
distfiles="https://ziglang.org/download/${version}/zig-${version}.tar.xz"
-checksum=8c428e14a0a89cb7a15a6768424a37442292858cdb695e2eb503fa3c7bf47f1a
+checksum=69459bc804333df077d441ef052ffa143d53012b655a51f04cfef1414c04168c
nopie=yes
nocross=yes
From e552238fcd8f07d2d3ce28f2918054f0f287569a Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Tue, 24 Jan 2023 14:03:51 +0100
Subject: [PATCH 17/23] river: update to 0.2.3
---
...ble-PIE-for-river-riverctl-rivertile.patch | 42 -------------------
srcpkgs/river/template | 10 ++---
2 files changed, 5 insertions(+), 47 deletions(-)
delete mode 100644 srcpkgs/river/patches/0001-Enable-PIE-for-river-riverctl-rivertile.patch
diff --git a/srcpkgs/river/patches/0001-Enable-PIE-for-river-riverctl-rivertile.patch b/srcpkgs/river/patches/0001-Enable-PIE-for-river-riverctl-rivertile.patch
deleted file mode 100644
index ecc68302db09..000000000000
--- a/srcpkgs/river/patches/0001-Enable-PIE-for-river-riverctl-rivertile.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From 759c1c7a915083f3da46960ff82fa2a3566a7065 Mon Sep 17 00:00:00 2001
-From: Isaac Freund <mail@isaacfreund.com>
-Date: Wed, 3 Nov 2021 14:21:35 +0100
-Subject: [PATCH] Enable PIE for river, riverctl, rivertile
-
-There is sadly not yet a standard way to do this exposed by the zig
-build system. See: https://github.com/ziglang/zig/issues/7201
----
- build.zig | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/build.zig b/build.zig
-index d561f49..8ac9a4e 100644
---- a/build.zig
-+++ b/build.zig
-@@ -85,6 +85,7 @@ pub fn build(b: *zbs.Builder) !void {
- const river = b.addExecutable("river", "river/main.zig");
- river.setTarget(target);
- river.setBuildMode(mode);
-+ river.pie = true;
- river.addBuildOption(bool, "xwayland", xwayland);
- river.addBuildOption([:0]const u8, "version", full_version);
-
-@@ -97,6 +98,7 @@ pub fn build(b: *zbs.Builder) !void {
- const riverctl = b.addExecutable("riverctl", "riverctl/main.zig");
- riverctl.setTarget(target);
- riverctl.setBuildMode(mode);
-+ riverctl.pie = true;
- riverctl.addBuildOption([:0]const u8, "version", full_version);
-
- riverctl.step.dependOn(&scanner.step);
-@@ -114,6 +116,7 @@ pub fn build(b: *zbs.Builder) !void {
- const rivertile = b.addExecutable("rivertile", "rivertile/main.zig");
- rivertile.setTarget(target);
- rivertile.setBuildMode(mode);
-+ rivertile.pie = true;
- rivertile.addBuildOption([:0]const u8, "version", full_version);
-
- rivertile.step.dependOn(&scanner.step);
---
-2.33.1
-
diff --git a/srcpkgs/river/template b/srcpkgs/river/template
index 3906858d507e..431aa4bd8e8e 100644
--- a/srcpkgs/river/template
+++ b/srcpkgs/river/template
@@ -1,18 +1,18 @@
# Template file for 'river'
pkgname=river
-version=0.1.1
-revision=2
+version=0.2.3
+revision=1
build_style=zig-build
-configure_args="$(vopt_if xwayland -Dxwayland)"
+configure_args="$(vopt_if xwayland -Dxwayland) -Dpie"
hostmakedepends="pkg-config wayland-devel scdoc"
-makedepends="wlroots0.15-devel libevdev-devel"
+makedepends="wlroots-devel libevdev-devel"
depends="$(vopt_if xwayland xorg-server-xwayland)"
short_desc="Dynamic tiling Wayland compositor"
maintainer="Isaac Freund <mail@isaacfreund.com>"
license="GPL-3.0-or-later"
homepage="https://github.com/riverwm/river"
distfiles="${homepage}/releases/download/v${version}/river-${version}.tar.gz"
-checksum=2a0bcd4670ed9ebd39c279f2bf10803fc65c9f3ee2307ce40728df23ce914d18
+checksum=7acdd2b929e16a20006b4baf1f29e7a8dc7f70cf5747e1503a610a90d1637132
build_options="xwayland"
build_options_default="xwayland"
From 0a64dca9732bc9ac1b8714f412287c99ad1e4c5e Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Fri, 10 Feb 2023 17:25:32 +0100
Subject: [PATCH 18/23] libclc: update to 15.0.7
---
srcpkgs/libclc/template | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/srcpkgs/libclc/template b/srcpkgs/libclc/template
index 779519fd666f..adb60f6ad1f1 100644
--- a/srcpkgs/libclc/template
+++ b/srcpkgs/libclc/template
@@ -1,9 +1,11 @@
# Template file for 'libclc'
pkgname=libclc
-version=12.0.0
+version=15.0.7
revision=1
build_style=cmake
-configure_args="-DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release"
+# disable clspv (failing tests, we don't ship it)
+configure_args="-DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release
+ -DLIBCLC_TARGETS_TO_BUILD=amdgcn--;amdgcn--amdhsa;r600--;nvptx--;nvptx64--;nvptx--nvidiacl;nvptx64--nvidiacl;spirv-mesa3d-;spirv64-mesa3d-"
hostmakedepends="cmake clang llvm python3 libedit-devel libffi-devel
ncurses-devel zlib-devel SPIRV-LLVM-Translator"
short_desc="Open implementation of the OpenCL C programming language"
@@ -11,7 +13,7 @@ maintainer="Orphaned <orphan@voidlinux.org>"
license="BSD-3-Clause, MIT"
homepage="https://libclc.llvm.org"
distfiles="https://github.com/llvm/llvm-project/releases/download/llvmorg-${version}/libclc-${version}.src.tar.xz"
-checksum=6b777ee2cd57da1b122f76c208463f620eef508f4128210c6b1a96bfb75c74dc
+checksum=35731fea7be224f21acf5bf3cd9f0ed058bf4ada5eceaf7f10ee96e139bd3389
replaces="libclc-git>=0"
do_configure() {
From e4ab5a205df613191c469981bc37c2d5efbeb855 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Fri, 10 Feb 2023 20:20:43 +0100
Subject: [PATCH 19/23] shiboken2: update to 5.15.7
---
srcpkgs/shiboken2/template | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/srcpkgs/shiboken2/template b/srcpkgs/shiboken2/template
index 9ceb8b313de7..084ecc3ba1e1 100644
--- a/srcpkgs/shiboken2/template
+++ b/srcpkgs/shiboken2/template
@@ -1,7 +1,7 @@
# Template file for 'shiboken2'
pkgname=shiboken2
-version=5.15.5
-revision=2
+version=5.15.7
+revision=1
_pkgname="pyside-setup-opensource-src-${version}"
build_wrksrc="sources/shiboken2"
build_style=cmake
@@ -14,7 +14,7 @@ maintainer="yopito <pierre.bourgin@free.fr>"
license="GPL-3.0-or-later"
homepage="https://wiki.qt.io/Qt_for_Python/Shiboken"
distfiles="https://download.qt.io/official_releases/QtForPython/pyside2/PySide2-${version}-src/${_pkgname}.tar.xz"
-checksum=3920a4fb353300260c9bc46ff70f1fb975c5e7efa22e9d51222588928ce19b33
+checksum=f61210ae24e6882d5d0ca0059229e5dc4f35e2bca92dd6caf96c0f41943a8294
python_version=3
export CLANG_INSTALL_DIR=${XBPS_CROSS_BASE}/usr
From fe5a916917c10e03d546e79b43e50189c5d9bd38 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 16 Feb 2023 20:13:02 +0100
Subject: [PATCH 20/23] clazy: rebuild for llvm15
---
.../patches/0002-llvm15-compatibility.patch | 220 ++++++++++++++++++
srcpkgs/clazy/template | 2 +-
2 files changed, 221 insertions(+), 1 deletion(-)
create mode 100644 srcpkgs/clazy/patches/0002-llvm15-compatibility.patch
diff --git a/srcpkgs/clazy/patches/0002-llvm15-compatibility.patch b/srcpkgs/clazy/patches/0002-llvm15-compatibility.patch
new file mode 100644
index 000000000000..18213a66fca1
--- /dev/null
+++ b/srcpkgs/clazy/patches/0002-llvm15-compatibility.patch
@@ -0,0 +1,220 @@
+From 20fca52da739ebefa47e35f6b338bb99a0da3cfe Mon Sep 17 00:00:00 2001
+From: Cristian Adam <cristian.adam@qt.io>
+Date: Tue, 6 Sep 2022 16:30:02 +0200
+Subject: [PATCH] Build fixes for LLVM/Clang 15.0.0
+
+Change-Id: Icc39a0b1acffb5a6a4798b1259d8ad4e7dd47bc5
+---
+ CMakeLists.txt | 6 ++++++
+ src/PreProcessorVisitor.cpp | 2 +-
+ src/PreProcessorVisitor.h | 2 +-
+ src/SourceCompatibilityHelpers.h | 15 +++++++++++++++
+ src/Utils.cpp | 3 ++-
+ src/checkbase.cpp | 4 ++--
+ src/checkbase.h | 4 ++--
+ src/checks/manuallevel/qt6-fwd-fixes.cpp | 2 +-
+ src/checks/manuallevel/qt6-fwd-fixes.h | 2 +-
+ src/checks/manuallevel/qt6-header-fixes.cpp | 2 +-
+ src/checks/manuallevel/qt6-header-fixes.h | 2 +-
+ 11 files changed, 33 insertions(+), 11 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 3c780b0d..100135af 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -114,6 +114,10 @@ else()
+ set(clang_tooling_refactoring_lib clangToolingRefactor)
+ endif()
+
++if (${LLVM_VERSION} VERSION_GREATER_EQUAL "15.0.0")
++ set(clang_support_lib clangSupport)
++endif()
++
+ macro(link_to_llvm name is_standalone)
+ if (CLAZY_LINK_CLANG_DYLIB)
+ target_link_libraries(${name} clang-cpp)
+@@ -131,6 +135,7 @@ macro(link_to_llvm name is_standalone)
+
+ target_link_libraries(${name} ${clang_lib})
+ endforeach()
++ target_link_libraries(${name} ${clang_support_lib})
+ target_link_libraries(${name} clangTooling)
+ target_link_libraries(${name} clangToolingCore)
+ target_link_libraries(${name} ${clang_tooling_refactoring_lib})
+@@ -302,6 +307,7 @@ else()
+ clangFrontendTool
+ clangRewrite
+ clangSerialization
++ ${clang_support_lib}
+ clangTooling
+ clangStaticAnalyzerCheckers
+ clangStaticAnalyzerCore
+diff --git a/src/PreProcessorVisitor.cpp b/src/PreProcessorVisitor.cpp
+index 5e63a131..5fdfe5f3 100644
+--- a/src/PreProcessorVisitor.cpp
++++ b/src/PreProcessorVisitor.cpp
+@@ -185,7 +185,7 @@ void PreProcessorVisitor::MacroExpands(const Token &MacroNameTok, const MacroDef
+
+ void PreProcessorVisitor::InclusionDirective (clang::SourceLocation, const clang::Token &,
+ clang::StringRef FileName, bool IsAngled, clang::CharSourceRange FilenameRange,
+- const clang::FileEntry *, clang::StringRef, clang::StringRef,
++ clazy::OptionalFileEntryRef, clang::StringRef, clang::StringRef,
+ const clang::Module *, clang::SrcMgr::CharacteristicKind)
+ {
+ if (m_ci.getPreprocessor().isInPrimaryFile() && !clazy::endsWith(FileName.str(), ".moc")) {
+diff --git a/src/PreProcessorVisitor.h b/src/PreProcessorVisitor.h
+index dc80ff36..1bb17a5e 100644
+--- a/src/PreProcessorVisitor.h
++++ b/src/PreProcessorVisitor.h
+@@ -71,7 +71,7 @@ class PreProcessorVisitor
+ clang::SourceRange range, const clang::MacroArgs *) override;
+ void InclusionDirective (clang::SourceLocation HashLoc, const clang::Token &IncludeTok,
+ clang::StringRef FileName, bool IsAngled, clang::CharSourceRange FilenameRange,
+- const clang::FileEntry *File, clang::StringRef SearchPath, clang::StringRef RelativePath,
++ clazy::OptionalFileEntryRef File, clang::StringRef SearchPath, clang::StringRef RelativePath,
+ const clang::Module *Imported, clang::SrcMgr::CharacteristicKind FileType) override;
+ private:
+ std::string getTokenSpelling(const clang::MacroDefinition &) const;
+diff --git a/src/SourceCompatibilityHelpers.h b/src/SourceCompatibilityHelpers.h
+index 4ea923a2..c1a23a4b 100644
+--- a/src/SourceCompatibilityHelpers.h
++++ b/src/SourceCompatibilityHelpers.h
+@@ -144,6 +144,21 @@ inline bool contains_lower(clang::StringRef haystack, clang::StringRef needle)
+ #endif
+ }
+
++#if LLVM_VERSION_MAJOR >= 15
++using OptionalFileEntryRef = clang::Optional<clang::FileEntryRef>;
++#else
++using OptionalFileEntryRef = const clang::FileEntry*;
++#endif
++
++inline bool isAscii(clang::StringLiteral *lt)
++{
++#if LLVM_VERSION_MAJOR >= 15
++ return lt->isOrdinary();
++#else
++ return lt->isAscii();
++#endif
++}
++
+ }
+
+ #endif
+diff --git a/src/Utils.cpp b/src/Utils.cpp
+index 3cdf7876..70e0577c 100644
+--- a/src/Utils.cpp
++++ b/src/Utils.cpp
+@@ -25,6 +25,7 @@
+ #include "Utils.h"
+ #include "StringUtils.h"
+ #include "HierarchyUtils.h"
++#include "SourceCompatibilityHelpers.h"
+ #include "StmtBodyRange.h"
+ #include "clazy_stl.h"
+
+@@ -670,7 +671,7 @@ const CXXRecordDecl *Utils::recordForMemberCall(CXXMemberCallExpr *call, string
+ bool Utils::isAscii(StringLiteral *lt)
+ {
+ // 'é' for some reason has isAscii() == true, so also call containsNonAsciiOrNull
+- return lt && lt->isAscii() && !lt->containsNonAsciiOrNull();
++ return lt && clazy::isAscii(lt) && !lt->containsNonAsciiOrNull();
+ }
+
+ bool Utils::isInDerefExpression(Stmt *s, ParentMap *map)
+diff --git a/src/checkbase.cpp b/src/checkbase.cpp
+index f5936dfd..dcc7c999 100644
+--- a/src/checkbase.cpp
++++ b/src/checkbase.cpp
+@@ -105,7 +105,7 @@ void ClazyPreprocessorCallbacks::MacroDefined(const Token ¯oNameTok, const M
+ }
+
+ void ClazyPreprocessorCallbacks::InclusionDirective(clang::SourceLocation HashLoc, const clang::Token &IncludeTok, clang::StringRef FileName, bool IsAngled,
+- clang::CharSourceRange FilenameRange, const clang::FileEntry *File, clang::StringRef SearchPath,
++ clang::CharSourceRange FilenameRange, clazy::OptionalFileEntryRef File, clang::StringRef SearchPath,
+ clang::StringRef RelativePath, const clang::Module *Imported, clang::SrcMgr::CharacteristicKind FileType)
+ {
+ check->VisitInclusionDirective(HashLoc, IncludeTok, FileName, IsAngled, FilenameRange, File, SearchPath, RelativePath, Imported, FileType);
+@@ -182,7 +182,7 @@ void CheckBase::VisitEndif(SourceLocation, SourceLocation)
+ }
+
+ void CheckBase::VisitInclusionDirective(clang::SourceLocation , const clang::Token &, clang::StringRef , bool ,
+- clang::CharSourceRange , const clang::FileEntry *, clang::StringRef ,
++ clang::CharSourceRange , clazy::OptionalFileEntryRef, clang::StringRef ,
+ clang::StringRef , const clang::Module *, clang::SrcMgr::CharacteristicKind )
+ {
+ // Overriden in derived classes
+diff --git a/src/checkbase.h b/src/checkbase.h
+index c5db2daf..02f6a6bf 100644
+--- a/src/checkbase.h
++++ b/src/checkbase.h
+@@ -91,7 +91,7 @@ class ClazyPreprocessorCallbacks
+ void Else(clang::SourceLocation loc, clang::SourceLocation ifLoc) override;
+ void Endif(clang::SourceLocation loc, clang::SourceLocation ifLoc) override;
+ void InclusionDirective(clang::SourceLocation HashLoc, const clang::Token &IncludeTok, clang::StringRef FileName, bool IsAngled,
+- clang::CharSourceRange FilenameRange, const clang::FileEntry *File, clang::StringRef SearchPath,
++ clang::CharSourceRange FilenameRange, clazy::OptionalFileEntryRef File, clang::StringRef SearchPath,
+ clang::StringRef RelativePath, const clang::Module *Imported, clang::SrcMgr::CharacteristicKind FileType) override;
+ private:
+ CheckBase *const check;
+@@ -151,7 +151,7 @@ class CheckBase
+ virtual void VisitElse(clang::SourceLocation loc, clang::SourceLocation ifLoc);
+ virtual void VisitEndif(clang::SourceLocation loc, clang::SourceLocation ifLoc);
+ virtual void VisitInclusionDirective(clang::SourceLocation HashLoc, const clang::Token &IncludeTok, clang::StringRef FileName, bool IsAngled,
+- clang::CharSourceRange FilenameRange, const clang::FileEntry *File, clang::StringRef SearchPath,
++ clang::CharSourceRange FilenameRange, clazy::OptionalFileEntryRef File, clang::StringRef SearchPath,
+ clang::StringRef RelativePath, const clang::Module *Imported, clang::SrcMgr::CharacteristicKind FileType);
+
+ void enablePreProcessorCallbacks();
+diff --git a/src/checks/manuallevel/qt6-fwd-fixes.cpp b/src/checks/manuallevel/qt6-fwd-fixes.cpp
+index 83bf81ee..c87d9ca0 100644
+--- a/src/checks/manuallevel/qt6-fwd-fixes.cpp
++++ b/src/checks/manuallevel/qt6-fwd-fixes.cpp
+@@ -166,7 +166,7 @@ void Qt6FwdFixes::VisitDecl(clang::Decl *decl)
+ }
+
+ void Qt6FwdFixes::VisitInclusionDirective(clang::SourceLocation HashLoc, const clang::Token &IncludeTok, clang::StringRef FileName, bool IsAngled,
+- clang::CharSourceRange FilenameRange, const clang::FileEntry *File, clang::StringRef SearchPath,
++ clang::CharSourceRange FilenameRange, clazy::OptionalFileEntryRef File, clang::StringRef SearchPath,
+ clang::StringRef RelativePath, const clang::Module *Imported, clang::SrcMgr::CharacteristicKind FileType)
+ {
+ auto current_file = m_sm.getFilename(HashLoc);
+diff --git a/src/checks/manuallevel/qt6-fwd-fixes.h b/src/checks/manuallevel/qt6-fwd-fixes.h
+index 37b59d95..bb928ba6 100644
+--- a/src/checks/manuallevel/qt6-fwd-fixes.h
++++ b/src/checks/manuallevel/qt6-fwd-fixes.h
+@@ -47,7 +47,7 @@ class Qt6FwdFixes
+ explicit Qt6FwdFixes(const std::string &name, ClazyContext *context);
+ void VisitDecl(clang::Decl *decl) override;
+ void VisitInclusionDirective(clang::SourceLocation HashLoc, const clang::Token &IncludeTok, clang::StringRef FileName, bool IsAngled,
+- clang::CharSourceRange FilenameRange, const clang::FileEntry *File, clang::StringRef SearchPath,
++ clang::CharSourceRange FilenameRange, clazy::OptionalFileEntryRef File, clang::StringRef SearchPath,
+ clang::StringRef RelativePath, const clang::Module *Imported, clang::SrcMgr::CharacteristicKind FileType) override;
+ bool m_including_qcontainerfwd = false;
+ std::set<clang::StringRef> m_qcontainerfwd_included_in_files;
+diff --git a/src/checks/manuallevel/qt6-header-fixes.cpp b/src/checks/manuallevel/qt6-header-fixes.cpp
+index d458b77c..aaa28093 100644
+--- a/src/checks/manuallevel/qt6-header-fixes.cpp
++++ b/src/checks/manuallevel/qt6-header-fixes.cpp
+@@ -270,7 +270,7 @@ Qt6HeaderFixes::Qt6HeaderFixes(const std::string &name, ClazyContext *context)
+ }
+
+ void Qt6HeaderFixes::VisitInclusionDirective(clang::SourceLocation HashLoc, const clang::Token &IncludeTok, clang::StringRef FileName, bool IsAngled,
+- clang::CharSourceRange FilenameRange, const clang::FileEntry *File, clang::StringRef SearchPath,
++ clang::CharSourceRange FilenameRange, clazy::OptionalFileEntryRef File, clang::StringRef SearchPath,
+ clang::StringRef RelativePath, const clang::Module *Imported, clang::SrcMgr::CharacteristicKind FileType)
+ {
+ if (shouldIgnoreFile(HashLoc))
+diff --git a/src/checks/manuallevel/qt6-header-fixes.h b/src/checks/manuallevel/qt6-header-fixes.h
+index ae09f7ad..8ffbb100 100644
+--- a/src/checks/manuallevel/qt6-header-fixes.h
++++ b/src/checks/manuallevel/qt6-header-fixes.h
+@@ -46,7 +46,7 @@ class Qt6HeaderFixes
+ public:
+ explicit Qt6HeaderFixes(const std::string &name, ClazyContext *context);
+ void VisitInclusionDirective(clang::SourceLocation HashLoc, const clang::Token &IncludeTok, clang::StringRef FileName, bool IsAngled,
+- clang::CharSourceRange FilenameRange, const clang::FileEntry *File, clang::StringRef SearchPath,
++ clang::CharSourceRange FilenameRange, clazy::OptionalFileEntryRef File, clang::StringRef SearchPath,
+ clang::StringRef RelativePath, const clang::Module *Imported, clang::SrcMgr::CharacteristicKind FileType) override;
+
+ };
diff --git a/srcpkgs/clazy/template b/srcpkgs/clazy/template
index 11f3bab55aef..f81de08ab836 100644
--- a/srcpkgs/clazy/template
+++ b/srcpkgs/clazy/template
@@ -1,7 +1,7 @@
# Template file for 'clazy'
pkgname=clazy
version=1.11
-revision=1
+revision=2
build_style=cmake
build_helper=qemu
hostmakedepends="llvm"
From 6b8c43986cb95c10c657793d75b77d103b92d9ef Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 16 Feb 2023 23:42:00 +0100
Subject: [PATCH 21/23] ldc: update to 1.31.0
---
common/shlibs | 8 +--
...4260a848c8ebad5582e27ac1e09627cdfb17.patch | 57 -------------------
srcpkgs/ldc/template | 6 +-
3 files changed, 7 insertions(+), 64 deletions(-)
delete mode 100644 srcpkgs/ldc/patches/54544260a848c8ebad5582e27ac1e09627cdfb17.patch
diff --git a/common/shlibs b/common/shlibs
index ce67bf777dab..fe2468e967c2 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -2187,10 +2187,10 @@ libFcitx5Config.so.6 libfcitx5-5.0.5_1
libFcitx5GClient.so.2 fcitx5-gtk-5.0.4_1
libFcitx5Qt5DBusAddons.so.1 fcitx5-qt5-5.0.3_1
libFcitx5Qt5WidgetsAddons.so.2 fcitx5-qt5-5.0.3_1
-libdruntime-ldc-debug-shared.so.100 ldc-runtime-1.30.0_1
-libdruntime-ldc-shared.so.100 ldc-runtime-1.30.0_1
-libphobos2-ldc-shared.so.100 ldc-runtime-1.30.0_1
-libphobos2-ldc-debug-shared.so.100 ldc-runtime-1.30.0_1
+libdruntime-ldc-debug-shared.so.101 ldc-runtime-1.31.0_1
+libdruntime-ldc-shared.so.101 ldc-runtime-1.31.0_1
+libphobos2-ldc-shared.so.101 ldc-runtime-1.31.0_1
+libphobos2-ldc-debug-shared.so.101 ldc-runtime-1.31.0_1
libmarblewidget-qt5.so.28 marble5-17.12.2_1
libastro.so.2 marble5-17.12.2_1
libparrot.so.6.9.0 parrot-6.9.0_1
diff --git a/srcpkgs/ldc/patches/54544260a848c8ebad5582e27ac1e09627cdfb17.patch b/srcpkgs/ldc/patches/54544260a848c8ebad5582e27ac1e09627cdfb17.patch
deleted file mode 100644
index 79694372bfaa..000000000000
--- a/srcpkgs/ldc/patches/54544260a848c8ebad5582e27ac1e09627cdfb17.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-From 54544260a848c8ebad5582e27ac1e09627cdfb17 Mon Sep 17 00:00:00 2001
-From: Razvan Nitu <razvan.nitu1305@gmail.com>
-Date: Wed, 24 Aug 2022 13:54:15 +0300
-Subject: [PATCH] Port the fix for issue 23157 (#14378)
-
----
- druntime/src/core/sys/posix/sys/socket.d | 36 ++++++++++++++++++++++--
- 1 file changed, 33 insertions(+), 3 deletions(-)
-
-diff --git a/druntime/src/core/sys/posix/sys/socket.d b/druntime/src/core/sys/posix/sys/socket.d
-index 3a7b753adff..fc5dc5d1684 100644
---- a/runtime/druntime/src/core/sys/posix/sys/socket.d
-+++ b/runtime/druntime/src/core/sys/posix/sys/socket.d
-@@ -188,10 +188,40 @@ version (linux)
-
- extern (D) inout(ubyte)* CMSG_DATA( return scope inout(cmsghdr)* cmsg ) pure nothrow @nogc { return cast(ubyte*)( cmsg + 1 ); }
-
-- private inout(cmsghdr)* __cmsg_nxthdr(inout(msghdr)*, inout(cmsghdr)*) pure nothrow @nogc;
-- extern (D) inout(cmsghdr)* CMSG_NXTHDR(inout(msghdr)* msg, inout(cmsghdr)* cmsg) pure nothrow @nogc
-+ version (CRuntime_Musl)
- {
-- return __cmsg_nxthdr(msg, cmsg);
-+ extern (D)
-+ {
-+ private size_t __CMSG_LEN(inout(cmsghdr)* cmsg) pure nothrow @nogc
-+ {
-+ return (cmsg.cmsg_len + size_t.sizeof -1) & cast(size_t)(~(size_t.sizeof - 1));
-+ }
-+
-+ private inout(cmsghdr)* __CMSG_NEXT(inout(cmsghdr)* cmsg) pure nothrow @nogc
-+ {
-+ return cmsg + __CMSG_LEN(cmsg);
-+ }
-+
-+ private inout(msghdr)* __MHDR_END(inout(msghdr)* mhdr) pure nothrow @nogc
-+ {
-+ return cast(inout(msghdr)*)(mhdr.msg_control + mhdr.msg_controllen);
-+ }
-+
-+ inout(cmsghdr)* CMSG_NXTHDR(inout(msghdr)* msg, inout(cmsghdr)* cmsg) pure nothrow @nogc
-+ {
-+ return cmsg.cmsg_len < cmsghdr.sizeof ||
-+ __CMSG_LEN(cmsg) + cmsghdr.sizeof >= __MHDR_END(msg) - cast(inout(msghdr)*)(cmsg)
-+ ? cast(inout(cmsghdr)*) null : cast(inout(cmsghdr)*) __CMSG_NEXT(cmsg);
-+ }
-+ }
-+ }
-+ else
-+ {
-+ private inout(cmsghdr)* __cmsg_nxthdr(inout(msghdr)*, inout(cmsghdr)*) pure nothrow @nogc;
-+ extern (D) inout(cmsghdr)* CMSG_NXTHDR(inout(msghdr)* msg, inout(cmsghdr)* cmsg) pure nothrow @nogc
-+ {
-+ return __cmsg_nxthdr(msg, cmsg);
-+ }
- }
-
- extern (D) inout(cmsghdr)* CMSG_FIRSTHDR( inout(msghdr)* mhdr ) pure nothrow @nogc
diff --git a/srcpkgs/ldc/template b/srcpkgs/ldc/template
index 99d22682ce7a..f6d8b7ffbe98 100644
--- a/srcpkgs/ldc/template
+++ b/srcpkgs/ldc/template
@@ -1,6 +1,6 @@
# Template file for 'ldc'
pkgname=ldc
-version=1.30.0
+version=1.31.0
revision=1
build_style=cmake
configure_args="
@@ -11,7 +11,7 @@ configure_args="
-DCOMPILE_D_MODULES_SEPARATELY=ON
-DC_SYSTEM_LIBS='unwind;m;pthread;rt;dl'"
conf_files="/etc/ldc2.conf"
-hostmakedepends="dmd llvm12 perl pkg-config"
+hostmakedepends="dmd llvm15 perl pkg-config"
makedepends="libcurl-devel libffi-devel ncurses-devel zlib-devel
llvm-libunwind-devel"
depends="ldc-runtime llvm-libunwind-devel"
@@ -22,7 +22,7 @@ license="BSD-3-Clause, BSL-1.0"
homepage="https://wiki.dlang.org/LDC"
changelog="https://raw.githubusercontent.com/ldc-developers/ldc/master/CHANGELOG.md"
distfiles="https://github.com/ldc-developers/ldc/releases/download/v${version}/ldc-${version}-src.tar.gz"
-checksum=fdbb376f08242d917922a6a22a773980217fafa310046fc5d6459490af23dacd
+checksum=f1c8ece9e1e35806c3441bf24fbe666cddd8eef375592c19cd8fee4701cd5458
nopie=yes
nocross="dmd compilation fails on cross"
# tests timeout on musl; also require unpackaged python3-lit
From 18a8d9ffd048c0cd79b3707cc97ea965d5b6aadd Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 16 Feb 2023 23:42:46 +0100
Subject: [PATCH 22/23] gtkd: rebuild for ldc 1.31
---
srcpkgs/gtkd/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/gtkd/template b/srcpkgs/gtkd/template
index e64a1f54fb96..6a75d69e19ce 100644
--- a/srcpkgs/gtkd/template
+++ b/srcpkgs/gtkd/template
@@ -1,7 +1,7 @@
# Template file for 'gtkd'
pkgname=gtkd
version=3.9.0
-revision=9
+revision=10
build_style=gnu-makefile
make_build_args="LDFLAGS='-linker=bfd' DC=ldc2"
make_build_target="shared-libs shared-gstreamer shared-vte shared-peas shared-gtkdgl"
From e927d81fddf85e39991b62f7aa3f37d6821af032 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 16 Feb 2023 23:43:29 +0100
Subject: [PATCH 23/23] onedrive: rebuild for ldc 1.31
---
srcpkgs/onedrive/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/onedrive/template b/srcpkgs/onedrive/template
index 28163f334552..63e4f43a7fbd 100644
--- a/srcpkgs/onedrive/template
+++ b/srcpkgs/onedrive/template
@@ -1,7 +1,7 @@
# Template file for 'onedrive'
pkgname=onedrive
version=2.4.13
-revision=4
+revision=5
build_style=gnu-configure
configure_args="DC=ldc2"
hostmakedepends="ldc pkg-config"
^ permalink raw reply [flat|nested] 96+ messages in thread
* Re: [PR PATCH] [Updated] [WIP] LLVM 15
2022-11-28 15:30 [PR PATCH] [WIP] LLVM 15 tranzystorek-io
` (69 preceding siblings ...)
2023-02-16 22:44 ` tranzystorek-io
@ 2023-02-18 19:34 ` tranzystorek-io
2023-02-19 22:34 ` simvux
` (23 subsequent siblings)
94 siblings, 0 replies; 96+ messages in thread
From: tranzystorek-io @ 2023-02-18 19:34 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 1319 bytes --]
There is an updated pull request by tranzystorek-io against master on the void-packages repository
https://github.com/tranzystorek-io/void-packages llvm15
https://github.com/void-linux/void-packages/pull/40821
[WIP] LLVM 15
[ci skip]
TODO:
- [x] ~~Adjust patches marked as `.patch.skip`~~ dropped support for ppc
- [x] Make libomp a shlib (change so file name and install a symlink)
- [x] Avoid creating triplet dirs under /usr/
TODO LLVM rdeps:
- [x] clazy ~~(breaking changes in clang API)~~ - patched
- [x] beignet (https://github.com/void-linux/void-packages/pull/41529)
- [ ] ispc (1.18.1 supports LLVM `<= 14`)
- [ ] ldc (1.30.0 supports LLVM `<= 14`) - builds in version 1.31
- [ ] tilix fails to build with ldc 1.31 (https://github.com/gnunn1/tilix/issues/2151)
- [x] ghdl (2.0.0 supports LLVM `<= 14`) - builds with llvm12
- [x] qt
- [ ] qtcreator (#42290)
- [x] shiboken2 (tests failing with llvm15)
- [x] bpftrace (https://github.com/void-linux/void-packages/pull/39002)
- [x] libclc (tests fail with unresolved calls https://gist.githubusercontent.com/tranzystorek-io/a2aa8a0d8010af5299f7d1ff9f82c22b/raw/6d316d99d6079990b73ae77d274dd120b9560589/LastTest.log) -> removed clspv
- [x] zig
A patch file from https://github.com/void-linux/void-packages/pull/40821.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-llvm15-40821.patch --]
[-- Type: text/x-diff, Size: 103901 bytes --]
From 77192e26297e55be95aa415482ae561788c40bf0 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Sun, 18 Dec 2022 00:36:59 +0100
Subject: [PATCH 01/24] New package: llvm15-15.0.7
---
common/shlibs | 3 +
srcpkgs/libllvm15 | 1 +
.../llvm15/files/llvm-Config-llvm-config.h | 9 +
...clang-001-fix-unwind-chain-inclusion.patch | 44 ++
.../patches/clang-002-add-musl-triples.patch | 115 +++++
.../clang-003-ppc64-dynamic-linker-path.patch | 13 +
.../patches/clang-004-ppc64-musl-elfv2.patch | 48 ++
.../compiler-rt-sanitizer-ppc64-musl.patch | 35 ++
srcpkgs/llvm15/patches/libcxx-musl.patch | 26 ++
srcpkgs/llvm15/patches/libcxx-ppc.patch | 22 +
.../llvm15/patches/libcxx-ssp-nonshared.patch | 11 +
srcpkgs/llvm15/patches/libcxxabi-dl.patch | 25 +
srcpkgs/llvm15/patches/libcxxabi-musl.patch | 37 ++
srcpkgs/llvm15/patches/libomp-soname.patch | 12 +
srcpkgs/llvm15/patches/lldb-musl.patch | 40 ++
srcpkgs/llvm15/patches/llvm-001-musl.patch | 57 +++
.../patches/llvm-002-musl-ppc64-elfv2.patch | 30 ++
.../patches/llvm-003-ppc-secureplt.patch | 11 +
.../patches/llvm-004-override-opt.patch | 18 +
.../llvm15/patches/llvm-005-ppc-bigpic.patch | 36 ++
.../patches/llvm-006-aarch64-mf_exec.patch | 25 +
srcpkgs/llvm15/template | 442 ++++++++++++++++++
srcpkgs/llvm15/update | 3 +
23 files changed, 1063 insertions(+)
create mode 120000 srcpkgs/libllvm15
create mode 100644 srcpkgs/llvm15/files/llvm-Config-llvm-config.h
create mode 100644 srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch
create mode 100644 srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch
create mode 100644 srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch
create mode 100644 srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch
create mode 100644 srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch
create mode 100644 srcpkgs/llvm15/patches/libcxx-musl.patch
create mode 100644 srcpkgs/llvm15/patches/libcxx-ppc.patch
create mode 100644 srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch
create mode 100644 srcpkgs/llvm15/patches/libcxxabi-dl.patch
create mode 100644 srcpkgs/llvm15/patches/libcxxabi-musl.patch
create mode 100644 srcpkgs/llvm15/patches/libomp-soname.patch
create mode 100644 srcpkgs/llvm15/patches/lldb-musl.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-001-musl.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-004-override-opt.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch
create mode 100644 srcpkgs/llvm15/template
create mode 100644 srcpkgs/llvm15/update
diff --git a/common/shlibs b/common/shlibs
index 0c1d545fbe27..661979817442 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -990,6 +990,9 @@ libclang.so.12 libclang-12.0.0_1
libclang-cpp.so.12 libclang-cpp-12.0.0_1
libLLVM-11.so libllvm11-11.0.0_1
libLLVM-12.so libllvm12-12.0.0_1
+libLLVM-15.so libllvm15-15.0.7_1
+libomp.so.5 libomp-15.0.7_1
+libomptarget.so.15 libomp-15.0.7_1
libisofs.so.6 libisofs-0.6.24_1
libmpack.so.0 libmpack-1.0.5_1
libGeoIP.so.1 libgeoip-1.4.8_1
diff --git a/srcpkgs/libllvm15 b/srcpkgs/libllvm15
new file mode 120000
index 000000000000..ad57a969b9f9
--- /dev/null
+++ b/srcpkgs/libllvm15
@@ -0,0 +1 @@
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm15/files/llvm-Config-llvm-config.h b/srcpkgs/llvm15/files/llvm-Config-llvm-config.h
new file mode 100644
index 000000000000..2fa08c9be696
--- /dev/null
+++ b/srcpkgs/llvm15/files/llvm-Config-llvm-config.h
@@ -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
diff --git a/srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch b/srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch
new file mode 100644
index 000000000000..e4eaa7783e7a
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch
@@ -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
diff --git a/srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch b/srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch
new file mode 100644
index 000000000000..0ef4c7e75d6b
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch
@@ -0,0 +1,115 @@
+--- a/clang/lib/Driver/ToolChains/Gnu.cpp
++++ b/clang/lib/Driver/ToolChains/Gnu.cpp
+@@ -2086,7 +2086,8 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
+ static const char *const ARMHFTriples[] = {"arm-linux-gnueabihf",
+ "armv7hl-redhat-linux-gnueabi",
+ "armv6hl-suse-linux-gnueabi",
+- "armv7hl-suse-linux-gnueabi"};
++ "armv7hl-suse-linux-gnueabi",
++ "armv7l-linux-gnueabihf"};
+ static const char *const ARMebLibDirs[] = {"/lib"};
+ static const char *const ARMebTriples[] = {"armeb-linux-gnueabi",
+ "armeb-linux-androideabi"};
+@@ -2153,8 +2154,7 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
+ "powerpc64-suse-linux", "powerpc-montavista-linuxspe"};
+ static const char *const PPCLELibDirs[] = {"/lib32", "/lib"};
+ static const char *const PPCLETriples[] = {"powerpcle-linux-gnu",
+- "powerpcle-unknown-linux-gnu",
+- "powerpcle-linux-musl"};
++ "powerpcle-unknown-linux-gnu"};
+
+ static const char *const PPC64LibDirs[] = {"/lib64", "/lib"};
+ static const char *const PPC64Triples[] = {
+@@ -2235,6 +2235,92 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
+ return;
+ }
+
++ if (TargetTriple.isMusl()) {
++ static const char *const AArch64MuslTriples[] = {"aarch64-linux-musl"};
++ static const char *const ARMHFMuslTriples[] = {
++ "arm-linux-musleabihf", "armv7l-linux-musleabihf"
++ };
++ static const char *const ARMMuslTriples[] = {"arm-linux-musleabi"};
++ static const char *const X86_64MuslTriples[] = {"x86_64-linux-musl"};
++ static const char *const X86MuslTriples[] = {"i686-linux-musl"};
++ static const char *const MIPSMuslTriples[] = {
++ "mips-linux-musl", "mipsel-linux-musl",
++ "mipsel-linux-muslhf", "mips-linux-muslhf"
++ };
++ static const char *const PPCMuslTriples[] = {"powerpc-linux-musl"};
++ static const char *const PPCLEMuslTriples[] = {"powerpcle-linux-musl"};
++ static const char *const PPC64MuslTriples[] = {"powerpc64-linux-musl"};
++ static const char *const PPC64LEMuslTriples[] = {"powerpc64le-linux-musl"};
++ static const char *const RISCV64MuslTriples[] = {"riscv64-linux-musl"};
++
++ switch (TargetTriple.getArch()) {
++ case llvm::Triple::aarch64:
++ LibDirs.append(begin(AArch64LibDirs), end(AArch64LibDirs));
++ TripleAliases.append(begin(AArch64MuslTriples), end(AArch64MuslTriples));
++ BiarchLibDirs.append(begin(AArch64LibDirs), end(AArch64LibDirs));
++ BiarchTripleAliases.append(begin(AArch64MuslTriples), end(AArch64MuslTriples));
++ break;
++ case llvm::Triple::arm:
++ LibDirs.append(begin(ARMLibDirs), end(ARMLibDirs));
++ if (TargetTriple.getEnvironment() == llvm::Triple::MuslEABIHF) {
++ TripleAliases.append(begin(ARMHFMuslTriples), end(ARMHFMuslTriples));
++ } else {
++ TripleAliases.append(begin(ARMMuslTriples), end(ARMMuslTriples));
++ }
++ break;
++ case llvm::Triple::x86_64:
++ LibDirs.append(begin(X86_64LibDirs), end(X86_64LibDirs));
++ TripleAliases.append(begin(X86_64MuslTriples), end(X86_64MuslTriples));
++ BiarchLibDirs.append(begin(X86LibDirs), end(X86LibDirs));
++ BiarchTripleAliases.append(begin(X86MuslTriples), end(X86MuslTriples));
++ break;
++ case llvm::Triple::x86:
++ LibDirs.append(begin(X86LibDirs), end(X86LibDirs));
++ TripleAliases.append(begin(X86MuslTriples), end(X86MuslTriples));
++ BiarchLibDirs.append(begin(X86_64LibDirs), end(X86_64LibDirs));
++ BiarchTripleAliases.append(begin(X86_64MuslTriples), end(X86_64MuslTriples));
++ break;
++ case llvm::Triple::mips:
++ LibDirs.append(begin(MIPSLibDirs), end(MIPSLibDirs));
++ TripleAliases.append(begin(MIPSMuslTriples), end(MIPSMuslTriples));
++ break;
++ case llvm::Triple::ppc:
++ LibDirs.append(begin(PPCLibDirs), end(PPCLibDirs));
++ TripleAliases.append(begin(PPCMuslTriples), end(PPCMuslTriples));
++ BiarchLibDirs.append(begin(PPC64LibDirs), end(PPC64LibDirs));
++ BiarchTripleAliases.append(begin(PPC64MuslTriples), end(PPC64MuslTriples));
++ break;
++ case llvm::Triple::ppcle:
++ LibDirs.append(begin(PPCLELibDirs), end(PPCLELibDirs));
++ TripleAliases.append(begin(PPCLEMuslTriples), end(PPCLEMuslTriples));
++ BiarchLibDirs.append(begin(PPC64LELibDirs), end(PPC64LELibDirs));
++ BiarchTripleAliases.append(begin(PPC64LEMuslTriples), end(PPC64LEMuslTriples));
++ break;
++ case llvm::Triple::ppc64:
++ LibDirs.append(begin(PPC64LibDirs), end(PPC64LibDirs));
++ TripleAliases.append(begin(PPC64MuslTriples), end(PPC64MuslTriples));
++ BiarchLibDirs.append(begin(PPCLibDirs), end(PPCLibDirs));
++ BiarchTripleAliases.append(begin(PPCMuslTriples), end(PPCMuslTriples));
++ break;
++ case llvm::Triple::ppc64le:
++ LibDirs.append(begin(PPC64LELibDirs), end(PPC64LELibDirs));
++ TripleAliases.append(begin(PPC64LEMuslTriples), end(PPC64LEMuslTriples));
++ BiarchLibDirs.append(begin(PPCLELibDirs), end(PPCLELibDirs));
++ BiarchTripleAliases.append(begin(PPCLEMuslTriples), end(PPCLEMuslTriples));
++ break;
++ case llvm::Triple::riscv64:
++ LibDirs.append(begin(RISCV64LibDirs), end(RISCV64LibDirs));
++ TripleAliases.append(begin(RISCV64MuslTriples), end(RISCV64MuslTriples));
++ break;
++ default:
++ break;
++ }
++ TripleAliases.push_back(TargetTriple.str());
++ if (TargetTriple.str() != BiarchTriple.str())
++ BiarchTripleAliases.push_back(BiarchTriple.str());
++ return;
++ }
++
+ // Android targets should not use GNU/Linux tools or libraries.
+ if (TargetTriple.isAndroid()) {
+ static const char *const AArch64AndroidTriples[] = {
diff --git a/srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch b/srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch
new file mode 100644
index 000000000000..4ad6412d1e6c
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch
@@ -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 =
diff --git a/srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch b/srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch
new file mode 100644
index 000000000000..21fc8003c5f1
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch
@@ -0,0 +1,48 @@
+--- a/clang/lib/Basic/Targets/PPC.h
++++ b/clang/lib/Basic/Targets/PPC.h
+@@ -415,11 +415,10 @@ public:
+ LongDoubleFormat = &llvm::APFloat::IEEEdouble();
+ } else if ((Triple.getArch() == llvm::Triple::ppc64le)) {
+ DataLayout = "e-m:e-i64:64-n32:64";
+- ABI = "elfv2";
+ } else {
+ DataLayout = "E-m:e-i64:64-n32:64";
+- ABI = "elfv1";
+ }
++ ABI = "elfv2";
+
+ if (Triple.isOSFreeBSD() || Triple.isOSOpenBSD() || Triple.isMusl()) {
+ LongDoubleWidth = LongDoubleAlign = 64;
+--- a/clang/lib/CodeGen/TargetInfo.cpp
++++ b/clang/lib/CodeGen/TargetInfo.cpp
+@@ -10927,9 +10927,9 @@ const TargetCodeGenInfo &CodeGenModule::getTargetCodeGenInfo() {
+ return SetCGInfo(new AIXTargetCodeGenInfo(Types, /*Is64Bit*/ true));
+
+ if (Triple.isOSBinFormatELF()) {
+- PPC64_SVR4_ABIInfo::ABIKind Kind = PPC64_SVR4_ABIInfo::ELFv1;
+- if (getTarget().getABI() == "elfv2")
+- Kind = PPC64_SVR4_ABIInfo::ELFv2;
++ PPC64_SVR4_ABIInfo::ABIKind Kind = PPC64_SVR4_ABIInfo::ELFv2;
++ if (getTarget().getABI() == "elfv1")
++ Kind = PPC64_SVR4_ABIInfo::ELFv1;
+ bool IsSoftFloat = CodeGenOpts.FloatABI == "soft";
+
+ return SetCGInfo(
+--- a/clang/lib/Driver/ToolChains/Clang.cpp
++++ b/clang/lib/Driver/ToolChains/Clang.cpp
+@@ -1920,14 +1920,7 @@ void Clang::AddPPCTargetArgs(const ArgList &Args,
+ const llvm::Triple &T = getToolChain().getTriple();
+ if (T.isOSBinFormatELF()) {
+ switch (getToolChain().getArch()) {
+- case llvm::Triple::ppc64: {
+- if ((T.isOSFreeBSD() && T.getOSMajorVersion() >= 13) ||
+- T.isOSOpenBSD() || T.isMusl())
+- ABIName = "elfv2";
+- else
+- ABIName = "elfv1";
+- break;
+- }
++ case llvm::Triple::ppc64:
+ case llvm::Triple::ppc64le:
+ ABIName = "elfv2";
+ break;
diff --git a/srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch b/srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch
new file mode 100644
index 000000000000..360cfc1ba7f1
--- /dev/null
+++ b/srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch
@@ -0,0 +1,35 @@
+--- 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__) || SANITIZER_RISCV64
++ defined(__hexagon__) || defined(__powerpc__) || 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_ANDROID
++#if (defined(__aarch64__) || defined(__powerpc__) || SANITIZER_RISCV64) && !SANITIZER_ANDROID
+ // GLIBC 2.20+ sys/user does not include asm/ptrace.h
+ # include <asm/ptrace.h>
+ #endif
diff --git a/srcpkgs/llvm15/patches/libcxx-musl.patch b/srcpkgs/llvm15/patches/libcxx-musl.patch
new file mode 100644
index 000000000000..bbd31ffc2cb1
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxx-musl.patch
@@ -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,
+ typename remove_reference<decltype(errno)>::type __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
+ typename remove_reference<decltype(errno)>::type __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,
+ typename remove_reference<decltype(errno)>::type __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
+ typename remove_reference<decltype(errno)>::type __current_errno = errno;
+ if (__current_errno == 0)
+ errno = __save_errno;
diff --git a/srcpkgs/llvm15/patches/libcxx-ppc.patch b/srcpkgs/llvm15/patches/libcxx-ppc.patch
new file mode 100644
index 000000000000..7a92f8004e1c
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxx-ppc.patch
@@ -0,0 +1,22 @@
+This ensures `is_iec559` is defined correctly under all long double ABIs,
+including musl and its 64-bit long double. Also, `__ppc__` or `__ppc64__`
+is not defined on gcc.
+
+--- a/libcxx/include/limits
++++ b/libcxx/include/limits
+@@ -426,8 +426,14 @@ protected:
+ _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type signaling_NaN() _NOEXCEPT {return __builtin_nansl("");}
+ _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type denorm_min() _NOEXCEPT {return __LDBL_DENORM_MIN__;}
+
+-#if (defined(__ppc__) || defined(__ppc64__))
++#if defined(__powerpc__) || defined(__powerpc64__)
++#if (__LDBL_MAX_EXP__ > __DBL_MAX_EXP__) || (__LDBL_MANT_DIG__ == __DBL_MANT_DIG__)
++ /* IEEE 754 quadruple or double precision */
++ static _LIBCPP_CONSTEXPR const bool is_iec559 = true;
++#else
++ /* 128-bit IBM double-double */
+ static _LIBCPP_CONSTEXPR const bool is_iec559 = false;
++#endif
+ #else
+ static _LIBCPP_CONSTEXPR const bool is_iec559 = true;
+ #endif
diff --git a/srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch b/srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch
new file mode 100644
index 000000000000..70292beb2fcd
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch
@@ -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()
diff --git a/srcpkgs/llvm15/patches/libcxxabi-dl.patch b/srcpkgs/llvm15/patches/libcxxabi-dl.patch
new file mode 100644
index 000000000000..3a15f9db8c98
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxxabi-dl.patch
@@ -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 @@
+ target_link_libraries(${target} PRIVATE m)
+ endif()
+
++ if (LIBCXX_HAS_C_LIB)
++ target_link_libraries(${target} PRIVATE dl)
++ endif()
++
+ if (LIBCXX_HAS_RT_LIB)
+ target_link_libraries(${target} PRIVATE rt)
+ endif()
diff --git a/srcpkgs/llvm15/patches/libcxxabi-musl.patch b/srcpkgs/llvm15/patches/libcxxabi-musl.patch
new file mode 100644
index 000000000000..55bf6f5aaa08
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxxabi-musl.patch
@@ -0,0 +1,37 @@
+diff --git a/libcxx/include/__support/musl/xlocale.h b/libcxx/include/__support/musl/xlocale.h
+index e674a41fa..f546119b9 100644
+--- a/libcxx/include/__support/musl/xlocale.h
++++ b/libcxx/include/__support/musl/xlocale.h
+@@ -24,27 +24,27 @@
+ extern "C" {
+ #endif
+
+-inline _LIBCPP_HIDE_FROM_ABI long long
++static inline long long
+ strtoll_l(const char *__nptr, char **__endptr, int __base, locale_t) {
+ return ::strtoll(__nptr, __endptr, __base);
+ }
+
+-inline _LIBCPP_HIDE_FROM_ABI unsigned long long
++static inline unsigned long long
+ strtoull_l(const char *__nptr, char **__endptr, int __base, locale_t) {
+ return ::strtoull(__nptr, __endptr, __base);
+ }
+
+-inline _LIBCPP_HIDE_FROM_ABI long long
++static inline long long
+ wcstoll_l(const wchar_t *__nptr, wchar_t **__endptr, int __base, locale_t) {
+ return ::wcstoll(__nptr, __endptr, __base);
+ }
+
+-inline _LIBCPP_HIDE_FROM_ABI unsigned long long
++static inline unsigned long long
+ wcstoull_l(const wchar_t *__nptr, wchar_t **__endptr, int __base, locale_t) {
+ return ::wcstoull(__nptr, __endptr, __base);
+ }
+
+-inline _LIBCPP_HIDE_FROM_ABI long double
++static inline long double
+ wcstold_l(const wchar_t *__nptr, wchar_t **__endptr, locale_t) {
+ return ::wcstold(__nptr, __endptr);
+ }
diff --git a/srcpkgs/llvm15/patches/libomp-soname.patch b/srcpkgs/llvm15/patches/libomp-soname.patch
new file mode 100644
index 000000000000..9a622cd9254c
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libomp-soname.patch
@@ -0,0 +1,12 @@
+diff --git a/openmp/runtime/src/CMakeLists.txt b/openmp/runtime/src/CMakeLists.txt
+index df1ca9d90..9d2c3b7b9 100644
+--- a/openmp/runtime/src/CMakeLists.txt
++++ b/openmp/runtime/src/CMakeLists.txt
+@@ -150,6 +150,7 @@ libomp_get_libflags(LIBOMP_CONFIGURED_LIBFLAGS)
+ # Build libomp library. Add LLVMSupport dependency if building in-tree with libomptarget profiling enabled.
+ if(OPENMP_STANDALONE_BUILD OR (NOT OPENMP_ENABLE_LIBOMP_PROFILING))
+ add_library(omp ${LIBOMP_LIBRARY_KIND} ${LIBOMP_SOURCE_FILES})
++ set_target_properties(omp PROPERTIES VERSION ${LIBOMP_VERSION_MAJOR} SOVERSION ${LIBOMP_VERSION_MAJOR})
+ # Linking command will include libraries in LIBOMP_CONFIGURED_LIBFLAGS
+ target_link_libraries(omp ${LIBOMP_CONFIGURED_LIBFLAGS} ${LIBOMP_DL_LIBS})
+ else()
diff --git a/srcpkgs/llvm15/patches/lldb-musl.patch b/srcpkgs/llvm15/patches/lldb-musl.patch
new file mode 100644
index 000000000000..026c5e1e61ba
--- /dev/null
+++ b/srcpkgs/llvm15/patches/lldb-musl.patch
@@ -0,0 +1,40 @@
+--- a/lldb/source/Plugins/Process/Linux/Procfs.h
++++ b/lldb/source/Plugins/Process/Linux/Procfs.h
+@@ -10,6 +10,7 @@
+ // sys/procfs.h on Android/Linux for all supported architectures.
+
+ #include <sys/ptrace.h>
++#include <asm/ptrace.h>
+
+ #include "lldb/lldb-types.h"
+
+@@ -17,23 +18,13 @@
+
+ #include <vector>
+
+-#ifdef __ANDROID__
+-#if defined(__arm64__) || defined(__aarch64__)
+-typedef unsigned long elf_greg_t;
+-typedef elf_greg_t
+- elf_gregset_t[(sizeof(struct user_pt_regs) / sizeof(elf_greg_t))];
+-typedef struct user_fpsimd_state elf_fpregset_t;
+-#ifndef NT_FPREGSET
+-#define NT_FPREGSET NT_PRFPREG
+-#endif // NT_FPREGSET
+-#elif defined(__mips__)
+-#ifndef NT_FPREGSET
+-#define NT_FPREGSET NT_PRFPREG
+-#endif // NT_FPREGSET
+-#endif
+-#else // __ANDROID__
++#if !defined(__GLIBC__) && defined(__powerpc__)
++#define pt_regs musl_pt_regs
++#include <sys/procfs.h>
++#undef pt_regs
++#else
+ #include <sys/procfs.h>
+-#endif // __ANDROID__
++#endif
+
+ namespace lldb_private {
+ namespace process_linux {
diff --git a/srcpkgs/llvm15/patches/llvm-001-musl.patch b/srcpkgs/llvm15/patches/llvm-001-musl.patch
new file mode 100644
index 000000000000..f2a3f8d62813
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-001-musl.patch
@@ -0,0 +1,57 @@
+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;
+diff --git a/lib/Support/Unix/DynamicLibrary.inc b/lib/Support/Unix/DynamicLibrary.inc
+index a2a37996..2f86c470 100644
+--- a/llvm/lib/Support/Unix/DynamicLibrary.inc
++++ b/llvm/lib/Support/Unix/DynamicLibrary.inc
+@@ -102,7 +102,7 @@ static void *DoSearch(const char* SymbolName) {
+
+ // This macro returns the address of a well-known, explicit symbol
+ #define EXPLICIT_SYMBOL(SYM) \
+- if (!strcmp(SymbolName, #SYM)) return &SYM
++ if (!strcmp(SymbolName, #SYM)) return (void *)&SYM
+
+ // Under glibc we have a weird situation. The stderr/out/in symbols are both
+ // macros and global variables because of standards requirements. So, we
+diff --git a/utils/unittest/googletest/src/gtest.cc b/utils/unittest/googletest/src/gtest.cc
+index d882ab2e..f1fb12d0 100644
+--- a/llvm/utils/unittest/googletest/src/gtest.cc
++++ b/llvm/utils/unittest/googletest/src/gtest.cc
+@@ -128,6 +128,7 @@
+
+ #if GTEST_CAN_STREAM_RESULTS_
+ # include <arpa/inet.h> // NOLINT
++# include <sys/socket.h> // NOLINT
+ # include <netdb.h> // NOLINT
+ # include <sys/socket.h> // NOLINT
+ # include <sys/types.h> // NOLINT
diff --git a/srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch b/srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch
new file mode 100644
index 000000000000..0071d964bd37
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch
@@ -0,0 +1,30 @@
+This patches LLVM to use ELFv2 on ppc64 unconditionally unless overridden. We
+need this because unlike most distros we use ELFv2 for both glibc and musl
+on big endian ppc64.
+
+diff --git a/lib/Target/PowerPC/PPCTargetMachine.cpp b/lib/Target/PowerPC/PPCTargetMachine.cpp
+index 0634833e..b7cbc2e7 100644
+--- a/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp
++++ b/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp
+@@ -222,9 +222,8 @@ static PPCTargetMachine::PPCABI computeTargetABI(const Triple &TT,
+
+ switch (TT.getArch()) {
+ case Triple::ppc64le:
+- return PPCTargetMachine::PPC_ABI_ELFv2;
+ case Triple::ppc64:
+- return PPCTargetMachine::PPC_ABI_ELFv1;
++ return PPCTargetMachine::PPC_ABI_ELFv2;
+ default:
+ return PPCTargetMachine::PPC_ABI_UNKNOWN;
+ }
+diff --git a/test/CodeGen/PowerPC/ppc64-elf-abi.ll b/test/CodeGen/PowerPC/ppc64-elf-abi.ll
+index 8b1cf6b5..296a2afa 100644
+--- a/llvm/test/CodeGen/PowerPC/ppc64-elf-abi.ll
++++ b/llvm/test/CodeGen/PowerPC/ppc64-elf-abi.ll
+@@ -1,4 +1,5 @@
+-; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv1
++; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv2
++; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-musl < %s | FileCheck %s -check-prefix=CHECK-ELFv2
+ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu -target-abi elfv1 < %s | FileCheck %s -check-prefix=CHECK-ELFv1
+ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu -target-abi elfv2 < %s | FileCheck %s -check-prefix=CHECK-ELFv2
+ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv2
diff --git a/srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch b/srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch
new file mode 100644
index 000000000000..b5d15974375d
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch
@@ -0,0 +1,11 @@
+--- a/llvm/lib/Target/PowerPC/PPCSubtarget.cpp
++++ b/llvm/lib/Target/PowerPC/PPCSubtarget.cpp
+@@ -165,7 +165,7 @@ void PPCSubtarget::initSubtargetFeatures(StringRef CPU, StringRef FS) {
+
+ if ((TargetTriple.isOSFreeBSD() && TargetTriple.getOSMajorVersion() >= 13) ||
+ TargetTriple.isOSNetBSD() || TargetTriple.isOSOpenBSD() ||
+- TargetTriple.isMusl())
++ isTargetLinux())
+ SecurePlt = true;
+
+ if (HasSPE && IsPPC64)
diff --git a/srcpkgs/llvm15/patches/llvm-004-override-opt.patch b/srcpkgs/llvm15/patches/llvm-004-override-opt.patch
new file mode 100644
index 000000000000..51d0e4b31b32
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-004-override-opt.patch
@@ -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)
diff --git a/srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch b/srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch
new file mode 100644
index 000000000000..d332687b9d92
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch
@@ -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);
diff --git a/srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch b/srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch
new file mode 100644
index 000000000000..a00abd216665
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch
@@ -0,0 +1,25 @@
+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__) || defined (__ppc__) || \
+- defined(_POWER) || defined(_ARCH_PPC))
++ defined(_POWER) || defined(_ARCH_PPC) || (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
diff --git a/srcpkgs/llvm15/template b/srcpkgs/llvm15/template
new file mode 100644
index 000000000000..4d2777451e24
--- /dev/null
+++ b/srcpkgs/llvm15/template
@@ -0,0 +1,442 @@
+# Template file for 'llvm15'
+pkgname=llvm15
+version=15.0.7
+revision=1
+build_wrksrc=llvm
+build_style=cmake
+_ext_suffix=".cpython-${py3_ver/./}-linux-${XBPS_TARGET_LIBC/glibc/gnu}.so"
+configure_args="
+ -DCMAKE_BUILD_TYPE=Release -Wno-dev
+ -DENABLE_LINKER_BUILD_ID=YES
+ -DLLDB_USE_SYSTEM_SIX=YES
+ -DLIBCXX_CXX_ABI=libcxxabi
+ -DLIBCXX_ENABLE_STATIC_ABI_LIBRARY=YES
+ -DLIBCXXABI_USE_LLVM_UNWINDER=YES
+ -DLIBCXXABI_ENABLE_STATIC_UNWINDER=YES
+ -DLIBOMP_ENABLE_SHARED=YES
+ -DLIBOMP_INSTALL_ALIASES=NO
+ -DLLVM_INCLUDE_DOCS=YES
+ -DLLVM_BUILD_DOCS=YES
+ -DLLVM_ENABLE_SPHINX=YES
+ -DSPHINX_WARNINGS_AS_ERRORS=NO
+ -DLLVM_INSTALL_UTILS=YES
+ -DLLVM_BUILD_LLVM_DYLIB=YES
+ -DLLVM_LINK_LLVM_DYLIB=YES
+ -DLLVM_ENABLE_RTTI=YES
+ -DLLVM_ENABLE_FFI=YES
+ -DLLVM_BINUTILS_INCDIR=/usr/include
+ -DLLVM_ENABLE_PER_TARGET_RUNTIME_DIR=NO
+ -DLLDB_PYTHON_RELATIVE_PATH=lib/python${py3_ver}/site-packages
+ -DLLDB_PYTHON_EXE_RELATIVE_PATH=bin/python${py3_ver}
+ -DLLDB_PYTHON_EXT_SUFFIX=$_ext_suffix"
+hostmakedepends="perl python3 zlib-devel libffi-devel swig python3-Sphinx
+ python3-recommonmark python3-sphinx-automodapi"
+makedepends="python3-devel zlib-devel elfutils-devel libffi-devel libedit-devel
+ libxml2-devel binutils-devel libatomic-devel"
+depends="libllvm15>=${version}_${revision}"
+short_desc="Low Level Virtual Machine"
+maintainer="Orphaned <orphan@voidlinux.org>"
+license="Apache-2.0"
+homepage="https://www.llvm.org"
+distfiles="https://github.com/llvm/llvm-project/releases/download/llvmorg-${version}/llvm-project-${version}.src.tar.xz"
+checksum=8b5fcb24b4128cf04df1b0b9410ce8b1a729cb3c544e6da885d234280dedeac6
+lib32disabled=yes
+python_version=3
+
+if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
+ configure_args+=" -DLIBCXX_HAS_MUSL_LIBC=YES
+ -DCOMPILER_RT_BUILD_GWP_ASAN=OFF"
+fi
+
+# "operand out of range" assembler failures
+case "$XBPS_TARGET_MACHINE" in
+ ppc64*) ;;
+ ppc*) configure_args+=" -DCLANG_ENABLE_CLANGD=OFF" ;;
+esac
+
+_enabled_projects="clang;clang-tools-extra;compiler-rt;libcxx;libcxxabi;libunwind;lld"
+
+_lldb_enable=yes
+_libomp_enable=no
+
+case "$XBPS_TARGET_MACHINE" in
+ ppc64le*) ;;
+ ppc*|i686*|riscv64*) _lldb_enable=no ;;
+esac
+
+case "$XBPS_TARGET_MACHINE" in
+ x86_64*|aarch64*|ppc64*) _libomp_enable=yes;;
+esac
+
+subpackages="clang-tools-extra"
+
+# must go before clang
+if [ "$_libomp_enable" = "yes" ]; then
+ _enabled_projects+=";openmp"
+ subpackages+=" libomp libomp-devel"
+ # because of cmake nonsense referencing libomptarget.so.*
+ depends+=" libomp>=${version}_${revision}"
+ if [ "$CROSS_BUILD" ]; then
+ # Seems to require a full host llvm/clang build
+ configure_args+=" -DLIBOMPTARGET_BUILD_CUDA_PLUGIN=OFF"
+ configure_args+=" -DLIBOMPTARGET_BUILD_AMDGPU_PLUGIN=OFF"
+ fi
+fi
+
+subpackages+=" clang clang-analyzer libclang libclang-cpp
+ llvm-libunwind llvm-libunwind-devel libcxx libcxx-devel
+ libcxxabi libcxxabi-devel libllvm15"
+
+if [ "$_lldb_enable" = "yes" ]; then
+ # XXX fails to cross compile due to python
+ _enabled_projects+=";lldb"
+ subpackages+=" lldb lldb-devel"
+fi
+
+subpackages+=" lld lld-devel"
+
+configure_args+=" -DLLVM_ENABLE_PROJECTS=${_enabled_projects}"
+
+post_patch() {
+ if [ "$_lldb_enable" = "yes" ]; then
+ if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
+ vsed -i 's|__ptrace_request|int|g' \
+ ${wrksrc}/lldb/source/Plugins/Process/Linux/NativeProcessLinux.cpp
+ fi
+ # disable docs for lldb as they fail to generate
+ vsed -i '/add_subdirectory(docs)/d' \
+ ${wrksrc}/lldb/CMakeLists.txt
+ fi
+
+ # update config.guess for better platform detection
+ cp $XBPS_COMMONDIR/environment/configure/automake/config.guess \
+ ${wrksrc}/llvm/cmake
+
+ # fix linker failures on some archs
+ vsed -i 's,check_library_exists(gcc_s .*,set(LIBCXXABI_HAS_GCC_S_LIB ON),' \
+ ${wrksrc}/libcxxabi/cmake/config-ix.cmake
+ vsed -i 's,check_library_exists(gcc .*,set(LIBCXXABI_HAS_GCC_LIB ON),' \
+ ${wrksrc}/libcxxabi/cmake/config-ix.cmake
+
+ # need libssp_nonshared on some musl platforms (because of nodefaultlibs)
+ case "$XBPS_TARGET_MACHINE" in
+ ppc64*) ;;
+ ppc*-musl|i686-musl|mips*-musl)
+ vsed -i 's,^# Setup flags.$,add_library_flags(ssp_nonshared),' \
+ ${wrksrc}/libunwind/src/CMakeLists.txt
+ vsed -i 's,^# Setup flags.$,add_library_flags(ssp_nonshared),' \
+ ${wrksrc}/libcxxabi/src/CMakeLists.txt
+ vsed -i 's,#ssp,,' ${wrksrc}/libcxx/CMakeLists.txt
+ ;;
+ esac
+
+ case "$XBPS_TARGET_MACHINE" in
+ arm*-musl|i686-musl) # sanitizer code is broken since it duplicates some libc bits
+ vsed -i 's/set(COMPILER_RT_HAS_SANITIZER_COMMON TRUE)/set(COMPILER_RT_HAS_SANITIZER_COMMON FALSE)/' \
+ ${wrksrc}/compiler-rt/cmake/config-ix.cmake
+ ;;
+ esac
+}
+
+pre_configure() {
+ local triplet
+
+ # Vastly reduce size of debugging symbols:
+ CFLAGS=${CFLAGS/ -g/ -g1}
+ CXXFLAGS=${CXXFLAGS/ -g/ -g1}
+
+ # since gcc9, the build likes to blow up for ppc32 apparently because
+ # of clang being too large for a 24-bit relative call to the PLT, so
+ # optimize for size instead
+ case "$XBPS_TARGET_MACHINE" in
+ ppc64*) ;;
+ mips*-musl|ppc*) configure_args+=" -DVOID_CXX_OPT_FLAGS=-Os" ;;
+ esac
+
+ if [ "$CROSS_BUILD" ]; then
+ msg_normal "Building host tblgen\n"
+ mkdir -p build/HOST
+ cd build/HOST
+ CC="$BUILD_CC" CXX="$BUILD_CXX" CFLAGS="$BUILD_CFLAGS" \
+ CXXFLAGS="$BUILD_CXXFLAGS" LDFLAGS="$BUILD_LDFLAGS" \
+ cmake ../.. -DCMAKE_BUILD_TYPE=Release \
+ -DLLVM_ENABLE_PROJECTS=${_enabled_projects}
+ make ${makejobs} -C utils/TableGen
+ make ${makejobs} -C tools/clang/utils/TableGen
+ make ${makejobs} -C tools/clang/tools/extra/clang-tidy/misc/ConfusableTable
+ make ${makejobs} -C tools/clang/tools/extra/pseudo/gen
+ [ "$_lldb_enable" = "yes" ] && make ${makejobs} -C tools/lldb/utils/TableGen
+ configure_args+=" -DLLVM_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/llvm-tblgen"
+ configure_args+=" -DCLANG_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/clang-tblgen"
+ configure_args+=" -DCLANG_TIDY_CONFUSABLE_CHARS_GEN=${wrksrc}/llvm/build/HOST/bin/clang-tidy-confusable-chars-gen"
+ configure_args+=" -DCLANG_PSEUDO_GEN=${wrksrc}/llvm/build/HOST/bin/clang-pseudo-gen"
+ [ "$_lldb_enable" = "yes" ] && configure_args+=" -DLLDB_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/lldb-tblgen"
+ cd ../..
+ fi
+
+ case "$XBPS_TARGET_MACHINE" in
+ i686*) _arch="X86";;
+ x86_64*) _arch="X86";;
+ armv5*) _arch="Armv5te";;
+ armv6*) _arch="Armv6";;
+ armv7*) _arch="Armv7";;
+ aarch64*) _arch="AArch64";;
+ mips*) _arch="Mips";;
+ ppc*) _arch="PowerPC";;
+ riscv64*) _arch="RISCV64";;
+ esac
+
+ triplet=${XBPS_CROSS_TRIPLET:-$XBPS_TRIPLET}
+
+ configure_args+=" -DLLVM_TARGET_ARCH=${_arch}"
+ configure_args+=" -DLLVM_HOST_TRIPLE=${triplet}"
+ configure_args+=" -DLLVM_DEFAULT_TARGET_TRIPLE=${triplet}"
+}
+
+do_install() {
+ cd build
+ cmake -DCMAKE_INSTALL_PREFIX=${DESTDIR}/usr -P cmake_install.cmake
+
+ # Required for multilib.
+ if [ "$XBPS_TARGET_MACHINE" = "x86_64" ]; then
+ for _header in llvm-config; do
+ mv ${DESTDIR}/usr/include/llvm/Config/${_header}{,-64}.h
+ vinstall ${FILESDIR}/llvm-Config-${_header}.h 644 \
+ usr/include/llvm/Config ${_header}.h
+ done
+ fi
+
+ # Remove llvm-config-host in cross builds.
+ if [ "$CROSS_BUILD" ]; then
+ rm -f ${DESTDIR}/usr/bin/llvm-config-host
+ fi
+
+ # Install libcxxabi headers
+ vinstall ${wrksrc}/libcxxabi/include/__cxxabi_config.h 644 usr/include
+ vinstall ${wrksrc}/libcxxabi/include/cxxabi.h 644 usr/include
+
+ # Install libunwind headers
+ vinstall ${wrksrc}/libunwind/include/__libunwind_config.h 644 usr/include
+ vinstall ${wrksrc}/libunwind/include/libunwind.h 644 usr/include
+ vinstall ${wrksrc}/libunwind/include/unwind.h 644 usr/include
+ vinstall ${wrksrc}/libunwind/include/mach-o/compact_unwind_encoding.h \
+ 644 usr/include/mach-o
+}
+
+clang-analyzer_package() {
+ pycompile_dirs="usr/share/scan-view"
+ depends="clang-${version}_${revision} python3 perl"
+ short_desc+=" - A source code analysis framework"
+ homepage="https://clang-analyzer.llvm.org/"
+ pkg_install() {
+ vmove "usr/bin/scan-*"
+ vmove "usr/libexec/*analyzer"
+ vmove "usr/share/scan-*"
+ vmove usr/share/man/man1/scan-build.1
+ }
+}
+
+clang-tools-extra_package() {
+ lib32disabled=yes
+ depends="clang-${version}_${revision} python3"
+ short_desc+=" - Extra Clang tools"
+ homepage="https://clang.llvm.org/extra/"
+ pkg_install() {
+ vmove usr/bin/clang-apply-replacements
+ vmove usr/bin/clang-doc
+ vmove usr/bin/clang-include-fixer
+ vmove usr/bin/clang-query
+ vmove usr/bin/clang-rename
+ vmove usr/bin/clang-reorder-fields
+ vmove usr/bin/clang-tidy
+ vmove usr/bin/clangd
+ vmove usr/bin/diagtool
+ vmove usr/bin/find-all-symbols
+ vmove usr/bin/hmaptool
+ vmove usr/bin/modularize
+ vmove usr/bin/pp-trace
+ vmove usr/bin/sancov
+ vmove usr/include/clang-tidy
+ vmove "usr/lib/libclangApplyReplacements*"
+ vmove "usr/lib/libclangDoc*"
+ vmove "usr/lib/libclangIncludeFixer*"
+ vmove "usr/lib/libclangReorderFields*"
+ vmove "usr/lib/libclangQuery*"
+ vmove "usr/lib/libclangTidy*"
+ vmove "usr/share/clang/*include-fixer*"
+ vmove "usr/share/clang/*rename*"
+ vmove "usr/share/clang/*tidy*"
+ vmove usr/share/doc/LLVM/clang-tools
+ vmove usr/share/man/man1/diagtool.1
+ vmove usr/share/man/man1/extraclangtools.1
+ }
+}
+
+clang_package() {
+ lib32disabled=yes
+ depends="libstdc++-devel libgcc-devel binutils ${XBPS_TARGET_LIBC}-devel
+ libclang-${version}_${revision}"
+ short_desc+=" - C language family frontend"
+ homepage="https://clang.llvm.org/"
+ pkg_install() {
+ vmove "usr/bin/*clang*"
+ vmove usr/bin/c-index-test
+ vmove usr/include/clang
+ vmove usr/include/clang-c
+ vmove usr/lib/clang
+ vmove usr/lib/cmake/clang
+ vmove "usr/lib/libclang*.a"
+ vmove "usr/lib/libclang*.so"
+ vmove usr/share/clang
+ vmove usr/share/doc/LLVM/clang
+ vmove usr/share/man/man1/clang.1
+ }
+}
+
+libclang_package() {
+ short_desc+=" - C frontend runtime library"
+ pkg_install() {
+ vmove "usr/lib/libclang.so.*"
+ }
+}
+
+libclang-cpp_package() {
+ short_desc+=" - C frontend runtime library (C++ interface)"
+ pkg_install() {
+ vmove "usr/lib/libclang-cpp.so.*"
+ }
+}
+
+lld_package() {
+ lib32disabled=yes
+ short_desc+=" - linker"
+ homepage="https://lld.llvm.org"
+ pkg_install() {
+ vmove "usr/bin/ld.lld*"
+ vmove "usr/bin/ld64.lld*"
+ vmove "usr/bin/lld*"
+ vmove usr/bin/wasm-ld
+ vmove usr/share/doc/LLVM/lld
+ }
+}
+
+lld-devel_package() {
+ lib32disabled=yes
+ short_desc+=" - linker - development files"
+ homepage="https://lld.llvm.org"
+ depends="lld>=${version}_${revision}"
+ pkg_install() {
+ vmove usr/include/lld
+ vmove usr/lib/cmake/lld
+ vmove "usr/lib/liblld*a"
+ }
+}
+
+lldb_package() {
+ lib32disabled=yes
+ depends+=" python3-six"
+ short_desc+=" - LLDB debugger"
+ homepage="https://lldb.llvm.org/"
+ pkg_install() {
+ vmove "usr/bin/*lldb*"
+ vmove "usr/lib/liblldb*so.*"
+ vmove usr/lib/python*
+ }
+}
+
+lldb-devel_package() {
+ lib32disabled=yes
+ depends="lldb>=${version}_${revision}"
+ short_desc+=" - LLDB debugger - development files"
+ pkg_install() {
+ vmove usr/include/lldb
+ vmove "usr/lib/liblldb*.so"
+ }
+}
+
+llvm-libunwind_package() {
+ short_desc+=" - libunwind"
+ pkg_install() {
+ vmove "usr/lib/libunwind.so.*"
+ }
+}
+
+llvm-libunwind-devel_package() {
+ short_desc+=" - libunwind - development files"
+ depends="llvm-libunwind>=${version}_${revision}"
+ conflicts="libunwind-devel>=0"
+ pkg_install() {
+ vmove usr/include/mach-o
+ vmove "usr/include/*unwind*"
+ vmove "usr/lib/libunwind.a"
+ vmove "usr/lib/libunwind.so"
+ vmove usr/share/doc/LLVM/libunwind
+ }
+}
+
+libcxxabi_package() {
+ short_desc+=" - low level support for libc++"
+ pkg_install() {
+ vmove "usr/lib/libc++abi.so.*"
+ }
+}
+
+libcxxabi-devel_package() {
+ short_desc+=" - low level support for libc++ - development files"
+ depends="libcxxabi>=${version}_${revision}"
+ pkg_install() {
+ vmove "usr/include/*cxxabi*"
+ vmove "usr/lib/libc++abi.so"
+ vmove "usr/lib/libc++abi.a"
+ }
+}
+
+libcxx_package() {
+ short_desc+=" - C++ standard library"
+ pkg_install() {
+ vmove "usr/lib/libc++.so.*"
+ }
+}
+
+libcxx-devel_package() {
+ short_desc+=" - C++ standard library - development files"
+ depends="libcxx>=${version}_${revision}"
+ pkg_install() {
+ vmove usr/include/c++
+ vmove "usr/lib/libc++.so"
+ vmove "usr/lib/libc++.a"
+ vmove "usr/lib/libc++experimental.a"
+ vmove usr/share/doc/LLVM/libcxx
+ }
+}
+
+libomp_package() {
+ short_desc+=" - Clang OpenMP support library"
+ pkg_install() {
+ vmove usr/lib/libarcher.so
+ vmove usr/lib/libompd.so
+ vmove "usr/lib/libomptarget.rtl.*.so"
+ vmove "usr/lib/libomp*.so.*"
+ }
+}
+
+libomp-devel_package() {
+ short_desc+=" - Clang OpenMP support library - development files"
+ depends="libomp>=${version}_${revision}"
+ pkg_install() {
+ vmove "usr/include/omp*.h"
+ vmove "usr/lib/clang/${version}/include/omp*.h"
+ vmove "usr/lib/libarcher*"
+ vmove "usr/lib/libomp*.so"
+ vmove usr/lib/cmake/openmp
+ vmove usr/share/doc/LLVM/openmp
+ vmove usr/share/man/man1/llvmopenmp.1
+ }
+}
+
+libllvm15_package() {
+ short_desc+=" - runtime library"
+ pkg_install() {
+ vmove "usr/lib/libLLVM-*.so*"
+ }
+}
diff --git a/srcpkgs/llvm15/update b/srcpkgs/llvm15/update
new file mode 100644
index 000000000000..e95cf26b3586
--- /dev/null
+++ b/srcpkgs/llvm15/update
@@ -0,0 +1,3 @@
+site="https://github.com/llvm/llvm-project/releases"
+pattern="llvmorg-\K(\d+.){2}\d+(-rc\d+)?"
+ignore="*-rc*"
From b8ff70a79594482c06e1a94c1bc92753aa57e865 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Sun, 18 Dec 2022 00:40:18 +0100
Subject: [PATCH 02/24] llvm: update to 15
---
common/shlibs | 6 +++---
srcpkgs/clang | 2 +-
srcpkgs/clang-analyzer | 2 +-
srcpkgs/clang-tools-extra | 2 +-
srcpkgs/libclang | 2 +-
srcpkgs/libclang-cpp | 2 +-
srcpkgs/libcxx | 2 +-
srcpkgs/libcxx-devel | 2 +-
srcpkgs/libcxxabi | 2 +-
srcpkgs/libcxxabi-devel | 2 +-
srcpkgs/libomp | 2 +-
srcpkgs/libomp-devel | 2 +-
srcpkgs/lld | 2 +-
srcpkgs/lld-devel | 2 +-
srcpkgs/lldb | 2 +-
srcpkgs/lldb-devel | 2 +-
srcpkgs/llvm-libunwind | 2 +-
srcpkgs/llvm-libunwind-devel | 2 +-
srcpkgs/llvm/template | 6 +++---
19 files changed, 23 insertions(+), 23 deletions(-)
diff --git a/common/shlibs b/common/shlibs
index 661979817442..ce67bf777dab 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -985,9 +985,9 @@ 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.12 lldb-12.0.0_1
-libclang.so.12 libclang-12.0.0_1
-libclang-cpp.so.12 libclang-cpp-12.0.0_1
+liblldb.so.15 lldb-15.0.7_1
+libclang.so.15 libclang-15.0.7_1
+libclang-cpp.so.15 libclang-cpp-15.0.7_1
libLLVM-11.so libllvm11-11.0.0_1
libLLVM-12.so libllvm12-12.0.0_1
libLLVM-15.so libllvm15-15.0.7_1
diff --git a/srcpkgs/clang b/srcpkgs/clang
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/clang
+++ b/srcpkgs/clang
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/clang-analyzer b/srcpkgs/clang-analyzer
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/clang-analyzer
+++ b/srcpkgs/clang-analyzer
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/clang-tools-extra b/srcpkgs/clang-tools-extra
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/clang-tools-extra
+++ b/srcpkgs/clang-tools-extra
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libclang b/srcpkgs/libclang
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libclang
+++ b/srcpkgs/libclang
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libclang-cpp b/srcpkgs/libclang-cpp
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libclang-cpp
+++ b/srcpkgs/libclang-cpp
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxx b/srcpkgs/libcxx
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxx
+++ b/srcpkgs/libcxx
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxx-devel b/srcpkgs/libcxx-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxx-devel
+++ b/srcpkgs/libcxx-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxxabi b/srcpkgs/libcxxabi
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxxabi
+++ b/srcpkgs/libcxxabi
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libcxxabi-devel b/srcpkgs/libcxxabi-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libcxxabi-devel
+++ b/srcpkgs/libcxxabi-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libomp b/srcpkgs/libomp
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libomp
+++ b/srcpkgs/libomp
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/libomp-devel b/srcpkgs/libomp-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/libomp-devel
+++ b/srcpkgs/libomp-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lld b/srcpkgs/lld
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lld
+++ b/srcpkgs/lld
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lld-devel b/srcpkgs/lld-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lld-devel
+++ b/srcpkgs/lld-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lldb b/srcpkgs/lldb
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lldb
+++ b/srcpkgs/lldb
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/lldb-devel b/srcpkgs/lldb-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/lldb-devel
+++ b/srcpkgs/lldb-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm-libunwind b/srcpkgs/llvm-libunwind
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/llvm-libunwind
+++ b/srcpkgs/llvm-libunwind
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm-libunwind-devel b/srcpkgs/llvm-libunwind-devel
index cd60fd7a981b..ad57a969b9f9 120000
--- a/srcpkgs/llvm-libunwind-devel
+++ b/srcpkgs/llvm-libunwind-devel
@@ -1 +1 @@
-llvm12
\ No newline at end of file
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm/template b/srcpkgs/llvm/template
index a92db6f94f9f..fc1c850bd26f 100644
--- a/srcpkgs/llvm/template
+++ b/srcpkgs/llvm/template
@@ -1,11 +1,11 @@
# Template file for 'llvm'
pkgname=llvm
-version=12.0.0
+version=15
revision=1
build_style=meta
-depends="llvm12"
-replaces="llvm11>=0 llvm10>=0 llvm9>=0 llvm8>=0 llvm7>=0 llvm6.0>=0 llvm3.9>=0"
+depends="llvm15"
short_desc="LLVM meta package"
maintainer="Enno Boland <gottox@voidlinux.org>"
license="Public Domain"
homepage="https://www.voidlinux.org"
+replaces="llvm12>=0 llvm11>=0 llvm10>=0 llvm9>=0 llvm8>=0 llvm7>=0 llvm6.0>=0 llvm3.9>=0"
From 3c8383866a036f18e4a52542153245e00c243bff Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Sun, 18 Dec 2022 12:20:08 +0100
Subject: [PATCH 03/24] llvm12: remove bumped subpackages
---
srcpkgs/llvm12/template | 264 +---------------------------------------
1 file changed, 1 insertion(+), 263 deletions(-)
diff --git a/srcpkgs/llvm12/template b/srcpkgs/llvm12/template
index f8ea3ba641ae..aea0b43cf573 100644
--- a/srcpkgs/llvm12/template
+++ b/srcpkgs/llvm12/template
@@ -50,55 +50,7 @@ case "$XBPS_TARGET_MACHINE" in
ppc*) configure_args+=" -DCLANG_ENABLE_CLANGD=OFF" ;;
esac
-_enabled_projects="clang;clang-tools-extra;compiler-rt;libcxx;libcxxabi;libunwind;lld"
-
-_lldb_enable=yes
-_libomp_enable=no
-
-case "$XBPS_TARGET_MACHINE" in
- ppc64le*) ;;
- ppc*|i686*) _lldb_enable=no ;;
-esac
-
-case "$XBPS_TARGET_MACHINE" in
- x86_64*|aarch64*|ppc64*) _libomp_enable=yes;;
-esac
-
-subpackages="clang-tools-extra"
-
-# must go before clang
-if [ "$_libomp_enable" = "yes" ]; then
- _enabled_projects+=";openmp"
- subpackages+=" libomp libomp-devel"
- # because of cmake nonsense referencing libomptarget.so.*
- depends+=" libomp>=${version}_${revision}"
-fi
-
-subpackages+=" clang clang-analyzer libclang libclang-cpp
- llvm-libunwind llvm-libunwind-devel libcxx libcxx-devel
- libcxxabi libcxxabi-devel libllvm12"
-
-if [ "$_lldb_enable" = "yes" ]; then
- # XXX fails to cross compile due to python
- _enabled_projects+=";lldb"
- subpackages+=" lldb lldb-devel"
-fi
-
-subpackages+=" lld lld-devel"
-
-configure_args+=" -DLLVM_ENABLE_PROJECTS=${_enabled_projects}"
-
post_patch() {
- if [ "$_lldb_enable" = "yes" ]; then
- if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
- vsed -i 's|__ptrace_request|int|g' \
- ${wrksrc}/lldb/source/Plugins/Process/Linux/NativeProcessLinux.cpp
- fi
- # disable docs for lldb as they fail to generate
- vsed -i '/add_subdirectory(docs)/d' \
- ${wrksrc}/lldb/CMakeLists.txt
- fi
-
# update config.guess for better platform detection
cp $XBPS_COMMONDIR/environment/configure/automake/config.guess \
${wrksrc}/llvm/cmake
@@ -154,14 +106,12 @@ pre_configure() {
cd build/HOST
CC="$BUILD_CC" CXX="$BUILD_CXX" CFLAGS="$BUILD_CFLAGS" \
CXXFLAGS="$BUILD_CXXFLAGS" LDFLAGS="$BUILD_LDFLAGS" \
- cmake ../.. -DCMAKE_BUILD_TYPE=Release \
- -DLLVM_ENABLE_PROJECTS=${_enabled_projects}
+ cmake ../.. -DCMAKE_BUILD_TYPE=Release
make ${makejobs} -C utils/TableGen
make ${makejobs} -C tools/clang/utils/TableGen
[ "$_lldb_enable" = "yes" ] && make ${makejobs} -C tools/lldb/utils/TableGen
configure_args+=" -DLLVM_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/llvm-tblgen"
configure_args+=" -DCLANG_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/clang-tblgen"
- [ "$_lldb_enable" = "yes" ] && configure_args+=" -DLLDB_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/lldb-tblgen"
cd ../..
fi
@@ -201,218 +151,6 @@ do_install() {
if [ "$CROSS_BUILD" ]; then
rm -f ${DESTDIR}/usr/bin/llvm-config-host
fi
-
- # Install libcxxabi headers
- vinstall ${wrksrc}/libcxxabi/include/__cxxabi_config.h 644 usr/include
- vinstall ${wrksrc}/libcxxabi/include/cxxabi.h 644 usr/include
-
- # Install libunwind headers
- vinstall ${wrksrc}/libunwind/include/__libunwind_config.h 644 usr/include
- vinstall ${wrksrc}/libunwind/include/libunwind.h 644 usr/include
- vinstall ${wrksrc}/libunwind/include/unwind.h 644 usr/include
- vinstall ${wrksrc}/libunwind/include/mach-o/compact_unwind_encoding.h \
- 644 usr/include/mach-o
-}
-
-clang-analyzer_package() {
- pycompile_dirs="usr/share/scan-view"
- depends="clang-${version}_${revision} python3 perl"
- short_desc+=" - A source code analysis framework"
- homepage="https://clang-analyzer.llvm.org/"
- pkg_install() {
- vmove usr/share/man/man1/scan-build.1
- vmove "/usr/bin/scan-*"
- vmove "/usr/share/scan-*"
- vmove "/usr/libexec/*analyzer"
- }
-}
-
-clang-tools-extra_package() {
- lib32disabled=yes
- depends="clang-${version}_${revision} python3"
- short_desc+=" - Extra Clang tools"
- homepage="https://clang.llvm.org/extra/"
- pkg_install() {
- vmove usr/include/clang-tidy
- vmove usr/bin/clang-apply-replacements
- vmove usr/bin/clang-query
- vmove usr/bin/clang-rename
- vmove usr/bin/clang-tidy
- vmove usr/bin/diagtool
- vmove usr/bin/find-all-symbols
- vmove usr/bin/hmaptool
- vmove usr/bin/modularize
- vmove usr/bin/pp-trace
- vmove usr/bin/sancov
- vmove "usr/lib/libclangApplyReplacements*"
- vmove "usr/lib/libclangQuery*"
- vmove "usr/lib/libclangTidy*"
- vmove "usr/share/clang/*tidy*"
- vmove usr/share/doc/clang-tools
- vmove usr/share/man/man1/extraclangtools.1
- vmove usr/share/man/man1/diagtool.1
- }
-}
-
-clang_package() {
- lib32disabled=yes
- depends="libstdc++-devel libgcc-devel binutils ${XBPS_TARGET_LIBC}-devel
- libclang-${version}_${revision}"
- short_desc+=" - C language family frontend"
- homepage="https://clang.llvm.org/"
- pkg_install() {
- vmove usr/include/clang
- vmove usr/include/clang-c
- vmove "usr/bin/*clang*"
- vmove usr/bin/c-index-test
- vmove usr/lib/clang
- vmove usr/lib/cmake/clang
- vmove "usr/lib/libclang*.a"
- vmove "usr/lib/libclang*.so"
- vmove usr/share/clang
- vmove usr/share/doc/clang
- vmove usr/share/man/man1/clang.1
- }
-}
-
-libclang_package() {
- short_desc+=" - C frontend runtime library"
- pkg_install() {
- vmove "usr/lib/libclang.so.*"
- }
-}
-
-libclang-cpp_package() {
- short_desc+=" - C frontend runtime library (C++ interface)"
- pkg_install() {
- vmove "usr/lib/libclang-cpp.so.*"
- }
-}
-
-lld_package() {
- lib32disabled=yes
- short_desc+=" - linker"
- homepage="https://lld.llvm.org"
- pkg_install() {
- vmove usr/bin/lld*
- vmove usr/bin/wasm-ld
- vmove usr/bin/ld.lld*
- vmove usr/bin/ld64.lld*
- vmove usr/share/doc/lld
- }
-}
-
-lld-devel_package() {
- lib32disabled=yes
- short_desc+=" - linker - development files"
- homepage="https://lld.llvm.org"
- depends="lld>=${version}_${revision}"
- pkg_install() {
- vmove usr/include/lld
- vmove usr/lib/cmake/lld
- vmove "usr/lib/liblld*a"
- }
-}
-
-lldb_package() {
- lib32disabled=yes
- depends+=" python3-six"
- short_desc+=" - LLDB debugger"
- homepage="https://lldb.llvm.org/"
- pkg_install() {
- vmove usr/bin/*lldb*
- vmove usr/lib/liblldb*so.*
- vmove /usr/lib/python*
- }
-}
-
-lldb-devel_package() {
- lib32disabled=yes
- depends="lldb>=${version}_${revision}"
- short_desc+=" - LLDB debugger - development files"
- pkg_install() {
- vmove usr/include/lldb
- vmove "usr/lib/liblldb*.so"
- }
-}
-
-llvm-libunwind_package() {
- short_desc+=" - libunwind"
- pkg_install() {
- vmove "usr/lib/libunwind.so.*"
- }
-}
-
-llvm-libunwind-devel_package() {
- short_desc+=" - libunwind - development files"
- depends="llvm-libunwind>=${version}_${revision}"
- conflicts="libunwind-devel>=0"
- pkg_install() {
- vmove usr/lib/libunwind.so
- vmove usr/lib/libunwind.a
- vmove "usr/include/*unwind*"
- vmove usr/include/mach-o
- vmove usr/share/doc/libunwind
- }
-}
-
-libcxxabi_package() {
- short_desc+=" - low level support for libc++"
- pkg_install() {
- vmove "usr/lib/libc++abi.so.*"
- }
-}
-
-libcxxabi-devel_package() {
- short_desc+=" - low level support for libc++ - development files"
- depends="libcxxabi>=${version}_${revision}"
- pkg_install() {
- vmove usr/lib/libc++abi.so
- vmove usr/lib/libc++abi.a
- vmove "usr/include/*cxxabi*"
- }
-}
-
-libcxx_package() {
- short_desc+=" - C++ standard library"
- pkg_install() {
- vmove "usr/lib/libc++.so.*"
- }
-}
-
-libcxx-devel_package() {
- short_desc+=" - C++ standard library - development files"
- depends="libcxx>=${version}_${revision}"
- pkg_install() {
- vmove usr/lib/libc++.so
- vmove usr/lib/libc++.a
- vmove usr/lib/libc++experimental.a
- vmove usr/include/c++
- vmove usr/share/doc/libcxx
- }
-}
-
-libomp_package() {
- short_desc+=" - Clang OpenMP support library"
- pkg_install() {
- vmove usr/lib/libomp.so
- vmove "usr/lib/libomptarget.rtl.*.so"
- vmove usr/lib/libarcher.so
- vmove "usr/lib/libomp*.so.*"
- }
-}
-
-libomp-devel_package() {
- short_desc+=" - Clang OpenMP support library - development files"
- depends="libomp>=${version}_${revision}"
- pkg_install() {
- vmove "usr/lib/libomp*.so"
- vmove "usr/lib/libarcher*"
- vmove "usr/include/omp*.h"
- vmove "usr/lib/clang/${version}/include/omp*.h"
- vmove usr/share/man/man1/llvmopenmp.1
- vmove usr/share/doc/openmp
- }
}
libllvm12_package() {
From 5e75b9baa1e482efd376555f49124908138c4f0b Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:27:03 +0100
Subject: [PATCH 04/24] mesa: rebuild for llvm15
---
srcpkgs/mesa/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/mesa/template b/srcpkgs/mesa/template
index 4c3c9ec6039e..0641b28a80d6 100644
--- a/srcpkgs/mesa/template
+++ b/srcpkgs/mesa/template
@@ -1,7 +1,7 @@
# Template file for 'mesa'
pkgname=mesa
version=22.2.4
-revision=2
+revision=3
build_style=meson
configure_args="-Dglvnd=true -Dshared-glapi=enabled -Dgbm=enabled -Degl=enabled
-Dosmesa=true -Dgles1=enabled -Dgles2=enabled -Dglx=dri -Ddri3=enabled
From ab54aa0587a7d7a0c8d603f2d04258c3d25ef5da Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:34:04 +0100
Subject: [PATCH 05/24] bcc: rebuild for llvm15
---
srcpkgs/bcc/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/bcc/template b/srcpkgs/bcc/template
index 7526580f17ed..bdbcff7227a0 100644
--- a/srcpkgs/bcc/template
+++ b/srcpkgs/bcc/template
@@ -1,7 +1,7 @@
# Template file for 'bcc'
pkgname=bcc
version=0.26.0
-revision=2
+revision=3
build_style=cmake
configure_args="-DREVISION=${version} -DENABLE_LLVM_SHARED=1"
hostmakedepends="flex python3-setuptools"
From 76d4020a2af5401e7777fd0a73f9c3ad322b5421 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:37:25 +0100
Subject: [PATCH 06/24] bpftrace: rebuild for llvm15
---
srcpkgs/bpftrace/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/bpftrace/template b/srcpkgs/bpftrace/template
index 952682662128..2f01dbf69530 100644
--- a/srcpkgs/bpftrace/template
+++ b/srcpkgs/bpftrace/template
@@ -1,7 +1,7 @@
# Template file for 'bpftrace'
pkgname=bpftrace
version=0.17.0
-revision=1
+revision=2
archs="x86_64* aarch64* ppc64*"
build_style=cmake
configure_args="-DUSE_SYSTEM_BPF_BCC=ON -DBUILD_TESTING=OFF" # needs root to run
From 6e1b2a3c804a52a1c324a0b414eb512f9afd9878 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:43:53 +0100
Subject: [PATCH 07/24] CastXML: rebuild for llvm15
---
srcpkgs/CastXML/template | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/srcpkgs/CastXML/template b/srcpkgs/CastXML/template
index 5d7d9503658c..28c424c78073 100644
--- a/srcpkgs/CastXML/template
+++ b/srcpkgs/CastXML/template
@@ -1,7 +1,7 @@
# Template file for 'CastXML'
pkgname=CastXML
version=0.4.6
-revision=1
+revision=2
build_style=cmake
configure_args="-DSPHINX_MAN=YES -DCastXML_INSTALL_MAN_DIR=share/man"
hostmakedepends="clang python3-Sphinx"
@@ -12,8 +12,8 @@ short_desc="C-family abstract syntax tree XML output tool"
maintainer="Evgeny Ermakov <evgeny.v.ermakov@gmail.com>"
license="Apache-2.0"
homepage="https://github.com/CastXML/CastXML"
-distfiles="https://github.com/CastXML/CastXML/archive/v${version}.tar.gz"
-checksum=8dcdbc1f23a130e4bdb0b09f57c30761a02a346b4db4037555048af2a293d66a
+distfiles="https://github.com/CastXML/CastXML/archive/refs/tags/v${version}.tar.gz"
+checksum=bb9024ec9ea5082e0d527f19bf3c2df79f1699f54b6cec168c024e727b32e6d1
post_install() {
rm -r ${DESTDIR}/usr/share/castxml/clang/include
From 8a5060dff47565898399678552f32dbc0e77a023 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:48:55 +0100
Subject: [PATCH 08/24] ccls: rebuild for llvm15
---
srcpkgs/ccls/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/ccls/template b/srcpkgs/ccls/template
index 82fa61933878..ecc9f3e38a5d 100644
--- a/srcpkgs/ccls/template
+++ b/srcpkgs/ccls/template
@@ -1,7 +1,7 @@
# Template file for 'ccls'
pkgname=ccls
version=0.20220729
-revision=1
+revision=2
build_style=cmake
hostmakedepends="clang-tools-extra"
makedepends="clang-tools-extra libxml2-devel llvm ncurses-devel rapidjson zlib-devel"
From 39e1c126e215858a21ea0ff31bada898fac7dabd Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 14:52:14 +0100
Subject: [PATCH 09/24] include-what-you-use: update to 0.19
---
srcpkgs/include-what-you-use/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/include-what-you-use/template b/srcpkgs/include-what-you-use/template
index d3655709c20c..1a30bc04bb2d 100644
--- a/srcpkgs/include-what-you-use/template
+++ b/srcpkgs/include-what-you-use/template
@@ -1,6 +1,6 @@
# Template file for 'include-what-you-use'
pkgname=include-what-you-use
-version=0.16
+version=0.19
revision=1
build_style=cmake
configure_args="-DIWYU_LLVM_ROOT_PATH=${XBPS_CROSS_BASE}/usr "
@@ -11,7 +11,7 @@ maintainer="Leah Neukirchen <leah@vuxu.org>"
license="NCSA"
homepage="https://include-what-you-use.org/"
distfiles="https://include-what-you-use.org/downloads/${pkgname}-${version}.src.tar.gz"
-checksum=8d6fc9b255343bc1e5ec459e39512df1d51c60e03562985e0076036119ff5a1c
+checksum=2b10157b60ea08adc08e3896b4921c73fcadd5ec4eb652b29a34129d501e5ee0
python_version=3
post_install() {
From f11d8164722ffc9fa2b8e11db5365052fc9a5c1d Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 5 Jan 2023 15:11:06 +0100
Subject: [PATCH 10/24] SPIRV-LLVM-Translator: update to 15.0.0
---
srcpkgs/SPIRV-LLVM-Translator/template | 13 +++++++------
1 file changed, 7 insertions(+), 6 deletions(-)
diff --git a/srcpkgs/SPIRV-LLVM-Translator/template b/srcpkgs/SPIRV-LLVM-Translator/template
index a2754e58c0e8..bee99f9bcbb2 100644
--- a/srcpkgs/SPIRV-LLVM-Translator/template
+++ b/srcpkgs/SPIRV-LLVM-Translator/template
@@ -1,19 +1,20 @@
# Template file for 'SPIRV-LLVM-Translator'
pkgname=SPIRV-LLVM-Translator
-version=12.0.0
-revision=2
+version=15.0.0
+revision=1
build_style=cmake
make_build_args="llvm-spirv"
configure_args="-Wno-dev -DLLVM_LINK_LLVM_DYLIB=ON -DCMAKE_SKIP_RPATH=ON
- -DLLVM_SPIRV_INCLUDE_TESTS=OFF -DBUILD_SHARED_LIBS=ON"
+ -DLLVM_SPIRV_INCLUDE_TESTS=OFF -DBUILD_SHARED_LIBS=ON
+ -DLLVM_EXTERNAL_SPIRV_HEADERS_SOURCE_DIR=/usr"
hostmakedepends="clang llvm"
-makedepends="clang-tools-extra llvm"
+makedepends="clang-tools-extra llvm SPIRV-Headers"
short_desc="API and commands for processing SPIR-V modules"
maintainer="Orphaned <orphan@voidlinux.org>"
license="NCSA"
homepage="https://github.com/KhronosGroup/SPIRV-LLVM-Translator"
-distfiles="https://github.com/KhronosGroup/${pkgname}/archive/refs/tags/v${version}.tar.gz"
-checksum=6e4fad04203f25fcde4c308c53e9f59bd05a390978992db3212d4b63aff62108
+distfiles="https://github.com/KhronosGroup/SPIRV-LLVM-Translator/archive/refs/tags/v${version}.tar.gz"
+checksum=b1bebd77f72988758c00852e78c2ddc545815a612169a0cb377d021e2f846d88
post_install() {
vlicense LICENSE.TXT
From c7dec6bf01db99ed272a33e7c2cd84ca383803ad Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Fri, 6 Jan 2023 17:11:04 +0100
Subject: [PATCH 11/24] rtags: rebuild for llvm15
---
srcpkgs/rtags/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/rtags/template b/srcpkgs/rtags/template
index b496a1b0e721..9b161e690d76 100644
--- a/srcpkgs/rtags/template
+++ b/srcpkgs/rtags/template
@@ -1,7 +1,7 @@
# Template file for 'rtags'
pkgname=rtags
version=2.38
-revision=5
+revision=6
build_style=cmake
# Don't run tests in do_install, please.
configure_args="-DSKIP_CTEST=TRUE"
From ab490fd732091b5f41b8d1e419cf908f3b34ae3e Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Fri, 6 Jan 2023 17:14:14 +0100
Subject: [PATCH 12/24] juCi++: rebuild for llvm15
---
srcpkgs/juCi++/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/juCi++/template b/srcpkgs/juCi++/template
index c1969237f11d..416bde7cc4d0 100644
--- a/srcpkgs/juCi++/template
+++ b/srcpkgs/juCi++/template
@@ -1,7 +1,7 @@
# Template file for 'juCi++'
pkgname=juCi++
version=1.7.2
-revision=2
+revision=3
_libclangmm_commit="9704b9b6de0982a588fa41741157d5640afedf30"
_tiny_commit="839ff806dc447ff49af80f9a9eaa7949f770f8e5"
create_wrksrc=yes
From 0fb522141d6ae71350151e70460ee37f295b1364 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Sat, 7 Jan 2023 11:31:14 +0100
Subject: [PATCH 13/24] qt5: rebuild for llvm15
---
srcpkgs/qt5/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/qt5/template b/srcpkgs/qt5/template
index f4f9f5b5344a..b517b49ead2d 100644
--- a/srcpkgs/qt5/template
+++ b/srcpkgs/qt5/template
@@ -5,7 +5,7 @@ pkgname=qt5
version=5.15.7+20221119
# commit f8c9fb304bc3e53b3aa07f962cd74e9160decccc
# base repo: https://invent.kde.org/qt/qt/qt5
-revision=1
+revision=2
build_style=meta
hostmakedepends="cmake clang flex perl glib-devel pkg-config
python re2c ruby which"
From 842f22af2dc42c10fadc6bb15dd2183ec1963ea0 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Mon, 9 Jan 2023 01:22:18 +0100
Subject: [PATCH 14/24] codelite: rebuild for llvm15
---
srcpkgs/codelite/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/codelite/template b/srcpkgs/codelite/template
index 6b8b007c8a43..c6115e0274ce 100644
--- a/srcpkgs/codelite/template
+++ b/srcpkgs/codelite/template
@@ -1,7 +1,7 @@
# Template file for 'codelite'
pkgname=codelite
version=16.0.0
-revision=2
+revision=3
create_wrksrc=yes
build_style=cmake
build_helper=cmake-wxWidgets-gtk3
From 06b287d3c33c6255bdf1271295a93f6c5c6e5cde Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Mon, 9 Jan 2023 01:58:21 +0100
Subject: [PATCH 15/24] kdevelop: rebuild for llvm15
---
srcpkgs/kdevelop/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/kdevelop/template b/srcpkgs/kdevelop/template
index 5eb275583138..c32ee5240a44 100644
--- a/srcpkgs/kdevelop/template
+++ b/srcpkgs/kdevelop/template
@@ -1,7 +1,7 @@
# Template file for 'kdevelop'
pkgname=kdevelop
version=22.12.1
-revision=1
+revision=2
build_style=cmake
configure_args="-DBUILD_TESTING=OFF"
hostmakedepends="extra-cmake-modules qt5-qmake qt5-host-tools qt5-tools
From a9c61968094d283ce91de5624b31f7f55e7434c2 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Mon, 16 Jan 2023 14:43:47 +0100
Subject: [PATCH 16/24] zig: update to 0.10.1
---
.../0001-std.build-fix-handling-of-Dcpu.patch | 48 -------------------
srcpkgs/zig/template | 10 ++--
2 files changed, 6 insertions(+), 52 deletions(-)
delete mode 100644 srcpkgs/zig/patches/0001-std.build-fix-handling-of-Dcpu.patch
diff --git a/srcpkgs/zig/patches/0001-std.build-fix-handling-of-Dcpu.patch b/srcpkgs/zig/patches/0001-std.build-fix-handling-of-Dcpu.patch
deleted file mode 100644
index 4101f24459bb..000000000000
--- a/srcpkgs/zig/patches/0001-std.build-fix-handling-of-Dcpu.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From 1e8cdace7ad324a42228aeb5cd6eb8dd15429413 Mon Sep 17 00:00:00 2001
-From: Isaac Freund <ifreund@ifreund.xyz>
-Date: Tue, 21 Sep 2021 21:06:10 +0200
-Subject: [PATCH] std.build: fix handling of -Dcpu
-
-Currently -Dcpu is completely ignored if -Dtarget isn't passed as well.
-Further, -Dcpu=baseline is ignored even if -Dtarget=native is passed.
-
-This patch fixes these 2 issues, always respecting the -Dcpu option if
-present.
----
- lib/std/build.zig | 13 +++++++------
- 1 file changed, 7 insertions(+), 6 deletions(-)
-
-diff --git a/lib/std/build.zig b/lib/std/build.zig
-index 9b7ebb1f4..e398529f9 100644
---- a/lib/std/build.zig
-+++ b/lib/std/build.zig
-@@ -685,7 +685,11 @@ pub const Builder = struct {
- );
- const mcpu = self.option([]const u8, "cpu", "Target CPU");
-
-- const triple = maybe_triple orelse return args.default_target;
-+ if (maybe_triple == null and mcpu == null) {
-+ return args.default_target;
-+ }
-+
-+ const triple = maybe_triple orelse "native";
-
- var diags: CrossTarget.ParseOptions.Diagnostics = .{};
- const selected_target = CrossTarget.parse(.{
-@@ -2451,11 +2455,8 @@ pub const LibExeObjStep = struct {
-
- if (populated_cpu_features.eql(cross.cpu.features)) {
- // The CPU name alone is sufficient.
-- // If it is the baseline CPU, no command line args are required.
-- if (cross.cpu.model != std.Target.Cpu.baseline(cross.cpu.arch).model) {
-- try zig_args.append("-mcpu");
-- try zig_args.append(cross.cpu.model.name);
-- }
-+ try zig_args.append("-mcpu");
-+ try zig_args.append(cross.cpu.model.name);
- } else {
- var mcpu_buffer = std.ArrayList(u8).init(builder.allocator);
-
---
-2.33.1
-
diff --git a/srcpkgs/zig/template b/srcpkgs/zig/template
index 728c5a64e9df..9807f7ab206b 100644
--- a/srcpkgs/zig/template
+++ b/srcpkgs/zig/template
@@ -1,17 +1,19 @@
# Template file for 'zig'
pkgname=zig
-version=0.8.1
-revision=2
+version=0.10.1
+revision=1
archs="x86_64* aarch64*"
build_style=cmake
make_cmd=make
-makedepends="clang llvm12 lld-devel"
+# we add xml2, zstd, zlib and ncurses
+# because our lld is static-only and requires those to work
+makedepends="clang llvm15 lld-devel libxml2-devel libzstd-devel ncurses-devel zlib-devel"
short_desc="Programming language designed for robustness, optimality, and clarity"
maintainer="Isaac Freund <mail@isaacfreund.com>"
license="MIT"
homepage="https://ziglang.org"
distfiles="https://ziglang.org/download/${version}/zig-${version}.tar.xz"
-checksum=8c428e14a0a89cb7a15a6768424a37442292858cdb695e2eb503fa3c7bf47f1a
+checksum=69459bc804333df077d441ef052ffa143d53012b655a51f04cfef1414c04168c
nopie=yes
nocross=yes
From 106e026c9f8cbed2f2216808f80d583704029b7e Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Tue, 24 Jan 2023 14:03:51 +0100
Subject: [PATCH 17/24] river: update to 0.2.3
---
...ble-PIE-for-river-riverctl-rivertile.patch | 42 -------------------
srcpkgs/river/template | 10 ++---
2 files changed, 5 insertions(+), 47 deletions(-)
delete mode 100644 srcpkgs/river/patches/0001-Enable-PIE-for-river-riverctl-rivertile.patch
diff --git a/srcpkgs/river/patches/0001-Enable-PIE-for-river-riverctl-rivertile.patch b/srcpkgs/river/patches/0001-Enable-PIE-for-river-riverctl-rivertile.patch
deleted file mode 100644
index ecc68302db09..000000000000
--- a/srcpkgs/river/patches/0001-Enable-PIE-for-river-riverctl-rivertile.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From 759c1c7a915083f3da46960ff82fa2a3566a7065 Mon Sep 17 00:00:00 2001
-From: Isaac Freund <mail@isaacfreund.com>
-Date: Wed, 3 Nov 2021 14:21:35 +0100
-Subject: [PATCH] Enable PIE for river, riverctl, rivertile
-
-There is sadly not yet a standard way to do this exposed by the zig
-build system. See: https://github.com/ziglang/zig/issues/7201
----
- build.zig | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/build.zig b/build.zig
-index d561f49..8ac9a4e 100644
---- a/build.zig
-+++ b/build.zig
-@@ -85,6 +85,7 @@ pub fn build(b: *zbs.Builder) !void {
- const river = b.addExecutable("river", "river/main.zig");
- river.setTarget(target);
- river.setBuildMode(mode);
-+ river.pie = true;
- river.addBuildOption(bool, "xwayland", xwayland);
- river.addBuildOption([:0]const u8, "version", full_version);
-
-@@ -97,6 +98,7 @@ pub fn build(b: *zbs.Builder) !void {
- const riverctl = b.addExecutable("riverctl", "riverctl/main.zig");
- riverctl.setTarget(target);
- riverctl.setBuildMode(mode);
-+ riverctl.pie = true;
- riverctl.addBuildOption([:0]const u8, "version", full_version);
-
- riverctl.step.dependOn(&scanner.step);
-@@ -114,6 +116,7 @@ pub fn build(b: *zbs.Builder) !void {
- const rivertile = b.addExecutable("rivertile", "rivertile/main.zig");
- rivertile.setTarget(target);
- rivertile.setBuildMode(mode);
-+ rivertile.pie = true;
- rivertile.addBuildOption([:0]const u8, "version", full_version);
-
- rivertile.step.dependOn(&scanner.step);
---
-2.33.1
-
diff --git a/srcpkgs/river/template b/srcpkgs/river/template
index 3906858d507e..431aa4bd8e8e 100644
--- a/srcpkgs/river/template
+++ b/srcpkgs/river/template
@@ -1,18 +1,18 @@
# Template file for 'river'
pkgname=river
-version=0.1.1
-revision=2
+version=0.2.3
+revision=1
build_style=zig-build
-configure_args="$(vopt_if xwayland -Dxwayland)"
+configure_args="$(vopt_if xwayland -Dxwayland) -Dpie"
hostmakedepends="pkg-config wayland-devel scdoc"
-makedepends="wlroots0.15-devel libevdev-devel"
+makedepends="wlroots-devel libevdev-devel"
depends="$(vopt_if xwayland xorg-server-xwayland)"
short_desc="Dynamic tiling Wayland compositor"
maintainer="Isaac Freund <mail@isaacfreund.com>"
license="GPL-3.0-or-later"
homepage="https://github.com/riverwm/river"
distfiles="${homepage}/releases/download/v${version}/river-${version}.tar.gz"
-checksum=2a0bcd4670ed9ebd39c279f2bf10803fc65c9f3ee2307ce40728df23ce914d18
+checksum=7acdd2b929e16a20006b4baf1f29e7a8dc7f70cf5747e1503a610a90d1637132
build_options="xwayland"
build_options_default="xwayland"
From ac360173b5fa896fb793cbae049c9a20f80ecf9a Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Fri, 10 Feb 2023 17:25:32 +0100
Subject: [PATCH 18/24] libclc: update to 15.0.7
---
srcpkgs/libclc/template | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/srcpkgs/libclc/template b/srcpkgs/libclc/template
index 779519fd666f..adb60f6ad1f1 100644
--- a/srcpkgs/libclc/template
+++ b/srcpkgs/libclc/template
@@ -1,9 +1,11 @@
# Template file for 'libclc'
pkgname=libclc
-version=12.0.0
+version=15.0.7
revision=1
build_style=cmake
-configure_args="-DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release"
+# disable clspv (failing tests, we don't ship it)
+configure_args="-DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release
+ -DLIBCLC_TARGETS_TO_BUILD=amdgcn--;amdgcn--amdhsa;r600--;nvptx--;nvptx64--;nvptx--nvidiacl;nvptx64--nvidiacl;spirv-mesa3d-;spirv64-mesa3d-"
hostmakedepends="cmake clang llvm python3 libedit-devel libffi-devel
ncurses-devel zlib-devel SPIRV-LLVM-Translator"
short_desc="Open implementation of the OpenCL C programming language"
@@ -11,7 +13,7 @@ maintainer="Orphaned <orphan@voidlinux.org>"
license="BSD-3-Clause, MIT"
homepage="https://libclc.llvm.org"
distfiles="https://github.com/llvm/llvm-project/releases/download/llvmorg-${version}/libclc-${version}.src.tar.xz"
-checksum=6b777ee2cd57da1b122f76c208463f620eef508f4128210c6b1a96bfb75c74dc
+checksum=35731fea7be224f21acf5bf3cd9f0ed058bf4ada5eceaf7f10ee96e139bd3389
replaces="libclc-git>=0"
do_configure() {
From 25a788aa047e6d91ae9b037d64dc421d170ac424 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Fri, 10 Feb 2023 20:20:43 +0100
Subject: [PATCH 19/24] shiboken2: update to 5.15.7
---
srcpkgs/shiboken2/template | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/srcpkgs/shiboken2/template b/srcpkgs/shiboken2/template
index 9ceb8b313de7..084ecc3ba1e1 100644
--- a/srcpkgs/shiboken2/template
+++ b/srcpkgs/shiboken2/template
@@ -1,7 +1,7 @@
# Template file for 'shiboken2'
pkgname=shiboken2
-version=5.15.5
-revision=2
+version=5.15.7
+revision=1
_pkgname="pyside-setup-opensource-src-${version}"
build_wrksrc="sources/shiboken2"
build_style=cmake
@@ -14,7 +14,7 @@ maintainer="yopito <pierre.bourgin@free.fr>"
license="GPL-3.0-or-later"
homepage="https://wiki.qt.io/Qt_for_Python/Shiboken"
distfiles="https://download.qt.io/official_releases/QtForPython/pyside2/PySide2-${version}-src/${_pkgname}.tar.xz"
-checksum=3920a4fb353300260c9bc46ff70f1fb975c5e7efa22e9d51222588928ce19b33
+checksum=f61210ae24e6882d5d0ca0059229e5dc4f35e2bca92dd6caf96c0f41943a8294
python_version=3
export CLANG_INSTALL_DIR=${XBPS_CROSS_BASE}/usr
From 10fd0fd7aabbd47988d9abb0181d3f32c42ef025 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 16 Feb 2023 20:13:02 +0100
Subject: [PATCH 20/24] clazy: rebuild for llvm15
---
.../patches/0002-llvm15-compatibility.patch | 220 ++++++++++++++++++
srcpkgs/clazy/template | 2 +-
2 files changed, 221 insertions(+), 1 deletion(-)
create mode 100644 srcpkgs/clazy/patches/0002-llvm15-compatibility.patch
diff --git a/srcpkgs/clazy/patches/0002-llvm15-compatibility.patch b/srcpkgs/clazy/patches/0002-llvm15-compatibility.patch
new file mode 100644
index 000000000000..18213a66fca1
--- /dev/null
+++ b/srcpkgs/clazy/patches/0002-llvm15-compatibility.patch
@@ -0,0 +1,220 @@
+From 20fca52da739ebefa47e35f6b338bb99a0da3cfe Mon Sep 17 00:00:00 2001
+From: Cristian Adam <cristian.adam@qt.io>
+Date: Tue, 6 Sep 2022 16:30:02 +0200
+Subject: [PATCH] Build fixes for LLVM/Clang 15.0.0
+
+Change-Id: Icc39a0b1acffb5a6a4798b1259d8ad4e7dd47bc5
+---
+ CMakeLists.txt | 6 ++++++
+ src/PreProcessorVisitor.cpp | 2 +-
+ src/PreProcessorVisitor.h | 2 +-
+ src/SourceCompatibilityHelpers.h | 15 +++++++++++++++
+ src/Utils.cpp | 3 ++-
+ src/checkbase.cpp | 4 ++--
+ src/checkbase.h | 4 ++--
+ src/checks/manuallevel/qt6-fwd-fixes.cpp | 2 +-
+ src/checks/manuallevel/qt6-fwd-fixes.h | 2 +-
+ src/checks/manuallevel/qt6-header-fixes.cpp | 2 +-
+ src/checks/manuallevel/qt6-header-fixes.h | 2 +-
+ 11 files changed, 33 insertions(+), 11 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 3c780b0d..100135af 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -114,6 +114,10 @@ else()
+ set(clang_tooling_refactoring_lib clangToolingRefactor)
+ endif()
+
++if (${LLVM_VERSION} VERSION_GREATER_EQUAL "15.0.0")
++ set(clang_support_lib clangSupport)
++endif()
++
+ macro(link_to_llvm name is_standalone)
+ if (CLAZY_LINK_CLANG_DYLIB)
+ target_link_libraries(${name} clang-cpp)
+@@ -131,6 +135,7 @@ macro(link_to_llvm name is_standalone)
+
+ target_link_libraries(${name} ${clang_lib})
+ endforeach()
++ target_link_libraries(${name} ${clang_support_lib})
+ target_link_libraries(${name} clangTooling)
+ target_link_libraries(${name} clangToolingCore)
+ target_link_libraries(${name} ${clang_tooling_refactoring_lib})
+@@ -302,6 +307,7 @@ else()
+ clangFrontendTool
+ clangRewrite
+ clangSerialization
++ ${clang_support_lib}
+ clangTooling
+ clangStaticAnalyzerCheckers
+ clangStaticAnalyzerCore
+diff --git a/src/PreProcessorVisitor.cpp b/src/PreProcessorVisitor.cpp
+index 5e63a131..5fdfe5f3 100644
+--- a/src/PreProcessorVisitor.cpp
++++ b/src/PreProcessorVisitor.cpp
+@@ -185,7 +185,7 @@ void PreProcessorVisitor::MacroExpands(const Token &MacroNameTok, const MacroDef
+
+ void PreProcessorVisitor::InclusionDirective (clang::SourceLocation, const clang::Token &,
+ clang::StringRef FileName, bool IsAngled, clang::CharSourceRange FilenameRange,
+- const clang::FileEntry *, clang::StringRef, clang::StringRef,
++ clazy::OptionalFileEntryRef, clang::StringRef, clang::StringRef,
+ const clang::Module *, clang::SrcMgr::CharacteristicKind)
+ {
+ if (m_ci.getPreprocessor().isInPrimaryFile() && !clazy::endsWith(FileName.str(), ".moc")) {
+diff --git a/src/PreProcessorVisitor.h b/src/PreProcessorVisitor.h
+index dc80ff36..1bb17a5e 100644
+--- a/src/PreProcessorVisitor.h
++++ b/src/PreProcessorVisitor.h
+@@ -71,7 +71,7 @@ class PreProcessorVisitor
+ clang::SourceRange range, const clang::MacroArgs *) override;
+ void InclusionDirective (clang::SourceLocation HashLoc, const clang::Token &IncludeTok,
+ clang::StringRef FileName, bool IsAngled, clang::CharSourceRange FilenameRange,
+- const clang::FileEntry *File, clang::StringRef SearchPath, clang::StringRef RelativePath,
++ clazy::OptionalFileEntryRef File, clang::StringRef SearchPath, clang::StringRef RelativePath,
+ const clang::Module *Imported, clang::SrcMgr::CharacteristicKind FileType) override;
+ private:
+ std::string getTokenSpelling(const clang::MacroDefinition &) const;
+diff --git a/src/SourceCompatibilityHelpers.h b/src/SourceCompatibilityHelpers.h
+index 4ea923a2..c1a23a4b 100644
+--- a/src/SourceCompatibilityHelpers.h
++++ b/src/SourceCompatibilityHelpers.h
+@@ -144,6 +144,21 @@ inline bool contains_lower(clang::StringRef haystack, clang::StringRef needle)
+ #endif
+ }
+
++#if LLVM_VERSION_MAJOR >= 15
++using OptionalFileEntryRef = clang::Optional<clang::FileEntryRef>;
++#else
++using OptionalFileEntryRef = const clang::FileEntry*;
++#endif
++
++inline bool isAscii(clang::StringLiteral *lt)
++{
++#if LLVM_VERSION_MAJOR >= 15
++ return lt->isOrdinary();
++#else
++ return lt->isAscii();
++#endif
++}
++
+ }
+
+ #endif
+diff --git a/src/Utils.cpp b/src/Utils.cpp
+index 3cdf7876..70e0577c 100644
+--- a/src/Utils.cpp
++++ b/src/Utils.cpp
+@@ -25,6 +25,7 @@
+ #include "Utils.h"
+ #include "StringUtils.h"
+ #include "HierarchyUtils.h"
++#include "SourceCompatibilityHelpers.h"
+ #include "StmtBodyRange.h"
+ #include "clazy_stl.h"
+
+@@ -670,7 +671,7 @@ const CXXRecordDecl *Utils::recordForMemberCall(CXXMemberCallExpr *call, string
+ bool Utils::isAscii(StringLiteral *lt)
+ {
+ // 'é' for some reason has isAscii() == true, so also call containsNonAsciiOrNull
+- return lt && lt->isAscii() && !lt->containsNonAsciiOrNull();
++ return lt && clazy::isAscii(lt) && !lt->containsNonAsciiOrNull();
+ }
+
+ bool Utils::isInDerefExpression(Stmt *s, ParentMap *map)
+diff --git a/src/checkbase.cpp b/src/checkbase.cpp
+index f5936dfd..dcc7c999 100644
+--- a/src/checkbase.cpp
++++ b/src/checkbase.cpp
+@@ -105,7 +105,7 @@ void ClazyPreprocessorCallbacks::MacroDefined(const Token ¯oNameTok, const M
+ }
+
+ void ClazyPreprocessorCallbacks::InclusionDirective(clang::SourceLocation HashLoc, const clang::Token &IncludeTok, clang::StringRef FileName, bool IsAngled,
+- clang::CharSourceRange FilenameRange, const clang::FileEntry *File, clang::StringRef SearchPath,
++ clang::CharSourceRange FilenameRange, clazy::OptionalFileEntryRef File, clang::StringRef SearchPath,
+ clang::StringRef RelativePath, const clang::Module *Imported, clang::SrcMgr::CharacteristicKind FileType)
+ {
+ check->VisitInclusionDirective(HashLoc, IncludeTok, FileName, IsAngled, FilenameRange, File, SearchPath, RelativePath, Imported, FileType);
+@@ -182,7 +182,7 @@ void CheckBase::VisitEndif(SourceLocation, SourceLocation)
+ }
+
+ void CheckBase::VisitInclusionDirective(clang::SourceLocation , const clang::Token &, clang::StringRef , bool ,
+- clang::CharSourceRange , const clang::FileEntry *, clang::StringRef ,
++ clang::CharSourceRange , clazy::OptionalFileEntryRef, clang::StringRef ,
+ clang::StringRef , const clang::Module *, clang::SrcMgr::CharacteristicKind )
+ {
+ // Overriden in derived classes
+diff --git a/src/checkbase.h b/src/checkbase.h
+index c5db2daf..02f6a6bf 100644
+--- a/src/checkbase.h
++++ b/src/checkbase.h
+@@ -91,7 +91,7 @@ class ClazyPreprocessorCallbacks
+ void Else(clang::SourceLocation loc, clang::SourceLocation ifLoc) override;
+ void Endif(clang::SourceLocation loc, clang::SourceLocation ifLoc) override;
+ void InclusionDirective(clang::SourceLocation HashLoc, const clang::Token &IncludeTok, clang::StringRef FileName, bool IsAngled,
+- clang::CharSourceRange FilenameRange, const clang::FileEntry *File, clang::StringRef SearchPath,
++ clang::CharSourceRange FilenameRange, clazy::OptionalFileEntryRef File, clang::StringRef SearchPath,
+ clang::StringRef RelativePath, const clang::Module *Imported, clang::SrcMgr::CharacteristicKind FileType) override;
+ private:
+ CheckBase *const check;
+@@ -151,7 +151,7 @@ class CheckBase
+ virtual void VisitElse(clang::SourceLocation loc, clang::SourceLocation ifLoc);
+ virtual void VisitEndif(clang::SourceLocation loc, clang::SourceLocation ifLoc);
+ virtual void VisitInclusionDirective(clang::SourceLocation HashLoc, const clang::Token &IncludeTok, clang::StringRef FileName, bool IsAngled,
+- clang::CharSourceRange FilenameRange, const clang::FileEntry *File, clang::StringRef SearchPath,
++ clang::CharSourceRange FilenameRange, clazy::OptionalFileEntryRef File, clang::StringRef SearchPath,
+ clang::StringRef RelativePath, const clang::Module *Imported, clang::SrcMgr::CharacteristicKind FileType);
+
+ void enablePreProcessorCallbacks();
+diff --git a/src/checks/manuallevel/qt6-fwd-fixes.cpp b/src/checks/manuallevel/qt6-fwd-fixes.cpp
+index 83bf81ee..c87d9ca0 100644
+--- a/src/checks/manuallevel/qt6-fwd-fixes.cpp
++++ b/src/checks/manuallevel/qt6-fwd-fixes.cpp
+@@ -166,7 +166,7 @@ void Qt6FwdFixes::VisitDecl(clang::Decl *decl)
+ }
+
+ void Qt6FwdFixes::VisitInclusionDirective(clang::SourceLocation HashLoc, const clang::Token &IncludeTok, clang::StringRef FileName, bool IsAngled,
+- clang::CharSourceRange FilenameRange, const clang::FileEntry *File, clang::StringRef SearchPath,
++ clang::CharSourceRange FilenameRange, clazy::OptionalFileEntryRef File, clang::StringRef SearchPath,
+ clang::StringRef RelativePath, const clang::Module *Imported, clang::SrcMgr::CharacteristicKind FileType)
+ {
+ auto current_file = m_sm.getFilename(HashLoc);
+diff --git a/src/checks/manuallevel/qt6-fwd-fixes.h b/src/checks/manuallevel/qt6-fwd-fixes.h
+index 37b59d95..bb928ba6 100644
+--- a/src/checks/manuallevel/qt6-fwd-fixes.h
++++ b/src/checks/manuallevel/qt6-fwd-fixes.h
+@@ -47,7 +47,7 @@ class Qt6FwdFixes
+ explicit Qt6FwdFixes(const std::string &name, ClazyContext *context);
+ void VisitDecl(clang::Decl *decl) override;
+ void VisitInclusionDirective(clang::SourceLocation HashLoc, const clang::Token &IncludeTok, clang::StringRef FileName, bool IsAngled,
+- clang::CharSourceRange FilenameRange, const clang::FileEntry *File, clang::StringRef SearchPath,
++ clang::CharSourceRange FilenameRange, clazy::OptionalFileEntryRef File, clang::StringRef SearchPath,
+ clang::StringRef RelativePath, const clang::Module *Imported, clang::SrcMgr::CharacteristicKind FileType) override;
+ bool m_including_qcontainerfwd = false;
+ std::set<clang::StringRef> m_qcontainerfwd_included_in_files;
+diff --git a/src/checks/manuallevel/qt6-header-fixes.cpp b/src/checks/manuallevel/qt6-header-fixes.cpp
+index d458b77c..aaa28093 100644
+--- a/src/checks/manuallevel/qt6-header-fixes.cpp
++++ b/src/checks/manuallevel/qt6-header-fixes.cpp
+@@ -270,7 +270,7 @@ Qt6HeaderFixes::Qt6HeaderFixes(const std::string &name, ClazyContext *context)
+ }
+
+ void Qt6HeaderFixes::VisitInclusionDirective(clang::SourceLocation HashLoc, const clang::Token &IncludeTok, clang::StringRef FileName, bool IsAngled,
+- clang::CharSourceRange FilenameRange, const clang::FileEntry *File, clang::StringRef SearchPath,
++ clang::CharSourceRange FilenameRange, clazy::OptionalFileEntryRef File, clang::StringRef SearchPath,
+ clang::StringRef RelativePath, const clang::Module *Imported, clang::SrcMgr::CharacteristicKind FileType)
+ {
+ if (shouldIgnoreFile(HashLoc))
+diff --git a/src/checks/manuallevel/qt6-header-fixes.h b/src/checks/manuallevel/qt6-header-fixes.h
+index ae09f7ad..8ffbb100 100644
+--- a/src/checks/manuallevel/qt6-header-fixes.h
++++ b/src/checks/manuallevel/qt6-header-fixes.h
+@@ -46,7 +46,7 @@ class Qt6HeaderFixes
+ public:
+ explicit Qt6HeaderFixes(const std::string &name, ClazyContext *context);
+ void VisitInclusionDirective(clang::SourceLocation HashLoc, const clang::Token &IncludeTok, clang::StringRef FileName, bool IsAngled,
+- clang::CharSourceRange FilenameRange, const clang::FileEntry *File, clang::StringRef SearchPath,
++ clang::CharSourceRange FilenameRange, clazy::OptionalFileEntryRef File, clang::StringRef SearchPath,
+ clang::StringRef RelativePath, const clang::Module *Imported, clang::SrcMgr::CharacteristicKind FileType) override;
+
+ };
diff --git a/srcpkgs/clazy/template b/srcpkgs/clazy/template
index 11f3bab55aef..f81de08ab836 100644
--- a/srcpkgs/clazy/template
+++ b/srcpkgs/clazy/template
@@ -1,7 +1,7 @@
# Template file for 'clazy'
pkgname=clazy
version=1.11
-revision=1
+revision=2
build_style=cmake
build_helper=qemu
hostmakedepends="llvm"
From 508ff6858e94d4e958e1014514573af5a6ee180c Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 16 Feb 2023 23:42:00 +0100
Subject: [PATCH 21/24] ldc: update to 1.31.0
---
common/shlibs | 8 +--
...4260a848c8ebad5582e27ac1e09627cdfb17.patch | 57 -------------------
srcpkgs/ldc/template | 6 +-
3 files changed, 7 insertions(+), 64 deletions(-)
delete mode 100644 srcpkgs/ldc/patches/54544260a848c8ebad5582e27ac1e09627cdfb17.patch
diff --git a/common/shlibs b/common/shlibs
index ce67bf777dab..fe2468e967c2 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -2187,10 +2187,10 @@ libFcitx5Config.so.6 libfcitx5-5.0.5_1
libFcitx5GClient.so.2 fcitx5-gtk-5.0.4_1
libFcitx5Qt5DBusAddons.so.1 fcitx5-qt5-5.0.3_1
libFcitx5Qt5WidgetsAddons.so.2 fcitx5-qt5-5.0.3_1
-libdruntime-ldc-debug-shared.so.100 ldc-runtime-1.30.0_1
-libdruntime-ldc-shared.so.100 ldc-runtime-1.30.0_1
-libphobos2-ldc-shared.so.100 ldc-runtime-1.30.0_1
-libphobos2-ldc-debug-shared.so.100 ldc-runtime-1.30.0_1
+libdruntime-ldc-debug-shared.so.101 ldc-runtime-1.31.0_1
+libdruntime-ldc-shared.so.101 ldc-runtime-1.31.0_1
+libphobos2-ldc-shared.so.101 ldc-runtime-1.31.0_1
+libphobos2-ldc-debug-shared.so.101 ldc-runtime-1.31.0_1
libmarblewidget-qt5.so.28 marble5-17.12.2_1
libastro.so.2 marble5-17.12.2_1
libparrot.so.6.9.0 parrot-6.9.0_1
diff --git a/srcpkgs/ldc/patches/54544260a848c8ebad5582e27ac1e09627cdfb17.patch b/srcpkgs/ldc/patches/54544260a848c8ebad5582e27ac1e09627cdfb17.patch
deleted file mode 100644
index 79694372bfaa..000000000000
--- a/srcpkgs/ldc/patches/54544260a848c8ebad5582e27ac1e09627cdfb17.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-From 54544260a848c8ebad5582e27ac1e09627cdfb17 Mon Sep 17 00:00:00 2001
-From: Razvan Nitu <razvan.nitu1305@gmail.com>
-Date: Wed, 24 Aug 2022 13:54:15 +0300
-Subject: [PATCH] Port the fix for issue 23157 (#14378)
-
----
- druntime/src/core/sys/posix/sys/socket.d | 36 ++++++++++++++++++++++--
- 1 file changed, 33 insertions(+), 3 deletions(-)
-
-diff --git a/druntime/src/core/sys/posix/sys/socket.d b/druntime/src/core/sys/posix/sys/socket.d
-index 3a7b753adff..fc5dc5d1684 100644
---- a/runtime/druntime/src/core/sys/posix/sys/socket.d
-+++ b/runtime/druntime/src/core/sys/posix/sys/socket.d
-@@ -188,10 +188,40 @@ version (linux)
-
- extern (D) inout(ubyte)* CMSG_DATA( return scope inout(cmsghdr)* cmsg ) pure nothrow @nogc { return cast(ubyte*)( cmsg + 1 ); }
-
-- private inout(cmsghdr)* __cmsg_nxthdr(inout(msghdr)*, inout(cmsghdr)*) pure nothrow @nogc;
-- extern (D) inout(cmsghdr)* CMSG_NXTHDR(inout(msghdr)* msg, inout(cmsghdr)* cmsg) pure nothrow @nogc
-+ version (CRuntime_Musl)
- {
-- return __cmsg_nxthdr(msg, cmsg);
-+ extern (D)
-+ {
-+ private size_t __CMSG_LEN(inout(cmsghdr)* cmsg) pure nothrow @nogc
-+ {
-+ return (cmsg.cmsg_len + size_t.sizeof -1) & cast(size_t)(~(size_t.sizeof - 1));
-+ }
-+
-+ private inout(cmsghdr)* __CMSG_NEXT(inout(cmsghdr)* cmsg) pure nothrow @nogc
-+ {
-+ return cmsg + __CMSG_LEN(cmsg);
-+ }
-+
-+ private inout(msghdr)* __MHDR_END(inout(msghdr)* mhdr) pure nothrow @nogc
-+ {
-+ return cast(inout(msghdr)*)(mhdr.msg_control + mhdr.msg_controllen);
-+ }
-+
-+ inout(cmsghdr)* CMSG_NXTHDR(inout(msghdr)* msg, inout(cmsghdr)* cmsg) pure nothrow @nogc
-+ {
-+ return cmsg.cmsg_len < cmsghdr.sizeof ||
-+ __CMSG_LEN(cmsg) + cmsghdr.sizeof >= __MHDR_END(msg) - cast(inout(msghdr)*)(cmsg)
-+ ? cast(inout(cmsghdr)*) null : cast(inout(cmsghdr)*) __CMSG_NEXT(cmsg);
-+ }
-+ }
-+ }
-+ else
-+ {
-+ private inout(cmsghdr)* __cmsg_nxthdr(inout(msghdr)*, inout(cmsghdr)*) pure nothrow @nogc;
-+ extern (D) inout(cmsghdr)* CMSG_NXTHDR(inout(msghdr)* msg, inout(cmsghdr)* cmsg) pure nothrow @nogc
-+ {
-+ return __cmsg_nxthdr(msg, cmsg);
-+ }
- }
-
- extern (D) inout(cmsghdr)* CMSG_FIRSTHDR( inout(msghdr)* mhdr ) pure nothrow @nogc
diff --git a/srcpkgs/ldc/template b/srcpkgs/ldc/template
index 99d22682ce7a..f6d8b7ffbe98 100644
--- a/srcpkgs/ldc/template
+++ b/srcpkgs/ldc/template
@@ -1,6 +1,6 @@
# Template file for 'ldc'
pkgname=ldc
-version=1.30.0
+version=1.31.0
revision=1
build_style=cmake
configure_args="
@@ -11,7 +11,7 @@ configure_args="
-DCOMPILE_D_MODULES_SEPARATELY=ON
-DC_SYSTEM_LIBS='unwind;m;pthread;rt;dl'"
conf_files="/etc/ldc2.conf"
-hostmakedepends="dmd llvm12 perl pkg-config"
+hostmakedepends="dmd llvm15 perl pkg-config"
makedepends="libcurl-devel libffi-devel ncurses-devel zlib-devel
llvm-libunwind-devel"
depends="ldc-runtime llvm-libunwind-devel"
@@ -22,7 +22,7 @@ license="BSD-3-Clause, BSL-1.0"
homepage="https://wiki.dlang.org/LDC"
changelog="https://raw.githubusercontent.com/ldc-developers/ldc/master/CHANGELOG.md"
distfiles="https://github.com/ldc-developers/ldc/releases/download/v${version}/ldc-${version}-src.tar.gz"
-checksum=fdbb376f08242d917922a6a22a773980217fafa310046fc5d6459490af23dacd
+checksum=f1c8ece9e1e35806c3441bf24fbe666cddd8eef375592c19cd8fee4701cd5458
nopie=yes
nocross="dmd compilation fails on cross"
# tests timeout on musl; also require unpackaged python3-lit
From 4d1fb9acf6189ba68941283a43ba4810c1708aca Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 16 Feb 2023 23:42:46 +0100
Subject: [PATCH 22/24] gtkd: rebuild for ldc 1.31
---
srcpkgs/gtkd/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/gtkd/template b/srcpkgs/gtkd/template
index e64a1f54fb96..6a75d69e19ce 100644
--- a/srcpkgs/gtkd/template
+++ b/srcpkgs/gtkd/template
@@ -1,7 +1,7 @@
# Template file for 'gtkd'
pkgname=gtkd
version=3.9.0
-revision=9
+revision=10
build_style=gnu-makefile
make_build_args="LDFLAGS='-linker=bfd' DC=ldc2"
make_build_target="shared-libs shared-gstreamer shared-vte shared-peas shared-gtkdgl"
From 22ba792b7152f6f94fdc5edb01d57b766c8b151d Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Thu, 16 Feb 2023 23:43:29 +0100
Subject: [PATCH 23/24] onedrive: rebuild for ldc 1.31
---
srcpkgs/onedrive/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/onedrive/template b/srcpkgs/onedrive/template
index 28163f334552..63e4f43a7fbd 100644
--- a/srcpkgs/onedrive/template
+++ b/srcpkgs/onedrive/template
@@ -1,7 +1,7 @@
# Template file for 'onedrive'
pkgname=onedrive
version=2.4.13
-revision=4
+revision=5
build_style=gnu-configure
configure_args="DC=ldc2"
hostmakedepends="ldc pkg-config"
From 5909ea0cd914afd89583a38bbb4b8ea80521a898 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Sat, 18 Feb 2023 20:33:19 +0100
Subject: [PATCH 24/24] qtcreator: rebuild for llvm15
---
srcpkgs/qtcreator/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/qtcreator/template b/srcpkgs/qtcreator/template
index e42840bf6fe4..b1dffd304198 100644
--- a/srcpkgs/qtcreator/template
+++ b/srcpkgs/qtcreator/template
@@ -1,7 +1,7 @@
# Template file for 'qtcreator'
pkgname=qtcreator
version=9.0.1
-revision=1
+revision=2
build_style=cmake
configure_args="$(vopt_bool qbs BUILD_QBS) -DWITH_DOCS=ON -DBUILD_WITH_PCH=OFF
-DQT_HOST_PATH=/usr/ -DQT_HOST_PATH_CMAKE_DIR=/usr/lib64/cmake/Qt6"
^ permalink raw reply [flat|nested] 96+ messages in thread
* Re: [WIP] LLVM 15
2022-11-28 15:30 [PR PATCH] [WIP] LLVM 15 tranzystorek-io
` (70 preceding siblings ...)
2023-02-18 19:34 ` tranzystorek-io
@ 2023-02-19 22:34 ` simvux
2023-02-20 9:59 ` cmueller-tp
` (22 subsequent siblings)
94 siblings, 0 replies; 96+ messages in thread
From: simvux @ 2023-02-19 22:34 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 227 bytes --]
New comment by simvux on void-packages repository
https://github.com/void-linux/void-packages/pull/40821#issuecomment-1436116067
Comment:
Thank you for all your work on this <3
Looking forward to seeing it in my `xi -Su`
^ permalink raw reply [flat|nested] 96+ messages in thread
* Re: [WIP] LLVM 15
2022-11-28 15:30 [PR PATCH] [WIP] LLVM 15 tranzystorek-io
` (71 preceding siblings ...)
2023-02-19 22:34 ` simvux
@ 2023-02-20 9:59 ` cmueller-tp
2023-02-22 12:35 ` [PR PATCH] [Updated] " tranzystorek-io
` (21 subsequent siblings)
94 siblings, 0 replies; 96+ messages in thread
From: cmueller-tp @ 2023-02-20 9:59 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 248 bytes --]
New comment by cmueller-tp on void-packages repository
https://github.com/void-linux/void-packages/pull/40821#issuecomment-1436664531
Comment:
Will this be abandoned again once they tag the 16.0 as stable? They've already tagged RC2 2 weeks ago.
^ permalink raw reply [flat|nested] 96+ messages in thread
* Re: [PR PATCH] [Updated] [WIP] LLVM 15
2022-11-28 15:30 [PR PATCH] [WIP] LLVM 15 tranzystorek-io
` (72 preceding siblings ...)
2023-02-20 9:59 ` cmueller-tp
@ 2023-02-22 12:35 ` tranzystorek-io
2023-02-22 14:35 ` tranzystorek-io
` (20 subsequent siblings)
94 siblings, 0 replies; 96+ messages in thread
From: tranzystorek-io @ 2023-02-22 12:35 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 1319 bytes --]
There is an updated pull request by tranzystorek-io against master on the void-packages repository
https://github.com/tranzystorek-io/void-packages llvm15
https://github.com/void-linux/void-packages/pull/40821
[WIP] LLVM 15
[ci skip]
TODO:
- [x] ~~Adjust patches marked as `.patch.skip`~~ dropped support for ppc
- [x] Make libomp a shlib (change so file name and install a symlink)
- [x] Avoid creating triplet dirs under /usr/
TODO LLVM rdeps:
- [x] clazy ~~(breaking changes in clang API)~~ - patched
- [x] beignet (https://github.com/void-linux/void-packages/pull/41529)
- [ ] ispc (1.18.1 supports LLVM `<= 14`)
- [ ] ldc (1.30.0 supports LLVM `<= 14`) - builds in version 1.31
- [ ] tilix fails to build with ldc 1.31 (https://github.com/gnunn1/tilix/issues/2151)
- [x] ghdl (2.0.0 supports LLVM `<= 14`) - builds with llvm12
- [x] qt
- [x] qtcreator (#42290)
- [x] shiboken2 (tests failing with llvm15)
- [x] bpftrace (https://github.com/void-linux/void-packages/pull/39002)
- [x] libclc (tests fail with unresolved calls https://gist.githubusercontent.com/tranzystorek-io/a2aa8a0d8010af5299f7d1ff9f82c22b/raw/6d316d99d6079990b73ae77d274dd120b9560589/LastTest.log) -> removed clspv
- [x] zig
A patch file from https://github.com/void-linux/void-packages/pull/40821.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-llvm15-40821.patch --]
[-- Type: text/x-diff, Size: 106593 bytes --]
From b6b4452247770b7754a887a7c4363632701369a0 Mon Sep 17 00:00:00 2001
From: Marcin Puc <tranzystorek.io@protonmail.com>
Date: Sun, 18 Dec 2022 00:36:59 +0100
Subject: [PATCH 01/25] New package: llvm15-15.0.7
---
common/shlibs | 3 +
srcpkgs/libllvm15 | 1 +
.../llvm15/files/llvm-Config-llvm-config.h | 9 +
...clang-001-fix-unwind-chain-inclusion.patch | 44 ++
.../patches/clang-002-add-musl-triples.patch | 115 +++++
.../clang-003-ppc64-dynamic-linker-path.patch | 13 +
.../patches/clang-004-ppc64-musl-elfv2.patch | 48 ++
.../compiler-rt-sanitizer-ppc64-musl.patch | 35 ++
srcpkgs/llvm15/patches/libcxx-musl.patch | 26 ++
srcpkgs/llvm15/patches/libcxx-ppc.patch | 22 +
.../llvm15/patches/libcxx-ssp-nonshared.patch | 11 +
srcpkgs/llvm15/patches/libcxxabi-dl.patch | 25 +
srcpkgs/llvm15/patches/libcxxabi-musl.patch | 37 ++
srcpkgs/llvm15/patches/libomp-soname.patch | 12 +
srcpkgs/llvm15/patches/lldb-musl.patch | 40 ++
srcpkgs/llvm15/patches/llvm-001-musl.patch | 57 +++
.../patches/llvm-002-musl-ppc64-elfv2.patch | 30 ++
.../patches/llvm-003-ppc-secureplt.patch | 11 +
.../patches/llvm-004-override-opt.patch | 18 +
.../llvm15/patches/llvm-005-ppc-bigpic.patch | 36 ++
.../patches/llvm-006-aarch64-mf_exec.patch | 25 +
srcpkgs/llvm15/template | 442 ++++++++++++++++++
srcpkgs/llvm15/update | 3 +
23 files changed, 1063 insertions(+)
create mode 120000 srcpkgs/libllvm15
create mode 100644 srcpkgs/llvm15/files/llvm-Config-llvm-config.h
create mode 100644 srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch
create mode 100644 srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch
create mode 100644 srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch
create mode 100644 srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch
create mode 100644 srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch
create mode 100644 srcpkgs/llvm15/patches/libcxx-musl.patch
create mode 100644 srcpkgs/llvm15/patches/libcxx-ppc.patch
create mode 100644 srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch
create mode 100644 srcpkgs/llvm15/patches/libcxxabi-dl.patch
create mode 100644 srcpkgs/llvm15/patches/libcxxabi-musl.patch
create mode 100644 srcpkgs/llvm15/patches/libomp-soname.patch
create mode 100644 srcpkgs/llvm15/patches/lldb-musl.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-001-musl.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-004-override-opt.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch
create mode 100644 srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch
create mode 100644 srcpkgs/llvm15/template
create mode 100644 srcpkgs/llvm15/update
diff --git a/common/shlibs b/common/shlibs
index 2028226606bc..f8da02805ce0 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -991,6 +991,9 @@ libclang-cpp.so.12 libclang-cpp-12.0.0_1
libLLVM-11.so libllvm11-11.0.0_1
libLLVM-12.so libllvm12-12.0.0_1
libLLVMSPIRVLib.so.12 SPIRV-LLVM-Translator-12.0.0_1
+libLLVM-15.so libllvm15-15.0.7_1
+libomp.so.5 libomp-15.0.7_1
+libomptarget.so.15 libomp-15.0.7_1
libisofs.so.6 libisofs-0.6.24_1
libmpack.so.0 libmpack-1.0.5_1
libGeoIP.so.1 libgeoip-1.4.8_1
diff --git a/srcpkgs/libllvm15 b/srcpkgs/libllvm15
new file mode 120000
index 000000000000..ad57a969b9f9
--- /dev/null
+++ b/srcpkgs/libllvm15
@@ -0,0 +1 @@
+llvm15
\ No newline at end of file
diff --git a/srcpkgs/llvm15/files/llvm-Config-llvm-config.h b/srcpkgs/llvm15/files/llvm-Config-llvm-config.h
new file mode 100644
index 000000000000..2fa08c9be696
--- /dev/null
+++ b/srcpkgs/llvm15/files/llvm-Config-llvm-config.h
@@ -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
diff --git a/srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch b/srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch
new file mode 100644
index 000000000000..e4eaa7783e7a
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-001-fix-unwind-chain-inclusion.patch
@@ -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
diff --git a/srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch b/srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch
new file mode 100644
index 000000000000..0ef4c7e75d6b
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-002-add-musl-triples.patch
@@ -0,0 +1,115 @@
+--- a/clang/lib/Driver/ToolChains/Gnu.cpp
++++ b/clang/lib/Driver/ToolChains/Gnu.cpp
+@@ -2086,7 +2086,8 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
+ static const char *const ARMHFTriples[] = {"arm-linux-gnueabihf",
+ "armv7hl-redhat-linux-gnueabi",
+ "armv6hl-suse-linux-gnueabi",
+- "armv7hl-suse-linux-gnueabi"};
++ "armv7hl-suse-linux-gnueabi",
++ "armv7l-linux-gnueabihf"};
+ static const char *const ARMebLibDirs[] = {"/lib"};
+ static const char *const ARMebTriples[] = {"armeb-linux-gnueabi",
+ "armeb-linux-androideabi"};
+@@ -2153,8 +2154,7 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
+ "powerpc64-suse-linux", "powerpc-montavista-linuxspe"};
+ static const char *const PPCLELibDirs[] = {"/lib32", "/lib"};
+ static const char *const PPCLETriples[] = {"powerpcle-linux-gnu",
+- "powerpcle-unknown-linux-gnu",
+- "powerpcle-linux-musl"};
++ "powerpcle-unknown-linux-gnu"};
+
+ static const char *const PPC64LibDirs[] = {"/lib64", "/lib"};
+ static const char *const PPC64Triples[] = {
+@@ -2235,6 +2235,92 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
+ return;
+ }
+
++ if (TargetTriple.isMusl()) {
++ static const char *const AArch64MuslTriples[] = {"aarch64-linux-musl"};
++ static const char *const ARMHFMuslTriples[] = {
++ "arm-linux-musleabihf", "armv7l-linux-musleabihf"
++ };
++ static const char *const ARMMuslTriples[] = {"arm-linux-musleabi"};
++ static const char *const X86_64MuslTriples[] = {"x86_64-linux-musl"};
++ static const char *const X86MuslTriples[] = {"i686-linux-musl"};
++ static const char *const MIPSMuslTriples[] = {
++ "mips-linux-musl", "mipsel-linux-musl",
++ "mipsel-linux-muslhf", "mips-linux-muslhf"
++ };
++ static const char *const PPCMuslTriples[] = {"powerpc-linux-musl"};
++ static const char *const PPCLEMuslTriples[] = {"powerpcle-linux-musl"};
++ static const char *const PPC64MuslTriples[] = {"powerpc64-linux-musl"};
++ static const char *const PPC64LEMuslTriples[] = {"powerpc64le-linux-musl"};
++ static const char *const RISCV64MuslTriples[] = {"riscv64-linux-musl"};
++
++ switch (TargetTriple.getArch()) {
++ case llvm::Triple::aarch64:
++ LibDirs.append(begin(AArch64LibDirs), end(AArch64LibDirs));
++ TripleAliases.append(begin(AArch64MuslTriples), end(AArch64MuslTriples));
++ BiarchLibDirs.append(begin(AArch64LibDirs), end(AArch64LibDirs));
++ BiarchTripleAliases.append(begin(AArch64MuslTriples), end(AArch64MuslTriples));
++ break;
++ case llvm::Triple::arm:
++ LibDirs.append(begin(ARMLibDirs), end(ARMLibDirs));
++ if (TargetTriple.getEnvironment() == llvm::Triple::MuslEABIHF) {
++ TripleAliases.append(begin(ARMHFMuslTriples), end(ARMHFMuslTriples));
++ } else {
++ TripleAliases.append(begin(ARMMuslTriples), end(ARMMuslTriples));
++ }
++ break;
++ case llvm::Triple::x86_64:
++ LibDirs.append(begin(X86_64LibDirs), end(X86_64LibDirs));
++ TripleAliases.append(begin(X86_64MuslTriples), end(X86_64MuslTriples));
++ BiarchLibDirs.append(begin(X86LibDirs), end(X86LibDirs));
++ BiarchTripleAliases.append(begin(X86MuslTriples), end(X86MuslTriples));
++ break;
++ case llvm::Triple::x86:
++ LibDirs.append(begin(X86LibDirs), end(X86LibDirs));
++ TripleAliases.append(begin(X86MuslTriples), end(X86MuslTriples));
++ BiarchLibDirs.append(begin(X86_64LibDirs), end(X86_64LibDirs));
++ BiarchTripleAliases.append(begin(X86_64MuslTriples), end(X86_64MuslTriples));
++ break;
++ case llvm::Triple::mips:
++ LibDirs.append(begin(MIPSLibDirs), end(MIPSLibDirs));
++ TripleAliases.append(begin(MIPSMuslTriples), end(MIPSMuslTriples));
++ break;
++ case llvm::Triple::ppc:
++ LibDirs.append(begin(PPCLibDirs), end(PPCLibDirs));
++ TripleAliases.append(begin(PPCMuslTriples), end(PPCMuslTriples));
++ BiarchLibDirs.append(begin(PPC64LibDirs), end(PPC64LibDirs));
++ BiarchTripleAliases.append(begin(PPC64MuslTriples), end(PPC64MuslTriples));
++ break;
++ case llvm::Triple::ppcle:
++ LibDirs.append(begin(PPCLELibDirs), end(PPCLELibDirs));
++ TripleAliases.append(begin(PPCLEMuslTriples), end(PPCLEMuslTriples));
++ BiarchLibDirs.append(begin(PPC64LELibDirs), end(PPC64LELibDirs));
++ BiarchTripleAliases.append(begin(PPC64LEMuslTriples), end(PPC64LEMuslTriples));
++ break;
++ case llvm::Triple::ppc64:
++ LibDirs.append(begin(PPC64LibDirs), end(PPC64LibDirs));
++ TripleAliases.append(begin(PPC64MuslTriples), end(PPC64MuslTriples));
++ BiarchLibDirs.append(begin(PPCLibDirs), end(PPCLibDirs));
++ BiarchTripleAliases.append(begin(PPCMuslTriples), end(PPCMuslTriples));
++ break;
++ case llvm::Triple::ppc64le:
++ LibDirs.append(begin(PPC64LELibDirs), end(PPC64LELibDirs));
++ TripleAliases.append(begin(PPC64LEMuslTriples), end(PPC64LEMuslTriples));
++ BiarchLibDirs.append(begin(PPCLELibDirs), end(PPCLELibDirs));
++ BiarchTripleAliases.append(begin(PPCLEMuslTriples), end(PPCLEMuslTriples));
++ break;
++ case llvm::Triple::riscv64:
++ LibDirs.append(begin(RISCV64LibDirs), end(RISCV64LibDirs));
++ TripleAliases.append(begin(RISCV64MuslTriples), end(RISCV64MuslTriples));
++ break;
++ default:
++ break;
++ }
++ TripleAliases.push_back(TargetTriple.str());
++ if (TargetTriple.str() != BiarchTriple.str())
++ BiarchTripleAliases.push_back(BiarchTriple.str());
++ return;
++ }
++
+ // Android targets should not use GNU/Linux tools or libraries.
+ if (TargetTriple.isAndroid()) {
+ static const char *const AArch64AndroidTriples[] = {
diff --git a/srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch b/srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch
new file mode 100644
index 000000000000..4ad6412d1e6c
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-003-ppc64-dynamic-linker-path.patch
@@ -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 =
diff --git a/srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch b/srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch
new file mode 100644
index 000000000000..21fc8003c5f1
--- /dev/null
+++ b/srcpkgs/llvm15/patches/clang-004-ppc64-musl-elfv2.patch
@@ -0,0 +1,48 @@
+--- a/clang/lib/Basic/Targets/PPC.h
++++ b/clang/lib/Basic/Targets/PPC.h
+@@ -415,11 +415,10 @@ public:
+ LongDoubleFormat = &llvm::APFloat::IEEEdouble();
+ } else if ((Triple.getArch() == llvm::Triple::ppc64le)) {
+ DataLayout = "e-m:e-i64:64-n32:64";
+- ABI = "elfv2";
+ } else {
+ DataLayout = "E-m:e-i64:64-n32:64";
+- ABI = "elfv1";
+ }
++ ABI = "elfv2";
+
+ if (Triple.isOSFreeBSD() || Triple.isOSOpenBSD() || Triple.isMusl()) {
+ LongDoubleWidth = LongDoubleAlign = 64;
+--- a/clang/lib/CodeGen/TargetInfo.cpp
++++ b/clang/lib/CodeGen/TargetInfo.cpp
+@@ -10927,9 +10927,9 @@ const TargetCodeGenInfo &CodeGenModule::getTargetCodeGenInfo() {
+ return SetCGInfo(new AIXTargetCodeGenInfo(Types, /*Is64Bit*/ true));
+
+ if (Triple.isOSBinFormatELF()) {
+- PPC64_SVR4_ABIInfo::ABIKind Kind = PPC64_SVR4_ABIInfo::ELFv1;
+- if (getTarget().getABI() == "elfv2")
+- Kind = PPC64_SVR4_ABIInfo::ELFv2;
++ PPC64_SVR4_ABIInfo::ABIKind Kind = PPC64_SVR4_ABIInfo::ELFv2;
++ if (getTarget().getABI() == "elfv1")
++ Kind = PPC64_SVR4_ABIInfo::ELFv1;
+ bool IsSoftFloat = CodeGenOpts.FloatABI == "soft";
+
+ return SetCGInfo(
+--- a/clang/lib/Driver/ToolChains/Clang.cpp
++++ b/clang/lib/Driver/ToolChains/Clang.cpp
+@@ -1920,14 +1920,7 @@ void Clang::AddPPCTargetArgs(const ArgList &Args,
+ const llvm::Triple &T = getToolChain().getTriple();
+ if (T.isOSBinFormatELF()) {
+ switch (getToolChain().getArch()) {
+- case llvm::Triple::ppc64: {
+- if ((T.isOSFreeBSD() && T.getOSMajorVersion() >= 13) ||
+- T.isOSOpenBSD() || T.isMusl())
+- ABIName = "elfv2";
+- else
+- ABIName = "elfv1";
+- break;
+- }
++ case llvm::Triple::ppc64:
+ case llvm::Triple::ppc64le:
+ ABIName = "elfv2";
+ break;
diff --git a/srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch b/srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch
new file mode 100644
index 000000000000..360cfc1ba7f1
--- /dev/null
+++ b/srcpkgs/llvm15/patches/compiler-rt-sanitizer-ppc64-musl.patch
@@ -0,0 +1,35 @@
+--- 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__) || SANITIZER_RISCV64
++ defined(__hexagon__) || defined(__powerpc__) || 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_ANDROID
++#if (defined(__aarch64__) || defined(__powerpc__) || SANITIZER_RISCV64) && !SANITIZER_ANDROID
+ // GLIBC 2.20+ sys/user does not include asm/ptrace.h
+ # include <asm/ptrace.h>
+ #endif
diff --git a/srcpkgs/llvm15/patches/libcxx-musl.patch b/srcpkgs/llvm15/patches/libcxx-musl.patch
new file mode 100644
index 000000000000..bbd31ffc2cb1
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxx-musl.patch
@@ -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,
+ typename remove_reference<decltype(errno)>::type __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
+ typename remove_reference<decltype(errno)>::type __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,
+ typename remove_reference<decltype(errno)>::type __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
+ typename remove_reference<decltype(errno)>::type __current_errno = errno;
+ if (__current_errno == 0)
+ errno = __save_errno;
diff --git a/srcpkgs/llvm15/patches/libcxx-ppc.patch b/srcpkgs/llvm15/patches/libcxx-ppc.patch
new file mode 100644
index 000000000000..7a92f8004e1c
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxx-ppc.patch
@@ -0,0 +1,22 @@
+This ensures `is_iec559` is defined correctly under all long double ABIs,
+including musl and its 64-bit long double. Also, `__ppc__` or `__ppc64__`
+is not defined on gcc.
+
+--- a/libcxx/include/limits
++++ b/libcxx/include/limits
+@@ -426,8 +426,14 @@ protected:
+ _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type signaling_NaN() _NOEXCEPT {return __builtin_nansl("");}
+ _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type denorm_min() _NOEXCEPT {return __LDBL_DENORM_MIN__;}
+
+-#if (defined(__ppc__) || defined(__ppc64__))
++#if defined(__powerpc__) || defined(__powerpc64__)
++#if (__LDBL_MAX_EXP__ > __DBL_MAX_EXP__) || (__LDBL_MANT_DIG__ == __DBL_MANT_DIG__)
++ /* IEEE 754 quadruple or double precision */
++ static _LIBCPP_CONSTEXPR const bool is_iec559 = true;
++#else
++ /* 128-bit IBM double-double */
+ static _LIBCPP_CONSTEXPR const bool is_iec559 = false;
++#endif
+ #else
+ static _LIBCPP_CONSTEXPR const bool is_iec559 = true;
+ #endif
diff --git a/srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch b/srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch
new file mode 100644
index 000000000000..70292beb2fcd
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxx-ssp-nonshared.patch
@@ -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()
diff --git a/srcpkgs/llvm15/patches/libcxxabi-dl.patch b/srcpkgs/llvm15/patches/libcxxabi-dl.patch
new file mode 100644
index 000000000000..3a15f9db8c98
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxxabi-dl.patch
@@ -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 @@
+ target_link_libraries(${target} PRIVATE m)
+ endif()
+
++ if (LIBCXX_HAS_C_LIB)
++ target_link_libraries(${target} PRIVATE dl)
++ endif()
++
+ if (LIBCXX_HAS_RT_LIB)
+ target_link_libraries(${target} PRIVATE rt)
+ endif()
diff --git a/srcpkgs/llvm15/patches/libcxxabi-musl.patch b/srcpkgs/llvm15/patches/libcxxabi-musl.patch
new file mode 100644
index 000000000000..55bf6f5aaa08
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libcxxabi-musl.patch
@@ -0,0 +1,37 @@
+diff --git a/libcxx/include/__support/musl/xlocale.h b/libcxx/include/__support/musl/xlocale.h
+index e674a41fa..f546119b9 100644
+--- a/libcxx/include/__support/musl/xlocale.h
++++ b/libcxx/include/__support/musl/xlocale.h
+@@ -24,27 +24,27 @@
+ extern "C" {
+ #endif
+
+-inline _LIBCPP_HIDE_FROM_ABI long long
++static inline long long
+ strtoll_l(const char *__nptr, char **__endptr, int __base, locale_t) {
+ return ::strtoll(__nptr, __endptr, __base);
+ }
+
+-inline _LIBCPP_HIDE_FROM_ABI unsigned long long
++static inline unsigned long long
+ strtoull_l(const char *__nptr, char **__endptr, int __base, locale_t) {
+ return ::strtoull(__nptr, __endptr, __base);
+ }
+
+-inline _LIBCPP_HIDE_FROM_ABI long long
++static inline long long
+ wcstoll_l(const wchar_t *__nptr, wchar_t **__endptr, int __base, locale_t) {
+ return ::wcstoll(__nptr, __endptr, __base);
+ }
+
+-inline _LIBCPP_HIDE_FROM_ABI unsigned long long
++static inline unsigned long long
+ wcstoull_l(const wchar_t *__nptr, wchar_t **__endptr, int __base, locale_t) {
+ return ::wcstoull(__nptr, __endptr, __base);
+ }
+
+-inline _LIBCPP_HIDE_FROM_ABI long double
++static inline long double
+ wcstold_l(const wchar_t *__nptr, wchar_t **__endptr, locale_t) {
+ return ::wcstold(__nptr, __endptr);
+ }
diff --git a/srcpkgs/llvm15/patches/libomp-soname.patch b/srcpkgs/llvm15/patches/libomp-soname.patch
new file mode 100644
index 000000000000..9a622cd9254c
--- /dev/null
+++ b/srcpkgs/llvm15/patches/libomp-soname.patch
@@ -0,0 +1,12 @@
+diff --git a/openmp/runtime/src/CMakeLists.txt b/openmp/runtime/src/CMakeLists.txt
+index df1ca9d90..9d2c3b7b9 100644
+--- a/openmp/runtime/src/CMakeLists.txt
++++ b/openmp/runtime/src/CMakeLists.txt
+@@ -150,6 +150,7 @@ libomp_get_libflags(LIBOMP_CONFIGURED_LIBFLAGS)
+ # Build libomp library. Add LLVMSupport dependency if building in-tree with libomptarget profiling enabled.
+ if(OPENMP_STANDALONE_BUILD OR (NOT OPENMP_ENABLE_LIBOMP_PROFILING))
+ add_library(omp ${LIBOMP_LIBRARY_KIND} ${LIBOMP_SOURCE_FILES})
++ set_target_properties(omp PROPERTIES VERSION ${LIBOMP_VERSION_MAJOR} SOVERSION ${LIBOMP_VERSION_MAJOR})
+ # Linking command will include libraries in LIBOMP_CONFIGURED_LIBFLAGS
+ target_link_libraries(omp ${LIBOMP_CONFIGURED_LIBFLAGS} ${LIBOMP_DL_LIBS})
+ else()
diff --git a/srcpkgs/llvm15/patches/lldb-musl.patch b/srcpkgs/llvm15/patches/lldb-musl.patch
new file mode 100644
index 000000000000..026c5e1e61ba
--- /dev/null
+++ b/srcpkgs/llvm15/patches/lldb-musl.patch
@@ -0,0 +1,40 @@
+--- a/lldb/source/Plugins/Process/Linux/Procfs.h
++++ b/lldb/source/Plugins/Process/Linux/Procfs.h
+@@ -10,6 +10,7 @@
+ // sys/procfs.h on Android/Linux for all supported architectures.
+
+ #include <sys/ptrace.h>
++#include <asm/ptrace.h>
+
+ #include "lldb/lldb-types.h"
+
+@@ -17,23 +18,13 @@
+
+ #include <vector>
+
+-#ifdef __ANDROID__
+-#if defined(__arm64__) || defined(__aarch64__)
+-typedef unsigned long elf_greg_t;
+-typedef elf_greg_t
+- elf_gregset_t[(sizeof(struct user_pt_regs) / sizeof(elf_greg_t))];
+-typedef struct user_fpsimd_state elf_fpregset_t;
+-#ifndef NT_FPREGSET
+-#define NT_FPREGSET NT_PRFPREG
+-#endif // NT_FPREGSET
+-#elif defined(__mips__)
+-#ifndef NT_FPREGSET
+-#define NT_FPREGSET NT_PRFPREG
+-#endif // NT_FPREGSET
+-#endif
+-#else // __ANDROID__
++#if !defined(__GLIBC__) && defined(__powerpc__)
++#define pt_regs musl_pt_regs
++#include <sys/procfs.h>
++#undef pt_regs
++#else
+ #include <sys/procfs.h>
+-#endif // __ANDROID__
++#endif
+
+ namespace lldb_private {
+ namespace process_linux {
diff --git a/srcpkgs/llvm15/patches/llvm-001-musl.patch b/srcpkgs/llvm15/patches/llvm-001-musl.patch
new file mode 100644
index 000000000000..f2a3f8d62813
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-001-musl.patch
@@ -0,0 +1,57 @@
+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;
+diff --git a/lib/Support/Unix/DynamicLibrary.inc b/lib/Support/Unix/DynamicLibrary.inc
+index a2a37996..2f86c470 100644
+--- a/llvm/lib/Support/Unix/DynamicLibrary.inc
++++ b/llvm/lib/Support/Unix/DynamicLibrary.inc
+@@ -102,7 +102,7 @@ static void *DoSearch(const char* SymbolName) {
+
+ // This macro returns the address of a well-known, explicit symbol
+ #define EXPLICIT_SYMBOL(SYM) \
+- if (!strcmp(SymbolName, #SYM)) return &SYM
++ if (!strcmp(SymbolName, #SYM)) return (void *)&SYM
+
+ // Under glibc we have a weird situation. The stderr/out/in symbols are both
+ // macros and global variables because of standards requirements. So, we
+diff --git a/utils/unittest/googletest/src/gtest.cc b/utils/unittest/googletest/src/gtest.cc
+index d882ab2e..f1fb12d0 100644
+--- a/llvm/utils/unittest/googletest/src/gtest.cc
++++ b/llvm/utils/unittest/googletest/src/gtest.cc
+@@ -128,6 +128,7 @@
+
+ #if GTEST_CAN_STREAM_RESULTS_
+ # include <arpa/inet.h> // NOLINT
++# include <sys/socket.h> // NOLINT
+ # include <netdb.h> // NOLINT
+ # include <sys/socket.h> // NOLINT
+ # include <sys/types.h> // NOLINT
diff --git a/srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch b/srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch
new file mode 100644
index 000000000000..0071d964bd37
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-002-musl-ppc64-elfv2.patch
@@ -0,0 +1,30 @@
+This patches LLVM to use ELFv2 on ppc64 unconditionally unless overridden. We
+need this because unlike most distros we use ELFv2 for both glibc and musl
+on big endian ppc64.
+
+diff --git a/lib/Target/PowerPC/PPCTargetMachine.cpp b/lib/Target/PowerPC/PPCTargetMachine.cpp
+index 0634833e..b7cbc2e7 100644
+--- a/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp
++++ b/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp
+@@ -222,9 +222,8 @@ static PPCTargetMachine::PPCABI computeTargetABI(const Triple &TT,
+
+ switch (TT.getArch()) {
+ case Triple::ppc64le:
+- return PPCTargetMachine::PPC_ABI_ELFv2;
+ case Triple::ppc64:
+- return PPCTargetMachine::PPC_ABI_ELFv1;
++ return PPCTargetMachine::PPC_ABI_ELFv2;
+ default:
+ return PPCTargetMachine::PPC_ABI_UNKNOWN;
+ }
+diff --git a/test/CodeGen/PowerPC/ppc64-elf-abi.ll b/test/CodeGen/PowerPC/ppc64-elf-abi.ll
+index 8b1cf6b5..296a2afa 100644
+--- a/llvm/test/CodeGen/PowerPC/ppc64-elf-abi.ll
++++ b/llvm/test/CodeGen/PowerPC/ppc64-elf-abi.ll
+@@ -1,4 +1,5 @@
+-; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv1
++; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv2
++; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-musl < %s | FileCheck %s -check-prefix=CHECK-ELFv2
+ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu -target-abi elfv1 < %s | FileCheck %s -check-prefix=CHECK-ELFv1
+ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu -target-abi elfv2 < %s | FileCheck %s -check-prefix=CHECK-ELFv2
+ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv2
diff --git a/srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch b/srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch
new file mode 100644
index 000000000000..b5d15974375d
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-003-ppc-secureplt.patch
@@ -0,0 +1,11 @@
+--- a/llvm/lib/Target/PowerPC/PPCSubtarget.cpp
++++ b/llvm/lib/Target/PowerPC/PPCSubtarget.cpp
+@@ -165,7 +165,7 @@ void PPCSubtarget::initSubtargetFeatures(StringRef CPU, StringRef FS) {
+
+ if ((TargetTriple.isOSFreeBSD() && TargetTriple.getOSMajorVersion() >= 13) ||
+ TargetTriple.isOSNetBSD() || TargetTriple.isOSOpenBSD() ||
+- TargetTriple.isMusl())
++ isTargetLinux())
+ SecurePlt = true;
+
+ if (HasSPE && IsPPC64)
diff --git a/srcpkgs/llvm15/patches/llvm-004-override-opt.patch b/srcpkgs/llvm15/patches/llvm-004-override-opt.patch
new file mode 100644
index 000000000000..51d0e4b31b32
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-004-override-opt.patch
@@ -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)
diff --git a/srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch b/srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch
new file mode 100644
index 000000000000..d332687b9d92
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-005-ppc-bigpic.patch
@@ -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);
diff --git a/srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch b/srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch
new file mode 100644
index 000000000000..a00abd216665
--- /dev/null
+++ b/srcpkgs/llvm15/patches/llvm-006-aarch64-mf_exec.patch
@@ -0,0 +1,25 @@
+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__) || defined (__ppc__) || \
+- defined(_POWER) || defined(_ARCH_PPC))
++ defined(_POWER) || defined(_ARCH_PPC) || (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
diff --git a/srcpkgs/llvm15/template b/srcpkgs/llvm15/template
new file mode 100644
index 000000000000..4d2777451e24
--- /dev/null
+++ b/srcpkgs/llvm15/template
@@ -0,0 +1,442 @@
+# Template file for 'llvm15'
+pkgname=llvm15
+version=15.0.7
+revision=1
+build_wrksrc=llvm
+build_style=cmake
+_ext_suffix=".cpython-${py3_ver/./}-linux-${XBPS_TARGET_LIBC/glibc/gnu}.so"
+configure_args="
+ -DCMAKE_BUILD_TYPE=Release -Wno-dev
+ -DENABLE_LINKER_BUILD_ID=YES
+ -DLLDB_USE_SYSTEM_SIX=YES
+ -DLIBCXX_CXX_ABI=libcxxabi
+ -DLIBCXX_ENABLE_STATIC_ABI_LIBRARY=YES
+ -DLIBCXXABI_USE_LLVM_UNWINDER=YES
+ -DLIBCXXABI_ENABLE_STATIC_UNWINDER=YES
+ -DLIBOMP_ENABLE_SHARED=YES
+ -DLIBOMP_INSTALL_ALIASES=NO
+ -DLLVM_INCLUDE_DOCS=YES
+ -DLLVM_BUILD_DOCS=YES
+ -DLLVM_ENABLE_SPHINX=YES
+ -DSPHINX_WARNINGS_AS_ERRORS=NO
+ -DLLVM_INSTALL_UTILS=YES
+ -DLLVM_BUILD_LLVM_DYLIB=YES
+ -DLLVM_LINK_LLVM_DYLIB=YES
+ -DLLVM_ENABLE_RTTI=YES
+ -DLLVM_ENABLE_FFI=YES
+ -DLLVM_BINUTILS_INCDIR=/usr/include
+ -DLLVM_ENABLE_PER_TARGET_RUNTIME_DIR=NO
+ -DLLDB_PYTHON_RELATIVE_PATH=lib/python${py3_ver}/site-packages
+ -DLLDB_PYTHON_EXE_RELATIVE_PATH=bin/python${py3_ver}
+ -DLLDB_PYTHON_EXT_SUFFIX=$_ext_suffix"
+hostmakedepends="perl python3 zlib-devel libffi-devel swig python3-Sphinx
+ python3-recommonmark python3-sphinx-automodapi"
+makedepends="python3-devel zlib-devel elfutils-devel libffi-devel libedit-devel
+ libxml2-devel binutils-devel libatomic-devel"
+depends="libllvm15>=${version}_${revision}"
+short_desc="Low Level Virtual Machine"
+maintainer="Orphaned <orphan@voidlinux.org>"
+license="Apache-2.0"
+homepage="https://www.llvm.org"
+distfiles="https://github.com/llvm/llvm-project/releases/download/llvmorg-${version}/llvm-project-${version}.src.tar.xz"
+checksum=8b5fcb24b4128cf04df1b0b9410ce8b1a729cb3c544e6da885d234280dedeac6
+lib32disabled=yes
+python_version=3
+
+if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
+ configure_args+=" -DLIBCXX_HAS_MUSL_LIBC=YES
+ -DCOMPILER_RT_BUILD_GWP_ASAN=OFF"
+fi
+
+# "operand out of range" assembler failures
+case "$XBPS_TARGET_MACHINE" in
+ ppc64*) ;;
+ ppc*) configure_args+=" -DCLANG_ENABLE_CLANGD=OFF" ;;
+esac
+
+_enabled_projects="clang;clang-tools-extra;compiler-rt;libcxx;libcxxabi;libunwind;lld"
+
+_lldb_enable=yes
+_libomp_enable=no
+
+case "$XBPS_TARGET_MACHINE" in
+ ppc64le*) ;;
+ ppc*|i686*|riscv64*) _lldb_enable=no ;;
+esac
+
+case "$XBPS_TARGET_MACHINE" in
+ x86_64*|aarch64*|ppc64*) _libomp_enable=yes;;
+esac
+
+subpackages="clang-tools-extra"
+
+# must go before clang
+if [ "$_libomp_enable" = "yes" ]; then
+ _enabled_projects+=";openmp"
+ subpackages+=" libomp libomp-devel"
+ # because of cmake nonsense referencing libomptarget.so.*
+ depends+=" libomp>=${version}_${revision}"
+ if [ "$CROSS_BUILD" ]; then
+ # Seems to require a full host llvm/clang build
+ configure_args+=" -DLIBOMPTARGET_BUILD_CUDA_PLUGIN=OFF"
+ configure_args+=" -DLIBOMPTARGET_BUILD_AMDGPU_PLUGIN=OFF"
+ fi
+fi
+
+subpackages+=" clang clang-analyzer libclang libclang-cpp
+ llvm-libunwind llvm-libunwind-devel libcxx libcxx-devel
+ libcxxabi libcxxabi-devel libllvm15"
+
+if [ "$_lldb_enable" = "yes" ]; then
+ # XXX fails to cross compile due to python
+ _enabled_projects+=";lldb"
+ subpackages+=" lldb lldb-devel"
+fi
+
+subpackages+=" lld lld-devel"
+
+configure_args+=" -DLLVM_ENABLE_PROJECTS=${_enabled_projects}"
+
+post_patch() {
+ if [ "$_lldb_enable" = "yes" ]; then
+ if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
+ vsed -i 's|__ptrace_request|int|g' \
+ ${wrksrc}/lldb/source/Plugins/Process/Linux/NativeProcessLinux.cpp
+ fi
+ # disable docs for lldb as they fail to generate
+ vsed -i '/add_subdirectory(docs)/d' \
+ ${wrksrc}/lldb/CMakeLists.txt
+ fi
+
+ # update config.guess for better platform detection
+ cp $XBPS_COMMONDIR/environment/configure/automake/config.guess \
+ ${wrksrc}/llvm/cmake
+
+ # fix linker failures on some archs
+ vsed -i 's,check_library_exists(gcc_s .*,set(LIBCXXABI_HAS_GCC_S_LIB ON),' \
+ ${wrksrc}/libcxxabi/cmake/config-ix.cmake
+ vsed -i 's,check_library_exists(gcc .*,set(LIBCXXABI_HAS_GCC_LIB ON),' \
+ ${wrksrc}/libcxxabi/cmake/config-ix.cmake
+
+ # need libssp_nonshared on some musl platforms (because of nodefaultlibs)
+ case "$XBPS_TARGET_MACHINE" in
+ ppc64*) ;;
+ ppc*-musl|i686-musl|mips*-musl)
+ vsed -i 's,^# Setup flags.$,add_library_flags(ssp_nonshared),' \
+ ${wrksrc}/libunwind/src/CMakeLists.txt
+ vsed -i 's,^# Setup flags.$,add_library_flags(ssp_nonshared),' \
+ ${wrksrc}/libcxxabi/src/CMakeLists.txt
+ vsed -i 's,#ssp,,' ${wrksrc}/libcxx/CMakeLists.txt
+ ;;
+ esac
+
+ case "$XBPS_TARGET_MACHINE" in
+ arm*-musl|i686-musl) # sanitizer code is broken since it duplicates some libc bits
+ vsed -i 's/set(COMPILER_RT_HAS_SANITIZER_COMMON TRUE)/set(COMPILER_RT_HAS_SANITIZER_COMMON FALSE)/' \
+ ${wrksrc}/compiler-rt/cmake/config-ix.cmake
+ ;;
+ esac
+}
+
+pre_configure() {
+ local triplet
+
+ # Vastly reduce size of debugging symbols:
+ CFLAGS=${CFLAGS/ -g/ -g1}
+ CXXFLAGS=${CXXFLAGS/ -g/ -g1}
+
+ # since gcc9, the build likes to blow up for ppc32 apparently because
+ # of clang being too large for a 24-bit relative call to the PLT, so
+ # optimize for size instead
+ case "$XBPS_TARGET_MACHINE" in
+ ppc64*) ;;
+ mips*-musl|ppc*) configure_args+=" -DVOID_CXX_OPT_FLAGS=-Os" ;;
+ esac
+
+ if [ "$CROSS_BUILD" ]; then
+ msg_normal "Building host tblgen\n"
+ mkdir -p build/HOST
+ cd build/HOST
+ CC="$BUILD_CC" CXX="$BUILD_CXX" CFLAGS="$BUILD_CFLAGS" \
+ CXXFLAGS="$BUILD_CXXFLAGS" LDFLAGS="$BUILD_LDFLAGS" \
+ cmake ../.. -DCMAKE_BUILD_TYPE=Release \
+ -DLLVM_ENABLE_PROJECTS=${_enabled_projects}
+ make ${makejobs} -C utils/TableGen
+ make ${makejobs} -C tools/clang/utils/TableGen
+ make ${makejobs} -C tools/clang/tools/extra/clang-tidy/misc/ConfusableTable
+ make ${makejobs} -C tools/clang/tools/extra/pseudo/gen
+ [ "$_lldb_enable" = "yes" ] && make ${makejobs} -C tools/lldb/utils/TableGen
+ configure_args+=" -DLLVM_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/llvm-tblgen"
+ configure_args+=" -DCLANG_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/clang-tblgen"
+ configure_args+=" -DCLANG_TIDY_CONFUSABLE_CHARS_GEN=${wrksrc}/llvm/build/HOST/bin/clang-tidy-confusable-chars-gen"
+ configure_args+=" -DCLANG_PSEUDO_GEN=${wrksrc}/llvm/build/HOST/bin/clang-pseudo-gen"
+ [ "$_lldb_enable" = "yes" ] && configure_args+=" -DLLDB_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/lldb-tblgen"
+ cd ../..
+ fi
+
+ case "$XBPS_TARGET_MACHINE" in
+ i686*) _arch="X86";;
+ x86_64*) _arch="X86";;
+ armv5*) _arch="Armv5te";;
+ armv6*) _arch="Armv6";;
+ armv7*) _arch="Armv7";;
+ aarch64*) _arch="AArch64";;
+ mips*) _arch="Mips";;
+ ppc*) _arch="PowerPC";;
+ riscv64*) _arch="RISCV64";;
+ esac
+
+ triplet=${XBPS_CROSS_TRIPLET:-$XBPS_TRIPLET}
+
+ configure_args+=" -DLLVM_TARGET_ARCH=${_arch}"
+ configure_args+=" -DLLVM_HOST_TRIPLE=${triplet}"
+ configure_args+=" -DLLVM_DEFAULT_TARGET_TRIPLE=${triplet}"
+}
+
+do_install() {
+ cd build
+ cmake -DCMAKE_INSTALL_PREFIX=${DESTDIR}/usr -P cmake_install.cmake
+
+ # Required for multilib.
+ if [ "$XBPS_TARGET_MACHINE" = "x86_64" ]; then
+ for _header in llvm-config; do
+ mv ${DESTDIR}/usr/include/llvm/Config/${_header}{,-64}.h
+ vinstall ${FILESDIR}/llvm-Config-${_header}.h 644 \
+ usr/include/llvm/Config ${_header}.h
+ done
+ fi
+
+ # Remove llvm-config-host in cross builds.
+ if [ "$CROSS_BUILD" ]; then
+ rm -f ${DESTDIR}/usr/bin/llvm-config-host
+ fi
+
+ # Install libcxxabi headers
+ vinstall ${wrksrc}/libcxxabi/include/__cxxabi_config.h 644 usr/include
+ vinstall ${wrksrc}/libcxxabi/include/cxxabi.h 644 usr/include
+
+ # Install libunwind headers
+ vinstall ${wrksrc}/libunwind/include/__libunwind_config.h 644 usr/include
+ vinstall ${wrksrc}/libunwind/include/libunwind.h 644 usr/include
+ vinstall ${wrksrc}/libunwind/include/unwind.h 644 usr/include
+ vinstall ${wrksrc}/libunwind/include/mach-o/compact_unwind_encoding.h \
+ 644 usr/include/mach-o
+}
+
+clang-analyzer_package() {
+ pycompile_dirs="usr/share/scan-view"
+ depends="clang-${version}_${revision} python3 perl"
+ short_desc+=" - A source code analysis framework"
+ homepage="https://clang-analyzer.llvm.org/"
+ pkg_install() {
+ vmove "usr/bin/scan-*"
+ vmove "usr/libexec/*analyzer"
+ vmove "usr/share/scan-*"
+ vmove usr/share/man/man1/scan-build.1
+ }
+}
+
+clang-tools-extra_package() {
+ lib32disabled=yes
+ depends="clang-${version}_${revision} python3"
+ short_desc+=" - Extra Clang tools"
+ homepage="https://clang.llvm.org/extra/"
+ pkg_install() {
+ vmove usr/bin/clang-apply-replacements
+ vmove usr/bin/clang-doc
+ vmove usr/bin/clang-include-fixer
+ vmove usr/bin/clang-query
+ vmove usr/bin/clang-rename
+ vmove usr/bin/clang-reorder-fields
+ vmove usr/bin/clang-tidy
+ vmove usr/bin/clangd
+ vmove usr/bin/diagtool
+ vmove usr/bin/find-all-symbols
+ vmove usr/bin/hmaptool
+ vmove usr/bin/modularize
+ vmove usr/bin/pp-trace
+ vmove usr/bin/sancov
+ vmove usr/include/clang-tidy
+ vmove "usr/lib/libclangApplyReplacements*"
+ vmove "usr/lib/libclangDoc*"
+ vmove "usr/lib/libclangIncludeFixer*"
+ vmove "usr/lib/libclangReorderFields*"
+ vmove "usr/lib/libclangQuery*"
+ vmove "usr/lib/libclangTidy*"
+ vmove "usr/share/clang/*include-fixer*"
+ vmove "usr/share/clang/*rename*"
+ vmove "usr/share/clang/*tidy*"
+ vmove usr/share/doc/LLVM/clang-tools
+ vmove usr/share/man/man1/diagtool.1
+ vmove usr/share/man/man1/extraclangtools.1
+ }
+}
+
+clang_package() {
+ lib32disabled=yes
+ depends="libstdc++-devel libgcc-devel binutils ${XBPS_TARGET_LIBC}-devel
+ libclang-${version}_${revision}"
+ short_desc+=" - C language family frontend"
+ homepage="https://clang.llvm.org/"
+ pkg_install() {
+ vmove "usr/bin/*clang*"
+ vmove usr/bin/c-index-test
+ vmove usr/include/clang
+ vmove usr/include/clang-c
+ vmove usr/lib/clang
+ vmove usr/lib/cmake/clang
+ vmove "usr/lib/libclang*.a"
+ vmove "usr/lib/libclang*.so"
+ vmove usr/share/clang
+ vmove usr/share/doc/LLVM/clang
+ vmove usr/share/man/man1/clang.1
+ }
+}
+
+libclang_package() {
+ short_desc+=" - C frontend runtime library"
+ pkg_install() {
+ vmove "usr/lib/libclang.so.*"
+ }
+}
+
+libclang-cpp_package() {
+ short_desc+=" - C frontend runtime library (C++ interface)"
+ pkg_install() {
+ vmove "usr/lib/libclang-cpp.so.*"
+ }
+}
+
+lld_package() {
+ lib32disabled=yes
+ short_desc+=" - linker"
+ homepage="https://lld.llvm.org"
+ pkg_install() {
+ vmove "usr/bin/ld.lld*"
+ vmove "usr/bin/ld64.lld*"
+ vmove "usr/bin/lld*"
+ vmove usr/bin/wasm-ld
+ vmove usr/share/doc/LLVM/lld
+ }
+}
+
+lld-devel_package() {
+ lib32disabled=yes
+ short_desc+=" - linker - development files"
+ homepage="https://lld.llvm.org"
+ depends="lld>=${version}_${revision}"
+ pkg_install() {
+ vmove usr/include/lld
+ vmove usr/lib/cmake/lld
+ vmove "usr/lib/liblld*a"
+ }
+}
+
+lldb_package() {
+ lib32disabled=yes
+ depends+=" python3-six"
+ short_desc+=" - LLDB debugger"
+ homepage="https://lldb.llvm.org/"
+ pkg_install() {
+ vmove "usr/bin/*lldb*"
+ vmove "usr/lib/liblldb*so.*"
+ vmove usr/lib/python*
+ }
+}
+
+lldb-devel_package() {
+ lib32disabled=yes
+ depends="lldb>=${version}_${revision}"
+ short_desc+=" - LLDB debugger - development files"
+ pkg_install() {
+ vmove usr/include/lldb
+ vmove "usr/lib/liblldb*.so"
+ }
+}
+
+llvm-libunwind_package() {
+ short_desc+=" - libunwind"
+ pkg_install() {
+ vmove "usr/lib/libunwind.so.*"
+ }
+}
+
+llvm-libunwind-devel_package() {
+ short_desc+=" - libunwind - development files"
+ depends="llvm-libunwind>=${version}_${revision}"
+ conflicts="libunwind-devel>=0"
+ pkg_install() {
+ vmove usr/include/mach-o
+ vmove "usr/include/*unwind*"
+ vmove "usr/lib/libunwind.a"
+ vmove "usr/lib/libunwind.so"
+ vmove usr/share/doc/LLVM/libunwind
+ }
+}
+
+libcxxabi_package() {
+ short_desc+=" - low level support for libc++"
+ pkg_install() {
+ vmove "usr/lib/libc++abi.so.*"
+ }
+}
+
+libcxxabi-devel_package() {
+ short_desc+=" - low level support for libc++ - development files"
+ depends="libcxxabi>=${version}_${revision}"
+ pkg_install() {
+ vmove "usr/include/*cxxabi*"
+ vmove "usr/lib/libc++abi.so"
+ vmove "usr/lib/libc++abi.a"
+ }
+}
+
+libcxx_package() {
+ short_desc+=" - C++ standard library"
+ pkg_install() {
+ vmove "usr/lib/libc++.so.*"
+ }
+}
+
+libcxx-devel_package() {
+ short_desc+=" - C++ standard library - development files"
+ depends="libcxx>=${version}_${revision}"
+ pkg_install() {
+ vmove usr/include/c++
+ vmove "usr/lib/libc++.so"
+ vmove "usr/lib/libc++.a"
+ vmove "usr/lib/libc++experimental.a"
+ vmove usr/share/doc/LLVM/libcxx
+ }
+}
+
+libomp_package()