summaryrefslogtreecommitdiffstats
path: root/libcxx/test
diff options
context:
space:
mode:
Diffstat (limited to 'libcxx/test')
-rw-r--r--libcxx/test/lit.cfg23
1 files changed, 16 insertions, 7 deletions
diff --git a/libcxx/test/lit.cfg b/libcxx/test/lit.cfg
index d9d4152e4fc..8307b0c24fb 100644
--- a/libcxx/test/lit.cfg
+++ b/libcxx/test/lit.cfg
@@ -349,13 +349,8 @@ class Configuration(object):
# markers for tests that are known to fail with versions of libc++ as
# were shipped with a particular triple.
if self.use_system_lib:
- # Drop sub-major version components from the triple, because the
- # current XFAIL handling expects exact matches for feature checks.
- sanitized_triple = re.sub(
- r"([^-]+)-([^-]+)-([^-.]+).*", r"\1-\2-\3",
- self.config.target_triple)
self.config.available_features.add(
- 'with_system_lib=%s' % sanitized_triple)
+ 'with_system_lib=%s' % self.config.target_triple)
if 'libcpp-has-no-threads' in self.config.available_features:
self.compile_flags += ['-D_LIBCPP_HAS_NO_THREADS']
@@ -456,8 +451,22 @@ class Configuration(object):
# If no target triple was given, try to infer it from the compiler
# under test.
if not self.config.target_triple:
- self.config.target_triple = lit.util.capture(
+ target_triple = lit.util.capture(
[self.cxx, '-dumpmachine']).strip()
+ # Drop sub-major version components from the triple, because the
+ # current XFAIL handling expects exact matches for feature checks.
+ # Example: x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu.
+ # The 5th group handles triples greater than 3 parts
+ # (ex x86_64-pc-linux-gnu).
+ target_triple = re.sub(r'([^-]+)-([^-]+)-([^.]+)([^-]*)(.*)',
+ r'\1-\2-\3\5', target_triple)
+ # linux-gnu is needed in the triple to properly identify linuxes
+ # that use GLIBC. Handle redhat and opensuse triples as special
+ # cases and append the missing `-gnu` portion.
+ if target_triple.endswith('redhat-linux') or \
+ target_triple.endswith('suse-linux'):
+ target_triple += '-gnu'
+ self.config.target_triple = target_triple
self.lit_config.note(
"inferred target_triple as: %r" % self.config.target_triple)
OpenPOWER on IntegriCloud