forked from OSchip/llvm-project
[lldb] Pass the target triple when determining the DWARF version
When targeting iOS, the default dwarf version is 2 and not 4. Currently, the test suite does not pick up on that because it invokes the test compiler without a target triple. This patch fixes that and now correctly skips tests that have a dwarf version specified in a skipIf decorator. rdar://84530477 Differential revision: https://reviews.llvm.org/D112325
This commit is contained in:
parent
950f22a5e1
commit
0f12cf7eba
|
@ -21,6 +21,10 @@ class Builder:
|
||||||
compiler = lldbutil.which(compiler)
|
compiler = lldbutil.which(compiler)
|
||||||
return os.path.abspath(compiler)
|
return os.path.abspath(compiler)
|
||||||
|
|
||||||
|
def getTriple(self, arch):
|
||||||
|
"""Returns the triple for the given architecture or None."""
|
||||||
|
return None
|
||||||
|
|
||||||
def getExtraMakeArgs(self):
|
def getExtraMakeArgs(self):
|
||||||
"""
|
"""
|
||||||
Helper function to return extra argumentsfor the make system. This
|
Helper function to return extra argumentsfor the make system. This
|
||||||
|
|
|
@ -55,6 +55,13 @@ def get_triple():
|
||||||
|
|
||||||
|
|
||||||
class BuilderDarwin(Builder):
|
class BuilderDarwin(Builder):
|
||||||
|
def getTriple(self, arch):
|
||||||
|
vendor, os, version, env = get_triple()
|
||||||
|
components = [arch, vendor, os, version, env]
|
||||||
|
if None in components:
|
||||||
|
return None
|
||||||
|
return '-'.join(components)
|
||||||
|
|
||||||
def getExtraMakeArgs(self):
|
def getExtraMakeArgs(self):
|
||||||
"""
|
"""
|
||||||
Helper function to return extra argumentsfor the make system. This
|
Helper function to return extra argumentsfor the make system. This
|
||||||
|
|
|
@ -1347,15 +1347,18 @@ class Base(unittest2.TestCase):
|
||||||
return str(configuration.dwarf_version)
|
return str(configuration.dwarf_version)
|
||||||
if 'clang' in self.getCompiler():
|
if 'clang' in self.getCompiler():
|
||||||
try:
|
try:
|
||||||
|
triple = builder_module().getTriple(self.getArchitecture())
|
||||||
|
target = ['-target', triple] if triple else []
|
||||||
driver_output = check_output(
|
driver_output = check_output(
|
||||||
[self.getCompiler()] + '-g -c -x c - -o - -###'.split(),
|
[self.getCompiler()] + target + '-g -c -x c - -o - -###'.split(),
|
||||||
stderr=STDOUT)
|
stderr=STDOUT)
|
||||||
driver_output = driver_output.decode("utf-8")
|
driver_output = driver_output.decode("utf-8")
|
||||||
for line in driver_output.split(os.linesep):
|
for line in driver_output.split(os.linesep):
|
||||||
m = re.search('dwarf-version=([0-9])', line)
|
m = re.search('dwarf-version=([0-9])', line)
|
||||||
if m:
|
if m:
|
||||||
return m.group(1)
|
return m.group(1)
|
||||||
except: pass
|
except CalledProcessError:
|
||||||
|
pass
|
||||||
return '0'
|
return '0'
|
||||||
|
|
||||||
def platformIsDarwin(self):
|
def platformIsDarwin(self):
|
||||||
|
|
Loading…
Reference in New Issue