A toolchain uclibc-ng-1.0.43, binutils-2.40 and gcc-13.2.0 hits the
following error when building:
ld.bfd: isl_test2.o: non-canonical reference to canonical protected function `__pthread_key_create' in x86_64-multilib-linux-uclibc/sysroot/lib64/libc.so.1
ld.bfd: failed to set dynamic section sizes: bad value
The reference comes from libgcc where it is using the
__pthread_key_create() symbol to detect the use of pthreads with GNU
libc. Prevent this on uclibc-ng with an explicit condition.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111322
Signed-off-by: Chris Packham <judge.packham@gmail.com>
NEWLIB_GLOBAL_ATEXIT needs to be set to y for modern newlib versions.
Commit 227d99d7 ("newlib: add 4.3.0.20230120") ensured this was done.
But xtensa-fsf-elf uses a newlib version from before this so it needs to
explicitly opt out.
Signed-off-by: Chris Packham <judge.packham@gmail.com>
glibc-2.28 complains:
configure: error: use a compatible toolchain or configure with --disable-mathvec (this results in incomplete ABI).
Apparently this is a problem in the way GCC passes the -mcpu and -march
values to the assembler. As a workaround have the configure check pass
-mcpu as well to override anything we're passing in the environment.
Patch and explanation taken from the Yocto project with thanks.
Signed-off-by: Chris Packham <judge.packham@gmail.com>
CC_CC_GCC_ENABLE_DEFAULT_PIE=n is invalid Kconfig syntax for an option
that was intentionally disabled the saved config would be
'# CC_CC_GCC_ENABLE_DEFAULT_PIE is not set'
but the DEFAULT_PIE option isn't selectable for RISCV && BARE_METAL so
the correct thing to do is just remove the config.
This also picks up a change regenerating the saved sample due to changes
in the Kconfig ordering.
Fixes#2019
Signed-off-by: Chris Packham <judge.packham@gmail.com>
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>
The folder 'packages' is processed in bootstrap, so there is no
need to process it again in Makefile.
This fixes a regression introduced in eb62ec3fbe
Signed-off-by: Kirill K. Smirnov <kirill.k.smirnov@gmail.com>
libsanitizer has problems intercepting crypt() and crypt_r() with newer
glibcs. Bring in an upstream patch that drops support for these from
ASAN.
d7bead8336https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111057Fixes#2010
Signed-off-by: Chris Packham <judge.packham@gmail.com>
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>
This reverts commit 5427dac45c. The issues
that were causing this have been resolved with some updates so allow the
uclibc+gcc13 combination again.
Signed-off-by: Chris Packham <judge.packham@gmail.com>
Disable CT_GLIBC_ENABLE_DEBUG to hopefully make the toolchains use less
disk-space on the free-tier github action runners.
Signed-off-by: Chris Packham <judge.packham@gmail.com>
On canadian cross build-gcc reports its version as '13-win32'.
ncurses >=6.3 correctly interprets this line as '13', but older
ncurses versions fail and jump into wrong conclusions.
Let's cherry-pick related changes from mainline ncurses.
Signed-off-by: Kirill K. Smirnov <kirill.k.smirnov@gmail.com>
newlib-nano package shares patches with newlib package via symlinks.
If a user chooses local setup (--enable-local) it works perfectly, but
if a user chooses normal setup (make install), the links are lost.
Signed-off-by: Kirill K. Smirnov <kirill.k.smirnov@gmail.com>
The missing quotes affect bootstrap routine:
./bootstrap: eval: line 646: unexpected EOF while looking for matching `''
./bootstrap: eval: line 647: syntax error: unexpected end of file
For some reason bootstrap script ignores these errors and terminates
successfully.
Signed-off-by: Kirill K. Smirnov <kirill.k.smirnov@gmail.com>
Mark newlib 2.5.0.20171222, 3.0.0.20180831, 3.1.0.20181231, 3.2.0, 3.3.0
and 4.1.0 as obsolete. These can be dropped after the next crosstool-ng
release.
Signed-off-by: Chris Packham <judge.packham@gmail.com>
Versions of GNU make newer than 4.4 trigger a hang in versions of glibc
older than 2.31. As distros update to the newer GNU make version we'll
start seeing more and more reports of this hang. Fortunately we already
carry GNU make as a comp tool so all we need to do is select the right
version when needed.
Fixes#1946, #1932, #1975
Signed-off-by: Chris Packham <judge.packham@gmail.com>
This reverts commit 658f5e574f, which
was made without any justification, and prevents using crosstool-ng
even in decently recent distributions like Ubuntu 20.04 (which has
autoconf 2.69).
We have tested that ./bootstrap && ./configure --enable-local works
fine on Ubuntu 18.04, which uses autoconf 2.69 and automake 1.15, so
the existing requirements were enough.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
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>
In the rush to sort out a build issue with strace an invalid change to
./configure was made. Update the patch with the correct delta for the
generated file.
Fixes#1978
Fixes: d659700d ("strace: Add strace 6.3")
Signed-off-by: Chris Packham <judge.packham@gmail.com>
arm-picolibc-eabi builds many multilib combinations which causes the
free tier github action runners to run out of disk space. Use
arm-picolibc-default instead so there is still some coverage of picolibc
in CI.
Signed-off-by: Chris Packham <judge.packham@gmail.com>
The rmprofile with picolibc produces many multilib combinations which
causes the free tier github action runners to run out of disk space.
Add a picolibc sample that only enables the default multilib so we can
still get some coverage for picolibc in the CI builds.
Signed-off-by: Chris Packham <judge.packham@gmail.com>
Add the 4.3.0.20230120 and update the required patches. As of this
release the newlib-global-atexit is mandatory so set this to default y.
Included is an upstream patch to support older GCC versions.
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>
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>
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#1962
Signed-off-by: Chris Packham <judge.packham@gmail.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>
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>
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>
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>