aboutsummaryrefslogtreecommitdiff
path: root/scripts
Commit message (Collapse)AuthorAgeFilesLines
...
* | Create nano.spec file that sits atop the existing nano buildKeith Packard2021-01-141-0/+16
| | | | | | | | Signed-off-by: Keith Packard <keithp@keithp.com>
* | Add newlib-nano as companion libKeith Packard2021-01-141-0/+128
|/ | | | | | | 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>
*-. Merge branches 'elijahr-dtc-1.6.0', 'elijahr-readme-typo', ↵Chris Packham2021-01-133-18/+156
|\ \ | | | | | | | | | 'foss-for-synopsys-dwc-arc-processors-abrodkin-libgmp-for-mac' and 'keith-packard-picolibc-companion'
| | * picolibc: Build libstdc++ against picolibc if requestedKeith Packard2021-01-111-0/+46
| | | | | | | | | | | | | | | | | | | | | This uses the gcc support for building libstdc++ using alternate lib header files. Signed-off-by: Keith Packard <keithp@keithp.com>
| | * gcc: Add support for building libstdc++ with alternate libcKeith Packard2021-01-111-7/+77
| | | | | | | | | | | | | | | | | | | | | This adds another mode to do_gcc_core_backend that builds libstdc++ against an alternate libc implementation. Signed-off-by: Keith Packard <keithp@keithp.com>
| | * picolibc: Convert to companion libraryKeith Packard2021-01-081-12/+25
| | | | | | | | | | | | | | | | | | | | | This allows configurations to include picolibc without excluding another C library. Signed-off-by: Keith Packard <keithp@keithp.com>
| * | libgmp: Fix cross-canadian build for macOSAlexey Brodkin2020-12-231-0/+9
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently when building cross-canadian toolchain for macOS the folowing error happens when GCC is configured: |ld: illegal text-relocation to '___gmp_binvert_limb_table' in |... /.build/... /buildtools/complibs-host/lib/libgmp.a(mp_minv_tab.o) from '___gmpn_divexact_1' in |... /.build/... /buildtools/complibs-host/lib/libgmp.a(dive_1.o) |collect2: error: ld returned 1 exit status Apparently this might be solved with GMP configured with "--with-pic", even though we're talking about static library here. That solution was found here: https://github.com/Homebrew/homebrew-core/pull/25470 Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
* / gcc: Make it aware of Newlib nano IO featureAlexey Brodkin2020-12-231-0/+5
|/ | | | | | | | | | | | | | | | | | | | | | Even though GCC as a compiler has nothing to do with a C library being used it still makes sense to know about Newlib's compact implementation of IO functions: * For targets like MSP430 which require to have such a tuned Newlib if "-mtiny-printf" is passed to the GCC's command-line [1] * For correct compilation of the following GCC's own DejaGnu tests [2]: - gcc/testsuite/gcc.c-torture/execute/920501-8.c - gcc/testsuite/gcc.c-torture/execute/930513-1.c - gcc/testsuite/gcc.dg/torture/builtin-sprintf.c - gcc/testsuite/gcc.c-torture/execute/ieee/920810-1.x [1] https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=02afb6a9321fbfb435452636cedc2cd43f0c4fd2 [2] https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=571bbd0d48d5872eacbd0b681fce6e1ae754520b So we add that missing cross-dependency now. Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
* Run through 'ct-ng updatetools'Kumar Gala2020-12-042-446/+717
| | | | | | Update config.{sub,guess} to get proper awareness for ARM based MacOS. Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
* Merge pull request #1342 from DspHack/feature/add_support_for_ti_c6xChris Packham2020-11-102-1/+80
|\ | | | | Experimental: Add support for the Texas Instruments C6X (TMS320C6000 …
| * c6x: Remove multilib requirementDan Tejada2020-11-021-2/+0
| | | | | | | | | | | | | | Restore tuple config check Add sample configuration Signed-off-by: Dan Tejada <dan.tejada@cantada.com>
| * Experimental: Add support for the Texas Instruments C6X (TMS320C6000 series) ↵Dan Tejada2020-05-202-1/+82
| | | | | | | | | | | | | | | | | | | | DSPs -- c6x: Add support for c6x product families to pass on to uClibC-ng -- c6x: Fix multilib support -- c6x: Add patch fix internal instruction error (GCC 57295) Signed-off-by: Dan Tejada <dan.tejada@cantada.com>
* | arm: Disable context functions for ThumbChris Packham2020-11-011-0/+1
| | | | | | | | | | | | | | | | | | Similar to commit 57679b5e ("Disable context functions for Thumb") when building for thumb we need to unset UCLIBC_HAS_CONTEXT_FUNCS. Fixes #1397 Signed-off-by: Chris Packham <judge.packham@gmail.com>
* | Merge branch 'xlocale' of git://github.com/lancethepants/crosstool-ng into ↵Chris Packham2020-11-011-1/+0
|\ \ | | | | | | | | | lancethepants-xlocale
| * | Don't remove XLOCALE support unconditionally.lancethepants2020-10-151-1/+0
| | | | | | | | | | | | Signed-off-by: Lance Fredrickson <lancethepants@gmail.com>
* | | binutils: Disable glob for better portabilityAlexey Brodkin2020-10-141-0/+4
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since glibc 2.27 glob interface was changed [1] and so "glob" & "glob64" symbols require glibc 2.27+. For us that means if we build Binutils on a machine with glibc 2.27+ produced binaries won't be any longer usable on machines with older glibc. As an example [2]: build on Ubuntu 18.04 (with glibc 2.27) and try to run on CentOS 7.x (with glibc 2.17), you'll see this: ---------------------->8------------------- ldd ld ld: /lib64/libc.so.6: version `GLIBC_2.27' not found (required by ld) ---------------------->8------------------- Now given glob is not really used by Binutils itself (only needed by GDB) and we build Binutils & GDB separately let's make at least Binutils more portable. In theory we may even try to do the same hack for GDB forcing it to use imported glob implementation. But since GDB is now built strictly by C++ compiler we'll get waaay to many incompatibilities due to multiple changes of C++ ABI in between GCC 7.5 of Ubuntu 18.04 and GCC 4.8.5 of CentOS 7.x, so there's no point to even try. [1] https://sourceware.org/git/?p=glibc.git;a=commit;h=ccf970c7a77e86f4f5ef8ecc5e637114b1c0136a [2] https://github.com/zephyrproject-rtos/sdk-ng/issues/280 Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
* | Merge pull request #1400 from fvalette/fix-m4-build-for-mingw32-hostChris Packham2020-10-071-0/+8
|\ \ | | | | | | m4: fix build for mingw32 host
| * | m4: fix build for mingw32 hostFlorent Valette2020-10-061-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | While building a canadian toolchain for windows host (any target), the build failed for m4 host companion_tool with a recent mingw-w64 (at least 7.0.0). m4 needs stack smashing protection which is not part of mingw-w64 c library and an explicit trigger to link w/ libssp is needed. Signed-off-by: Florent Valette <florent.valette@gmail.com>
* | | glibc: set glibc build system default_cflags emptyHans-Christian Noren Egtvedt2020-10-051-0/+2
|/ / | | | | | | | | | | | | | | | | | | By setting glibc build system default_cflags to be empty before building, we will enforce the build system to only use the crosstool-ng CFLAGS when building glibc. Properly solves the issue identified in #1396. Signed-off-by: Hans-Christian Noren Egtvedt <hegtvedt@cisco.com>
* | Merge branch 'picolibc-multiarch' of ↵Chris Packham2020-09-203-8/+8
|\ \ | | | | | | | | | git://github.com/keith-packard/crosstool-ng into master
| * | picolibc: Use target architecture to drive picolibc configurationKeith Packard2020-09-161-5/+5
| | | | | | | | | | | | | | | | | | This selects code matching the target architecture within picolibc. Signed-off-by: Keith Packard <keithp@keithp.com>
| * | Map picolibc to suitable CT_TARGET_SYS valuesKeith Packard2020-09-162-3/+3
| | | | | | | | | | | | | | | | | | | | | picolibc is another bare-metal C library, and so should be mapped to CT_TARGET_SYS just like newlib does. Signed-off-by: Keith Packard <keithp@keithp.com>
* | | Patches: search package patches in the top package directoryMikhail Falaleev2020-09-101-3/+5
|/ / | | | | | | | | | | | | | | | | Before patches for specific package were searched in packages/${pkg_name}/${version}. This means that with usage of custom version, patches wont be applied. This commit makes ct-ng search bundled patches also in packages/${pkg_name} directory. That means that we can put some patches in this directory, that will be applied to any version of this component.
* | Merge branch 'BR1_zlinux_cross_comp' of ↵Chris Packham2020-09-062-9/+2
|\ \ | | | | | | | | | git://github.com/pradghos/crosstool-ng into pradghos-BR1_zlinux_cross_comp
| * | Adding new samples s390x/s390-unknown-linux-gnuPradipta Ghosh2020-08-272-9/+2
| |/ | | | | | | | | | | | | - s390x/s390 is allowed to pair with other vendor name. - new samples are being added to use this flexibility. - Fix space issue
* | Add picolibc support [v2]Keith Packard2020-09-011-0/+111
| | | | | | | | | | | | | | | | | | | | | | | | This adds support for using picolibc instead of newlib on embedded systems. Signed-off-by: Keith Packard <keithp@keithp.com> v2: Add check for meson and ninja Sync option default values with current picolibc defaults Remove xtensa sys header file install as those aren't in picolibc
* | Merge pull request #1366 from antmak/bugfix/zlib_macos_patchChris Packham2020-08-301-1/+1
|\ \ | | | | | | zlib-1.2.11: Add a patch to cross-compile for macos
| * | crosstool-NG: Fix libtool for mangled tuples as all other cross-toolsAnton Maklakov2020-08-031-1/+1
| |/
* | Enable static libgcc when CT_GDB_NATIVE_STATIC_LIBSTDCXX is setStephanos Ioannidis2020-05-261-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit updates the GDB build script to specify `-static-libgcc` when `CT_GDB_NATIVE_STATIC_LIBSTDCXX` is enabled. Both libgcc and libstdc++ are considered to be part of the "standard libraries," and should be specified by the same flag (the configuration symbol could potentially use a better name and/or further indirection). This also semantically aligns the `CT_GDB_NATIVE_STATIC_LIBSTDCXX` with the equivalent GCC configuration `CT_CC_GCC_STATIC_LIBSTDCXX`, which also enables static linking of both libgcc and libstdc++. Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
* | Fix CT_GDB_NATIVE_STATIC_LIBSTDCXX referenceStephanos Ioannidis2020-05-261-2/+2
|/ | | | | | | This commit fixes an incorrect reference to the configuration `CT_GDB_NATIVE_STATIC_LIBSTDCXX` in the GDB build script. Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
* Add --with-cpu= on 32-bit SPARCAlexey Neyman2020-03-031-15/+26
| | | | | | ... if building for GLIBC 2.31+. Signed-off-by: Alexey Neyman <stilor@att.net>
* Set --with-cpu-{32,64} for multilib buildsAlexey Neyman2020-02-263-13/+39
| | | | | | | GLIBC 2.31 needs --with-cpu=ultrasparc for both 32/64-bits now, and --with-cpu only sets the CPU model for the "primary" bitness. Signed-off-by: Alexey Neyman <stilor@att.net>
* Merge pull request #1270 from nolange/prevent_glibc_cflags_overrideAlexey Neyman2020-02-161-1/+4
|\ | | | | prevent the glibc build from overwriting flags
| * prevent the glibc build from overwriting flagsNorbert Lange2019-10-271-1/+4
| | | | | | | | | | | | | | | | | | The glibc will append the content of the CFLAGS variable, overriding previous flags. If unset, the CFLAGS variable is not empty, so explicitly set it. Instead prepend the default CFLAGS flags. Signed-off-by: Norbert Lange <nolange79@gmail.com>
* | Merge pull request #1266 from nolange/move_builddir_kconfigAlexey Neyman2020-02-161-1/+0
|\ \ | | | | | | move BUILD_DIR variable into Kconfig
| * | move BUILD_DIR variable into KconfigNorbert Lange2019-10-191-1/+0
| |/ | | | | | | | | | | | | this allows users to reference this variable, for ex. in TARGET_CFLAGS to remap paths. Signed-off-by: Norbert Lange <nolange79@gmail.com>
* | Merge pull request #1303 from stilor/wipAlexey Neyman2020-02-091-0/+6
|\ \ | | | | | | Update docker to ubuntu 19.10
| * | Suppress YAML support in DTCAlexey Neyman2020-02-031-0/+6
| | | | | | | | | | | | | | | | | | ... which fails to build if pkg-config is not installed. Signed-off-by: Alexey Neyman <stilor@att.net>
* | | Merge pull request #1257 from nolange/fix_binutils_typoAlexey Neyman2020-01-211-1/+1
|\ \ \ | | | | | | | | fixup typo in bitutils.sh
| * | | fix nonfunctional --enable-relro optionNorbert Lange2019-10-151-1/+1
| | |/ | |/| | | | | | | Signed-off-by: Norbert Lange <nolange79@gmail.com>
* | | Merge pull request #1274 from maxmorozov/masterAlexey Neyman2020-01-211-1/+3
|\ \ \ | |_|/ |/| | CT_LIBC_NEWLIB_REGISTER_FINI is processed correctly
| * | CT_LIBC_NEWLIB_FSEEK_OPTIMIZATION and CT_LIBC_NEWLIB_FVWRITE_IN_STREAMIO are ↵Morozov Max2019-11-041-0/+2
| | | | | | | | | | | | took into account now
| * | CT_LIBC_NEWLIB_REGISTER_FINI is processed correctlyMorozov Max2019-11-041-1/+1
| |/
* | Merge pull request #1259 from nolange/add_binutils_deterministic_archivesAlexey Neyman2019-12-231-0/+3
|\ \ | | | | | | enable option for binutils deterministic-archives
| * | enable option for binutils deterministic-archivesNorbert Lange2019-10-101-0/+3
| |/ | | | | | | Signed-off-by: Norbert Lange <nolange79@gmail.com>
* | Merge pull request #1201 from abrodkin/topic-glibc-multilibAlexey Neyman2019-12-231-0/+36
|\ \ | | | | | | ARC: Support building of multi-lib Glibc toolchain
| * | ARC: Support building of multi-lib Glibc toolchainAlexey Brodkin2019-06-141-0/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | From GCC's standpoint ARC's multilib items are defined by "mcpu" values which we have quite a few and for all of them might be built optimized cross-toolchain. From Glibc's standpoint multilib is just multi-ABI [1] and so very limited versions are supposed to co-exist (e.g. arc700 & archs). Here we force Glibc to install libraries in GCC's multilib folder to create a universal cross-toolchain that has libs optimized for multiple CPU types. But note we only need to mess with installation paths in case of real multilib, otherwise we keep default "lib/" paths so that GCC finds default (the one and only) libs where it expects them to be. Also here we add a sample which allows to build universal Glibc Linux toolchain for ARC. [1] https://sourceware.org/ml/libc-alpha/2019-06/msg00018.html Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
* | | Merge pull request #1280 from dimkr/musl-cflagsAlexey Neyman2019-12-231-1/+2
|\ \ \ | | | | | | | | Resepct CT_TARGET_{C,LD}FLAGS when building musl
| * | | Resepct CT_TARGET_{C,LD}FLAGS when building muslDima Krasner2019-12-041-1/+2
| | |/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I was trying to build static binaries for a range of Broadcom soft-float ARMv7 SoCs and kept getting SIGILL, although I was targeting Cortex A7 (and A5, later), even on A9 and A15. I found out that once I add -msoft-float, +mp+sec is to blame: Attribute Section: aeabi File Attributes - Tag_CPU_name: "7VE" + Tag_CPU_name: "7" Tag_CPU_arch: v7 - Tag_CPU_arch_profile: Application - Tag_ARM_ISA_use: Yes Tag_THUMB_ISA_use: Thumb-2 Tag_ABI_PCS_wchar_t: 4 Tag_ABI_FP_rounding: Needed @@ -12,8 +10,5 @@ File Attributes Tag_ABI_FP_number_model: IEEE 754 Tag_ABI_align_needed: 8-byte Tag_ABI_enum_size: int Tag_ABI_optimization_goals: Aggressive Size Tag_CPU_unaligned_access: v6 - Tag_MPextension_use: Allowed - Tag_DIV_use: Allowed in v7-A with integer division extension - Tag_Virtualization_use: TrustZone and Virtualization Extensions (This is the readelf -A diff, before and after armv7-a+nofp -> armv7+nofp). I kept getting SIGILL even after building my application with a toolchain built with the correct CFLAGS and found out that crosstool-ng doesn't pass the host CFLAGS when building musl, which pollutes my binary with these ARMv7 extensions. Signed-off-by: Dima Krasner <dima@dimakrasner.com>
* / | Add newlib retargetable locking configurationStephanos Ioannidis2019-12-201-0/+1
|/ / | | | | | | | | | | | | This commit adds support for the newlib configuration option '--enable-newlib-retargetable-locking'. Signed-off-by: Stephanos Ioannidis <root@stephanos.io>