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"
(From OE-Core rev: a905df2dd8f43a2febffa64a39b6e508510326a0)
Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Now that the datastore works dynamically we don't need the update_data calls
so we can just remove them. They're not actually done anything at all for
a while.
(From OE-Core rev: 8de0c5d3bd01919e2bf0394f9c485936d6098cec)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The change to make do_stash_locale an sstate task between do_install and
do_package has some unforeseen problems since the function deletes part of
${D} but may or may not run depending on whether the task is installed from
sstate.
This cleans up the current "pre packaging" function to be more deterministic
and result in the same set of files, whichever code path we end up reaching
that point by. Its not an ideal sitation but it should avoid the race
failures we've seen on some builds.
(From OE-Core rev: 2a60bba00da9c4e2b1a1ce30e509dba82cc6c94a)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Putting the locale and script files into the sysroot for use by their
specific recipes used to be a simple way to share the files. With RSS,
we don't want to copy these into many different recipes so put these
files in their own sstate task.
(From OE-Core rev: c283f2532851e2a65e08fe7b3fd71c5d9abb70f2)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
We used to have issues removing tasks like do_fetch due to implications
for targets like world and universe. These have now been resolved.
Removing uneeded tasks has advantages compared to noexec since it means
that accidentally left in dependencies are no longer needed/processed
(e.g. do_patch depends on quilt-native).
This cleans up a number of cases which local analysis highlighted as
being unneeded leading to slightly cleaner task graphs.
(From OE-Core rev: 4e6ee37e09c60e83c0dfd844ba9cf8a07507f099)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
glibc 2.25 release is in freeze stage now
(From OE-Core rev: b72dbf70646e9dca0dbb5b22bc70d919e6eb8bdc)
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>
This patch is comparatively large and invasive. It does only do one thing, switching the
system to build using recipe specific sysroots and where changes could be isolated from it,
that has been done.
With the current single sysroot approach, its possible for software to find things which
aren't in their dependencies. This leads to a determinism problem and is a growing issue in
several of the market segments where OE makes sense. The way to solve this problem for OE is
to have seperate sysroots for each recipe and these will only contain the dependencies for
that recipe.
Its worth noting that this is not task specific sysroots and that OE's dependencies do vary
enormously by task. This did result in some implementation challenges. There is nothing stopping
the implementation of task specific sysroots at some later point based on this work but
that as deemed a bridge too far right now.
Implementation details:
* Rather than installing the sysroot artefacts into a combined sysroots, they are now placed in
TMPDIR/sysroot-components/PACKAGE_ARCH/PN.
* WORKDIR/recipe-sysroot and WORKDIR/recipe-sysroot-native are built by hardlinking in files
from the sysroot-component trees. These new directories are known as RECIPE_SYSROOT and
RECIPE_SYSROOT_NATIVE.
* This construction is primarily done by a new do_prepare_recipe_sysroot task which runs
before do_configure and consists of a call to the extend_recipe_sysroot function.
* Other tasks need things in the sysroot before/after this, e.g. do_patch needs quilt-native
and do_package_write_deb needs dpkg-native. The code therefore inspects the dependencies
for each task and adds extend_recipe_sysroot as a prefunc if it has populate_sysroot
dependencies.
* We have to do a search/replace 'fixme' operation on the files installed into the sysroot to
change hardcoded paths into the correct ones. We create a fixmepath file in the component
directory which lists the files which need this operation.
* Some files have "postinstall" commands which need to run against them, e.g. gdk-pixbuf each
time a new loader is added. These are handled by adding files in bindir with the name
prefixed by "postinst-" and are run in each sysroot as its created if they're present.
This did mean most sstate postinstalls have to be rewritten but there shouldn't be many of them.
* Since a recipe can have multiple tasks and these tasks can run against each other at the same
time we have to have a lock when we perform write operations against the sysroot. We also have
to maintain manifests of what we install against a task checksum of the dependency. If the
checksum changes, we remove its files and then add the new ones.
* The autotools logic for filtering the view of m4 files is no longer needed (and was the model
for the way extend_recipe_sysroot works).
* For autotools, we used to build a combined m4 macros directory which had both the native and
target m4 files. We can no longer do this so we use the target sysroot as the default and add
the native sysroot as an extra backup include path. If we don't do this, we'd have to build
target pkg-config before we could built anything using pkg-config for example (ditto gettext).
Such dependencies would be painful so we haven't required that.
* PKDDATA_DIR was moved out the sysroot and works as before using sstate to build a hybrid copy
for each machine. The paths therefore changed, the behaviour did not.
* The ccache class had to be reworked to function with rss.
* The TCBOOTSTRAP sysroot for compiler bootstrap is no longer needed but the -initial data
does have to be filtered out from the main recipe sysroots. Putting "-initial" in a normal
recipe name therefore remains a bad idea.
* The logic in insane needed tweaks to deal with the new path layout, as did the debug source
file extraction code in package.bbclass.
* The logic in sstate.bbclass had to be rewritten since it previously only performed search and
replace on extracted sstate and we now need this to happen even if the compiled path was
"correct". This in theory could cause a mild performance issue but since the sysroot data
was the main data that needed this and we'd have to do it there regardless with rss, I've opted
just to change the way the class for everything. The built output used to build the sstate output
is now retained and installed rather than deleted.
* The search and replace logic used in sstate objects also seemed weak/incorrect and didn't hold
up against testing. This has been rewritten too. There are some assumptions made about paths, we
save the 'proper' search and replace operations to fixmepath.cmd but then ignore this. What is
here works but is a little hardcoded and an area for future improvement.
* In order to work with eSDK we need a way to build something that looks like the old style sysroot.
"bitbake build-sysroots" will construct such a sysroot based on everything in the components
directory that matches the current MACHINE. It will allow transition of external tools and can
built target or native variants or both. It also supports a clean task. I'd suggest not relying on
this for anything other than transitional purposes though. To see XXX in that sysroot, you'd have
to have built that in a previous bitbake invocation.
* pseudo is run out of its components directory. This is fine as its statically linked.
* The hacks for wayland to see allarch dependencies in the multilib case are no longer needed
and can be dropped.
* wic needed more extensive changes to work with rss and the fixes are in a separate commit series
* Various oe-selftest tweaks were needed since tests did assume the location to binaries and the
combined sysroot in several cases.
* Most missing dependencies this work found have been sent out as separate patches as they were found
but a few tweaks are still included here.
* A late addition is that extend_recipe_sysroot became multilib aware and able to populate multilib
sysroots. I had hoped not to have to add that complexity but the meta-environment recipe forced my
hand. That implementation can probably be neater but this is on the list of things to cleanup later
at this point.
In summary, the impact people will likely see after this change:
* Recipes may fail with missing dependencies, particularly native tools like gettext-native,
glib-2.0-native and libxml2.0-native. Some hosts have these installed and will mask these errors
* Any recipe/class using SSTATEPOSTINSTFUNCS will need that code rewriting into a postinst
* There was a separate patch series dealing with roots postinst native dependency issues. Any postinst
which expects native tools at rootfs time will need to mark that dependency with PACKAGE_WRITE_DEPS.
There could well be other issues. This has been tested repeatedly against our autobuilders and oe-selftest
and issues found have been fixed. We believe at least OE-Core is in good shape but that doesn't mean
we've found all the issues.
Also, the logging is a bit chatty at the moment. It does help if something goes wrong and goes to the
task logfiles, not the console so I've intentionally left this like that for now. We can turn it down
easily enough in due course.
(From OE-Core rev: 809746f56df4b91af014bf6a3f28997d6698ac78)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
If the file is expected to exist, then we should always be using require
so that if it doesn't we get an error rather than some other more
obscure failure later on.
(From OE-Core rev: 603ae6eb487489e65da69c68e532cb767ccc1fc2)
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
There were a few straggling expansion parameter removals left for
getVar/getVarFlag where the odd whitespace meant they were missed
on previous passes. There were also some plain broken ussages such
as:
d.getVar('ALTERNATIVE_TARGET', old_name, True)
path = d.getVar('PATH', d, True)
d.getVar('IMAGE_ROOTFS', 'True')
which I've corrected (they happend to work by luck).
(From OE-Core rev: 688f7a64917a5ce5cbe12f8e5da4d47e265d240f)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
getVar() now defaults to expanding by default, thus remove the True
option from getVar() calls with a regex search and replace.
Search made with the following regex: getVar ?\(( ?[^,()]*), True\)
(From OE-Core rev: 7c552996597faaee2fbee185b250c0ee30ea3b5f)
Signed-off-by: Joshua Lock <joshua.g.lock@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
ARM stack frames for abort and raise were limited to the the actual
abort and raise call, such as:
Obtained 4 stack frames.
./test-app(print_trace+0x1c) [0x10a08]
./test-app() [0x10b3c]
/lib/libc.so.6(__default_sa_restorer+0) [0x4adae1e0]
/lib/libc.so.6(gsignal+0xa0) [0x4adacf74]
This is not terribly useful when trying to figure out what function
may have called called the abort, especially when using pthreads.
After the change the trace would now look like:
Obtained 8 stack frames.
./test-app(print_trace+0x1c) [0x10a08]
./test-app() [0x10b3c]
/lib/libc.so.6(__default_sa_restorer+0) [0x4befe1e0]
/lib/libc.so.6(gsignal+0xa0) [0x4befcf74]
/lib/libc.so.6(abort+0x134) [0x4befe358]
./test-app(dummy_function+0x50) [0x10adc]
./test-app(main+0xd4) [0x10c24]
/lib/libc.so.6(__libc_start_main+0x114) [0x4bee7a58]
(From OE-Core rev: 93bf8713d8e13c278543baea94fb8dad0cb80e49)
Signed-off-by: Yuanjie Huang <yuanjie.huang@windriver.com>
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Backport patch to fix CVE-2016-6323 of glibc. And remove the section of
file ChangeLog which can't be applied.
Ref:
https://sourceware.org/bugzilla/show_bug.cgi?id=20435
(From OE-Core rev: a3c2acee40c8875e311e03bff6906e7c93c491fc)
Signed-off-by: Kai Kang <kai.kang@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Reduce duplication in MIPS variants now that the MACHINEOVERRIDES
variable is defined
(From OE-Core rev: 5013504b8b406b47a66c84413cb7f8beb5c336c3)
Signed-off-by: Zubair Lutfullah Kakakhel <Zubair.Kakakhel@imgtec.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Add support for MIPS Release 6 ISA
The loader is located at a new place for multiarch.
For more details, check https://wiki.debian.org/Multiarch
and https://sourceware.org/glibc/wiki/ABIList#mips
(From OE-Core rev: 502145553e2368525a4b327c64d2971dac58d85b)
Signed-off-by: Zubair Lutfullah Kakakhel <Zubair.Kakakhel@imgtec.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
When changing SDKMACHINE, we may encounter an error forcing us to wipe the TMP folder.
Since only SDK_ARCH is captured in the PN of the crosssdk recipes, changes to SDK_OS
result in conflicts. Eventually we hit the error:
ERROR: ...: The recipe <...> is trying to install files into a shared area when those files already exist.
The build has stopped as continuing in this scenario WILL break things
This patchset addresses the problem by SDK_SYS as the recipe name suffix instead
of SDK_ARCH.
[YOCTO #9281]
(From OE-Core rev: d2eccccb70e809d482c493922f23aef4409cfd82)
Signed-off-by: Juro Bystricky <juro.bystricky@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The ELF specification indicates symbol resolution should be breadth first, not
depth first.
The dl-deps.c: dl_build_locale_scope function is processing in a depth first
mode. This is causes certain symbols to be incorrectly reported when
LD_TRACE_PRELINKING=1 is enabled.
See glibc BZ #20488 for more information.
(From OE-Core rev: fb72263eaa94e64ddeee457b5b1bc999f0e647da)
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
glibc 2.24 is released now
https://www.sourceware.org/ml/libc-alpha/2016-08/msg00212.html
(From OE-Core rev: 01fe48252085284e2964f5dd52b8b5fa54ee10d3)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The nativesdk libc when used by buildtools has a hard requirement on supporting
a UTF-8 locale because Python 3 needs a UTF-8 locale. However we currently only
ship the C locale, which means that Python attempts to lookup the user's locale
(for example, en_NZ.UTF-8) in the locale archive under it's prefix it fails and
falls back to C. This the results in Python using ASCII instead of UTF-8 for
file encoding, and bitbake breaks.
Th obvious solution would be to ship all locales, but this would add
approximately 250MB to the size of the buildtools tarball (which is currently
around 30MB). Generating a binary locale archive reduces this down to 100MB,
but this is still a drastic increase in footprint. If we ship a subset of
locales in the tarball then there will be users whose locale isn't in the
tarball, and they'll have to change their locale to an "approved" one, which
isn't the best of messages to send to new users.
The alternative is to tell the nativesdk libc that the locale archive isn't
under it own prefix but is in fact at /usr/lib/locale/locale-archive, so the
buildtools libc uses the host locale archive. The locale archive format appears
to be at least fairly stable: our glibc 2.24 can read the locale archive
generated by glibc 2.17 (Centos 7).
[ YOCTO #9775 ]
(From OE-Core rev: 75321b6b0f2c0ac667b9350b387b01a188e195c8)
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
glibc master added the EM_METAG tag but didn't add the relocation defines.
However the kernel tooling only checks for EM_METAG when defining its own values
so scripts/recordmcount ends up using R_META_* symbols without their definition.
Whilst the kernel can and should be fixed, this breaks all users of recordmcount
so patch elf.h to add the values.
(From OE-Core rev: 61f73ae289bf8dfe72d5f4beaac966fb4ac8dc90)
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
- libc-package.bbclass: Do not use --old-style
This option has been dropped from latest glibc
(From OE-Core rev: 78ab1e7cdedc6a73395af5d053b49cf081416732)
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>
Currently locales are not found in a relocated buildtools-tarball
such as that used in eSDK. This breaks bitbake when used under python3.
This patch adds enough relocation magic to nativesdk-glibc so that
the binary locales can be found even in a relocated buildtools-tarball
and bitbake works successfully under python3. The eSDK also works
correctly after this change too.
(From OE-Core rev: faa1229ba848e7a4a90638a98d6c809065016a93)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
python3 has much stricter locale requirements than previous versions.
If a locale isn't present, python3 reverts to ascii mode under which
bit
bake can't operate.
We therefore need working binary locales in things like uninative-tarball and buildtools-tarball. This patch enables binary locales for nativesdk-glibc.
(From OE-Core rev: 6993d18062bcc20713dd39399bd7cb3623853c75)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This hunk of patch went missing during the glibc upgrade to 2.24
and without it, uninative-tarball doesn't work properly. This adds
it back so we can spin a new version of uninative.
(From OE-Core rev: a76cbbd5633301dfcd29f18545e1e6f32e3b2448)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Update so this works with python3.
(From OE-Core rev: 20190566db6d77ee0ccd799587db3dfa35e8029a)
Signed-off-by: Tim Orling <timothy.t.orling@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Use the autotools default configure commands and just tell autotools
where to run configure from.
This fixes the build when running on an aarch64 host, which the prebuilt
configure scripts with glibc 2.22 do not recognize.
(From OE-Core rev: 33d4c758a5d71435437dde74556d32404d91342f)
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
They were CEVs and should be already in the source after upgraded.
(From OE-Core rev: e8a5332d467434ee65e0f29927abb9c51b025aff)
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Yocto's ldconfig-native was exported from an old version of glibc and
generates an ld.so.cache that is partially ignored by current versions
of glibc when loading libraries. This occurs for 64-bit binaries, where
glibc expects FLAG_ELF_LIBC6, but ldconfig-native only generates the
standard ELF flag. Fix this with an additional patch on top of the patch
for now.
You can verify this by applying the patch below to your target copy of
glibc and running
LD_DEBUG=libs /lib64/ld-linux-x86-64.so.2 --list $anybinary
--- ./elf/dl-cache.c.orig 2016-01-07 11:05:36.823447171 +0100
+++ ./elf/dl-cache.c 2016-01-07 11:19:53.925878628 +0100
@@ -106,6 +106,8 @@
if (_dl_cache_check_flags (flags) \
&& _dl_cache_verify_ptr (lib->value)) \
{ \
+ if (__glibc_unlikely (GLRO_dl_debug_mask & DL_DEBUG_LIBS))\
+ _dl_debug_printf (" considering file %s\n", cache_data + lib->value); \
if (best == NULL || flags == GLRO(dl_correct_cache_id)) \
{ \
HWCAP_CHECK; \
@@ -117,6 +119,9 @@
searching. */ \
break; \
} \
+ } else { \
+ if (__glibc_unlikely (GLRO_dl_debug_mask & DL_DEBUG_LIBS)) \
+ _dl_debug_printf (" ignoring file %s due to flags %x, expected %x\n", cache_data + lib->value, lib->flags, GLRO(dl_correct_cache_id)); \
} \
} \
while (++middle <= right); \
@@ -265,14 +270,23 @@
/* Only accept hwcap if it's for the right platform. */
#define HWCAP_CHECK \
- if (lib->hwcap & hwcap_exclude) \
+ if (lib->hwcap & hwcap_exclude) { \
+ if (__glibc_unlikely (GLRO_dl_debug_mask & DL_DEBUG_LIBS)) \
+ _dl_debug_printf (" hwcap mismatch %x vs. %x\n", lib->hwcap, hwcap_exclude); \
continue; \
- if (GLRO(dl_osversion) && lib->osversion > GLRO(dl_osversion)) \
+ } \
+ if (GLRO(dl_osversion) && lib->osversion > GLRO(dl_osversion)) { \
+ if (__glibc_unlikely (GLRO_dl_debug_mask & DL_DEBUG_LIBS)) \
+ _dl_debug_printf (" os version mismatch %x vs. %x\n", lib->osversion, GLRO(dl_osversion)); \
continue; \
+ } \
if (_DL_PLATFORMS_COUNT \
&& (lib->hwcap & _DL_HWCAP_PLATFORM) != 0 \
- && (lib->hwcap & _DL_HWCAP_PLATFORM) != platform) \
- continue
+ && (lib->hwcap & _DL_HWCAP_PLATFORM) != platform) { \
+ if (__glibc_unlikely (GLRO_dl_debug_mask & DL_DEBUG_LIBS)) \
+ _dl_debug_printf (" platform mismatch %x vs. %x\n", lib->hwcap & _DL_HWCAP_PLATFORM, platform); \
+ continue; \
+ }
SEARCH_CACHE (cache_new);
}
else
This version of ldconfig-native should really be replaced with a version
matching the glibc source in use on the target platform.
(From OE-Core rev: bf9c1e6fa1c8eb86670383bad9b7c2e54bfe17f4)
Signed-off-by: Clemens Lang <clemens.lang@bmw-carit.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
We're seeing various failures where nativesdk glibc can't find the gconv
modules. We've tried various workaround but this needs fixing 'properly'.
One significant problem is knowing when a binary would use this glibc
and hence when to set the path and when not to.
Add the default path to its own special section which the sdk
relocation script already knows how to handle and remap.
This significantly improves the usability of uninative.
(From OE-Core rev: d40cb4a359dbc5d762fabd996c29e468f5398dd9)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
- Avoid code duplication to handle -O, -O1 and -Os cases
- Consider the effective optimisation level only (avoids spurious
warnings if multiple optimisation flags are present).
- Prefix warnings with PN instead of hardcoding "glibc" (avoids
confusing warnings since the test is also applied to glibc-initial,
nativesdk-glibc, nativesdk-glibc-initial, etc, and each could
potentually have different optimisation flags).
(From OE-Core rev: 9d72015e3458c78a9f0d20ad3dc27c8a9bb1069c)
Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Drop kconfig and options-group support
Forward port cross-localedef support
Assume ssp support in libc when building gcc-initial
(From OE-Core rev: 9c3d461c4d54d684b38ec4c038a1c3c2fb9923f0)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
it was found that out-of-range time values passed to the strftime function may
cause it to crash, leading to a denial of service, or potentially disclosure
information.
(From OE-Core rev: cf747f0bbcd53af41a7f3981ac65c2b6b6e668f8)
Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
A stack overflow vulnerability was found in nan* functions that could cause
applications which process long strings with the nan function to crash or,
potentially, execute arbitrary code.
(From OE-Core rev: 2859c809ac59789d0e631b5386bdf78a5d5c4f4c)
Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
A stack overflow vulnerability in the catopen function was found, causing
applications which pass long strings to the catopen function to crash or,
potentially execute arbitrary code.
(From OE-Core rev: e0f71f123147bf4f48cc90c7f26a50164ed4115e)
Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The process_envvars function in elf/rtld.c in the GNU C Library (aka glibc or
libc6) before 2.23 allows local users to bypass a pointer-guarding protection
mechanism via a zero value of the LD_POINTER_GUARD environment variable.
(From OE-Core rev: bc51411d2edda908cbef733066d78a986dfec0c0)
Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
WARNING: QA Issue: glibc-locale: /glibc-binary-localedata-sd-in/usr/lib/locale/sd_IN/LC_CTYPE is owned by uid 1000, which is the same as the user running bitbake. This may be due to host contamination [host-user-contaminated]
fix type
(From OE-Core rev: d53a0d410ae2390528f1090a131cd3e16d7ebcc5)
Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Add patch from commit 96b1b5c127 to cross-localedef-native
to avoid broken images built with ENABLE_BINARY_LOCALE_GENERATION set to 1:
$ sh -c "export LANG=de_DE; ls -la"
sh: loadlocale.c:130: _nl_intern_locale_data: Assertion `cnt < (sizeof (_nl_value_type_LC_COLLATE) / sizeof (_nl_value_type_LC_COLLATE[0]))' failed.
Aborted
(From OE-Core rev: be456fb6160bf4ef0e90ebe2014a349318d58310)
Signed-off-by: Jens Rehsack <sno@netbsd.org>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
We need to expand SELECTED_OPTIMIZATION later, so
do not immediate expansion, and do the work in
anonymous python function.
It is reasonable to give an error for -O0.
[YOCTO #7058]
(From OE-Core rev: 6fef0d528158e6317793b1ebfa26a7b5413c3e80)
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
PATCH_GET is no longer exported by bitbake.conf, so no longer needs
to be pruned from the glibc do_compile() environment.
(From OE-Core rev: 5865fdc103fb92007f00a238b925be43af1378f5)
Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
With the autodebug package generation logic, specifically setting FILES_${PN}-dbg
isn't needed in most cases, we can remove them.
(From OE-Core rev: 3ab59d49dd7c18e194b58d1248b4b87709b5a738)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
It turns out writing the same list of packaging tasks multiple
times in multiple places is error prone. Move this to a new class
'nopackages", migrate existing users and add glibc-initial and
libgcc-initial since we don't want packages for those recipes.
This means the sstate for those recipes won't be installed, saving
small amounts of build time and bandwidth.
A reference to the old package_write task is also dropped.
(From OE-Core rev: cece583d58f82a50c3a4eac876eb326ac3b8f5e5)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
$libdir/glibc is deleted if it doesn't exist but this is incorrectly assuming
what variables are used to create this directory. In fact libexecdir is being
used in the Makefile so use that in the recipe too.
This fixes builds where libexecdir is changed.
(From OE-Core rev: 0c73dcb7c1c369a66e4c5804fcdd19f657426a5d)
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
When confronted with an empty line, getmntent() can underrun
a buffer, possibly doing very strange things if it finds
additional space/tab characters. Backport the upstream fix.
(From OE-Core rev: 983a19a65a31b54a6f505181012bd311c28a0ae1)
Signed-off-by: Peter Seebach <peter.seebach@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
A bug in glibc 2.22's ld.so interface for the prelink support causes
the displayed values to be incorrect. The included path fixes this
issue.
Clear ELF_RTYPE_CLASS_EXTERN_PROTECTED_DATA for prelink
prelink runs ld.so with the environment variable LD_TRACE_PRELINKING
set to dump the relocation type class from _dl_debug_bindings. prelink
has the following relocation type classes:
where ELF_RTYPE_CLASS_EXTERN_PROTECTED_DATA has a conflict with
RTYPE_CLASS_TLS.
Since prelink doesn't use ELF_RTYPE_CLASS_EXTERN_PROTECTED_DATA, we
should clear the ELF_RTYPE_CLASS_EXTERN_PROTECTED_DATA bit when the
DL_DEBUG_PRELINK bit is set.
(From OE-Core rev: 12c86bdcc60c54e587a896b0dceb8bb6cc9ff7e3)
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The fix consist of allowing 64bit atomic ops for x86.
This should be safe for i586 and newer CPUs.
It also makes the synchronization more efficient.
[YOCTO #8140]
(From OE-Core rev: 2b8c7aa51f6ac7f79c4834e04b697c04afc8beaf)
Signed-off-by: Juro Bystricky <juro.bystricky@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The 'BRANCH' variable name has no explicit relation with the
SRC_URI. Using 'SRCBRANCH' makes it more obvious and easier to
identify.
This patch makes the use consistent across the metadata.
(From OE-Core rev: ed86bf9c327ceda3976e799ca453028382f277a7)
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Switching MACHINE was causing nativesdk-glibc to rebuild. This was
from the use of OVERRIDES in one of the functions. Exclude OVERRIDES
from the checksum to avoid this.
[patch to oe-selftest to ensure this doesn't regress follows]
(From OE-Core rev: 5e8993632e48e83aa4bab90363506b9d5f7a468f)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
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.
(From OE-Core rev: 487d4b4d5521ca490e22668ca66921504a1b898f)
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Fix a variety of problems such as typos, bad punctuations, or incorrect
Upstream-Status values.
(From OE-Core rev: bd220fe6ce8c3a0805f13a14706d3130ea872604)
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
provide the nfs-client IMAGE_FEATURES, to ease a user to only
install nfs client related files to image
(From OE-Core rev: bbdc808a8ea76369a36473c906991e25ca49c323)
Signed-off-by: Roy Li <rongqing.li@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
install nscd related configuration file, startup files, and package them,
make nscd easy to startup
(From OE-Core rev: 6d8351ac26295d2e5a693169bd2df95b89cb32fe)
Signed-off-by: Roy Li <rongqing.li@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
There might be unexpected errors when use host's rpcgen.
[YOCTO #8181]
(From OE-Core rev: 7daac5798ac9e64efe00d8fca3adc463858a185d)
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* INSANE_SKIP_${PN}_append_aarch64 is causing following warning in some
setups:
WARNING: Variable key INSANE_SKIP_${PN} () replaces original key INSANE_SKIP_glibc ().
* in worst case this will be applied also for glibc-initial package
which is using the same glibc-package.inc, but glibc-initial doesn't
create any packages so we should be fine
* someone building for aarch64 should confirm verify that this
INSANE_SKIP is still needed and cannot be fixed properly it was
introduced in:
commit aeb6f53dd607ceb0d2265a05c27f751109c73752
Author: Mark Hatle <mark.hatle@windriver.com>
Date: Thu Dec 18 16:51:13 2014 +0800
glibc-package: aarch64 enable symlink for ABI compliance
aarch64 requires the ld.so to be present in /lib, even if the rest
of the libraries are installed into an alternative directory.
See: https://sourceware.org/glibc/wiki/ABIList
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(From OE-Core rev: 34ffa04a5030d23070aa4d389d1cc51438525670)
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
glibc has recently turned on Werror globally which is good but then not
all option combos are well tested so there still remains cleanup needed
when not using -O2, so lets just disable Werror in such cases, until
fixed upstream
Change-Id: I2d491c360a15b0752c97ff77ee0faaeede6e8d2a
(From OE-Core rev: 52a90e8e592ddd228939e15d7fd0d69f3c1e816f)
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>
libmvec is new library in glibc 2.22 and currently turned on by default
on x86_64. this helps in packaging it properly when its generated
Fixes warning like
WARNING: QA Issue: nativesdk-glibc: Files/directories were installed but
not shipped in any package:
/usr/local/oecore-x86_64/sysroots/x86_64-angstromsdk-linux/lib/libmvec-2.21.90.so
Please set FILES such that these items are packaged. Alternatively if
they are unneeded, avoid installing them or delete them within
do_install. [installed-vs-shipped]
(From OE-Core rev: f009e592fd5ef65c2417ec8cc131056a575a003f)
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>
- git'ify the OE patches
- add_resource_h_to_wait_h.patch - dropped, we do not support that old
perf anymore
- mips-rld-map-check.patch - Dropped because binutils is fixed for it
see https://sourceware.org/ml/binutils/2011-12/msg00112.html
- initgroups_keys.patch - Folded into
0026-eglibc-Forward-port-eglibc-options-groups-support.patch
Change-Id: Ib8e731b212f52b8ff12e2180babbc19970fb1ef1
(From OE-Core rev: 6ea08396dbb628140fd3289fc9fb19df97914326)
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>
Overriding TUNE_CCARGS this way breaks MULTILIB setup for MIPS. This
override disables multilib handling of tunes for TUNE_CCARGS, thus
enforcing glibc's TUNE_CCARGS to the TUNE_CCARGS of main DEFAULTTUNE.
Glibc perfectly build without this override for both simple and multilib
cases.
(From OE-Core rev: da5d21c3a1ae5d4767b803ba05dcce2f1b3d3808)
Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The current warning is:
WARNING: glibc: unable to generate header for spray.x
Which is easier to debug than:
WARNING: unable to generate header for spray.x
And remove the file before generate it again to fix the warning when
recompile:
file `bootparam_prot.h' already exists and may be overwritten
WARNING: unable to generate header for bootparam_prot.x
file `nlm_prot.h' already exists and may be overwritten
WARNING: unable to generate header for nlm_prot.x
[snip]
(From OE-Core rev: 5ae6d368a89d5f7f3c860f80aa8afb689053afd4)
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
There is no ac_cv_path_KSH in configure, can't find it
in config.log after remove, either.
(From OE-Core rev: 6b58670d8b8f2d1c1a7d5043652f48a364a0df5d)
(From OE-Core rev: f193559f5050ab11ec1ebe4ddf7744c502b4983a)
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
There is no "{ (exit 1); exit 1; }; }" in configure any more, and also
remove chmod since sed command is removed.
(From OE-Core rev: e516e11d5998cdad45c670e22b980089e463a574)
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
ldconfig-native was grepped from an old version of glibc, and its output
lacks neccessary 64bit flag in entries.
Due to this defect, ctypes.util.find_library() python function fails to
detect any library due to the old file format that ldconfig-native
creates. This fix sets architecture-dependent 64bit flags for 64-bit ELF.
Since the host's elf.h may not have definition for new AArch64 machine
type, a work-around is added to correctly flag 64-bit ARM libraries.
(From OE-Core rev: 0b0e4d7aa64feded0a7bf89264d2367489808a38)
Signed-off-by: Yuanjie Huang <yuanjie.huang@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Add functionality to strip binaries/libraries going into the sysroot. Whilst
this does fractionally slow down the build, it also significantly reduces the
size of the sstate cache files.
(From OE-Core rev: 30f3774f4cd5bbb8c1e6884aeff5af91ab053fc1)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
we still need nativesdk or native recipes for libc to come
from glibc, but only be ignored for target recipes types
Change-Id: Ibaf8114f2aef63f1eadf493b264e78cd928535a0
(From OE-Core rev: 66e4a0d10a382618fe925b33a9d6df3ee49297e2)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
An appropriate --enable-nscd or --disable-nscd option is added to
EXTRA_OECONF based on the 'libc-inet-anl' DISTRO_FEATURES check.
(From OE-Core rev: 05360e6e5e82395ef3a5035b62b805d22592d571)
Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Backport from upstream glibc:
https://sourceware.org/git/?p=glibc.git;a=commitdiff;h=132a1328eccd20621b77f7810eebbeec0a1af187
Note that the fix is only required when glibc is built for i686/multiarch,
so is not applicable in the default oe-core x86 configuration (which builds
glibc for i586 and therefore does not include SSE2 optimised memcpy etc).
(From OE-Core rev: e643b9bc4c459ea8b59573cf67f2494388e7a377)
Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Some test programs written in c++ are still included in spite of
"libc-cxx-tests" being omitted from DISTRO_FEATURES_LIBC.
All .cc programs are compiled with g++.
g++ automatically specifies linking against the C++ library.
This patch conditionally excludes the following tests as well:
bug-atexit3-lib.cc
tst-cancel24.cc
tst-cancel24-static.cc
tst-unique3lib.cc
tst-unique3lib2.cc
tst-unique4lib.cc
tst-unique3.cc
tst-unique4.cc
Tested with DISTRO_FEATURES_LIBC_remove = " libc-cxx-tests"
[YOCTO #7003]
(From OE-Core rev: cef29abf0c699b8bd5c5b52ba15ee63bce5fc258)
Signed-off-by: Juro Bystricky <juro.bystricky@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Backport Arjun Shankar's patch for CVE-2015-1781:
A buffer overflow flaw was found in the way glibc's gethostbyname_r() and
other related functions computed the size of a buffer when passed a
misaligned buffer as input. An attacker able to make an application call
any of these functions with a misaligned buffer could use this flaw to
crash the application or, potentially, execute arbitrary code with the
permissions of the user running the application.
https://sourceware.org/bugzilla/show_bug.cgi?id=18287
(From OE-Core rev: c0f0b6e6ef1edc0a9f9e1ceffb1cdbbef2e409c6)
Signed-off-by: Haris Okanovic <haris.okanovic@ni.com>
Reviewed-by: Ben Shelton <ben.shelton@ni.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
On x32 builds, sysd-syscalls appears malformed since the make-target-directory
appears on the wrong line. This causes races during the build process where you can
see failures like:
Assembler messages:
Fatal error: can't create [...]glibc/2.21-r0/build-x86_64-poky-linux-gnux32/time/gettimeofday.os: No such file or directory
Assembler messages:
Fatal error: can't create [...]glibc/2.21-r0/build-x86_64-poky-linux-gnux32/time/time.os: No such file or directory
The issue is that the carriage return is being escaped when it should
not be. The change to sysd-syscalls with this change:
before:
"""
$(foreach p,$(sysd-rules-targets),$(objpfx)$(patsubst %,$p,time).os): \
$(..)sysdeps/unix/make-syscalls.sh $(make-target-directory)
(echo '#include <dl-vdso.h>';
"""
after:
"""
$(foreach p,$(sysd-rules-targets),$(objpfx)$(patsubst %,$p,time).os): \
$(..)sysdeps/unix/make-syscalls.sh
$(make-target-directory)
(echo '#include <dl-vdso.h>';
"""
which ensures the target directory is correctly created. Only x32 uses the vdso
code which contains the bug which is why the error only really appears on x32.
(From OE-Core rev: ae4729ed6c5e5443c42f8825dd85873f06a3570e)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Make skipping expression simpler to check for given libc
Make sure glibc specific items are covered with right override
Change-Id: I8b4a0b7cbfe38ffdc9320f798038c79c7220552b
(From OE-Core rev: 6f4be55ca66b4470aa46c0ae356070ed166f44ce)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Fixed a typo:
name-target-directory -> make-target-directory
There is no name-target-directory, it should be make-target-directory,
this fixed the error:
/bin/bash: /path/to/elf/runtime-linker.T: No such file or directory
Makefile:361: recipe for target '/path/to/elf/runtime-linker.st' failed
(From OE-Core rev: 9e4880c5bee33032142bee18a63d7f4a9db4a55a)
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Glibc test suite contains several c++ files. They are built
with g++ -nostdinc. In this case the location of c++ include files
needs to be specified explicitly, or the programs may fail to build.
The header locations are assumed to be:
sysroot/usr/include/c++/<version>
sysroot/usr/include/c++/<version>/<machine>
The new code parses "configparms" to get the actual CXX and sysroot
used for the glibc test suite, then it queries CXX to determine
CXX <version> and CXX <machine>. With the known values for <version>
and <machine> the code composes a new value for c++-sysincludes
and appends "configparms" with that value.
[YOCTO #7081]
(From OE-Core rev: 35cd410bd3cfcd072df29e36cfe66b2c14cd3841)
Signed-off-by: Juro Bystricky <juro.bystricky@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Addresses a stall (by prompt) condition of the run.do_configure at when
executed directly from the workdir, like when using the devshell.
[YOCTO 7369]
(From OE-Core rev: deb06c96dccdbc6da0f301653e9781ce2fe8173d)
Signed-off-by: Benjamin Esquivel <benjamin.esquivel@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Add licenses point to COMMON_LICENSE_DIR because glibc-collateral.inc is
a recipe that don't provide tarball/repo with LICENSE files.
(From OE-Core rev: 19fa084c92016ef87f6ad60c6985ec0d2bfd5c42)
Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The AC_EGREP_CPP macro is looking for a 'yes' string that is likely
to be found in the path where the file is stored. This false positive
match causes variables to be mistakenly set.
The fix is to use a more elaborated string instead.
This has to be done at the configure and the configure.ac files, because
a reconfigure does not happen in the regular build flow.
[YOCTO #6614]
(From OE-Core rev: fd0bf8f95227796435d22aa7a849a74106cf1eef)
Signed-off-by: Benjamin Esquivel <benjamin.esquivel@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The condition should be uclibc 'or' musl then we know its not glibc
right now it checks with 'and' operator, that condition will never be
true
Change-Id: Ifc48e81fd0b3c18d8e1ef76a18c216dc6acda092
(From OE-Core rev: 6feef44751d98c55a2764d70c26d170f90b73f9d)
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>
The check is supposed to be for -Os, but it's actually testing -O0.
(From OE-Core rev: 32d01a341cac894617d47ab7ebe9485ec3c8ac92)
Signed-off-by: Peter Urbanec <openembedded-devel@urbanec.net>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
When we modify to use -Os
-Werror doesnt go well with it, glibc needs to be
cleaned up for that but until then lets disable -Werror
when using -Os
Also updates the options group patch to work better with -Os.
(From OE-Core rev: 98e1dc574ef3be668d6a42232ad030d1af93c49f)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
We now can support musl along with uclibc and glibc
earlier when only alternative was uclibc this check was fine
but now we need to consider non-glibc vs glibc case instead of
uclibc vs glibc
Change-Id: Id794ce193c6557b5435002a8f9b6eb608738b696
(From OE-Core rev: 5d7bc14d22da87837741fefae5924571fdff750d)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* this means that recipes with ARM_INSTRUCTION_SET explicitly changed
to arm will be built in feed without thumb suffix, the same does apply
for workdir, e.g. after "bitbake glib-2.0" you can see:
tmp-glibc/work/armv5e-oe-linux-gnueabi:
glib-2.0 glibc glibc-initial
tmp-glibc/work/armv5te-oe-linux-gnueabi:
acl db gdk-pixbuf kmod ....
and
tmp-glibc/deploy/ipk:
all armv5e armv5te qemuarm
* feed config should be ok, because all default DEFAULTTUNEs always
include "arm" variants of all supported PACKAGE_ARCHs
* for more details see
http://lists.openembedded.org/pipermail/openembedded-core/2014-April/091960.html
the toolchain path issues were resolved in 1.8
* add ARM_INSTRUCTION_SET = "arm" to glibc-collateral.inc and comment in
glibc.inc to fix glibc-locale and glibc-scripts build
(From OE-Core rev: 3e760031f91fb87c3e2f62b77a117eb41164f259)
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Drop CVE backports and ppc/fpu detection patch which is not needed anymore
Forward port eglibc option groups patch
Default to using glibc 2.21
Additional patches needed to appease -Werror option
Change-Id: I1873097cec8387ea9e8186a255122938fc28c976
(From OE-Core rev: 6617cc92076764d51f0190786f8d62b8c99ae984)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Re-introduce
https://sourceware.org/git/?p=glibc.git;a=commit;h=fdbe8eae2b9aed74dabba1b0a189c5d7d61bf032
This patch was overzealously removed during option groups forward port
Change-Id: I8dd01902ae8e5ee8b5c6fc9dc39c7216952dca51
(From OE-Core rev: 24f02c8d1313a423cf219270a9aa55bccbe1893c)
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>
Build suppport for mutibyte character handling only when
__OPTION_EGLIBC_LOCALE_CODE evaluates to 1.
Fixes missing .out suffix for several tests to be built.
Fixes building of locales needed for several tests. Do not use
cross-localedef to build locales. Use localedef built with the
newly built libgc instead.
Fixes:
[YOCTO #6809] [YOCTO #6796] [YOCTO #6797]
(From OE-Core rev: f01800d46de95f55d7a90d4a2523788368f7c025)
Signed-off-by: Juro Bystricky <jurobystricky@hotmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The getnetbyname function in glibc 2.21 in earlier will enter an infinite loop
if the DNS backend is activated in the system Name Service Switch
configuration, and the DNS resolver receives a positive answer while processing
the network name.
(From OE-Core rev: f03bf84c179f69ef4800ed92a4a9d9401d0e5966)
Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This addresses 2 issues discovered trying to build a minimal libc with
libm option. By default nscd was always being built and without inet
enabled there were missing symbols.
[YOCTO #7108]
(From OE-Core rev: 89649881bcd0e76d6ee7c85c30e75bb01e1c004f)
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
aarch64 requires the ld.so to be present in /lib, even if the rest
of the libraries are installed into an alternative directory.
See: https://sourceware.org/glibc/wiki/ABIList
(From OE-Core rev: aeb6f53dd607ceb0d2265a05c27f751109c73752)
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Add aarch64 to var BINARY_LOCALE_ARCHES. In libc-packages.class, it is
used to work with other vars to check and add cross-localedef-native as
a dependecy correctly.
(From OE-Core rev: 6ff3cdcaf1585c5ac99803e54baacdf850e0dc39)
Signed-off-by: Kai Kang <kai.kang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
option-groups.h only explicitely #defines options that are enabled.
EGLIBC options are typically pre-processed under the assumption that if
an option is not explicitely defined then it evaluates as 0.
This assumption is correct, but it generates a compiler warning
message each time an undefined symbol is being evaluated.
In order to remove the warnings, each EGLIBC option is now defined
as 1 if the option is enabled or as 0 otherwise.
The consequence is we cannot use #ifdef OPTION_XXX when evaluating
the option, we must always use #if OPTION_XXX.
[YOCTO #7001]
(From OE-Core rev: 7f1bdc331304a61a4836a5752bca210450b6c5b5)
Signed-off-by: Juro Bystricky <jurobystricky@hotmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Some header fields of ELF were read with wrong size on 64bit
big-endian machine, fix it by reading the fields with read64
instead of read32.
(From OE-Core rev: adbf0b1fdf897076e5e3dec2443c8927f315c2e6)
Signed-off-by: Par Olsson <Par.Olsson@windriver.com>
Signed-off-by: Shan Hai <shan.hai@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Add SRCREV_FORMAT to provide a composite version number
for get_srcrev() in fetch2 code.
(From OE-Core rev: 87cda76a2f004813420d7730c4f2f74839d3c2df)
Signed-off-by: Joe Slater <jslater@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The s_sin.c patch undoes some code changes in glibc itself, these changes have nothing to
do with the option groups and I suspect crept in as part of the initial conversion. Undoing
this patch also fixes a test failure in test-double and test-idouble.
[YOCTO #6808]
(From OE-Core rev: 5f225067dcb7244065f857d34e1041171844b243)
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Now that glibc 2.20 has been released. We switch
to use release branch and remove the already applied
patch
(From OE-Core rev: 70bfccd8e13af712381b4feea3ef882369951264)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
- This is a big swoop change where we switch to using glibc
- option-groups are forward ported
- cross-localedef is extracted out from eglibc and hosted
at github.com/kraj/localedef, its used for cross-localedef
recipe
- Other non ported patches from eglibc are forward ported
ppc8xx cache line workaround
SH fpcr values
dynamic resolver
installing PIC archives is there but is not applied
libc header bootstrap
- Delete eglibc recipes we moved back to using glibc now
- Fix ppc/e500 build
- Fix crypt module build when options are used
- Fix fnmatch build when options OPTION_EGLIBC_LOCALE_CODE is unset
HAVE_MBSTATE_T and HAVE_MBSRTOWCS should be defined conditionally
based upon OPTION_EGLIBC_LOCALE_CODE being set/unset
- Move the ports/ patches to relevant files now that ports is gone
(From OE-Core rev: 1027c535ea753e63d9ffe469a423e04467cf8940)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Glibc 2.10.1 is outdated now and eglibc seems to provide a superset of
its functionality.
(From OE-Core rev: 1d9866a2c4fe93202749a56c7ad89a3cbd07d9f8)
Signed-off-by: Phil Blundell <philb@gnu.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
do not just fail if grep does not match the locale name in the list
(From OE-Core rev: 6fdbd9129c602fd58179e5880e070c1ec7ea5540)
Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
As discussed on the mailing list, this variable isn't useful and if wanted
would be better implemented by distros using pn-X overrides.
This patch executes:
find . -regex ".*\.\(bb\|inc\)$" | xargs sed -i '/^PRIORITY = ".*"$/d'
against the tree removing the referenced. Thanks to Phil Blundell for
the command.
(From OE-Core rev: d122343362669c683acc4af295971a62cbc823fc)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
These changes ensure files packaged in the -locale package aren't included
in the main do_install and also ensures the staging directory used for
the -locale package doesn't end up in the -dev package.
(From OE-Core rev: 2dccb370e04bc2bbe208b2b0541077d8ef519535)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
After the recent locale changes there were warnings about many unpackaged files.
Fix this by directing libc-package.bbclass to operate directly on the files in
the sysroot and adding packaging for .debug files in this package.
Also sync up the eglibc and glibc versions of this code more closely.
(From OE-Core rev: 1a3a76e4652b95b640c287cb3672ccc146b023ca)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
These never seem to have been generated and matched no known FILES anyhow.
This ensures localedef makes it into the correct package too.
(From OE-Core rev: 8ee5160e8978d73ade2830c9f64df4c0009c0525)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
*libc's do_package will cost a lot of time due to the locale handing,
which may delay the other recipe's do_package task and affect the build
performance.
This commit moves locale handling into a separate recipe *libc-locale.
[RP: Add fixup with recent eglibc commit conflict for FILES_pn-dbg and PACKAGES]
(From OE-Core rev: c6d3242f7642f537b02870bb4eb650f0e2094b85)
Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
gypsy: Add upstream status information for gypsy's patch
alsa-utils: fix upstream status typo
pulseaudio: add upstream status for pulseaudio-0.9.15's patches
hostap: add upstream status for hostap's patch
glibc: add upstream status for glibc's patch
glib-2.0: add upstream status for glib-2.0's patch
mtd-utils: add upstream status for mtd-utils patches
add upstream status for opkg's patches
mark add_vercmp.patch as inappropriate since the added function is not
used.
(From OE-Core rev: b0052e9467608cdc2e3b85f5b718e6b9c03d44ca)
Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
hostap: add upstream status for hostap-fw-load.patch
lrzsz: add upstream status for lrzsz's patches
bluez: add upstream status for bluez's patches
bluez-dtl1-workaround: add upstream status for COPYING.patch
libgsmd: add upstream status for gsm's patches.
gypsy: add upstream status for gypsy's patch
libpcap: add upstream status for libpcap's patches
ppp: add upstream status for ppp's patches
libtelepathy: add upstream status for libtelepathy's patches
telepathy-python: add upstream status for telepahty-python's patches
wireless-tools: add upstream status for wireless-tools's patches
wpa-supplicant: add upstream status for wpa-supplicant
zeroconf: add upstream status for zeroconf's patch
glibc: add upstream status for glibc's patches
dpkg: add upstream status for dpkg's patches
makedevs: add upstream status for makedevs's patch
opkg: add upstream status for opkg's patches
opkg-utils: add upstream status for opkg-utils's patch
minicom: add upstream status for minicom patches
rpcbind: add upstream status for rpcbind's patch
which: add upstream status for which's patch
clutter-gst: add upstream status for clutter-gst's patches
flac: add upstream status for flac's patches
gst-ffmpeg: add upstream status for gst-ffmpeg's patch
liba52: add upstream status for liba52's patch
libid3tag: add upstream status for libid3tag
libmusicbrainz: add upstream status for libmusicbrainz's patch
pulseaudio: add upstream status for pulseaudio patches
db: add upstream status for db's patch
neon: add upstream status for neon's patch
taglib: add upstream status for taglib's patches
libetpan: add upstream status for libetpan's patch
libopensync: add upstream status for libopensync's patches
libopensync-plugin-evolution2: add upstream status for its patch
libopensync-plugin-syncml: add upstream status for its patch
libsyncml: add upstream status for libsyncml's patch
empathy: add upstream status for empathy's patch
wv: add upstream status for wv's patch
xournal: add upstream status for xournal's patch
(From OE-Core rev: 0f9f0518ac46c2f2beb0224e881ff136f1603d33)
Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The new bash logging class provides bbnote, bbwarn, bbfatal, and bbdebug
replacements (as well as bbplain and bberror) for the oe* equivalents. Use the
new bb* API in preparation to delete the oe* logging API.
This patch was automatically generated by a sed script. The result has been
visually inspected and used to build core-image-sato for qemux86.
(From OE-Core rev: a1f09fce5caba389d0484b169f0cde85d64514fa)
Signed-off-by: Darren Hart <dvhart@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This fixes [YOCTO #780]
Handle the input/output data with different endian-ness correctly
Also fix the definition of LD_SO for cross environment
And remove the older 2.5 version of ldconfig-native recipe
(From OE-Core rev: 694db055f3729662e0e0193a31f2098be599877f)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
For these recipes the dependencies listed in RDEPENDS and RRECOMMENDS only apply to ${PN}
Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
[BUGID #281]
Evaluate and update each package in recipes-core to ensure they have a
consistent summary and description.
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Along with qemu this provides another option to generate locales for
[e]glibc. The new method is to use cross-localedef with appropriate arch
specific parameters.
The cross-localedef method is found to be 15 times faster than qemu's
emnualted method.
LOCALE_GENERATION_WITH_CROSS-LOCALEDEF : This is new config variable
introduced to selet qemu or cross-localedef method for locale generation.
Thanks to Mark Hatle from Windriver for providing the rich
information for cross locale generation.
Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
On mips target, binutils currently sets DT_MIPS_RLD_MAP to 0 in dynamic
section if a --version-script sets _RLD_MAP to local. This is apparently
a binutils bug, but libc shouldn't segfault in this case.
Add sanity check on the entry to avoid segfault, fixes [BUGID #287].
Signed-off-by: Qing He <qing.he@intel.com>
This commit fixes the following error while doing this:
bitbake poky-image-sato
ERROR: Conflicting PREFERRED_PROVIDER entries were found which resulted in an attempt to select multiple providers (['virtual:nativesdk:/distro/dcui/dexuan/meta/recipes-core/eglibc/eglibc_2.12.bb', '/distro/dcui/dexuan/meta/recipes-core/eglibc/eglibc_2.12.bb']) for runtime dependency glibc-gconv-iso8859-1 The entries resulting in this conflict were: ['PREFERRED_PROVIDER_virtual/libc-nativesdk = eglibc-nativesdk', 'PREFERRED_PROVIDER_virtual/libc = eglibc']
NOTE: multiple providers are available for runtime glibc-gconv-iso8859-1 (eglibc, eglibc-nativesdk, glibc-nativesdk, glibc, external-csl-toolchain, external-poky-toolchain)
NOTE: consider defining a PREFERRED_PROVIDER entry to match glibc-gconv-iso8859-1
And bumped PR.
This partly fixes [BUGID #329]
Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
[e]glibc-nativesdk should not be providing libsegfault.
This commit fixes the following error while doing this:
bitbake poky-image-minimal-initramfs
DEBUG: providers for libsegfault are: ['glibc-nativesdk', 'glibc',
'eglibc-nativesdk', 'external-csl-toolchain', 'eglibc',
'external-poky-toolchain']
DEBUG: selecting
virtual:nativesdk:/rphome/poky/meta/recipes-core/glibc/glibc_2.10.1.bb
as PREFERRED_VERSION 2.10.1 of package glibc-nativesdk (for item
libsegfault)
DEBUG: selecting /rphome/poky/meta/recipes-core/glibc/glibc_2.10.1.bb as
PREFERRED_VERSION 2.10.1 of package glibc (for item libsegfault)
NOTE: checking PREFERRED_PROVIDER_glibc-nativesdk
NOTE: checking PREFERRED_PROVIDER_glibc-nativesdk-2.10.1
NOTE: checking PREFERRED_PROVIDER_glibc-nativesdk-2.10.1-r3
NOTE: checking PREFERRED_PROVIDER_virtual/libc-nativesdk
NOTE: selecting glibc-nativesdk to satisfy runtime libsegfault due to
PREFERRED_PROVIDER_virtual/libc-nativesdk = glibc-nativesdk
And bumped PR.
Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
The idea of build-time locale generation is documented in glibc-package.inc:
Binary locales are generated at build time if ENABLE_BINARY_LOCALE_GENERATION
is set. The idea is to avoid running localedef on the target (at first boot)
to decrease initial boot time and avoid localedef being killed by the OOM
killer which used to effectively break i18n on machines with < 128MB RAM.
However it doesn't make sense to do same thing for glibc-nativesdk, as the
build system is powerful. More importantly is that ideally host_arch running
sdk may even be out of the support list of target_arch by qemu-native.
Regarding to above rationale, this commit disables build time locale
generation to avoid following error when asking qemu to run localdef:
NOTE: /opt/poky/sysroots/i586-pokysdk-linux/lib/ld-linux.so.2: No such file or directory
nativesdk binaris have opt path hardcoded to avoid mess with host bits, which
is another reason that build time locale generation is not feasible here.
This fixes [BUGID #264]
also add 'nativesdk' to eglibc per RP's suggestion
Signed-off-by: Kevin Tian <kevin.tian@intel.com>
Other enhancements:
print qemu's stdio & error on failure
glibc: enable locale generation for all arches
eglibc: enable binary locale generation for mips
And cleanup of code based on the code review.
[e]glibc: move common definition in the common file
bitbake was complaining about duplicate definition of
get_libc_fpu_setting in eglibc.inc & glibc.inc
files.
And bump PRs
Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
Having one monolithic packages directory makes it hard to find things
and is generally overwhelming. This commit splits it into several
logical sections roughly based on function, recipes.txt gives more
information about the classifications used.
The opportunity is also used to switch from "packages" to "recipes"
as used in OpenEmbedded as the term "packages" can be confusing to
people and has many different meanings.
Not all recipes have been classified yet, this is just a first pass
at separating things out. Some packages are moved to meta-extras as
they're no longer actively used or maintained.
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>