As of today ARCompact (AKA "ARCv1 ISA") processors (mostly those are ARC770)
are not officially supported by upstream glibc as it adds quite some burden
on release ans support of yet another "architecture" port.
But given on ABI and ISA front ARCompact is very close to ARCv2 we may
easily retrofit its support off-the-tree, which we do here.
Also given amount of changes we need to apply there's a hope it will be easy
and straight-forward to apply the same to later versions of glibc.
Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
Forward ported all local patches from previous glibc release 2.32, they
applied cleanly.
Signed-off-by: Hans-Christian Noren Egtvedt <hegtvedt@cisco.com>
Backport change from glibc upstream that defines RELEASE as stable
instead of release. This will at least cause the default_cflags to be
set to expected default values again.
Ref issue #1396, although the bigger issue of respecting crosstool-ng
CT_GLIBC_EXTRA_CFLAGS is most likely still not fixed.
Signed-off-by: Hans-Christian Noren Egtvedt <hegtvedt@cisco.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>
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>
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>
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>
- 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>
- 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>
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>
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>