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
Forward ported patches from binutils 2.34, refreshed to match current
sources.
Patch 0008-poison-system-directories.patch did not apply clean and had
minor adjustments to fit new binutils 2.35 release.
Signed-off-by: Hans-Christian Noren Egtvedt <hegtvedt@cisco.com>
Forward ported patches from GCC 9.x, refreshed to match current sources.
Patch 0010-crystax.patch did not apply clean and had minor adjustments
to fit new GCC 10.2.0 release.
Signed-off-by: Hans-Christian Noren Egtvedt <hegtvedt@cisco.com>
Forward ported patches from GCC 9.2.0 to 9.3.0, refreshed to match
current sources.
Patch 0010-crystax.patch did not apply clean and had minor adjustments
to fit new GCC 9.3.0 release.
Signed-off-by: Hans-Christian Noren Egtvedt <hegtvedt@cisco.com>
Forward ported 0000-typedef-caddr.patch from previous release (2.31).
Dropped the 0001-Add-ARC-architecture.patch file, since ARC support is
included in glibc release 2.32.
Signed-off-by: Hans-Christian Noren Egtvedt <hegtvedt@cisco.com>
-- 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>
The same binaries are now hosted on GitHub releases (and looking at the
homepage, that's the only download location they are offering). Use that
mirror at least as an option.
When GCC was updated to 8.4.0 the patches were moved incorrectly. Fix
this now so that they will be picked up.
Fixes: commit 31ca84ac ("Update to gcc 8.4.0")
Signed-off-by: Chris Packham <judge.packham@gmail.com>
bison, elf2flt, gcc, isl, linux, mingw-w64, strace.
Adjust checksum ordering in uclibc-ng so that it matches what the script
generates.
Signed-off-by: Alexey Neyman <stilor@att.net>
Two patches from 0.18.8.1 were dropped:
- one changing the declaration of environ is no longer needed, the
corresponding files no longer have this declaration
- one with Woe32 fixes for -O0 may need to be re-added but only after I
find what configuration breaks without it; gettext sources overwent a
massive restructuring so this patch should not be applied without
testing.
Signed-off-by: Alexey Neyman <stilor@att.net>
So again due to non-technical reasons (lack of public documentation
of ARC instruction set which we actively work on but no yet published)
we missed upstream 2.30 release.
Still the code is there, we regularly run full test-suite and are confident
in port's quality and robustness.
Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
Currently, SourceForge is down and downloads give a 500 error. That's
not overly uncommon (even less often the case these days). Fortunately,
zlib provides another mirror on their homepage, add that as option to
the package description. (https://www.zlib.net/)
Forward ported patches from GCC 8.3.0 to 9.2.0, refreshed to match
current sources.
In patch 0012-crystax.patch, removed changing sysv4.h header file for
rs6000, since it no longer defines LINK_EH_SPEC.
Removed the following patches because they are part of upstream:
- 0018-ARC-Add-multilib-support-for-linux-targets.patch
- 0020-ARM-fix-cmse.patch
- 0021-arm-Make-arm_cmse.h-C99-compatible.patch
- 0022-ARC-Update-fma-expansions.patch
Renamed 0019-isl-0.20.patch => 0018-isl-0.20.patch.
Signed-off-by: Hans-Christian Noren Egtvedt <hegtvedt@cisco.com>
ARC port of Glibc was submitted to the mailing list recently [1]
but due to late submission it didn't make it in Glibc 2.29 release.
Hopefully by the time of next release it will be a part of upstream
release but for now we have to use off-the-tree patch.
Still it's proven to work internally as well as its test-suite
shows brilliant results as might be seen from [1]:
------------------>8-------------------
Summary of test results:
24 FAIL
5124 PASS
27 UNSUPPORTED
19 XFAIL
------------------>8-------------------
Moreover ARC's Glibc port is known to work in Buildroot, OpenEmbedded
and even Automotive Grade Linux distro so we should be good having
this patch for Glibc.
BTW the patch itself is a copy of the one I use in OE, see [2].
[1] https://sourceware.org/ml/libc-alpha/2018-12/msg00678.html
[2] https://github.com/foss-for-synopsys-dwc-arc-processors/meta-synopsys/blob/master/recipes-core/glibc/files/0031-Add-ARC-architecture.patch
Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
Older GCCs (e.g. GCC 4.4 in CentOS 6) chokes on having two identical
typedefs like this:
typedef void *p;
typedef void *p;
The event-loop.h header does not have a guard against double-inclusion.
Not the best solution, but it works and eventually 7.12 will fall into
obsolescence anyway.
Signed-off-by: Alexey Neyman <stilor@att.net>
- Force building make as a companion tool if host make is older than
4.0 (CentOS 7 currently has 3.82)
- Disable 2.29 as a choice if host python is older than 3.4
(CentOS 7 has 2.6 unless python from EPEL is installed)
- Python2 emits its version information to STDERR. Ugh.
While there, also use the detected host Python for GDB configuration.
Signed-off-by: Alexey Neyman <stilor@att.net>
Had to update the following patches so they'd apply:
0006-libgfortran-missing-include.patch
0010-crystax.patch
Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
When merging new package framework, I missed that master had 7.8.2
imported in place of 7.8.1. Noone complained about this downgrade...
Signed-off-by: Alexey Neyman <stilor@att.net>
... in uClibc and glibc.
Fixes#681.
While here, relocate additional "sources" for uClibc/binutils into packages/
directory.
Signed-off-by: Alexey Neyman <stilor@att.net>
This required some rework of the libc selection, as moxiebox is a layer on
top of another libc - newlib.
Also, moxiebox'es host VM (`sandbox`) needs a libcrypto on the host. We will
not have it if we're cross-compiling a canadian cross. Fortunately, all moxiebox
needs from libcrypto is SHA256, and it already includes a standalone implementation
of SHA256 in its runtime. Provide a little wrapper that allows moxiebox use
that implementation for the host binary, too.
Also, automate collecting/printing the list of all packages in a given category
(e.g. LIBC or COMP_TOOLS), generate a list of all Kconfig symbols for a given
category.
Signed-off-by: Alexey Neyman <stilor@att.net>
There are some fixes to the cmse code in mainline gcc that we need to
build an embedded toolchain targetting Cortex-M cpus that support the
v8m extensions.
Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
gcc-8.1 for xtensa miscompiles uClibc dynamic linker due to gcc PR
target/65416. The build completes successfully, but the binary is
non-functional because the following fragment in the _dl_get_ready_to_run
in ld-uClibc.so overwrites register spill area on stack causing register
corruption in the previous call frame and a subsequent crash:
419f: f0c1b2 addi a11, a1, -16
41a2: 1ba9 s32i.n a10, a11, 4
41a4: 0bc9 s32i.n a12, a11, 0
41a6: 5127f2 l32i a15, a7, 0x144
41a9: 1765b2 s32i a11, a5, 92
41ac: 4e2782 l32i a8, a7, 0x138
41af: 146af2 s32i a15, a10, 80
41b2: 001b10 movsp a1, a11
The crash terminates the init process and causes kernel panic.
The fix prevents reordering of movsp opcode and any access to the stack
frame memory and is applicable to all existing gcc versions.
Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
We never bothered to build multilibbed Linux toolchains for ARC
and so we ended-up with no support of multilib for arc*-*-linux-*
targets in GCC. That is now fixed in upstream by the following commit:
https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=0eacfbcb2bf1834294f468a2bb41fe5d5e8d3883
Once the fix mentioned above is applied on top of GCC 8.1.0 we may easily build
multilibbed uClibc toolchain for ARC.
Note sice Glibc port for ARC is still in review process we cannot build any Glibc
toolchains for ARC with pure upstream components, for that we eiter need Glibc
sources from our Github repo or apply a set of patches on top of Glibc 2.27 - we'll
try to address this later though.
Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
hs4x and hs4xd were mistakenly mentioned in MULTILIB_OPTION/DIRNAMES
before real support of those CPUs was accepted in upstream.
That breaks multilib toolchains building becase we're trying to compile
for not yet known CPU.
Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
Without this fix we're getting the following error on attempt to build
Linux kernel:
--------------------------------->8---------------------------------
xfrm4_mode_tunnel.s: Assembler messages:
xfrm4_mode_tunnel.s:188: Error: operand out of range (128 is not between -
128 and 127)
--------------------------------->8---------------------------------
The fix is taken from
d8d716f49c
and it is supposed to be merged in upstream GCC sources soonish.
Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
- Incompatible function type for ifunc alias
- Multiple statements macro expansion in strftime
- if_nametoindex size checking
Signed-off-by: Alexey Neyman <stilor@att.net>
- GLIBC requires a fix to work with binutils 2.30 on aarch64. This fix
relies on binutils 2.24 or newer, which is okay for glibc 2.26 since
it needs 2.25 or newer anyway. But older glibc versions are now pinned
to binutils 2.29 or older on aarch64.
- xtensa needs patches in libgcc with gcc 7.3.
- comment in newlib's patch to indicate it is a reversal of a commit.
Signed-off-by: Alexey Neyman <stilor@att.net>
- Update to 20180129
- Throw in --disable-db-install if database is disabled; otherwise
'make install' tries to run tic which is not built.
- Select appropriate strip utility for the host; otherwise non-x86
architectures fail to install (unless --disable-stripping is also
added)
Signed-off-by: Alexey Neyman <stilor@att.net>
android-ndk, binutils, gcc, linux, mpfr, ncurses, newlib, uclibc-ng
MPC vs MPFR dependencies required modifications in auto-generated templates
to also provide non-inclusive older-than/newer-than specifications.
Also correct MPC URLs, the website seems to have adjusted its directory
layout.
Currently, newlib 3.0.0 doesn't build for arm-nano-eabi.
Signed-off-by: Alexey Neyman <stilor@att.net>
Also fix test-packages: it was saving the output from CT_DoLog into
the checksum file. Also use one file per version.
Signed-off-by: Alexey Neyman <stilor@att.net>
Memory references to DI mode objects could incorrectly be created at
offsets that are not supported by instructions l32i/s32i, resulting in
ICE at a stage when access to the object is split into access to its
subwords:
drivers/staging/rtl8188eu/core/rtw_ap.c:445:1:
internal compiler error: in change_address_1, at emit-rtl.c:2126
Fixes: https://lkml.org/lkml/2017/9/10/151
Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
These were added by GCC in July but these branches are from May. I
suspect that they will be added to at least the 6.x and 7.x branches
but 5.x is EOL from Linaro it seems (as the base GCC version hasn't
been updated in a year and a half). For right now, these are needed.
This was testing on an arm64 build but the patches have fixes for all
supported architectures.
Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>
Binutils 2.29 are more picky about versioning of common symbols.
Fix two offenders in glibc versions as applicable.
Signed-off-by: Alexey Neyman <stilor@att.net>
... in addition to -mfloat128 that glibc 2.26 adds. GCC7 needs both,
GCC6 does not and chokes on unknown option.
Signed-off-by: Alexey Neyman <stilor@att.net>
Policy:
- Only latest patchlevel for each branch release
Exception: CLooG - ISL has dependencies on specific CLooG releases within a
single branch
- Where there are no patchlevel releases (uClibc, musl) - just retain
two most recent releases
Also, missed automake update: 1.14 -> 1.14.1
Signed-off-by: Alexey Neyman <stilor@att.net>
E.g., only include minor/major of the Linux kernel into the kconfig
symbol. In the future, to be defined by all packages, but for now
matches the current versioning in the packages.
Signed-off-by: Alexey Neyman <stilor@att.net>
It fails to compile with the only locale version available (030818)
(on master too, with exactly the same error).
uClibc-ng does not use pregenerated locales.
Signed-off-by: Alexey Neyman <stilor@att.net>
- Need GDB8.0 milestone
- Make uClibc "master" package
- Rename bionic -> android-ndk to match the package name and
support suffixes for archives
Signed-off-by: Alexey Neyman <stilor@att.net>
... fails on DUMA because it cannot be compiled by newer C++, and patches
are not applied to checkouts from VCS.
Signed-off-by: Alexey Neyman <stilor@att.net>