Similar to the existing support for wxneeded, this adds ports
infrastructure to add -z nobtcfi to the linker invocation via our
wrapper script.

It looks like ld.bfd doesn't have this (yet?) so adding the flag is only
done for lld. (For amd64, only seabios uses ld.bfd; about half a dozen
ports use ld.bfd on some of mips64/powerpc for various reasons).

Index: databases/sqlports/Makefile
===================================================================
RCS file: /cvs/ports/databases/sqlports/Makefile,v
retrieving revision 1.136
diff -u -p -r1.136 Makefile
--- databases/sqlports/Makefile 9 Jan 2023 17:09:55 -0000       1.136
+++ databases/sqlports/Makefile 11 Jun 2023 10:34:24 -0000
@@ -1,5 +1,5 @@
 CATEGORIES =           databases
-V =                    7.37
+V =                    7.38
 DISTNAME =             sqlports-$V
 DISTFILES =
 COMMENT-main =         sqlite database of ports
Index: databases/sqlports/files/Info.pm
===================================================================
RCS file: /cvs/ports/databases/sqlports/files/Info.pm,v
retrieving revision 1.36
diff -u -p -r1.36 Info.pm
--- databases/sqlports/files/Info.pm    9 Jan 2023 17:09:55 -0000       1.36
+++ databases/sqlports/files/Info.pm    11 Jun 2023 10:34:24 -0000
@@ -100,6 +100,7 @@ our $vars = {
     USE_GMAKE => 'YesNoVar',
     USE_GROFF => 'YesNoVar',
     USE_LIBTOOL => 'YesNoGnuVar',
+    USE_NOBTCFI => 'YesNoVar',
     USE_NOEXECONLY => 'YesNoVar',
     USE_WXNEEDED => 'YesNoSpecialVar',
     COMPILER => 'DefinedVar',
Index: infrastructure/mk/bsd.port.mk
===================================================================
RCS file: /cvs/ports/infrastructure/mk/bsd.port.mk,v
retrieving revision 1.1588
diff -u -p -r1.1588 bsd.port.mk
--- infrastructure/mk/bsd.port.mk       17 May 2023 10:34:42 -0000      1.1588
+++ infrastructure/mk/bsd.port.mk       11 Jun 2023 10:34:24 -0000
@@ -136,9 +136,10 @@ _ALL_VARIABLES += BROKEN COMES_WITH \
        CONFIGURE_STYLE USE_LIBTOOL SEPARATE_BUILD \
        SHARED_LIBS TARGETS PSEUDO_FLAVOR \
        AUTOCONF_VERSION AUTOMAKE_VERSION CONFIGURE_ARGS \
-       GH_ACCOUNT GH_COMMIT GH_PROJECT GH_TAGNAME \
-       MAKEFILE_LIST USE_LLD USE_NOEXECONLY USE_WXNEEDED COMPILER \
-       COMPILER_LANGS COMPILER_LINKS SUBST_VARS UPDATE_PLIST_ARGS \
+       GH_ACCOUNT GH_COMMIT GH_PROJECT GH_TAGNAME MAKEFILE_LIST \
+       USE_LLD USE_NOEXECONLY USE_WXNEEDED USE_NOBTCFI \
+       COMPILER COMPILER_LANGS COMPILER_LINKS \
+       SUBST_VARS UPDATE_PLIST_ARGS \
        PKGPATHS DEBUG_PACKAGES DEBUG_CONFIGURE_ARGS \
        FIX_CRLF_FILES
 _ALL_VARIABLES_PER_ARCH += BROKEN
@@ -411,6 +412,10 @@ _LINKER_FLAGS += --no-execute-only
 USE_WXNEEDED ?= No
 .if ${USE_WXNEEDED:L} == "yes"
 _LINKER_FLAGS += -z wxneeded
+.endif
+USE_NOBTCFI ?= No
+.if ${USE_NOBTCFI:L} == "yes" && ${USE_LLD:L} == "yes"
+_LINKER_FLAGS += -z nobtcfi
 .endif
 USE_GMAKE ?= No
 .if ${USE_GMAKE:L} == "yes"

Reply via email to