Give cc1plus enough stack for aquamarine under emulation
DRM.cpp needs more than 8 MiB of compiler stack. GCC raises its own limit natively, but the aarch64 builder runs under QEMU user-mode emulation, which fixes the guest stack at exec and ignores setrlimit, so cc1plus segfaulted. Unpatched 0.15.1 fails the same way. QEMU_STACK_SIZE sizes it at exec; native builds ignore it and the object code is identical.
This commit is contained in:
1 parent
b27a8c609e
commit
4e58d1c77f
1 file changed
+6
@@ -44,6 +44,12 @@ prepare() {
|
|||||||
|
|
||||||
build() {
|
build() {
|
||||||
cd "$_archive"
|
cd "$_archive"
|
||||||
|
# cc1plus needs more than 8 MiB of stack for DRM.cpp. GCC raises its own
|
||||||
|
# limit natively, but under QEMU user-mode emulation (the aarch64 builder)
|
||||||
|
# the guest stack is fixed at exec and setrlimit is ignored, so the compiler
|
||||||
|
# segfaults. QEMU reads this at exec; native builds ignore it. The object
|
||||||
|
# code is identical either way.
|
||||||
|
export QEMU_STACK_SIZE=64M
|
||||||
cmake -B build \
|
cmake -B build \
|
||||||
-D CMAKE_INSTALL_PREFIX=/usr \
|
-D CMAKE_INSTALL_PREFIX=/usr \
|
||||||
-D CMAKE_BUILD_TYPE=Release
|
-D CMAKE_BUILD_TYPE=Release
|
||||||
|
|||||||
Reference in new issue
Block a user