The symlink being generated needs to match both the current arch (e.g. mips
or mips64) but also use the underlying TARGET_SYS without multilib extensions
to TARGET_VENDOR or extensions to TARGET_OS.
The way multilib changes TARGET_VENDOR meant this code did not have
a way of removing that change. The method of removing some TARGET_OS
suffixes was also not working.
By using immediate expansion to run this code, we can run before the
multilib code changes it and get the original values.
We then use the *current* TARGET_ARCH value in case this does get changed
by the multilib since we need to point at the right compiler (32 bit one
for 32 bit code).
(From OE-Core rev: 89cd6c244b6bc0a8cb52ec84d378d5b305df030f)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Without the fakeroot flag the two tasks may create files or
symbolic links that end up being owned by the user and not
root:root as expected.
(From OE-Core rev: 7e9fd9d34a540fdfc1243d059d1f13f1d09864d2)
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>
The current implementation of shared work for gcc is at best confusing. It relies
on the fetch/unpack/patch tasks having exactly the same stamps and if this gets
broken for some reason, its hard to figure out what the problem is. It also
leads to complex code in bitbake.
The benefits of shared work for gcc are clear but a better approach is needed. This
patch adjusts things so that a single new recipe (gcc-source) provides the
fetch/unpack/patch/preconfigure tasks, the rest of gcc simply depends on these tasks
and have no fetch/unpack/patch tasks of their own.
This means we should get the significant benefits (disk usage/performance) of the
single source tree but in a way which has less potential for problems and is
easier for people to understand. The cost is an extra recipe/some inc files
which is probably a good tradeoff.
(From OE-Core rev: ceaa0a448dc5ebddb4f7fb94fb8a503a1c0248c3)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This allows them to co-exist together in the native sysroot, with one
set of cross tools per target architecture.
(From OE-Core rev: a2c5509520d5c3e082f55844e6545d0309565f8f)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Rather than building the whole of libgcc to obtain the unwind.h header
file, simply configure it and then install the file. This avoids copying
chunks of data around when we don't need to and building the same thing
twice.
After doing this we need to make sure the target build directory exists
in the libgcc case since it will no longer be created automatically.
(From OE-Core rev: 459e4dc25462771038459567c22e87d4cd38b117)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Prepare the ground for the creation of libgcc-initial by splitting common
libgcc code into a libgcc-common.inc file.
(From OE-Core rev: 7c9f4a22d5c14d768be872beb9fc798163d6d204)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>