From 3bdf1ced1f638227b7276010deaca8df886af66b Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Thu, 13 Dec 2018 18:49:01 -0800 Subject: glibc: Upgrade towards 2.29 release Signed-off-by: Khem Raj Signed-off-by: Martin Jansa --- meta/conf/distro/include/tcmode-default.inc | 2 +- .../glibc/cross-localedef-native_2.28.bb | 51 ---- .../glibc/cross-localedef-native_2.29.bb | 52 ++++ meta/recipes-core/glibc/glibc-locale_2.28.bb | 1 - meta/recipes-core/glibc/glibc-locale_2.29.bb | 1 + meta/recipes-core/glibc/glibc-mtrace_2.28.bb | 1 - meta/recipes-core/glibc/glibc-mtrace_2.29.bb | 1 + meta/recipes-core/glibc/glibc-scripts_2.28.bb | 1 - meta/recipes-core/glibc/glibc-scripts_2.29.bb | 1 + ...libc-Look-for-host-system-ld.so.cache-as-.patch | 8 +- ...libc-Fix-buffer-overrun-with-a-relocated-.patch | 8 +- ...libc-Raise-the-size-of-arrays-containing-.patch | 16 +- ...ivesdk-glibc-Allow-64-bit-atomics-for-x86.patch | 39 ++- ...libc-Make-relocatable-install-for-locales.patch | 7 +- ...500-e5500-e6500-603e-fsqrt-implementation.patch | 7 +- ...-OECORE_KNOWN_INTERPRETER_NAMES-to-known-.patch | 8 +- ...-Fix-undefined-reference-to-__sqrt_finite.patch | 7 +- ...qrt-f-are-now-inline-functions-and-call-o.patch | 9 +- ...bug-1443-which-explains-what-the-patch-do.patch | 8 +- ...n-libm-err-tab.pl-with-specific-dirs-in-S.patch | 21 +- ...qrt-f-are-now-inline-functions-and-call-o.patch | 9 +- ...-configure.ac-handle-correctly-libc_cv_ro.patch | 7 +- .../glibc/glibc/0014-Add-unused-attribute.patch | 7 +- ...thin-the-path-sets-wrong-config-variables.patch | 7 +- ...-timezone-re-written-tzselect-as-posix-sh.patch | 11 +- ...move-bash-dependency-for-nscd-init-script.patch | 7 +- ...c-Cross-building-and-testing-instructions.patch | 7 +- ...019-eglibc-Help-bootstrap-cross-toolchain.patch | 9 +- .../0020-eglibc-Clear-cache-lines-on-ppc8xx.patch | 7 +- ...0021-eglibc-Resolve-__fpscr_values-on-SH4.patch | 7 +- ...ward-port-cross-locale-generation-support.patch | 29 +- ...0023-Define-DUMMY_LOCALE_T-if-not-defined.patch | 7 +- ....c-Make-_dl_build_local_scope-breadth-fir.patch | 7 +- ...-locale-fix-hard-coded-reference-to-gcc-E.patch | 35 --- ...25-reset-dl_load_write_lock-after-forking.patch | 40 +++ ...so-lock-before-switching-to-malloc_atfork.patch | 68 +++++ ...26-reset-dl_load_write_lock-after-forking.patch | 37 --- ...so-lock-before-switching-to-malloc_atfork.patch | 65 ----- ...dd-to-archive-uses-a-hard-coded-locale-pa.patch | 84 ++++++ ...o-consts.h-enum-definition-for-TRAP_HWBKP.patch | 66 ----- ...tl-Emit-no-lines-in-bison-generated-files.patch | 34 +++ .../0029-inject-file-assembly-directives.patch | 304 +++++++++++++++++++++ ...dd-to-archive-uses-a-hard-coded-locale-pa.patch | 89 ------ ...tl-Emit-no-lines-in-bison-generated-files.patch | 31 --- ...e754-prevent-maybe-uninitialized-errors-w.patch | 138 ++++++++++ ...ent-maybe-uninitialized-errors-with-Os-BZ.patch | 56 ++++ ...e754-prevent-maybe-uninitialized-errors-w.patch | 258 ----------------- ...e754-soft-fp-ignore-maybe-uninitialized-w.patch | 100 ------- ...ent-maybe-uninitialized-errors-with-Os-BZ.patch | 68 ----- .../0034-inject-file-assembly-directives.patch | 272 ------------------ meta/recipes-core/glibc/glibc_2.28.bb | 135 --------- meta/recipes-core/glibc/glibc_2.29.bb | 133 +++++++++ 52 files changed, 1085 insertions(+), 1298 deletions(-) delete mode 100644 meta/recipes-core/glibc/cross-localedef-native_2.28.bb create mode 100644 meta/recipes-core/glibc/cross-localedef-native_2.29.bb delete mode 100644 meta/recipes-core/glibc/glibc-locale_2.28.bb create mode 100644 meta/recipes-core/glibc/glibc-locale_2.29.bb delete mode 100644 meta/recipes-core/glibc/glibc-mtrace_2.28.bb create mode 100644 meta/recipes-core/glibc/glibc-mtrace_2.29.bb delete mode 100644 meta/recipes-core/glibc/glibc-scripts_2.28.bb create mode 100644 meta/recipes-core/glibc/glibc-scripts_2.29.bb delete mode 100644 meta/recipes-core/glibc/glibc/0025-locale-fix-hard-coded-reference-to-gcc-E.patch create mode 100644 meta/recipes-core/glibc/glibc/0025-reset-dl_load_write_lock-after-forking.patch create mode 100644 meta/recipes-core/glibc/glibc/0026-Acquire-ld.so-lock-before-switching-to-malloc_atfork.patch delete mode 100644 meta/recipes-core/glibc/glibc/0026-reset-dl_load_write_lock-after-forking.patch delete mode 100644 meta/recipes-core/glibc/glibc/0027-Acquire-ld.so-lock-before-switching-to-malloc_atfork.patch create mode 100644 meta/recipes-core/glibc/glibc/0027-localedef-add-to-archive-uses-a-hard-coded-locale-pa.patch delete mode 100644 meta/recipes-core/glibc/glibc/0028-bits-siginfo-consts.h-enum-definition-for-TRAP_HWBKP.patch create mode 100644 meta/recipes-core/glibc/glibc/0028-intl-Emit-no-lines-in-bison-generated-files.patch create mode 100644 meta/recipes-core/glibc/glibc/0029-inject-file-assembly-directives.patch delete mode 100644 meta/recipes-core/glibc/glibc/0029-localedef-add-to-archive-uses-a-hard-coded-locale-pa.patch delete mode 100644 meta/recipes-core/glibc/glibc/0030-intl-Emit-no-lines-in-bison-generated-files.patch create mode 100644 meta/recipes-core/glibc/glibc/0030-sysdeps-ieee754-prevent-maybe-uninitialized-errors-w.patch create mode 100644 meta/recipes-core/glibc/glibc/0031-locale-prevent-maybe-uninitialized-errors-with-Os-BZ.patch delete mode 100644 meta/recipes-core/glibc/glibc/0031-sysdeps-ieee754-prevent-maybe-uninitialized-errors-w.patch delete mode 100644 meta/recipes-core/glibc/glibc/0032-sysdeps-ieee754-soft-fp-ignore-maybe-uninitialized-w.patch delete mode 100644 meta/recipes-core/glibc/glibc/0033-locale-prevent-maybe-uninitialized-errors-with-Os-BZ.patch delete mode 100644 meta/recipes-core/glibc/glibc/0034-inject-file-assembly-directives.patch delete mode 100644 meta/recipes-core/glibc/glibc_2.28.bb create mode 100644 meta/recipes-core/glibc/glibc_2.29.bb diff --git a/meta/conf/distro/include/tcmode-default.inc b/meta/conf/distro/include/tcmode-default.inc index 8c99907f02..663d3917e8 100644 --- a/meta/conf/distro/include/tcmode-default.inc +++ b/meta/conf/distro/include/tcmode-default.inc @@ -22,7 +22,7 @@ GCCVERSION ?= "8.%" SDKGCCVERSION ?= "${GCCVERSION}" BINUVERSION ?= "2.31%" GDBVERSION ?= "8.2%" -GLIBCVERSION ?= "2.28%" +GLIBCVERSION ?= "2.29%" LINUXLIBCVERSION ?= "4.18%" QEMUVERSION ?= "3.1%" GOVERSION ?= "1.11%" diff --git a/meta/recipes-core/glibc/cross-localedef-native_2.28.bb b/meta/recipes-core/glibc/cross-localedef-native_2.28.bb deleted file mode 100644 index a05b94e3b3..0000000000 --- a/meta/recipes-core/glibc/cross-localedef-native_2.28.bb +++ /dev/null @@ -1,51 +0,0 @@ -SUMMARY = "Cross locale generation tool for glibc" -HOMEPAGE = "http://www.gnu.org/software/libc/libc.html" -SECTION = "libs" -LICENSE = "LGPL-2.1" - -LIC_FILES_CHKSUM = "file://LICENSES;md5=cfc0ed77a9f62fa62eded042ebe31d72 \ - file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ - file://posix/rxspencer/COPYRIGHT;md5=dc5485bb394a13b2332ec1c785f5d83a \ - file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c" - -# Tell autotools that we're working in the localedef directory -# -AUTOTOOLS_SCRIPT_PATH = "${S}/localedef" - -inherit native -inherit autotools - -FILESEXTRAPATHS =. "${FILE_DIRNAME}/${PN}:${FILE_DIRNAME}/glibc:" - -SRCBRANCH ?= "release/${PV}/master" -GLIBC_GIT_URI ?= "git://sourceware.org/git/glibc.git" -UPSTREAM_CHECK_GITTAGREGEX = "(?P\d+\.\d+(\.(?!90)\d+)*)" - -SRCREV_glibc ?= "3c03baca37fdcb52c3881e653ca392bba7a99c2b" -SRCREV_localedef ?= "c328777219ccc480be3112cf807217ca6b570b64" - -SRC_URI = "${GLIBC_GIT_URI};branch=${SRCBRANCH};name=glibc \ - git://github.com/kraj/localedef;branch=master;name=localedef;destsuffix=git/localedef \ - file://0016-timezone-re-written-tzselect-as-posix-sh.patch \ - file://0017-Remove-bash-dependency-for-nscd-init-script.patch \ - file://0018-eglibc-Cross-building-and-testing-instructions.patch \ - file://0019-eglibc-Help-bootstrap-cross-toolchain.patch \ - file://0020-eglibc-Clear-cache-lines-on-ppc8xx.patch \ - file://0021-eglibc-Resolve-__fpscr_values-on-SH4.patch \ - file://0022-eglibc-Forward-port-cross-locale-generation-support.patch \ - file://0023-Define-DUMMY_LOCALE_T-if-not-defined.patch \ - file://0029-localedef-add-to-archive-uses-a-hard-coded-locale-pa.patch \ -" -# Makes for a rather long rev (22 characters), but... -# -SRCREV_FORMAT = "glibc_localedef" - -S = "${WORKDIR}/git" - -EXTRA_OECONF = "--with-glibc=${S}" -CFLAGS += "-fgnu89-inline -std=gnu99 -DIS_IN\(x\)='0'" - -do_install() { - install -d ${D}${bindir} - install -m 0755 ${B}/localedef ${D}${bindir}/cross-localedef -} diff --git a/meta/recipes-core/glibc/cross-localedef-native_2.29.bb b/meta/recipes-core/glibc/cross-localedef-native_2.29.bb new file mode 100644 index 0000000000..c8a425cde8 --- /dev/null +++ b/meta/recipes-core/glibc/cross-localedef-native_2.29.bb @@ -0,0 +1,52 @@ +SUMMARY = "Cross locale generation tool for glibc" +HOMEPAGE = "http://www.gnu.org/software/libc/libc.html" +SECTION = "libs" +LICENSE = "LGPL-2.1" + +LIC_FILES_CHKSUM = "file://LICENSES;md5=cfc0ed77a9f62fa62eded042ebe31d72 \ + file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ + file://posix/rxspencer/COPYRIGHT;md5=dc5485bb394a13b2332ec1c785f5d83a \ + file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c" + +# Tell autotools that we're working in the localedef directory +# +AUTOTOOLS_SCRIPT_PATH = "${S}/localedef" + +inherit native +inherit autotools + +FILESEXTRAPATHS =. "${FILE_DIRNAME}/${PN}:${FILE_DIRNAME}/glibc:" + +#SRCBRANCH ?= "release/${PV}/master" +SRCBRANCH ?= "master" +GLIBC_GIT_URI ?= "git://sourceware.org/git/glibc.git" +UPSTREAM_CHECK_GITTAGREGEX = "(?P\d+\.\d+(\.(?!90)\d+)*)" + +SRCREV_glibc ?= "ab4169313cdb15d688242609aef879fc5121356e" +SRCREV_localedef ?= "cd9f958c4c94a638fa7b2b4e21627364f1a1a655" + +SRC_URI = "${GLIBC_GIT_URI};branch=${SRCBRANCH};name=glibc \ + git://github.com/kraj/localedef;branch=master;name=localedef;destsuffix=git/localedef \ + file://0016-timezone-re-written-tzselect-as-posix-sh.patch \ + file://0017-Remove-bash-dependency-for-nscd-init-script.patch \ + file://0018-eglibc-Cross-building-and-testing-instructions.patch \ + file://0019-eglibc-Help-bootstrap-cross-toolchain.patch \ + file://0020-eglibc-Clear-cache-lines-on-ppc8xx.patch \ + file://0021-eglibc-Resolve-__fpscr_values-on-SH4.patch \ + file://0022-eglibc-Forward-port-cross-locale-generation-support.patch \ + file://0023-Define-DUMMY_LOCALE_T-if-not-defined.patch \ + file://0027-localedef-add-to-archive-uses-a-hard-coded-locale-pa.patch \ +" +# Makes for a rather long rev (22 characters), but... +# +SRCREV_FORMAT = "glibc_localedef" + +S = "${WORKDIR}/git" + +EXTRA_OECONF = "--with-glibc=${S}" +CFLAGS += "-fgnu89-inline -std=gnu99 -DIS_IN\(x\)='0'" + +do_install() { + install -d ${D}${bindir} + install -m 0755 ${B}/localedef ${D}${bindir}/cross-localedef +} diff --git a/meta/recipes-core/glibc/glibc-locale_2.28.bb b/meta/recipes-core/glibc/glibc-locale_2.28.bb deleted file mode 100644 index f7702e0358..0000000000 --- a/meta/recipes-core/glibc/glibc-locale_2.28.bb +++ /dev/null @@ -1 +0,0 @@ -require glibc-locale.inc diff --git a/meta/recipes-core/glibc/glibc-locale_2.29.bb b/meta/recipes-core/glibc/glibc-locale_2.29.bb new file mode 100644 index 0000000000..f7702e0358 --- /dev/null +++ b/meta/recipes-core/glibc/glibc-locale_2.29.bb @@ -0,0 +1 @@ +require glibc-locale.inc diff --git a/meta/recipes-core/glibc/glibc-mtrace_2.28.bb b/meta/recipes-core/glibc/glibc-mtrace_2.28.bb deleted file mode 100644 index 0b69bad46a..0000000000 --- a/meta/recipes-core/glibc/glibc-mtrace_2.28.bb +++ /dev/null @@ -1 +0,0 @@ -require glibc-mtrace.inc diff --git a/meta/recipes-core/glibc/glibc-mtrace_2.29.bb b/meta/recipes-core/glibc/glibc-mtrace_2.29.bb new file mode 100644 index 0000000000..0b69bad46a --- /dev/null +++ b/meta/recipes-core/glibc/glibc-mtrace_2.29.bb @@ -0,0 +1 @@ +require glibc-mtrace.inc diff --git a/meta/recipes-core/glibc/glibc-scripts_2.28.bb b/meta/recipes-core/glibc/glibc-scripts_2.28.bb deleted file mode 100644 index 5a89bd8022..0000000000 --- a/meta/recipes-core/glibc/glibc-scripts_2.28.bb +++ /dev/null @@ -1 +0,0 @@ -require glibc-scripts.inc diff --git a/meta/recipes-core/glibc/glibc-scripts_2.29.bb b/meta/recipes-core/glibc/glibc-scripts_2.29.bb new file mode 100644 index 0000000000..5a89bd8022 --- /dev/null +++ b/meta/recipes-core/glibc/glibc-scripts_2.29.bb @@ -0,0 +1 @@ +require glibc-scripts.inc diff --git a/meta/recipes-core/glibc/glibc/0001-nativesdk-glibc-Look-for-host-system-ld.so.cache-as-.patch b/meta/recipes-core/glibc/glibc/0001-nativesdk-glibc-Look-for-host-system-ld.so.cache-as-.patch index 5df26a8545..bda9c0db8f 100644 --- a/meta/recipes-core/glibc/glibc/0001-nativesdk-glibc-Look-for-host-system-ld.so.cache-as-.patch +++ b/meta/recipes-core/glibc/glibc/0001-nativesdk-glibc-Look-for-host-system-ld.so.cache-as-.patch @@ -1,7 +1,8 @@ -From bd51b3add89a5cb2d8f44029a1027c780b2afff5 Mon Sep 17 00:00:00 2001 +From aee27435f64dfec4b82bb6cd076eec9a1319336c Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Wed, 18 Mar 2015 01:48:24 +0000 -Subject: [PATCH] nativesdk-glibc: Look for host system ld.so.cache as well +Subject: [PATCH 01/31] nativesdk-glibc: Look for host system ld.so.cache as + well Upstream-Status: Inappropriate [embedded specific] @@ -63,3 +64,6 @@ index c51e4b3718..44bbb69dc4 100644 /* Add another newline when we are tracing the library loading. */ if (__glibc_unlikely (GLRO(dl_debug_mask) & DL_DEBUG_LIBS)) _dl_debug_printf ("\n"); +-- +2.20.1 + diff --git a/meta/recipes-core/glibc/glibc/0002-nativesdk-glibc-Fix-buffer-overrun-with-a-relocated-.patch b/meta/recipes-core/glibc/glibc/0002-nativesdk-glibc-Fix-buffer-overrun-with-a-relocated-.patch index daadec76c7..14fd30ebf1 100644 --- a/meta/recipes-core/glibc/glibc/0002-nativesdk-glibc-Fix-buffer-overrun-with-a-relocated-.patch +++ b/meta/recipes-core/glibc/glibc/0002-nativesdk-glibc-Fix-buffer-overrun-with-a-relocated-.patch @@ -1,7 +1,8 @@ -From fdc8a33ac2c81a0237b8a6d8b1aac7f1cdbb46af Mon Sep 17 00:00:00 2001 +From 61982eda5ecfa644496360bf3032820fb9836989 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Wed, 18 Mar 2015 01:50:00 +0000 -Subject: [PATCH] nativesdk-glibc: Fix buffer overrun with a relocated SDK +Subject: [PATCH 02/31] nativesdk-glibc: Fix buffer overrun with a relocated + SDK When ld-linux-*.so.2 is relocated to a path that is longer than the original fixed location, the dynamic loader will crash in open_path @@ -44,3 +45,6 @@ index 44bbb69dc4..74e2e5e962 100644 do { struct r_search_path_elem *this_dir = *dirs; +-- +2.20.1 + diff --git a/meta/recipes-core/glibc/glibc/0003-nativesdk-glibc-Raise-the-size-of-arrays-containing-.patch b/meta/recipes-core/glibc/glibc/0003-nativesdk-glibc-Raise-the-size-of-arrays-containing-.patch index e082540303..32da16f61f 100644 --- a/meta/recipes-core/glibc/glibc/0003-nativesdk-glibc-Raise-the-size-of-arrays-containing-.patch +++ b/meta/recipes-core/glibc/glibc/0003-nativesdk-glibc-Raise-the-size-of-arrays-containing-.patch @@ -1,7 +1,8 @@ -From 055dd46b793168fb08e44913153010b088011ba2 Mon Sep 17 00:00:00 2001 +From 54ec801c5fbbe9e84ce430ba317ffd5705e2ff58 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Wed, 18 Mar 2015 01:51:38 +0000 -Subject: [PATCH] nativesdk-glibc: Raise the size of arrays containing dl paths +Subject: [PATCH 03/31] nativesdk-glibc: Raise the size of arrays containing dl + paths This patch puts the dynamic loader path in the binaries, SYSTEM_DIRS strings and lengths as well as ld.so.cache path in the dynamic loader to specific @@ -25,7 +26,7 @@ Signed-off-by: Khem Raj 7 files changed, 14 insertions(+), 10 deletions(-) diff --git a/elf/dl-cache.c b/elf/dl-cache.c -index 6ee5153ff9..37a5f701fa 100644 +index 6dd99a35b9..776aea1fd5 100644 --- a/elf/dl-cache.c +++ b/elf/dl-cache.c @@ -133,6 +133,10 @@ do \ @@ -107,7 +108,7 @@ index 1b0c74739f..a70a62d31e 100644 ++_dl_skip_args; --_dl_argc; diff --git a/iconv/gconv_conf.c b/iconv/gconv_conf.c -index f173cde71b..5c3205026f 100644 +index 2b73dd8f45..562a7423f3 100644 --- a/iconv/gconv_conf.c +++ b/iconv/gconv_conf.c @@ -36,7 +36,7 @@ @@ -117,8 +118,8 @@ index f173cde71b..5c3205026f 100644 -static const char default_gconv_path[] = GCONV_PATH; +static char default_gconv_path[4096] __attribute__ ((section (".gccrelocprefix"))) = GCONV_PATH; - /* The path elements, as determined by the __gconv_get_path function. - All path elements end in a slash. */ + /* Type to represent search path. */ + struct path_elem diff --git a/sysdeps/generic/dl-cache.h b/sysdeps/generic/dl-cache.h index cf43f1cf3b..7f07adde53 100644 --- a/sysdeps/generic/dl-cache.h @@ -134,3 +135,6 @@ index cf43f1cf3b..7f07adde53 100644 #ifndef add_system_dir # define add_system_dir(dir) add_dir (dir) #endif +-- +2.20.1 + diff --git a/meta/recipes-core/glibc/glibc/0004-nativesdk-glibc-Allow-64-bit-atomics-for-x86.patch b/meta/recipes-core/glibc/glibc/0004-nativesdk-glibc-Allow-64-bit-atomics-for-x86.patch index 1ae2e33b4f..6409dbfcf9 100644 --- a/meta/recipes-core/glibc/glibc/0004-nativesdk-glibc-Allow-64-bit-atomics-for-x86.patch +++ b/meta/recipes-core/glibc/glibc/0004-nativesdk-glibc-Allow-64-bit-atomics-for-x86.patch @@ -1,7 +1,7 @@ -From a237553ccd15276462be2023057a017fa8ee5d7c Mon Sep 17 00:00:00 2001 +From 8080b9ae7f4d673a32b1df892bf3dddb9dff2789 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Thu, 31 Dec 2015 14:35:35 -0800 -Subject: [PATCH] nativesdk-glibc: Allow 64 bit atomics for x86 +Subject: [PATCH 04/31] nativesdk-glibc: Allow 64 bit atomics for x86 The fix consist of allowing 64bit atomic ops for x86. This should be safe for i586 and newer CPUs. @@ -13,19 +13,30 @@ Signed-off-by: Juro Bystricky Signed-off-by: Richard Purdie Signed-off-by: Khem Raj --- - sysdeps/i386/atomic-machine.h | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) + sysdeps/x86/atomic-machine.h | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) -diff --git a/sysdeps/i386/atomic-machine.h b/sysdeps/i386/atomic-machine.h -index 272da5dd8f..409c759f14 100644 ---- a/sysdeps/i386/atomic-machine.h -+++ b/sysdeps/i386/atomic-machine.h -@@ -54,7 +54,7 @@ typedef uintmax_t uatomic_max_t; - # endif +diff --git a/sysdeps/x86/atomic-machine.h b/sysdeps/x86/atomic-machine.h +index b06de58190..ebe572fa80 100644 +--- a/sysdeps/x86/atomic-machine.h ++++ b/sysdeps/x86/atomic-machine.h +@@ -58,15 +58,14 @@ typedef uintmax_t uatomic_max_t; #endif --#define __HAVE_64B_ATOMICS 0 -+#define __HAVE_64B_ATOMICS 1 - #define USE_ATOMIC_COMPILER_BUILTINS 0 - #define ATOMIC_EXCHANGE_USES_CAS 0 + #define USE_ATOMIC_COMPILER_BUILTINS 1 ++# define __HAVE_64B_ATOMICS 1 + #ifdef __x86_64__ +-# define __HAVE_64B_ATOMICS 1 + # define SP_REG "rsp" + # define SEG_REG "fs" + # define BR_CONSTRAINT "q" + # define IBR_CONSTRAINT "iq" + #else +-# define __HAVE_64B_ATOMICS 0 + # define SP_REG "esp" + # define SEG_REG "gs" + # define BR_CONSTRAINT "r" +-- +2.20.1 + diff --git a/meta/recipes-core/glibc/glibc/0005-nativesdk-glibc-Make-relocatable-install-for-locales.patch b/meta/recipes-core/glibc/glibc/0005-nativesdk-glibc-Make-relocatable-install-for-locales.patch index b53f2ef2e2..aae8440199 100644 --- a/meta/recipes-core/glibc/glibc/0005-nativesdk-glibc-Make-relocatable-install-for-locales.patch +++ b/meta/recipes-core/glibc/glibc/0005-nativesdk-glibc-Make-relocatable-install-for-locales.patch @@ -1,7 +1,7 @@ -From e1dc85af1800afa4fbf4eb5a59cc41025495af57 Mon Sep 17 00:00:00 2001 +From ab70f06c11f66db9f17ce717928b5223fbf6760f Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Fri, 3 Aug 2018 09:55:12 -0700 -Subject: [PATCH] nativesdk-glibc: Make relocatable install for locales +Subject: [PATCH 05/31] nativesdk-glibc: Make relocatable install for locales The glibc locale path is hard-coded to the install prefix, but in SDKs we need to be able to relocate the binaries. Expand the strings to 4K and put them in a @@ -65,3 +65,6 @@ index 68822a6319..537bc35149 100644 /* Load the locale data for CATEGORY from the file specified by *NAME. If *NAME is "", use environment variables as specified by POSIX, and +-- +2.20.1 + diff --git a/meta/recipes-core/glibc/glibc/0006-fsl-e500-e5500-e6500-603e-fsqrt-implementation.patch b/meta/recipes-core/glibc/glibc/0006-fsl-e500-e5500-e6500-603e-fsqrt-implementation.patch index 971700a6df..4d444ca68c 100644 --- a/meta/recipes-core/glibc/glibc/0006-fsl-e500-e5500-e6500-603e-fsqrt-implementation.patch +++ b/meta/recipes-core/glibc/glibc/0006-fsl-e500-e5500-e6500-603e-fsqrt-implementation.patch @@ -1,7 +1,7 @@ -From d23c577b0b70b34335971abaf3f50e617dda615e Mon Sep 17 00:00:00 2001 +From d1faf9a98aa039eda02d0cf1f77f16e2ee6fd001 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Wed, 18 Mar 2015 00:01:50 +0000 -Subject: [PATCH] fsl e500/e5500/e6500/603e fsqrt implementation +Subject: [PATCH 06/31] fsl e500/e5500/e6500/603e fsqrt implementation Upstream-Status: Pending Signed-off-by: Edmar Wienskoski @@ -1579,3 +1579,6 @@ index 0000000000..04ff8cc181 +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/e6500/fpu/Implies @@ -0,0 +1 @@ +powerpc/powerpc64/e6500/fpu +-- +2.20.1 + diff --git a/meta/recipes-core/glibc/glibc/0007-readlib-Add-OECORE_KNOWN_INTERPRETER_NAMES-to-known-.patch b/meta/recipes-core/glibc/glibc/0007-readlib-Add-OECORE_KNOWN_INTERPRETER_NAMES-to-known-.patch index 4871346838..5339c902e8 100644 --- a/meta/recipes-core/glibc/glibc/0007-readlib-Add-OECORE_KNOWN_INTERPRETER_NAMES-to-known-.patch +++ b/meta/recipes-core/glibc/glibc/0007-readlib-Add-OECORE_KNOWN_INTERPRETER_NAMES-to-known-.patch @@ -1,7 +1,8 @@ -From d65f6ee214d7d91445fceabc6a5d6bf55b0e8d4b Mon Sep 17 00:00:00 2001 +From 017b00ab2b18bae5b5b4116fad3950f532a7cf39 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Wed, 18 Mar 2015 00:11:22 +0000 -Subject: [PATCH] readlib: Add OECORE_KNOWN_INTERPRETER_NAMES to known names +Subject: [PATCH 07/31] readlib: Add OECORE_KNOWN_INTERPRETER_NAMES to known + names This bolts in a hook for OE to pass its own version of interpreter names into glibc especially for multilib case, where it differs from any @@ -27,3 +28,6 @@ index 573c01476c..d8c7412287 100644 }; static struct known_names known_libs[] = +-- +2.20.1 + diff --git a/meta/recipes-core/glibc/glibc/0008-ppc-sqrt-Fix-undefined-reference-to-__sqrt_finite.patch b/meta/recipes-core/glibc/glibc/0008-ppc-sqrt-Fix-undefined-reference-to-__sqrt_finite.patch index c0d96eb1f5..749623e4d0 100644 --- a/meta/recipes-core/glibc/glibc/0008-ppc-sqrt-Fix-undefined-reference-to-__sqrt_finite.patch +++ b/meta/recipes-core/glibc/glibc/0008-ppc-sqrt-Fix-undefined-reference-to-__sqrt_finite.patch @@ -1,7 +1,7 @@ -From ee3aa1464f40c916c62cf326bf4c18f8b71a229b Mon Sep 17 00:00:00 2001 +From 226cf99513e816eb087464663e3195cdf90cef18 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Wed, 18 Mar 2015 00:15:07 +0000 -Subject: [PATCH] ppc/sqrt: Fix undefined reference to `__sqrt_finite' +Subject: [PATCH 08/31] ppc/sqrt: Fix undefined reference to `__sqrt_finite' on ppc fixes the errors like below | ./.libs/libpulsecore-1.1.so: undefined reference to `__sqrt_finite' @@ -203,3 +203,6 @@ index 26fa067abf..9d175122a8 100644 return f_washf (b); } +strong_alias (__ieee754_sqrtf, __sqrtf_finite) +-- +2.20.1 + diff --git a/meta/recipes-core/glibc/glibc/0009-__ieee754_sqrt-f-are-now-inline-functions-and-call-o.patch b/meta/recipes-core/glibc/glibc/0009-__ieee754_sqrt-f-are-now-inline-functions-and-call-o.patch index d0b47cd67b..dbf9119ab8 100644 --- a/meta/recipes-core/glibc/glibc/0009-__ieee754_sqrt-f-are-now-inline-functions-and-call-o.patch +++ b/meta/recipes-core/glibc/glibc/0009-__ieee754_sqrt-f-are-now-inline-functions-and-call-o.patch @@ -1,8 +1,8 @@ -From 17e82d594b2d8d3a6998face953382f9d14fb046 Mon Sep 17 00:00:00 2001 +From 1b7126ea4a0b69d37eec1a80e3c1b6dbf15f6ba1 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Wed, 18 Mar 2015 00:16:38 +0000 -Subject: [PATCH] __ieee754_sqrt{,f} are now inline functions and call out - __slow versions +Subject: [PATCH 09/31] __ieee754_sqrt{,f} are now inline functions and call + out __slow versions Upstream-Status: Pending @@ -382,3 +382,6 @@ index 9d175122a8..10de1f0cc3 100644 +} + strong_alias (__ieee754_sqrtf, __sqrtf_finite) +-- +2.20.1 + diff --git a/meta/recipes-core/glibc/glibc/0010-Quote-from-bug-1443-which-explains-what-the-patch-do.patch b/meta/recipes-core/glibc/glibc/0010-Quote-from-bug-1443-which-explains-what-the-patch-do.patch index 86ef3a1059..63f6023fcc 100644 --- a/meta/recipes-core/glibc/glibc/0010-Quote-from-bug-1443-which-explains-what-the-patch-do.patch +++ b/meta/recipes-core/glibc/glibc/0010-Quote-from-bug-1443-which-explains-what-the-patch-do.patch @@ -1,7 +1,8 @@ -From fe8d9b76e7c881cc0a0b728ea2bd637fafca0978 Mon Sep 17 00:00:00 2001 +From 30685cd9738a283cba546416771b102b9d3ac4d4 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Wed, 18 Mar 2015 00:20:09 +0000 -Subject: [PATCH] Quote from bug 1443 which explains what the patch does : +Subject: [PATCH 10/31] Quote from bug 1443 which explains what the patch does + : We build some random program and link it with -lust. When we run it, it dies with a SIGSEGV before reaching main(). @@ -56,3 +57,6 @@ index 1a4fd3f17b..a02c47571a 100644 break; case R_ARM_TLS_TPOFF32: +-- +2.20.1 + diff --git a/meta/recipes-core/glibc/glibc/0011-eglibc-run-libm-err-tab.pl-with-specific-dirs-in-S.patch b/meta/recipes-core/glibc/glibc/0011-eglibc-run-libm-err-tab.pl-with-specific-dirs-in-S.patch index 32aae5cd53..866bffc1ed 100644 --- a/meta/recipes-core/glibc/glibc/0011-eglibc-run-libm-err-tab.pl-with-specific-dirs-in-S.patch +++ b/meta/recipes-core/glibc/glibc/0011-eglibc-run-libm-err-tab.pl-with-specific-dirs-in-S.patch @@ -1,7 +1,7 @@ -From 3012cb839a64e7d5c621efa79b643d169290e6e9 Mon Sep 17 00:00:00 2001 +From aee6228742f1c340a72b8e8ce29a9006ce09c3d9 Mon Sep 17 00:00:00 2001 From: Ting Liu Date: Wed, 19 Dec 2012 04:39:57 -0600 -Subject: [PATCH] eglibc: run libm-err-tab.pl with specific dirs in ${S} +Subject: [PATCH 11/31] eglibc: run libm-err-tab.pl with specific dirs in ${S} libm-err-tab.pl will parse all the files named "libm-test-ulps" in the given dir recursively. To avoid parsing the one in @@ -18,16 +18,19 @@ Signed-off-by: Ting Liu 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/manual/Makefile b/manual/Makefile -index c2756640a7..1b5bb16a96 100644 +index 5f6006dc09..9f8ca6925e 100644 --- a/manual/Makefile +++ b/manual/Makefile -@@ -102,7 +102,8 @@ $(objpfx)libm-err.texi: $(objpfx)stamp-libm-err - $(objpfx)stamp-libm-err: libm-err-tab.pl $(wildcard $(foreach dir,$(sysdirs),\ - $(dir)/libm-test-ulps)) +@@ -103,7 +103,8 @@ $(objpfx)stamp-libm-err: $(..)math/gen-libm-test.py \ + $(wildcard $(foreach dir,$(sysdirs),\ + $(dir)/libm-test-ulps)) pwd=`pwd`; \ -- $(PERL) $< $$pwd/.. > $(objpfx)libm-err-tmp -+ $(PERL) $< $$pwd/../ports > $(objpfx)libm-err-tmp -+ $(PERL) $< $$pwd/../sysdeps >> $(objpfx)libm-err-tmp +- $(PYTHON) $< -s $$pwd/.. -m $(objpfx)libm-err-tmp ++ $(PYTHON) $< -s $$pwd/../ports -m $(objpfx)libm-err-tmp ++ $(PYTHON) $< -s $$pwd/../sysdeps -m $(objpfx)libm-err-tmp $(move-if-change) $(objpfx)libm-err-tmp $(objpfx)libm-err.texi touch $@ +-- +2.20.1 + diff --git a/meta/recipes-core/glibc/glibc/0012-__ieee754_sqrt-f-are-now-inline-functions-and-call-o.patch b/meta/recipes-core/glibc/glibc/0012-__ieee754_sqrt-f-are-now-inline-functions-and-call-o.patch index 93395c389f..74cc007dc1 100644 --- a/meta/recipes-core/glibc/glibc/0012-__ieee754_sqrt-f-are-now-inline-functions-and-call-o.patch +++ b/meta/recipes-core/glibc/glibc/0012-__ieee754_sqrt-f-are-now-inline-functions-and-call-o.patch @@ -1,8 +1,8 @@ -From 93ab69ae4c98303929ba9492130a021fa4a215be Mon Sep 17 00:00:00 2001 +From c8e8874abec09d61c7e3e4320a43ed2fec7e97b7 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Wed, 18 Mar 2015 00:24:46 +0000 -Subject: [PATCH] __ieee754_sqrt{,f} are now inline functions and call out - __slow versions +Subject: [PATCH 12/31] __ieee754_sqrt{,f} are now inline functions and call + out __slow versions Upstream-Status: Pending @@ -56,3 +56,6 @@ index 812653558f..10de1f0cc3 100644 float b; #endif { +-- +2.20.1 + diff --git a/meta/recipes-core/glibc/glibc/0013-sysdeps-gnu-configure.ac-handle-correctly-libc_cv_ro.patch b/meta/recipes-core/glibc/glibc/0013-sysdeps-gnu-configure.ac-handle-correctly-libc_cv_ro.patch index 9998691fa4..e7c8ab0fd8 100644 --- a/meta/recipes-core/glibc/glibc/0013-sysdeps-gnu-configure.ac-handle-correctly-libc_cv_ro.patch +++ b/meta/recipes-core/glibc/glibc/0013-sysdeps-gnu-configure.ac-handle-correctly-libc_cv_ro.patch @@ -1,7 +1,7 @@ -From a7bd8aa65f3f2755d6dbd0d5adbfd269c1fb0094 Mon Sep 17 00:00:00 2001 +From 22e24c855674b70d0381bdcbe2b58ec42e2b1da8 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Wed, 18 Mar 2015 00:27:10 +0000 -Subject: [PATCH] sysdeps/gnu/configure.ac: handle correctly +Subject: [PATCH 13/31] sysdeps/gnu/configure.ac: handle correctly $libc_cv_rootsbindir Upstream-Status:Pending @@ -37,3 +37,6 @@ index 634fe4de2a..3db1697f4f 100644 + test -n "$libc_cv_rootsbindir" || libc_cv_rootsbindir=/sbin ;; esac +-- +2.20.1 + diff --git a/meta/recipes-core/glibc/glibc/0014-Add-unused-attribute.patch b/meta/recipes-core/glibc/glibc/0014-Add-unused-attribute.patch index 9d6ab30e2c..5941e0dd8f 100644 --- a/meta/recipes-core/glibc/glibc/0014-Add-unused-attribute.patch +++ b/meta/recipes-core/glibc/glibc/0014-Add-unused-attribute.patch @@ -1,7 +1,7 @@ -From 2ce5bc6da23dcb402afdeb967fa44c39eecf6d37 Mon Sep 17 00:00:00 2001 +From 0050001180da6e9957d15761b013495a2c7fc21d Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Wed, 18 Mar 2015 00:28:41 +0000 -Subject: [PATCH] Add unused attribute +Subject: [PATCH 14/31] Add unused attribute Helps in avoiding gcc warning when header is is included in a source file which does not use both functions @@ -29,3 +29,6 @@ index 123e2a62ce..63cc83ec84 100644 strip (char *wp, const char *s) { int slash_count = 0; +-- +2.20.1 + diff --git a/meta/recipes-core/glibc/glibc/0015-yes-within-the-path-sets-wrong-config-variables.patch b/meta/recipes-core/glibc/glibc/0015-yes-within-the-path-sets-wrong-config-variables.patch index 0267e7a4ec..9931251daa 100644 --- a/meta/recipes-core/glibc/glibc/0015-yes-within-the-path-sets-wrong-config-variables.patch +++ b/meta/recipes-core/glibc/glibc/0015-yes-within-the-path-sets-wrong-config-variables.patch @@ -1,7 +1,7 @@ -From b382138c41ccf6079b44592f1e74f183ca8281bb Mon Sep 17 00:00:00 2001 +From 06ac9918d95ffbd98f0ff324c31a29a70a5b98e0 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Wed, 18 Mar 2015 00:31:06 +0000 -Subject: [PATCH] 'yes' within the path sets wrong config variables +Subject: [PATCH 15/31] 'yes' within the path sets wrong config variables It seems that the 'AC_EGREP_CPP(yes...' example is quite popular but being such a short word to grep it is likely to produce @@ -258,3 +258,6 @@ index f9cba6e15d..b21f72f1e4 100644 #endif ], libc_cv_ppc64_def_call_elf=yes, libc_cv_ppc64_def_call_elf=no)]) if test $libc_cv_ppc64_def_call_elf = no; then +-- +2.20.1 + diff --git a/meta/recipes-core/glibc/glibc/0016-timezone-re-written-tzselect-as-posix-sh.patch b/meta/recipes-core/glibc/glibc/0016-timezone-re-written-tzselect-as-posix-sh.patch index 15453ec6ff..439a95554e 100644 --- a/meta/recipes-core/glibc/glibc/0016-timezone-re-written-tzselect-as-posix-sh.patch +++ b/meta/recipes-core/glibc/glibc/0016-timezone-re-written-tzselect-as-posix-sh.patch @@ -1,7 +1,7 @@ -From 04fb7b93dc40c1f96ebc05d29a2f02f9e4f0d572 Mon Sep 17 00:00:00 2001 +From acbad52581e157d3cc2c22b10e545e73cfc4e664 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Wed, 18 Mar 2015 00:33:03 +0000 -Subject: [PATCH] timezone: re-written tzselect as posix sh +Subject: [PATCH 16/31] timezone: re-written tzselect as posix sh To avoid the bash dependency. @@ -28,10 +28,10 @@ index 0194aba4a1..58e5405a05 100644 -e '/TZVERSION=/s|see_Makefile|"$(version)"|' \ -e '/PKGVERSION=/s|=.*|="$(PKGVERSION)"|' \ diff --git a/timezone/tzselect.ksh b/timezone/tzselect.ksh -index d2c3a6d1dd..089679f306 100755 +index 18fce27e24..70745f9d36 100755 --- a/timezone/tzselect.ksh +++ b/timezone/tzselect.ksh -@@ -35,7 +35,7 @@ REPORT_BUGS_TO=tz@iana.org +@@ -34,7 +34,7 @@ REPORT_BUGS_TO=tz@iana.org # Specify default values for environment variables if they are unset. : ${AWK=awk} @@ -40,3 +40,6 @@ index d2c3a6d1dd..089679f306 100755 # Output one argument as-is to standard output. # Safer than 'echo', which can mishandle '\' or leading '-'. +-- +2.20.1 + diff --git a/meta/recipes-core/glibc/glibc/0017-Remove-bash-dependency-for-nscd-init-script.patch b/meta/recipes-core/glibc/glibc/0017-Remove-bash-dependency-for-nscd-init-script.patch index 06d2cd1d25..480a7281cf 100644 --- a/meta/recipes-core/glibc/glibc/0017-Remove-bash-dependency-for-nscd-init-script.patch +++ b/meta/recipes-core/glibc/glibc/0017-Remove-bash-dependency-for-nscd-init-script.patch @@ -1,7 +1,7 @@ -From 7a2f244c0980a54ed74f9544ab44a7269ef12bce Mon Sep 17 00:00:00 2001 +From 954152247e9ca6dc6f98b68af57a7c6309c5004f Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Thu, 31 Dec 2015 14:33:02 -0800 -Subject: [PATCH] Remove bash dependency for nscd init script +Subject: [PATCH 17/31] Remove bash dependency for nscd init script The nscd init script uses #! /bin/bash but only really uses one bashism (translated strings), so remove them and switch the shell to #!/bin/sh. @@ -70,3 +70,6 @@ index a882da7d8b..b02986ec15 100644 RETVAL=1 ;; esac +-- +2.20.1 + diff --git a/meta/recipes-core/glibc/glibc/0018-eglibc-Cross-building-and-testing-instructions.patch b/meta/recipes-core/glibc/glibc/0018-eglibc-Cross-building-and-testing-instructions.patch index 29109a26ea..e731040839 100644 --- a/meta/recipes-core/glibc/glibc/0018-eglibc-Cross-building-and-testing-instructions.patch +++ b/meta/recipes-core/glibc/glibc/0018-eglibc-Cross-building-and-testing-instructions.patch @@ -1,7 +1,7 @@ -From 44a5c79efea09f5b990e524ec42abdeef444056a Mon Sep 17 00:00:00 2001 +From cc8cf263d67fd58825cd5f60a7f43ffbb03e5520 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Wed, 18 Mar 2015 00:42:58 +0000 -Subject: [PATCH] eglibc: Cross building and testing instructions +Subject: [PATCH 18/31] eglibc: Cross building and testing instructions Ported from eglibc Upstream-Status: Pending @@ -614,3 +614,6 @@ index 0000000000..b67b468466 +- Some tests require access to libstdc++.so.6 and libgcc_s.so.1; we + simply place copies of these libraries in the top GLIBC build + directory. +-- +2.20.1 + diff --git a/meta/recipes-core/glibc/glibc/0019-eglibc-Help-bootstrap-cross-toolchain.patch b/meta/recipes-core/glibc/glibc/0019-eglibc-Help-bootstrap-cross-toolchain.patch index 71c2ab9180..83b3024efa 100644 --- a/meta/recipes-core/glibc/glibc/0019-eglibc-Help-bootstrap-cross-toolchain.patch +++ b/meta/recipes-core/glibc/glibc/0019-eglibc-Help-bootstrap-cross-toolchain.patch @@ -1,7 +1,7 @@ -From f4ec5527d562d38523abb8587a6c7532e9d21f8a Mon Sep 17 00:00:00 2001 +From 9043dcd30fe569325520c742e30bf680e322bf1f Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Wed, 18 Mar 2015 00:49:28 +0000 -Subject: [PATCH] eglibc: Help bootstrap cross toolchain +Subject: [PATCH 19/31] eglibc: Help bootstrap cross toolchain Taken from EGLIBC, r1484 + r1525 @@ -29,7 +29,7 @@ Signed-off-by: Khem Raj create mode 100644 include/stubs-bootstrap.h diff --git a/Makefile b/Makefile -index d3f25a525a..ab383867e2 100644 +index fd73d9bae3..7f9df6b29f 100644 --- a/Makefile +++ b/Makefile @@ -70,9 +70,18 @@ subdir-dirs = include @@ -95,3 +95,6 @@ index 0000000000..1d2b669aff + difficult headers. The header depends, via the + EGLIBC subdir 'stubs' make targets, on every .o file in EGLIBC, but + an empty stubs.h like this will do fine for GCC. */ +-- +2.20.1 + diff --git a/meta/recipes-core/glibc/glibc/0020-eglibc-Clear-cache-lines-on-ppc8xx.patch b/meta/recipes-core/glibc/glibc/0020-eglibc-Clear-cache-lines-on-ppc8xx.patch index 6e475a711e..f7bf8021da 100644 --- a/meta/recipes-core/glibc/glibc/0020-eglibc-Clear-cache-lines-on-ppc8xx.patch +++ b/meta/recipes-core/glibc/glibc/0020-eglibc-Clear-cache-lines-on-ppc8xx.patch @@ -1,7 +1,7 @@ -From 6c23660d035e71de0e20b40460ad3050bd057665 Mon Sep 17 00:00:00 2001 +From 1c0d47782668f222299df111054fbcb972e99c39 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Thu, 31 Dec 2015 15:15:09 -0800 -Subject: [PATCH] eglibc: Clear cache lines on ppc8xx +Subject: [PATCH 20/31] eglibc: Clear cache lines on ppc8xx 2007-06-13 Nathan Sidwell Mark Shinwell @@ -78,3 +78,6 @@ index f2ad0c355d..3e6773795e 100644 __cache_line_size = av->a_un.a_val; break; #ifndef SHARED +-- +2.20.1 + diff --git a/meta/recipes-core/glibc/glibc/0021-eglibc-Resolve-__fpscr_values-on-SH4.patch b/meta/recipes-core/glibc/glibc/0021-eglibc-Resolve-__fpscr_values-on-SH4.patch index 8aecf2624c..36efcd40e4 100644 --- a/meta/recipes-core/glibc/glibc/0021-eglibc-Resolve-__fpscr_values-on-SH4.patch +++ b/meta/recipes-core/glibc/glibc/0021-eglibc-Resolve-__fpscr_values-on-SH4.patch @@ -1,7 +1,7 @@ -From 55531ef57d04006c5a1e3b32a8e0410372f86007 Mon Sep 17 00:00:00 2001 +From 41cbed8d724f9433e58cc92b4339768529b435c6 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Wed, 18 Mar 2015 00:55:53 +0000 -Subject: [PATCH] eglibc: Resolve __fpscr_values on SH4 +Subject: [PATCH 21/31] eglibc: Resolve __fpscr_values on SH4 2010-09-29 Nobuhiro Iwamatsu Andrew Stubbs @@ -51,3 +51,6 @@ index c4e28ffb98..648bae03d5 100644 + .long 0x80000 +weak_alias (___fpscr_values, __fpscr_values) + +-- +2.20.1 + diff --git a/meta/recipes-core/glibc/glibc/0022-eglibc-Forward-port-cross-locale-generation-support.patch b/meta/recipes-core/glibc/glibc/0022-eglibc-Forward-port-cross-locale-generation-support.patch index aa62c6352c..5c37821cb3 100644 --- a/meta/recipes-core/glibc/glibc/0022-eglibc-Forward-port-cross-locale-generation-support.patch +++ b/meta/recipes-core/glibc/glibc/0022-eglibc-Forward-port-cross-locale-generation-support.patch @@ -1,7 +1,7 @@ -From 4bb23fbb07984b93fd14f353fd9325d927b0cd98 Mon Sep 17 00:00:00 2001 +From 584a321509882f372d6967635afc3d9ee171d14a Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Wed, 18 Mar 2015 01:33:49 +0000 -Subject: [PATCH] eglibc: Forward port cross locale generation support +Subject: [PATCH 22/31] eglibc: Forward port cross locale generation support Upstream-Status: Pending @@ -23,7 +23,7 @@ Signed-off-by: Khem Raj create mode 100644 locale/catnames.c diff --git a/locale/Makefile b/locale/Makefile -index fd9972279b..176b3946de 100644 +index 951c6154ac..88df85a88d 100644 --- a/locale/Makefile +++ b/locale/Makefile @@ -26,7 +26,8 @@ headers = langinfo.h locale.h bits/locale.h \ @@ -363,18 +363,18 @@ index 3525c8a43d..f8a7fd9c24 100644 size_t bufmax = 56; diff --git a/locale/programs/localedef.c b/locale/programs/localedef.c -index d718d2e9f4..e0a3ad5a83 100644 +index 6c4936be6b..826dbd8301 100644 --- a/locale/programs/localedef.c +++ b/locale/programs/localedef.c -@@ -105,6 +105,7 @@ void (*argp_program_version_hook) (FILE *, struct argp_state *) = print_version; - #define OPT_BIG_ENDIAN 401 +@@ -109,6 +109,7 @@ void (*argp_program_version_hook) (FILE *, struct argp_state *) = print_version; #define OPT_NO_WARN 402 #define OPT_WARN 403 -+#define OPT_UINT32_ALIGN 404 + #define OPT_NO_HARD_LINKS 404 ++#define OPT_UINT32_ALIGN 405 /* Definitions of arguments for argp functions. */ static const struct argp_option options[] = -@@ -147,6 +148,8 @@ static const struct argp_option options[] = +@@ -153,6 +154,8 @@ static const struct argp_option options[] = N_("Generate little-endian output") }, { "big-endian", OPT_BIG_ENDIAN, NULL, 0, N_("Generate big-endian output") }, @@ -383,7 +383,7 @@ index d718d2e9f4..e0a3ad5a83 100644 { NULL, 0, NULL, 0, NULL } }; -@@ -236,12 +239,14 @@ main (int argc, char *argv[]) +@@ -242,12 +245,14 @@ main (int argc, char *argv[]) ctype locale. (P1003.2 4.35.5.2) */ setlocale (LC_CTYPE, "POSIX"); @@ -398,9 +398,9 @@ index d718d2e9f4..e0a3ad5a83 100644 /* Process charmap file. */ charmap = charmap_read (charmap_file, verbose, 1, be_quiet, 1); -@@ -389,6 +394,9 @@ parse_opt (int key, char *arg, struct argp_state *state) - /* Enable the warnings. */ - set_warnings (arg, true); +@@ -399,6 +404,9 @@ parse_opt (int key, char *arg, struct argp_state *state) + /* Do not hard link to other locales. */ + hard_links = false; break; + case OPT_UINT32_ALIGN: + uint32_align_mask = strtol (arg, NULL, 0) - 1; @@ -409,7 +409,7 @@ index d718d2e9f4..e0a3ad5a83 100644 force_output = 1; break; diff --git a/locale/programs/locfile.c b/locale/programs/locfile.c -index 32e5f761f2..b41e77bd8d 100644 +index 1555231deb..5afdb08fc3 100644 --- a/locale/programs/locfile.c +++ b/locale/programs/locfile.c @@ -544,6 +544,9 @@ compare_files (const char *filename1, const char *filename2, size_t size, @@ -561,3 +561,6 @@ index e4de907e1f..b5d8f5c17d 100644 #ifdef NL_CURRENT_INDIRECT # define WEAK_POSTLOAD(postload) weak_extern (postload) #else +-- +2.20.1 + diff --git a/meta/recipes-core/glibc/glibc/0023-Define-DUMMY_LOCALE_T-if-not-defined.patch b/meta/recipes-core/glibc/glibc/0023-Define-DUMMY_LOCALE_T-if-not-defined.patch index 68fad96410..45c37db7af 100644 --- a/meta/recipes-core/glibc/glibc/0023-Define-DUMMY_LOCALE_T-if-not-defined.patch +++ b/meta/recipes-core/glibc/glibc/0023-Define-DUMMY_LOCALE_T-if-not-defined.patch @@ -1,7 +1,7 @@ -From 1b2ceb6c2414e3c98c7bcd029583287ced9f3159 Mon Sep 17 00:00:00 2001 +From 6856e27c1a0c71ade749cef6f0dbcf62bb9b5485 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Wed, 20 Apr 2016 21:11:00 -0700 -Subject: [PATCH] Define DUMMY_LOCALE_T if not defined +Subject: [PATCH 23/31] Define DUMMY_LOCALE_T if not defined This is a hack to fix building the locale bits on an older CentOs 5.X machine @@ -27,3 +27,6 @@ index 9956cd8446..04342f3644 100644 /* Use the internal textdomain used for libc messages. */ #define PACKAGE _libc_intl_domainname #ifndef VERSION +-- +2.20.1 + diff --git a/meta/recipes-core/glibc/glibc/0024-elf-dl-deps.c-Make-_dl_build_local_scope-breadth-fir.patch b/meta/recipes-core/glibc/glibc/0024-elf-dl-deps.c-Make-_dl_build_local_scope-breadth-fir.patch index 28cff2b90b..3246f01e4d 100644 --- a/meta/recipes-core/glibc/glibc/0024-elf-dl-deps.c-Make-_dl_build_local_scope-breadth-fir.patch +++ b/meta/recipes-core/glibc/glibc/0024-elf-dl-deps.c-Make-_dl_build_local_scope-breadth-fir.patch @@ -1,7 +1,7 @@ -From a6159c9486745664a5f116ee9cc45837021b7624 Mon Sep 17 00:00:00 2001 +From 7a78feb46b1dbb61ec249ba34c629850e03378f2 Mon Sep 17 00:00:00 2001 From: Mark Hatle Date: Thu, 18 Aug 2016 14:07:58 -0500 -Subject: [PATCH] elf/dl-deps.c: Make _dl_build_local_scope breadth first +Subject: [PATCH 24/31] elf/dl-deps.c: Make _dl_build_local_scope breadth first According to the ELF specification: @@ -51,3 +51,6 @@ index 9d9b1ba7f2..8414028c58 100644 return p - list; } +-- +2.20.1 + diff --git a/meta/recipes-core/glibc/glibc/0025-locale-fix-hard-coded-reference-to-gcc-E.patch b/meta/recipes-core/glibc/glibc/0025-locale-fix-hard-coded-reference-to-gcc-E.patch deleted file mode 100644 index 4a7919ff5b..0000000000 --- a/meta/recipes-core/glibc/glibc/0025-locale-fix-hard-coded-reference-to-gcc-E.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 6c6aecba19b3e7947100623532a41b6f16734ace Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?J=C3=A9r=C3=A9my=20Rosen?= -Date: Mon, 22 Aug 2016 16:09:25 +0200 -Subject: [PATCH] locale: fix hard-coded reference to gcc -E - -When new version of compilers are published, they may not be compatible with -older versions of software. This is particularly common when software is built -with -Werror. - -Autotools provides a way for a user to specify the name of his compiler using a -set of variables ($CC $CXX $CPP etc.). Those variables are used correctly when -compiling glibc but the script used to generate transliterations in the locale/ -subdirectory directly calls the gcc binary to get the output of the -preprocessor instead of using the $CPP variable provided by the build -environment. - -This patch replaces the hard-coded reference to the gcc binary with the proper -environment variable, thus allowing a user to override it. - -Upstream-Status: Submitted [https://sourceware.org/ml/libc-alpha/2016-08/msg00746.html] ---- - locale/gen-translit.pl | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/locale/gen-translit.pl b/locale/gen-translit.pl -index 30d3f2f195..e97653017c 100644 ---- a/locale/gen-translit.pl -+++ b/locale/gen-translit.pl -@@ -1,5 +1,5 @@ - #!/usr/bin/perl -w --open F, "cat C-translit.h.in | gcc -E - |" || die "Cannot preprocess input file"; -+open F, 'cat C-translit.h.in | ${CPP:-gcc -E} - |' || die "Cannot preprocess input file"; - - - sub cstrlen { diff --git a/meta/recipes-core/glibc/glibc/0025-reset-dl_load_write_lock-after-forking.patch b/meta/recipes-core/glibc/glibc/0025-reset-dl_load_write_lock-after-forking.patch new file mode 100644 index 0000000000..dc00e29d84 --- /dev/null +++ b/meta/recipes-core/glibc/glibc/0025-reset-dl_load_write_lock-after-forking.patch @@ -0,0 +1,40 @@ +From ec36d40071079bdc0868257c71da626f93c7e10d Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sat, 27 Jan 2018 10:05:07 -0800 +Subject: [PATCH 25/31] reset dl_load_write_lock after forking + +The patch in this Bugzilla entry was requested by a customer: + + https://www.sourceware.org/bugzilla/show_bug.cgi?id=19282 + +The __libc_fork() code reset dl_load_lock, but it also needed to reset +dl_load_write_lock. The patch has not yet been integrated upstream. + +Upstream-Status: Pending [ No Author See bugzilla] + +Signed-off-by: Damodar Sonone +Signed-off-by: Yuanjie Huang +Signed-off-by: Khem Raj +--- + sysdeps/nptl/fork.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/sysdeps/nptl/fork.c b/sysdeps/nptl/fork.c +index ec56a827eb..0f48933ff1 100644 +--- a/sysdeps/nptl/fork.c ++++ b/sysdeps/nptl/fork.c +@@ -130,9 +130,9 @@ __libc_fork (void) + _IO_list_resetlock (); + } + +- /* Reset the lock the dynamic loader uses to protect its data. */ ++ /* Reset the locks the dynamic loader uses to protect its data. */ + __rtld_lock_initialize (GL(dl_load_lock)); +- ++ __rtld_lock_initialize (GL(dl_load_write_lock)); + /* Run the handlers registered for the child. */ + __run_fork_handlers (atfork_run_child); + } +-- +2.20.1 + diff --git a/meta/recipes-core/glibc/glibc/0026-Acquire-ld.so-lock-before-switching-to-malloc_atfork.patch b/meta/recipes-core/glibc/glibc/0026-Acquire-ld.so-lock-before-switching-to-malloc_atfork.patch new file mode 100644 index 0000000000..22567a463a --- /dev/null +++ b/meta/recipes-core/glibc/glibc/0026-Acquire-ld.so-lock-before-switching-to-malloc_atfork.patch @@ -0,0 +1,68 @@ +From 35cea882d987facd38b714af1988dedc486b53ca Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sat, 27 Jan 2018 10:08:04 -0800 +Subject: [PATCH 26/31] Acquire ld.so lock before switching to malloc_atfork + +The patch is from + https://sourceware.org/bugzilla/show_bug.cgi?id=4578 + +If a thread happens to hold dl_load_lock and have r_state set to RT_ADD or +RT_DELETE at the time another thread calls fork(), then the child exit code +from fork (in nptl/sysdeps/unix/sysv/linux/fork.c in our case) re-initializes +dl_load_lock but does not restore r_state to RT_CONSISTENT. If the child +subsequently requires ld.so functionality before calling exec(), then the +assertion will fire. + +The patch acquires dl_load_lock on entry to fork() and releases it on exit +from the parent path. The child path is initialized as currently done. +This is essentially pthreads_atfork, but forced to be first because the +acquisition of dl_load_lock must happen before malloc_atfork is active +to avoid a deadlock. + +The patch has not yet been integrated upstream. + +Upstream-Status: Pending [ Not Author See bugzilla] + +Signed-off-by: Raghunath Lolur +Signed-off-by: Yuanjie Huang +Signed-off-by: Zhixiong Chi +Signed-off-by: Khem Raj +--- + sysdeps/nptl/fork.c | 7 +++++++ + 1 file changed, 7 insertions(+) + +diff --git a/sysdeps/nptl/fork.c b/sysdeps/nptl/fork.c +index 0f48933ff1..eef3f9669b 100644 +--- a/sysdeps/nptl/fork.c ++++ b/sysdeps/nptl/fork.c +@@ -25,6 +25,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -56,6 +57,9 @@ __libc_fork (void) + bool multiple_threads = THREAD_GETMEM (THREAD_SELF, header.multiple_threads); + + __run_fork_handlers (atfork_run_prepare); ++ /* grab ld.so lock BEFORE switching to malloc_atfork */ ++ __rtld_lock_lock_recursive (GL(dl_load_lock)); ++ __rtld_lock_lock_recursive (GL(dl_load_write_lock)); + + /* If we are not running multiple threads, we do not have to + preserve lock state. If fork runs from a signal handler, only +@@ -150,6 +154,9 @@ __libc_fork (void) + + /* Run the handlers registered for the parent. */ + __run_fork_handlers (atfork_run_parent); ++ /* unlock ld.so last, because we locked it first */ ++ __rtld_lock_unlock_recursive (GL(dl_load_write_lock)); ++ __rtld_lock_unlock_recursive (GL(dl_load_lock)); + } + + return pid; +-- +2.20.1 + diff --git a/meta/recipes-core/glibc/glibc/0026-reset-dl_load_write_lock-after-forking.patch b/meta/recipes-core/glibc/glibc/0026-reset-dl_load_write_lock-after-forking.patch deleted file mode 100644 index 71ddc1234b..0000000000 --- a/meta/recipes-core/glibc/glibc/0026-reset-dl_load_write_lock-after-forking.patch +++ /dev/null @@ -1,37 +0,0 @@ -From efb0fca7db742f4195e1771d8ba4c7fba4938819 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Sat, 27 Jan 2018 10:05:07 -0800 -Subject: [PATCH] reset dl_load_write_lock after forking - -The patch in this Bugzilla entry was requested by a customer: - - https://www.sourceware.org/bugzilla/show_bug.cgi?id=19282 - -The __libc_fork() code reset dl_load_lock, but it also needed to reset -dl_load_write_lock. The patch has not yet been integrated upstream. - -Upstream-Status: Pending [ No Author See bugzilla] - -Signed-off-by: Damodar Sonone -Signed-off-by: Yuanjie Huang -Signed-off-by: Khem Raj ---- - sysdeps/nptl/fork.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/sysdeps/nptl/fork.c b/sysdeps/nptl/fork.c -index ec56a827eb..0f48933ff1 100644 ---- a/sysdeps/nptl/fork.c -+++ b/sysdeps/nptl/fork.c -@@ -130,9 +130,9 @@ __libc_fork (void) - _IO_list_resetlock (); - } - -- /* Reset the lock the dynamic loader uses to protect its data. */ -+ /* Reset the locks the dynamic loader uses to protect its data. */ - __rtld_lock_initialize (GL(dl_load_lock)); -- -+ __rtld_lock_initialize (GL(dl_load_write_lock)); - /* Run the handlers registered for the child. */ - __run_fork_handlers (atfork_run_child); - } diff --git a/meta/recipes-core/glibc/glibc/0027-Acquire-ld.so-lock-before-switching-to-malloc_atfork.patch b/meta/recipes-core/glibc/glibc/0027-Acquire-ld.so-lock-before-switching-to-malloc_atfork.patch deleted file mode 100644 index dd37f2cd4d..0000000000 --- a/meta/recipes-core/glibc/glibc/0027-Acquire-ld.so-lock-before-switching-to-malloc_atfork.patch +++ /dev/null @@ -1,65 +0,0 @@ -From 6ea962e0946da7564a774b08dd3eda28d64e9e56 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Sat, 27 Jan 2018 10:08:04 -0800 -Subject: [PATCH] Acquire ld.so lock before switching to malloc_atfork - -The patch is from - https://sourceware.org/bugzilla/show_bug.cgi?id=4578 - -If a thread happens to hold dl_load_lock and have r_state set to RT_ADD or -RT_DELETE at the time another thread calls fork(), then the child exit code -from fork (in nptl/sysdeps/unix/sysv/linux/fork.c in our case) re-initializes -dl_load_lock but does not restore r_state to RT_CONSISTENT. If the child -subsequently requires ld.so functionality before calling exec(), then the -assertion will fire. - -The patch acquires dl_load_lock on entry to fork() and releases it on exit -from the parent path. The child path is initialized as currently done. -This is essentially pthreads_atfork, but forced to be first because the -acquisition of dl_load_lock must happen before malloc_atfork is active -to avoid a deadlock. - -The patch has not yet been integrated upstream. - -Upstream-Status: Pending [ Not Author See bugzilla] - -Signed-off-by: Raghunath Lolur -Signed-off-by: Yuanjie Huang -Signed-off-by: Zhixiong Chi -Signed-off-by: Khem Raj ---- - sysdeps/nptl/fork.c | 7 +++++++ - 1 file changed, 7 insertions(+) - -diff --git a/sysdeps/nptl/fork.c b/sysdeps/nptl/fork.c -index 0f48933ff1..eef3f9669b 100644 ---- a/sysdeps/nptl/fork.c -+++ b/sysdeps/nptl/fork.c -@@ -25,6 +25,7 @@ - #include - #include - #include -+#include - #include - #include - #include -@@ -56,6 +57,9 @@ __libc_fork (void) - bool multiple_threads = THREAD_GETMEM (THREAD_SELF, header.multiple_threads); - - __run_fork_handlers (atfork_run_prepare); -+ /* grab ld.so lock BEFORE switching to malloc_atfork */ -+ __rtld_lock_lock_recursive (GL(dl_load_lock)); -+ __rtld_lock_lock_recursive (GL(dl_load_write_lock)); - - /* If we are not running multiple threads, we do not have to - preserve lock state. If fork runs from a signal handler, only -@@ -150,6 +154,9 @@ __libc_fork (void) - - /* Run the handlers registered for the parent. */ - __run_fork_handlers (atfork_run_parent); -+ /* unlock ld.so last, because we locked it first */ -+ __rtld_lock_unlock_recursive (GL(dl_load_write_lock)); -+ __rtld_lock_unlock_recursive (GL(dl_load_lock)); - } - - return pid; diff --git a/meta/recipes-core/glibc/glibc/0027-localedef-add-to-archive-uses-a-hard-coded-locale-pa.patch b/meta/recipes-core/glibc/glibc/0027-localedef-add-to-archive-uses-a-hard-coded-locale-pa.patch new file mode 100644 index 0000000000..bb0d99a3d8 --- /dev/null +++ b/meta/recipes-core/glibc/glibc/0027-localedef-add-to-archive-uses-a-hard-coded-locale-pa.patch @@ -0,0 +1,84 @@ +From c31cd87c6528a6798c3a81bc1ea8f632d2bf33b1 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 3 Aug 2018 09:42:06 -0700 +Subject: [PATCH 27/31] localedef --add-to-archive uses a hard-coded locale + path + +it doesn't exist in normal use, and there's no way to pass an +alternative filename. + +Add a fallback of $LOCALEARCHIVE from the environment, and allow +creation of new locale archives that are not the system archive. + +Upstream-Status: Inappropriate (OE-specific) + +Signed-off-by: Ross Burton +Signed-off-by: Khem Raj +--- + locale/programs/locarchive.c | 35 +++++++++++++++++++++++++---------- + 1 file changed, 25 insertions(+), 10 deletions(-) + +diff --git a/locale/programs/locarchive.c b/locale/programs/locarchive.c +index ca332a345f..588de3c3f8 100644 +--- a/locale/programs/locarchive.c ++++ b/locale/programs/locarchive.c +@@ -340,12 +340,24 @@ enlarge_archive (struct locarhandle *ah, const struct locarhead *head) + struct namehashent *oldnamehashtab; + struct locarhandle new_ah; + size_t prefix_len = output_prefix ? strlen (output_prefix) : 0; +- char archivefname[prefix_len + sizeof (ARCHIVE_NAME)]; +- char fname[prefix_len + sizeof (ARCHIVE_NAME) + sizeof (".XXXXXX") - 1]; ++ char *archivefname; ++ char *fname; ++ char *envarchive = getenv("LOCALEARCHIVE"); + +- if (output_prefix) +- memcpy (archivefname, output_prefix, prefix_len); +- strcpy (archivefname + prefix_len, ARCHIVE_NAME); ++ if (envarchive != NULL) ++ { ++ archivefname = xmalloc(strlen(envarchive) + 1); ++ fname = xmalloc(strlen(envarchive) + sizeof (".XXXXXX")); ++ strcpy (archivefname, envarchive); ++ } ++ else ++ { ++ archivefname = xmalloc(prefix_len + sizeof (ARCHIVE_NAME)); ++ fname = xmalloc(prefix_len + sizeof (ARCHIVE_NAME) + sizeof (".XXXXXX") - 1); ++ if (output_prefix) ++ memcpy (archivefname, output_prefix, prefix_len); ++ strcpy (archivefname + prefix_len, ARCHIVE_NAME); ++ } + strcpy (stpcpy (fname, archivefname), ".XXXXXX"); + + /* Not all of the old file has to be mapped. Change this now this +@@ -569,10 +581,13 @@ open_archive (struct locarhandle *ah, bool readonly) + /* If ah has a non-NULL fname open that otherwise open the default. */ + if (archivefname == NULL) + { +- archivefname = default_fname; +- if (output_prefix) +- memcpy (default_fname, output_prefix, prefix_len); +- strcpy (default_fname + prefix_len, ARCHIVE_NAME); ++ archivefname = getenv("LOCALEARCHIVE"); ++ if (archivefname == NULL) { ++ archivefname = default_fname; ++ if (output_prefix) ++ memcpy (default_fname, output_prefix, prefix_len); ++ strcpy (default_fname + prefix_len, ARCHIVE_NAME); ++ } + } + + while (1) +@@ -585,7 +600,7 @@ open_archive (struct locarhandle *ah, bool readonly) + the default locale archive we ignore the failure and + list an empty archive, otherwise we print an error + and exit. */ +- if (errno == ENOENT && archivefname == default_fname) ++ if (errno == ENOENT) + { + if (readonly) + { +-- +2.20.1 + diff --git a/meta/recipes-core/glibc/glibc/0028-bits-siginfo-consts.h-enum-definition-for-TRAP_HWBKP.patch b/meta/recipes-core/glibc/glibc/0028-bits-siginfo-consts.h-enum-definition-for-TRAP_HWBKP.patch deleted file mode 100644 index fae8d0040d..0000000000 --- a/meta/recipes-core/glibc/glibc/0028-bits-siginfo-consts.h-enum-definition-for-TRAP_HWBKP.patch +++ /dev/null @@ -1,66 +0,0 @@ -From 38fad3e5ab3b45c56810abd35fa11a72fa10b8f1 Mon Sep 17 00:00:00 2001 -From: Pratyush Anand -Date: Wed, 22 Mar 2017 17:02:38 +0530 -Subject: [PATCH] bits/siginfo-consts.h: enum definition for TRAP_HWBKPT is - missing -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Compile following linux kernel test code with latest glibc: - -https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/tools/testing/selftests/breakpoints/breakpoint_test_arm64.c - -and we get following error: -breakpoint_test_arm64.c: In function ‘run_test’: -breakpoint_test_arm64.c:171:25: error: ‘TRAP_HWBKPT’ undeclared (first use in this function) - if (siginfo.si_code != TRAP_HWBKPT) { - ^ -I can compile test code by modifying my local -/usr/include/bits/siginfo.h and test works great. Therefore, this patch -will be needed in upstream glibc so that issue is fixed there as well. - -Signed-off-by: Pratyush Anand - -Upstream-Status: Submitted [https://sourceware.org/bugzilla/show_bug.cgi?id=21286] ---- - bits/siginfo-consts.h | 6 +++++- - sysdeps/unix/sysv/linux/bits/siginfo-consts.h | 6 +++++- - 2 files changed, 10 insertions(+), 2 deletions(-) - -diff --git a/bits/siginfo-consts.h b/bits/siginfo-consts.h -index 7464c1882b..298314527a 100644 ---- a/bits/siginfo-consts.h -+++ b/bits/siginfo-consts.h -@@ -106,8 +106,12 @@ enum - { - TRAP_BRKPT = 1, /* Process breakpoint. */ - # define TRAP_BRKPT TRAP_BRKPT -- TRAP_TRACE /* Process trace trap. */ -+ TRAP_TRACE, /* Process trace trap. */ - # define TRAP_TRACE TRAP_TRACE -+ TRAP_BRANCH, /* Process branch trap. */ -+# define TRAP_BRANCH TRAP_BRANCH -+ TRAP_HWBKPT /* hardware breakpoint/watchpoint */ -+# define TRAP_HWBKPT TRAP_HWBKPT - }; - # endif - -diff --git a/sysdeps/unix/sysv/linux/bits/siginfo-consts.h b/sysdeps/unix/sysv/linux/bits/siginfo-consts.h -index 193bd9c471..3fe852bc5f 100644 ---- a/sysdeps/unix/sysv/linux/bits/siginfo-consts.h -+++ b/sysdeps/unix/sysv/linux/bits/siginfo-consts.h -@@ -141,8 +141,12 @@ enum - { - TRAP_BRKPT = 1, /* Process breakpoint. */ - # define TRAP_BRKPT TRAP_BRKPT -- TRAP_TRACE /* Process trace trap. */ -+ TRAP_TRACE, /* Process trace trap. */ - # define TRAP_TRACE TRAP_TRACE -+ TRAP_BRANCH, /* Process branch trap. */ -+# define TRAP_BRANCH TRAP_BRANCH -+ TRAP_HWBKPT /* hardware breakpoint/watchpoint */ -+# define TRAP_HWBKPT TRAP_HWBKPT - }; - # endif - diff --git a/meta/recipes-core/glibc/glibc/0028-intl-Emit-no-lines-in-bison-generated-files.patch b/meta/recipes-core/glibc/glibc/0028-intl-Emit-no-lines-in-bison-generated-files.patch new file mode 100644 index 0000000000..a898602f90 --- /dev/null +++ b/meta/recipes-core/glibc/glibc/0028-intl-Emit-no-lines-in-bison-generated-files.patch @@ -0,0 +1,34 @@ +From ee7a023899a5291046159cc19320f9624de07f6c Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 3 Aug 2018 09:44:00 -0700 +Subject: [PATCH 28/31] intl: Emit no lines in bison generated files + +Improve reproducibility: +Do not put any #line preprocessor commands in bison generated files. +These lines contain absolute paths containing file locations on +the host build machine. + +Upstream-Status: Pending + +Signed-off-by: Juro Bystricky +Signed-off-by: Khem Raj +--- + intl/Makefile | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/intl/Makefile b/intl/Makefile +index 672edf1b38..d31888d013 100644 +--- a/intl/Makefile ++++ b/intl/Makefile +@@ -155,7 +155,7 @@ $(objpfx)tst-gettext6.out: $(objpfx)tst-gettext.out + + CPPFLAGS += -D'LOCALEDIR="$(localedir)"' \ + -D'LOCALE_ALIAS_PATH="$(localedir)"' +-BISONFLAGS = --yacc --name-prefix=__gettext --output ++BISONFLAGS = --yacc --no-lines --name-prefix=__gettext --output + + $(inst_localedir)/locale.alias: locale.alias $(+force) + $(do-install) +-- +2.20.1 + diff --git a/meta/recipes-core/glibc/glibc/0029-inject-file-assembly-directives.patch b/meta/recipes-core/glibc/glibc/0029-inject-file-assembly-directives.patch new file mode 100644 index 0000000000..08cdcdc94d --- /dev/null +++ b/meta/recipes-core/glibc/glibc/0029-inject-file-assembly-directives.patch @@ -0,0 +1,304 @@ +From 6e9d8aae434c78ac44900f5e2caa228e236d03a3 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Thu, 29 Nov 2018 17:29:35 -0800 +Subject: [PATCH 29/31] inject file assembly directives + +Currently, non-IA builds are not reproducibile since build paths are +being injected into the debug symbols. These are coming from the use of +.S assembler files during the glibc build. No STT_FILE section is added +during the assembly but when linking, ld decides to add one to aid +debugging and ensure references between the different object files its +linking remain clear. + +We can avoid this by injecting a file header into the assembler files +ahead of time, choosing a filename which does not contain build system +paths. + +This is a bit of a workaround/hack but does significantly reduce the +build system references in target binaries for the non-IA architectures +which use .S files. + +RP +2018/10/3 + +Upstream-Status: Pending + +Signed-off-by: Khem Raj +--- + csu/abi-note.S | 2 ++ + sysdeps/aarch64/crti.S | 2 ++ + sysdeps/aarch64/crtn.S | 2 ++ + sysdeps/aarch64/dl-tlsdesc.S | 2 ++ + sysdeps/aarch64/dl-trampoline.S | 2 ++ + sysdeps/aarch64/start.S | 2 ++ + sysdeps/arm/abi-note.S | 2 ++ + sysdeps/arm/crti.S | 2 ++ + sysdeps/arm/crtn.S | 2 ++ + sysdeps/arm/dl-tlsdesc.S | 2 ++ + sysdeps/arm/dl-trampoline.S | 2 ++ + sysdeps/arm/start.S | 2 ++ + sysdeps/mips/start.S | 2 ++ + sysdeps/powerpc/powerpc32/dl-start.S | 2 ++ + sysdeps/powerpc/powerpc32/start.S | 2 ++ + sysdeps/powerpc/powerpc64/start.S | 2 ++ + sysdeps/unix/sysv/linux/aarch64/__read_tp.S | 2 ++ + sysdeps/unix/sysv/linux/arm/aeabi_read_tp.S | 2 ++ + sysdeps/unix/sysv/linux/arm/libc-do-syscall.S | 2 ++ + sysdeps/unix/sysv/linux/powerpc/dl-brk.S | 2 ++ + 20 files changed, 40 insertions(+) + +diff --git a/csu/abi-note.S b/csu/abi-note.S +index 5d0ca7803d..8ce41581b1 100644 +--- a/csu/abi-note.S ++++ b/csu/abi-note.S +@@ -56,6 +56,8 @@ offset length contents + #include + #include /* OS-specific ABI tag value */ + ++ .file "abi-note.S" ++ + /* The linker (GNU ld 2.8 and later) recognizes an allocated section whose + name begins with `.note' and creates a PT_NOTE program header entry + pointing at it. */ +diff --git a/sysdeps/aarch64/crti.S b/sysdeps/aarch64/crti.S +index 2b213758b2..736f33e314 100644 +--- a/sysdeps/aarch64/crti.S ++++ b/sysdeps/aarch64/crti.S +@@ -50,6 +50,8 @@ + # define PREINIT_FUNCTION_WEAK 1 + #endif + ++ .file "crti.S" ++ + #if PREINIT_FUNCTION_WEAK + weak_extern (PREINIT_FUNCTION) + #else +diff --git a/sysdeps/aarch64/crtn.S b/sysdeps/aarch64/crtn.S +index d72300af80..cb249bf3ca 100644 +--- a/sysdeps/aarch64/crtn.S ++++ b/sysdeps/aarch64/crtn.S +@@ -37,6 +37,8 @@ + /* crtn.S puts function epilogues in the .init and .fini sections + corresponding to the prologues in crti.S. */ + ++ .file "crtn.S" ++ + .section .init,"ax",%progbits + ldp x29, x30, [sp], 16 + RET +diff --git a/sysdeps/aarch64/dl-tlsdesc.S b/sysdeps/aarch64/dl-tlsdesc.S +index 43a62ef307..42f85cdde9 100644 +--- a/sysdeps/aarch64/dl-tlsdesc.S ++++ b/sysdeps/aarch64/dl-tlsdesc.S +@@ -22,6 +22,8 @@ + #include + #include "tlsdesc.h" + ++ .file "dl-tlsdesc.S" ++ + #define NSAVEDQREGPAIRS 16 + #define SAVE_Q_REGISTERS \ + stp q0, q1, [sp, #-32*NSAVEDQREGPAIRS]!; \ +diff --git a/sysdeps/aarch64/dl-trampoline.S b/sysdeps/aarch64/dl-trampoline.S +index a86d0722d4..92edab1d01 100644 +--- a/sysdeps/aarch64/dl-trampoline.S ++++ b/sysdeps/aarch64/dl-trampoline.S +@@ -21,6 +21,8 @@ + + #include "dl-link.h" + ++ .file "dl-trampoline.S" ++ + #define ip0 x16 + #define ip0l PTR_REG (16) + #define ip1 x17 +diff --git a/sysdeps/aarch64/start.S b/sysdeps/aarch64/start.S +index bad000f555..5957c028cd 100644 +--- a/sysdeps/aarch64/start.S ++++ b/sysdeps/aarch64/start.S +@@ -18,6 +18,8 @@ + + #include + ++ .file "start.S" ++ + /* This is the canonical entry point, usually the first thing in the text + segment. + +diff --git a/sysdeps/arm/abi-note.S b/sysdeps/arm/abi-note.S +index 07bd4c4619..7213b16f27 100644 +--- a/sysdeps/arm/abi-note.S ++++ b/sysdeps/arm/abi-note.S +@@ -1,3 +1,5 @@ ++ .file "abi-note.S" ++ + /* Tag_ABI_align8_preserved: This code preserves 8-byte + alignment in any callee. */ + .eabi_attribute 25, 1 +diff --git a/sysdeps/arm/crti.S b/sysdeps/arm/crti.S +index a1424d0333..bca1dab256 100644 +--- a/sysdeps/arm/crti.S ++++ b/sysdeps/arm/crti.S +@@ -57,6 +57,8 @@ + .hidden PREINIT_FUNCTION + #endif + ++ .file "crti.S" ++ + #if PREINIT_FUNCTION_WEAK + .p2align 2 + .type call_weak_fn, %function +diff --git a/sysdeps/arm/crtn.S b/sysdeps/arm/crtn.S +index 26027693ce..65a0502826 100644 +--- a/sysdeps/arm/crtn.S ++++ b/sysdeps/arm/crtn.S +@@ -37,6 +37,8 @@ + #define NO_THUMB + #include + ++ .file "crtn.S" ++ + /* crtn.S puts function epilogues in the .init and .fini sections + corresponding to the prologues in crti.S. */ + +diff --git a/sysdeps/arm/dl-tlsdesc.S b/sysdeps/arm/dl-tlsdesc.S +index 056e17d52d..a98c68dfb9 100644 +--- a/sysdeps/arm/dl-tlsdesc.S ++++ b/sysdeps/arm/dl-tlsdesc.S +@@ -21,6 +21,8 @@ + #include + #include "tlsdesc.h" + ++ .file "dl-tlsdesc.S" ++ + .text + @ emit debug information with cfi + @ use arm-specific pseudos for unwinding itself +diff --git a/sysdeps/arm/dl-trampoline.S b/sysdeps/arm/dl-trampoline.S +index c731b01286..4b37b25344 100644 +--- a/sysdeps/arm/dl-trampoline.S ++++ b/sysdeps/arm/dl-trampoline.S +@@ -21,6 +21,8 @@ + #include + #include + ++ .file "dl-trampoline.S" ++ + .text + .globl _dl_runtime_resolve + .type _dl_runtime_resolve, #function +diff --git a/sysdeps/arm/start.S b/sysdeps/arm/start.S +index adef090717..d22e4128e0 100644 +--- a/sysdeps/arm/start.S ++++ b/sysdeps/arm/start.S +@@ -57,6 +57,8 @@ + NULL + */ + ++ .file "start.S" ++ + /* Tag_ABI_align8_preserved: This code preserves 8-byte + alignment in any callee. */ + .eabi_attribute 25, 1 +diff --git a/sysdeps/mips/start.S b/sysdeps/mips/start.S +index a4c4ef0fae..d00fff31a8 100644 +--- a/sysdeps/mips/start.S ++++ b/sysdeps/mips/start.S +@@ -38,6 +38,8 @@ + #include + #include + ++ .file "start.S" ++ + #ifndef ENTRY_POINT + #error ENTRY_POINT needs to be defined for start.S on MIPS/ELF. + #endif +diff --git a/sysdeps/powerpc/powerpc32/dl-start.S b/sysdeps/powerpc/powerpc32/dl-start.S +index 243fb8352b..13247d8f49 100644 +--- a/sysdeps/powerpc/powerpc32/dl-start.S ++++ b/sysdeps/powerpc/powerpc32/dl-start.S +@@ -18,6 +18,8 @@ + + #include + ++ .file "dl-start.S" ++ + /* Initial entry point code for the dynamic linker. + The C function `_dl_start' is the real entry point; + its return value is the user program's entry point. */ +diff --git a/sysdeps/powerpc/powerpc32/start.S b/sysdeps/powerpc/powerpc32/start.S +index 5c10a22f8a..2b52627f27 100644 +--- a/sysdeps/powerpc/powerpc32/start.S ++++ b/sysdeps/powerpc/powerpc32/start.S +@@ -35,6 +35,8 @@ + + #include + ++ .file "start.S" ++ + /* We do not want .eh_frame info for crt1.o since crt1.o is linked + before crtbegin.o, the file defining __EH_FRAME_BEGIN__. */ + #undef cfi_startproc +diff --git a/sysdeps/powerpc/powerpc64/start.S b/sysdeps/powerpc/powerpc64/start.S +index bd7189310c..2e22b8472d 100644 +--- a/sysdeps/powerpc/powerpc64/start.S ++++ b/sysdeps/powerpc/powerpc64/start.S +@@ -35,6 +35,8 @@ + + #include + ++ .file "start.S" ++ + /* We do not want .eh_frame info for crt1.o since crt1.o is linked + before crtbegin.o, the file defining __EH_FRAME_BEGIN__. */ + #undef cfi_startproc +diff --git a/sysdeps/unix/sysv/linux/aarch64/__read_tp.S b/sysdeps/unix/sysv/linux/aarch64/__read_tp.S +index 92fc0191a5..715bfcb9e4 100644 +--- a/sysdeps/unix/sysv/linux/aarch64/__read_tp.S ++++ b/sysdeps/unix/sysv/linux/aarch64/__read_tp.S +@@ -18,6 +18,8 @@ + + #include + ++ .file "__read_tp.S" ++ + .hidden __read_tp + ENTRY (__read_tp) + mrs x0, tpidr_el0 +diff --git a/sysdeps/unix/sysv/linux/arm/aeabi_read_tp.S b/sysdeps/unix/sysv/linux/arm/aeabi_read_tp.S +index 871702317a..20a942dbac 100644 +--- a/sysdeps/unix/sysv/linux/arm/aeabi_read_tp.S ++++ b/sysdeps/unix/sysv/linux/arm/aeabi_read_tp.S +@@ -39,6 +39,8 @@ + a normal function call) in a high page of memory; tail call to the + helper. */ + ++ .file "aeabi_read_tp.S" ++ + .hidden __aeabi_read_tp + ENTRY (__aeabi_read_tp) + #ifdef ARCH_HAS_HARD_TP +diff --git a/sysdeps/unix/sysv/linux/arm/libc-do-syscall.S b/sysdeps/unix/sysv/linux/arm/libc-do-syscall.S +index d26ad1f8d3..a0de10bf81 100644 +--- a/sysdeps/unix/sysv/linux/arm/libc-do-syscall.S ++++ b/sysdeps/unix/sysv/linux/arm/libc-do-syscall.S +@@ -27,6 +27,8 @@ + ARM unwind tables for register to register moves, the actual opcodes + are not defined. */ + ++ .file "libc-do-syscall.S" ++ + #if defined(__thumb__) + .thumb + .syntax unified +diff --git a/sysdeps/unix/sysv/linux/powerpc/dl-brk.S b/sysdeps/unix/sysv/linux/powerpc/dl-brk.S +index eeb96544e3..da182b28f8 100644 +--- a/sysdeps/unix/sysv/linux/powerpc/dl-brk.S ++++ b/sysdeps/unix/sysv/linux/powerpc/dl-brk.S +@@ -1 +1,3 @@ ++ .file "dl-brk.S" ++ + #include +-- +2.20.1 + diff --git a/meta/recipes-core/glibc/glibc/0029-localedef-add-to-archive-uses-a-hard-coded-locale-pa.patch b/meta/recipes-core/glibc/glibc/0029-localedef-add-to-archive-uses-a-hard-coded-locale-pa.patch deleted file mode 100644 index e17f6aa3b9..0000000000 --- a/meta/recipes-core/glibc/glibc/0029-localedef-add-to-archive-uses-a-hard-coded-locale-pa.patch +++ /dev/null @@ -1,89 +0,0 @@ -From 865651d2496a90f7ae8e7cc19a2e54b6f17a8ad5 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 3 Aug 2018 09:42:06 -0700 -Subject: [PATCH] localedef --add-to-archive uses a hard-coded locale path - -it doesn't exist in normal use, and there's no way to pass an -alternative filename. - -Add a fallback of $LOCALEARCHIVE from the environment, and allow -creation of new locale archives that are not the system archive. - -Upstream-Status: Inappropriate (OE-specific) - -Signed-off-by: Ross Burton -Signed-off-by: Khem Raj ---- - locale/programs/locarchive.c | 37 ++++++++++++++++++++++++++---------- - 1 file changed, 27 insertions(+), 10 deletions(-) - -diff --git a/locale/programs/locarchive.c b/locale/programs/locarchive.c -index ca332a345f..91f62da662 100644 ---- a/locale/programs/locarchive.c -+++ b/locale/programs/locarchive.c -@@ -340,12 +340,24 @@ enlarge_archive (struct locarhandle *ah, const struct locarhead *head) - struct namehashent *oldnamehashtab; - struct locarhandle new_ah; - size_t prefix_len = output_prefix ? strlen (output_prefix) : 0; -- char archivefname[prefix_len + sizeof (ARCHIVE_NAME)]; -- char fname[prefix_len + sizeof (ARCHIVE_NAME) + sizeof (".XXXXXX") - 1]; -+ char *archivefname; -+ char *fname; -+ char *envarchive = getenv("LOCALEARCHIVE"); - -- if (output_prefix) -- memcpy (archivefname, output_prefix, prefix_len); -- strcpy (archivefname + prefix_len, ARCHIVE_NAME); -+ if (envarchive != NULL) -+ { -+ archivefname = xmalloc(strlen(envarchive) + 1); -+ fname = xmalloc(strlen(envarchive) + sizeof (".XXXXXX")); -+ strcpy (archivefname, envarchive); -+ } -+ else -+ { -+ archivefname = xmalloc(prefix_len + sizeof (ARCHIVE_NAME)); -+ fname = xmalloc(prefix_len + sizeof (ARCHIVE_NAME) + sizeof (".XXXXXX") - 1); -+ if (output_prefix) -+ memcpy (archivefname, output_prefix, prefix_len); -+ strcpy (archivefname + prefix_len, ARCHIVE_NAME); -+ } - strcpy (stpcpy (fname, archivefname), ".XXXXXX"); - - /* Not all of the old file has to be mapped. Change this now this -@@ -551,6 +563,8 @@ enlarge_archive (struct locarhandle *ah, const struct locarhead *head) - - /* Add the information for the new one. */ - *ah = new_ah; -+ free(archivefname); -+ free(fname); - } - - -@@ -569,10 +583,13 @@ open_archive (struct locarhandle *ah, bool readonly) - /* If ah has a non-NULL fname open that otherwise open the default. */ - if (archivefname == NULL) - { -- archivefname = default_fname; -- if (output_prefix) -- memcpy (default_fname, output_prefix, prefix_len); -- strcpy (default_fname + prefix_len, ARCHIVE_NAME); -+ archivefname = getenv("LOCALEARCHIVE"); -+ if (archivefname == NULL) { -+ archivefname = default_fname; -+ if (output_prefix) -+ memcpy (default_fname, output_prefix, prefix_len); -+ strcpy (default_fname + prefix_len, ARCHIVE_NAME); -+ } - } - - while (1) -@@ -585,7 +602,7 @@ open_archive (struct locarhandle *ah, bool readonly) - the default locale archive we ignore the failure and - list an empty archive, otherwise we print an error - and exit. */ -- if (errno == ENOENT && archivefname == default_fname) -+ if (errno == ENOENT) - { - if (readonly) - { diff --git a/meta/recipes-core/glibc/glibc/0030-intl-Emit-no-lines-in-bison-generated-files.patch b/meta/recipes-core/glibc/glibc/0030-intl-Emit-no-lines-in-bison-generated-files.patch deleted file mode 100644 index db97d91c99..0000000000 --- a/meta/recipes-core/glibc/glibc/0030-intl-Emit-no-lines-in-bison-generated-files.patch +++ /dev/null @@ -1,31 +0,0 @@ -From a54c15d0567d547137066f41b1b22eba4875c27b Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 3 Aug 2018 09:44:00 -0700 -Subject: [PATCH] intl: Emit no lines in bison generated files - -Improve reproducibility: -Do not put any #line preprocessor commands in bison generated files. -These lines contain absolute paths containing file locations on -the host build machine. - -Upstream-Status: Pending - -Signed-off-by: Juro Bystricky -Signed-off-by: Khem Raj ---- - intl/Makefile | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/intl/Makefile b/intl/Makefile -index 672edf1b38..d31888d013 100644 ---- a/intl/Makefile -+++ b/intl/Makefile -@@ -155,7 +155,7 @@ $(objpfx)tst-gettext6.out: $(objpfx)tst-gettext.out - - CPPFLAGS += -D'LOCALEDIR="$(localedir)"' \ - -D'LOCALE_ALIAS_PATH="$(localedir)"' --BISONFLAGS = --yacc --name-prefix=__gettext --output -+BISONFLAGS = --yacc --no-lines --name-prefix=__gettext --output - - $(inst_localedir)/locale.alias: locale.alias $(+force) - $(do-install) diff --git a/meta/recipes-core/glibc/glibc/0030-sysdeps-ieee754-prevent-maybe-uninitialized-errors-w.patch b/meta/recipes-core/glibc/glibc/0030-sysdeps-ieee754-prevent-maybe-uninitialized-errors-w.patch new file mode 100644 index 0000000000..350a2567ce --- /dev/null +++ b/meta/recipes-core/glibc/glibc/0030-sysdeps-ieee754-prevent-maybe-uninitialized-errors-w.patch @@ -0,0 +1,138 @@ +From 1eb9f04cf243712155063b848a40b5c103985bf5 Mon Sep 17 00:00:00 2001 +From: Martin Jansa +Date: Mon, 17 Dec 2018 21:32:23 +0000 +Subject: [PATCH 30/31] sysdeps/ieee754: prevent maybe-uninitialized errors + with -O [BZ #19444] + +With -O included in CFLAGS it fails to build with: + +../sysdeps/ieee754/ldbl-96/e_jnl.c: In function '__ieee754_jnl': +../sysdeps/ieee754/ldbl-96/e_jnl.c:146:20: error: 'temp' may be used uninitialized in this function [-Werror=maybe-uninitialized] + b = invsqrtpi * temp / sqrtl (x); + ~~~~~~~~~~^~~~~~ +../sysdeps/ieee754/ldbl-96/e_jnl.c: In function '__ieee754_ynl': +../sysdeps/ieee754/ldbl-96/e_jnl.c:375:16: error: 'temp' may be used uninitialized in this function [-Werror=maybe-uninitialized] + b = invsqrtpi * temp / sqrtl (x); + ~~~~~~~~~~^~~~~~ +../sysdeps/ieee754/dbl-64/e_jn.c: In function '__ieee754_jn': +../sysdeps/ieee754/dbl-64/e_jn.c:113:20: error: 'temp' may be used uninitialized in this function [-Werror=maybe-uninitialized] + b = invsqrtpi * temp / sqrt (x); + ~~~~~~~~~~^~~~~~ +../sysdeps/ieee754/dbl-64/e_jn.c: In function '__ieee754_yn': +../sysdeps/ieee754/dbl-64/e_jn.c:320:16: error: 'temp' may be used uninitialized in this function [-Werror=maybe-uninitialized] + b = invsqrtpi * temp / sqrt (x); + ~~~~~~~~~~^~~~~~ + +Build tested with Yocto for ARM, AARCH64, X86, X86_64, PPC, MIPS, MIPS64 +with -O, -O1, -Os. +For soft-fp ARM it needs one more fix for -O1: +https://sourceware.org/ml/libc-alpha/2018-09/msg00300.html +For AARCH64 it needs one more fix in locale for -Os: +https://sourceware.org/ml/libc-alpha/2018-09/msg00539.html + + [BZ #19444] + * sysdeps/ieee754/dbl-96/e_jnl.c: Fix build with -O + * sysdeps/ieee754/ldbl-96/e_jnl.c: Likewise. + * sysdeps/ieee754/ldbl-128/e_jnl.c: Likewise. + * sysdeps/ieee754/ldbl-128ibm/e_jnl.c: Likewise. + +Upstream-Status: Submitted [https://patchwork.ozlabs.org/patch/1014765] + +Signed-off-by: Martin Jansa +Signed-off-by: Khem Raj +--- + sysdeps/ieee754/dbl-64/e_jn.c | 2 ++ + sysdeps/ieee754/ldbl-128/e_jnl.c | 4 ++++ + sysdeps/ieee754/ldbl-128ibm/e_jnl.c | 4 ++++ + sysdeps/ieee754/ldbl-96/e_jnl.c | 4 ++++ + 4 files changed, 14 insertions(+) + +diff --git a/sysdeps/ieee754/dbl-64/e_jn.c b/sysdeps/ieee754/dbl-64/e_jn.c +index aff06ead16..90a7e77270 100644 +--- a/sysdeps/ieee754/dbl-64/e_jn.c ++++ b/sysdeps/ieee754/dbl-64/e_jn.c +@@ -109,6 +109,7 @@ __ieee754_jn (int n, double x) + case 1: temp = -c + s; break; + case 2: temp = -c - s; break; + case 3: temp = c - s; break; ++ default: __builtin_unreachable (); + } + b = invsqrtpi * temp / sqrt (x); + } +@@ -316,6 +317,7 @@ __ieee754_yn (int n, double x) + case 1: temp = -s - c; break; + case 2: temp = -s + c; break; + case 3: temp = s + c; break; ++ default: __builtin_unreachable (); + } + b = invsqrtpi * temp / sqrt (x); + } +diff --git a/sysdeps/ieee754/ldbl-128/e_jnl.c b/sysdeps/ieee754/ldbl-128/e_jnl.c +index 7610d18c67..3c90072a22 100644 +--- a/sysdeps/ieee754/ldbl-128/e_jnl.c ++++ b/sysdeps/ieee754/ldbl-128/e_jnl.c +@@ -150,6 +150,8 @@ __ieee754_jnl (int n, _Float128 x) + case 3: + temp = c - s; + break; ++ default: ++ __builtin_unreachable (); + } + b = invsqrtpi * temp / sqrtl (x); + } +@@ -386,6 +388,8 @@ __ieee754_ynl (int n, _Float128 x) + case 3: + temp = s + c; + break; ++ default: ++ __builtin_unreachable (); + } + b = invsqrtpi * temp / sqrtl (x); + } +diff --git a/sysdeps/ieee754/ldbl-128ibm/e_jnl.c b/sysdeps/ieee754/ldbl-128ibm/e_jnl.c +index 50b4558e74..478824c8fa 100644 +--- a/sysdeps/ieee754/ldbl-128ibm/e_jnl.c ++++ b/sysdeps/ieee754/ldbl-128ibm/e_jnl.c +@@ -150,6 +150,8 @@ __ieee754_jnl (int n, long double x) + case 3: + temp = c - s; + break; ++ default: ++ __builtin_unreachable (); + } + b = invsqrtpi * temp / sqrtl (x); + } +@@ -386,6 +388,8 @@ __ieee754_ynl (int n, long double x) + case 3: + temp = s + c; + break; ++ default: ++ __builtin_unreachable (); + } + b = invsqrtpi * temp / sqrtl (x); + } +diff --git a/sysdeps/ieee754/ldbl-96/e_jnl.c b/sysdeps/ieee754/ldbl-96/e_jnl.c +index 855190841b..6c1c4b4653 100644 +--- a/sysdeps/ieee754/ldbl-96/e_jnl.c ++++ b/sysdeps/ieee754/ldbl-96/e_jnl.c +@@ -143,6 +143,8 @@ __ieee754_jnl (int n, long double x) + case 3: + temp = c - s; + break; ++ default: ++ __builtin_unreachable (); + } + b = invsqrtpi * temp / sqrtl (x); + } +@@ -372,6 +374,8 @@ __ieee754_ynl (int n, long double x) + case 3: + temp = s + c; + break; ++ default: ++ __builtin_unreachable (); + } + b = invsqrtpi * temp / sqrtl (x); + } +-- +2.20.1 + diff --git a/meta/recipes-core/glibc/glibc/0031-locale-prevent-maybe-uninitialized-errors-with-Os-BZ.patch b/meta/recipes-core/glibc/glibc/0031-locale-prevent-maybe-uninitialized-errors-with-Os-BZ.patch new file mode 100644 index 0000000000..6d9f2e5620 --- /dev/null +++ b/meta/recipes-core/glibc/glibc/0031-locale-prevent-maybe-uninitialized-errors-with-Os-BZ.patch @@ -0,0 +1,56 @@ +From 81c60ac1f99852ed04e69b2a7db1ff2fc0f0f031 Mon Sep 17 00:00:00 2001 +From: Martin Jansa +Date: Mon, 17 Dec 2018 21:36:18 +0000 +Subject: [PATCH 31/31] locale: prevent maybe-uninitialized errors with -Os [BZ + #19444] + +Fixes following error when building for aarch64 with -Os: +| In file included from strcoll_l.c:43: +| strcoll_l.c: In function '__strcoll_l': +| ../locale/weight.h:31:26: error: 'seq2.back_us' may be used uninitialized in this function [-Werror=maybe-uninitialized] +| int_fast32_t i = table[*(*cpp)++]; +| ^~~~~~~~~ +| strcoll_l.c:304:18: note: 'seq2.back_us' was declared here +| coll_seq seq1, seq2; +| ^~~~ +| In file included from strcoll_l.c:43: +| ../locale/weight.h:31:26: error: 'seq1.back_us' may be used uninitialized in this function [-Werror=maybe-uninitialized] +| int_fast32_t i = table[*(*cpp)++]; +| ^~~~~~~~~ +| strcoll_l.c:304:12: note: 'seq1.back_us' was declared here +| coll_seq seq1, seq2; +| ^~~~ + + Partial fix for [BZ #19444] + * locale/weight.h: Fix build with -Os. + +Upstream-Status: Submitted [https://patchwork.ozlabs.org/patch/1014766] + +Signed-off-by: Martin Jansa +Signed-off-by: Khem Raj +--- + locale/weight.h | 7 +++++++ + 1 file changed, 7 insertions(+) + +diff --git a/locale/weight.h b/locale/weight.h +index 6028d3595e..10bcea25e5 100644 +--- a/locale/weight.h ++++ b/locale/weight.h +@@ -28,7 +28,14 @@ findidx (const int32_t *table, + const unsigned char *extra, + const unsigned char **cpp, size_t len) + { ++ /* With GCC 8 when compiling with -Os the compiler warns that ++ seq1.back_us and seq2.back_us might be used uninitialized. ++ This uninitialized use is impossible for the same reason ++ as described in comments in locale/weightwc.h. */ ++ DIAG_PUSH_NEEDS_COMMENT; ++ DIAG_IGNORE_Os_NEEDS_COMMENT (8, "-Wmaybe-uninitialized"); + int_fast32_t i = table[*(*cpp)++]; ++ DIAG_POP_NEEDS_COMMENT; + const unsigned char *cp; + const unsigned char *usrc; + +-- +2.20.1 + diff --git a/meta/recipes-core/glibc/glibc/0031-sysdeps-ieee754-prevent-maybe-uninitialized-errors-w.patch b/meta/recipes-core/glibc/glibc/0031-sysdeps-ieee754-prevent-maybe-uninitialized-errors-w.patch deleted file mode 100644 index 61f55d4f83..0000000000 --- a/meta/recipes-core/glibc/glibc/0031-sysdeps-ieee754-prevent-maybe-uninitialized-errors-w.patch +++ /dev/null @@ -1,258 +0,0 @@ -From 546b46c309a52ed74dc906114b1e984bb9703d74 Mon Sep 17 00:00:00 2001 -From: Martin Jansa -Date: Fri, 14 Sep 2018 23:23:03 +0000 -Subject: [PATCH] sysdeps/ieee754: prevent maybe-uninitialized errors with -O - [BZ #19444] - -With -O included in CFLAGS it fails to build with: - -../sysdeps/ieee754/ldbl-96/e_jnl.c: In function '__ieee754_jnl': -../sysdeps/ieee754/ldbl-96/e_jnl.c:146:20: error: 'temp' may be used uninitialized in this function [-Werror=maybe-uninitialized] - b = invsqrtpi * temp / sqrtl (x); - ~~~~~~~~~~^~~~~~ -../sysdeps/ieee754/ldbl-96/e_jnl.c: In function '__ieee754_ynl': -../sysdeps/ieee754/ldbl-96/e_jnl.c:375:16: error: 'temp' may be used uninitialized in this function [-Werror=maybe-uninitialized] - b = invsqrtpi * temp / sqrtl (x); - ~~~~~~~~~~^~~~~~ -../sysdeps/ieee754/dbl-64/e_jn.c: In function '__ieee754_jn': -../sysdeps/ieee754/dbl-64/e_jn.c:113:20: error: 'temp' may be used uninitialized in this function [-Werror=maybe-uninitialized] - b = invsqrtpi * temp / sqrt (x); - ~~~~~~~~~~^~~~~~ -../sysdeps/ieee754/dbl-64/e_jn.c: In function '__ieee754_yn': -../sysdeps/ieee754/dbl-64/e_jn.c:320:16: error: 'temp' may be used uninitialized in this function [-Werror=maybe-uninitialized] - b = invsqrtpi * temp / sqrt (x); - ~~~~~~~~~~^~~~~~ - -Build tested with Yocto for ARM, AARCH64, X86, X86_64, PPC, MIPS, MIPS64 -with -O, -O1, -Os. -For soft-fp ARM it needs one more fix for -O1: -https://sourceware.org/ml/libc-alpha/2018-09/msg00300.html -For AARCH64 it needs one more fix in locale for -Os. - - [BZ #23716] - * sysdeps/ieee754/dbl-96/e_jnl.c: Fix build with -O - * sysdeps/ieee754/ldbl-96/e_jnl.c: Likewise. - * sysdeps/ieee754/ldbl-128/e_jnl.c: Likewise. - * sysdeps/ieee754/ldbl-128ibm/e_jnl.c: Likewise. - -Work around the issue instead of removing -O like we do with -SELECTED_OPTIMIZATION - -Upstream-Status: Submitted [https://www.sourceware.org/ml/libc-alpha/2018-09/msg00299.html] - -Signed-off-by: Martin Jansa ---- - ChangeLog | 7 +++++++ - sysdeps/ieee754/dbl-64/e_jn.c | 21 +++++++++++++++++++++ - sysdeps/ieee754/ldbl-128/e_jnl.c | 21 +++++++++++++++++++++ - sysdeps/ieee754/ldbl-128ibm/e_jnl.c | 21 +++++++++++++++++++++ - sysdeps/ieee754/ldbl-96/e_jnl.c | 21 +++++++++++++++++++++ - 5 files changed, 91 insertions(+) - -diff --git a/ChangeLog b/ChangeLog -index 11a9b8d98e..922e916f2c 100644 ---- a/ChangeLog -+++ b/ChangeLog -@@ -1,3 +1,10 @@ -+2018-09-29 Martin Jansa -+ Partial fix for [BZ #23716] -+ * sysdeps/ieee754/dbl-96/e_jnl.c: Fix build with -O -+ * sysdeps/ieee754/ldbl-96/e_jnl.c: Likewise. -+ * sysdeps/ieee754/ldbl-128/e_jnl.c: Likewise. -+ * sysdeps/ieee754/ldbl-128ibm/e_jnl.c: Likewise. -+ - 2018-09-28 Adhemerval Zanella - - [BZ #23579] -diff --git a/sysdeps/ieee754/dbl-64/e_jn.c b/sysdeps/ieee754/dbl-64/e_jn.c -index 9181b22bb8..9ff52c737f 100644 ---- a/sysdeps/ieee754/dbl-64/e_jn.c -+++ b/sysdeps/ieee754/dbl-64/e_jn.c -@@ -42,6 +42,7 @@ - #include - #include - #include -+#include - - static const double - invsqrtpi = 5.64189583547756279280e-01, /* 0x3FE20DD7, 0x50429B6D */ -@@ -109,7 +110,17 @@ __ieee754_jn (int n, double x) - case 2: temp = -c - s; break; - case 3: temp = c - s; break; - } -+ /* With GCC 8 (and older) when compiling with -O the compiler -+ warns that the variable 'temp', may be used uninitialized. -+ The switch above covers all possible values of n & 3 -+ but GCC without VRP enabled isn't able to figure out the -+ range of possible values is [0,3] as explained in: -+ https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69230 -+ so it's false possitive with -O1 and lower. */ -+ DIAG_PUSH_NEEDS_COMMENT; -+ DIAG_IGNORE_NEEDS_COMMENT (8, "-Wmaybe-uninitialized"); - b = invsqrtpi * temp / sqrt (x); -+ DIAG_POP_NEEDS_COMMENT; - } - else - { -@@ -316,7 +327,17 @@ __ieee754_yn (int n, double x) - case 2: temp = -s + c; break; - case 3: temp = s + c; break; - } -+ /* With GCC 8 (and older) when compiling with -O the compiler -+ warns that the variable 'temp', may be used uninitialized. -+ The switch above covers all possible values of n & 3 -+ but GCC without VRP enabled isn't able to figure out the -+ range of possible values is [0,3] as explained in: -+ https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69230 -+ so it's false possitive with -O1 and lower. */ -+ DIAG_PUSH_NEEDS_COMMENT; -+ DIAG_IGNORE_NEEDS_COMMENT (8, "-Wmaybe-uninitialized"); - b = invsqrtpi * temp / sqrt (x); -+ DIAG_POP_NEEDS_COMMENT; - } - else - { -diff --git a/sysdeps/ieee754/ldbl-128/e_jnl.c b/sysdeps/ieee754/ldbl-128/e_jnl.c -index 7739eec291..8706a11575 100644 ---- a/sysdeps/ieee754/ldbl-128/e_jnl.c -+++ b/sysdeps/ieee754/ldbl-128/e_jnl.c -@@ -61,6 +61,7 @@ - #include - #include - #include -+#include - - static const _Float128 - invsqrtpi = L(5.6418958354775628694807945156077258584405E-1), -@@ -150,7 +151,17 @@ __ieee754_jnl (int n, _Float128 x) - temp = c - s; - break; - } -+ /* With GCC 8 (and older) when compiling with -O the compiler -+ warns that the variable 'temp', may be used uninitialized. -+ The switch above covers all possible values of n & 3 -+ but GCC without VRP enabled isn't able to figure out the -+ range of possible values is [0,3] as explained in: -+ https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69230 -+ so it's false possitive with -O1 and lower. */ -+ DIAG_PUSH_NEEDS_COMMENT; -+ DIAG_IGNORE_NEEDS_COMMENT (8, "-Wmaybe-uninitialized"); - b = invsqrtpi * temp / sqrtl (x); -+ DIAG_POP_NEEDS_COMMENT; - } - else - { -@@ -386,7 +397,17 @@ __ieee754_ynl (int n, _Float128 x) - temp = s + c; - break; - } -+ /* With GCC 8 (and older) when compiling with -O the compiler -+ warns that the variable 'temp', may be used uninitialized. -+ The switch above covers all possible values of n & 3 -+ but GCC without VRP enabled isn't able to figure out the -+ range of possible values is [0,3] as explained in: -+ https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69230 -+ so it's false possitive with -O1 and lower. */ -+ DIAG_PUSH_NEEDS_COMMENT; -+ DIAG_IGNORE_NEEDS_COMMENT (8, "-Wmaybe-uninitialized"); - b = invsqrtpi * temp / sqrtl (x); -+ DIAG_POP_NEEDS_COMMENT; - } - else - { -diff --git a/sysdeps/ieee754/ldbl-128ibm/e_jnl.c b/sysdeps/ieee754/ldbl-128ibm/e_jnl.c -index 71b3addfba..3226d02309 100644 ---- a/sysdeps/ieee754/ldbl-128ibm/e_jnl.c -+++ b/sysdeps/ieee754/ldbl-128ibm/e_jnl.c -@@ -61,6 +61,7 @@ - #include - #include - #include -+#include - - static const long double - invsqrtpi = 5.6418958354775628694807945156077258584405E-1L, -@@ -150,7 +151,17 @@ __ieee754_jnl (int n, long double x) - temp = c - s; - break; - } -+ /* With GCC 8 (and older) when compiling with -O the compiler -+ warns that the variable 'temp', may be used uninitialized. -+ The switch above covers all possible values of n & 3 -+ but GCC without VRP enabled isn't able to figure out the -+ range of possible values is [0,3] as explained in: -+ https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69230 -+ so it's false possitive with -O1 and lower. */ -+ DIAG_PUSH_NEEDS_COMMENT; -+ DIAG_IGNORE_NEEDS_COMMENT (8, "-Wmaybe-uninitialized"); - b = invsqrtpi * temp / sqrtl (x); -+ DIAG_POP_NEEDS_COMMENT; - } - else - { -@@ -386,7 +397,17 @@ __ieee754_ynl (int n, long double x) - temp = s + c; - break; - } -+ /* With GCC 8 (and older) when compiling with -O the compiler -+ warns that the variable 'temp', may be used uninitialized. -+ The switch above covers all possible values of n & 3 -+ but GCC without VRP enabled isn't able to figure out the -+ range of possible values is [0,3] as explained in: -+ https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69230 -+ so it's false possitive with -O1 and lower. */ -+ DIAG_PUSH_NEEDS_COMMENT; -+ DIAG_IGNORE_NEEDS_COMMENT (8, "-Wmaybe-uninitialized"); - b = invsqrtpi * temp / sqrtl (x); -+ DIAG_POP_NEEDS_COMMENT; - } - else - { -diff --git a/sysdeps/ieee754/ldbl-96/e_jnl.c b/sysdeps/ieee754/ldbl-96/e_jnl.c -index 394921f564..da5c2cc93e 100644 ---- a/sysdeps/ieee754/ldbl-96/e_jnl.c -+++ b/sysdeps/ieee754/ldbl-96/e_jnl.c -@@ -61,6 +61,7 @@ - #include - #include - #include -+#include - - static const long double - invsqrtpi = 5.64189583547756286948079e-1L, two = 2.0e0L, one = 1.0e0L; -@@ -143,7 +144,17 @@ __ieee754_jnl (int n, long double x) - temp = c - s; - break; - } -+ /* With GCC 8 (and older) when compiling with -O the compiler -+ warns that the variable 'temp', may be used uninitialized. -+ The switch above covers all possible values of n & 3 -+ but GCC without VRP enabled isn't able to figure out the -+ range of possible values is [0,3] as explained in: -+ https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69230 -+ so it's false possitive with -O1 and lower. */ -+ DIAG_PUSH_NEEDS_COMMENT; -+ DIAG_IGNORE_NEEDS_COMMENT (8, "-Wmaybe-uninitialized"); - b = invsqrtpi * temp / sqrtl (x); -+ DIAG_POP_NEEDS_COMMENT; - } - else - { -@@ -372,7 +383,17 @@ __ieee754_ynl (int n, long double x) - temp = s + c; - break; - } -+ /* With GCC 8 (and older) when compiling with -O the compiler -+ warns that the variable 'temp', may be used uninitialized. -+ The switch above covers all possible values of n & 3 -+ but GCC without VRP enabled isn't able to figure out the -+ range of possible values is [0,3] as explained in: -+ https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69230 -+ so it's false possitive with -O1 and lower. */ -+ DIAG_PUSH_NEEDS_COMMENT; -+ DIAG_IGNORE_NEEDS_COMMENT (8, "-Wmaybe-uninitialized"); - b = invsqrtpi * temp / sqrtl (x); -+ DIAG_POP_NEEDS_COMMENT; - } - else - { diff --git a/meta/recipes-core/glibc/glibc/0032-sysdeps-ieee754-soft-fp-ignore-maybe-uninitialized-w.patch b/meta/recipes-core/glibc/glibc/0032-sysdeps-ieee754-soft-fp-ignore-maybe-uninitialized-w.patch deleted file mode 100644 index 99cd2509ec..0000000000 --- a/meta/recipes-core/glibc/glibc/0032-sysdeps-ieee754-soft-fp-ignore-maybe-uninitialized-w.patch +++ /dev/null @@ -1,100 +0,0 @@ -From 618668540e263c09b0eb28131dde7b4500158fd4 Mon Sep 17 00:00:00 2001 -From: Martin Jansa -Date: Sun, 16 Sep 2018 12:39:22 +0000 -Subject: [PATCH] sysdeps/ieee754/soft-fp: ignore maybe-uninitialized with -O - [BZ #19444] - -* with -O, -O1, -Os it fails with: - -In file included from ../soft-fp/soft-fp.h:318, - from ../sysdeps/ieee754/soft-fp/s_fdiv.c:28: -../sysdeps/ieee754/soft-fp/s_fdiv.c: In function '__fdiv': -../soft-fp/op-2.h:98:25: error: 'R_f1' may be used uninitialized in this function [-Werror=maybe-uninitialized] - X##_f0 = (X##_f1 << (_FP_W_TYPE_SIZE - (N)) | X##_f0 >> (N) \ - ^~ -../sysdeps/ieee754/soft-fp/s_fdiv.c:38:14: note: 'R_f1' was declared here - FP_DECL_D (R); - ^ -../soft-fp/op-2.h:37:36: note: in definition of macro '_FP_FRAC_DECL_2' - _FP_W_TYPE X##_f0 _FP_ZERO_INIT, X##_f1 _FP_ZERO_INIT - ^ -../soft-fp/double.h:95:24: note: in expansion of macro '_FP_DECL' - # define FP_DECL_D(X) _FP_DECL (2, X) - ^~~~~~~~ -../sysdeps/ieee754/soft-fp/s_fdiv.c:38:3: note: in expansion of macro 'FP_DECL_D' - FP_DECL_D (R); - ^~~~~~~~~ -../soft-fp/op-2.h:101:17: error: 'R_f0' may be used uninitialized in this function [-Werror=maybe-uninitialized] - : (X##_f0 << (_FP_W_TYPE_SIZE - (N))) != 0)); \ - ^~ -../sysdeps/ieee754/soft-fp/s_fdiv.c:38:14: note: 'R_f0' was declared here - FP_DECL_D (R); - ^ -../soft-fp/op-2.h:37:14: note: in definition of macro '_FP_FRAC_DECL_2' - _FP_W_TYPE X##_f0 _FP_ZERO_INIT, X##_f1 _FP_ZERO_INIT - ^ -../soft-fp/double.h:95:24: note: in expansion of macro '_FP_DECL' - # define FP_DECL_D(X) _FP_DECL (2, X) - ^~~~~~~~ -../sysdeps/ieee754/soft-fp/s_fdiv.c:38:3: note: in expansion of macro 'FP_DECL_D' - FP_DECL_D (R); - ^~~~~~~~~ - -Build tested with Yocto for ARM, AARCH64, X86, X86_64, PPC, MIPS, MIPS64 -with -O, -O1, -Os. -For AARCH64 it needs one more fix in locale for -Os. - - Partial fix for [BZ #23716] - * sysdeps/ieee754/soft-fp/s_fdiv.c: Fix build with -O - -Work around the issue instead of removing -O like we do with -SELECTED_OPTIMIZATION - -Upstream-Status: Submitted [https://www.sourceware.org/ml/libc-alpha/2018-09/msg00300.html] - -Signed-off-by: Martin Jansa ---- - ChangeLog | 4 ++++ - sysdeps/ieee754/soft-fp/s_fdiv.c | 12 ++++++++++++ - 2 files changed, 16 insertions(+) - -diff --git a/ChangeLog b/ChangeLog -index 922e916f2c..216336edc9 100644 ---- a/ChangeLog -+++ b/ChangeLog -@@ -1,3 +1,7 @@ -+2018-09-30 Martin Jansa -+ Partial fix for [BZ #23716] -+ * sysdeps/ieee754/soft-fp/s_fdiv.c: Fix build with -O. -+ - 2018-09-29 Martin Jansa - Partial fix for [BZ #23716] - * sysdeps/ieee754/dbl-96/e_jnl.c: Fix build with -O -diff --git a/sysdeps/ieee754/soft-fp/s_fdiv.c b/sysdeps/ieee754/soft-fp/s_fdiv.c -index 341339f5ed..14655b77da 100644 ---- a/sysdeps/ieee754/soft-fp/s_fdiv.c -+++ b/sysdeps/ieee754/soft-fp/s_fdiv.c -@@ -25,6 +25,16 @@ - #undef fdivl - - #include -+ -+#include -+/* R_f[01] are not set in cases where it is not used in packing, but the -+ compiler does not see that it is set in all cases where it is -+ used, resulting in warnings that it may be used uninitialized. -+ The location of the warning differs in different versions of GCC, -+ it may be where R is defined using a macro or it may be where the -+ macro is defined. */ -+DIAG_PUSH_NEEDS_COMMENT; -+DIAG_IGNORE_NEEDS_COMMENT (8, "-Wmaybe-uninitialized"); - #include - #include - #include -@@ -53,4 +63,6 @@ __fdiv (double x, double y) - CHECK_NARROW_DIV (ret, x, y); - return ret; - } -+DIAG_POP_NEEDS_COMMENT; -+ - libm_alias_float_double (div) diff --git a/meta/recipes-core/glibc/glibc/0033-locale-prevent-maybe-uninitialized-errors-with-Os-BZ.patch b/meta/recipes-core/glibc/glibc/0033-locale-prevent-maybe-uninitialized-errors-with-Os-BZ.patch deleted file mode 100644 index 31058ca91a..0000000000 --- a/meta/recipes-core/glibc/glibc/0033-locale-prevent-maybe-uninitialized-errors-with-Os-BZ.patch +++ /dev/null @@ -1,68 +0,0 @@ -From cbada1a1b218c1ef61d0eb4363fad7598e6509d6 Mon Sep 17 00:00:00 2001 -From: Martin Jansa -Date: Sun, 30 Sep 2018 09:16:48 +0000 -Subject: [PATCH] locale: prevent maybe-uninitialized errors with -Os [BZ - #19444] - -Fixes following error when building for aarch64 with -Os: -| In file included from strcoll_l.c:43: -| strcoll_l.c: In function '__strcoll_l': -| ../locale/weight.h:31:26: error: 'seq2.back_us' may be used uninitialized in this function [-Werror=maybe-uninitialized] -| int_fast32_t i = table[*(*cpp)++]; -| ^~~~~~~~~ -| strcoll_l.c:304:18: note: 'seq2.back_us' was declared here -| coll_seq seq1, seq2; -| ^~~~ -| In file included from strcoll_l.c:43: -| ../locale/weight.h:31:26: error: 'seq1.back_us' may be used uninitialized in this function [-Werror=maybe-uninitialized] -| int_fast32_t i = table[*(*cpp)++]; -| ^~~~~~~~~ -| strcoll_l.c:304:12: note: 'seq1.back_us' was declared here -| coll_seq seq1, seq2; -| ^~~~ - - Partial fix for [BZ #23716] - * locale/weight.h: Fix build with -Os. - -Work around the issue instead of removing -O like we do with -SELECTED_OPTIMIZATION - -Upstream-Status: Submitted [https://www.sourceware.org/ml/libc-alpha/2018-09/msg00539.html] - -Signed-off-by: Martin Jansa ---- - ChangeLog | 4 ++++ - locale/weight.h | 7 +++++++ - 2 files changed, 11 insertions(+) - -diff --git a/ChangeLog b/ChangeLog -index 216336edc9..84fbbf47ed 100644 ---- a/ChangeLog -+++ b/ChangeLog -@@ -1,3 +1,7 @@ -+2018-09-30 Martin Jansa -+ Partial fix for [BZ #23716] -+ * locale/weight.h: Fix build with -Os. -+ - 2018-09-30 Martin Jansa - Partial fix for [BZ #23716] - * sysdeps/ieee754/soft-fp/s_fdiv.c: Fix build with -O. -diff --git a/locale/weight.h b/locale/weight.h -index 6028d3595e..10bcea25e5 100644 ---- a/locale/weight.h -+++ b/locale/weight.h -@@ -28,7 +28,14 @@ findidx (const int32_t *table, - const unsigned char *extra, - const unsigned char **cpp, size_t len) - { -+ /* With GCC 8 when compiling with -Os the compiler warns that -+ seq1.back_us and seq2.back_us might be used uninitialized. -+ This uninitialized use is impossible for the same reason -+ as described in comments in locale/weightwc.h. */ -+ DIAG_PUSH_NEEDS_COMMENT; -+ DIAG_IGNORE_Os_NEEDS_COMMENT (8, "-Wmaybe-uninitialized"); - int_fast32_t i = table[*(*cpp)++]; -+ DIAG_POP_NEEDS_COMMENT; - const unsigned char *cp; - const unsigned char *usrc; - diff --git a/meta/recipes-core/glibc/glibc/0034-inject-file-assembly-directives.patch b/meta/recipes-core/glibc/glibc/0034-inject-file-assembly-directives.patch deleted file mode 100644 index 55eba2d43e..0000000000 --- a/meta/recipes-core/glibc/glibc/0034-inject-file-assembly-directives.patch +++ /dev/null @@ -1,272 +0,0 @@ -Currently, non-IA builds are not reproducibile since build paths are -being injected into the debug symbols. These are coming from the use of -.S assembler files during the glibc build. No STT_FILE section is added -during the assembly but when linking, ld decides to add one to aid -debugging and ensure references between the different object files its -linking remain clear. - -We can avoid this by injecting a file header into the assembler files -ahead of time, choosing a filename which does not contain build system -paths. - -This is a bit of a workaround/hack but does significantly reduce the -build system references in target binaries for the non-IA architectures -which use .S files. - -RP -2018/10/3 - -Upstream-Status: Pending - -diff --git a/csu/abi-note.S b/csu/abi-note.S -index 5d0ca7803d..8ce41581b1 100644 ---- a/csu/abi-note.S -+++ b/csu/abi-note.S -@@ -56,6 +56,8 @@ offset length contents - #include - #include /* OS-specific ABI tag value */ - -+ .file "abi-note.S" -+ - /* The linker (GNU ld 2.8 and later) recognizes an allocated section whose - name begins with `.note' and creates a PT_NOTE program header entry - pointing at it. */ -diff --git a/sysdeps/aarch64/crti.S b/sysdeps/aarch64/crti.S -index 2b213758b2..736f33e314 100644 ---- a/sysdeps/aarch64/crti.S -+++ b/sysdeps/aarch64/crti.S -@@ -50,6 +50,8 @@ - # define PREINIT_FUNCTION_WEAK 1 - #endif - -+ .file "crti.S" -+ - #if PREINIT_FUNCTION_WEAK - weak_extern (PREINIT_FUNCTION) - #else -diff --git a/sysdeps/aarch64/crtn.S b/sysdeps/aarch64/crtn.S -index d72300af80..cb249bf3ca 100644 ---- a/sysdeps/aarch64/crtn.S -+++ b/sysdeps/aarch64/crtn.S -@@ -37,6 +37,8 @@ - /* crtn.S puts function epilogues in the .init and .fini sections - corresponding to the prologues in crti.S. */ - -+ .file "crtn.S" -+ - .section .init,"ax",%progbits - ldp x29, x30, [sp], 16 - RET -diff --git a/sysdeps/aarch64/start.S b/sysdeps/aarch64/start.S -index bad000f555..5957c028cd 100644 ---- a/sysdeps/aarch64/start.S -+++ b/sysdeps/aarch64/start.S -@@ -18,6 +18,8 @@ - - #include - -+ .file "start.S" -+ - /* This is the canonical entry point, usually the first thing in the text - segment. - -diff --git a/sysdeps/unix/sysv/linux/aarch64/__read_tp.S b/sysdeps/unix/sysv/linux/aarch64/__read_tp.S -index 92fc0191a5..715bfcb9e4 100644 ---- a/sysdeps/unix/sysv/linux/aarch64/__read_tp.S -+++ b/sysdeps/unix/sysv/linux/aarch64/__read_tp.S -@@ -18,6 +18,8 @@ - - #include - -+ .file "__read_tp.S" -+ - .hidden __read_tp - ENTRY (__read_tp) - mrs x0, tpidr_el0 -diff --git a/sysdeps/aarch64/dl-tlsdesc.S b/sysdeps/aarch64/dl-tlsdesc.S -index 43a62ef307..42f85cdde9 100644 ---- a/sysdeps/aarch64/dl-tlsdesc.S -+++ b/sysdeps/aarch64/dl-tlsdesc.S -@@ -22,6 +22,8 @@ - #include - #include "tlsdesc.h" - -+ .file "dl-tlsdesc.S" -+ - #define NSAVEDQREGPAIRS 16 - #define SAVE_Q_REGISTERS \ - stp q0, q1, [sp, #-32*NSAVEDQREGPAIRS]!; \ -diff --git a/sysdeps/aarch64/dl-trampoline.S b/sysdeps/aarch64/dl-trampoline.S -index a86d0722d4..92edab1d01 100644 ---- a/sysdeps/aarch64/dl-trampoline.S -+++ b/sysdeps/aarch64/dl-trampoline.S -@@ -21,6 +21,8 @@ - - #include "dl-link.h" - -+ .file "dl-trampoline.S" -+ - #define ip0 x16 - #define ip0l PTR_REG (16) - #define ip1 x17 -diff --git a/sysdeps/arm/abi-note.S b/sysdeps/arm/abi-note.S -index 07bd4c4619..7213b16f27 100644 ---- a/sysdeps/arm/abi-note.S -+++ b/sysdeps/arm/abi-note.S -@@ -1,3 +1,5 @@ -+ .file "abi-note.S" -+ - /* Tag_ABI_align8_preserved: This code preserves 8-byte - alignment in any callee. */ - .eabi_attribute 25, 1 -diff --git a/sysdeps/arm/crti.S b/sysdeps/arm/crti.S -index a1424d0333..bca1dab256 100644 ---- a/sysdeps/arm/crti.S -+++ b/sysdeps/arm/crti.S -@@ -57,6 +57,8 @@ - .hidden PREINIT_FUNCTION - #endif - -+ .file "crti.S" -+ - #if PREINIT_FUNCTION_WEAK - .p2align 2 - .type call_weak_fn, %function -diff --git a/sysdeps/arm/crtn.S b/sysdeps/arm/crtn.S -index 26027693ce..65a0502826 100644 ---- a/sysdeps/arm/crtn.S -+++ b/sysdeps/arm/crtn.S -@@ -37,6 +37,8 @@ - #define NO_THUMB - #include - -+ .file "crtn.S" -+ - /* crtn.S puts function epilogues in the .init and .fini sections - corresponding to the prologues in crti.S. */ - -diff --git a/sysdeps/arm/dl-tlsdesc.S b/sysdeps/arm/dl-tlsdesc.S -index 056e17d52d..a98c68dfb9 100644 ---- a/sysdeps/arm/dl-tlsdesc.S -+++ b/sysdeps/arm/dl-tlsdesc.S -@@ -21,6 +21,8 @@ - #include - #include "tlsdesc.h" - -+ .file "dl-tlsdesc.S" -+ - .text - @ emit debug information with cfi - @ use arm-specific pseudos for unwinding itself -diff --git a/sysdeps/arm/dl-trampoline.S b/sysdeps/arm/dl-trampoline.S -index c731b01286..4b37b25344 100644 ---- a/sysdeps/arm/dl-trampoline.S -+++ b/sysdeps/arm/dl-trampoline.S -@@ -21,6 +21,8 @@ - #include - #include - -+ .file "dl-trampoline.S" -+ - .text - .globl _dl_runtime_resolve - .type _dl_runtime_resolve, #function -diff --git a/sysdeps/arm/start.S b/sysdeps/arm/start.S -index adef090717..d22e4128e0 100644 ---- a/sysdeps/arm/start.S -+++ b/sysdeps/arm/start.S -@@ -57,6 +57,8 @@ - NULL - */ - -+ .file "start.S" -+ - /* Tag_ABI_align8_preserved: This code preserves 8-byte - alignment in any callee. */ - .eabi_attribute 25, 1 -diff --git a/sysdeps/unix/sysv/linux/arm/aeabi_read_tp.S b/sysdeps/unix/sysv/linux/arm/aeabi_read_tp.S -index 871702317a..20a942dbac 100644 ---- a/sysdeps/unix/sysv/linux/arm/aeabi_read_tp.S -+++ b/sysdeps/unix/sysv/linux/arm/aeabi_read_tp.S -@@ -39,6 +39,8 @@ - a normal function call) in a high page of memory; tail call to the - helper. */ - -+ .file "aeabi_read_tp.S" -+ - .hidden __aeabi_read_tp - ENTRY (__aeabi_read_tp) - #ifdef ARCH_HAS_HARD_TP -diff --git a/sysdeps/mips/start.S b/sysdeps/mips/start.S -index a4c4ef0fae..d00fff31a8 100644 ---- a/sysdeps/mips/start.S -+++ b/sysdeps/mips/start.S -@@ -38,6 +38,8 @@ - #include - #include - -+ .file "start.S" -+ - #ifndef ENTRY_POINT - #error ENTRY_POINT needs to be defined for start.S on MIPS/ELF. - #endif -diff --git a/sysdeps/unix/sysv/linux/powerpc/dl-brk.S b/sysdeps/unix/sysv/linux/powerpc/dl-brk.S -index eeb96544e3..da182b28f8 100644 ---- a/sysdeps/unix/sysv/linux/powerpc/dl-brk.S -+++ b/sysdeps/unix/sysv/linux/powerpc/dl-brk.S -@@ -1 +1,3 @@ -+ .file "dl-brk.S" -+ - #include -diff --git a/sysdeps/powerpc/powerpc32/start.S b/sysdeps/powerpc/powerpc32/start.S -index 5c10a22f8a..2b52627f27 100644 ---- a/sysdeps/powerpc/powerpc32/start.S -+++ b/sysdeps/powerpc/powerpc32/start.S -@@ -35,6 +35,8 @@ - - #include - -+ .file "start.S" -+ - /* We do not want .eh_frame info for crt1.o since crt1.o is linked - before crtbegin.o, the file defining __EH_FRAME_BEGIN__. */ - #undef cfi_startproc -diff --git a/sysdeps/powerpc/powerpc64/start.S b/sysdeps/powerpc/powerpc64/start.S -index bd7189310c..2e22b8472d 100644 ---- a/sysdeps/powerpc/powerpc64/start.S -+++ b/sysdeps/powerpc/powerpc64/start.S -@@ -35,6 +35,8 @@ - - #include - -+ .file "start.S" -+ - /* We do not want .eh_frame info for crt1.o since crt1.o is linked - before crtbegin.o, the file defining __EH_FRAME_BEGIN__. */ - #undef cfi_startproc -diff --git a/sysdeps/powerpc/powerpc32/dl-start.S b/sysdeps/powerpc/powerpc32/dl-start.S -index 244d87fb6d..14d3e2ce14 100644 ---- a/sysdeps/powerpc/powerpc32/dl-start.S -+++ b/sysdeps/powerpc/powerpc32/dl-start.S -@@ -18,6 +18,8 @@ - - #include - -+ .file "dl-start.S" -+ - /* Initial entry point code for the dynamic linker. - The C function `_dl_start' is the real entry point; - its return value is the user program's entry point. */ -diff --git a/sysdeps/unix/sysv/linux/arm/libc-do-syscall.S b/sysdeps/unix/sysv/linux/arm/libc-do-syscall.S -index d26ad1f8d3..a0de10bf81 100644 ---- a/sysdeps/unix/sysv/linux/arm/libc-do-syscall.S -+++ b/sysdeps/unix/sysv/linux/arm/libc-do-syscall.S -@@ -27,6 +27,8 @@ - ARM unwind tables for register to register moves, the actual opcodes - are not defined. */ - -+ .file "libc-do-syscall.S" -+ - #if defined(__thumb__) - .thumb - .syntax unified diff --git a/meta/recipes-core/glibc/glibc_2.28.bb b/meta/recipes-core/glibc/glibc_2.28.bb deleted file mode 100644 index a107c58b9f..0000000000 --- a/meta/recipes-core/glibc/glibc_2.28.bb +++ /dev/null @@ -1,135 +0,0 @@ -require glibc.inc - -LIC_FILES_CHKSUM = "file://LICENSES;md5=cfc0ed77a9f62fa62eded042ebe31d72 \ - file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ - file://posix/rxspencer/COPYRIGHT;md5=dc5485bb394a13b2332ec1c785f5d83a \ - file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c" - -DEPENDS += "gperf-native bison-native make-native" - -SRCREV ?= "044c96f0d5595aeb0bb4e79355081c5a7f4faca5" - -SRCBRANCH ?= "release/${PV}/master" - -GLIBC_GIT_URI ?= "git://sourceware.org/git/glibc.git" -UPSTREAM_CHECK_GITTAGREGEX = "(?P\d+\.\d+(\.(?!90)\d+)*)" - -SRC_URI = "${GLIBC_GIT_URI};branch=${SRCBRANCH};name=glibc \ - file://etc/ld.so.conf \ - file://generate-supported.mk \ - file://makedbs.sh \ - \ - ${NATIVESDKFIXES} \ - file://0006-fsl-e500-e5500-e6500-603e-fsqrt-implementation.patch \ - file://0007-readlib-Add-OECORE_KNOWN_INTERPRETER_NAMES-to-known-.patch \ - file://0008-ppc-sqrt-Fix-undefined-reference-to-__sqrt_finite.patch \ - file://0009-__ieee754_sqrt-f-are-now-inline-functions-and-call-o.patch \ - file://0010-Quote-from-bug-1443-which-explains-what-the-patch-do.patch \ - file://0011-eglibc-run-libm-err-tab.pl-with-specific-dirs-in-S.patch \ - file://0012-__ieee754_sqrt-f-are-now-inline-functions-and-call-o.patch \ - file://0013-sysdeps-gnu-configure.ac-handle-correctly-libc_cv_ro.patch \ - file://0014-Add-unused-attribute.patch \ - file://0015-yes-within-the-path-sets-wrong-config-variables.patch \ - file://0016-timezone-re-written-tzselect-as-posix-sh.patch \ - file://0017-Remove-bash-dependency-for-nscd-init-script.patch \ - file://0018-eglibc-Cross-building-and-testing-instructions.patch \ - file://0019-eglibc-Help-bootstrap-cross-toolchain.patch \ - file://0020-eglibc-Clear-cache-lines-on-ppc8xx.patch \ - file://0021-eglibc-Resolve-__fpscr_values-on-SH4.patch \ - file://0022-eglibc-Forward-port-cross-locale-generation-support.patch \ - file://0023-Define-DUMMY_LOCALE_T-if-not-defined.patch \ - file://0024-elf-dl-deps.c-Make-_dl_build_local_scope-breadth-fir.patch \ - file://0025-locale-fix-hard-coded-reference-to-gcc-E.patch \ - file://0026-reset-dl_load_write_lock-after-forking.patch \ - file://0027-Acquire-ld.so-lock-before-switching-to-malloc_atfork.patch \ - file://0028-bits-siginfo-consts.h-enum-definition-for-TRAP_HWBKP.patch \ - file://0029-localedef-add-to-archive-uses-a-hard-coded-locale-pa.patch \ - file://0030-intl-Emit-no-lines-in-bison-generated-files.patch \ - file://0031-sysdeps-ieee754-prevent-maybe-uninitialized-errors-w.patch \ - file://0032-sysdeps-ieee754-soft-fp-ignore-maybe-uninitialized-w.patch \ - file://0033-locale-prevent-maybe-uninitialized-errors-with-Os-BZ.patch \ - file://0034-inject-file-assembly-directives.patch \ -" - -NATIVESDKFIXES ?= "" -NATIVESDKFIXES_class-nativesdk = "\ - file://0001-nativesdk-glibc-Look-for-host-system-ld.so.cache-as-.patch \ - file://0002-nativesdk-glibc-Fix-buffer-overrun-with-a-relocated-.patch \ - file://0003-nativesdk-glibc-Raise-the-size-of-arrays-containing-.patch \ - file://0004-nativesdk-glibc-Allow-64-bit-atomics-for-x86.patch \ - file://0005-nativesdk-glibc-Make-relocatable-install-for-locales.patch \ -" - -S = "${WORKDIR}/git" -B = "${WORKDIR}/build-${TARGET_SYS}" - -PACKAGES_DYNAMIC = "" - -# the -isystem in bitbake.conf screws up glibc do_stage -BUILD_CPPFLAGS = "-I${STAGING_INCDIR_NATIVE}" -TARGET_CPPFLAGS = "-I${STAGING_DIR_TARGET}${includedir}" - -GLIBC_BROKEN_LOCALES = "" -# -# We will skip parsing glibc when target system C library selection is not glibc -# this helps in easing out parsing for non-glibc system libraries -# -COMPATIBLE_HOST_libc-musl_class-target = "null" - -GLIBCPIE ??= "" - -EXTRA_OECONF = "--enable-kernel=${OLDEST_KERNEL} \ - --disable-profile \ - --disable-debug --without-gd \ - --enable-clocale=gnu \ - --with-headers=${STAGING_INCDIR} \ - --without-selinux \ - --enable-tunables \ - --enable-bind-now \ - --enable-stack-protector=strong \ - --enable-stackguard-randomization \ - --disable-crypt \ - ${GLIBCPIE} \ - ${GLIBC_EXTRA_OECONF}" - -EXTRA_OECONF += "${@get_libc_fpu_setting(bb, d)}" -EXTRA_OECONF += "${@bb.utils.contains('DISTRO_FEATURES', 'libc-inet-anl', '--enable-nscd', '--disable-nscd', d)}" - - -do_patch_append() { - bb.build.exec_func('do_fix_readlib_c', d) -} - -do_fix_readlib_c () { - sed -i -e 's#OECORE_KNOWN_INTERPRETER_NAMES#${EGLIBC_KNOWN_INTERPRETER_NAMES}#' ${S}/elf/readlib.c -} - -do_configure () { -# override this function to avoid the autoconf/automake/aclocal/autoheader -# calls for now -# don't pass CPPFLAGS into configure, since it upsets the kernel-headers -# version check and doesn't really help with anything - (cd ${S} && gnu-configize) || die "failure in running gnu-configize" - find ${S} -name "configure" | xargs touch - CPPFLAGS="" oe_runconf -} - -do_compile () { - # -Wl,-rpath-link /lib in LDFLAGS can cause breakage if another glibc is in staging - unset LDFLAGS - base_do_compile - echo "Adjust ldd script" - if [ -n "${RTLDLIST}" ] - then - prevrtld=`cat ${B}/elf/ldd | grep "^RTLDLIST=" | sed 's#^RTLDLIST="\?\([^"]*\)"\?$#\1#'` - # remove duplicate entries - newrtld=`echo $(printf '%s\n' ${prevrtld} ${RTLDLIST} | LC_ALL=C sort -u)` - echo "ldd \"${prevrtld} ${RTLDLIST}\" -> \"${newrtld}\"" - sed -i ${B}/elf/ldd -e "s#^RTLDLIST=.*\$#RTLDLIST=\"${newrtld}\"#" - fi - -} - -require glibc-package.inc - -BBCLASSEXTEND = "nativesdk" diff --git a/meta/recipes-core/glibc/glibc_2.29.bb b/meta/recipes-core/glibc/glibc_2.29.bb new file mode 100644 index 0000000000..70a91c8f8c --- /dev/null +++ b/meta/recipes-core/glibc/glibc_2.29.bb @@ -0,0 +1,133 @@ +require glibc.inc + +LIC_FILES_CHKSUM = "file://LICENSES;md5=cfc0ed77a9f62fa62eded042ebe31d72 \ + file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ + file://posix/rxspencer/COPYRIGHT;md5=dc5485bb394a13b2332ec1c785f5d83a \ + file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c" + +DEPENDS += "gperf-native bison-native make-native" + +SRCREV ?= "ab4169313cdb15d688242609aef879fc5121356e" + +#SRCBRANCH ?= "release/${PV}/master" +SRCBRANCH ?= "master" + +GLIBC_GIT_URI ?= "git://sourceware.org/git/glibc.git" +UPSTREAM_CHECK_GITTAGREGEX = "(?P\d+\.\d+(\.(?!90)\d+)*)" + +NATIVESDKFIXES ?= "" +NATIVESDKFIXES_class-nativesdk = "\ + file://0001-nativesdk-glibc-Look-for-host-system-ld.so.cache-as-.patch \ + file://0002-nativesdk-glibc-Fix-buffer-overrun-with-a-relocated-.patch \ + file://0003-nativesdk-glibc-Raise-the-size-of-arrays-containing-.patch \ + file://0004-nativesdk-glibc-Allow-64-bit-atomics-for-x86.patch \ + file://0005-nativesdk-glibc-Make-relocatable-install-for-locales.patch \ +" + +SRC_URI = "${GLIBC_GIT_URI};branch=${SRCBRANCH};name=glibc \ + file://etc/ld.so.conf \ + file://generate-supported.mk \ + file://makedbs.sh \ + \ + ${NATIVESDKFIXES} \ + file://0006-fsl-e500-e5500-e6500-603e-fsqrt-implementation.patch \ + file://0007-readlib-Add-OECORE_KNOWN_INTERPRETER_NAMES-to-known-.patch \ + file://0008-ppc-sqrt-Fix-undefined-reference-to-__sqrt_finite.patch \ + file://0009-__ieee754_sqrt-f-are-now-inline-functions-and-call-o.patch \ + file://0010-Quote-from-bug-1443-which-explains-what-the-patch-do.patch \ + file://0011-eglibc-run-libm-err-tab.pl-with-specific-dirs-in-S.patch \ + file://0012-__ieee754_sqrt-f-are-now-inline-functions-and-call-o.patch \ + file://0013-sysdeps-gnu-configure.ac-handle-correctly-libc_cv_ro.patch \ + file://0014-Add-unused-attribute.patch \ + file://0015-yes-within-the-path-sets-wrong-config-variables.patch \ + file://0016-timezone-re-written-tzselect-as-posix-sh.patch \ + file://0017-Remove-bash-dependency-for-nscd-init-script.patch \ + file://0018-eglibc-Cross-building-and-testing-instructions.patch \ + file://0019-eglibc-Help-bootstrap-cross-toolchain.patch \ + file://0020-eglibc-Clear-cache-lines-on-ppc8xx.patch \ + file://0021-eglibc-Resolve-__fpscr_values-on-SH4.patch \ + file://0022-eglibc-Forward-port-cross-locale-generation-support.patch \ + file://0023-Define-DUMMY_LOCALE_T-if-not-defined.patch \ + file://0024-elf-dl-deps.c-Make-_dl_build_local_scope-breadth-fir.patch \ + file://0025-reset-dl_load_write_lock-after-forking.patch \ + file://0026-Acquire-ld.so-lock-before-switching-to-malloc_atfork.patch \ + file://0027-localedef-add-to-archive-uses-a-hard-coded-locale-pa.patch \ + file://0028-intl-Emit-no-lines-in-bison-generated-files.patch \ + file://0029-inject-file-assembly-directives.patch \ + file://0030-sysdeps-ieee754-prevent-maybe-uninitialized-errors-w.patch \ + file://0031-locale-prevent-maybe-uninitialized-errors-with-Os-BZ.patch \ +" + +S = "${WORKDIR}/git" +B = "${WORKDIR}/build-${TARGET_SYS}" + +PACKAGES_DYNAMIC = "" + +# the -isystem in bitbake.conf screws up glibc do_stage +BUILD_CPPFLAGS = "-I${STAGING_INCDIR_NATIVE}" +TARGET_CPPFLAGS = "-I${STAGING_DIR_TARGET}${includedir}" + +GLIBC_BROKEN_LOCALES = "" +# +# We will skip parsing glibc when target system C library selection is not glibc +# this helps in easing out parsing for non-glibc system libraries +# +COMPATIBLE_HOST_libc-musl_class-target = "null" + +GLIBCPIE ??= "" + +EXTRA_OECONF = "--enable-kernel=${OLDEST_KERNEL} \ + --disable-profile \ + --disable-debug --without-gd \ + --enable-clocale=gnu \ + --with-headers=${STAGING_INCDIR} \ + --without-selinux \ + --enable-tunables \ + --enable-bind-now \ + --enable-stack-protector=strong \ + --enable-stackguard-randomization \ + --disable-crypt \ + ${GLIBCPIE} \ + ${GLIBC_EXTRA_OECONF}" + +EXTRA_OECONF += "${@get_libc_fpu_setting(bb, d)}" +EXTRA_OECONF += "${@bb.utils.contains('DISTRO_FEATURES', 'libc-inet-anl', '--enable-nscd', '--disable-nscd', d)}" + + +do_patch_append() { + bb.build.exec_func('do_fix_readlib_c', d) +} + +do_fix_readlib_c () { + sed -i -e 's#OECORE_KNOWN_INTERPRETER_NAMES#${EGLIBC_KNOWN_INTERPRETER_NAMES}#' ${S}/elf/readlib.c +} + +do_configure () { +# override this function to avoid the autoconf/automake/aclocal/autoheader +# calls for now +# don't pass CPPFLAGS into configure, since it upsets the kernel-headers +# version check and doesn't really help with anything + (cd ${S} && gnu-configize) || die "failure in running gnu-configize" + find ${S} -name "configure" | xargs touch + CPPFLAGS="" oe_runconf +} + +do_compile () { + # -Wl,-rpath-link /lib in LDFLAGS can cause breakage if another glibc is in staging + unset LDFLAGS + base_do_compile + echo "Adjust ldd script" + if [ -n "${RTLDLIST}" ] + then + prevrtld=`cat ${B}/elf/ldd | grep "^RTLDLIST=" | sed 's#^RTLDLIST="\?\([^"]*\)"\?$#\1#'` + # remove duplicate entries + newrtld=`echo $(printf '%s\n' ${prevrtld} ${RTLDLIST} | LC_ALL=C sort -u)` + echo "ldd \"${prevrtld} ${RTLDLIST}\" -> \"${newrtld}\"" + sed -i ${B}/elf/ldd -e "s#^RTLDLIST=.*\$#RTLDLIST=\"${newrtld}\"#" + fi + +} + +require glibc-package.inc + +BBCLASSEXTEND = "nativesdk" -- cgit 1.2.3-korg