tech-pkg archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Refactoring the GCC cross compilers



Kia ora koutou,
We've been creating new GCC targets in pkgsrc/cross by simply copying the Makefiles for other targets and the amount of duplication has got out of hand. We have five U-Boot architectures that use these cross compilers and the U-Boot docs make it quite clear that they do not expect us to maintain GCC 8 from 2018.

We've also got a large number of patches that are simply not needed any more because upstream has applied the patch and we simply haven't updated our end to use the updated toolchain.

The only difference between these packages is the GNU target triple and sometimes the GCC version.

I have created in WIP a directory called common-gnu-toolchain that contains the common Makefile fragments, distinfo files and patches. I have also created in WIP the following packages to use this refactored code.

* aarch64-none-elf-binutils
* aarch64-none-elf-gcc

* arm-none-eabi-binutils
* arm-none-eabi-gcc
* arm-none-eabi-gdb

* mipsel-none-elf-binutils
* mipsel-none-elf-gcc

* powerpc-none-elf-binutils
* powerpc-none-elf-gcc

* riscv64-none-elf-binutils
* riscv64-none-elf-gcc
* riscv64-none-elf-gdb

The package Makefiles are now pretty much just

    TARGET=        arm-none-eabi
    MAINTAINER=    ryoon%NetBSD.org@localhost
    COMMENT=    Cross binutils for bare metal ARM EABI

    .include "../../wip/common-gnu-toolchain/binutils.mk"
    .include "../../mk/bsd.pkg.mk"

Most GCCs have been upgraded to 14.3, but powerpc and mipsel cross compilers are still using GCC 13.2 because newlib for those platforms has K&R code for testing the linker and it won't compile with a newer GCC. Upstream is working on that problem.

I'm currently working though the pkglint reports for each package.

I have removed the TEXINFO_REQD for gcc because it doesn't seem to be required on NetBSD 11 and I expect that it will need to be turned back on for older versions of NetBSD.

I have put this all in pkgsrc WIP because I'm hoping it will be easier to see what I've done there rather than trying to read diffs covering a dozen directories.

I would like feedback and approval before commiting this to pkgsrc itself.

Ngā mihi,
Lloyd



Home | Main Index | Thread Index | Old Index