Commit Graph

628 Commits

Author SHA1 Message Date
Richard Purdie
2fc81e048f sdk: Decouple default install path from built in path
Add SDKPATHINSTALL which is used as the default install location of the SDK
instead of SDKPATH. This means the default install path isn't encoded into
every SDK binary, meaning if a date is used there the entire SDK doesn't
have to rebuild. Most distros can switch to only customise SDKPATHINSTALL
meaning more sstate reuse too.

[YOCTO #14100]

(From OE-Core rev: 1b4309ee196c45661ddb79d8529517a8777a8d53)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit bc4ee5453560dcefc4a4ecc5657df5cc1666e153)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-09-09 10:19:42 +01:00
Oleksandr Kravchuk
3c6647427f bitbake.conf: change GNOME_MIRROR to new one
URI has been permanently moved and returns HTTP 301.

(From OE-Core rev: 03660a42836d650a6d4f9d4c255c764925cbea22)

Signed-off-by: Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit a3a85d54af38a30f6de5f6d23e432afa26859888)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-08-06 09:59:14 +01:00
Joshua Watt
4718aa32fa bitbake.conf: Limit the number of OpenMP threads
Limits the number of OpenMP threads to match BB_NUMBER_THREADS. This
prevents OpenMP (libgomp in particular) from falling back to using all
the available CPUs, which behaves poorly when attempting to limit build
usage, especially when attempting to build in a container.

(From OE-Core rev: fd2b8986aef11609123da917aaf6bcbe41f63112)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-05 15:29:02 +01:00
Ross Burton
a740ac1c07 bitbake.conf: ensure BUILD_* tools match target tools
Add a few more tools to the BUILD_* list, to match the target tool list.

(From OE-Core rev: 633393830aea0120c4a2a165917040223630c49d)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-03-28 22:28:27 +01:00
Robert P. J. Day
946007fd4c bitbake.conf: correct description of HOSTTOOLS_DIR
HOSTTOOLS_DIR contains symlinks to host tools, not copies

(From OE-Core rev: fb7692da7faa49b370680decbbaceaeb85b6889d)

Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-03-28 22:28:26 +01:00
Richard Purdie
3cd3e95aee bitbake.conf: Split PSEUDO_IGNORE_PATHS to be more readable
We've had a lot of concern about the readability of diffs of this
path setting, refactor to avoid long line length.

(From OE-Core rev: f3930cba16ccbc4b76ed14187d5586d6479bc59e)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-02-27 22:40:41 +00:00
Tomasz Dziendzielski
4d16e59a52 bitbake.conf: Introduce FAKEROOTLOGS variable used by bitbake to print pseudo.log
Bitbake depends on this variable while looking for pseudo.log file in
case of fakeroot task failure.

(From OE-Core rev: e8e9e5f62b144828387e20eec2e66fcd61edd0d3)

Signed-off-by: Tomasz Dziendzielski <tomasz.dziendzielski@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-02-24 00:19:38 +00:00
Khem Raj
74c6f625c6 bitbake.conf: Do not use lib64 for baselib on musl/ppc64
musl is configured to use /lib and /usr/lib for ppc64 unlike glibc where
it is expected to have libs in /lib64 and /usr/lib64

(From OE-Core rev: 998d15a86282d9cf57fbd0a4eb76a56b9938a348)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-02-23 22:35:01 +00:00
Richard Purdie
c4ecf7c112 bitbake.conf: Set as default task umask of 022
Rather than trying to set the umask of every task to the correct
value for determinism, set one value globally. This uses a new
bitbake variable so bump the minimum version to match.

This fixes strange determinism issues in at least quilt-ptest,
valgrind-ptest and kernel-devsrc.

(From OE-Core rev: b07b7deeae3d519d9998d583592f3e4f8f2802b3)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-02-16 11:28:16 +00:00
Richard Purdie
cff7db890c bitbake.conf/python: Drop setting RDEPENDS/RPROVIDES default
We never recommend setting RDEPENDS or RPROVIDES without a package name
against them. The default in bitbake.conf is legacy only, drop it.

