summaryrefslogtreecommitdiffstats
path: root/meta/recipes-core/glibc
AgeCommit message (Collapse)Author
2018-04-18glibc: Set libc_cv_ssp_all to no as wellKhem Raj
This is not a problem right now but if we were to use -fstack-protector-all this can cause build errors Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2018-04-07nativesdk-glibc: Split glibc and libcrypt to use libxcrypt insteadRichard Purdie
Fedora28[1] has decided to go ahead and use libxcrypt to replace libcrypt from glibc despite the change not having merged into glibc upstream yet. This breaks the use of uninative in OE on fedora28 since binaries there are now using new symbols only found in libxcrypt. libxcrypt is meant to be backwards compatible with libcrypt but not the reverse. Since this will impact OE in the next release cycle, this changes nativesdk only to use this new model and adds libxcrypt to work in that case. This allows us to build a uninative which is compatible with fedora28 and previous other OSes. In order to work, recipes will now need to depend on virtual/crypt where they use libcrypt since its now a separate library and we can't depend on it from glibc to preseve backwards compatibility since glibc needs to build first. For now, only the problematic nativesdk recipes have been fixed up. For target use, the default provider remains glibc for now. Assuming this change is merged into upstream glibc, we will need to roll this change out for the target but we will do this in the next release cycle when we can better deal with the resulting bugs. [1] https://fedoraproject.org/wiki/Changes/Replace_glibc_libcrypt_with_libxcrypt Original patch from Charles-Antoine Couret <charles-antoine.couret@essensium.com>, tweaked by RP to add virtual provides, SkipRecipe for libxcrypt and other minor tweaks. Signed-off-by: Charles-Antoine Couret <charles-antoine.couret@essensium.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-03-30libc6-dbg: improve reproducibilityJuro Bystricky
Prevent bison from generating #line comments containing build host paths references. [YOCTO #12625] Signed-off-by: Juro Bystricky <juro.bystricky@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-03-30glibc-package: fix locale cleanup logicKoen Kooi
If ${libdir} is a subdirectory of ${prefix}/lib, e.g. /usr/lib/aarch64-linux, the cleanup logic will delete libc.so. This bit of code was added in 2012 (git show b744f4cc) to remove /usr/lib/locale, this commit makes it remove that directory recursively and afterwards remove /usr/lib, erroring out if it's non-empty. Tested with a plain (/usr/lib), a 64-bit (/usr/lib64) and a multiarch (/usr/lib/aarch64-linux) build. I strongly suspect this whole bit of cleanup isn't needed anymore, but my testing is too limited to be certain. Signed-off-by: Koen Kooi <koen.kooi@linaro.org> Signed-off-by: Ross Burton <ross.burton@intel.com>
2018-03-28glibc: Replace strncpy with memccpy to fix -Wstringop-truncation.Khem Raj
Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2018-03-28glibc-2.27: Update to bring in 2.27 bug fixes since releaseKhem Raj
Here is full list of fixes https://sourceware.org/git/?p=glibc.git;a=shortlog;h=df3ff4e49d4ee3cbbdaeb0b1cb5dc2344c08be98;hp=23158b08a0908f381459f273a984c6fd328363cb Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2018-03-20glibc: fix upstream version checkAlexander Kanavin
Exclude x.y.90* pre-release versions in particular. Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2018-03-06glibc: add missing TRAP_BRANCH/TRAP_HWBKPT definitionsFathi Boudra
Patch submitted upstream, pending to be merged: https://sourceware.org/bugzilla/show_bug.cgi?id=21286 Signed-off-by: Fathi Boudra <fathi.boudra@linaro.org> Signed-off-by: Daniel Díaz <daniel.diaz@linaro.org> Signed-off-by: Ross Burton <ross.burton@intel.com>
2018-03-06glibc: Compile using thumb2 for arch > armv5 if user choosesKhem Raj
For arm we enforce ARM mode regardless of ARM_INSTRUCTION_SET choice from config metadata, glibc works fine with thumb2 for armv7+ so limit the restriction to armv5 and lower, tested on rpi3 works equally well as arm mode glibc and sheds about 0.5MB in size for main package alone. Other glibc build packages also gets smaller ARM: 2696 KiB libc6 Thumb2: 2132 KiB libc6 Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-03-01glibc: Enable static PIE support when security_flags are enabledKhem Raj
Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-03-01cross-localedef-native: add way to specify which locale archive to writeRoss Burton
localedef has no way to specify which locale archive to use, and the compile-time default isn't useful as it points to the work directory. Add support to read an environmental variable for the path, and don't fail to write a new locale archive. Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-03-01glibc: relocate locale paths in nativesdkRoss Burton
nativesdk is built with a specific prefix but this will be different at install time, however glibc hard-codes the path to locale files. Expand these strings to 4K and move them to a magic segment which we can relocate when the SDK is installed. Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-03-01glibc: don't use host locales in nativesdkRoss Burton
Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-03-01glibc: Upgrade to 2.27 releaseRoss Burton
Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-02-24glibc: Update to tip of 2.26Khem Raj
This will make it easy to backport to rocko if needed after 2.27 is landed in master plus it fixes the aarch64 build issue seen with binutils 2.30 Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2018-01-29meta: don't use deprecated functions from utils.bbclassRoss Burton
These functions were moved to meta/lib/oe in 2010 and the base_* functions in utils.bbclass were intended to be a short-term compatibility layer. They're still used in a few places, so update the callers to use the new functions. Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-01-29glibc: Adapt do_install_append_aarch64() for usrmergePeter Kjellerstedt
Change hardcoded /lib to ${nonarch_base_libdir} to correctly adapt the code in do_install_append_aarch64() for when usrmerge is enabled in DISTRO_FEATURES. Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-01-26glibc-locale.inc: avoid duplicate packagesJuro Bystricky
PACKAGES_DYNAMIC contained an identical set of packages twice. I suspect this was a result of global search/replace when moving recipes from eglibc to glibc long time ago. Signed-off-by: Juro Bystricky <juro.bystricky@intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2018-01-23libc6: improve reproducibilityJuro Bystricky
Building various libraries (libc6, libc6-pic, libc6-staticdev, libc6-dbg, ...) can be non-deterministic because they may be built with two different versions of intl/plural.c. in two otherwise identical builds. We may or may not re-generate the file plural.c from the file plural.y, based on bison being installed or not and based on mtimes of those two files, as the Makefile contains: plural.c: plural.y $(BISON) $(BISONFLAGS) $@ $^ If the above rule does not fire, we use a "fallback" plural.c, otherwise we use plural.c re-generated from plural.y. The fix is to always require bison to be installed and unconditionally re-generate plural.c. (This is achieved by touching plural.y). [YOCTO #12291] Signed-off-by: Juro Bystricky <juro.bystricky@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-01-22glibc: Security Fix CVE-2017-17426Huang Qiyu
Affects glibc < 2.27 including current master hash 77f921dac17c5fa99bd9e926d926c327982895f7 Signed-off-by: Huang Qiyu <huangqy.fnst@cn.fujitsu.com> [v2] Rebased on new master [v3] Fix typo in patch status Signed-off-by: Armin Kuster <akuster808@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2018-01-22glibc: Security Fix CVE-2017-16997Armin Kuster
Affect glibc < 2.27 including current master glibc hash: 77f921dac17c5fa99bd9e926d926c327982895f7 Signed-off-by: Armin Kuster <akuster808@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2018-01-22glibc: Security fix CVE-2017-15671Armin Kuster
affects glibc < 2.27 only glibc in current master hash: 77f921dac17c5fa99bd9e926d926c327982895f7 Signed-off-by: Armin Kuster <akuster808@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2018-01-13glibc/nscd: do not cache for netgroup by defaultJackie Huang
We don't have /etc/netgroup by default, so do not cache for netgroup by default to avoid: nscd[529]: 529 disabled inotify-based monitoring for file `/etc/netgroup': No such file or directory nscd[529]: 529 stat failed for file `/etc/netgroup'; will try again later: No such file or directory (From OE-Core rev: 10007bcd30a96470059f9d5b19cf698243486f06) Signed-off-by: Jackie Huang <jackie.huang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-01-04glibc: malloc: Add missing arena lock in malloc_infoZhixiong Chi
There are the multiple process crashes seen while using malloc_info. Obtain the size information while the arena lock is acquired, and only print it later. Backport patch from https://sourceware.org/git/gitweb.cgi?p=glibc.git; h=7a9368a1174cb15b9f1d6342e0e10dd90dae238d Signed-off-by: Zhixiong Chi <zhixiong.chi@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-01-04glibc: Upgrade to latest on 2.26 releaseKhem Raj
For detailed view of changes see https://github.com/kraj/glibc/compare/glibc-2.26...77f921dac17c5fa99bd9e926d926c327982895f7 Drop two upstreamed patches Signed-off-by: Khem Raj <raj.khem@gmail.com>
2018-01-04glibc: fix C++ compile failures related to 'assert'S. Lockwood-Childs
* fixes "lambda-expression in unevaluated context" compile failures such as https://github.com/nlohmann/json/issues/705 * fixes "no match for 'operator==" compile failures such as https://bugzilla.redhat.com/show_bug.cgi?id=1482990 Signed-off-by: S. Lockwood-Childs <sjl@vctlabs.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-10-06glibc-locale.inc: fix typo in commentGianfranco Costamagna
Signed-off-by: Gianfranco Costamagna <gianfranco.costamagna@abinsula.com> Signed-off-by: Lorenzo Chianura <lorenzo.chianura@abinsula.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2017-09-12glibc-locale: add runtime dependency on glibcMartin Jansa
* the libc.so.6 dependency is detected always: $ grep FILERDEPENDS BUILD-*/pkgdata/qemux86/runtime/localedef BUILD-bad/pkgdata/qemux86/runtime/localedef:FILERDEPENDSFLIST_localedef: /usr/bin/localedef BUILD-bad/pkgdata/qemux86/runtime/localedef:FILERDEPENDS_/usr/bin/localedef_localedef: libc.so.6(GLIBC_2.15) libc.so.6(GLIBC_2.3) libc.so.6(GLIBC_2.2) libc.so.6(GLIBC_2.1) libc.so.6(GLIBC_2.0) libc.so.6 BUILD-ok/pkgdata/qemux86/runtime/localedef:FILERDEPENDSFLIST_localedef: /usr/bin/localedef BUILD-ok/pkgdata/qemux86/runtime/localedef:FILERDEPENDS_/usr/bin/localedef_localedef: libc.so.6(GLIBC_2.15) libc.so.6(GLIBC_2.3) libc.so.6(GLIBC_2.2) libc.so.6(GLIBC_2.1) libc.so.6(GLIBC_2.0) libc.so.6 * but in some builds the glibc dependency isn't built soon enough: $ diff -uNr BUILD-*/pkgdata/qemux86/runtime/localedef --- BUILD-bad/pkgdata/qemux86/runtime/localedef 2017-09-02 21:17:50.000000000 +0000 +++ BUILD-ok/pkgdata/qemux86/runtime/localedef 2017-09-11 10:15:49.954381592 +0000 @@ -6,6 +6,7 @@ LICENSE: GPLv2 & LGPLv2.1 DESCRIPTION_localedef: glibc: compile locale definition files SUMMARY: Locale data from glibc +RDEPENDS_localedef: glibc (>= 2.26) SECTION: base PKG_localedef: localedef FILES_localedef: /usr/bin/localedef and the build fails with QA issues: http://errors.yoctoproject.org/Errors/Details/155529/ ERROR: QA Issue: /usr/bin/localedef contained in package localedef requires libc.so.6(GLIBC_2.0), but no providers found in RDEPENDS_localedef? [file-rdeps] ERROR: QA Issue: /usr/bin/localedef contained in package localedef requires libc.so.6(GLIBC_2.15), but no providers found in RDEPENDS_localedef? [file-rdeps] ERROR: QA Issue: /usr/bin/localedef contained in package localedef requires libc.so.6(GLIBC_2.3), but no providers found in RDEPENDS_localedef? [file-rdeps] ERROR: QA Issue: /usr/bin/localedef contained in package localedef requires libc.so.6(GLIBC_2.2), but no providers found in RDEPENDS_localedef? [file-rdeps] ERROR: QA Issue: /usr/bin/localedef contained in package localedef requires libc.so.6(GLIBC_2.1), but no providers found in RDEPENDS_localedef? [file-rdeps] ERROR: QA Issue: /usr/bin/localedef contained in package localedef requires libc.so.6, but no providers found in RDEPENDS_localedef? [file-rdeps] ERROR: QA run found fatal errors. Please consider fixing them. * easily reproducible with empty TMPDIR and: bitbake -c cleansstate glibc-locale && bitbake -c package_qa glibc-locale * reproducible with Yocto 2.2 Morty as well, with slightly different error message: ERROR: glibc-locale-2.24-r0 do_package_qa: QA Issue: /usr/bin/localedef contained in package localedef requires libc.so.6(GLIBC_2.4), but no providers found in RDEPENDS_localedef? [file-rdeps] * with Yocto 2.3 Pyro it's not reproducible by default, because rpmdeps aren't enabled to populate FILERDEPENDS, but once you add: ENABLE_RPM_FILEDEPS_FOR_PYRO = "1" similar QA issue is shown as well: ERROR: glibc-locale-2.25-r0 do_package_qa: QA Issue: /usr/bin/localedef contained in package localedef requires libc.so.6(GLIBC_2.15), but no providers found in RDEPENDS_localedef? [file-rdeps] ERROR: glibc-locale-2.25-r0 do_package_qa: QA Issue: /usr/bin/localedef contained in package localedef requires libc.so.6(GLIBC_2.4), but no providers found in RDEPENDS_localedef? [file-rdeps] ERROR: glibc-locale-2.25-r0 do_package_qa: QA Issue: /usr/bin/localedef contained in package localedef requires libc.so.6, but no providers found in RDEPENDS_localedef? [file-rdeps] Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-09-11glibc: do the multilib_header magic also for bits/pthreadtypes-arch.hChunrong Guo
Otherwise it will cause conflicts in mutlilib setting, as it varies from one machine to another. Signed-off-by: Chunrong Guo <chunrong.guo@nxp.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2017-09-11glibc: add ld.so locks in _libc_forkZhixiong Chi
The patch in this Bugzilla entry was requested by a customer: https://sourceware.org/bugzilla/show_bug.cgi?id=4578 https://www.sourceware.org/bugzilla/show_bug.cgi?id=19282 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 __libc_fork() code reset dl_load_lock, but it also needed to reset dl_load_write_lock. Signed-off-by: Zhixiong Chi <zhixiong.chi@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2017-08-11glibc: Upgrade to 2.26 final releaseKhem Raj
Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2017-07-24glibc-common.inc: set CVE_PRODUCT to glibcMikko Rapeli
All recipes which include this .inc map to glibc NVD component. Signed-off-by: Mikko Rapeli <mikko.rapeli@bmw.de> Signed-off-by: Ross Burton <ross.burton@intel.com>
2017-07-24glibc-package.inc: add support for armeb of multilibzhengrq
Add support for armeb of multilib. Signed-off-by: zhengrq <zhengrq.fnst@cn.fujitsu.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2017-07-24glibc: fix upstream-status tag in a patchRoss Burton
Signed-off-by: Ross Burton <ross.burton@intel.com>
2017-07-11glibc: Enable obsoleted nslKhem Raj
libnsl has been obsoleted in 2.26 and will be removed in future until them we enable it Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2017-07-11glibc: Drop obsoleted bits/string.h from multilibbingKhem Raj
glibc 2.26 has dropped bits/string.h Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2017-07-11glibc: Upgrade to 2.25.90Khem Raj
Eventually it will be released as 2.26 final Signed-off-by: Khem Raj <raj.khem@gmail.com>
2017-06-27meta: Add/fix missing Upstream-Status to patchesRichard Purdie
This adds or fixes the Upstream-Status for all remaining patches missing it in OE-Core. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-06-27meta: Fix malformed Upstream-Status tagsRoss Burton
Fix a variety of spelling and format mistakes to improve the ease of reading the tags programatically. Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-06-16meta: Drop remnants of uclibc supportRichard Purdie
uclibc support was removed a while ago and musl works much better. Start to remove the various overrides and patches related to uclibc which are no longer needed. uclibc support in a layer would still be possible. I have strong reasons to believe nobody is still using uclibc since patches are missing and I doubt the metadata even parses anymore. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-06-03glibc: Configure with extra hardening optionsKhem Raj
Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2017-05-12glibc: Avoid errors if you accidentally create a git symlink in the glibc ↵Richard Purdie
source dir If you accidentally create symlinks in the glibc sources directory, it fails in very hard to understand ways. Whilst most people don't do this, since I debugged it, specifify the list of plugins we use to avoid this biting anyone else. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-05-10bitbake.conf: Add COMPONENTS_DIR for ${STAGING_DIR}-componentsPeter Kjellerstedt
The path to where to install and find the sysroot components is used in many places. This warrants it to get its own variable. Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-04-08glibc/gcc/libgcc-initial: Delete do_build tasks for -initialRichard Purdie
We've had a lot of users running into RSS issues where -initial recipes were being installed into sysroots alongside their counterparts and causing overlapping files issues. In general this was through do_build dependencies. Such dependencies are bad in general and I'd encourage people to compare the taskgraphs with using a more specific dependency like do_populate_sysroot, do_image_complete or do_deploy as often the more specific dependency will result in a much cleaner build. Regardless, we don't want -initial dependencies getting in the way like this and there are cases a do_build dependency could make sense. Deleting the do_build task in these cases makes sense since this is not a build "endpoint" we'd ever want a user to use, its a behind the scenes piece of bootstrappping. Unfortunately to make this work, we need a newer bitbake version which has a bitbake bug fixed. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-04-05glibc: fix nativesdk ldd RTLDLISTMing Liu
Override RTLDLIST for nativesdk, or else ldd would fail to run on SDK targets. Signed-off-by: Ming Liu <peter.x.liu@external.atlascopco.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2017-03-30glibc-package: Allow 32 and 64 bit headers to exist on armRichard Purdie
With this change (combined with the previous linux-libc-header fix), a combined sysroot for 32 and 64 bit arm works meaning our SDK works correctly for that multilib setup. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-03-21glibc: Ensure ldconfig is packaged into glibcJussi Kukkonen
If base_bindir=bindir, /usr/sbin/ldconfig gets packaged into glibc-utils instead of glibc: Switch PACKAGES order to prevent this. Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
2017-03-11glibc: do the multilib_header magic also for bits/long-double.hAlexander Kanavin
Otherwise it will cause conflicts in mutlilib setting, as it varies from one machine to another. Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-03-04bitbake.conf: replace USE_LDCONFIG with new "ldconfig" distro featureAndre McCurdy
USE_LDCONFIG could previously be set to 0 by distros which do not require ldconfig or ld.so.conf on the target. Since more and more recipes may need to respect that option, replace the ad-hoc variable with a distro feature. Distros which previously set: USE_LDCONFIG = "0" Should now instead use: DISTRO_FEATURES_BACKFILL_CONSIDERED_append = " ldconfig" Signed-off-by: Andre McCurdy <armccurdy@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2017-02-15glibc: Update to 2.25 releaseKhem Raj
Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com>