From 7fb83a9f59dec68e4c906aef243e5d7a595e95d2 Mon Sep 17 00:00:00 2001
From: "A. Wilcox" <AWilcox@Wilcox-Tech.com>
Date: Sat, 7 Dec 2024 21:10:58 -0600
Subject: [PATCH] user/llvm18: Ensure stack sizes are set properly

* Run `chelf` on the binaries after they are installed, in case they are
  re-linked during the install process.  This was the cause of #1272.

* Disable two more tests that caused failures on gwyn due to #1250.

Closes: #1272
---
 bootstrap/llvm18/APKBUILD | 9 +++++++++
 user/llvm18/APKBUILD      | 9 +++++++++
 2 files changed, 18 insertions(+)

diff --git a/bootstrap/llvm18/APKBUILD b/bootstrap/llvm18/APKBUILD
index 3c0f57c683..0e1ff4d022 100644
--- a/bootstrap/llvm18/APKBUILD
+++ b/bootstrap/llvm18/APKBUILD
@@ -130,7 +130,9 @@ prepare() {
 
 	#1250
 	rm -v \
+		test/tools/dsymutil/ARM/DWARFLinkerParallel/accel-imported-declarations.test \
 		test/tools/dsymutil/X86/DWARFLinkerParallel/odr-member-functions.cpp \
+		test/tools/dsymutil/X86/DWARFLinkerParallel/odr-parents.test \
 		test/tools/dsymutil/X86/DWARFLinkerParallel/odr-predictable-output2.test \
 		test/tools/dsymutil/X86/DWARFLinkerParallel/odr-string.test \
 		test/tools/dsymutil/X86/DWARFLinkerParallel/odr-uniquing.cpp
@@ -246,6 +248,13 @@ package() {
 	ln -s ../../include/$pkgname include
 
 	ln -s "$pkgdir"/usr/lib/cmake/llvm ../$pkgname/lib/cmake/llvm
+
+	# Thread 3 requires a lot of stack space to LTO when targeting ARM.
+	# Note that this occurs even when crossing (on a ppc64 host).
+	chelf -s 1048576 bin/llvm-lto2
+	# Needed for parallel-linker support (pthread stack size).
+	chelf -s 1048576 bin/dsymutil
+	chelf -s 1048576 bin/llvm-dwarfutil
 }
 
 static() {
diff --git a/user/llvm18/APKBUILD b/user/llvm18/APKBUILD
index 3338c4d712..694f8245e4 100644
--- a/user/llvm18/APKBUILD
+++ b/user/llvm18/APKBUILD
@@ -130,7 +130,9 @@ prepare() {
 
 	#1250
 	rm -v \
+		test/tools/dsymutil/ARM/DWARFLinkerParallel/accel-imported-declarations.test \
 		test/tools/dsymutil/X86/DWARFLinkerParallel/odr-member-functions.cpp \
+		test/tools/dsymutil/X86/DWARFLinkerParallel/odr-parents.test \
 		test/tools/dsymutil/X86/DWARFLinkerParallel/odr-predictable-output2.test \
 		test/tools/dsymutil/X86/DWARFLinkerParallel/odr-string.test \
 		test/tools/dsymutil/X86/DWARFLinkerParallel/odr-uniquing.cpp
@@ -246,6 +248,13 @@ package() {
 	ln -s ../../include/$pkgname include
 
 	ln -s "$pkgdir"/usr/lib/cmake/llvm ../$pkgname/lib/cmake/llvm
+
+	# Thread 3 requires a lot of stack space to LTO when targeting ARM.
+	# Note that this occurs even when crossing (on a ppc64 host).
+	chelf -s 1048576 bin/llvm-lto2
+	# Needed for parallel-linker support (pthread stack size).
+	chelf -s 1048576 bin/dsymutil
+	chelf -s 1048576 bin/llvm-dwarfutil
 }
 
 static() {
-- 
GitLab