summaryrefslogtreecommitdiffstats
path: root/lldb/packages/Python/lldbsuite/test
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test')
-rw-r--r--lldb/packages/Python/lldbsuite/test/macosx/macabi/Makefile18
-rw-r--r--lldb/packages/Python/lldbsuite/test/macosx/macabi/TestMacABImacOSFramework.py28
-rw-r--r--lldb/packages/Python/lldbsuite/test/macosx/macabi/dylib.mk6
-rw-r--r--lldb/packages/Python/lldbsuite/test/macosx/macabi/foo.c8
-rw-r--r--lldb/packages/Python/lldbsuite/test/macosx/macabi/foo.h1
-rw-r--r--lldb/packages/Python/lldbsuite/test/macosx/macabi/main.c5
-rw-r--r--lldb/packages/Python/lldbsuite/test/make/Makefile.rules13
-rw-r--r--lldb/packages/Python/lldbsuite/test/tools/lldb-server/TestGdbRemoteHostInfo.py1
8 files changed, 78 insertions, 2 deletions
diff --git a/lldb/packages/Python/lldbsuite/test/macosx/macabi/Makefile b/lldb/packages/Python/lldbsuite/test/macosx/macabi/Makefile
new file mode 100644
index 00000000000..f035d912b10
--- /dev/null
+++ b/lldb/packages/Python/lldbsuite/test/macosx/macabi/Makefile
@@ -0,0 +1,18 @@
+LEVEL = ../../make
+
+C_SOURCES := main.c
+LD_EXTRAS := -L. -lfoo
+
+TRIPLE := x86_64-apple-ios13.0-macabi
+CFLAGS_EXTRAS := -target $(TRIPLE)
+
+all: libfoo.dylib a.out
+
+lib%.dylib: %.c
+ $(MAKE) MAKE_DSYM=YES CC=$(CC) \
+ ARCH=$(ARCH) DSYMUTIL=$(DSYMUTIL) \
+ BASENAME=$(shell basename $< .c) \
+ TRIPLE=x86_64-apple-macosx10.15 SDKROOT=$(SDKROOT) \
+ VPATH=$(SRCDIR) -I $(SRCDIR) -f $(SRCDIR)/dylib.mk all
+
+include $(LEVEL)/Makefile.rules
diff --git a/lldb/packages/Python/lldbsuite/test/macosx/macabi/TestMacABImacOSFramework.py b/lldb/packages/Python/lldbsuite/test/macosx/macabi/TestMacABImacOSFramework.py
new file mode 100644
index 00000000000..23b26772554
--- /dev/null
+++ b/lldb/packages/Python/lldbsuite/test/macosx/macabi/TestMacABImacOSFramework.py
@@ -0,0 +1,28 @@
+# TestMacABImacOSFramework.py
+import lldb
+from lldbsuite.test.lldbtest import *
+from lldbsuite.test.decorators import *
+import lldbsuite.test.lldbutil as lldbutil
+import os
+import unittest2
+
+
+class TestMacABImacOSFramework(TestBase):
+
+ mydir = TestBase.compute_mydir(__file__)
+
+ @skipIf(macos_version=["<", "10.15"])
+ @skipUnlessDarwin
+ @skipIfDarwinEmbedded
+ # There is a Clang driver change missing on llvm.org.
+ @expectedFailureAll(bugnumber="rdar://problem/54986190>")
+ def test_macabi(self):
+ """Test the x86_64-apple-ios-macabi target linked against a macos dylib"""
+ self.build()
+ lldbutil.run_to_source_breakpoint(self, "break here",
+ lldb.SBFileSpec('main.c'))
+ self.expect("image list -t -b",
+ patterns=["x86_64.*-apple-ios.*-macabi a\.out",
+ "x86_64.*-apple-macosx.* libfoo.dylib[^(]"])
+ self.expect("fr v s", "Hello MacABI")
+ self.expect("p s", "Hello MacABI")
diff --git a/lldb/packages/Python/lldbsuite/test/macosx/macabi/dylib.mk b/lldb/packages/Python/lldbsuite/test/macosx/macabi/dylib.mk
new file mode 100644
index 00000000000..6f2c17adbf0
--- /dev/null
+++ b/lldb/packages/Python/lldbsuite/test/macosx/macabi/dylib.mk
@@ -0,0 +1,6 @@
+LEVEL = ../../make
+DYLIB_ONLY := YES
+DYLIB_NAME := $(BASENAME)
+DYLIB_C_SOURCES := $(DYLIB_NAME).c
+
+include $(LEVEL)/Makefile.rules
diff --git a/lldb/packages/Python/lldbsuite/test/macosx/macabi/foo.c b/lldb/packages/Python/lldbsuite/test/macosx/macabi/foo.c
new file mode 100644
index 00000000000..9c29d590f26
--- /dev/null
+++ b/lldb/packages/Python/lldbsuite/test/macosx/macabi/foo.c
@@ -0,0 +1,8 @@
+#include "foo.h"
+
+void stop() {}
+
+int foo() {
+ stop();
+ return 0;
+}
diff --git a/lldb/packages/Python/lldbsuite/test/macosx/macabi/foo.h b/lldb/packages/Python/lldbsuite/test/macosx/macabi/foo.h
new file mode 100644
index 00000000000..5d5f8f0c9e7
--- /dev/null
+++ b/lldb/packages/Python/lldbsuite/test/macosx/macabi/foo.h
@@ -0,0 +1 @@
+int foo();
diff --git a/lldb/packages/Python/lldbsuite/test/macosx/macabi/main.c b/lldb/packages/Python/lldbsuite/test/macosx/macabi/main.c
new file mode 100644
index 00000000000..92069d902fd
--- /dev/null
+++ b/lldb/packages/Python/lldbsuite/test/macosx/macabi/main.c
@@ -0,0 +1,5 @@
+#include "foo.h"
+int main() {
+ const char *s = "Hello MacABI!";
+ return foo(); // break here
+}
diff --git a/lldb/packages/Python/lldbsuite/test/make/Makefile.rules b/lldb/packages/Python/lldbsuite/test/make/Makefile.rules
index ecfed7efc53..784307b98ac 100644
--- a/lldb/packages/Python/lldbsuite/test/make/Makefile.rules
+++ b/lldb/packages/Python/lldbsuite/test/make/Makefile.rules
@@ -88,6 +88,7 @@ ifneq "$(TRIPLE)" ""
triple_os_and_version =$(shell echo $(word 3, $(triple_space)) | sed 's/\([a-z]*\)\(.*\)/\1 \2/')
TRIPLE_OS =$(word 1, $(triple_os_and_version))
TRIPLE_VERSION =$(word 2, $(triple_os_and_version))
+ TRIPLE_ENV =$(word 4, $(triple_space))
ifeq "$(TRIPLE_VENDOR)" "apple"
ifeq "$(TRIPLE_OS)" "ios"
CODESIGN := codesign
@@ -100,11 +101,19 @@ ifneq "$(TRIPLE)" ""
endif
ARCH_CFLAGS :=-mios-version-min=$(TRIPLE_VERSION) -isysroot "$(SDKROOT)"
else
- SDKROOT = $(shell xcrun --sdk iphonesimulator --show-sdk-path)
+ ifeq "$(TRIPLE_ENV)" "macabi"
+ SDKROOT = $(shell xcrun --sdk macosx --show-sdk-path)
+ else
+ SDKROOT = $(shell xcrun --sdk iphonesimulator --show-sdk-path)
+ endif
ifeq "$(TRIPLE_VERSION)" ""
TRIPLE_VERSION =$(shell echo $(notdir $(SDKROOT)) | sed -e 's/.*\([0-9]\.[0-9]\).*/\1/')
endif
- ARCH_CFLAGS :=-mios-simulator-version-min=$(TRIPLE_VERSION) -isysroot "$(SDKROOT)"
+ ifeq "$(TRIPLE_ENV)" "macabi"
+ ARCH_CFLAGS :=-mios-version-min=$(TRIPLE_VERSION) -isysroot "$(SDKROOT)"
+ else
+ ARCH_CFLAGS :=-mios-simulator-version-min=$(TRIPLE_VERSION) -isysroot "$(SDKROOT)"
+ endif
endif
endif
endif
diff --git a/lldb/packages/Python/lldbsuite/test/tools/lldb-server/TestGdbRemoteHostInfo.py b/lldb/packages/Python/lldbsuite/test/tools/lldb-server/TestGdbRemoteHostInfo.py
index 464cdce5e9e..832096a0ff5 100644
--- a/lldb/packages/Python/lldbsuite/test/tools/lldb-server/TestGdbRemoteHostInfo.py
+++ b/lldb/packages/Python/lldbsuite/test/tools/lldb-server/TestGdbRemoteHostInfo.py
@@ -24,6 +24,7 @@ class TestGdbRemoteHostInfo(GdbRemoteTestCaseBase):
"os_build",
"os_kernel",
"os_version",
+ "maccatalyst_version",
"ptrsize",
"triple",
"vendor",
OpenPOWER on IntegriCloud