diff options
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test')
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", |