[Lldb-commits] [PATCH] D112034: [lldb/test] Update test/API/functionalities/load_lazy to macOS 12

Vedant Kumar via Phabricator via lldb-commits lldb-commits at lists.llvm.org
Mon Oct 18 14:41:17 PDT 2021


vsk created this revision.
vsk added reviewers: JDevlieghere, kastiglione, kledzik.
vsk requested review of this revision.

In macOS 12, dyld switched to using chained fixups. As a result, all symbols
are bound at launch and there are no lazy pointers any more. Since we wish to
import/dlopen() a dylib with missing symbols, we need to use a weak import.
This applies to all macOS 12-aligned OS releases, e.g. iOS 15, etc.

rdar://81295101


https://reviews.llvm.org/D112034

Files:
  lldb/test/API/functionalities/load_lazy/Makefile


Index: lldb/test/API/functionalities/load_lazy/Makefile
===================================================================
--- lldb/test/API/functionalities/load_lazy/Makefile
+++ lldb/test/API/functionalities/load_lazy/Makefile
@@ -5,9 +5,20 @@
 
 include Makefile.rules
 
+ifeq "$(OS)" "Darwin"
+	# In macOS 12, dyld switched to using chained fixups. As a result, all
+	# symbols are bound at launch and there are no lazy pointers any more.
+	# Since we wish to import/dlopen() a dylib with missing symbols, we need
+	# to use a weak import. This applies to all macOS 12-aligned OS releases,
+	# e.g. iOS 15, etc.
+	LINKFLAGS := "-Wl,-weak-lt2_0"
+else
+	LINKFLAGS := "-lt2_0"
+endif
+
 t1: t2_0
 	$(MAKE) VPATH=$(SRCDIR) -f $(MAKEFILE_RULES) \
-		DYLIB_ONLY=YES DYLIB_C_SOURCES=t1.c DYLIB_NAME=t1 LD_EXTRAS="-L. -lt2_0"
+		DYLIB_ONLY=YES DYLIB_C_SOURCES=t1.c DYLIB_NAME=t1 LD_EXTRAS="-L. $(LINKFLAGS)"
 
 t2_0:
 	$(MAKE) VPATH=$(SRCDIR) -f $(MAKEFILE_RULES) \


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D112034.380523.patch
Type: text/x-patch
Size: 964 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20211018/1ecdfc4f/attachment.bin>


More information about the lldb-commits mailing list