[OE-core] [PATCH v2 4/5] bitbake.conf: include ASNEEDED in TARGET_LDFLAGS directly

Khem Raj raj.khem at gmail.com
Wed May 30 02:13:24 UTC 2018


On Tue, May 29, 2018 at 2:29 PM, Andre McCurdy <armccurdy at gmail.com> wrote:
> Previously, ASNEEDED was appended to TARGET_LDFLAGS from
> as-needed.inc via tcmode-default.inc and so may not have been enabled
> for external toolchain builds or other configurations which over-ride
> TCMODE (ie builds which do not include tcmode-default.inc).
>
> Include ASNEEDED in TARGET_LDFLAGS directly from bitbake.conf to
> ensure that the optimisation is applied to all builds (and for
> consistency with the way that TARGET_LINK_HASH_STYLE is handled).

We have to be ensure that external toolchains can either override or support
--as-needed feature, since we may not be able to control what linker they use
or version of gnu ld they may deploy.  From internal toolchains pov
this is a good change, but It would be good if some users of external toolchains
can chime in.

>
> Signed-off-by: Andre McCurdy <armccurdy at gmail.com>
> ---
>  meta/conf/bitbake.conf                      | 4 +++-
>  meta/conf/distro/include/as-needed.inc      | 4 ----
>  meta/conf/distro/include/tcmode-default.inc | 3 ---
>  3 files changed, 3 insertions(+), 8 deletions(-)
>  delete mode 100644 meta/conf/distro/include/as-needed.inc
>
> diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf
> index 15f6da7..fab3dcc 100644
> --- a/meta/conf/bitbake.conf
> +++ b/meta/conf/bitbake.conf
> @@ -585,8 +585,10 @@ LINKER_HASH_STYLE_mipsarch = "sysv"
>
>  TARGET_LINK_HASH_STYLE ?= "${@['-Wl,--hash-style=gnu',''][d.getVar('LINKER_HASH_STYLE') != 'gnu']}"
>
> +ASNEEDED ?= "-Wl,--as-needed"
> +
>  export LDFLAGS = "${TARGET_LDFLAGS}"
> -export TARGET_LDFLAGS = "-Wl,-O1 ${TARGET_LINK_HASH_STYLE}"
> +export TARGET_LDFLAGS = "-Wl,-O1 ${TARGET_LINK_HASH_STYLE} ${ASNEEDED}"
>
>  # Pass parallel make options to the compile task
>  EXTRA_OEMAKE_prepend_task-compile = "${PARALLEL_MAKE} "
> diff --git a/meta/conf/distro/include/as-needed.inc b/meta/conf/distro/include/as-needed.inc
> deleted file mode 100644
> index b163fef..0000000
> --- a/meta/conf/distro/include/as-needed.inc
> +++ /dev/null
> @@ -1,4 +0,0 @@
> -
> -ASNEEDED = "-Wl,--as-needed"
> -
> -TARGET_LDFLAGS += "${ASNEEDED}"
> diff --git a/meta/conf/distro/include/tcmode-default.inc b/meta/conf/distro/include/tcmode-default.inc
> index 4b58df0..d85fd1e 100644
> --- a/meta/conf/distro/include/tcmode-default.inc
> +++ b/meta/conf/distro/include/tcmode-default.inc
> @@ -65,12 +65,9 @@ PREFERRED_VERSION_glibc-initial            ?= "${GLIBCVERSION}"
>  PREFERRED_VERSION_nativesdk-glibc-initial  ?= "${GLIBCVERSION}"
>  PREFERRED_VERSION_cross-localedef-native   ?= "${GLIBCVERSION}"
>
> -
>  PREFERRED_VERSION_qemu ?= "${QEMUVERSION}"
>  PREFERRED_VERSION_qemu-native ?= "${QEMUVERSION}"
>  PREFERRED_VERSION_nativesdk-qemu ?= "${QEMUVERSION}"
> -# Setup suitable toolchain flags
> -require conf/distro/include/as-needed.inc
>
>  GOVERSION ?= "1.9%"
>  PREFERRED_VERSION_virtual/${TARGET_PREFIX}go ?= "${GOVERSION}"
> --
> 1.9.1
>
> --
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core at lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core



More information about the Openembedded-core mailing list