blob: 04e6db99b9fe9dea33e953ea10f548dccde759ef [file] [log] [blame]
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001require glibc-common.inc
2require glibc-ld.inc
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003
Brad Bishop19323692019-04-05 15:28:33 -04004DEPENDS = "virtual/${TARGET_PREFIX}gcc libgcc-initial linux-libc-headers"
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005
Brad Bishop19323692019-04-05 15:28:33 -04006PROVIDES = "virtual/libc"
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007PROVIDES += "virtual/libintl virtual/libiconv"
Andrew Geissler5a43b432020-06-13 10:46:56 -05008inherit autotools texinfo systemd
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009
10LEAD_SONAME = "libc.so"
11
Andrew Geissler82c905d2020-04-13 13:39:40 -050012# msgfmt could come from gettext-native but we don't depend on that and
13# disable for reproducibility
Patrick Williamsc124f4f2015-09-15 14:41:29 -050014CACHED_CONFIGUREVARS += " \
15 ac_cv_path_BASH_SHELL=${base_bindir}/bash \
Andrew Geissler82c905d2020-04-13 13:39:40 -050016 ac_cv_prog_MSGFMT= \
Patrick Williamsc124f4f2015-09-15 14:41:29 -050017 libc_cv_slibdir=${base_libdir} \
18 libc_cv_rootsbindir=${base_sbindir} \
19 libc_cv_localedir=${localedir} \
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050020 libc_cv_ssp_strong=no \
Brad Bishop316dfdd2018-06-25 12:45:53 -040021 libc_cv_ssp_all=no \
Patrick Williamsc124f4f2015-09-15 14:41:29 -050022 libc_cv_ssp=no \
Andrew Geissler90fd73c2021-03-05 15:25:55 -060023 libc_cv_include_x86_isa_level=no \
Patrick Williamsc124f4f2015-09-15 14:41:29 -050024"
25
Brad Bishop19323692019-04-05 15:28:33 -040026# ifunc doesn't appear to work on mips, casuses libbfd assertion failures
Patrick Williams213cb262021-08-07 19:21:33 -050027CACHED_CONFIGUREVARS:append:mipsarch = " libc_cv_ld_gnu_indirect_function=no"
Brad Bishop19323692019-04-05 15:28:33 -040028
Patrick Williamsc124f4f2015-09-15 14:41:29 -050029GLIBC_EXTRA_OECONF ?= ""
Patrick Williams213cb262021-08-07 19:21:33 -050030GLIBC_EXTRA_OECONF:class-nativesdk = ""
Patrick Williamsc124f4f2015-09-15 14:41:29 -050031
32# glibc uses PARALLELMFLAGS variable to pass parallel build info so transfer
33# PARALLEL_MAKE into PARALLELMFLAGS and empty out PARALLEL_MAKE
34EGLIBCPARALLELISM := "PARALLELMFLAGS="${PARALLEL_MAKE}""
35EXTRA_OEMAKE[vardepsexclude] += "EGLIBCPARALLELISM"
36EXTRA_OEMAKE += "${EGLIBCPARALLELISM}"
37PARALLEL_MAKE = ""
38
39# glibc make-syscalls.sh has a number of issues with /bin/dash and
40# it's output which make calls via the SHELL also has issues, so
41# ensure make uses /bin/bash
42EXTRA_OEMAKE += "SHELL=/bin/bash"
43
Patrick Williams213cb262021-08-07 19:21:33 -050044do_configure:prepend() {
Patrick Williamsc124f4f2015-09-15 14:41:29 -050045 sed -e "s#@BASH@#/bin/sh#" -i ${S}/elf/ldd.bash.in
Patrick Williamsc124f4f2015-09-15 14:41:29 -050046}
47
Brad Bishop37a0e4d2017-12-04 01:01:44 -050048# Enable backtrace from abort()
Patrick Williams213cb262021-08-07 19:21:33 -050049do_configure:append:arm () {
Brad Bishop37a0e4d2017-12-04 01:01:44 -050050 echo "CFLAGS-abort.c = -fasynchronous-unwind-tables" >> ${B}/configparms
51 echo "CFLAGS-raise.c = -fasynchronous-unwind-tables" >> ${B}/configparms
52}