summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--nuttx/tools/Config.mk33
1 files changed, 33 insertions, 0 deletions
diff --git a/nuttx/tools/Config.mk b/nuttx/tools/Config.mk
index 6ee7d716e..f222cc0e0 100644
--- a/nuttx/tools/Config.mk
+++ b/nuttx/tools/Config.mk
@@ -191,6 +191,39 @@ define ARCHIVE
endef
endif
+# PRELINK - Prelink a list of files
+# This is useful when files were compiled with fvisibility=hidden.
+# Any symbol which was not explicitly made global is invisible outside the
+# prelinked file.
+#
+# Example: $(call PRELINK, prelink-file, "file1 file2 file3 ...")
+#
+# Note: The fileN strings may not contain spaces or characters that may be
+# interpreted strangely by the shell
+#
+# Depends on these settings defined in board-specific Make.defs file
+# installed at $(TOPDIR)/Make.defs:
+#
+# LD - The command to invoke the linker (includes any options)
+# OBJCOPY - The command to invoke the object cop (includes any options)
+#
+# Depends on this settings defined in board-specific defconfig file installed
+# at $(TOPDIR)/.config:
+#
+# CONFIG_WINDOWS_NATIVE - Defined for a Windows native build
+
+ifeq ($(CONFIG_WINDOWS_NATIVE),y)
+define PRELINK
+ @echo PRELINK: $1
+ $(Q) $(LD) -Ur -o $1 $2 && $(OBJCOPY) --localize-hidden $1
+endef
+else
+define PRELINK
+ @echo "PRELINK: $1"
+ $(Q) $(LD) -Ur -o $1 $2 && $(OBJCOPY) --localize-hidden $1
+endef
+endif
+
# DELFILE - Delete one file
ifeq ($(CONFIG_WINDOWS_NATIVE),y)