forked from OSchip/llvm-project
[AIX][clang/test] Set/propagate AIXTHREAD_STK for AIX
Some tests perform deep recursion, which requires a larger pthread stack
size than the relatively low default of 192 KiB for 64-bit processes on
AIX. The `AIXTHREAD_STK` environment variable provides a non-intrusive
way to request a larger pthread stack size for the tests. The required
pthread stack size depends on the build configuration.
A 4 MiB default is generous compared to the 512 KiB of macOS; however,
it is known that some compilers on AIX produce code that uses
comparatively more stack space.
This patch expands the solution from D65688 to apply to all Clang LIT
tests.
This also reverts commit c3c75d805c
,
"[clang][test] Mark test arm-float-abi-lto.c unsupported on AIX".
The problem was caused by the test running up against the per-thread
stack limit on AIX. This is resolved by having the tests run with
`AIXTHREAD_STK` set for 4 MiB.
Reviewed By: xingxue
Differential Revision: https://reviews.llvm.org/D129165
This commit is contained in:
parent
e10e120cea
commit
bd8b55e609
|
@ -1,5 +1,3 @@
|
|||
// FIXME: Produces a segmentation fault on AIX after the introduction of opaque pointers (D125847).
|
||||
// UNSUPPORTED: system-aix
|
||||
// REQUIRES: arm-registered-target
|
||||
|
||||
// RUN: %clang --target=arm-none-eabi -mcpu=cortex-m33 -mfloat-abi=hard -O1 %s -S -o - -emit-llvm -DCALL_LIB -DDEFINE_LIB | FileCheck %s
|
||||
|
|
|
@ -1,12 +0,0 @@
|
|||
import platform
|
||||
|
||||
# Some tests perform deep recursion, which requires a larger pthread stack size
|
||||
# than the relatively low default of 192 KiB for 64-bit processes on AIX. The
|
||||
# `AIXTHREAD_STK` environment variable provides a non-intrusive way to request
|
||||
# a larger pthread stack size for the tests. Various applications and runtime
|
||||
# libraries on AIX use a default pthread stack size of 4 MiB, so we will use
|
||||
# that as a default value here.
|
||||
if 'AIXTHREAD_STK' in os.environ:
|
||||
config.environment['AIXTHREAD_STK'] = os.environ['AIXTHREAD_STK']
|
||||
elif platform.system() == 'AIX':
|
||||
config.environment['AIXTHREAD_STK'] = '4194304'
|
|
@ -264,3 +264,13 @@ if 'aix' in config.target_triple:
|
|||
'/ASTMerge/anonymous-fields', '/ASTMerge/injected-class-name-decl'):
|
||||
exclude_unsupported_files_for_aix(config.test_source_root + directory)
|
||||
|
||||
# Some tests perform deep recursion, which requires a larger pthread stack size
|
||||
# than the relatively low default of 192 KiB for 64-bit processes on AIX. The
|
||||
# `AIXTHREAD_STK` environment variable provides a non-intrusive way to request
|
||||
# a larger pthread stack size for the tests. Various applications and runtime
|
||||
# libraries on AIX use a default pthread stack size of 4 MiB, so we will use
|
||||
# that as a default value here.
|
||||
if 'AIXTHREAD_STK' in os.environ:
|
||||
config.environment['AIXTHREAD_STK'] = os.environ['AIXTHREAD_STK']
|
||||
elif platform.system() == 'AIX':
|
||||
config.environment['AIXTHREAD_STK'] = '4194304'
|
||||
|
|
Loading…
Reference in New Issue