Alpha is a 64-bit only arch. The menu options only allowed 32 bitness to
be selected. This was harmless but confusing, update the config to
specify 64-bit only.
Fixes: #1506
Signed-off-by: Chris Packham <judge.packham@gmail.com>
GCC11 somehow has different set of multilibs on SH arch than what GCC10 had.
In particular:
$ gcc10 -print-multi-lib | sed -r -e 's/@/ -/g;'
.;
mb; -mb
m2; -m2
m2e; -m2e
m4; -m4
m4-single; -m4-single
m4-single-only; -m4-single-only
mb/m2; -mb -m2
mb/m2e; -mb -m2e
mb/m4; -mb -m4
mb/m4-single; -mb -m4-single
mb/m4-single-only; -mb -m4-single-only
mb/m2a; -mb -m2a
mb/m2a-single; -mb -m2a-single
$ gcc11 -print-multi-lib | sed -r -e 's/@/ -/g;'
.;
mb; -mb
m2; -m2
m2e; -m2e
m4; -m4
m4-single; -m4-single
m4-single-only; -m4-single-only
mb/m1; -mb -m1
mb/m2; -mb -m2
mb/m2e; -mb -m2e
mb/m4; -mb -m4
mb/m4-single; -mb -m4-single
mb/m4-single-only; -mb -m4-single-only
mb/m2a; -mb -m2a
mb/m2a-single; -mb -m2a-single
mb/m1 fails to build libgcc as libgcc uses opcodes that were not
available in SH-1: libgcc/config/sh/lib1funcs.S uses 'bt/s' and 'dt'
instructions that, according to https://antime.kapsi.fi/sega/files/h12p0.pdf become available in the SH-2 only.
So I removed mb/m1 from the multilibs fog GCC11 and SH arch.
Another option would be to try not to build libgcc for this combination
of the gcc version and archichecture, but I thought this fix would be
more robust.
Signed-off-by: Nik Konyuchenko <spaun2002mobile@gmail.com>
This change replicates what GLIBC 2.23 has in the string/rawmemchr.c:
// #if __GNUC_PREREQ (11, 0)
// /* Likewise GCC 11, with a different warning option. */
// DIAG_IGNORE_NEEDS_COMMENT (11, "-Wstringop-overread");
// #endif
With -Werror multiple platforms failing on the string/rawmemchr.c:40 line.
Signed-off-by: Nik Konyuchenko <spaun2002mobile@gmail.com>
Add an option that will install a copy of newlib-nano lib*.a file in
the target dir but renamed with a nano.a suffix (eg: libc_nano.a) as
some default nano.spec files from newlib expect this setup.
Additionally the newlib-nano version of newlib.h will get copied to
include/newlib-nano/newlib.h.
Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
Upstream changes in the way kconfig handles environment variables means
we need to update our usage of them.
Signed-off-by: Chris Packham <judge.packham@gmail.com>
This has gone unnoticed for a while, it looks like all configurations
have probably been using the default floats behaviour. Newer kconfig
tells us the default value is not in the choice so lets fix this in
preparation.
Signed-off-by: Chris Packham <judge.packham@gmail.com>
Include the gnuprumcu package in PRU cross toolchain.
Toolchain is somewhat useless without device specs and
linker scripts for the various SoCs.
Signed-off-by: Dimitar Dimitrov <dimitar@dinux.eu>
Add sample configuration for building cross toolchain for the TI PRU.
PRU cores are present in many of the BeagleBone single board computers.
More information about the PRU can be found in https://bbb.io/pru
Signed-off-by: Dimitar Dimitrov <dimitar@dinux.eu>
This allows building newlib-nano in addition to newlib and picolibc,
allowing users to select between C libraries within the same toolchain.
Signed-off-by: Keith Packard <keithp@keithp.com>
This adds another mode to do_gcc_core_backend that builds libstdc++
against an alternate libc implementation.
Signed-off-by: Keith Packard <keithp@keithp.com>
Use LIBC_PICOLIBC_CXA_ATEXIT to keep this name in the same 'namespace'
as the other picolibc config names.
Enable retargetable locking by default. This allows the few locks in
picolibc to be implemented by the execution environment, rather than
disabling the locking code.
Signed-off-by: Keith Packard <keithp@keithp.com>
This commit adds support for the following Oracle products, in order
to target Oracle Linux 7.9:
Binutils 2.27-44.base.0.400
GCC 4.8.5-44.0.5
glibc 2.17-317.0.3
UEK5/u4 4.14.35-2025.400.8
Sample configuration files are provides for the following triplets:
arm-ol7u9-linux-gnueabi
arm-ol7u9-linux-gnueabihf
Signed-off-by: Egeyar Bagcioglu <egeyar.bagcioglu@oracle.com>
Signed-off-by: Jose E. Marchesi <jose.marchesi@oracle.com>
Currently the help for LOCAL_PATCH_DIR did not specify the tree layout
of custom patches directory. This commit adds such explanation.
For example, the bundled patches for GCC are placed under
packages/gcc/<gcc-version>, thus custom (local) GCC patches should be
placed under $LOCAL_PATCH_DIR/gcc/<gcc-version>.
Signed-off-by: Bagas Sanjaya <bagasdotme@gmail.com>
Make --enable-obsolete-rpc conditional on !CT_GLIBC_2_32_or_later as
it's been removed from that version on.
Signed-off-by: Chris Packham <judge.packham@gmail.com>
When building powerpc64+glibc-2.32 we see the following error:
[ALL ] In file included from ../sysdeps/powerpc/powerpc32/power4/multiarch/wordcopy-ppc32.c:26,
[ALL ] from ../sysdeps/powerpc/powerpc64/multiarch/wordcopy-ppc64.c:18:
[ALL ] ../string/wordcopy.c: In function '_wordcopy_fwd_aligned':
[ERROR] ../string/wordcopy.c:98:26: error: 'a1' may be used uninitialized in this function [-Werror=maybe-uninitialized]
[ALL ] 98 | ((op_t *) dstp)[0] = a1;
[ALL ] | ~~~~~~~~~~~~~~~~~~~^~~~
[ALL ] In file included from ../sysdeps/powerpc/powerpc64/power4/../../powerpc32/power4/memcopy.h:38,
[ALL ] from ../sysdeps/powerpc/powerpc64/power4/memcopy.h:1,
[ALL ] from ../string/wordcopy.c:23,
[ALL ] from ../sysdeps/powerpc/powerpc32/power4/multiarch/wordcopy-ppc32.c:26,
[ALL ] from ../sysdeps/powerpc/powerpc64/multiarch/wordcopy-ppc64.c:18:
[ALL ] ../string/wordcopy.c: In function '_wordcopy_fwd_dest_aligned':
[ERROR] ../sysdeps/generic/memcopy.h:72:61: error: 'a3' may be used uninitialized in this function [-Werror=maybe-uninitialized]
[ALL ] 72 | #define MERGE(w0, sh_1, w1, sh_2) (((w0) << (sh_1)) | ((w1) >> (sh_2)))
[ALL ] | ^~
This seems to only trigger for powerpc64. Other architectures build
cleanly. For now avoid specifying -Werror for powerpc64+glibc-2.32.
Signed-off-by: Chris Packham <judge.packham@gmail.com>
This adds support for using picolibc instead of newlib on embedded
systems.
Signed-off-by: Keith Packard <keithp@keithp.com>
v2:
Add check for meson and ninja
Sync option default values with current picolibc defaults
Remove xtensa sys header file install as those aren't in picolibc
-- c6x: Add support for c6x product families to pass on to uClibC-ng
-- c6x: Fix multilib support
-- c6x: Add patch fix internal instruction error (GCC 57295)
Signed-off-by: Dan Tejada <dan.tejada@cantada.com>
GLIBC 2.31 needs --with-cpu=ultrasparc for both 32/64-bits now, and
--with-cpu only sets the CPU model for the "primary" bitness.
Signed-off-by: Alexey Neyman <stilor@att.net>
This commit adds support for the newlib configuration option
'--enable-newlib-retargetable-locking'.
Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
Fixes: #1210
Per the release notes for the GNU C library 2.28[1] make 4.0 or newer is
required. Previously the logic was applied to glibc 2.29 or newer.
[1] - https://www.sourceware.org/ml/libc-alpha/2018-08/msg00003.html
Signed-off-by: Chris Packham <judge.packham@gmail.com>
While we may use build machine's library when building a simple cross,
we won't have it for the host machine in a canadian build. Until there
are separate selectables for the build/host components, just build our
own local zlib.
Signed-off-by: Alexey Neyman <stilor@att.net>