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>
Add zstd to the companion libs witch allows to use lto zstd compression
in a canadian or cross-native enviroment
Signed-off-by: QBos07 <62326551+QBos07@users.noreply.github.com>
Signed-off-by: Quentin Boswank <62326551+QBos07@users.noreply.github.com>
This commit adds support for the following Oracle products, targeting
Oracle Linux 8.7:
Binutils 2.30-117.0.1
GCC 8.5.0-15.0.2
glibc 2.28-211.1.0.1
UEK5/u4 4.14.35-2025.400.8
Sample configuration files are provided for the following triplets:
aarch64-ol8u7-linux-gnu
x86_64-ol8u7-linux-gnu
i686-ol8u7-linux-gnu
Signed-off-by: Cupertino Miranda <cupertino.miranda@oracle.com>
libgccjit is still under development and, despite its name, may also be used for
ahead-of-time compilation.
Documentation can be found on the gcc website:
https://gcc.gnu.org/onlinedocs/jit/internals/index.htmlhttps://gcc.gnu.org/wiki/JIT
With this change it's possible to enable the building of the libgccjit. It's
enabled as a language (with --enable-languages=jit) even if not a language
frontend at all.
The main changes are related to the requirement of having everything host side
built as Position Independent Code (PIC) with --enable-host-shared. GCC has the
needed logic for building its dependencies (mpc, gmp, mpfr, ...) correctly when
built "in-tree", which is not the case with crosstool-ng (see
https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=05048fc29f0)
Signed-off-by: Marc Poulhiès <dkm@kataplop.net>
--enable-e500_double was valid but strange (the correct form is
--enable-e500-double). -Wa,-me500x2 was also misleading, it is
equivalent to Wa,-me500. --enable-e500x2 --with-e500x2 did nothing as
they aren't used by the binutils configure script. Finally passing
-mfloat-gprs=double in CFLAGS is unnecessary because this is the default
when using -mcpu=8548. Correct these in the sample config.
Fixes#1867
Signed-off-by: Chris Packham <judge.packham@gmail.com>
BPF is a virtual machine and associated ISA that resides in the Linux
kernel. Initially intended for user-level packet capture and filtering,
BPF is nowadays generalized to serve as a general-purpose infrastructure
also for non-networking purposes.
Signed-off-by: Cupertino Miranda <cupertino.miranda@oracle.com>
Fixes Canadian cross builds failing with missing include file 'stdio.h'
when building libstdc++ for a companion libc with system libc set to
LIBC_NONE.
Signed-off-by: Joakim Nohlgård <joakim@nohlgard.se>
Most scripts in crosstool-ng use [ -z "${string}" ] to check for empty
variables.
Deleted one duplicate declaration of the local exec_prefix
Signed-off-by: Joakim Nohlgård <joakim@nohlgard.se>
Some corporate VPN services block ftp connections. It leads
to an error while building a toolchain with packages with ftp
mirrors. It's possible to safely use https instead of ftp.
Signed-off-by: Yuriy Kolerov <ykolerov@synopsys.com>
If a user deletes the package directory under .build/src/ but fails to
remove the hidden stamp files the CT_DoExtractPatch function will detect
this, delete the stamps and perform the full extract-and-patch step.
Signed-off-by: Joakim Nohlgård <joakim@nohlgard.se>
There appears to be a problem with GDB+Python+MacOS
Error: [ERROR] configure: error: no usable python found at /usr/local/bin/python3
Error: make[2]: *** [Makefile:11454: configure-gdb] Error 1
Error: make[1]: *** [Makefile:1030: all] Error 2
For now disable CT_GDB_CROSS_PYTHON on macos.
Signed-off-by: Chris Packham <judge.packham@gmail.com>
- expat-2.4.1 is not available on sf.net due to vulnerabilities
- mark expat-2.4.1 as obsolte
- add expat-2.5.0 version info
Signed-off-by: Chris Friedt <cfriedt@meta.com>
Reverts the changes introduced to `m4/ax_with_curses_extra.m4`
in 59b664806c,
which seem to make `cofigure` look only for `ncursesw/panel.h`
and not consider `panel.h` as a candidate,
thus causing `./configure` to fail with
"error: panel library not found" on systems
(such as Arch Linux) where ncurses headers
are not put under the `ncursesw/` directory.
Signed-off-by: Pavel Grigorenko <grigorenkopv@ya.ru>
Brings in the following changes
- Fix a bug when getting a gzip header extra field with
inflateGetHeader(). This remedies CVE-2022-37434.
- Fix a bug in block type selection when Z_FIXED used. Now the smallest
block type is selected, for better compression.
- Fix a configure issue that discarded the provided CC definition.
- Correct incorrect inputs provided to the CRC functions. This mitigates
a bug in Java.
- Repair prototypes and exporting of the new CRC functions.
- Fix inflateBack to detect invalid input with distances too far.
Mark zlib-1.2.12 as obsolete.
Signed-off-by: Chris Packham <judge.packham@gmail.com>
glibc versions prior to 2.23 don't compile successfully with
--enable-default-pie. While it would be nice to automatically prevent
this from being selectable the simplest thing is to update the sample
configs that use the older glibc versions to avoid the problem.
Fixes#1819
Signed-off-by: Chris Packham <judge.packham@gmail.com>
glibc 2.12.1 was removed in commit 6d5227b6 ("Remove obsolete glibc
2.12.1"). CentOS 6 is EoL and the configuration won't work as intended
so remove it.
Signed-off-by: Chris Packham <judge.packham@gmail.com>