[Buildroot] [PATCH 2/2] package/gcc: add support for D language
Thomas Petazzoni
thomas.petazzoni at bootlin.com
Mon Oct 7 07:10:21 UTC 2019
Hello,
On Sun, 6 Oct 2019 17:12:28 +0200
Eric Le Bihan <eric.le.bihan.dev at free.fr> wrote:
> Looking at libphobos/libdruntime/core/sys/posix/sys/types.d turned out
> to be very informative. It contains a list of definitions per C-runtime
> mapped to architecture/OS. Bionic, uclibc and musl are supported but
> only for a limited set of architectures. For some of them,
> __SIZEOF_PTHREAD_ATTR_T and friends are redefined.
>
> ARM is supported for uclibc, but Aarch64 is not (hence the build
> failure). Adding the missing definitions from
> libpthread/nptl/sysdeps/unix/sysv/linux/aarch64/bits/pthreadtypes.h is
> trivial, but then the build chokes on siginfo_t not being correct. So
> deep work is required.
>
> Even some combinations defined in types.d fail to build (e.g.
> x86_64+musl or ARM/uclibc).
>
> In the end, glibc turns out to be the only C-runtime covering most of
> the architectures supported by Buildroot: x86_64, Aarch64, ARM,
> MIPS{32,64}, PPC{,64}, RISCV32 and SPARC64.
OK.
> In order to restrict the supported architectures, should
> package/gcc/Config.in.host be updated to look like this?
>
> ```
> config BR2_TOOLCHAIN_BUILDROOT_DLANG
> bool "Enable D language support"
> depends on BR2_TOOLCHAIN_GCC_AT_LEAST_9
> depends on BR2_TOOLCHAIN_USES_GLIBC
> depends on !BR2_arc
> depends on !BR2_csky
> depends on !BR2_m68k
> depends on !BR2_microblaze
> depends on !BR2_nds32
> depends on !BR2_nios2
> depends on !BR2_or1k
> depends on !BR2_sparc
> depends on !BR2_xtensa
I'd rather use some positive logic. In toolchain/Config.in, maybe
something like this:
config BR2_TOOLCHAIN_CAN_SUPPORT_DLANG
bool
depends on BR2_TOOLCHAIN_GCC_AT_LEAST_9
depends on BR2_TOLCHAIN_USES_GLIBC
default y if BR2_arm
default y if BR2_x86_64
default y if ...
and then re-use that for both the internal and external toolchain cases.
Thanks!
Thomas
--
Thomas Petazzoni, CTO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
More information about the buildroot
mailing list