Make sure we don't emit an ODR hash for types with no name and make
[oota-llvm.git] / test / lit.cfg
index ac18e50d99f26b22a1ff5f6ce8eb5cc4b9dbf9a1..ddb02ecf569e1d43edb5a0a2da7b27a653d44770 100644 (file)
@@ -56,17 +56,8 @@ llvm_obj_root = getattr(config, 'llvm_obj_root', None)
 if llvm_obj_root is not None:
     config.test_exec_root = os.path.join(llvm_obj_root, 'test')
 
-# Tweak the PATH to include the scripts dir, the tools dir, and the llvm-gcc bin
-# dir (if available).
+# Tweak the PATH to include the tools dir.
 if llvm_obj_root is not None:
-    llvm_src_root = getattr(config, 'llvm_src_root', None)
-    if not llvm_src_root:
-        lit.fatal('No LLVM source root set!')
-    path = os.path.pathsep.join((os.path.join(llvm_src_root, 'test',
-                                              'Scripts'),
-                                 config.environment['PATH']))
-    config.environment['PATH'] = path
-
     llvm_tools_dir = getattr(config, 'llvm_tools_dir', None)
     if not llvm_tools_dir:
         lit.fatal('No LLVM tools dir set!')
@@ -169,7 +160,9 @@ config.substitutions.append( ('%lli_mcjit', lli_mcjit) )
 # but simply want use the currently considered most reliable jit for platform
 # FIXME: ppc32 is not ready for mcjit.
 if 'arm' in config.target_triple \
-   or 'powerpc64' in config.target_triple:
+   or 'aarch64' in config.target_triple \
+   or 'powerpc64' in config.target_triple \
+   or 's390x' in config.target_triple:
     defaultIsMCJIT = 'true'
 else:
     defaultIsMCJIT = 'false'
@@ -208,9 +201,14 @@ if os.pathsep == ';':
     pathext = os.environ.get('PATHEXT', '').split(';')
 else:
     pathext = ['']
+# Regex to reject matching a hyphen
+NOHYPHEN = r"(?<!-)"
+
 for pattern in [r"\bbugpoint\b(?!-)",   r"(?<!/|-)\bclang\b(?!-)",
                 r"\bgold\b",
-                r"\bllc\b",             r"\blli\b",
+                # Match llc but not -llc
+                NOHYPHEN + r"\bllc\b",
+                r"\blli\b",
                 r"\bllvm-ar\b",         r"\bllvm-as\b",
                 r"\bllvm-bcanalyzer\b", r"\bllvm-config\b",
                 r"\bllvm-cov\b",        r"\bllvm-diff\b",
@@ -218,11 +216,11 @@ for pattern in [r"\bbugpoint\b(?!-)",   r"(?<!/|-)\bclang\b(?!-)",
                 r"\bllvm-extract\b",    r"\bllvm-jistlistener\b",
                 r"\bllvm-link\b",       r"\bllvm-mc\b",
                 r"\bllvm-nm\b",         r"\bllvm-objdump\b",
-                r"\bllvm-prof\b",       r"\bllvm-ranlib\b",
+                r"\bllvm-prof\b",       r"\bllvm-size\b",
                 r"\bllvm-rtdyld\b",     r"\bllvm-shlib\b",
-                r"\bllvm-size\b",
-                # Don't match '-llvmc'.
-                r"(?<!-)\bllvmc\b",     r"\blto\b",
+                # Match llvmc but not -llvmc
+                NOHYPHEN + r"\bllvmc\b",
+                r"\blto\b",
                                         # Don't match '.opt', '-opt',
                                         # '^opt' or '/opt'.
                 r"\bmacho-dump\b",      r"(?<!\.|-|\^|/)\bopt\b",
@@ -252,6 +250,10 @@ for pattern in [r"\bbugpoint\b(?!-)",   r"(?<!/|-)\bclang\b(?!-)",
 if execute_external:
     config.available_features.add('shell')
 
+# Others/can-execute.txt
+if sys.platform not in ['win32']:
+    config.available_features.add('can-execute')
+
 # Loadable module
 # FIXME: This should be supplied by Makefile or autoconf.
 if sys.platform in ['win32', 'cygwin']:
@@ -277,6 +279,9 @@ if (config.llvm_use_sanitizer == "Memory" or
 if not 'hexagon' in config.target_triple:
     config.available_features.add("object-emission")
 
+if config.have_zlib == "1":
+    config.available_features.add("zlib")
+
 # llc knows whether he is compiled with -DNDEBUG.
 import subprocess
 try:
@@ -289,3 +294,23 @@ except OSError, why:
 if re.search(r'with assertions', llc_cmd.stdout.read()):
     config.available_features.add('asserts')
 llc_cmd.wait()
+
+# Check if we should use gmalloc.
+use_gmalloc_str = lit.params.get('use_gmalloc', None)
+if use_gmalloc_str is not None:
+    if use_gmalloc_str.lower() in ('1', 'true'):
+        use_gmalloc = True
+    elif use_gmalloc_str.lower() in ('', '0', 'false'):
+        use_gmalloc = False
+    else:
+        lit.fatal('user parameter use_gmalloc should be 0 or 1')
+else:
+    # Default to not using gmalloc
+    use_gmalloc = False
+
+# Allow use of an explicit path for gmalloc library.
+# Will default to '/usr/lib/libgmalloc.dylib' if not set.
+gmalloc_path_str = lit.params.get('gmalloc_path', '/usr/lib/libgmalloc.dylib')
+
+if use_gmalloc:
+     config.environment.update({'DYLD_INSERT_LIBRARIES' : gmalloc_path_str})