Commit Graph

5286 Commits

Author SHA1 Message Date
Chris Packham
21c6818126
Merge pull request #1525 from cpackham/archlinux-docker
testing: docker: Use archlinux:latest instead of archlinux/base:latest
2021-06-09 20:12:05 +12:00
Chris Packham
594b9286f4
Merge pull request #1524 from stephanosio/gcc_custom_libstdcpp_cxx_flags_upstream
Fix libstdc++ build options
2021-06-09 20:11:48 +12:00
Chris Packham
e713913029
Merge pull request #1523 from stephanosio/add_tm_clone_registry_config_upstream
gcc: Add CT_CC_GCC_TM_CLONE_REGISTRY config
2021-06-09 20:11:30 +12:00
Chris Packham
fde8e92d4d testing: docker: Use archlinux:latest instead of archlinux/base:latest
The name of the docker images have changed on docker hub. Update the
name used to point to the official archlinux image.

Fixes #1522

Signed-off-by: Chris Packham <judge.packham@gmail.com>
2021-06-08 20:59:58 +12:00
Stephanos Ioannidis
1e21a30287 gcc: Add CT_CC_GCC_TM_CLONE_REGISTRY config
This commit adds a new gcc config `CT_CC_GCC_TM_CLONE_REGISTRY` that
enables the GCC transactional memory clone registry feature for libgcc.

Note that the gcc option to control this feature is only available in
gcc 10 and above.
(see gcc commit 5a4602805eb3ebddbc935b102481e63bffc7c5e6)

Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
2021-06-08 02:13:45 +09:00
Stephanos Ioannidis
7144b5f275 newlib: Add libstdc++ nano-specific CXXFLAGS
This commit adds a new config that can be used to specify the target
CXXFLAGS specific to the libstdc++ newlib-nano variant.

By default, this config is set to specify the `-fno-exceptions` option,
which disables C++ exception handling support and greatly reduces the
compiled binary size.

Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
2021-06-07 19:53:28 +09:00
Stephanos Ioannidis
fffa4c5aa5 gcc: Allow setting custom target CXXFLAGS
This commit adds two additional arguments (`cxxflags_for_target` and
`extra_cxxflags_for_target`) for the gcc backend build function that
can be used to specify custom target CXXFLAGS.

By default, the target CXXFLAGS is set to the target CFLAGS. When
`cxxflags_for_target` is specified however, it overrides that behaviour
and allows setting different target CXXFLAGS from the target CFLAGS.

The `extra_cxxflags_for_target` argument can be used to specify the
extra target CXXFLAGS to be appended to the target CXXFLAGS. This is
useful when it is necessary to append CXX-specific flags to the
existing CFLAGS to be used as the target CXXFLAGS.

A useful application of this is building full and nano versions of
libstdc++ with different target CXXFLAGS as necessitated by
`nano.specs`.

Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
2021-06-07 19:53:28 +09:00
Stephanos Ioannidis
3c637c1eec gcc: Assume '-O2' by default for building gcc target libraries
The gcc target libraries (e.g. libstdc++) are currently built without
any optimisation flag when `CT_CC_GCC_ENABLE_TARGET_OPTSPACE` is not
enabled and default to `-O0` unless user explicitly specifies an
optimisation flag.

This commit updates the gcc build script to assume `-O2` for building
target libraries unless user provides a different optimisation flag.

Note also that this is the default behaviour for gcc when
C[XX]FLAGS_FOR_TARGET is not overridden.

Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
2021-06-07 19:52:58 +09:00
Stephanos Ioannidis
4ab0727f98 packages: gcc: Add missing milestones
This commit adds the missing gcc milestones 9 and 10, so that the
helper symbols `GCC_9_or_later` and `GCC_10_or_later` can be used.

Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
2021-06-07 18:54:58 +09:00
Chris Packham
6dd60ca694
Merge pull request #1521 from cpackham/expat
Expat
2021-05-31 15:12:26 +12:00
Chris Packham
89e00e661f expat: Bump to 2.4.1
Bring in fixes CVE-2013-0340.

Fixes #1520

Signed-off-by: Chris Packham <judge.packham@gmail.com>
2021-05-29 21:33:42 +12:00
Chris Packham
8fe6df1e98 expat: Drop support for 2.1.1
Drop out of date and vulnerable expat version.

Signed-off-by: Chris Packham <judge.packham@gmail.com>
2021-05-29 21:06:17 +12:00
Chris Packham
248967937c
Merge pull request #1517 from graysky2/isl-0.24
Update utils to latest stable
2021-05-26 21:21:37 +12:00
John Audia
9934a20dc8 Update utils to latest stable
* autoconf from 2.69 to 2.71
* isl from 0.22 to 0.24

