kumquat-buildroot/toolchain/toolchain-external
Thomas De Schampheleire a06edf201b toolchain-external: cover multilib toolchains with lib/<variant> layout
The toolchain from the Cavium Octeon SDK has a sysroot layout as follows:

./lib32
./lib32/octeon2
./lib32-fp
./lib64
./lib64/octeon2
./lib64-fp
./usr
./usr/lib
./usr/lib32
./usr/lib32/octeon2
./usr/lib32-fp
./usr/lib64
./usr/lib64/octeon2
./usr/lib64-fp
./usr/bin
./usr/bin32
./usr/bin32-fp
./usr/bin64-fp
./usr/libexec
./usr/libexec32
./usr/libexec32-fp
./usr/libexec64-fp
./usr/sbin
./usr/sbin32
./usr/sbin32-fp
./usr/sbin64-fp
./usr/include
./usr/share
./sbin
./sbin32
./sbin32-fp
./sbin64-fp
./etc
./var

with the following selections:
- lib64          : default
- lib64/octeon2  : -march=octeon2
- lib64-fp       : -march=octeon3
- lib32          : -mabi=n32
- lib32/octeon2  : -mabi=n32 -march=octeon2
- lib32-fp       : -mabi=n32 -march=octeon3

In case of '-mabi=n32 -march=octeon2' (but same is true for n64+octeon2)the
original Buildroot toolchain logic would copy both the libraries in
lib32 as the subdirectory lib32/octeon2, which means that every library is
installed twice (but only one of each is really needed).

While ARCH_LIB_DIR is determined by the location of libc.a, which in this
case is effectively:
    <sysroot>/usr/lib32/octeon2/libc.a
the variable only retains 'lib32' and not 'lib32/octeon2' as expected.

To make Buildroot cope with this style of toolchain layout, we need to adapt
the calculation of ARCH_LIB_DIR to also include the second part.
This, in turn, means that ARCH_LIB_DIR is no longer guaranteed to be a
singular path component, resulting in some additional changes.

Certain older Linaro toolchains actually had the same layout. Libraries were
located in lib/<tuple> rather than lib directly. Previously, this was
handled by adding a toolchain-specific fixup that creates a symlink
lib/<tuple> -> lib, but with this patch this would no longer be needed.
Note that one difference with the Octeon case is that these Linaro
toolchains are not actually multilib, i.e. there is just one location with
the libraries and thus there is no problem with duplicated libraries.

Signed-off-by: Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2017-04-05 21:32:06 +02:00
..
toolchain-external-codescape-img-mips toolchain: bump Codescape IMG MIPS version to 2016.05-06 2017-01-16 11:56:11 +01:00
toolchain-external-codescape-mti-mips toolchain: bump Codescape MTI MIPS version to 2016.05-06 2017-01-16 13:10:24 +01:00
toolchain-external-codesourcery-aarch64 toolchain-external: handle ld.so fixups centrally 2017-04-05 21:22:21 +02:00
toolchain-external-codesourcery-amd64 toolchain-external: bump CodeSourcery AMD64 to 2016.11-19 2017-01-27 22:22:56 +13:00
toolchain-external-codesourcery-arm toolchain-external: disallow sourcery codebench ARM toolchain for ARMv8 cores 2016-12-06 21:38:24 +01:00
toolchain-external-codesourcery-mips toolchain-external-codesourcery-mips: new package 2016-11-23 22:18:22 +01:00
toolchain-external-codesourcery-niosII toolchain-external: bump CodeSourcery NIOSII to 2016.11 2016-12-27 23:36:42 +01:00
toolchain-external-codesourcery-sh toolchain-external-codesourcery-sh: new package 2016-11-23 22:19:12 +01:00
toolchain-external-codesourcery-x86 toolchain-external-codesourcery-x86: new package 2016-11-23 22:19:27 +01:00
toolchain-external-custom toolchain: add 4.10.x choice for headers 2017-02-20 21:55:55 +01:00
toolchain-external-linaro-aarch64 toolchain-external: bump Linaro AArch64 toolchain to 2017.02 2017-02-20 21:58:53 +01:00
toolchain-external-linaro-arm toolchain-external: bump Linaro ARM toolchain to 2017.02 2017-02-20 21:58:40 +01:00
toolchain-external-linaro-armeb toolchain-external: bump Linaro ARMeb toolchain to 2017.02 2017-02-20 21:58:46 +01:00
toolchain-external-synopsys-arc toolchain-external: Update Synopsys prebuilt toolchain for ARC cores 2017-02-04 23:57:43 +01:00
Config.in toolchain-external: remove musl-cross prebuilt toolchain 2016-12-17 14:21:00 +01:00
pkg-toolchain-external.mk toolchain-external: cover multilib toolchains with lib/<variant> layout 2017-04-05 21:32:06 +02:00
toolchain-external.mk toolchain-external: remove Arago toolchains 2016-11-23 22:32:14 +01:00