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>
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>
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>
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>
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>
Changes:
- fix inherited overloaded methods in Python bindings
- decompose topological sort of clusters in incremental scheduler
- improved isl_pw_aff_list_{min,max}
- add some convenience functions
- more exports to (templated C++) bindings
- slightly improved conversion from binary relation to function
https://repo.or.cz/isl.git/shortlog/?qt=range&q=isl-0.25..isl-0.26
Signed-off-by: Chris Packham <judge.packham@gmail.com>
Picolibc now lets you configure the default memory layout used in the
default linker script. Add values to the sample arm-picolibc-eabi
configuration that sets values appropriate for typical cortex m
processors run under qemu.
Signed-off-by: Keith Packard <keithp@keithp.com>
These values are used when constructing the default linker scripts
used with picolibc. Setting reasonable defaults allows simple test
applications to be compiled without additional configuration.
Signed-off-by: Keith Packard <keithp@keithp.com>
GCC's libsanitizer module does provide a subset of support for x86
targets (e.g. libasan). GCC's `libsanitizer/configure.tgt` file only
outlines flags for optional sanitizers.
Signed-off-by: James Knight <james.d.knight@live.com>
As mentioned in #1908, we should have patches that are experimental
under the CT_EXPERIMENTAL option. This an experimental patch to gcc:
https://gcc.gnu.org/pipermail/gcc-patches/2022-August/600452.html
And since it may affect production toolchains, we should move this patch
to the experimental bundled patches introduced in the previous commit.
Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
This adds 3 new options to patch order:
* bundled + bundled_exp
* bundled + bundled_exp + local
* local + bundled + bundled_exp
The path for bundled experimental patches is: ${CT_LIB_DIR}/packages/${pkg_dir}/experimental
and patches that are still being reviewed, but not yet applied upstream
may be toggled with ENABLE_EXPERIMENTAL_BUNDLED_PATCHES.
Also fix modelines for editors on bootstrap and scripts/functions, and
fix mix whitespace in scripts/functions.
Closes: #1916
Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
This adds backports of a couple of patches necessary to support macOS
arm64 hosts for gcc. It was ported from
https://github.com/richfelker/musl-cross-make/pull/129 with some small
fixups to make the patches apply cleanly.
Signed-off-by: Steven Fackler <sfackler@gmail.com>
We don't have a x86_64-pc-linux-gnu sample but we do have a
x86_64-unknown-linux-gnu. Rename the picolibc canadian config
accordingly.
Fixes: #1909
Signed-off-by: Chris Packham <judge.packham@gmail.com>
The arm-picolibc-eabi build runs out of space on the macos makers
because of all the multilib permutations. For now disable the
macos,arm-picolibc-eabi combination until we can think of something
better.
Signed-off-by: Chris Packham <judge.packham@gmail.com>
This moves the picolibc configuration values under C-library -> picolibc
so that they will be more easily discovered.
Signed-off-by: Joakim Nohlgård <joakim@nohlgard.se>
Picolibc needs two additional gcc build options so that libstdc++
works correctly. When building picolibc as a companion library, those
are added in do_cc_libstdcxx_picolibc, but when built with picolibc as
the main C libary, those need to be added in the main GCC build.
Signed-off-by: Keith Packard <keithp@keithp.com>
This patch, submitted upstream but not (yet?) accepted, adds a third
parameter to the specs file 'getenv' function that provides a value
for when the environment variable is not set, instead of having gcc
fail.
This seemed like the safest way to provide a mechanism for getting the
installed location of the toolchain from inside a specs file as, when
not installed in the built-in location, gcc already sets the
GCC_EXEC_PREFIX environment variable to a well defined location within
that directory hierarchy, but when installed in the location specified
at compile time, gcc does not. Providing a default value that matches
the compile-time location then allows the specs file to compute paths
relative to the current GCC installation location, whereever it is
installed.
Signed-off-by: Keith Packard <keithp@keithp.com>
There was a typo in the original commit which used "zlib" instead of
"zstd". The checksums remain the same.
Fixes: 4cba2994 ("Add zstd to the companion libs")
Signed-off-by: Chris Packham <judge.packham@gmail.com>
Update some hard coded names to use ${{ matrix.sample }} instead. This
will allow us to upload other artifacts in the future.
Signed-off-by: Chris Packham <judge.packham@gmail.com>
We've been carrying around this patch for ages. It was first added in
commit 42e908c4 ("libc/glibc: workaround for autoconf'ed define of
caddr_t") and ported to glibc-2.13 in commit de6b6733 ("libc/glibc: add
patch to avoid caddr_t redefinition"). It has been ported to every new
version of glibc ever since.
It's not immediately obvious that the original problem still affects
modern glibc versions. If there is a problem it hasn't been reported to
the glibc maintainers in the 12 years since it was first seen. It could
be that ct-ng is unique in the way we support canadian builds or that
there was another fix for the same problem applied upstream sometime in
the last 12 years.
Drop the patch now to stop in being propagated blindly to new glibc
versions. Doing it as a separate commit (as opposed to dropping it in
the previous commit which bumped the version) allows the decision to be
documented and if this turns out to be wrong it can be easily reverted.
Signed-off-by: Chris Packham <judge.packham@gmail.com>