summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKhem Raj <raj.khem@gmail.com>2020-11-08 16:02:09 -0800
committerRichard Purdie <richard.purdie@linuxfoundation.org>2020-11-11 10:04:34 +0000
commit770c69c51f87223eee7bd968fd28a5dc15a955d6 (patch)
treefbd5f6303a22b4e3c486a51905522c019c5b4d91
parent2ccaa99871af8cb5b41e12a619e1bfbea4ca6f33 (diff)
downloadopenembedded-core-contrib-770c69c51f87223eee7bd968fd28a5dc15a955d6.tar.gz
lto.inc: Add -ffat-lto-objects and -fuse-linker-plugin
This helps to improve LTO and ensure the libs can be linked with non-LTO objects too Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--meta/conf/distro/include/lto.inc11
1 files changed, 10 insertions, 1 deletions
diff --git a/meta/conf/distro/include/lto.inc b/meta/conf/distro/include/lto.inc
index fe0f6c9f44..d7fea26c64 100644
--- a/meta/conf/distro/include/lto.inc
+++ b/meta/conf/distro/include/lto.inc
@@ -20,7 +20,16 @@ LTO_pn-libbsd = ""
# Override it for additional or different options if needed e.g.
# with clang thin-lto might be better for compile speed
-LTO ?= "-flto"
+#
+# ffat-lto-objects
+# object files that contain both the intermediate
+# language and the object code. This makes them
+# usable for both LTO linking and normal linking
+#
+# -fuse-linker-plugin
+# ensures that libraries participate in LTO by supplying intermediate
+# code from .a files to linker
+LTO ?= "-flto -ffat-lto-objects -fuse-linker-plugin "
SELECTED_OPTIMIZATION_append = "${@bb.utils.contains('DISTRO_FEATURES', 'lto', ' ${LTO}', '', d)}"
TARGET_LDFLAGS_append_class-target = "${@bb.utils.contains('DISTRO_FEATURES', 'lto', ' ${LTO}', '', d)}"