The python recipe was trying to add to the empty variable in the native case
fix that too.

(From OE-Core rev: b8bbc1bbe282cce2ea4d0ff293f931f6caf6153b)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-01-29 21:21:53 +00:00
Robert Yang
220a5fcb99 Revert "ccache.bbclass: use ccache from host distribution"
This reverts commit f5b29367af4d8e5daea5771264774aa49519f9a8.

Will use ccache-native which is more reliable.

(From OE-Core rev: 1b659623430e1a6e6dd266e65bab7ca8155a7138)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-01-20 00:45:05 +00:00
Richard Purdie
c5f7310d6f bitbake.conf: Add /run/ to PSEUDO_IGNORE_PATHS
Builds were failing on WSL2 which turns out to be due to accesses to
/run/ on those systems. Add this to PSEUDO_IGNORE_PATHS to fix
builds on WSL2.

[YOCTO #14175]

(From OE-Core rev: 1d1bf51217e8b4d54af28739d3271484ee5a7974)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-01-08 10:10:15 +00:00
Richard Purdie
5aa004f101 bitbake.conf: Add mkfifo to HOSTTOOLS
This is about to be needed by the psplash recipe and is a standard part
of coreutils so usually present on hosts.

(From OE-Core rev: 99206612a58e6b69718910e0806d9d36997b2fba)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-01-05 13:48:41 +00:00
Alexander Kanavin
95c76b9bd4 ccache.bbclass: use ccache from host distribution
ccache 4.x has hard dependencies on cmake-native (used as
build system) and zstd, which means inserting ccache-native
as DEPENDS into everything creates circular dependencies which
are impossible to break.

ccache 3.x did not have this problem as it used plain makefiles
and an in-tree copy of zlib.

(From OE-Core rev: f5b29367af4d8e5daea5771264774aa49519f9a8)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-12-31 11:53:26 +00:00
Ross Burton
c74ec1dd73 bitbake.conf: default SDKMACHINE to the build host architecture
Currently there's a limitation that Extensible SDKs can only be build on a
machine with the same architecture as the SDK.

However, SDKMACHINE defaults to x86-64, which means eSDKs cannot be built
out of the box on arm64 systems.

By defaulting SDKMACHINE to ${BUILD_ARCH} we generate SDKs for the build
host, so they'll always work out of the box.

(From OE-Core rev: 539cd4a5fbb9e4507d90bfb1165fcb06907b46d8)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-12-24 08:25:14 +00:00
Paul Barker
f50b230c27 bitbake.conf: Prevent pyc file generation in pseudo context
This also effectively reverts commit b6d30c21b0:
    bitbake.conf: Extend PSEUDO_IGNORE_PATHS to ${COREBASE}/meta

The contents of ${COREBASE}/meta were ignored as pyc files could be
generated for the contents of the lib subdirectory if python modules
were imported within a pseudo context. However this doesn't protect us
from pyc files being generated in the lib directories for other layers.
It's far better to tell python not to produce pyc files when running
under pseudo (by setting the PYTHONDONTWRITEBYTECODE variable) as this
will cover any location where pyc files could possibly be created. This
variable is set in FAKEROOTBASEENV so that it applies to the
bitbake-worker instance for fakeroot tasks, preventing pyc files from
being generated for imports in python tasks themselves.

Also add a test case to ensure that pyc files are not created in tasks
which are executed under pseudo.

(From OE-Core rev: 73d538f20743017a44cea4c20dbe09a0327cfc71)

Signed-off-by: Paul Barker <pbarker@konsulko.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-12-20 00:03:04 +00:00
Peter Kjellerstedt
fcfda37195 bitbake.conf: Canonicalize paths in PSEUDO_IGNORE_PATHS
Use oe.path.canonicalize() to canonicalize the paths in
PSEUDO_IGNORE_PATHS before passing them to pseudo. This is needed since
pseudo will compare them to paths that are canonicalized.

(From OE-Core rev: 1f2a497daa09cf3459e27ad6e0e8513938b52c79)

Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-12-20 00:03:04 +00:00
Richard Purdie
e3f1ea76b0 Revert "bitbake.conf: Add all layers (from BBLAYERS) to PSEUDO_IGNORE_PATHS"
This reverts commit cc30537bb4d0815c4d69f0b1a1a8a200085902d5.

There are issues with this change where the build directory may be included
within the paths included in BBLAYERS, which is particularly problematic
where people are using kas.

An alternative to this to handle the pyc file issue is being worked on but
revert this for now whilst that fix is developed.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-12-09 12:27:25 +00:00
Peter Kjellerstedt
817594a153 bitbake.conf: Add all layers (from BBLAYERS) to PSEUDO_IGNORE_PATHS
Instead of ignoring ${COREBASE}/meta in PSEUDO_IGNORE_PATHS (which may
or may not ignore all layers depending on how they are named and placed
under ${COREBASE}), ignore all layers.

(From OE-Core rev: cc30537bb4d0815c4d69f0b1a1a8a200085902d5)

Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-12-03 22:53:09 +00:00
Mingli Yu
cb4ddd78e0 bitbake.conf: Exclude ${CCACHE_DIR} from pseudo database
When ccache enabled as below:
INHERIT += "ccache"
CCACHE_DIR = "/path/build/ccache"

There comes do_install failure for some recipes randomly, take
linux-libc-headerswhen as example.
 $ cat /path/build/tmp/work/corei7-64-wrs-linux/linux-libc-headers/5.8-r0/pseudo/pseudo.log
 [snip]
 path mismatch [1 link]: ino 243004209 db '/path/build/ccache/6/stats' req '/path/build/ccache/7/stats.lock'.
 [snip]

Exclude ${CCACHE_DIR} from pseudo database to fix the potential
do_install failure.

(From OE-Core rev: b65e5280bf9e7f1f9c8e6acabab79bcf209e5342)

Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-10-30 13:04:39 +00:00
Richard Purdie
b6d30c21b0 bitbake.conf: Extend PSEUDO_IGNORE_PATHS to ${COREBASE}/meta
Unfortunately, .pyc files can be generated in meta/lib/oe which corrupt the pseudo
database so we need to extend the ignore list to cover this as well.

(From OE-Core rev: e0cb6dd689a362d8433caa14cc5a9fdd5eb44923)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-10-08 08:08:32 +01:00
Richard Purdie
a2db4fa127 base/bitbake.conf: Enable pseudo path filtering
This is a pretty big change to the way pseudo operates when used in OpenEmbedded.
Normally, pseudo monitors and logs (adds to its database) any file created or
modified whilst in a fakeroot environment. There are large numbers of files
we simply don't care about the permissions of whilst in that fakeroot context,
for example ${S}, ${B}, ${T}, ${SSTATE_DIR}, the central sstate control
directories,

This change uses new functionality in pseudo to ignore these directory trees,
resulting in a cleaner database with less chance of "stray" mismatches if files
are modified outside pseudo context. It also should reduce some overhead from
pseudo as the interprocess round trip to the server is avoided.

There is a possible complication where some existing recipe may break, for
example, we found a recipe which was writing to "${B}/install" for
"make install" in do_install and since we listed ${B} as not to be tracked,
there were errors trying to chown root for files in this location.

This patch fixes a few corner cases in OE-Core when used with this new
ignore list:

* The archiver directory matched a "${WORKDIR}/deploy*" pattern so was renamed
  to something else since that directory does need its root permissions
* The ${S} and ${B} ignoring is conditional on them being different to ${WORKDIR}
* package_write_* task output (the debs/rpms/ipks) are now owned by the build
  user so we don't want the file ownership information in the hashequiv outhash
  calculation even if they are built under pseudo.
* The fontcache postinstall intercept is run under qemu outside of pseudo context
  so delete files it may delete up front where pseudo can see this.
* SSTATE_DIR is in PSEUDO_PATHS_IGNORE, which is in FAKEROOTENV which is cached
  by bitbake. We therefore need to trigger reparsing if this changes, which means
  SSTATE_DIR can be in BB_HASHBASE_WHITELIST but not BB_HASHCONFIG_WHITELIST.
  Rework the variables to handle this. This otherwise breaks some of our sstate
  tests in oe-selftest.
* Ignore the temp directory wic uses for rebuilding rootfs.

(From OE-Core rev: ad8f5532ffaead9a5ad13e1034fe9e5e1b7979f4)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-10-07 11:18:38 +01:00
Chris Laplante
538019a320 bitbake.conf: add name of multiconfig to BUILDCFG_HEADER when multiconfig is active
(From OE-Core rev: 96694d3bc16acfb88206e2d1b9e884ab5887c44d)

Signed-off-by: Chris Laplante <chris.laplante@agilent.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-30 15:01:51 +01:00
Martin Jansa
a32ddf91bc bitbake.conf: use ${TCMODE}-${TCLIBC} directory for CACHE
* move TCMODE and TCLIBC from defaultsetup.conf to bitbake.conf
* set CACHE as it was in defaultsetup.conf and drop it from defaultsetup.conf
* most if not all DISTROs are now including defaultsetup.conf and
  TCLIBC is pretty much expected to be always set correctly, e.g.:
  meta/recipes-core/systemd/systemd_243.2.bb:    if d.getVar('TCLIBC') == "musl":
  meta/recipes-devtools/gcc/gcc-runtime.inc:        if [ "${TCLIBC}" != "glibc" ]; then
  meta/recipes-devtools/gcc/libgcc.inc:     if [ "${TCLIBC}" != "glibc" ]; then
  meta/recipes-devtools/icecc-toolchain/nativesdk-icecc-toolchain_0.1.bb:ENV_NAME="${DISTRO}-${TCLIBC}-${SDK_ARCH}-@TARGET_PREFIX@${DISTRO_VERSION}.tar.gz"
  meta/recipes-devtools/valgrind/valgrind_3.15.0.bb:RRECOMMENDS_${PN} += "${TCLIBC}-dbg"
  meta/recipes-kernel/linux/kernel-devsrc.bb:RDEPENDS_${PN} = "bc python3 flex bison ${TCLIBC}-utils"

  meta/classes/buildhistory.bbclass:BUILDHISTORY_DIR_IMAGE = "${BUILDHISTORY_DIR}/images/${MACHINE_ARCH}/${TCLIBC}/${IMAGE_BASENAME}"
  meta/classes/cross-canadian.bbclass:    if d.getVar("TCLIBC") in [ 'baremetal', 'newlib' ]:
  meta/classes/kernel.bbclass:    tclibc = d.getVar('TCLIBC')
  meta/classes/toaster.bbclass:    BUILDHISTORY_DIR_IMAGE_BASE = e.data.expand("%s/images/${MACHINE_ARCH}/${TCLIBC}/"% BUILDHISTORY_DIR)

(From OE-Core rev: 57aa60ef6422568b425b6ccc4451567efc578469)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-17 09:47:46 +01:00
Martin Jansa
43f1cf2d3d image-artifact-names: introduce new bbclass and move some variables into it
* similar to kernel-artifact-names for other recipes/bbclasses which
  need to use some deployed artifacts

* bitbake.conf: move IMAGE_BASENAME, IMAGE_VERSION_SUFFIX, IMAGE_NAME,
  IMAGE_LINK_NAME variables

* image_types.bbclass: move IMAGE_NAME_SUFFIX variable

* currently IMAGE_NAME_SUFFIX is used only by image.bbclass,
  image_types.bbclass and meta/recipes-core/images/build-appliance-image_15.0.0.bb
  but if it's needed by some recipe which isn't itself an image, then
  it's useful in bitbake.conf, e.g. we have a recipe for creating
  VirtualBox appliances which combines .wic.vmdk with .ovf file to
  create .zip with appliance, but for that we need the filename of
  .wic.vmdk which now contains IMAGE_NAME_SUFFIX
  4980ce52a4/meta-luneos/recipes-core/images/luneos-emulator-appliance.inc (L24)

* we were hardcoding .rootfs suffix where needed, but for quite long
  time it's configurable with IMAGE_NAME_SUFFIX since:

  commit 380ee36811939d947024bf78de907e3c071b834f
  Author: Patrick Ohly <patrick.ohly@intel.com>
  Date:   Mon Mar 7 18:07:52 2016 +0100

    image creation: allow overriding .rootfs suffix

  and might not match with hardcoded .rootfs, so make it easier to
  use IMAGE_NAME_SUFFIX where needed even without inheritting whole
  image_types.bbclass

[YOCTO #12937]

(From OE-Core rev: 456b700d51a5052a285a8477304f902c335223be)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-17 09:47:45 +01:00
Mark Hatle
39c1accf90 package.bbclass: hash equivalency and pr service
When the PR service is enabled a number of small changes may happen
to variables.  In the do_package step a call to package_get_auto_pr
will end up setting PRAUTO and modifying PKGV (if AUTOINC is there).

PRAUTO is then used by EXTENDPRAUTO, which is then used to generate
PKGR.

Since this behavior typically happens BEFORE the BB_UNIHASH is
calculated for do_package, we need a way to defer the expansion
until after we have the unihash value.

Writing out the pkgdata files w/o AUTOPR and PKGV (AUTOINC) expanded
to placeholder values is the easiest way to deal with this.  All other
variables are expanded as expected.

In the next task, typically do_packagedata, we will then use the
UNIHASH from the do_package to get the PR (AUTOPR) as well as
generate the AUTOINC replacement value (now PRSERV_PV_AUTOINC).

The do_packagedata then translates the placeholders to the final values
when copying the data from pkgdata to pkgdata-pdata-input.

Also update the prservice test case.  With unihash, just changing the
do_package (via a _append) will not change the PR.  So write the date
to a specific file that is incorporated into the unihash to ensure it
is always different for the test.  Various assert messages were also
updated to make it easier to figure out where/why a problem occured.

(From OE-Core rev: 2e32f37b0e4abc438c8f60e673cd18a5cc110768)

Signed-off-by: Mark Hatle <mark.hatle@kernel.crashing.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-03 09:44:30 +01:00
Konrad Weihmann
d743f37941 bitbake.conf: fix whitespace issues
(From OE-Core rev: a58672fdf7e3b26b57ec31b9ba4f1eaaa7f5a53c)

Signed-off-by: Konrad Weihmann <kweihmann@outlook.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-08 10:37:12 +01:00
Jacob Kroon
59459ac936 bitbake.conf: Remove TERM from default BB_HASHBASE_WHITELIST
Since BitBake commit 0d5cdd0c0d65f2f81c3af0f3767fee86c4142c3a
TERM is no longer preserved in the environment by BitBake, so there
should be no need to whitelist it by default.

(From OE-Core rev: 72c4222b095a49d5ba8252abbae5025196519cd5)

Signed-off-by: Jacob Kroon <jacob.kroon@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-17 16:31:52 +01:00
Richard Purdie
d84136cb82 Revert "bitbake.conf: Remove unused DEPLOY_DIR_TOOLS variable"
This reverts commit b1f15f651461d07a8cfbd3bdcfea0e89f195212d.

The variable is used by multiple other layers and users are requesting
it be added back.

(From OE-Core rev: 49d0f822618890b61d2498b07dda6418f885321e)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-12 08:25:05 +01:00
Robert P. J. Day
791c496bed bitbake.conf: Remove unused DEPLOY_DIR_TOOLS variable
Variable DEPLOY_DIR_TOOLS was introduced in 2007:

  commit f751a20152
  Author: Richard Purdie <richard@openedhand.com>
  Date:   Wed Aug 8 21:02:39 2007 +0000

      bitbake.conf: Sync with OE.dev

apparently never used so get rid of it.

(From OE-Core rev: b1f15f651461d07a8cfbd3bdcfea0e89f195212d)

Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-05-30 12:32:48 +01:00
Alexander Kanavin
2e29151a3a bitbake.conf: propagate 'opengl' DISTRO_FEATURE to native/nativesdk from target
This will allow better control over native virgl/qemu configurations.

Adjust gtk+3/cairo native configurations to actually ignore opengl
when building for -native: we do not need it, and it would cause build
failures as only a limited subset of mesa-native is currently built.

Drop native/nativesdk overrides from virglrenderer/libepoxy recipes
as opengl feature is now correctly set for those variants.

(From OE-Core rev: 0e1f8fa0535dab63742f575b52ec9fa891368ca2)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-05-27 11:04:47 +01:00
Joshua Watt
ee763935e9 bitbake.conf: Prevent git from detecting parent repo in recipe
Prevents git commands run in a recipe from moving up past ${WORKDIR}
when searching for a .git directory, and thus prevents them from
detecting the parent OE-core .git directory. Fixes several
reproducibility issues where recipes would use the OE-core version as
the recipe version due to git walking up the tree.

(From OE-Core rev: e496605ea197414b58025293e73dec099a8976c6)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-05-09 18:57:21 +01:00
André Draszik
dec4e3f813 bitbake.conf: omit XZ threads and RAM from sstate signatures
The number of threads used, and the amount of memory allowed
to be used, should not affect sstate signatures, as they
don't affect the outcome of the compression if xz operates
in multi-threaded mode [1].

Otherwise, it becomes impossible to re-use sstate from
automated builders on developer's machines (as the former
might execute bitbake with certain constraints different
compared to developer's machines).

This is in particular a problem with the opkg package writing
backend, as the OPKGBUILDCMD depends on XZ_DEFAULTS. Without
the vardepexclude, there is no re-use possible of the
package_write_ipk sstate.

Whitelist the maximum number of threads and the memory limit
given assumptions outlined in [2] below.

(From OE-Core rev: 7927d5f6eaab48578b23db9a4c38e2f87f011353)

Signed-off-by: André Draszik <git@andred.net>

[1] When starting out in multi-threaded mode, the output is always
deterministic, as even if xz scales down to single-threaded later,
the archives are still split into blocks and size information is
still added, thus keeping them compatible with multi-threaded mode.
Also, when starting out in multi-threaded mode, xz never scales
down the compression level to accomodate memory usage restrictions,
it just scales down the number of threads and errors out if it
can not accomodate the memory limit.

[2] Assumptions
* We only support multi-threaded mode (threads >= 2), builds
  should not try to use xz in single-threaded mode
* The thread limit should be set via XZ_THREADS, not via
  modifying XZ_DEFAULTS or XZ_OPTS, or any other way
* The thread limit should not be set to xz's magic value
  zero (0), as that will lead to single-threaded mode on
  single-core systems.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-03-06 08:19:18 +00:00
André Draszik
e16134e3bb bitbake.conf: more deterministic xz compression (threads)
xz archives can be non-deterministic / non-reproducible:
    a) archives are created differently in single- vs
       multi-threaded modes
    b) xz will scale down the compression level so as to
       be try to work within any memory limit given to
       it when operating in single-threaded mode

