nativesdk-cmake: Adjust toolchain paths dynamically

This patch adds a flexible way to configure the CMake in SDKs. It adds
a toolchain configuration script which supports subscripts for
extensions, as for example Qt5.

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
gcc: poison default sysroot path

Various pieces of the code assume that the --sysroot option gets passed
into the compiler tools. By having a "sane" default, we don't always
spot when this occurs and this can later show up as breakage in sstate,
or in usage of the external toolchain.

We've long since talked about poisoning the default such that it will
break unless the correct option is specified. This patch does just that.

If this patch causes something to fail to build, it most likely means
the various compiler flags and commands are not correctly being passed
through to the underlying piece of software and that there is a real
problem that needs fixing, its not the fault of this patch.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
rm_work: Speed up rootfs/populate_sdk removal

Commands like bitbake X -c rootfs or bitbake X -c populate_sdk do not
trigger rm_work to clean up the directories afterwards since it
traditionally hooks onto do_build. This change means those two tasks now
clean up after themselves. We use the cleandirs function attribute to
handle this.

[YOCTO #6413]

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
autotools: Use make clean for builds not supporting B != S

If the build doesn't support B != S, we can try running "make clean" instead
to try and clean up previous objects if the hash for the task has changed.

This tries to ensure that when variables like ${baselib} change, the changes are
correctly accounted for.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
base.bbclass: Enable using 'make clean' for rebuilds

When something rebuilds say due to ${baselib} changing or some
other key variable, software is often not rebuilt due to the
fact that make detects no dependency change.

By running "make clean" when these changes occur, we can at least try
and ensure the correct rebuilds happen. We use the same checksum check as
autotools to decide if things have changed or not.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
cmake: Try and improve cleaning of builds when B==S

Currently if B==S for a cmake recipe, the build will not reconfigure. This patch adds
code to remove the generated cmake files, meaning cmake will then be forced to regenerate
them. This forces cmake to see configuration changes it may not otherwise see.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
wpa_supplicant: Improve rebuild handling

Due to the split level nature of the wpa_suppliant sources, the standard
clean methods don't work. This change ensures it picks up on changes to
configuration.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
gnu-config: Deal with "make clean" breakage

gnu-config can't cope with a "make clean" so disable that
newly enabled functionality.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
hicolor-icon-theme: Deal with "make clean" breakage

hicolor-icon-theme can't cope with a "make clean" so disable that
newly enabled functionality.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
glibc: Delete ldconfig when USE_LDCONFIG is not set

This avoids below QA error/warning
/sbin/ldconfig [installed-vs-shipped]

Change-Id: I028b692eefeaa6e0e0e6507ab4108caa29e41e91
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
mklibs: Fix loader for mipsel

Additionally treat ld.so to be searched in sysroot

Change-Id: I8b4acb821d9855a1163c7149bc8e369c7c438856
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
multilib.conf: set MULTILIB_GLOBAL_VARIANTS conditionally

It is not entirely obvious that all reasonable configurations
will have multilib.conf strictly before the file which might
want to set MULTILIB_GLOBAL_VARIANTS. The x86-ish values here
look like reasonable default guesses, but shouldn't override
an explicit setting.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
image.py: Fix error in graph sorting

The graph sorting algorithm for image dependencies does a look for an
occurrence of a searched string instead of comparing the chunk to the
searched string. This leads to the problem that ubifs is recognized as ubi aswell.

This fixes this by splitting up the string into chunks.

Signed-off-by: Pascal Bach <pascal.bach@siemens.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>