From c39dfcbabc0e7f913a0ccdf458af46e47cf8d1a2 Mon Sep 17 00:00:00 2001 From: Sinan Kaya Date: Mon, 16 Nov 2020 00:40:33 +0000 Subject: poky-tiny: enable section removal Use GCC sections flags so that unused sections can be garbage collected at link time. (From meta-yocto rev: 70176ee6235c2545e18df855cac2c3524b7e50e4) Signed-off-by: Sinan Kaya Signed-off-by: Richard Purdie --- meta-poky/conf/distro/include/gcsections.inc | 22 ++++++++++++++++++++++ meta-poky/conf/distro/poky-tiny.conf | 2 ++ 2 files changed, 24 insertions(+) create mode 100644 meta-poky/conf/distro/include/gcsections.inc (limited to 'meta-poky') diff --git a/meta-poky/conf/distro/include/gcsections.inc b/meta-poky/conf/distro/include/gcsections.inc new file mode 100644 index 0000000000..dd98943acb --- /dev/null +++ b/meta-poky/conf/distro/include/gcsections.inc @@ -0,0 +1,22 @@ +CFLAGS_SECTION_REMOVAL = "-ffunction-sections -fdata-sections" +LDFLAGS_SECTION_REMOVAL = "-Wl,--gc-sections" + +# packages with build problems using sections +CFLAGS_SECTION_REMOVAL_pn-glibc = "" +LDFLAGS_SECTION_REMOVAL_pn-glibc = "" +CFLAGS_SECTION_REMOVAL_pn-cairo = "" +LDFLAGS_SECTION_REMOVAL_pn-cairo = "" +CFLAGS_SECTION_REMOVAL_pn-perl = "" +LDFLAGS_SECTION_REMOVAL_pn-perl = "" +CFLAGS_SECTION_REMOVAL_pn-grub-efi = "" +LDFLAGS_SECTION_REMOVAL_pn-grub-efi = "" +CFLAGS_SECTION_REMOVAL_pn-grub = "" +LDFLAGS_SECTION_REMOVAL_pn-grub = "" + +# set default for target +CFLAGS_append_class-target = " ${CFLAGS_SECTION_REMOVAL}" +LDFLAGS_append_class-target = " ${LDFLAGS_SECTION_REMOVAL}" + +# set default for nativesdk +CFLAGS_append_class-nativesdk = " ${CFLAGS_SECTION_REMOVAL}" +LDFLAGS_append_class-nativesdk = " ${LDFLAGS_SECTION_REMOVAL}" diff --git a/meta-poky/conf/distro/poky-tiny.conf b/meta-poky/conf/distro/poky-tiny.conf index 9a043b1ef5..e125b23d46 100644 --- a/meta-poky/conf/distro/poky-tiny.conf +++ b/meta-poky/conf/distro/poky-tiny.conf @@ -29,6 +29,8 @@ # [ ] Modify busybox to allow for DISTRO_FEATURES-like confiruration require conf/distro/poky.conf +require conf/distro/include/gcsections.inc + DISTRO = "poky-tiny" DISTROOVERRIDES = "poky:poky-tiny" TCLIBC = "musl" -- cgit v1.2.3-54-g00ecf