Richard Purdie [Thu, 11 Jan 2018 16:49:49 +0000 (16:49 +0000)]
gcc: Add missing flex-native dependency
This is needed for all stages of the cross/target/canadian compilers
and without it (and with indirect gcc dependencies disabled), the steps
fail. Add missing dependencies.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Ross Burton [Wed, 10 Jan 2018 17:28:58 +0000 (17:28 +0000)]
gettext: rationalise optional dependencies
gettext has optional dependencies on libxml2, glib, libcroco and libunistring.
If they're not available then gettext will use internal copies, but it can also
use system libraries.
For gettext-native and nativesdk-gettext continue to use the internal copies to
reduce the dependencies, but for target use the system shared libraries.
Also gettext 0.19.7 onwards swapped expat for libxm2, so remove the build
dependency on expat.
Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Ross Burton [Wed, 10 Jan 2018 17:28:57 +0000 (17:28 +0000)]
glib-2.0: rationalise build dependencies
nativesdk-glib-2.0 doesn't build-depend on nativesdk-gettext, but all variations
need to depend on gettext-native as they need msgfmt (so gettext-minimal-native
isn't an option).
Also add virtual/libintl as glib explicitly needs this. Generally this is
provided by glibc but some platforms (such as MinGW) don't.
Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
gnupg: use native version for signing, rather than one provided by host
Using host gpg has been problematic, and particularly this removes
the need to serialize package creation, as long as --auto-expand-secmem
is passed to gpg-agent, and gnupg >= 2.2.4 is in use
(https://dev.gnupg.org/T3530).
Sadly, gpg-agent itself is single-threaded, so in the longer run
we might want to seek alternatives:
https://lwn.net/Articles/742542/
(a smaller issue is that rpm itself runs the gpg fronted in a serial
fashion, which slows down the build in cases of recipes with very
large amount of packages, e.g. glibc-locale)
Note that sstate signing and verification continues to use host
gpg, as depending on native gpg would create circular dependencies.
[YOCTO #12022]
Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The entries of the created manifest file are always in a
different order. To ensure a deterministic build output
the entries are ordered alphabetically.
Signed-off-by: Michael Blättler <michael.blaettler@siemens.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Robert Yang [Mon, 8 Jan 2018 09:33:05 +0000 (17:33 +0800)]
multilib.bbclass: remove invalid PACKAGE_INSTALL
The PACKAGE_INSTALL is only used by image recipe, the previous code had
handled it in "if bb.data.inherits_class('image', d)", handle it again
doesn't make any sense (there is no PACKAGE_INSTALL for non-image
recipe), so remove it.
Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Robert Yang [Mon, 8 Jan 2018 09:33:00 +0000 (17:33 +0800)]
sstate.bbclass: sstate_hardcode_path(): fix for multilib
It only substituted staging_target for target recipe which didn't work
for multilib, for example, postinst-useradd-lib32-polkit:
* No multilib:
PATH=/path/to/tmp-glibc/work/core2-64-wrs-linux/polkit/0.113-r0/recipe-sysroot-native/bin
staging_target=/path/to/tmp-glibc/work/core2-64-wrs-linux/polkit/0.113-r0/recipe-sysroot
The PATH would be substituted to:
FIXMESTAGINGDIRTARGET-native/bin
Not the funny "-native/bin", this works well.
* When multilib:
PATH=/path/to/tmp-glibc/work/core2-32-wrsmllib32-linux/lib32-polkit/0.113-r0/recipe-sysroot-native/bin
staging_target=/path/to/tmp-glibc/work/core2-32-wrsmllib32-linux/lib32-polkit/0.113-r0/lib32-recipe-sysroot
Now staging_target endswith "/lib32-recipe-sysroot", so it can't
replace '/recipe-sysroot-native' in PATH , so PATH can't be fixed, and
there would be build errors when building multilib + rm_work, for
example:
chown: invalid user: ‘polkitd:root’
Substitute staging_host for target recipe can fix the problem, now all
of native, cross and target need substitute staging_host, so we can
simply the code a little.
Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Richard Purdie [Tue, 9 Jan 2018 11:20:31 +0000 (11:20 +0000)]
nativesdk/sdk: Update sdk dummy providers
When we migrated rpm v5 -> v4, we lost the ability to drop "per file"
dependencies from the rpm backend for things like "/bin/bash" and
"/usr/bin/env" which meant the sdks were becomming 'bloated'.
This restores the functionality using a dummy package, similarly to
the way the buildtools perl issue was addressed. It also removes
the non-functional old code so as not to confuse people in future.
I ran into this problem trying to filter dependencies to only rpms
a build directly depends upon and it turns out we have some determinism issues
in this area so this is something key to fix.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Richard Purdie [Tue, 9 Jan 2018 11:22:54 +0000 (11:22 +0000)]
package_deb: Handle / in dependency name
We can end up with / in dependency names from file dependencies but the
deb format doesn't allow this. Filter the names to allow such dependencies
to work. Names have to start with an alphanumeric digit so also handle this.
This allows for future handling of "per file" dependencies similarly to
the rpm backend, bring parity to the functionality of the backends.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Ross Burton [Mon, 8 Jan 2018 15:53:19 +0000 (15:53 +0000)]
avahi: remove explicit avahi-dev RDEPENDS
These were added to the avahi-dev package back in 2011 before avahi-ui existed
at all. The problem of GTK+ being pulled in via avahi-dev was finally solved
with the avahi-ui split, so these explicit (and by being manually maintained,
incomplete) dependencies can be removed.
This also results in gettext-dev being removed from the dependency tree (the
gettext library API is provided by glibc/musl), which means that for a standard
image we don't need to build target gettext at all anymore.
Signed-off-by: Ross Burton <ross.burton@intel.com>
Ross Burton [Fri, 5 Jan 2018 16:39:11 +0000 (16:39 +0000)]
psmisc: improve autopoint-enabling
Instead of globally clearing EXTRA_AUTORECONF (which by default currently
contains --exclude=autopoint) use _remove to selectively remove the piece we
care about.
Signed-off-by: Ross Burton <ross.burton@intel.com>
Juro Bystricky [Sun, 7 Jan 2018 16:56:08 +0000 (08:56 -0800)]
perl-ptest: various fixes
Improve reproducibility: Remove all build host references from
distributed files.
Do not package non-linux OS related files.
Also remove some additional files not needed by run-ptest. (There are
probably still more files that can be removed, but as long as they
don't leak build host references they are harmless).
Fix the expected checksum of MakeMaker/lib/ExtUtils/Liblist/Kid.pm
to match the one expected: We modified the file, but did not
recalculate/update the file checksum accordingly.
(This fixes the only failing test.)
Signed-off-by: Juro Bystricky <juro.bystricky@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Richard Purdie [Sun, 7 Jan 2018 16:59:40 +0000 (16:59 +0000)]
libunwind: Disable documentation explicitly
We don't have latex2man in HOSTTOOLs so documentaion is never built but this
dependency does cause problems on older releases like morty, pre-HOSTTOOLS.
Document the configuration explicitly in master.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Mike Crowe [Sat, 6 Jan 2018 20:08:58 +0000 (20:08 +0000)]
cmake: Always put cmake package files in -dev packages
Various recipes that inherit cmake contain FILES_${PN}-dev magic to add the
generated package files to their -dev packages. Since this is a standard
feature of cmake, we might as well teach cmake.bbclass to do this itself so
those recipes can be simpler.
Signed-off-by: Mike Crowe <mac@mcrowe.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Robert Yang [Tue, 31 Oct 2017 08:30:03 +0000 (16:30 +0800)]
multilib.bbclass: remove obsolete DEFAULTTUNE_ML_
It had been dropped by:
commit 65581c68d130fa74d703f6c3c92560e053857ac7
Author: Alexander Kanavin <alexander.kanavin@linux.intel.com>
Date: Mon Feb 13 16:44:48 2017 +0200
rootfs_rpm.bbclass: migrate image creation to dnf
Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Robert Yang [Sun, 15 Oct 2017 19:51:24 +0000 (03:51 +0800)]
oe/copy_buildsystem.py: make sure layer exists
It had a problem when nested layer before, e.g.:
layer_a/layer_b/
And when layer_b is handled before layer_a, then layer_a dir existed, so
it would be treated as already handled, which was wrong, check
conf/layer.conf can fix the problem.
Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Robert Yang [Thu, 12 Oct 2017 06:28:47 +0000 (23:28 -0700)]
testsdk.bbclass: add a newline after own-mirrors
Otherwise it would generate lines like the following when multilib:
INHERIT += "own-mirrors"SSTATE_MIRRORS += " \n file://.* file:///path/to/../share/sstate-cache/PATH"
Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
libpcre2: add packages for 16-bit and 32-bit code unit support
The packages loosely follow the debian package names. In that way more
projects, e.g. Qt5 for 16-bit, are able use system libraries. This does
not change the existing default package.
Signed-off-by: Stefan Müller-Klieser <s.mueller-klieser@phytec.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Richard Purdie [Fri, 5 Jan 2018 15:14:35 +0000 (15:14 +0000)]
bitbake.conf: Set AUTOREV to have a vardepvalue
If you have a recipe which does not include SRCPV in PV but does set
SRCREV = "${AUTOREV}" and you run do_fetch, then change the repo to a
new commit then run do_unpack, do_unpack will fail since the new commit
doesn't exist in the repo that was fetched.
The problem is the revision chosen is not represented in the do_fetch
task hash. It if were, the fetch would rerun first and the commit would be
present. It works when PV includes SRCPV since that does contain the chosen
commit from the AUTOREV.
The solution is to include the SRCPV value into the representation of AUTOREV
used for checksum calculation purposes.
Add a selftest for this issue.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Ross Burton [Fri, 5 Jan 2018 13:06:16 +0000 (13:06 +0000)]
lz4: remove ptest changes
This recipe installs the test suite by copying the entire build tree into
/usr/share/ptest, which is both wasteful and breaks packaging as lz4-ptest then
gets renamed by debian.bbclass to liblz4.
Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Richard Purdie [Fri, 5 Jan 2018 16:09:47 +0000 (16:09 +0000)]
oeqa/runtime/buildcpio: Use our own mirror for source
We see occasional network glitches which break this test. Use our own
mirror (which has a .gz instead of .bz2) to avoid the errors, we're not
trying to test network connectivity.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Richard Purdie [Sat, 6 Jan 2018 10:02:10 +0000 (10:02 +0000)]
local.conf.sample: Weakly set BB_DISKMON_DIRS
For various reasons we need to be able to set and override this from
auto.conf on our test infrastructure. We have tried forcing the variable
but this then breaks other selftests. In the interests of not complicating
things further and needing to modify the tests across releases, weaken
the default assignment.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Note that meson flags for gobject introspection and gtk-doc
appear to be non-standardized; going forward we should devise
a common way to deal with it.
gettext inherit is removed, as there is no equivalent functionality
in meson; NLS bits are always built and installed.
Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Martin Kelly [Thu, 4 Jan 2018 13:12:37 +0000 (15:12 +0200)]
meson: export native env only for native build
Although the meson crossfile should take care of setting the right cross
environment for a target build, meson slurps any set CFLAGS, CXXFLAGS,
LDFLAGS, and CPPFLAGS from the environment and injects them into the
build (see mesonbuild/environment.py:get_args_from_envvars for details).
This means that we are seeing native CFLAGS, CXXFLAGS, LDFLAGS, and
CPPFLAGS in the target build, which is wrong and causes build failures
when target and native have libraries in common (the linker gets
confused and bails).
That said, we *do* need to set certain vars for all builds so that meson
can find the right build tools. Without this, meson will fail during its
sanity checking step because it will determine the build tools to be
unrunnable since they output target instead of native artifacts.
The solution to all of this is to set CC, CXX, LD, and AR globally to
the native tools while setting the other native vars *only* for the
native build. For target builds, these vars will get overridden by the
cross file as we expect.
Signed-off-by: Martin Kelly <mkelly@xevo.com> Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
gnomebase.bbclass hardcodes the autotools inherit, so make it
configurable and allow meson to be specified instead.
Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
[RP: patches tweaked to only need the one class] Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Juro Bystricky [Thu, 4 Jan 2018 20:24:01 +0000 (12:24 -0800)]
gcc-runtime: improve reproducibility
Remove various build host references from packages:
libstdc++
libstdc++-staticdev
gcc-runtime-dbg
The references are removoved by correctly setting various compiler
-fdebug-prefix-map settings. There are two main issues:
The default DEBUG_PREFIX_MAP variable references WORKDIR, however,
gcc sources are in a shared folder (work-shared)/
Additionally, DWARF info seems to store symlink names but gcc
seems to resolve symlink names referenced in -fdebug-prefix-map.
Signed-off-by: Juro Bystricky <juro.bystricky@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Juro Bystricky [Thu, 4 Jan 2018 20:01:13 +0000 (12:01 -0800)]
package_rpm.bbclass: clamp timestamps
Improve binary reproducibility of RPM packages.
Ensure timestamps in RPM packages are not later than the value
of SOURCE_DATE_EPOCH. If SOURCE_DATE_EPOCH is not set,
timestamps are not clamped.
Signed-off-by: Juro Bystricky <juro.bystricky@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
glib-2.0: Remove python3 modules when building for mingw
Commit "glib-2.0: Add python3 modules required by gdbus-codegen"
(26af3b4b33a34d7e53059b07236f9d5aae5e004a) broke the MinGW build of
QEMU. To fix the build remove the python3 RDEPENDS for gdbus-codegen
when targeting mingw.
Signed-off-by: Alistair Francis <alistair.francis@xilinx.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Anuj Mittal [Thu, 4 Jan 2018 02:33:47 +0000 (10:33 +0800)]
gdb: fix build with x32
When compiling gdb for x32, it fails with errors:
|../../../gdb-8.0/gdb/gdbserver/linux-amd64-ipa.c: In function 'const target_desc* get_ipa_tdesc(int)':
|../../../gdb-8.0/gdb/gdbserver/linux-amd64-ipa.c:184:10: error: 'X86_TDESC_AVX512' was not declared in this scope
| case X86_TDESC_AVX512:
| ^~~~~~~~~~~~~~~~
|../../../gdb-8.0/gdb/gdbserver/linux-amd64-ipa.c:184:10: note: suggested alternative: 'X86_TDESC_AVX'
| case X86_TDESC_AVX512:
| ^~~~~~~~~~~~~~~~
| X86_TDESC_AVX
|../../../gdb-8.0/gdb/gdbserver/linux-amd64-ipa.c:185:14: error: 'tdesc_x32_avx512_linux' was not declared in this scope
| return tdesc_x32_avx512_linux;
| ^~~~~~~~~~~~~~~~~~~~~~
|../../../gdb-8.0/gdb/gdbserver/linux-amd64-ipa.c:185:14: note: suggested alternative: 'tdesc_x32_avx_linux'
| return tdesc_x32_avx512_linux;
| ^~~~~~~~~~~~~~~~~~~~~~
| tdesc_x32_avx_linux
|../../../gdb-8.0/gdb/gdbserver/linux-amd64-ipa.c: In function 'void initialize_low_tracepoint()':
|../../../gdb-8.0/gdb/gdbserver/linux-amd64-ipa.c:282:3: error: 'init_registers_x32_avx512_linux' was not declared in this scope
| init_registers_x32_avx512_linux ();
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|../../../gdb-8.0/gdb/gdbserver/linux-amd64-ipa.c:282:3: note: suggested alternative: 'init_registers_x32_avx_linux'
| init_registers_x32_avx512_linux ();
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| init_registers_x32_avx_linux
gobject-introspection: correct the --lib-dirs-envvar patch
The first version introduced a new branch in if-else statement, and so
discarded the actions in the branch taken previously. This seemed
to have no adverse effect for now, but let's do it right.
Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
runtime/cases/ptest.py: fail when ptests fail on target
That's the whole point isn't it? Previously this testcase succeeded
even if some of the underlying on-target tests failed; the only way
to find out if anything was wrong was to manually inspect the logs.
Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
testimage.bbclass: add ptest to the list of runtime tests whenever possible
If no ptest packages are installed in the image, the test does nothing;
if ptest packages are installed in the image, then they should be
run without user having to enable that manually.
Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
runtime/cases/ptest.py: do not require ptest-pkgs in IMAGE_FEATURES; run only when ptest-runner is availalble;
Previously the test would execute only when all available ptests
for packages in the image were installed; some of those tests may
be broken, never finish, take a very long time or simply irrelevant
to the user who wants to check ptests of only a few specific packages,
and does so by listing them explicitly via IMAGE_INSTALL_append or similar.
Presence of ptest-runner means there is at least one ptest package installed
as they pull it in via a class dependency; ptest-runner is not generally
installed otherwise.
Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The original recipe has been provided and improved by:
Ross Burton <ross.burton@intel.com>
Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
Adam C. Foltzer <acfoltzer@galois.com>
Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Linus Svensson <linussn@axis.com>
I have added patches to fix up gtk-doc and
gobject-introspection in cross-compilation environments,
and also change the order of linker arguments to replicate
autotools more closely (and fix linking errors in some corner
cases).
Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Richard Purdie [Wed, 20 Dec 2017 17:09:47 +0000 (17:09 +0000)]
site/common: Allow ac_cv_path_SED to be overridden
There are tools in the wild where we need this to be a full path, even
if that doesn't make sense in most other cases due to libtool issues.
Allow those cases to override the default value as currently its near
impossible to do so.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Zhixiong Chi [Mon, 27 Nov 2017 06:53:59 +0000 (22:53 -0800)]
glibc: malloc: Add missing arena lock in malloc_info
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.
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>
gobject-introspection: do not export LD_LIBRARY_PATH prior to running qemu
Latest g-i upstream adds target paths to this variable which breaks
qemu in various confusing ways.
Instead, the list of target library paths is exported to GIR_EXTRA_LIBS_PATH,
so that it can be picked up automatically by the qemu wrapper script
and given to qemu (manually setting this variable from various recipes
will be removed in a different patch).
Also, re-enable parts of g-i on mips64, as it is the same issue.
Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
kernel-fitimage.bbclass: Fix bad image type replacement for microblaze
When using kernel-fitimage class with microblaze, the image type has to be
linux.bin not zImage. This patch fixes the bad image type replacement
for microblaze
Signed-off-by: Manjukumar Matha <manjukumar.harthikote-matha@xilinx.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Daniel Díaz [Mon, 13 Nov 2017 18:06:25 +0000 (12:06 -0600)]
cross-canadian: update GNU name for ILP32 triplet
As discussed and agreed in Linaro Connect Budapest 2017 [1],
the GNU name for ARM64 with 32-bit ABI has been changed, e.g.,
from:
aarch64_ilp32-linux-gnu
to:
aarch64-linux-gnu_ilp32
The current code has "ilp32" as an OS variant; this change
updates that variant to include the underscore in order to
match the agreed convention.
More information about ARM64 ILP32 can be found here:
* https://wiki.debian.org/Arm64ilp32Port
* https://wiki.linaro.org/Platform/arm64-ilp32