Add 'no_default_flags' option for turning off all default test compile and link flags.

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.




git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@226322 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Eric Fiselier 2015-01-16 21:22:08 +00:00
parent cbc84977aa
commit ae8bc6b3ef
2 changed files with 28 additions and 12 deletions

View 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']
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 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()
# 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)

View File

@ -131,6 +131,16 @@ Note: This does not use the installed headers.
</blockquote>
</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">