cross-canadian/libgcc-common: Fixes for arm multilib
Arm is unusual in that we force it to "linux-gnueabi" and "linux" doesn't build. This was causing problems for multilib configurations which were assuming "linux" was the default compiler rather than linux-gnueabi. This change does two things, ensures symlinks are generated for linux-gnueabi and also adapts the libgcc code to account for the difference on arm. It still needs to immediately expand/save TARGET_VENDOR but we defer deciding what TARGET_OS should be until we know TARGET_ARCH (which the multilib code may change). [YOCTO #8642] Note that sanity tests of a 32 bit arm multilib still break due to issues with the kernel headers on a mixed bit system. This looks to be a general headers issue for the platform though and a different type of bug. (From OE-Core rev: bcddc3e7eff138add031bc9c9728be5a42fa62ef) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
parent
e0e8cd039c
commit
b6253350fb
|
@ -80,7 +80,7 @@ python () {
|
|||
for extraos in d.getVar("BASECANADIANEXTRAOS", True).split():
|
||||
d.appendVar("CANADIANEXTRAOS", " " + extraos + "n32")
|
||||
if tarch == "arm" or tarch == "armeb":
|
||||
d.appendVar("CANADIANEXTRAOS", " linux-musleabi linux-uclibceabi")
|
||||
d.appendVar("CANADIANEXTRAOS", " linux-gnueabi linux-musleabi linux-uclibceabi")
|
||||
d.setVar("TARGET_OS", "linux-gnueabi")
|
||||
else:
|
||||
d.setVar("TARGET_OS", "linux")
|
||||
|
|
|
@ -123,15 +123,18 @@ fakeroot python do_multilib_install() {
|
|||
os.symlink(src, dest)
|
||||
}
|
||||
|
||||
def get_original_vendoros(d):
|
||||
vendoros = d.expand('${TARGET_VENDOR}-${TARGET_OS}')
|
||||
def get_original_os(d):
|
||||
vendoros = d.expand('${TARGET_ARCH}${ORIG_TARGET_VENDOR}-${TARGET_OS}')
|
||||
for suffix in [d.getVar('ABIEXTENSION', True), d.getVar('LIBCEXTENSION', True)]:
|
||||
if suffix and vendoros.endswith(suffix):
|
||||
vendoros = vendoros[:-len(suffix)]
|
||||
# Arm must use linux-gnueabi not linux as only the former is accepted by gcc
|
||||
if vendoros.startswith("arm-") and not vendoros.endswith("-gnueabi"):
|
||||
vendoros = vendoros + "-gnueabi"
|
||||
return vendoros
|
||||
|
||||
ORIG_TARGET_VENDOROS := "${@get_original_vendoros(d)}"
|
||||
BASETARGET_SYS = "${TARGET_ARCH}${ORIG_TARGET_VENDOROS}"
|
||||
ORIG_TARGET_VENDOR := "${TARGET_VENDOR}"
|
||||
BASETARGET_SYS = "${@get_original_os(d)}"
|
||||
|
||||
addtask extra_symlinks after do_multilib_install before do_package do_populate_sysroot
|
||||
fakeroot python do_extra_symlinks() {
|
||||
|
|
Loading…
Reference in New Issue