This means that due to bitbake's default of using as many
threads as there are cores in the system, files compressed
with xz will be different if built on a multi-core system
compared to single-core systems. They will also potentially
be different if built on single-core systems with different
amounts of physical memory, due to bitbake's default of
limiting xz's memory consumption.

Force multi-threaded operation by default, even on single-core
systems, so as to ensure archives are created in the same
way in all cases.

(From OE-Core rev: d96aa8594c8d7531da34645cadbac4f7549d8ae6)

Signed-off-by: André Draszik <git@andred.net>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-03-06 08:19:18 +00:00
Bartosz Golaszewski
aff2e8531f hosttools: add utilities for all supported checksums
Only md5sum and sha256sum are currently provided by HOSTTOOLS. Trying
to use any other checksum conversion will result in a build failure.
Fix it by adding other supported checksum utilities to HOSTTOOLS.

(From OE-Core rev: 78155e5fcff9362049b576d20e31c3519c48485b)

Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-02-28 23:11:28 +00:00
Mark Hatle
38a754214a package.bbclass: Support stripping and debug copy of static libraries
By default, we won't copy and strip static libraries.  However, this
functionality can be useful in some cases where people are doing
development on the target, and don't generally want the larger debug
capable static libraries.  To enable the new functionality set:

    PACKAGE_DEBUG_STATIC_SPLIT = '1'

