aboutsummaryrefslogtreecommitdiff
path: root/config/libc
Commit message (Collapse)AuthorAgeFilesLines
* 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>
* 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>
* glibc: rework GLIBC_ENABLE_WERRORChris Packham2022-05-311-5/+6
| | | | | | | | | | Use `depends on` conditions to enable/disable building glibc with -Werror. Using `depends on` instead of `default if` means that when the GCC/GLIBC selection changes GLIBC_ENABLE_WERROR will automatically become n. Fixes #1729, fixes #1712 Signed-off-by: Chris Packham <judge.packham@gmail.com>
* glibc: Reinstate support for the bundled portsChris Packham2022-05-181-0/+9
| | | | | | | | | | | 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>
* Remove obsolete glibc 2.12.1Chris Packham2022-05-101-17/+0
| | | | | | | | | glibc 2.12.1 was marked as obsolete. Now that the 1.25.0 release is out this version can be removed completely. As glibc 2.12.1 was the last remaining version supported by glibc-ports support for glibc-ports is also removed. Signed-off-by: Chris Packham <judge.packham@gmail.com>
* Remove obsolete bionic/android supportChris Packham2022-05-101-127/+0
| | | | | | | | 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>
* glibc: Enable -Werror for more combinations of GCC/GLIBCChris Packham2022-05-011-2/+8
| | | | | | | | | | | Newer GCC versions trigger warnings on older GLIBC versions. GLIBC 2.29 is warning free with GCC9. GLIBC 2.31 is warning free with GCC10. GLIBC 2.34 is warning free with GCC11. Add milestones for 2.31 and 2.34 and use those to set the default value for GLIBC_ENABLE_WERROR based on the GCC version. Signed-off-by: Chris Packham <judge.packham@gmail.com>
* bionic: mark bionic/android-ndk as obsoleteChris Packham2022-02-231-0/+1
| | | | | | | | | | 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>
* Unify core passesAlexey Neyman2022-02-116-6/+6
| | | | | | | | | With libc_headers step before pass-1, there is no need to distinguish pass-1 and pass-2; they are configured identically (note that with the current configuration, core pass-2 is only used for win32 - hence, uses build_libgcc=yes and mode=static). Signed-off-by: Alexey Neyman <stilor@att.net>
* Restrict bionic's GCC/GDB selectionsAlexey Neyman2022-02-111-1/+10
| | | | | | Refer to the comments in the code for the reason. Signed-off-by: Alexey Neyman <stilor@att.net>
* Retire obsoleted milestonesAlexey Neyman2022-02-114-94/+4
| | | | | | | | | | | | ... 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>
* glibc: Re-enable WerrorChris Packham2022-01-121-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>
* gcc: Build static libgcc in core_pass1Chris Packham2022-01-125-7/+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>
* glibc: Add comment about python 3.4 dependencyChris Packham2021-11-301-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>
* Add fcommon flag help and remove extra empty linesNik Konyuchenko2021-06-241-1/+3
| | | | Signed-off-by: Nik Konyuchenko <spaun2002mobile@gmail.com>
* Fix build of older Glibc using GCC >=10Nik Konyuchenko2021-06-241-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>
* glibc: --enable-obsolete-rpc has been removed as of 2.32Chris Packham2021-05-111-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>
* Disable -Werror for GLIBC for all ARCH for GCC11.spaun20022021-05-051-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>
* picolibc: Convert to companion libraryKeith Packard2021-01-081-124/+0
| | | | | | | This allows configurations to include picolibc without excluding another C library. Signed-off-by: Keith Packard <keithp@keithp.com>
* Add Oracle products to crosstool-ngJose E. Marchesi2020-11-231-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>
* config/libc: Extend glibc 2.32 workaround to include sparcChris Packham2020-09-141-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>
* glibc: --enable-obsolete-rpc has been removed as of 2.32Chris Packham2020-09-071-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>
* Merge branch 'picolibc' of git://github.com/keith-packard/crosstool-ng into ↵Chris Packham2020-09-061-0/+124
|\ | | | | | | keith-packard-picolibc
| * Add picolibc support [v2]Keith Packard2020-09-011-0/+124
| | | | | | | | | | | | | | | | | | | | | | | | 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
* | glibc: Don't build with -Werror for powerpc64+glibc-2.32Chris Packham2020-09-031-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>
* Add --with-cpu= on 32-bit SPARCAlexey Neyman2020-03-031-2/+6
| | | | | | ... if building for GLIBC 2.31+. Signed-off-by: Alexey Neyman <stilor@att.net>
* Add newlib retargetable locking configurationStephanos Ioannidis2019-12-201-0/+7
| | | | | | | This commit adds support for the newlib configuration option '--enable-newlib-retargetable-locking'. Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
* Merge pull request #1231 from cpackham/glibc-2.28-make-4.0Alexey Neyman2019-10-011-1/+1
|\ | | | | libc: glibc 2.28 needs make 4.0
| * libc: glibc 2.28 needs make 4.0Chris Packham2019-09-041-1/+1
| | | | | | | | | | | | | | | | | | | | | | Fixes: #1210 Per the release notes for the GNU C library 2.28[1] make 4.0 or newer is required. Previously the logic was applied to glibc 2.29 or newer. [1] - https://www.sourceware.org/ml/libc-alpha/2018-08/msg00003.html Signed-off-by: Chris Packham <judge.packham@gmail.com>
* | Add glibc 2.30Chris Packham2019-09-051-0/+2
|/ | | | | | | | | Add the GNU C Library version 2.30. Bring forward the typedef-caddr.patch. Skip the ARC patch for now. https://sourceware.org/ml/libc-alpha/2019-08/msg00029.html Signed-off-by: Chris Packham <judge.packham@gmail.com>
* uClibc: fix selection of debug levelKonstantin Vasin2019-04-051-0/+1
|
* Meet our new companion tool, bisonAlexey Neyman2019-03-041-0/+14
| | | | | | | Which is here courtesy of CentOS6, which only has bison 2.4 - while new glibc requires 2.7. Signed-off-by: Alexey Neyman <stilor@att.net>
* Fix build of glibc 2.29 on systems with obsolete host programsAlexey Neyman2019-03-021-2/+15
| | | | | | | | | | | | - Force building make as a companion tool if host make is older than 4.0 (CentOS 7 currently has 3.82) - Disable 2.29 as a choice if host python is older than 3.4 (CentOS 7 has 2.6 unless python from EPEL is installed) - Python2 emits its version information to STDERR. Ugh. While there, also use the detected host Python for GDB configuration. Signed-off-by: Alexey Neyman <stilor@att.net>
* Add new Android API levelsAndrzej Perczak2018-12-211-0/+15
|
* Allow short "moxiebox" aliasAlexey Neyman2018-12-101-0/+10
| | | | | | | | | | ... while making use of the new tunables. Also, unmark the moxie-elf as broken: the ld scripts installed by newlib can be found by the compiler and can link the binaries. Why the default script is broken is not ct-ng's problem... Signed-off-by: Alexey Neyman <stilor@att.net>
* Add config flags for omitting 'arch' and 'vendor'Alexey Neyman2018-12-101-0/+4
| | | | | | | | ... parts of the config tuple. While here, remove parts that are setting portions of the target tuple to a value that's already the default. Signed-off-by: Alexey Neyman <stilor@att.net>
* Moxiebox requires target to be LEAlexey Neyman2018-12-071-0/+1
| | | | Signed-off-by: Alexey Neyman <stilor@att.net>
* Disable -fstack-protector* from being used by glibcAlexey Neyman2018-12-071-1/+7
| | | | | | ... until it was fixed (to some extent) in 2.25. Signed-off-by: Alexey Neyman <stilor@att.net>
* Require ld to be default when building mingw-w64Alexey Neyman2018-12-041-0/+1
| | | | | | Fixes #674. Signed-off-by: Alexey Neyman <stilor@att.net>
* Add configuration options for enabling SSPAlexey Neyman2018-12-042-0/+56
| | | | | | | | | | | ... in uClibc and glibc. Fixes #681. While here, relocate additional "sources" for uClibc/binutils into packages/ directory. Signed-off-by: Alexey Neyman <stilor@att.net>
* Add moxiebox as a choice for libcAlexey Neyman2018-12-012-1/+17
| | | | | | | | | | | | | | | | | This required some rework of the libc selection, as moxiebox is a layer on top of another libc - newlib. Also, moxiebox'es host VM (`sandbox`) needs a libcrypto on the host. We will not have it if we're cross-compiling a canadian cross. Fortunately, all moxiebox needs from libcrypto is SHA256, and it already includes a standalone implementation of SHA256 in its runtime. Provide a little wrapper that allows moxiebox use that implementation for the host binary, too. Also, automate collecting/printing the list of all packages in a given category (e.g. LIBC or COMP_TOOLS), generate a list of all Kconfig symbols for a given category. Signed-off-by: Alexey Neyman <stilor@att.net>
* Too many fixes need backporting for GCC8...Alexey Neyman2018-05-141-6/+12
| | | | | | ... so instead, disable -Werror for older versions of glibc. Signed-off-by: Alexey Neyman <stilor@att.net>
* First batch of fixesAlexey Neyman2018-05-121-0/+6
| | | | | | | | - Incompatible function type for ifunc alias - Multiple statements macro expansion in strftime - if_nametoindex size checking Signed-off-by: Alexey Neyman <stilor@att.net>
* Make libiconv an option in the menu configAlexey Neyman2018-02-101-0/+11
| | | | Signed-off-by: Alexey Neyman <stilor@att.net>
* uClibc-ng retired RPC support as of 1.0.23Alexey Neyman2018-02-101-0/+5
| | | | | | ... make the corresponding option conditional. Signed-off-by: Alexey Neyman <stilor@att.net>
* More fixes after the upgrades:Alexey Neyman2018-01-301-0/+5
| | | | | | | | | | | - GLIBC requires a fix to work with binutils 2.30 on aarch64. This fix relies on binutils 2.24 or newer, which is okay for glibc 2.26 since it needs 2.25 or newer anyway. But older glibc versions are now pinned to binutils 2.29 or older on aarch64. - xtensa needs patches in libgcc with gcc 7.3. - comment in newlib's patch to indicate it is a reversal of a commit. Signed-off-by: Alexey Neyman <stilor@att.net>
* Make comp.libs use generated templates, tooAlexey Neyman2017-11-298-13/+3
| | | | | | | | This allows us to include the component-to-package relation in the generated kconfig files and make use of that information in the show-config.sh script. Signed-off-by: Alexey Neyman <stilor@att.net>
* Apply ucontext patch to mainstream GCC releasesAlexey Neyman2017-08-272-1/+9
| | | | | | | Not applicable to 4.8, as GLIBC2.26 requires 4.9 or newer. Record that dependency. Signed-off-by: Alexey Neyman <stilor@att.net>
* Make --enable-obsolete-rpc an option in ct-ngAlexey Neyman2017-08-261-0/+16
| | | | Signed-off-by: Alexey Neyman <stilor@att.net>
* Record glibc 2.24+ dependencyAlexey Neyman2017-08-161-0/+5
| | | | | | | | ... on kernel headers of 3.2 and newer. Fixes #794. Signed-off-by: Alexey Neyman <stilor@att.net>