forked from crosstool-ng/crosstool-ng
-
Notifications
You must be signed in to change notification settings - Fork 4
Add support for gcc --enable-multilib-space option #30
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
keith-packard
wants to merge
413
commits into
zephyr-crosstool-ng-1.25.0
Choose a base branch
from
multilib-space
base: zephyr-crosstool-ng-1.25.0
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add 6.3 Update 6.2.7 -> 6.2.12 Update 6.1.20 -> 6.1.25 Update 5.15.103 -> 5.15.108 Update 5.10.175 -> 5.10.179 Update 5.4.237 -> 5.4.242 Update 4.19.278 -> 4.19.282 Update 4.14.310 -> 4.14.314 Signed-off-by: Chris Packham <judge.packham@gmail.com>
Run the patches through ./maintainer/manage-packages.sh -P -s gcc-12.2.0 to mop up the fact that we'd ended up with two 0005 patches. Signed-off-by: Chris Packham <judge.packham@gmail.com>
https://cgit.uclibc-ng.org/cgi/cgit/uclibc-ng.git/log/?qt=range&q=v1.0.42..v1.0.43 Signed-off-by: Chris Packham <judge.packham@gmail.com>
Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
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>
Update linux 6.3.0 -> 6.3.1
Add gcc 12.3.0 and regenerate patches against the new version. https://gcc.gnu.org/pipermail/gcc-announce/2023/000176.html https://gcc.gnu.org/gcc-12/changes.html Signed-off-by: Chris Packham <judge.packham@gmail.com>
Add gcc 13.1.0 with rebased patches against the new version. https://gcc.gnu.org/pipermail/gcc-announce/2023/000175.html https://gcc.gnu.org/gcc-13/changes.html https://gcc.gnu.org/gcc-13/porting_to.html Signed-off-by: Chris Packham <judge.packham@gmail.com>
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>
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>
Depending on the host C++ compiler GCC13 fails on riscv configurations with the following error src/gcc/gcc/config/riscv/genrvv-type-indexer.cc:118:30: error: no member named 'log2' in namespace 'std'; did you mean simply 'log2'? elmul_log2 = lmul_log2 - std::log2 (sew / eew); ^~~~~~~~~ log2 /usr/include/c++/v1/math.h:1463:1: note: 'log2' declared here log2(_A1 __lcpp_x) _NOEXCEPT {return ::log2((double)__lcpp_x);} ^ Bring in an upstream fix for the build error. Signed-off-by: Chris Packham <judge.packham@gmail.com>
Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
Add ncurses 6.4
…rocessors/ykolerov-newlib-nano newlib: Add missing linker options for nano.specs
On systems that lack pread64() (e.g. musl) the following build error is observed. src/gdb/gdbserver/linux-low.cc:5393:45: error: expected ':' before ')' token src/gdb/gdbserver/linux-low.cc:5393:45: error: expected primary-expression before ')' token src/gdb/gdbserver/linux-low.cc:5393:45: error: expected ':' before ')' token src/gdb/gdbserver/linux-low.cc:5393:45: error: expected primary-expression before ')' token Bring in the upstream fix for this error. Signed-off-by: Chris Packham <judge.packham@gmail.com>
Update linux 6.3.1 -> 6.3.2
Signed-off-by: Dima Krasner <dima@dimakrasner.com>
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>
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 13+ depends on MPFR thus it must be selected. Signed-off-by: Yuriy Kolerov <ykolerov@synopsys.com>
These versions were present in crosstool-ng 1.25.0 so as per current policy mark them as obsolete so they can be dropped after the next release. Signed-off-by: Chris Packham <judge.packham@gmail.com>
Picolibc 1.8.1 has been added so we can drop 1.7.9. Signed-off-by: Chris Packham <judge.packham@gmail.com>
Run patches through ./maintainer/manage-packages.sh -P -s gcc-6.5.0 to clean them up. Signed-off-by: Chris Packham <judge.packham@gmail.com>
isl-0.26 moves some header includes around so now if we want isl_val_free we need to include isl/val.h. Otherwise we get errors such as src/gcc/gcc/graphite-isl-ast-to-gimple.c: In member function 'tree_node* translate_isl_ast_to_gimple::gcc_expression_from_isl_expr_int(tree, isl_ast_expr*)': src/gcc/gcc/graphite-isl-ast-to-gimple.c:349:3: error: 'isl_val_free' was not declared in this scope; did you mean 'isl_vec_free'? 349 | isl_val_free (val); | ^~~~~~~~~~~~ | isl_vec_free Bring in an upstream fix that uses the correct header file. Fixes crosstool-ng#1962 Signed-off-by: Chris Packham <judge.packham@gmail.com>
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>
https://lists.strace.io/pipermail/strace-devel/2023-May/011317.html Add strace 6.3. Remove 6.2. Add upstream patch for working with newer Linux headers. Signed-off-by: Chris Packham <judge.packham@gmail.com>
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>
https://sourceware.org/pipermail/gdb-announce/2023/000135.html https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=blob_plain;f=gdb/NEWS;hb=gdb-13.2-release Add the 13.2 release, remove 13.1. Signed-off-by: Chris Packham <judge.packham@gmail.com>
Bring in upstream support for newer float standards being used by GCC. Fixes crosstool-ng#1957 Signed-off-by: Chris Packham <judge.packham@gmail.com>
https://lists.strace.io/pipermail/strace-devel/2025-January/011587.html Signed-off-by: Chris Packham <judge.packham@gmail.com>
MUSL's or1k support lacks definitions for elf_gregset_t which leads to failures like [ERROR] sysroot/usr/include/sys/procfs.h:29:9: error: 'elf_gregset_t' does not name a type; did you mean 'gregset_t'? [ERROR] sysroot/usr/include/sys/procfs.h:54:9: error: 'elf_gregset_t' does not name a type; did you mean 'gregset_t'? [ERROR] sysroot/usr/include/sys/procfs.h:55:9: error: 'elf_fpregset_t' does not name a type Disable GDB support in the or1k-unknown-linux-musl config. Fixes crosstool-ng#2266 Signed-off-by: Chris Packham <judge.packham@gmail.com>
…nd x86_64 Signed-off-by: Bruce McCulloch <bruce.mcculloch@oracle.com>
Add newly released mold version 2.36.0 from upstream https://github.com/rui314/mold New Features - The --package-metadata=<string> option has been added to embed a given string into the .note.package section. This option is designed for build scripts that generate binary packages, such as .rpm or .deb, to include package metadata in each executable. It simplifies the process of identifying the corresponding package for a given executable or core file. (7ddc8f4) - [ARM][PowerPC] We've improved the algorithm for creating range extension thunks to reduce memory usage and improve speed. For example, linking clang-19 for ARM64 is now ~7% faster than before. (9fc0ace) - [RISC-V][LoongArch] We've improved the algorithm for code-shrinking linker relaxation to reduce memory usage and improve speed. For example, linking clang-19 for RISC-V is now ~4% faster than before. (3234d88) Bug Fixes and Compatibility Improvements - mold created a bad relocation for an IFUNC if the linker's output file type was a shared library and the symbol was exported. This bug could cause a segmentation fault of a linked program. The problem has now been fixed. (a297859) - [RISC-V] mold could produce incorrect code as a result of code-shrinking relaxation for the R_RISCV_HI20 relocation. That type of relocation was used rarely because it is not PC-relative. That being said, if your program used the relocation, and the relocation targets were at a low address (from 0x1f800 to 0x20000), your program would crash at runtime due to the linker's bug. The issue has now been resolved. (eec3f6b) - [RISC-V][LoongArch] When the linker removed instructions from a function as a result of code-shrinking relaxation, the function symbol's size in the output file should be updated to reflect the result of relaxation, even though doing it is mostly cosmetic. mold did not do that. Now, mold sets correct sizes to output function symbols. (e6345d5) - [LoongArch] Binaries linked with mold now work on 64 KiB page systems. Previously, only up to 16 KiB pages were supported. (2d7b6b2) - [s390x] The s390x processor-specific ABI requires the linker to reserve the first three slots of the .got section for the runtime. mold, however, reserved only two slots and used the third for itself. Even though we did not observe issues in the wild, it was a violation of the psABI. The problem has now been fixed. (dfce2fc) Signed-off-by: Hans-Christian Noren Egtvedt <egtvedt@samfundet.no>
https://sourceware.org/pipermail/libc-announce/2025/000045.html Support for nios2*-*-linux-gnu has been removed in this version so the nios2 architecture now requires and older glibc. Signed-off-by: Chris Packham <judge.packham@gmail.com>
Some canadian configs that use uclibc are pinned to gettext-0.20.1. We need to update some of the configure checks to avoid issues with newer versions of GCC. Signed-off-by: Chris Packham <judge.packham@gmail.com>
Add the latest gettext version. Signed-off-by: Chris Packham <judge.packham@gmail.com>
Update the x86_64-unknown-linux-gnu,arm-picolibc-eabi sample config. Signed-off-by: Chris Packham <judge.packham@gmail.com>
More configure checks that need updating. Signed-off-by: Chris Packham <judge.packham@gmail.com>
https://sourceware.org/pipermail/gdb-announce/2025/000144.html Signed-off-by: Chris Packham <judge.packham@gmail.com>
…text The latest gettext has problems building this configuration. Pin the version to gettext-0.22.5 which works fine. Signed-off-by: Chris Packham <judge.packham@gmail.com>
GMP 6.2.1 may fail some autoconf test when using GCC master (to-be-15) branch. Signed-off-by: Marc Poulhiès <dkm@kataplop.net>
Previous commits added selects so that the nios2 architecture only used GDB/GLIBC versions that still support it however these weren't qualified leading to kconfig complaints such as WARNING: unmet direct dependencies detected for GLIBC_REQUIRE_older_than_2_41 Depends on [n]: LIBC_GLIBC_SHOW [=n] Selected by [y]: - ARCH_NIOS2 [=y] && GEN_CHOICE_ARCH [=y] Qualify these selects with if DEBUG_GDB and if LIBC_GLIBC to stop the complaints. Fixes: 9d91ceb ("gdb: Add 16.1") Fixes: 87605d6 ("glibc: Add 2.41") Signed-off-by: Chris Packham <judge.packham@gmail.com>
This commit adds an option to strip the target toolchain libraries (e.g. libc, libstdc++) of any unneeded or debugging information. Stripping is enabled by default as it is often desirable to reduce the overall toolchain size when producing a release. Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
Some target libraries (e.g. newlib for RISC-V) may contain local symbol information when built with the `-g` flag. This commit adds the `--discard-locals` flag to discard all the unnecessary local symbols from the object files. Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
This commit updates the build script to strip additional debug sections added by the Binutils 2.38 when stripping the target libraries. Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
As these are not installed in the usual lib directory, the library stripping option doesn't catch them. Add explicit steps in the picolibc build script to perform this task. Signed-off-by: Keith Packard <keithp@keithp.com>
The x86_64 build uses objcopy, and if that is run in a cross-build environment, the native version will not work. Use the target-specific name instead. Signed-off-by: Keith Packard <keithp@keithp.com>
Support latest upstream release Signed-off-by: Keith Packard <keithp@keithp.com>
This parallels the newlib-nano setting, NEWLIB_NANO_GCC_LIBSTDCXX_TARGET_CXXFLAGS, and provides a place to specify options that control how libstdc++ is build, such as -fno-exceptions. Signed-off-by: Keith Packard <keithp@keithp.com>
Picolibc 1.8.10 reworked the configuration option for single/multi thread support and removed some unused options for exit handler support. Map LIBC_PICOLIBC_MULTITHREAD to the new single-thread option or the old newlib-retargetable-locking+newlib-multithread options depending on whether the picolibc version knows about the single-thread option. Remove support for newlib-register-fini, newlib-atexit-dynamic-alloc, newlib-global-atexit and lite-exit options as all of those relate to the legacy exit handler code. There hasn't ever been any way to enable this using crosstool-ng, so none of these options have ever done anything. The help strings for each of of the unused configuration variables have been updated. Signed-off-by: Keith Packard <keithp@keithp.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
Signed-off-by: Duy Nguyen <duy.nguyen.xa@renesas.com>
Install the stdio headers. Create a dummy picolibc.h header. Signed-off-by: Keith Packard <keithp@keithp.com>
This uses a newer gnulib with support for more recent compiler versions. Signed-off-by: Keith Packard <keithp@keithp.com>
Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com> Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
The upstream option name for selecting how libstdc++ performs I/O is '--enable-cstdio', not '--enable-stdio'. Signed-off-by: Keith Packard <keithp@keithp.com>
When CT_MULTILIB_SPACE is selected, build gcc with the --enable-multilib-space flag. Signed-off-by: Keith Packard <keithp@keithp.com>
5c02260
to
4f55f70
Compare
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Set CT_MULTILIB_SPACE to pass --enable-multilib-space during GCC build. When set, also build
dependent libraries in multilib mode, even if CT_MULTILIB is not set.