aboutsummaryrefslogtreecommitdiff
path: root/scripts
Commit message (Collapse)AuthorAgeFilesLines
...
* Add more caching to the CIQuentin Boswank2023-10-041-0/+1
| | | | | | | | | | | more specificaly to the tarballs download. The function CT_Fetch now touches the already existing files to be comparable to the not used ones that can araise when a package is updated. This comparsion is needed because if it would not exist the tarball would grow in size due to not used but still cached packages. This would take time but is definitly something to worry about. Signed-off-by: Quentin Boswank <qubos@outlook.de>
* use -all-static when building a static gdbChris Copeland2023-09-241-2/+8
| | | | | | | | | | | gdb is linked with libtool, which has a different meaning for -static, and -all-static must be used to get a static executable. The binutils build script already uses this option for static builds. Also remove unnecessary -static from cflags for the gdb build. Signed-off-by: Chris Copeland <chris@chrisnc.net>
* Add a musl variable LIBC_MUSC_EXTRA_CFLAGSNorbert Lange2023-09-241-2/+5
| | | | Signed-off-by: Norbert Lange <nolange79@gmail.com>
* fix toolchain build with linker pluginsNorbert Lange2023-09-241-1/+11
| | | | | | | | | older binutils dont automatically pick up plugins, but need to manually use wrappers like gcc-ar. This fix allows to compile the host toolchain with -ftlo on debian stretch. Signed-off-by: Norbert Lange <nolange79@gmail.com>
* glibc: Add option for building libcryptChris Packham2023-08-251-0/+4
| | | | | | | 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>
* gdb: fix build with recent ncursesKirill K. Smirnov2023-08-151-1/+8
| | | | | | For mingw host a special macro NCURSES_STATIC must be defined. Signed-off-by: Kirill K. Smirnov <kirill.k.smirnov@gmail.com>
* Add option to re-enable ˋlibstdc++ˋ on avr targets.Quentin Boswank2023-08-142-18/+52
| | | | | | | | | | | 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>
* Properly build multilib bare-metal RISC-VKirill K. Smirnov2023-07-141-0/+6
| | | | | | | | | 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>
* Add default msvcrt options for mingw-w64Timo Rothenpieler2023-06-041-1/+19
| | | | Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
* gdb: Static cross GDB is linked statically with std c++ libraryMaksim Morozov2023-05-311-1/+2
| | | | | | | | | | If static cross GDB configuration is selected, cross GDB will be linked statically with std c++ library, because there is no separate option for static std c++ library for cross GDB. The use of not existing variable CT_GDB_NATIVE_STATIC_LIBSTDC has been replaced with CT_GDB_NATIVE_STATIC_LIBSTDCXX. Signed-off-by: Maksim Morozov <maxim.morozov.a@gmail.com>
* gdb: Use a relative includedir for native gdb and gdbserverYuriy Kolerov2023-05-281-2/+13
| | | | | | | | | | Use a relative path for include directory if gdb or gdbserver is being built and installed for a target. Otherwise headers are installed in ${destdir}${CT_HEADERS_DIR} - a concatenation of ${destdir} and an absolute path to sysroot's include directory. As a result debug-root may contain wrong paths for includes. Signed-off-by: Yuriy Kolerov <ykolerov@synopsys.com>
* mpfr: Add support of building MPFR for targetYuriy Kolerov2023-05-191-3/+53
| | | | | | | | 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>
* gdb: Fix extra config variable name for native GDBYuriy Kolerov2023-05-191-2/+2
| | | | | | | Variable native_extra_config must be used for configuration options instead for extra_config for native GDB. Signed-off-by: Yuriy Kolerov <ykolerov@synopsys.com>
* newlib: Add missing linker options for nano.specsYuriy Kolerov2023-05-101-1/+1
| | | | | | | | Old options %(newlib_nano_link) for the linker must be passed otherwise linking may fail. E.g., in case of multilib configurations a correct emulation mode may be not passed. Signed-off-by: Yuriy Kolerov <ykolerov@synopsys.com>
* picolibc: Allow default memory layout values to be configuredKeith Packard2023-04-191-0/+4
| | | | | | | | 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>
* picolibc: Don't disable libstdc++ wchar_t for 1.8.1 or newerKeith Packard2023-04-192-2/+6
| | | | | | | Picolibc 1.8.1 has wchar_t stdio support, so libstdc++ can include it. Signed-off-by: Keith Packard <keithp@keithp.com>
* Add option for experimental bundled patchesBryan Hundven2023-03-161-24/+30
| | | | | | | | | | | | | | | | | | 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>
* binutils: Add binutils 2.40Chris Packham2023-03-081-0/+6
| | | | | | https://sourceware.org/pipermail/binutils/2023-January/125671.html Signed-off-by: Chris Packham <judge.packham@gmail.com>
* picolibc: Add configuration to select picolibc as the system libcJoakim Nohlgård2023-03-082-69/+112
| | | | | | | 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: Add --disable-wchar_t and --enable-stdio=pure for picolibcKeith Packard2023-03-081-0/+12
| | | | | | | | | Picolibc needs two additional gcc build options so that libstdc++ works correctly. When building picolibc as a companion library, those are added in do_cc_libstdcxx_picolibc, but when built with picolibc as the main C libary, those need to be added in the main GCC build. Signed-off-by: Keith Packard <keithp@keithp.com>
* picolibc: Use ${CT_CC} for compilerJoakim Nohlgård2023-03-081-1/+1
| | | | Signed-off-by: Joakim Nohlgård <joakim@nohlgard.se>
* gdb: Add gdb 13.1Chris Packham2023-02-251-0/+6
| | | | | | | https://sourceware.org/pipermail/gdb-announce/2023/000134.html https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=blob_plain;f=gdb/NEWS;hb=gdb-13.1-release Signed-off-by: Chris Packham <judge.packham@gmail.com>
* Add zstd to the companion libsQuentin Boswank2023-02-082-1/+103
| | | | | | | | 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/+15
|\ | | | | Add option to build toolchain tarball
| * Add option to build toolchain tarballChris Packham2022-06-151-0/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-187-5/+44
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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/+7
| | | | | | | | | | | | | | | | | | 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>
* | scripts/gcc: Add extra include dir with -idirafterJoakim Nohlgård2022-12-111-1/+14
| | | | | | | | | | | | | | | | Fixes Canadian cross builds failing with missing include file 'stdio.h' when building libstdc++ for a companion libc with system libc set to LIBC_NONE. Signed-off-by: Joakim Nohlgård <joakim@nohlgard.se>
* | scripts/gcc: align test conditionals with rest of repoJoakim Nohlgård2022-12-111-5/+4
| | | | | | | | | | | | | | | | | | Most scripts in crosstool-ng use [ -z "${string}" ] to check for empty variables. Deleted one duplicate declaration of the local exec_prefix Signed-off-by: Joakim Nohlgård <joakim@nohlgard.se>
* | Detect if a package src_dir is missingJoakim Nohlgård2022-12-041-1/+2
| | | | | | | | | | | | | | | | If a user deletes the package directory under .build/src/ but fails to remove the hidden stamp files the CT_DoExtractPatch function will detect this, delete the stamps and perform the full extract-and-patch step. Signed-off-by: Joakim Nohlgård <joakim@nohlgard.se>
* | Update config.{guess,sub}Bryan Hundven2022-10-272-8/+31
| | | | | | | | Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
* | linux: Add 6.0.2 bump LTSChris Packham2022-10-181-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | Add 6.0.2 Bump 5.19.2 -> 5.19.16 Bump 5.15.58 -> 5.15.74 Bump 5.10.134 -> 5.10.148 Bump 5.4.208 -> 5.4.218 Bump 4.9.325 -> 4.9.330 Bump 4.19.254 -> 4.19.261 Bump 4.14.290 -> 4.14.295 Signed-off-by: Chris Packham <judge.packham@gmail.com>
* | Add the gdc compiler to the list of tools checked/linkedMarc Poulhiès2022-10-161-1/+1
| | | | | | | | | | | | Add gdc to the tool list but leave it optionnal. Signed-off-by: Marc Poulhiès <dkm@kataplop.net>
* | binutils: add option to build libopcodes for targetDries Deschout2022-10-021-2/+3
| | | | | | | | | | | | It provides functionality to disassemble executable binaries. Signed-off-by: Dries Deschout <dries.deschout@dodeco.eu>
* | cc/gcc: Use canon_prefix when dealing with moved librariesChris Packham2022-09-261-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | ${CT_PREFIX_DIR} may contain relative paths (e.g. "${CT_TOP_DIR}/../x-tools/${CT_TARGET}"). Code added in commit d83a0036 ("Add symlinks from the libraries' original location to the new one.") didn't cope well with this. As we're already calculating ${cannon_prefix} make use of it when adding the symlinks. This avoids any issues with ${CT_PREFIX_DIR}. Fixes #1807 Signed-off-by: Chris Packham <judge.packham@gmail.com>
* | Add CC_GCC_ENABLE_DEFAULT_PIELike Ma2022-08-191-0/+4
| | | | | | | | | | | | | | | | 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/+5
| | | | | | | | | | | | | | | | | | | | | | | | 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>
* | Fixes for libstdcxx-verbose option tristateNorbert Lange2022-07-111-0/+2
| | | | | | | | | | | | | | | | 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-111-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | 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>
* | Switch CT_CC_{CORE_}SYSROOT_ARG to arraysJustin Chen2022-07-012-5/+5
| | | | | | | | | | | | | | CT_CC_{CORE_}SYSROOT_ARG is being used both as an array and string. Switch everything to be used as an array for consistency. Signed-off-by: Justin Chen <justinpopo6@gmail.com>
* | Update config.sub and config.guessBryan Hundven2022-06-282-21/+47
| | | | | | | | | | | | ./ct-ng updatetools Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
* | glibc: configure adding debug symbols in glibc buildGuillermo E. Martinez2022-06-211-1/+5
|/ | | | | | | | | | 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-141-0/+1
| | | | | | | Enable D support as an experimental feature. GDC becomes a build dependency when enabled. Signed-off-by: Marc Poulhiès <dkm@kataplop.net>
* gcc: Fix compilation error in core C gcc compiler older than v5Guillermo E. Martinez2022-06-011-2/+8
| | | | | | | | | | | | | | | | | | | | | When core gcc older than v5 is compiled it shows the error message: Build failed in step 'Installing core C gcc compiler' called in step '(top-level)' Error happened in: CT_DoExecLog[scripts/functions@376] called from: do_gcc_core_backend[scripts/build/cc/gcc.sh@627] called from: do_cc_core[scripts/build/cc/gcc.sh@210] called from: main[scripts/crosstool-NG.sh@697] configure: error: in `.../build/build-cc-gcc-core/fixincludes': configure: error: C compiler cannot create executables This patch disable `all-build-libcpp' target when core gcc older than v5 is configured. Signed-off-by: Guillermo E. Martinez <guillermo.e.martinez@oracle.com>
* gmp: Set CC_FOR_BUILD and CPP_FOR_BUILDChris Packham2022-05-311-2/+5
| | | | | | | | | When GMP is being "cross" compiled for the same architecture (i.e. build == host) it does not pick the right compiler. Set CC_FOR_BUILD and CPP_FOR_BUILD to override the default compiler. Fixes #1328 Signed-off-by: Chris Packham <judge.packham@gmail.com>
* gcc: Add 12.1Chris Packham2022-05-191-2/+2
| | | | | | | | | | | | | | | | | | | Add GCC 12.1 https://gcc.gnu.org/gcc-12/ The following patches from GCC 11.3.0 are no longer needed: - 0005-arc-Update-ZOL-pattern.patch - 0006-arc-Update-u-maddhisi4-patterns.patch - 0007-arc-Fix-maddhisi-patterns.patch - 0008-Darwin-aarch64-Initial-support-for-the-self-host-dri.patch - 0009-libstdc-Check-for-TLS-support-on-mingw-cross-compile.patch One new patch is needed to avoid issues building sh-unknown-elf: - 0006-sh-Avoid-mb-m1-multilib-combination.patch It is also necessary to build all-build-libcpp. This target exists as far back as GCC 6 so has been done unconditionally. Signed-off-by: Chris Packham <judge.packham@gmail.com>
* glibc: Reinstate support for the bundled portsChris Packham2022-05-181-0/+3
| | | | | | | | | | | Commit 6d5227b6 ("Remove obsolete glibc 2.12.1") removed supports for the separate glibc-ports but also removed GLIBC_USE_PORTS_ADDON. Glibc versions up to 2.20 bundled support from some architectures in the ports directory so GLIBC_USE_PORTS_ADDON is required to support these older glibc versions. Fixes #1736 Signed-off-by: Chris Packham <judge.packham@gmail.com>
* duma: Add version 2.5.21Chris Packham2022-05-151-0/+1
| | | | | | | | | | | | Add duma 2.5.21 and mark 2.5.15 as obsolete. While we're at it use the versions hosted on github which requres new checksums for the 2.5.15 version because the generated tarballs are different. It appears we don't need any of the patches we've been carrying for the older version but we do need to pass CC_FOR_BUILD in addition to HOSTCC. When 2.5.15 is removed we can drop HOSTCC (and DUMA_CPP, DUMA_SO). Signed-off-by: Chris Packham <judge.packham@gmail.com>
* newlib-nano: Fix include path for CT_NEWLIB_NANO_INSTALL_IN_TARGETStephanos Ioannidis2022-05-121-1/+1
| | | | | | | | | | | | | | | | | | When `CT_NEWLIB_NANO_INSTALL_IN_TARGET=y`, the `nano.specs` file emitted by the newlib-nano build script contains an invalid include path, resulting in the full `newlib.h` being included instead of the nano `newlib.h` by the application. `=/include/newlib-nano` is not a valid path (`=` does not mean anything and that string is taken as an include path as-is) and GCC ignores this include path, resulting in application including the `newlib.h` from `include/` which contains the newlib build configurations for the full newlib. This commit modifies the newlib-nano build script to emit a proper newlib-nano include path relative to the `GCC_EXEC_PREFIX`. Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
* scripts/build/companion_libs: Fix missing directory with newlib-nanoDerald D. Woods2022-05-121-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | With 'CT_NEWLIB_NANO_INSTALL_IN_TARGET=y', this build failure occurs: ---------------------------------------------------------------------- [...] [INFO ] Installing Newlib Nano library [EXTRA] Configuring Newlib Nano library [EXTRA] Building Newlib Nano C library [EXTRA] Installing Newlib Nano C library [INFO ] Installing Newlib Nano library: done in 110.66s (at 29:04) [INFO ] ================================================================= [INFO ] Installing libstdc++ newlib-nano [EXTRA] Configuring libstdc++ for newlib-nano [EXTRA] Building libstdc++ newlib-nano library [EXTRA] Installing libstdc++ newlib-nano library [EXTRA] Housekeeping for core gcc compiler [EXTRA] '' --> lib (gcc) lib (os) [EXTRA] ' -mthumb' --> lib/thumb (gcc) lib/thumb (os) [EXTRA] ' -marm -mfpu=auto -march=armv5te+fp -mfloat-abi=hard' --> lib/arm/autofp/v5te/fpu (gcc) lib/arm/autofp/v5te/fpu (os) [EXTRA] ' -mthumb -mfpu=auto -march=armv7+fp -mfloat-abi=hard' --> lib/thumb/autofp/v7/fpu (gcc) lib/thumb/autofp/v7/fpu (os) [INFO ] Installing libstdc++ newlib-nano: done in 457.12s (at 36:42) [ERROR] [ERROR] >> [ERROR] >> Build failed in step '(top-level)' [ERROR] >> [ERROR] >> Error happened in: CT_DoExecLog[scripts/functions@376] [ERROR] >> called from: newlib_nano_copy_multilibs[scripts/build/companion_libs/350-newlib_nano.sh@270] [ERROR] >> called from: CT_IterateMultilibs[scripts/functions@1608] [ERROR] >> called from: do_newlib_nano_for_target[scripts/build/companion_libs/350-newlib_nano.sh@254] [ERROR] >> called from: do_companion_libs_for_target[scripts/build/companion_libs.sh@43] [ERROR] >> called from: main[scripts/crosstool-NG.sh@697] Current command: 'cp' '-f' '/build/toolchain/arm-none-eabi/newlib-nano/arm-none-eabi/lib/thumb/libc.a' '/build/toolchain/arm-none-eabi/arm-none-eabi/lib/thumb/libc_nano.a' exited with error code: 1 Please fix it up and finish by exiting the shell with one of these values: 1 fixed, continue with next build command 2 repeat this build command 3 abort build ---------------------------------------------------------------------- This commit calls 'mkdir -p' to create the destination path before copying. Signed-off-by: Derald D. Woods <woods.technical@gmail.com>