forked from OSchip/llvm-project
[LLDB] Unit tests basic support for OpenBSD
Add OpenBSD python module in order to support unit tests. Reviewers: labath, zturner Reviewed By: labath Differential Revision: https://reviews.llvm.org/D47692 llvm-svn: 333888
This commit is contained in:
parent
7b53d1454f
commit
15aefbd3f6
|
@ -78,6 +78,10 @@ if platform.system() in ['Darwin']:
|
|||
config.cc += " -isysroot %s" % sdk_path
|
||||
config.cxx += " -isysroot %s" % sdk_path
|
||||
|
||||
if platform.system() in ['OpenBSD']:
|
||||
config.cc += " -pthread"
|
||||
config.cxx += " -pthread"
|
||||
|
||||
config.substitutions.append(('%cc', config.cc))
|
||||
config.substitutions.append(('%cxx', config.cxx))
|
||||
|
||||
|
|
|
@ -490,6 +490,8 @@ def getsource_if_available(obj):
|
|||
def builder_module():
|
||||
if sys.platform.startswith("freebsd"):
|
||||
return __import__("builder_freebsd")
|
||||
if sys.platform.startswith("openbsd"):
|
||||
return __import__("builder_openbsd")
|
||||
if sys.platform.startswith("netbsd"):
|
||||
return __import__("builder_netbsd")
|
||||
if sys.platform.startswith("linux"):
|
||||
|
@ -1395,7 +1397,7 @@ class Base(unittest2.TestCase):
|
|||
|
||||
def getstdlibFlag(self):
|
||||
""" Returns the proper -stdlib flag, or empty if not required."""
|
||||
if self.platformIsDarwin() or self.getPlatform() == "freebsd":
|
||||
if self.platformIsDarwin() or self.getPlatform() == "freebsd" or self.getPlatform() == "openbsd":
|
||||
stdlibflag = "-stdlib=libc++"
|
||||
else: # this includes NetBSD
|
||||
stdlibflag = ""
|
||||
|
@ -1424,16 +1426,6 @@ class Base(unittest2.TestCase):
|
|||
'FRAMEWORK_INCLUDES': "-F%s" % self.framework_dir,
|
||||
'LD_EXTRAS': "%s -Wl,-rpath,%s" % (self.dsym, self.framework_dir),
|
||||
}
|
||||
elif sys.platform.rstrip('0123456789') in ('freebsd', 'linux', 'netbsd', 'darwin') or os.environ.get('LLDB_BUILD_TYPE') == 'Makefile':
|
||||
d = {
|
||||
'CXX_SOURCES': sources,
|
||||
'EXE': exe_name,
|
||||
'CFLAGS_EXTRAS': "%s %s -I%s" % (stdflag,
|
||||
stdlibflag,
|
||||
os.path.join(
|
||||
os.environ["LLDB_SRC"],
|
||||
"include")),
|
||||
'LD_EXTRAS': "-L%s/../lib -llldb -Wl,-rpath,%s/../lib" % (lib_dir, lib_dir)}
|
||||
elif sys.platform.startswith('win'):
|
||||
d = {
|
||||
'CXX_SOURCES': sources,
|
||||
|
@ -1444,6 +1436,16 @@ class Base(unittest2.TestCase):
|
|||
os.environ["LLDB_SRC"],
|
||||
"include")),
|
||||
'LD_EXTRAS': "-L%s -lliblldb" % os.environ["LLDB_IMPLIB_DIR"]}
|
||||
else:
|
||||
d = {
|
||||
'CXX_SOURCES': sources,
|
||||
'EXE': exe_name,
|
||||
'CFLAGS_EXTRAS': "%s %s -I%s" % (stdflag,
|
||||
stdlibflag,
|
||||
os.path.join(
|
||||
os.environ["LLDB_SRC"],
|
||||
"include")),
|
||||
'LD_EXTRAS': "-L%s/../lib -llldb -Wl,-rpath,%s/../lib" % (lib_dir, lib_dir)}
|
||||
if self.TraceOn():
|
||||
print(
|
||||
"Building LLDB Driver (%s) from sources %s" %
|
||||
|
@ -1464,15 +1466,6 @@ class Base(unittest2.TestCase):
|
|||
'FRAMEWORK_INCLUDES': "-F%s" % self.framework_dir,
|
||||
'LD_EXTRAS': "%s -Wl,-rpath,%s -dynamiclib" % (self.dsym, self.framework_dir),
|
||||
}
|
||||
elif sys.platform.rstrip('0123456789') in ('freebsd', 'linux', 'netbsd', 'darwin') or os.environ.get('LLDB_BUILD_TYPE') == 'Makefile':
|
||||
d = {
|
||||
'DYLIB_CXX_SOURCES': sources,
|
||||
'DYLIB_NAME': lib_name,
|
||||
'CFLAGS_EXTRAS': "%s -I%s -fPIC" % (stdflag,
|
||||
os.path.join(
|
||||
os.environ["LLDB_SRC"],
|
||||
"include")),
|
||||
'LD_EXTRAS': "-shared -L%s/../lib -llldb -Wl,-rpath,%s/../lib" % (lib_dir, lib_dir)}
|
||||
elif self.getPlatform() == 'windows':
|
||||
d = {
|
||||
'DYLIB_CXX_SOURCES': sources,
|
||||
|
@ -1482,6 +1475,15 @@ class Base(unittest2.TestCase):
|
|||
os.environ["LLDB_SRC"],
|
||||
"include")),
|
||||
'LD_EXTRAS': "-shared -l%s\liblldb.lib" % self.os.environ["LLDB_IMPLIB_DIR"]}
|
||||
else:
|
||||
d = {
|
||||
'DYLIB_CXX_SOURCES': sources,
|
||||
'DYLIB_NAME': lib_name,
|
||||
'CFLAGS_EXTRAS': "%s -I%s -fPIC" % (stdflag,
|
||||
os.path.join(
|
||||
os.environ["LLDB_SRC"],
|
||||
"include")),
|
||||
'LD_EXTRAS': "-shared -L%s/../lib -llldb -Wl,-rpath,%s/../lib" % (lib_dir, lib_dir)}
|
||||
if self.TraceOn():
|
||||
print(
|
||||
"Building LLDB Library (%s) from sources %s" %
|
||||
|
@ -1672,6 +1674,8 @@ class Base(unittest2.TestCase):
|
|||
cflags += "c++11"
|
||||
if self.platformIsDarwin() or self.getPlatform() == "freebsd":
|
||||
cflags += " -stdlib=libc++"
|
||||
elif self.getPlatform() == "openbsd":
|
||||
cflags += " -stdlib=libc++"
|
||||
elif self.getPlatform() == "netbsd":
|
||||
cflags += " -stdlib=libstdc++"
|
||||
elif "clang" in self.getCompiler():
|
||||
|
@ -1706,7 +1710,7 @@ class Base(unittest2.TestCase):
|
|||
return lib_dir
|
||||
|
||||
def getLibcPlusPlusLibs(self):
|
||||
if self.getPlatform() in ('freebsd', 'linux', 'netbsd'):
|
||||
if self.getPlatform() in ('freebsd', 'linux', 'netbsd', 'openbsd'):
|
||||
return ['libc++.so.1']
|
||||
else:
|
||||
return ['libc++.1.dylib', 'libc++abi.dylib']
|
||||
|
|
Loading…
Reference in New Issue