diff options
Diffstat (limited to 'share/mk/configure/build-depends/ld.mk')
-rw-r--r-- | share/mk/configure/build-depends/ld.mk | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/share/mk/configure/build-depends/ld.mk b/share/mk/configure/build-depends/ld.mk new file mode 100644 index 0000000..a78a189 --- /dev/null +++ b/share/mk/configure/build-depends/ld.mk @@ -0,0 +1,50 @@ +# Copyright 2022-2024, Alejandro Colomar <alx@kernel.org> +# SPDX-License-Identifier: LGPL-3.0-only WITH LGPL-3.0-linking-exception + + +ifndef MAKEFILE_CONFIGURE_BUILD_DEPENDS_LD_INCLUDED +MAKEFILE_CONFIGURE_BUILD_DEPENDS_LD_INCLUDED := 1 + + +include $(MAKEFILEDIR)/configure/build-depends/cc.mk +include $(MAKEFILEDIR)/configure/build-depends/coreutils.mk +include $(MAKEFILEDIR)/configure/build-depends/pkgconf.mk +include $(MAKEFILEDIR)/configure/verbose.mk + + +LD := $(CC) $(CFLAGS) + + +LD_HAS_FUSE_LINKER_PLUGIN := \ + $(shell \ + $(ECHO) 'int main(void) {}' \ + | $(LD) -fuse-linker-plugin -x c -o /dev/null /dev/stdin $(HIDE_ERR) \ + && $(ECHO) yes \ + || $(ECHO) no; \ + ) + + +DEFAULT_LDFLAGS := \ + -Wl,--as-needed \ + -Wl,--no-allow-shlib-undefined \ + -Wl,--no-copy-dt-needed-entries \ + -Wl,--no-undefined \ + $(shell $(PKGCONF_CMD) --libs-only-L $(PKGCONF_LIBS) $(HIDE_ERR)) \ + $(shell $(PKGCONF_CMD) --libs-only-other $(PKGCONF_LIBS) $(HIDE_ERR)) + +ifeq ($(LD_HAS_FUSE_LINKER_PLUGIN),yes) +DEFAULT_LDFLAGS += -fuse-linker-plugin +endif + +EXTRA_LDFLAGS := +LDFLAGS := $(DEFAULT_LDFLAGS) $(EXTRA_LDFLAGS) + + +DEFAULT_LDLIBS := \ + -lc \ + $(shell $(PKGCONF_CMD) --libs-only-l $(PKGCONF_LIBS) $(HIDE_ERR)) +EXTRA_LDLIBS := +LDLIBS := $(DEFAULT_LDLIBS) $(EXTRA_LDLIBS) + + +endif # include guard |