Add a new function splitstaticdebuginfo.  Thus function will copy the
unmodified static library into the specific debug directory location.
By keeping an unmodified version, it is possible for a user trying
to debug something to use -L /usr/lib/.debug-static and their existing
build commands to switch from stripped to full debug versions.

The PACKAGE_DEBUG_SPLIT_STYLE will select between two different
approaches, /usr/lib/debug-static or <path>/.debug-static.

Additionally you can now choose to strip static libraries to conserve
space.  If either 'PACKAGE_DEBUG_STATIC_SPLIT' or 'PACKAGE_STRIP_STATIC'
is set to 1, the static library will be stripped.  (This is not on by
default, as it could make diagnosing static library usage difficult in
some cases.)

Add to insane.bbclass a skip to the staticdev warning for the specific
-dbg package versions.

(From OE-Core rev: 17fa66c8199d73f0b59b2b3e609075933bf1e74b)

Signed-off-by: Mark Hatle <mark.hatle@kernel.crashing.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-02-08 13:20:02 +00:00
Richard Purdie
a264dc462c bitbake.conf/sanity: Drop makeinfo as being required on buildhost
This is a long standing 'odd' dependency which we've meant to
resolve. We shouldn't need it and it introduces reproducability issues.

We already have texinfo-dummy-native and texinfo-native which can
provide it but the work to remove the hosttool was never completed.

