Commit Graph

573 Commits

Author SHA1 Message Date
jferreir
558d67ec0d initial support to build tricore gcc
Add support for Tricore architecture.
TriCore architecture is optimized for real-time embedded systems.
More information can be found at AURIX™ TC3xx Architecture vol 1

https://www.infineon.com/dgdl/Infineon-AURIX_TC3xx_Architecture_vol1-UserManual-v01_00-EN.pdf?fileId=5546d46276fb756a01771bc4c2e33bdd

Signed-off-by: jferreir <jesus.ferreira@gmail.com>
2024-11-10 20:14:52 +13:00
Alexey Brodkin
5f77abf9b0 RISC-V: Remove EXPERIMENTAL tag
It's been a while since RISC-V support was added to CT-NG in 2017.
Since then RISC-V support was integrated in all the key toolchain
components upstream and now are proven to be in a very good state.

Thus it makes no sense to keep this architecture "hidden" in
experimental options, so we promote RISC-V architecture in CT-NG.

Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
2024-09-09 08:58:59 +12:00
Cupertino Miranda
ad03abc71d Add support for newer Oracle Linux toolchain versions
This commit adds support for ol8-u8 and ol9-u2 toolchain versions.

Signed-off-by: Cupertino Miranda <cupertino.miranda@oracle.com>
2024-06-26 14:55:01 +12:00
Chris Packham
e58fd0a23e musl: Mark not EXPERIMENTAL
Musl was marked experimental in commit 08d91d41 ("musl: config is broken
for !EXPERIMENTAL"). Most of the reasoning for that change no longer
applies and as it's been about 8 years it's time to let musl loose on
the world. Drop the `depends on EXPERIMENTAL` and update the sample
configs for aarch64 and x86_64.

For powerpc64 the ABI needs to be elfv2. Enforce this via the powerpc
config.  Add a sample configuration for powerpc-unknown-linux-musl.

Signed-off-by: Chris Packham <judge.packham@gmail.com>
2024-05-24 10:14:13 +12:00
WANG Rui
884db2ed47 loongarch64-linux-musl: add sample config
Add sample config for target loongarch64-unknown-linux-musl.

Signed-off-by: WANG Rui <wangrui@loongson.cn>
2024-03-11 17:28:53 +13:00
Chris Packham
2697728761 Add aarch64-unknown-linux-musl sample
Adapted from the aarch64-unknown-linux-gnu sample enabling
CT_EXPERIMENTAL and selecting CT_LIBC_MUSL.

Signed-off-by: Chris Packham <judge.packham@gmail.com>
2024-03-06 09:24:29 +13:00
Cupertino Miranda
ba17d355d3 Remove Oracle UEK linux dependencies.
This patch removes any dependency to the Oracle UEK Linux sources since
it can be easily replaced by a standard kernel explicitly pointing to
the exact kernel version, as the toolchain building only requires the
kernel headers.

Signed-off-by: Cupertino Miranda <cupertino.miranda@oracle.com>
2024-02-18 10:55:31 +13:00
Chris Packham
cd0d14697d CI: Add sample for hppa-unknown-linux-gnu
Add sample for hppa/parisc and include in CI builds.

Signed-off-by: Chris Packham <judge.packham@gmail.com>
2023-11-25 15:41:47 +13:00
Chris Packham
12dd99421c m68k: Support MMU
Some m68k variants do have a MMU so the architecture can set
ARCH_USE_MMU. That means we can have a m68k-unknown-linux-gnu
configuration and that m68k-unknown-uclinux-uclibc needs to select
LIBC_UCLIBC_NG since it's no longer the default.

Fixes #2040
Signed-off-by: Chris Packham <judge.packham@gmail.com>
2023-09-24 16:15:09 +13:00
Chris Packham
334f6d6479 moxiebox: Use newlib 4.2
moxie-unknown-moxiebox has problems building with newlib 4.3

  ld: /lib/libc.a(libc_a-closer.o): in function `_close_r':
  newlib/libc/reent/closer.c:47: undefined reference to `_close'

There are some Makefile changes in newlib 4.3 and it's likely previously
this config was picking up `_close` from libsim.a. For now just pin the
newlib version back to 4.2 in the moxie-unknown-moxiebox config.

Resolves #2036
Signed-off-by: Chris Packham <judge.packham@gmail.com>
2023-09-24 15:23:02 +13:00
Chris Packham
6780e48aca xtensa-fsf-elf: Unset NEWLIB_GLOBAL_ATEXIT
NEWLIB_GLOBAL_ATEXIT needs to be set to y for modern newlib versions.
Commit 227d99d7 ("newlib: add 4.3.0.20230120") ensured this was done.
But xtensa-fsf-elf uses a newlib version from before this so it needs to
explicitly opt out.

Signed-off-by: Chris Packham <judge.packham@gmail.com>
2023-09-07 12:24:32 +12:00
Chris Packham
b46a0dbd1b samples: riscv32-picolibc-elf: Drop invalid config
CC_CC_GCC_ENABLE_DEFAULT_PIE=n is invalid Kconfig syntax for an option
that was intentionally disabled the saved config would be

  '# CC_CC_GCC_ENABLE_DEFAULT_PIE is not set'

but the DEFAULT_PIE option isn't selectable for RISCV && BARE_METAL so
the correct thing to do is just remove the config.

This also picks up a change regenerating the saved sample due to changes
in the Kconfig ordering.

Fixes #2019
Signed-off-by: Chris Packham <judge.packham@gmail.com>
2023-09-01 16:34:31 +12:00
Kirill K. Smirnov
ada71ff2a0 Properly build multilib bare-metal RISC-V
To build multilib RISC-V toolchain one should use --with-multilib-generator
option instead of --with-multilib-list.

Add corresponding example configuration file.

Signed-off-by: Kirill K. Smirnov <kirill.k.smirnov@gmail.com>
2023-07-14 14:01:08 +12:00
Chris Packham
91ed31ec04 samples: Add arm-picolibc-default
The rmprofile with picolibc produces many multilib combinations which
causes the free tier github action runners to run out of disk space.
Add a picolibc sample that only enables the default multilib so we can
still get some coverage for picolibc in the CI builds.

Signed-off-by: Chris Packham <judge.packham@gmail.com>
2023-06-13 11:27:51 +12:00
Keith Packard
918c2a82c8 risc-v: Provide sample for picolibc-only toolchain
This builds a multilib toolchain using picolibc. The default target
is rv32imac

Signed-off-by: Keith Packard <keithp@keithp.com>
2023-04-19 15:13:55 +12:00
Keith Packard
56dbe2ad30 arm-picolibc-eabi: Specify default linker memory layout
Picolibc now lets you configure the default memory layout used in the
default linker script. Add values to the sample arm-picolibc-eabi
configuration that sets values appropriate for typical cortex m
processors run under qemu.

Signed-off-by: Keith Packard <keithp@keithp.com>
2023-04-19 15:13:55 +12:00
Chris Packham
c4f7405a96 samples: Rename canadian config for picolibc
We don't have a x86_64-pc-linux-gnu sample but we do have a
x86_64-unknown-linux-gnu. Rename the picolibc canadian config
accordingly.

Fixes: #1909
Signed-off-by: Chris Packham <judge.packham@gmail.com>
2023-03-14 08:55:26 +13:00
Joakim Nohlgård
7fcf499b03 samples: Use picolibc as main libc in the picolibc sample config
Signed-off-by: Joakim Nohlgård <joakim@nohlgard.se>
2023-03-08 16:54:12 +13:00
Cupertino Miranda
66ac9e649a Add Oracle ol8u7 product to crosstool-ng
This commit adds support for the following Oracle products, targeting
Oracle Linux 8.7:

Binutils 2.30-117.0.1
GCC      8.5.0-15.0.2
glibc    2.28-211.1.0.1
UEK5/u4  4.14.35-2025.400.8

Sample configuration files are provided for the following triplets:

aarch64-ol8u7-linux-gnu
x86_64-ol8u7-linux-gnu
i686-ol8u7-linux-gnu

Signed-off-by: Cupertino Miranda <cupertino.miranda@oracle.com>
2022-12-18 21:21:14 +13:00
Chris Packham
dcb34c5a87 samples: Cosmetic improvements to powerpc-e500v2-linux-gnuspe
--enable-e500_double was valid but strange (the correct form is
--enable-e500-double). -Wa,-me500x2 was also misleading, it is
equivalent to Wa,-me500.  --enable-e500x2 --with-e500x2 did nothing as
they aren't used by the binutils configure script. Finally passing
-mfloat-gprs=double in CFLAGS is unnecessary because this is the default
when using -mcpu=8548. Correct these in the sample config.

Fixes #1867
Signed-off-by: Chris Packham <judge.packham@gmail.com>
2022-12-14 17:11:16 +13:00
Cupertino Miranda
db4b7179ed Add BPF architecture target support
BPF is a virtual machine and associated ISA that resides in the Linux
kernel.  Initially intended for user-level packet capture and filtering,
BPF is nowadays generalized to serve as a general-purpose infrastructure
also for non-networking purposes.

Signed-off-by: Cupertino Miranda <cupertino.miranda@oracle.com>
2022-12-14 17:11:02 +13:00
Joakim Nohlgård
7f80447c5f samples: Add x86_64-pc-linux-gnu,arm-picolibc-eabi Canadian cross sample config
Signed-off-by: Joakim Nohlgård <joakim@nohlgard.se>
2022-12-11 19:52:26 +13:00
Chris Packham
40c83f1074 samples: Disable CC_GCC_ENABLE_DEFAULT_PIE with older glibc
glibc versions prior to 2.23 don't compile successfully with
--enable-default-pie. While it would be nice to automatically prevent
this from being selectable the simplest thing is to update the sample
configs that use the older glibc versions to avoid the problem.

Fixes #1819
Signed-off-by: Chris Packham <judge.packham@gmail.com>
2022-09-26 10:51:48 +13:00
Chris Packham
9d9bee0414 samples: Remove x86_64-centos6-linux-gnu
glibc 2.12.1 was removed in commit 6d5227b6 ("Remove obsolete glibc
2.12.1"). CentOS 6 is EoL and the configuration won't work as intended
so remove it.

Signed-off-by: Chris Packham <judge.packham@gmail.com>
2022-09-26 10:51:04 +13:00
Keith Packard
e632eb00b6 arm-none-eabi: Disable RWX segment warning in binutils
This warning is designed to catch likely vulnerabilities in code run
under memory protection -- allowing execution from memory which is
writable. However, embedded arm systems frequently require placing code
in RAM, for performance or functionality reasons. Disable the warning
that recent versions of binutils has added.

Signed-off-by: Keith Packard <keithp@keithp.com>
2022-08-19 22:03:27 +12:00
Jiajie Chen
38377d3c8d loongarch64: add sample config
Add sample config for target loongarch64-unknown-linux-gnu.

Currently, it fails to build on macOS due to flex/bison incompatibility.

Signed-off-by: Jiajie Chen <c@jia.je>
2022-08-19 22:01:34 +12:00
Guillermo E. Martinez
939ea40aa4 binutils-oracle: Update source patch location for ol8
Due to a new commit oracle binutils branch an update location for
patches is required. This patch disabled debug information for
glibc too.
2022-06-28 20:56:45 +12:00
Guillermo E. Martinez
883ecbebb6 Restore Oracle products to crosstool-ng using gcc-oracle
This commit restore the support for the following products
in Oracle Linux 7.9:

Binutils 2.27-44.base.0.400
GCC      4.8.5-44.0.5
glibc    2.17-317.0.3
UEK5/u4  4.14.35-2025.400.8

Sample configurations were updated to use such versions,
and be compiled in host machine using recent GCC versions.

Signed-off-by: Guillermo E. Martinez <guillermo.e.martinez@oracle.com>
2022-06-26 20:29:05 +12:00
Guillermo E. Martinez
2d6d22d96d Add Oracle ol8u6 product to crosstool-ng
This commit adds support for the following Oracle products, in order
to target Oracle Linux 8.6:

Binutils 2.30-113.0.1
GCC      8.5.0-10.0.2
glibc    2.28-189.1.0.1
UEK5/u4  4.14.35-2025.400.8

Sample configuration files are provides for the following triplets:

aarch64-ol8u6-linux-gnu
x86_64-ol8u6-linux-gnu
i686-ol8u6-linux-gnu

Signed-off-by: Guillermo E. Martinez <guillermo.e.martinez@oracle.com>
2022-05-31 19:59:32 +12:00
Keith Packard
4ad0620fcd Add sample arm-none-eabi
This is the triplet used by the Arm Embedded Toolkit as well as
Debian.

Signed-off-by: Keith Packard <keithp@keithp.com>
2022-05-12 20:58:57 +12:00
Chris Packham
53bbdc7425 Remove obsolete bionic/android support
The bionic libc support was out of date and relied on downloading
binaries from the internet. It was already marked as obsolete. Now that
the 1.25.0 release is out it can be completely removed.

Signed-off-by: Chris Packham <judge.packham@gmail.com>
2022-05-10 19:46:53 +12:00
Chris Packham
a8d2c2e1fa Enable posix threads in i686-w64-mingw32
Posix threads are enabled in the x86_64-w64-mingw32 sample having them
enabled in i686-w64-mingw32 makes things consistent for these targets.

Fixes #1696

Signed-off-by: Chris Packham <judge.packham@gmail.com>
2022-04-02 13:30:46 +13:00
Chris Packham
20044c0bf7 bionic: mark bionic/android-ndk as obsolete
Support for bionic was dropped by GCC some time ago. There are patches
for older GCC versions but those are difficult to maintain and the
version of the android-ndk they support is of little use. Mark all of
the existing bionic support as obsolete so it can be removed after the
next release.

Signed-off-by: Chris Packham <judge.packham@gmail.com>
2022-02-23 20:19:46 +13:00
Alexey Neyman
c320d220d6 Turn off debugging in sample configuration
Signed-off-by: Alexey Neyman <stilor@att.net>
2022-02-11 00:47:51 -08:00
Alexey Neyman
c6ff1eca5b Restrict *-uclibc,* canadians to gettext 0.20
Newer gettext is incompatible with uClibc-NG in cross-compilation, see
the comment in the code.

Signed-off-by: Alexey Neyman <stilor@att.net>
2022-02-11 00:47:51 -08:00
Alexey Neyman
586c2d0156 sparc-leon: restrict to GDB9
Starting with GDB10, it requires support for std::future<> in the
compiler. Such support has not been available on some architectures
until GCC9 (see PR 64735). I haven't determined the exact list of
affected architectures, so decided to make it a broad dependency: for
GDB10+, you need GCC9+.

Signed-off-by: Alexey Neyman <stilor@att.net>
2022-02-11 00:47:51 -08:00
Alexey Neyman
c48319e65f Rename moxiebox to match its tuple
Signed-off-by: Alexey Neyman <stilor@att.net>
2022-02-11 00:47:51 -08:00
Alexey Neyman
b4191b23a8 Update tic6x sample
Restrict kernel to 5.11 and below (support for this arch has been
dropped in 5.12); rename the sample to match its name as printed by
`ct-ng show-tuple` (otherwise, `make saveconfig` does not update the
sample's configuration).

Signed-off-by: Alexey Neyman <stilor@att.net>
2022-02-11 00:47:51 -08:00
Alexey Neyman
858f939436 More sample config updates
*-moxie*: DTC_VERBOSE is a wobbler, it depends on whether dtc is enabled
on the host machine (if dtc is installed, DTC defaults to 'n' and hence
prevents DTC_VERBOSE from appearing at all). Remove the option from
config file so that its value reverts to the default.

xtensa-fsf-elf: mark configuration obsolete so that it can use GDB 8.1
(it uses custom sources and needs to select the version therein)

Signed-off-by: Alexey Neyman <stilor@att.net>
2022-02-11 00:47:51 -08:00
Alexey Neyman
196f62e18c Upgrade script for uClibc retirement
Run samples through upgrade and fix accumulated breakages:

*-centos6-*: After 2.12.2 retirement, the samples selected most recent
glibc (2.34) which also forced kernels 3.2+. Revert to 2.12.1 and
2.6.32.71, respectively. Interestingly, 2.12.1 was marked as being used
in CentOS6, but the samples selected 2.12.2. Anyway, CentOS6 is EOL now
and glibc 2.12 is going to be marked obsolete, and retired soon.

arc-*: Make TARGET_VENDOR match the sample's name; otherwise `ct-ng
saveconfig` places the config file into a different location.

Fix 'savedefconfig' which was not saving the configuration file version
(CT_VCHECK was set to 'load' after CT_LoadConfig call).

Signed-off-by: Alexey Neyman <stilor@att.net>
2022-02-11 00:47:50 -08:00
Alexey Neyman
cc6b7fad46 Retire obsoleted milestones
... and the code dependent on them, after the latest wave of obsolete
package removals. This concludes the glorious history of the original
uClibc (non-NG) with lots of kludges removed.

There was a choice here, whether to call the resulting libc "uClibc" or
"uClibc-ng". I opted in favor of giving uClibc-ng the recognition it
deserves, although it had some ripple effect in the ct-ng code.

Signed-off-by: Alexey Neyman <stilor@att.net>
2022-02-11 00:47:50 -08:00
Alexey Neyman
4c6604e730 Remove gcc-oracle-4.8-44.0.5
GCC 4.8 and its prerequisites have been removed by 04dce680, 41d4583a
and e4221734; as a result, 4.8-based version of gcc-oracle became
unbuildable (no valid versions for the prerequisites).

Update the samples to use 4.9.4; which however fails to build on a modern
host GCC. Build fix backported to gcc-4.9 and gcc-5 versions.

Fix binutils-oracle build with host GCC11.

Signed-off-by: Alexey Neyman <stilor@att.net>
2022-02-11 00:47:50 -08:00
Chris Packham
cc7a2eef91 Merge branch 'mips-unknown-linux-gnu' of https://github.com/cpackham/crosstool-ng
Signed-off-by: Chris Packham <judge.packham@gmail.com>
2021-08-24 20:15:53 +12:00
Chris Packham
6fae696131 Add mips-unknown-linux-gnu sample
We have unkown-elf and linux-uclibc already. Complete the set with a
linux-gnu configuration.

Signed-off-by: Chris Packham <judge.packham@gmail.com>
2021-08-24 08:46:35 +12:00
Dimitar Dimitrov
6424fb73f0 pru: Default to pru-, not pru-elf- prefix
The gcc-pru package in BeagleBoard Debian image has been using the
"pru-" prefix for a few years now. Let's not add unnecessary confusion
for users, and stick to "pru-" cross toolchain prefix.

Signed-off-by: Dimitar Dimitrov <dimitar@dinux.eu>
2021-08-22 18:11:42 +03:00
Bensuperpc
afdab6f2ff Add config sample of Raspberry Pi 4
Add config sample of Raspberry Pi 4:
Add armv8-rpi4-linux-gnueabihf
Add aarch64-rpi4-linux-gnu

Signed-off-by: Bensuperpc <bensuperpc@gmail.com>
2021-05-19 15:18:38 +02:00
Chris Packham
30316cd27a
Merge pull request #1448 from dinuxbg/master
Add PRU target configuration
2021-01-25 12:40:31 +13:00
Dimitar Dimitrov
e7d0485ca2 Add package with PRU linker scripts and headers
Include the gnuprumcu package in PRU cross toolchain.
Toolchain is somewhat useless without device specs and
linker scripts for the various SoCs.

Signed-off-by: Dimitar Dimitrov <dimitar@dinux.eu>
2021-01-19 21:18:55 +02:00
Dimitar Dimitrov
c800bc8c82 Add PRU cross tool target
Add sample configuration for building cross toolchain for the TI PRU.
PRU cores are present in many of the BeagleBone single board computers.

More information about the PRU can be found in https://bbb.io/pru

Signed-off-by: Dimitar Dimitrov <dimitar@dinux.eu>
2021-01-19 21:18:55 +02:00
Keith Packard
945b4c6436 Add newlib-nano as companion lib
This allows building newlib-nano in addition to newlib and picolibc,
allowing users to select between C libraries within the same toolchain.

Signed-off-by: Keith Packard <keithp@keithp.com>
2021-01-14 15:05:10 -08:00