Files
poky/meta/recipes-core/glibc/glibc.inc
Richard Purdie 0a35803265 glibc: Add missing binutils dependency
glibc has it's dependencies handled more manually due to it's place
in the toolchain bootstrap. It depends upon the compiler and indirectly
through that to binutils. This did mean that if binutils changes and the
compiler does not, sstate and hash equivalence could mean that glibc
wouldn't rebuild.

Add a direct dependency on binutils that if it changes, it forces glibc
to rebuild, as it should.

(From OE-Core rev: de967efc52b858fd51b857d8de731692287430d7)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit c4a7b3decff636292f5e76e95406a22b6fe4a994)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-03-23 22:45:34 +00:00

59 lines
1.9 KiB
PHP

require glibc-common.inc
require glibc-ld.inc
DEPENDS = "virtual/${TARGET_PREFIX}gcc virtual/${TARGET_PREFIX}binutils${BUSUFFIX} libgcc-initial linux-libc-headers"
BUSUFFIX= ""
BUSUFFIX:class-nativesdk = "-crosssdk"
PROVIDES = "virtual/libc"
PROVIDES += "virtual/libintl virtual/libiconv"
inherit autotools texinfo systemd
LEAD_SONAME = "libc.so"
# msgfmt could come from gettext-native but we don't depend on that and
# disable for reproducibility
CACHED_CONFIGUREVARS += " \
ac_cv_path_BASH_SHELL=${base_bindir}/bash \
ac_cv_prog_MSGFMT= \
libc_cv_slibdir=${base_libdir} \
libc_cv_rootsbindir=${base_sbindir} \
libc_cv_localedir=${localedir} \
libc_cv_ssp_strong=no \
libc_cv_ssp_all=no \
libc_cv_ssp=no \
libc_cv_include_x86_isa_level=no \
"
# ifunc doesn't appear to work on mips, casuses libbfd assertion failures
CACHED_CONFIGUREVARS:append:mipsarch = " libc_cv_ld_gnu_indirect_function=no"
GLIBC_EXTRA_OECONF ?= ""
GLIBC_EXTRA_OECONF:class-nativesdk = ""
# glibc uses PARALLELMFLAGS variable to pass parallel build info so transfer
# PARALLEL_MAKE into PARALLELMFLAGS and empty out PARALLEL_MAKE
EGLIBCPARALLELISM := "PARALLELMFLAGS="${PARALLEL_MAKE}""
EXTRA_OEMAKE[vardepsexclude] += "EGLIBCPARALLELISM"
EXTRA_OEMAKE += "${EGLIBCPARALLELISM}"
PARALLEL_MAKE = ""
# glibc make-syscalls.sh has a number of issues with /bin/dash and
# it's output which make calls via the SHELL also has issues, so
# ensure make uses /bin/bash
EXTRA_OEMAKE += "SHELL=/bin/bash"
# We do not need bash to run tzselect script, the default is to use
# bash but it can be configured by setting KSHELL Makefile variable
EXTRA_OEMAKE += "KSHELL=/bin/sh"
do_configure:prepend() {
sed -e "s#/bin/bash#/bin/sh#" -i ${S}/elf/ldd.bash.in
}
# Enable backtrace from abort()
do_configure:append:arm () {
echo "CFLAGS-abort.c = -fasynchronous-unwind-tables" >> ${B}/configparms
echo "CFLAGS-raise.c = -fasynchronous-unwind-tables" >> ${B}/configparms
}