After cleaning up texinfo.bbclass, this can now be removed with
minimal impact on build time.

[YOCTO #13753]

(From OE-Core rev: 0c58c479af151969dfb84d8763696da657f7248d)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-02-03 00:10:11 +00:00
Alexander Kanavin
5249a8a3d5 bitbake.conf: drop pod2man from hosttools
pod2man writes the current date into manpages, and while later
versions of it respect SOURCE_DATE_EPOCH and use that instead,
earlier versions do not. This was found to cause reproducibility
issues.

This patch replaces host version of pod2man with one from
perl-native.

[YOCTO #13755]

(From OE-Core rev: deda455b3c1829003a4cc14520f30e616be93dfb)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-02-03 00:10:11 +00:00
Khem Raj
7a9bb69f08 riscv32: Bump oldest kernel to 5.4
rv32 port has bumped its minimum kernel requirement to 5.4
as the userspace ABI is still in flux until glibc port is not
upstreamed.

(From OE-Core rev: 1a7287369e554159914cd9a40c2e023c167fd82a)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-01-27 16:48:09 +00:00
Khem Raj
97b5b17cb1 qemu: Enable ppc64le support for qemu-usermode
glibc defines minimum kernel needed to be 3.10.0 for LE ppc64

(From OE-Core rev: c1c296a42920af6725706bdea8e61b8c4f5f14a8)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-01-22 15:56:14 +00:00
Khem Raj
bf2b73e1f3 classes, conf, lib: Add support for powerpc64le
LE is default for modern powerpc64, power8+

PowerPC64 Little Endian Linux ABI specifies Power8 as the minimum ISA.
The basic ABI can run on earlier versions of the 64 bit PowerPC ISA,
but it was helpful to define a new, minimum instruction set for Linux
distribution releases during the switch to Little Endian.

(From OE-Core rev: b9c73fb6d1afb3367d871a3d6bf7d0d6a53968a9)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-01-19 23:49:39 +00:00
Khem Raj
45e8f1351a mips: Enable gnu-hash-style on glibc
latest glibc 2.31 [1] and binutils [2] has finally added the needed support for
gnu hash-style, which brings mips into same fold as other architectures

Fix check for MIPS specific section for gnu hash information

[1] https://sourceware.org/ml/libc-alpha/2019-06/msg00456.html
[2] https://sourceware.org/ml/binutils/2019-07/msg00098.html

(From OE-Core rev: 9ff90bf04a4c422feaea25180155e4954648f68c)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-01-19 13:24:38 +00:00
Richard Purdie
46b629426b bitbake.conf: Simplify TARGET_SYS/SDK_SYS
As pointed out by Masahiro Yamada <masahiroy@kernel.org>, ('' or 'custom')
equates to "custom" and this code seems unecesaarily complicated and unused.

It was likely intended to supress the value if XXX_OS was set to '' but the
code doesn't actually do that. Simplify it as we shouldn't have this indirection
if we don't need it, its horrible.

(From OE-Core rev: 66e4c638b942c9832da9e1d578aa03eeafae28db)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-01-01 10:46:16 +00:00
Chris Laplante via Openembedded-core
d18a8fbd21 bitbake.conf: add number_threads to BB_SIGNATURE_EXCLUDE_FLAGS
Just as BB_NUMBER_THREADS is in BB_HASHCONFIG_WHITELIST.

(From OE-Core rev: cc67c559a272415f511072ca1eeab96efc5a3885)

Signed-off-by: Chris Laplante <chris.laplante@agilent.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-12-28 23:25:41 +00:00
Alexander Kanavin
2b2be8086e hosttools: no longer check for or provide host python 2 to builds
(From OE-Core rev: 5f8f16b17f66966ae91aeabc23e97de5ecd17447)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-12-09 10:21:51 +00:00
Joshua Watt
34923e4f77 Remove SSTATE_HASHEQUIV_SERVER
Removes all references to the SSTATE_HASHEQUIV_SERVER variable. This
variable is redundant now that BB_HASHSERVE is present.

(From OE-Core rev: 54b3adb6bc90a8e4b9e92952688772ee074d36e5)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-18 17:52:01 +01:00
Andre McCurdy
b259bd31eb bitbake.conf: drop FETCHCMD, GITDIR, etc fetcher over-rides
This completes cleanup originally proposed in 2012:

  http://lists.openembedded.org/pipermail/openembedded-core/2012-July/064224.html

Current versions of bitbake have "sane" default fetcher commands
so it's no longer necessary for bitbake.conf to over-ride them.

(From OE-Core rev: 4ff058226cfc3e7d5bf9a873d1de4475f65ef2f2)

Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-28 11:31:21 +01:00
Oleksandr Kravchuk
0e46416430 bitbake.conf: fix XORG_MIRROR URL
(From OE-Core rev: d69f67f5d8b90d7846425f0569e5c121e3bdd062)

Signed-off-by: Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-21 21:52:59 +01:00
Richard Purdie
8d7f663136 sstatesig: Update to handle BB_HASHSERVE
Update the code to handle BB_HASHSERV, an autostarted bitbake internal hash
equivalency server suited to local developer usage.

(From OE-Core rev: 9b3d7b0b0ff27281391c2b8f2511d312d6995ed6)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-06 11:24:26 +01:00
Adrian Bunk
a9bbda96eb meta: Remove remnants of bluez4 support
bluez4 was removed from meta-oe 2 years ago.

Simplfy the setup of the two level bluetooth and bluez4/bluez5
distro features by removing the bluez4/bluez5 distro features.

This also removes the no longer required bluetooth class.

(From OE-Core rev: dcf889e93401f7c4de0055d53271eacc3882eccc)

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-15 09:29:59 +01:00