aboutsummaryrefslogtreecommitdiff
path: root/Mk
diff options
context:
space:
mode:
authorPiotr Kubaj <pkubaj@FreeBSD.org>2021-09-30 18:27:50 +0000
committerPiotr Kubaj <pkubaj@FreeBSD.org>2021-09-30 18:27:50 +0000
commitfb5f03a87cf432751fae1f0ae7f29c9d4fc65917 (patch)
tree7d6e0a0ce8cc89b60b7f23ba0e98d21b7724cddc /Mk
parentb479509b7b9cee14585e438d9439e2df06738a2c (diff)
downloadports-fb5f03a87cf432751fae1f0ae7f29c9d4fc65917.tar.gz
ports-fb5f03a87cf432751fae1f0ae7f29c9d4fc65917.zip
Mk/bsd.lto.mk: add global LTO support for ports
It's well known that LTO provides both performance and size benefits for binaries. Add preliminary, opt-in support for global LTO enforcement to ports. Ports that provide LTO option on their own and the ones that don't work with LTO will need to set LTO_UNSAFE in the future. PR: 258536
Diffstat (limited to 'Mk')
-rw-r--r--Mk/bsd.lto.mk10
-rw-r--r--Mk/bsd.port.mk4
2 files changed, 14 insertions, 0 deletions
diff --git a/Mk/bsd.lto.mk b/Mk/bsd.lto.mk
new file mode 100644
index 000000000000..c2a079ea28bb
--- /dev/null
+++ b/Mk/bsd.lto.mk
@@ -0,0 +1,10 @@
+# LTO Support
+
+LTO_Include_MAINTAINER= pkubaj@FreeBSD.org
+
+.if !defined(LTO_UNSAFE)
+# Overridable as a user may want to use -flto
+LTO_CFLAGS?= -flto=thin
+CFLAGS+= ${LTO_CFLAGS}
+CXXFLAGS+= ${LTO_CFLAGS}
+.endif
diff --git a/Mk/bsd.port.mk b/Mk/bsd.port.mk
index 337d3f6be6a6..493b15a59fff 100644
--- a/Mk/bsd.port.mk
+++ b/Mk/bsd.port.mk
@@ -1799,6 +1799,10 @@ INSTALL_TARGET:= ${INSTALL_TARGET:S/^install-strip$/install/g}
.endif
.endif
+.if defined(USE_LTO)
+.include "${PORTSDIR}/Mk/bsd.lto.mk"
+.endif
+
.if !defined(WITHOUT_SSP)
.include "${PORTSDIR}/Mk/bsd.ssp.mk"
.endif