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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
--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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
*-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>
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>
... 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>
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>
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>
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>
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>
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>