5ab751ca44
Latest musl release supports ppc64 architecture (both big endian and little endian), so this commit adds support for this. Since musl implements the ELFv2 ABI for both big-endian and little-endian PowerPC64, we have to force using this ABI on PowerPC64 big endian (normally elfv1 is the default). Also, only gcc 6.x has the necessary changes to support musl on PowerPC 64, so we restrict the gcc version selection accordingly. Tested with Qemu for big endian and little endian configurations. Signed-off-by: Waldemar Brodkorb <wbx@openadk.org> [Thomas: add comment about the ABI flag in gcc.mk, rework commit log.] Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
101 lines
3.4 KiB
Plaintext
101 lines
3.4 KiB
Plaintext
# Config entries for internal toolchain backend
|
|
|
|
if BR2_TOOLCHAIN_BUILDROOT
|
|
|
|
config BR2_TOOLCHAIN_BUILDROOT_VENDOR
|
|
string "custom toolchain vendor name"
|
|
default "buildroot"
|
|
help
|
|
This option allows to customize the "vendor" part of the
|
|
toolchain tuple, where the toolchain tuple has the form
|
|
<arch>-<vendor>-<os>-<libc>. The default value, "buildroot",
|
|
is fine for most cases, except in very specific situations
|
|
where gcc might make different decisions based on the vendor
|
|
part of the tuple. The value "unknown" is not allowed, as the
|
|
cross-compiling toolchain might then be confused with the
|
|
native toolchain when the target and host architecture are
|
|
identical. The value can not be empty either.
|
|
|
|
If you're not sure, just leave the default "buildroot" value.
|
|
|
|
source "package/linux-headers/Config.in.host"
|
|
|
|
choice
|
|
prompt "C library"
|
|
default BR2_TOOLCHAIN_UCLIBC
|
|
default BR2_TOOLCHAIN_BUILDROOT_GLIBC if BR2_aarch64 || BR2_aarch64_be \
|
|
|| BR2_powerpc64
|
|
|
|
config BR2_TOOLCHAIN_BUILDROOT_UCLIBC
|
|
bool "uClibc-ng"
|
|
select BR2_TOOLCHAIN_USES_UCLIBC
|
|
depends on BR2_arcle || BR2_arceb || BR2_arm || BR2_armeb || \
|
|
BR2_bfin || BR2_i386 || BR2_m68k || BR2_microblaze || \
|
|
BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el || \
|
|
BR2_powerpc || BR2_sh2a || BR2_sh4 || BR2_sh4eb || \
|
|
BR2_sparc || BR2_xtensa || BR2_x86_64
|
|
# Unsupported for MIPS R6
|
|
depends on !BR2_mips_32r6 && !BR2_mips_64r6
|
|
help
|
|
This option selects uClibc-ng as the C library for the
|
|
cross-compilation toolchain.
|
|
|
|
http://uclibc-ng.org
|
|
|
|
config BR2_TOOLCHAIN_BUILDROOT_GLIBC
|
|
bool "glibc"
|
|
depends on BR2_arm || BR2_armeb || BR2_aarch64 || \
|
|
BR2_aarch64_be || BR2_i386 || BR2_mips || \
|
|
BR2_mipsel || BR2_mips64 || BR2_mips64el|| \
|
|
BR2_powerpc || BR2_powerpc64 || BR2_powerpc64le || \
|
|
BR2_sh || BR2_sh64 || BR2_sparc64 || \
|
|
BR2_x86_64 || BR2_microblaze || BR2_nios2
|
|
depends on BR2_USE_MMU
|
|
depends on !BR2_STATIC_LIBS
|
|
depends on !BR2_powerpc_SPE
|
|
select BR2_TOOLCHAIN_USES_GLIBC
|
|
# our glibc.mk enables RPC support
|
|
select BR2_TOOLCHAIN_HAS_NATIVE_RPC
|
|
help
|
|
This option selects glibc as the C library for the
|
|
cross-compilation toolchain.
|
|
|
|
http://www.gnu.org/software/libc/
|
|
|
|
comment "glibc only available with shared lib support"
|
|
depends on BR2_USE_MMU
|
|
depends on BR2_STATIC_LIBS
|
|
|
|
config BR2_TOOLCHAIN_BUILDROOT_MUSL
|
|
bool "musl"
|
|
depends on BR2_aarch64 || BR2_arm || BR2_armeb || BR2_i386 || \
|
|
BR2_microblaze || BR2_mips || BR2_mipsel || BR2_powerpc || \
|
|
BR2_powerpc64 || BR2_powerpc64le || BR2_sh || BR2_x86_64
|
|
depends on !BR2_powerpc_SPE # not supported, build breaks
|
|
# Unsupported for MIPS R6
|
|
depends on !BR2_mips_32r6 && !BR2_mips_64r6
|
|
# sh2 nommu is supported by musl, but we don't have support
|
|
# for it in Buildroot.
|
|
depends on BR2_USE_MMU
|
|
select BR2_TOOLCHAIN_USES_MUSL
|
|
help
|
|
This option selects musl as the C library for the
|
|
cross-compilation toolchain.
|
|
|
|
endchoice
|
|
|
|
config BR2_TOOLCHAIN_BUILDROOT_LIBC
|
|
string
|
|
default "uclibc" if BR2_TOOLCHAIN_BUILDROOT_UCLIBC
|
|
default "glibc" if BR2_TOOLCHAIN_BUILDROOT_GLIBC
|
|
default "musl" if BR2_TOOLCHAIN_BUILDROOT_MUSL
|
|
|
|
source "package/linux-headers/Config.in"
|
|
source "package/musl/Config.in"
|
|
source "package/uclibc/Config.in"
|
|
source "package/glibc/Config.in"
|
|
source "package/binutils/Config.in.host"
|
|
source "package/gcc/Config.in.host"
|
|
source "package/elf2flt/Config.in.host"
|
|
endif
|