We use the information from various configure time checks to populate
paths.sh. The paths used are all absolute except for the python binary.
In the switch to a more comprehensive check for python by commit
fa05153e ("Make checking for python more predictable.") we ended up
using AC_CHECK_PROGS which checks for the program on the path and sets
the variable to the name of the program. This makes python inconsistent
with the other programs and seems to cause problems for MSYS2. Use
AC_PATH_PROGS instead which does the same check but sets the variable to
the absolute name of the program
Fixes#2047
Signed-off-by: Chris Packham <judge.packham@gmail.com>
add gnatls and gnatlink to list of tools since it is needed to support Ada just like gnatmake and gnatbind
Update crosstool-NG.sh & TODO
Signed-off-by: c-grant <60671494+c-grant@users.noreply.github.com>
more specificaly to the tarballs download. The function CT_Fetch now
touches the already existing files to be comparable to the not used ones
that can araise when a package is updated.
This comparsion is needed because if it would not exist the tarball
would grow in size due to not used but still cached packages.
This would take time but is definitly something to worry about.
Signed-off-by: Quentin Boswank <qubos@outlook.de>
https://www.multiprecision.org/
Add 1.3.1. Mark 1.2.1 as obsolete. Remove 1.0.3 and 1.1.0.
Fixes#2030
Signed-off-by: Chris Packham <judge.packham@gmail.com>
Some m68k variants do have a MMU so the architecture can set
ARCH_USE_MMU. That means we can have a m68k-unknown-linux-gnu
configuration and that m68k-unknown-uclinux-uclibc needs to select
LIBC_UCLIBC_NG since it's no longer the default.
Fixes#2040
Signed-off-by: Chris Packham <judge.packham@gmail.com>
gdb is linked with libtool, which has a different meaning
for -static, and -all-static must be used to get a static executable.
The binutils build script already uses this option for static builds.
Also remove unnecessary -static from cflags for the gdb build.
Signed-off-by: Chris Copeland <chris@chrisnc.net>
This reverts commit 0841e2f820 from 2011,
which disabled plugin support in binutils for static toolchains, citing
build system problems. This problem seems to be resolved.
This also reverts part of 45512b003d from
2017, which disabled LTO in gcc for static toolchains, citing problems
on Arch Linux with loading the LTO plugin from a static binary.
Signed-off-by: Chris Copeland <chris@chrisnc.net>
older binutils dont automatically pick up plugins,
but need to manually use wrappers like gcc-ar.
This fix allows to compile the host toolchain with -ftlo
on debian stretch.
Signed-off-by: Norbert Lange <nolange79@gmail.com>
moxie-unknown-moxiebox has problems building with newlib 4.3
ld: /lib/libc.a(libc_a-closer.o): in function `_close_r':
newlib/libc/reent/closer.c:47: undefined reference to `_close'
There are some Makefile changes in newlib 4.3 and it's likely previously
this config was picking up `_close` from libsim.a. For now just pin the
newlib version back to 4.2 in the moxie-unknown-moxiebox config.
Resolves#2036
Signed-off-by: Chris Packham <judge.packham@gmail.com>
https://www.mpfr.org/mpfr-4.2.1/
This fixes compatibility issues with hosts using newer glibc (>=2.37).
Fixes#2017, #2029
Signed-off-by: Chris Packham <judge.packham@gmail.com>
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>