Signed-off-by: John Audia <graysky@archlinux.us>
2021-05-25 06:05:11 -04:00
Chris Packham
3150bef839
Merge pull request #1515 from messense/glibc-2-24-powerpc64-memset
Add glibc 2.24 fix cmpli usage in power6 memset patch
2021-05-25 20:00:39 +12:00
Chris Packham
86db1589a2
Merge pull request #1513 from Bensuperpc/add_raspberry_pi4_config
Add config sample of Raspberry Pi 4
2021-05-25 19:58:37 +12:00
Chris Packham
5f4c95f4f4
Merge pull request #1518 from lancethepants/master
Add MinGW version 9.0.0
2021-05-25 19:58:21 +12:00
lancethepants
e4eb901516 Add MinGW version 9.0.0
Signed-off-by: Lance Fredrickson <lancethepants@gmail.com>
2021-05-24 10:24:56 -06:00
messense
1da73325db Add glibc 2.24 fix cmpli usage in power6 memset patch
Signed-off-by: messense <messense@icloud.com>
2021-05-23 19:57:31 +08:00
Chris Packham
511442be60
Merge pull request #1512 from Bensuperpc/update_linux_package
Update linux package and add new version
2021-05-22 19:54:53 +12:00
Bensuperpc
afdab6f2ff Add config sample of Raspberry Pi 4
Add config sample of Raspberry Pi 4:
Add armv8-rpi4-linux-gnueabihf
Add aarch64-rpi4-linux-gnu

Signed-off-by: Bensuperpc <bensuperpc@gmail.com>
2021-05-19 15:18:38 +02:00
Bensuperpc
62c89c9ba0 Update linux package and add new version
Update linux package and add new version:
Add 5.12.4
From 5.11.6 to 5.11.21
From 5.4.105 to 5.4.119
From 4.20.9 to 4.20.17
From 4.19.180 to 4.19.190
From 4.9.261 to 4.9.268
From 4.4.261 to 4.4.268
From 3.18.134 to 3.18.139
From 3.16.82 to 3.16.85

Signed-off-by: Bensuperpc <bensuperpc@gmail.com>
2021-05-19 10:02:53 +02:00
Chris Packham
6d008334bc
Merge pull request #1510 from messense/glibc-ppc64le-patches
Add GLIBC 2.17 support to powerpc64le-unknown-linux-gnu
2021-05-18 20:46:49 +12:00
Chris Packham
f284f41495
Merge pull request #1508 from lancethepants/master
Update MinGW to version 8.0.2.
2021-05-14 20:06:07 +12:00
messense
0088351811 fix BZ 18116 - build failure on ppc64le: setcontext.S uses power6 mtfsf
when not supported
2021-05-13 19:09:40 +08:00
messense
798904409c Add ppc64le patches for glibc 2.17 from CentOS git 2021-05-13 15:12:54 +08:00
lancethepants
8a96209b69 Update MinGW to version 8.0.2.
Adds support for gcc11.

Signed-off-by: Lance Fredrickson <lancethepants@gmail.com>
2021-05-12 10:39:11 -06:00
Chris Packham
f9716e8b90
Merge pull request #1504 from cmuellner/git-annotated-tags
scripts/functions: Add better support for annotanted git tags
2021-05-12 19:05:16 +12:00
Chris Packham
fbccd749ec
Merge pull request #1507 from cpackham/misc-fixes
Misc fixes
2021-05-12 19:01:44 +12:00
Chris Packham
813b6877e6 strace: Add github mirror
strace.io currently has an expired certificate. The same files are
available via github so add that as a mirror.

Signed-off-by: Chris Packham <judge.packham@gmail.com>
2021-05-11 21:53:46 +12:00
Chris Packham
cc8c64a8dc glibc: --enable-obsolete-rpc has been removed as of 2.32
Make --enable-obsolete-rpc conditional on !GLIBC_2_32_or_later as
it's been removed from that version on.

Fixes: #1505
Fixes: commit 1ee44ab5 ("glibc: --enable-obsolete-rpc has been removed as of 2.32")
Signed-off-by: Chris Packham <judge.packham@gmail.com>
2021-05-11 21:02:29 +12:00
Chris Packham
10c21dfc17 alpha: Support 64-bit only
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>
2021-05-11 21:02:22 +12:00
Chris Packham
bbb0db2880
Merge pull request #1501 from nikkon-dev/nikkon-dev/gcc11
Initial commit for gcc11
2021-05-11 19:45:52 +12:00
Christoph Muellner
1dc25bf611 scripts/functions: Add better support for annotanted git tags
Annotated git tags are git objects with their own ID.
They contain the commit ID where they point to.

When downloading from annotated tags, we currently get the following warning:
  "Revision being fetched changed to ${new_unique_id};"
The old unique_id is the ID of the annotated tag and the new unique_id
is the commit it points to.

