- Move from BuildStarted time to TreeDataPreparationStarted, as we want
bitbake -e to work, so it has to run after ConfigParsed, and we want to see
these errors rather than the highly verbose unbuildable -external recipe
errors which occur when generating the runqueue, so we need to run before
BuildStarted.
- Add 'does gcc exist' sanity test. This also shows an informative warning if
the bindir exists, but the gcc binary doesn't, and EXTERNAL_TARGET_SYS ==
TARGET_SYS, which indicates we failed to find a prefix via
EXTERNAL_TARGET_SYSTEMS.
- Add 'is GCC_VERSION UNKNOWN' sanity test, mentioning the failure of gcc
version extraction, and pointing to the debug messages to see what actually
happened.
JIRA: SB-4850, SB-1029
Signed-off-by: Christopher Larson <kergoth@gmail.com>
While these messages are useful when debugging, the warnings clutter up the
log due to running before our sanity checks, potentially confusing the user.
Signed-off-by: Christopher Larson <kergoth@gmail.com>
We want the path included in the checksums for the -external-cross recipes, as
they wrap the external binaries and hardcode that path, but we don't want it
included in the checksums for anything else, and we don't want rebuilding the
external-cross recipes to cause rebuilds of thing sthat depend upon them.
Signed-off-by: Christopher Larson <kergoth@gmail.com>
We only care about the resulting value of EXTERNAL_TARGET_SYS, not the
components that fed into it.
Signed-off-by: Christopher Larson <kergoth@gmail.com>
This is more a distro/user decision, I think, so move it there. Also this was
insufficient, as just removing `packagegroup-cross-canadian-${MACHINE}` without
adding back in `meta-environment-${MACHINE}` results in an sdk which hangs on
install.
Signed-off-by: Christopher Larson <kergoth@gmail.com>
common-license.bbclass will set LIC_FILES_CHKSUM to a common license file
based on LICENSE, which is appropriate for a case where we have no sources to
refer to.
external-toolchain.bbclass, among other things, handles extraction of files in
the external toolchain sysroot, based on patterns in the FILES variables,
checking alternate locations to better support any arbitrary toolchain, and
has basic mirror handling for checking multiple paths within the sysroots.
Under normal circumstances, I'd want this to use highly granular commits, but
this branch has been extremely long lived (>1yr) and is such an invasive
refactoring that attempting to break it down now would be of limited
usefulness.
Signed-off-by: Christopher Larson <chris_larson@mentor.com>
There's no need for the crosssdk and nativesdk gcc bits to be the same version
as the external toolchain.
JIRA: SB-3919
Signed-off-by: Christopher Larson <chris_larson@mentor.com>
The sourcery toolchain writes temporary files to /tmp, and includes the
username. If multiple users are doing builds with pseudo enabled, it'll try to
write to the other user's file, since both will use 'root', and the build will
fail as a result.
We don't want to wrap all the toolcahin binaries, as they don't all call the
tools which write these lockfiles, and objcopy has to be excluded, as it
modifies installed binaries when the packaging process splits out the debug
info. If that operation occurs outside of pseudo's knowledge, Bad Things will
happen.
JIRA: MEIP-393, SB-1905
Signed-off-by: Christopher Larson <kergoth@gmail.com>
This reverts commit f901bfd098, reversing
changes made to 69d2f98eda.
cs-license & friends don't obey TMPDIR, so this workaround had no useful
effect for our builds.
Basing this check off "arch == x86" is not strictly correct.
This option should be used on any toolchain where it is a valid
option to ensure that the build host libraries are ignored.
Signed-off-by: Drew Moseley <drew_moseley@mentor.com>
Currently, bitbake isn't always using the finalized configuration metadata to
get the value of this variable, so the _append isn't always applied.
JIRA: MEIBPADIT-811
Signed-off-by: Christopher Larson <kergoth@gmail.com>
Work around the bad interaction between cs-license and pseudo by shoving all
the temporary files into a subdir by the user's original logname.
JIRA: SB-1905
Signed-off-by: Christopher Larson <kergoth@gmail.com>
This caused all manner of breakage due to the toolchain writing out files with
wrong ownership, then those files would end up leaking into the rootfs.
JIRA: INTAMDDET-129, SB-2725
This reverts commit 6bd4ec919a.
This ensures that they don't affect our checksums/signatures. These affect the
behavior of the toolchain licensing, not the output.
Signed-off-by: Christopher Larson <kergoth@gmail.com>
This locale doesn't seem to be available in the external toolchain, so make
sure it isn't included in this variable, otherwise locale-base will depend
upon a non-existant package.
JIRA: SB-2602
Signed-off-by: Christopher Larson <kergoth@gmail.com>
The sourcery toolchain writes temporary files to /tmp, and includes the
username. If multiple users are doing builds with pseudo enabled, it'll try to
write to the other user's file, since both will use 'root', and the build will
fail as a result.
Initially, I attempted to alter CC, KERNEL_CC, LD, etc to prepend with 'env
PSEUDO_UNLOAD=1 ', but this isn't ideal, as it seems there are cases where our
vars aren't obeyed. For example, the kernel build runs gcc -E, but it seems it
gets that from the cross-compiler prefix, not from CC, and we aren't passing
anything in for CPP. So, for now, use wrappers to deal with it, to ensure that
absolutely any call to any of the toolchain binaries will unload pseudo.
JIRA: MEIP-393, SB-1905
Signed-off-by: Christopher Larson <kergoth@gmail.com>
Push out our append to TUNE_CCARGS to the end of the parse with _append, so it
shouldn't be affected by the e500v2 :=, and manually apply its gcc ice fix.
Signed-off-by: Christopher Larson <chris_larson@mentor.com>
This means we won't be able to build meta-toolchain with an external
toolchain, but it does mean we don't screw up buildtools-tarball. If we need
a functional meta-toolchain in the future, we can resurrect a superior
implementation of this.
Signed-off-by: Christopher Larson <chris_larson@mentor.com>
Internal toolchains generally don't see these, as they build that toolchain
with the default behavior they expect, so it's appropriate to include these
fixes with the external toolchain configuration, for now.
Signed-off-by: Christopher Larson <chris_larson@mentor.com>
Now that KERNEL_LD uses ld.bfd, we need to ensure that it exists when using an
external toolchain.
Signed-off-by: Christopher Larson <chris_larson@mentor.com>
* mel/master:
external-sourcery-toolchain: kill more bits we don't want in eglibc-utils
Work around upstream FILESDIR/FILESPATH changes
external-sourcery-toolchain: fix dev vs staticdev packaging issue
external-sourcery-toolchain: kill oprofile bits
external-sourcery-toolchain: silence GNU_HASH warning for libquadmath
tcmode: prefer a matching gcc version for target recipes
external-sourcery-toolchain: add libquadmath packages
external-sourcery-toolchain: kill ${exec_prefix}/lib/locale in do_install_locale
external-sourcery-toolchain: also package ${prefix}/libexec
external-sourcery-toolchain: forgot to rstrip the trailing newline
Conflicts:
recipes/meta/external-sourcery-toolchain.bb
Signed-off-by: Christopher Larson <chris_larson@mentor.com>