summaryrefslogtreecommitdiff
path: root/config
AgeCommit message (Collapse)AuthorFilesLines
2022-02-11Retire obsoleted milestonesAlexey Neyman11-148/+11
... 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-01-30Fix deterministic binutils optionNorbert Lange1-2/+2
Versions before 2.26 got removed in fa992b41, together with CT_BINUTILS_2_23_or_later. Remove reference to this variable Signed-off-by: Norbert Lange <nolange79@gmail.com>
2022-01-12glibc: Re-enable WerrorChris Packham1-3/+0
Now that we have a 2-pass build it is no longer necessary to disable -Werror in glibc. This partially reverts commits 6ca5f91f ("Disable -Werror for GLIBC for all ARCH for GCC11."), 215432d3 ("config/libc: Extend glibc 2.32 workaround to include sparc") and 645ee124 ("glibc: Don't build with -Werror for powerpc64+glibc-2.32"). Signed-off-by: Chris Packham <judge.packham@gmail.com>
2022-01-12gcc: Build static libgcc in core_pass1Chris Packham6-12/+5
Per https://github.com/crosstool-ng/crosstool-ng/issues/808 build static libgcc in the first pass which lets us skip the second one. Building mingw-w64 requires header files in order to build C++ support so mingw builds core pass 2. This could probably be cleaned up by splitting libc_start_files into a separate libc_header step. But for now having core 2 for mingw-w64 and core 1 for the other libcs will have to do. Anything that previously selected CC_CORE_PASSES_NEEDED now selects CC_CORE_PASS_1_NEEDED. The same goes for CC_CORE_PASS_2_NEEDED with the exception of mingw-w64. Fixes #808 Fixes #217 Signed-off-by: Chris Packham <judge.packham@gmail.com>
2021-11-30glibc: Add comment about python 3.4 dependencyChris Packham1-0/+3
Add a comment that is visible when the python3.4 prerequisite is not met so that users can tell why they can't select a newer glibc version. Signed-off-by: Chris Packham <judge.packham@gmail.com>
2021-11-30linux: Add dependency on rsync for Linux >= 5.3Chris Packham2-0/+10
As of Linux v5.3 rsync is used as part of the build process. Add Linux 5.3 as a milestone, configure detection of rsync and a dependency on rsync for Linux 5.3 and newer. Add a comment in so that users can tell why they can't select a newer version. Fixes #1628 Signed-off-by: Chris Packham <judge.packham@gmail.com>
2021-10-10ncurses: Use new v6 ABI by defaultAlexey Brodkin1-1/+1
These days old v5 ABI is not that relevant as it used to be back in 2015 when ncurses 6.x was added to CT-NG. And now we see say target "gdb" relying on "libncurses.so.5", while up-to-date Buildroot provides "libncurses.so" & "libncurses.so.6": --------------------------->8------------------------- $ ldd /bin/gdb libncurses.so.5 => not found libstdc++.so.6 => /lib/libstdc++.so.6 (0x20022000) libm.so.6 => /lib/libm.so.6 (0x2017c000) libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x201ba000) libc.so.6 => /lib/libc.so.6 (0x201c8000) /lib/ld-linux-arc.so.2 (0x20000000) --------------------------->8------------------------- Switching to a default (v6 ABI) by default. And... --------------------------->8------------------------- $ ldd /bin/gdb libncurses.so.6 => /usr/lib/libncurses.so.6 (0x20022000) libstdc++.so.6 => /lib/libstdc++.so.6 (0x20054000) libm.so.6 => /lib/libm.so.6 (0x201ae000) libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x201ec000) libc.so.6 => /lib/libc.so.6 (0x201fa000) /lib/ld-linux-arc.so.2 (0x20000000) --------------------------->8------------------------- Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
2021-09-21binutils: Remove obsolete versionsChris Packham2-19/+0
The following versions were marked obsolete in crosstool-ng-1.24.0, remove them. - binutils-linaro-2.23.2-2013.10-4 - binutils-linaro-2.24.0-2014.11-2 - binutils-linaro-2.25.0-2015.01-2 - binutils-2.23.2 - binutils-2.24 - binutils-2.25.1 Adjust the milestones now that the old versions have been removed. Signed-off-by: Chris Packham <judge.packham@gmail.com>
2021-09-21gdb: Remove old milestonesChris Packham3-17/+1
Now that the oldest supported version of gdb is 7.11.1 we can make some parts of the build unconditional and remove the associated config vars. Signed-off-by: Chris Packham <judge.packham@gmail.com>
2021-09-19gdb: Add gdb-11.1Chris Packham1-0/+1
Drop the uclibc-no-gettimeofday-clobber patch as it no longer applies. The arc patches are all upstream. Signed-off-by: Chris Packham <judge.packham@gmail.com>
2021-09-19gmp: Support building for targetChris Packham1-0/+4
Allow GMP to be build for the target. This will be needed by the up coming gdb-11. Signed-off-by: Chris Packham <judge.packham@gmail.com>
2021-08-29cc/gcc: Add options for zstd usageChris Packham1-0/+19
GCC can support using zstd compression for LTO object files. By default GCC's configure will enable this if libzstd is installed on the machine building the toolchain. This may be undesirable if the toolchain is to be used on a different machine. Add an option to control zstd usage and set the default to the same as the current behaviour (i.e. auto). Fixes #1579 Signed-off-by: Chris Packham <judge.packham@gmail.com>
2021-08-24gdb: Add gdb-10.2Alexey Brodkin1-0/+6
In GDB 10.x gdbserver was promoted to the top-level folder, see https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=919adfe8409211c726c1d05b47ca59890ee648f1 Which means it is no longer a subfolder in "gdb" and so we have to build gdbserver now exactly in the same way as normal native GDB. One interesting detail is gdbserver doesn't need to deal with target description in .xml so it doesn't depend on libexpat on target, thus we need to move libexpat explicit selection from do_gdb_backend() to its callers when building native [full] gdb as well as cross-gdb for the host. Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com> [cp: support old/new layout, regenerate patches] Signed-off-by: Chris Packham <judge.packham@gmail.com>
2021-07-06Add EXTRA_CXXFLAGS_FOR_BUILD optionRaphael Catolino1-1/+11
Signed-off-by: Raphael Catolino <raphael.catolino@gmail.com>
2021-06-24Add fcommon flag help and remove extra empty linesNik Konyuchenko1-1/+3
Signed-off-by: Nik Konyuchenko <spaun2002mobile@gmail.com>
2021-06-24Fix build of older Glibc using GCC >=10Nik Konyuchenko1-0/+7
Issue #1535 GCC 10 changed the default to -fno-common, which leads to a linking error in GLibc older than 2.30. This change adds -fcommon cflag for the target GLibc versions <=2.29 and GCC >=10. This change also adds additional cflags for the target GLibc to disable new GCC11 checks that lead to compilation errors. Signed-off-by: Nik Konyuchenko <spaun2002mobile@gmail.com>
2021-06-19gcc: Make CC_GCC_TM_CLONE_REGISTRY tristateChris Packham1-1/+8
Explicitly passing --disable-tm-clone-registry causes gcc to create a crtbegin.o with a zero-sized .init_array/.fini_array. This in turn causes ld to complain. Make CC_GCC_TM_CLONE_REGISTRY a tristate so if it's not explicitly enabled we can let ./configure decide. Fixes #1531 Fixes: 1e21a302 ("gcc: Add CT_CC_GCC_TM_CLONE_REGISTRY config") Signed-off-by: Chris Packham <judge.packham@gmail.com>
2021-06-09Merge pull request #1524 from ↵Chris Packham1-0/+8
stephanosio/gcc_custom_libstdcpp_cxx_flags_upstream Fix libstdc++ build options
2021-06-07gcc: Add CT_CC_GCC_TM_CLONE_REGISTRY configStephanos Ioannidis1-0/+7
This commit adds a new gcc config `CT_CC_GCC_TM_CLONE_REGISTRY` that enables the GCC transactional memory clone registry feature for libgcc. Note that the gcc option to control this feature is only available in gcc 10 and above. (see gcc commit 5a4602805eb3ebddbc935b102481e63bffc7c5e6) Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
2021-06-07newlib: Add libstdc++ nano-specific CXXFLAGSStephanos Ioannidis1-0/+8
This commit adds a new config that can be used to specify the target CXXFLAGS specific to the libstdc++ newlib-nano variant. By default, this config is set to specify the `-fno-exceptions` option, which disables C++ exception handling support and greatly reduces the compiled binary size. Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
2021-05-11glibc: --enable-obsolete-rpc has been removed as of 2.32Chris Packham1-1/+1
Make --enable-obsolete-rpc conditional on !GLIBC_2_32_or_later as it's been removed from that version on. Fixes: #1505 Fixes: commit 1ee44ab5 ("glibc: --enable-obsolete-rpc has been removed as of 2.32") Signed-off-by: Chris Packham <judge.packham@gmail.com>
2021-05-11alpha: Support 64-bit onlyChris Packham1-2/+2
Alpha is a 64-bit only arch. The menu options only allowed 32 bitness to be selected. This was harmless but confusing, update the config to specify 64-bit only. Fixes: #1506 Signed-off-by: Chris Packham <judge.packham@gmail.com>
2021-05-05Remove m1 from multilibs for GCC11 on SH arch.spaun20021-0/+1
GCC11 somehow has different set of multilibs on SH arch than what GCC10 had. In particular: $ gcc10 -print-multi-lib | sed -r -e 's/@/ -/g;' .; mb; -mb m2; -m2 m2e; -m2e m4; -m4 m4-single; -m4-single m4-single-only; -m4-single-only mb/m2; -mb -m2 mb/m2e; -mb -m2e mb/m4; -mb -m4 mb/m4-single; -mb -m4-single mb/m4-single-only; -mb -m4-single-only mb/m2a; -mb -m2a mb/m2a-single; -mb -m2a-single $ gcc11 -print-multi-lib | sed -r -e 's/@/ -/g;' .; mb; -mb m2; -m2 m2e; -m2e m4; -m4 m4-single; -m4-single m4-single-only; -m4-single-only mb/m1; -mb -m1 mb/m2; -mb -m2 mb/m2e; -mb -m2e mb/m4; -mb -m4 mb/m4-single; -mb -m4-single mb/m4-single-only; -mb -m4-single-only mb/m2a; -mb -m2a mb/m2a-single; -mb -m2a-single mb/m1 fails to build libgcc as libgcc uses opcodes that were not available in SH-1: libgcc/config/sh/lib1funcs.S uses 'bt/s' and 'dt' instructions that, according to https://antime.kapsi.fi/sega/files/h12p0.pdf become available in the SH-2 only. So I removed mb/m1 from the multilibs fog GCC11 and SH arch. Another option would be to try not to build libgcc for this combination of the gcc version and archichecture, but I thought this fix would be more robust. Signed-off-by: Nik Konyuchenko <spaun2002mobile@gmail.com>
2021-05-05Disable -Werror for GLIBC for all ARCH for GCC11.spaun20021-2/+3
This change replicates what GLIBC 2.23 has in the string/rawmemchr.c: // #if __GNUC_PREREQ (11, 0) // /* Likewise GCC 11, with a different warning option. */ // DIAG_IGNORE_NEEDS_COMMENT (11, "-Wstringop-overread"); // #endif With -Werror multiple platforms failing on the string/rawmemchr.c:40 line. Signed-off-by: Nik Konyuchenko <spaun2002mobile@gmail.com>
2021-04-15newlib-nano: Add option to copy libs into targetKumar Gala1-0/+11
Add an option that will install a copy of newlib-nano lib*.a file in the target dir but renamed with a nano.a suffix (eg: libc_nano.a) as some default nano.spec files from newlib expect this setup. Additionally the newlib-nano version of newlib.h will get copied to include/newlib-nano/newlib.h. Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
2021-03-17Extend CC_GCC_LIBSSP with manual stateIvan Kukhta1-2/+8
Signed-off-by: Ivan Kukhta <Ivan.Kukhta@acronis.com>
2021-02-02config: Update environment variable usageChris Packham2-4/+4
Upstream changes in the way kconfig handles environment variables means we need to update our usage of them. Signed-off-by: Chris Packham <judge.packham@gmail.com>
2021-02-02config/cc/gcc.in: Fix typo CC_GCC_DEC_FLOAT -> CC_GCC_DEC_FLOATSChris Packham1-3/+3
This has gone unnoticed for a while, it looks like all configurations have probably been using the default floats behaviour. Newer kconfig tells us the default value is not in the choice so lets fix this in preparation. Signed-off-by: Chris Packham <judge.packham@gmail.com>
2021-01-24Merge pull request #1448 from dinuxbg/masterChris Packham3-1/+11
Add PRU target configuration
2021-01-19Add package with PRU linker scripts and headersDimitar Dimitrov1-0/+2
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-19Add PRU cross tool targetDimitar Dimitrov2-1/+9
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-14newlib-nano: Build libstdc++ against newlib-nano if requestedKeith Packard1-0/+9
This uses the gcc support for building libstdc++ using alternate lib header files. Signed-off-by: Keith Packard <keithp@keithp.com>
2021-01-14Add newlib-nano as companion libKeith Packard1-0/+224
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-12picolibc: Build libstdc++ against picolibc if requestedKeith Packard1-0/+10
This uses the gcc support for building libstdc++ using alternate lib header files. Signed-off-by: Keith Packard <keithp@keithp.com>
2021-01-12gcc: Add support for building libstdc++ with alternate libcKeith Packard1-1/+1
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>
2021-01-12picolibc: Clean up configuration a bitKeith Packard1-1/+2
Use LIBC_PICOLIBC_CXA_ATEXIT to keep this name in the same 'namespace' as the other picolibc config names. Enable retargetable locking by default. This allows the few locks in picolibc to be implemented by the execution environment, rather than disabling the locking code. Signed-off-by: Keith Packard <keithp@keithp.com>
2021-01-09picolibc: Convert to companion libraryKeith Packard1-8/+5
This allows configurations to include picolibc without excluding another C library. Signed-off-by: Keith Packard <keithp@keithp.com>
2020-11-23Add Oracle products to crosstool-ngJose E. Marchesi1-0/+2
This commit adds support for the following Oracle products, in order to target 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 configuration files are provides for the following triplets: arm-ol7u9-linux-gnueabi arm-ol7u9-linux-gnueabihf Signed-off-by: Egeyar Bagcioglu <egeyar.bagcioglu@oracle.com> Signed-off-by: Jose E. Marchesi <jose.marchesi@oracle.com>
2020-11-10Merge pull request #1342 from DspHack/feature/add_support_for_ti_c6xChris Packham1-0/+15
Experimental: Add support for the Texas Instruments C6X (TMS320C6000 …
2020-11-02c6x: Remove multilib requirementDan Tejada1-23/+1
Restore tuple config check Add sample configuration Signed-off-by: Dan Tejada <dan.tejada@cantada.com>
2020-10-13Clarify tree layout of local patches directoryBagas Sanjaya1-2/+4
Currently the help for LOCAL_PATCH_DIR did not specify the tree layout of custom patches directory. This commit adds such explanation. For example, the bundled patches for GCC are placed under packages/gcc/<gcc-version>, thus custom (local) GCC patches should be placed under $LOCAL_PATCH_DIR/gcc/<gcc-version>. Signed-off-by: Bagas Sanjaya <bagasdotme@gmail.com>
2020-09-14config/libc: Extend glibc 2.32 workaround to include sparcChris Packham1-0/+1
Sparc seems to be affected by the same issues as powerpc64. Disable glibc warnings for sparc. Signed-off-by: Chris Packham <judge.packham@gmail.com>
2020-09-07glibc: --enable-obsolete-rpc has been removed as of 2.32Chris Packham1-1/+2
Make --enable-obsolete-rpc conditional on !CT_GLIBC_2_32_or_later as it's been removed from that version on. Signed-off-by: Chris Packham <judge.packham@gmail.com>
2020-09-06Merge branch 'picolibc' of git://github.com/keith-packard/crosstool-ng into ↵Chris Packham2-0/+130
keith-packard-picolibc
2020-09-03glibc: Don't build with -Werror for powerpc64+glibc-2.32Chris Packham1-0/+1
When building powerpc64+glibc-2.32 we see the following error: [ALL ] In file included from ../sysdeps/powerpc/powerpc32/power4/multiarch/wordcopy-ppc32.c:26, [ALL ] from ../sysdeps/powerpc/powerpc64/multiarch/wordcopy-ppc64.c:18: [ALL ] ../string/wordcopy.c: In function '_wordcopy_fwd_aligned': [ERROR] ../string/wordcopy.c:98:26: error: 'a1' may be used uninitialized in this function [-Werror=maybe-uninitialized] [ALL ] 98 | ((op_t *) dstp)[0] = a1; [ALL ] | ~~~~~~~~~~~~~~~~~~~^~~~ [ALL ] In file included from ../sysdeps/powerpc/powerpc64/power4/../../powerpc32/power4/memcopy.h:38, [ALL ] from ../sysdeps/powerpc/powerpc64/power4/memcopy.h:1, [ALL ] from ../string/wordcopy.c:23, [ALL ] from ../sysdeps/powerpc/powerpc32/power4/multiarch/wordcopy-ppc32.c:26, [ALL ] from ../sysdeps/powerpc/powerpc64/multiarch/wordcopy-ppc64.c:18: [ALL ] ../string/wordcopy.c: In function '_wordcopy_fwd_dest_aligned': [ERROR] ../sysdeps/generic/memcopy.h:72:61: error: 'a3' may be used uninitialized in this function [-Werror=maybe-uninitialized] [ALL ] 72 | #define MERGE(w0, sh_1, w1, sh_2) (((w0) << (sh_1)) | ((w1) >> (sh_2))) [ALL ] | ^~ This seems to only trigger for powerpc64. Other architectures build cleanly. For now avoid specifying -Werror for powerpc64+glibc-2.32. Signed-off-by: Chris Packham <judge.packham@gmail.com>
2020-09-01Add picolibc support [v2]Keith Packard2-0/+130
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
2020-05-21Experimental: Add support for the Texas Instruments C6X (TMS320C6000 series) ↵Dan Tejada1-0/+37
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>
2020-03-04Disallow PPS SPE ABIAlexey Neyman1-0/+4
with GCC 9+ and GLIBC 2.30+, they no longer support it. Signed-off-by: Alexey Neyman <stilor@att.net>
2020-03-04Add --with-cpu= on 32-bit SPARCAlexey Neyman1-2/+6
... if building for GLIBC 2.31+. Signed-off-by: Alexey Neyman <stilor@att.net>
2020-02-26Set --with-cpu-{32,64} for multilib buildsAlexey Neyman4-0/+8
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>