Let's resolve this by first assuming to have an annotated tag and let
git ls-remote dereference it. If that fails (e.g. if it can't be
dereferenced because it is not an annotated tag), then let's proceed as
before and don't do any dereferencing.

Signed-off-by: Christoph Muellner <cmuellner@linux.com>
2021-05-06 02:21:33 +02:00
spaun2002
0cf01b55a6 Fix dynamic exception specifications in DUMA tests.
GCC11 now have -std=c++17 by default and c++17 does not allow dynamic
exception specifications.

Signed-off-by: Nik Konyuchenko <spaun2002mobile@gmail.com>
2021-05-05 01:27:57 -07:00
spaun2002
6b465e150d Remove m1 from multilibs for GCC11 on SH arch.
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>
2021-05-05 01:27:57 -07:00
spaun2002
6ca5f91fb5 Disable -Werror for GLIBC for all ARCH for GCC11.
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>
2021-05-05 01:26:34 -07:00
spaun2002
37c61914ce Pull patch for macOS from GCC 10.3.0 package.
This should fix linkage error on MacOS.

Signed-off-by: Nik Konyuchenko <spaun2002mobile@gmail.com>
2021-05-05 01:15:07 -07:00
spaun2002
c4efcd7eaa Initial commit for gcc11
Signed-off-by: Nik Konyuchenko <spaun2002mobile@gmail.com>
2021-04-28 14:50:18 -07:00
Chris Packham
0528a9d744 Merge branch 'abrodkin-newlib-nano-relocatable' of git://github.com/foss-for-synopsys-dwc-arc-processors/crosstool-ng 2021-04-19 20:29:26 +12:00
Chris Packham
e27def9d3b Merge branch 'newlib-nano-target' of git://github.com/galak/crosstool-ng 2021-04-19 20:25:49 +12:00
Chris Packham
d01672ee0e Merge branch 'newlib-nano-4.1.0' of git://github.com/galak/crosstool-ng 2021-04-19 20:24:18 +12:00
Chris Packham
fe148013f0 Merge branch 'ltrace-fix' of https://github.com/cpackham/crosstool-ng 2021-04-19 20:23:17 +12:00
Chris Packham
a87b62ee11 Merge branch 'abrodkin-gdb-10-fix' of git://github.com/foss-for-synopsys-dwc-arc-processors/crosstool-ng 2021-04-19 20:22:39 +12:00
Alexey Brodkin
89273b59af newlib-nano: Use run-time calculated paths in top-level nano.specs
In currently generated top-level "nano.specs" we resolve
paths during toolchain building and then use those pre-defined
full paths once the toolchain got built.

That's OK until the toolchain is used right were it was built,
otherwise paths used in the top-level "nano.specs" become
irrelevant and linker fails to find "nano" libs reverting to
non-"nano" libs in the default location.

See https://github.com/crosstool-ng/crosstool-ng/issues/1491.

Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
2021-04-16 17:11:01 +03:00
Kumar Gala
8e99639419 newlib-nano: Add option to copy libs into target
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>
2021-04-15 14:29:04 -05:00
Kumar Gala
2816a97a25 newlib-nano: remove whitespace from nano.spec file
Remove trailing whitespace from generated nano.spec file.

Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
2021-04-15 14:29:04 -05:00
Alexey Brodkin
2baacbfe36 gdb: Don't mess with gdbserver config permissions
Some really old GDB releases did have gdbserver's configure
script w/o execution permissions, so there was a need in the fix.

As per Yann most likely it could have been true for GDB versions in
between v5.3 & 6.6. Moreover it could have been fixed on re-release
of GDB tarballs done in 2011, see [1].

And given we no longer support such old GDB versions in CT-NG
(as of today we have 6.8 - 9.2, moreover it's not clear which of
6.8-7.x versions are still being actively used) we'll revert that old hack
for now in a hope that it won't hurt anybody.

Though if somebody sees that problem again
we'll be able to revert this again ;)

[1] https://sourceware.org/legacy-ml/gdb/2011-09/msg00002.html

Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
2021-04-15 16:26:05 +03:00
Kumar Gala
934c971a2a newlib-nano: Add newlib 4.1.0 support
Add symlink to newlib-4.1.0 package details for newlib-nano/4.1.0

Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
2021-04-15 01:06:53 -05:00
Chris Packham
d95d0497db ltrace: Add patch to fix compile error for mips
Newer versions of GCC complain:

  plt.c: In function 'arch_elf_add_plt_entry':
  plt.c:359:3: error: '%s' directive argument is null [-Werror=format-overflow=]
    359 |   fprintf(stderr, "%s: failed %s(%#llx): %sn", __func__,
        | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    360 |    name, addr, strerror(errno));
        |    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  cc1: all warnings being treated as errors

add a patch to avoid this error.

Signed-off-by: Chris Packham <judge.packham@gmail.com>
2021-04-14 22:11:35 +12:00