aboutsummaryrefslogtreecommitdiff
path: root/config
Commit message (Collapse)AuthorAgeFilesLines
* gdb: Add gdb 15.1Chris Packham2024-07-241-0/+2
| | | | | | | | | | | | | https://sourceware.org/pipermail/gdb-announce/2024/000140.html The release notes state that "Building GDB and GDBserver now requires a C++17 compiler (for instance, GCC 9 or later)". Looks like we already satisfy this requirement with GDB_DEP_NO_STD_FUTURE. gdbserver now has a dependency on iconv.h, for uclibc configurations we need to make sure this is satisfied. Signed-off-by: Chris Packham <judge.packham@gmail.com>
* Add mold linker buildArnaud Vrac2024-06-053-0/+20
| | | | | | | | | | | | | | | Allows building the #mold linker, which can then be used in the cross-toolchain by passing the -fuse-ld=mold to the gcc flags. It is much faster than ld or gold. This requires a C++20 compiler and cmake. Initially implemented by Arnaud, and HC added configure check for cmake. Outstanding task to validate compiler is C++20 compatible. Signed-off-by: Arnaud Vrac <avrac@freebox.fr> Signed-off-by: Hans-Christian Noren Egtvedt <egtvedt@samfundet.no>
* Allow for Runtime-less build of GDC and GNATMarc Poulhiès2024-06-051-13/+15
| | | | | | | | | | | | Both D and GNAT have their own runtimes (resp. libphotos and libada). It is still possible to build the compiler proper without any runtime, and have an external runtime installed later. This is most commonly found in embedded systems. An example for D is: https://github.com/KitsunebiGames/tinyd-rt An example for Ada: https://github.com/Fabien-Chouteau/bare_runtime Signed-off-by: Marc Poulhiès <dkm@kataplop.net>
* musl: Mark not EXPERIMENTALChris Packham2024-05-242-4/+4
| | | | | | | | | | | | | 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>
* glibc: Disable -Werror for GCC14Chris Packham2024-05-181-1/+1
| | | | | | | Current glibc versions don't compile without warnings with GCC14. Disable -Werror for glibc when using GCC14. Signed-off-by: Chris Packham <judge.packham@gmail.com>
* Remove configure time check for rsyncChris Packham2023-12-181-3/+0
| | | | | | | Now that we're checking for rsync in Kconfig we can remove the check from ./configure. Signed-off-by: Chris Packham <judge.packham@gmail.com>
* config: Detect rsync presence at config timeChris Packham2023-12-183-2/+13
| | | | | | | | | | | | | | | | | | Linux kernel versions newer than 5.3 require rsync in order to export the UAPI headers. Commit f441a6bf ("linux: Add dependency on rsync for Linux >= 5.3") attempted to address this with a check that runs when crosstool-ng is built. That had the downside that if crosstool-ng was built and packaged on a machine that had rsync then run on a machine that didn't then the build would fail due to the missing rsync. Conversely if the first machine didn't have rsync installed when crosstool-ng was built then we would not offer newer kernel versions. We can address this by checking for rsync when the toolchain configuration is updated using some functionality in the newer Kconfig that we've updated to previously. Fixes #1940 Signed-off-by: Chris Packham <judge.packham@gmail.com>
* config/arch: Mark hppa/parisc as experimentalChris Packham2023-11-251-0/+2
| | | | | | | There are a number of things that don't currently work notably uClibc, C++ and GDB. Mark this architecture as experimental. Signed-off-by: Chris Packham <judge.packham@gmail.com>
* Add support for 32 and 64-bit PA-RISC linux build targets.John David Anglin2023-11-252-1/+12
| | | | | | | Note: The 64-bit target lacks a glibc port and doesn't build. Also, there is no uclibc support. Signed-off-by: John David Anglin <dave.anglin@bell.net>
* gdb: Use correct arguments for static linkingChris Packham2023-11-021-0/+5
| | | | | | | | | | | | As of version 13.x GDB uses libtool for linking instead of g++ these take different arguments for static linking. Commit 6146b5a6 ("use -all-static when building a static gdb") attempted to deal with this but had the effect of causing older GDB versions to fail to build statically. Add a new internal flag GDB_CC_LD_LIBTOOL and use this to decide whether to pass `-static` or `-all-static`. Fixes #2053 Signed-off-by: Chris Packham <judge.packham@gmail.com>
* m68k: Support MMUChris Packham2023-09-241-0/+1
| | | | | | | | | | 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>
* allow plugins and LTO with static toolchainsChris Copeland2023-09-242-3/+0
| | | | | | | | | | | | This reverts commit 0841e2f820de7a4dca1ddc52b04bf834fff2806b from 2011, which disabled plugin support in binutils for static toolchains, citing build system problems. This problem seems to be resolved. This also reverts part of 45512b003d04b5a89c5c3bb6b674683d82b87f42 from 2017, which disabled LTO in gcc for static toolchains, citing problems on Arch Linux with loading the LTO plugin from a static binary. Signed-off-by: Chris Copeland <chris@chrisnc.net>
* Add a musl variable LIBC_MUSC_EXTRA_CFLAGSNorbert Lange2023-09-241-0/+7
| | | | Signed-off-by: Norbert Lange <nolange79@gmail.com>
* glibc: Add option for building libcryptChris Packham2023-08-251-0/+13
| | | | | | | As of glibc-2.38 libcrypt is not built by default. Add an option to allow building libcrypt support into glibc. Signed-off-by: Chris Packham <judge.packham@gmail.com>
* Add option to re-enable ˋlibstdc++ˋ on avr targets.Quentin Boswank2023-08-141-0/+9
| | | | | | | | | | | Due to the small flash space on AVR devices the library containing the standard types in C++ (ˋlibstdc++ˋ) does not get built normally when enabling the C++ language support. This option is an easy way to go back to the PC-way where ˋlibstdc++ˋ is built. Signed-off-by: Quentin Boswank <qubos@outlook.de>
* Revert "libc/uclibc: Require GCC12 or older"Chris Packham2023-08-131-1/+0
| | | | | | | | This reverts commit 5427dac45c12f6be8e3fca7bc38b9abcebb4ec87. The issues that were causing this have been resolved with some updates so allow the uclibc+gcc13 combination again. Signed-off-by: Chris Packham <judge.packham@gmail.com>
* provide a workaround for a glibc and GNU make incompatibilityChris Packham2023-07-212-0/+12
| | | | | | | | | | | Versions of GNU make newer than 4.4 trigger a hang in versions of glibc older than 2.31. As distros update to the newer GNU make version we'll start seeing more and more reports of this hang. Fortunately we already carry GNU make as a comp tool so all we need to do is select the right version when needed. Fixes #1946, #1932, #1975 Signed-off-by: Chris Packham <judge.packham@gmail.com>
* Revert "Update requirements: autoconf==2.71 and automake>=1.16"Thomas Petazzoni2023-07-211-6/+6
| | | | | | | | | | | | | This reverts commit 658f5e574f4025655da318fb0b688a394b6ff43f, which was made without any justification, and prevents using crosstool-ng even in decently recent distributions like Ubuntu 20.04 (which has autoconf 2.69). We have tested that ./bootstrap && ./configure --enable-local works fine on Ubuntu 18.04, which uses autoconf 2.69 and automake 1.15, so the existing requirements were enough. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
* Properly build multilib bare-metal RISC-VKirill K. Smirnov2023-07-141-0/+13
| | | | | | | | | 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>
* newlib: add 4.3.0.20230120Chris Packham2023-06-041-0/+1
| | | | | | | | Add the 4.3.0.20230120 and update the required patches. As of this release the newlib-global-atexit is mandatory so set this to default y. Included is an upstream patch to support older GCC versions. Signed-off-by: Chris Packham <judge.packham@gmail.com>
* Add default msvcrt options for mingw-w64Timo Rothenpieler2023-06-041-0/+36
| | | | Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
* gdb: Make native GDB 13+ dependent on MPFRYuriy Kolerov2023-05-191-0/+1
| | | | | | GDB 13+ depends on MPFR thus it must be selected. Signed-off-by: Yuriy Kolerov <ykolerov@synopsys.com>
* mpfr: Add support of building MPFR for targetYuriy Kolerov2023-05-191-0/+4
| | | | | | | | It's necessary for building native GDB 13+. It depends on MPFR but it hasn't presented in scripts yet for building for target. Signed-off-by: Yuriy Kolerov <ykolerov@synopsys.com>
* glibc: Disable -Werror with GCC13 and glibc <2.37Chris Packham2023-05-141-1/+3
| | | | | | | GCC13 picks up some new errors on older glibc versions. Disable -Werror automatically when these combinations are selected. Signed-off-by: Chris Packham <judge.packham@gmail.com>
* libc/uclibc: Require GCC12 or olderChris Packham2023-05-141-0/+1
| | | | | | | | | | | | | | | Currently uclibc configurations fail to build with GCC13 src/gcc/libstdc++-v3/src/c++17/floating_from_chars.cc: In function 'std::from_chars_result std::from_chars(const char*, const char*, _Float128&, chars_format)': src/gcc/libstdc++-v3/src/c++17/floating_from_chars.cc:1281:10: error: 'from_chars_strtod' was not declared in this scope 1281 | return from_chars_strtod(first, last, value, fmt); | ^~~~~~~~~~~~~~~~~ make[6]: *** [Makefile:587: floating_from_chars.lo] Error 1 make[6]: *** Waiting for unfinished jobs.... For now require GCC older than 13 when using uclibc. Signed-off-by: Chris Packham <judge.packham@gmail.com>
* picolibc: Allow default memory layout values to be configuredKeith Packard2023-04-191-0/+40
| | | | | | | | These values are used when constructing the default linker scripts used with picolibc. Setting reasonable defaults allows simple test applications to be compiled without additional configuration. Signed-off-by: Keith Packard <keithp@keithp.com>
* config/arch/x86: enable libsanitizerJames Knight2023-04-131-1/+1
| | | | | | | | GCC's libsanitizer module does provide a subset of support for x86 targets (e.g. libasan). GCC's `libsanitizer/configure.tgt` file only outlines flags for optional sanitizers. Signed-off-by: James Knight <james.d.knight@live.com>
* Add option for experimental bundled patchesBryan Hundven2023-03-162-5/+44
| | | | | | | | | | | | | | | | | | This adds 3 new options to patch order: * bundled + bundled_exp * bundled + bundled_exp + local * local + bundled + bundled_exp The path for bundled experimental patches is: ${CT_LIB_DIR}/packages/${pkg_dir}/experimental and patches that are still being reviewed, but not yet applied upstream may be toggled with ENABLE_EXPERIMENTAL_BUNDLED_PATCHES. Also fix modelines for editors on bootstrap and scripts/functions, and fix mix whitespace in scripts/functions. Closes: #1916 Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
* picolibc: Add configuration to select picolibc as the system libcJoakim Nohlgård2023-03-082-114/+139
| | | | | | | This moves the picolibc configuration values under C-library -> picolibc so that they will be more easily discovered. Signed-off-by: Joakim Nohlgård <joakim@nohlgard.se>
* gcc: Don't set --enable-default-pie by defaultKeith Packard2023-02-271-1/+1
| | | | | | | This changes how existing crosstool-ng setups work, causing many of the bare-metal ones to fail. Signed-off-by: Keith Packard <keithp@keithp.com>
* Add zstd to the companion libsQuentin Boswank2023-02-083-1/+12
| | | | | | | | Add zstd to the companion libs witch allows to use lto zstd compression in a canadian or cross-native enviroment Signed-off-by: QBos07 <62326551+QBos07@users.noreply.github.com> Signed-off-by: Quentin Boswank <62326551+QBos07@users.noreply.github.com>
* Merge pull request #1763 from cpackham/tarballBryan Hundven2023-01-161-0/+28
|\ | | | | Add option to build toolchain tarball
| * Add option to build toolchain tarballChris Packham2022-06-151-0/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Add TARBALL_RESULT option that will produce a tarball of the final toolchain to make it easier to deploy the toolchain to other machines. The implementation uses `find | sort` instead of `tar --sort` because this was introduced in GNU Tar v1.28, which is not available in some LTS Linux distributions. This is a variation of the command recommended here: https://wiki.debian.org/ReproducibleBuilds/FileOrderInTarballs Closes #1262 Signed-off-by: Chris Packham <judge.packham@gmail.com>
* | Enable support for building libgccjitMarc Poulhiès2022-12-182-0/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | libgccjit is still under development and, despite its name, may also be used for ahead-of-time compilation. Documentation can be found on the gcc website: https://gcc.gnu.org/onlinedocs/jit/internals/index.html https://gcc.gnu.org/wiki/JIT With this change it's possible to enable the building of the libgccjit. It's enabled as a language (with --enable-languages=jit) even if not a language frontend at all. The main changes are related to the requirement of having everything host side built as Position Independent Code (PIC) with --enable-host-shared. GCC has the needed logic for building its dependencies (mpc, gmp, mpfr, ...) correctly when built "in-tree", which is not the case with crosstool-ng (see https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=05048fc29f0) Signed-off-by: Marc Poulhiès <dkm@kataplop.net>
* | Add BPF architecture target supportCupertino Miranda2022-12-141-0/+9
| | | | | | | | | | | | | | | | | | 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>
* | gcc: Disable CC_GCC_ENABLE_DEFAULT_PIE on RISC-V bare metal buildsJoakim Nohlgård2022-12-111-0/+1
| | | | | | | | | | | | -pie is not supported on riscv*-elf-ld Signed-off-by: Joakim Nohlgård <joakim@nohlgard.se>
* | Correct casing for Ada langMarc Poulhiès2022-11-091-1/+1
| | | | | | | | | | | | Ada is a name, not an acronym, so it doesn't need to be upcased. Signed-off-by: Marc Poulhiès <dkm@kataplop.net>
* | Update requirements: autoconf==2.71 and automake>=1.16Bryan Hundven2022-10-271-6/+6
| | | | | | | | Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
* | binutils: add option to build libopcodes for targetDries Deschout2022-10-021-0/+5
| | | | | | | | | | | | It provides functionality to disassemble executable binaries. Signed-off-by: Dries Deschout <dries.deschout@dodeco.eu>
* | avr,pru: Disable CT_CC_GCC_ENABLE_DEFAULT_PIEDimitar Dimitrov2022-09-261-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | PIE is not supported by PRU and AVR backends for GCC. This fixes LD errors when trying to link user programs with a crosstool-NG toolchain: /home/dinux/x-tools/avr/lib/gcc/avr/12.2.0/../../../../avr/bin/ld: -pie not supported collect2: error: ld returned 1 exit status Signed-off-by: Dimitar Dimitrov <dimitar@dinux.eu>
* | Add CC_GCC_ENABLE_DEFAULT_PIELike Ma2022-08-191-0/+11
| | | | | | | | | | | | | | | | Enable Position Independent Executable as default Pass --enable-default-pie to crossgcc's configure Signed-off-by: Like Ma <likemartinma@gmail.com>
* | loongarch64: add initial loongarch supportJiajie Chen2022-08-191-0/+19
| | | | | | | | | | | | | | | | | | | | | | | | This commit adds architecture support for LoongArch. The toolchain currently only supports the 64-bit target loongarch64-unknown-linux-gnu. It has been tested to build with GCC 12.1, GDB 12.1, Glibc 2.36, Linux 5.19 and Binutils 2.39 as of Aug 2022. Signed-off-by: Jiajie Chen <c@jia.je>
* | Select KERNEL_SUPPORTS_SHARED_LIBS on WindowsLike Ma2022-08-191-0/+2
| | | | | | | | | | | | Fix building MinGW only generating libstdc++.a Signed-off-by: Like Ma <likemartinma@gmail.com>
* | binutils: Add binutils 2.39Chris Packham2022-08-142-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | https://sourceware.org/pipermail/binutils/2022-August/122246.html Add binutils 2.39 and regenerate patches. 0008-binutils-2.38-vs.-ppc32-linux-kernel.patch is dropped as it has been applied upstream. Add a milestone for 2.39 which will be handy for Loongarch. Binutils now requires bison >= 3.0.4 to build gprofng for x86/aarch64 so we build our own bison when the host bison does not meet that requirement (which appears to be the case on macOS). Signed-off-by: Chris Packham <judge.packham@gmail.com>
* | Fixes for libstdcxx-verbose option tristateNorbert Lange2022-07-111-1/+0
| | | | | | | | | | | | | | | | Make it proper "tristate" by not specifying the option. The config GCC_4_8_or_later was removed with cc6b7fad46f5cb3d84, so dont use it.
* | Allow libsanitizer on architectures that support itChris Packham2022-07-119-2/+20
| | | | | | | | | | | | | | | | | | | | | | | | libsanitizer is only supported on selected architectures. Add ARCH_SUPPORTS_LIBSANITIZER and have architectures select this option based on the list of supported configurations from GCC's libsanitizer/configure.tgt. Support for mips64 was added in GCC12 so this is an additional condition for the mips architecture. Fixes #1733 Signed-off-by: Chris Packham <judge.packham@gmail.com>
* | newlib: fix conflicting configure optionsChen Tao2022-06-281-0/+24
| | | | | | | | | | | | | | | | | | | | Configuring the newlib with "--enable-newlib-nano-formatted-io" and "--enable-newlib-io-pos-args" would cause built GCC cannot compile some IO functions like "std::cout". And I added additional notes at Nano Formatted I/O config. Signed-off-by: Chen Tao <t.clydechen@gmail.com>
* | kconfig: modify rules for multilibs configurationChen Tao2022-06-282-6/+10
| | | | | | | | | | | | | | | | | | fix conflict options when compiling multilibs on ARM based architecture. "--with-arch", "--with-cpu", "--with-fpu", "--with-float", and "--with-mode" should not be configured with "--with-multilib-list=list" when configuring multilibs. Signed-off-by: Chen Tao <t.clydechen@gmail.com>
* | glibc: configure adding debug symbols in glibc buildGuillermo E. Martinez2022-06-211-0/+7
|/ | | | | | | | | | After building the cross toolchain and compile a simple C program, objdump reports debug information even though -g modifier was not used. These debug segments are in glibc library and CRT files. So a new config entry: CT_GLIBC_ENABLE_DEBUG was added to control when we want to add debug information to glibc, by default is enabled. Signed-off-by: Guillermo E. Martinez <guillermo.e.martinez@oracle.com>
* Enable D language supportMarc Poulhiès2022-06-142-0/+15
| | | | | | | Enable D support as an experimental feature. GDC becomes a build dependency when enabled. Signed-off-by: Marc Poulhiès <dkm@kataplop.net>