mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-23 11:13:28 +01:00
1c8e58ce82
The PowerPC part of processRelocationRef currently assumes that external symbols can be identified by checking for SymType == SymbolRef::ST_Unknown. This is actually incorrect in some cases, causing relocation overflows to be mis-detected. The correct check is to test whether Value.SymbolName is null. Includes test case. Note that it is a bit tricky to replicate the exact condition that triggers the bug in a test case. The one included here seems to fail reliably (before the fix) across different operating system versions on Power, but it still makes a few assumptions (called out in the test case comments). Also add ppc64le platform name to the supported list in the lit.local.cfg files for the MCJIT and OrcMCJIT directories, since those tests were currently not run at all. Fixes PR32650. Reviewer: hfinkel Differential Revision: https://reviews.llvm.org/D33402 llvm-svn: 303637
28 lines
977 B
INI
28 lines
977 B
INI
root = config.root
|
|
targets = root.targets
|
|
if ('X86' in targets) | ('AArch64' in targets) | ('ARM' in targets) | \
|
|
('Mips' in targets) | ('PowerPC' in targets) | ('SystemZ' in targets):
|
|
config.unsupported = False
|
|
else:
|
|
config.unsupported = True
|
|
|
|
# FIXME: autoconf and cmake produce different arch names. We should normalize
|
|
# them before getting here.
|
|
if root.host_arch not in ['i386', 'x86', 'x86_64', 'AMD64',
|
|
'AArch64', 'ARM', 'Mips',
|
|
'PowerPC', 'ppc64', 'ppc64le', 'SystemZ']:
|
|
config.unsupported = True
|
|
|
|
if 'armv7' in root.host_arch:
|
|
config.unsupported = False
|
|
|
|
if 'i386-apple-darwin' in root.target_triple:
|
|
config.unsupported = True
|
|
|
|
if 'powerpc' in root.target_triple and not 'powerpc64' in root.target_triple:
|
|
config.unsupported = True
|
|
|
|
# ExecutionEngine tests are not expected to pass in a cross-compilation setup.
|
|
if 'native' not in config.available_features:
|
|
config.unsupported = True
|