Add 'no_default_flags' option for turning off all default test compile and link flags.
authorEric Fiselier <eric@efcs.ca>
Fri, 16 Jan 2015 21:22:08 +0000 (21:22 +0000)
committerEric Fiselier <eric@efcs.ca>
Fri, 16 Jan 2015 21:22:08 +0000 (21:22 +0000)
When 'no_default_flags' is true only flags passed using '--param=compile_flags'
and '--param=link_flags' will be used when compiling the tests. This option
can be used to run the test suite against libstdc++ and helps with all
unusual test suite configurations.

NOTE: sanitizer flags are still added when '--param=use_sanitizer' is used even
if '--param=no_default_flags' is given.

llvm-svn: 226322

libcxx/test/libcxx/test/config.py
libcxx/www/lit_usage.html

index 70af0df..e4d3b64 100644 (file)
@@ -262,6 +262,14 @@ class Configuration(object):
             self.config.available_features.add('long_tests')
 
     def configure_compile_flags(self):
+      no_default_flags = self.get_lit_bool('no_default_flags', False)
+      if not no_default_flags:
+        self.configure_default_compile_flags()
+      # Configure extra flags
+      compile_flags_str = self.get_lit_conf('compile_flags', '')
+      self.compile_flags += shlex.split(compile_flags_str)
+
+    def configure_default_compile_flags(self):
         # Try and get the std version from the command line. Fall back to
         # default given in lit.site.cfg is not present. If default is not
         # present then force c++11.
@@ -294,10 +302,6 @@ class Configuration(object):
                                   ' enable_threads is true.')
         # Use verbose output for better errors
         self.compile_flags += ['-v']
-        # Configure extra compile flags.
-        compile_flags_str = self.get_lit_conf('compile_flags', '')
-        self.compile_flags += shlex.split(compile_flags_str)
-
         sysroot = self.get_lit_conf('sysroot')
         if sysroot:
             self.compile_flags += ['--sysroot', sysroot]
@@ -339,16 +343,18 @@ class Configuration(object):
         self.config.available_features.add('libcpp-has-no-monotonic-clock')
 
     def configure_link_flags(self):
-        self.link_flags += ['-nodefaultlibs']
-
-        # Configure library path
-        self.configure_link_flags_cxx_library_path()
-        self.configure_link_flags_abi_library_path()
-
-        # Configure libraries
-        self.configure_link_flags_cxx_library()
-        self.configure_link_flags_abi_library()
-        self.configure_extra_library_flags()
+        no_default_flags = self.get_lit_bool('no_default_flags', False)
+        if not no_default_flags:
+          self.link_flags += ['-nodefaultlibs']
+
+          # Configure library path
+          self.configure_link_flags_cxx_library_path()
+          self.configure_link_flags_abi_library_path()
+
+          # Configure libraries
+          self.configure_link_flags_cxx_library()
+          self.configure_link_flags_abi_library()
+          self.configure_extra_library_flags()
 
         link_flags_str = self.get_lit_conf('link_flags', '')
         self.link_flags += shlex.split(link_flags_str)
index 91d7537..40036eb 100644 (file)
@@ -132,6 +132,16 @@ Note: This does not use the installed headers.
 </p>
 
 <p>
+<h3 class="lit-option">no_default_flags=&lt;bool&gt;</h3>
+<blockquote class="lit-option-desc">
+<b>Default: </b><code>False</code></br>
+Disable all default compile and link flags from being added. When this option is
+used only flags specified using the <code>compile_flags</code> and
+<code>link_flags</code> will be used.
+</blockquote>
+</p>
+
+<p>
 <h3 class="lit-option">compile_flags="&lt;list-of-args&gt;"</h3>
 <blockquote class="lit-option-desc">
 Specify additional compile flags as a space delimited string.