Commit Graph

5513 Commits

Author SHA1 Message Date
ivanka2012
76d9b8c15c Fix MinGW libstdc++ TLS functionality
Backport of cc1e28878a

Signed-off-by: Kittenberger Iván <ivanka2012@gmail.com>
2022-02-28 20:58:55 +13:00
Norbert Lange
ad3996a483 gcc: add gcc libstdcxx-verbose option
Rather important option for arm cortex toolchains supporting c++,
avoids pulling in all printf/iostream code by default.

Signed-off-by: Norbert Lange <nolange79@gmail.com>
2022-02-23 20:21:16 +13:00
Norbert Lange
2a856608e1 update mpc to 1.2.1
Signed-off-by: Norbert Lange <nolange79@gmail.com>
2022-02-23 20:20:55 +13:00
Norbert Lange
3300c879f8 Add isl 0.23
Signed-off-by: Norbert Lange <nolange79@gmail.com>
2022-02-23 20:20:55 +13:00
Norbert Lange
c638767162 Update isl to 0.22.1
Signed-off-by: Norbert Lange <nolange79@gmail.com>
2022-02-23 20:20:55 +13:00
Chris Packham
e2eb7d8587 binutils: Disable libdebuginfod when producing a static toolchain
libdebuginfod is incompatible with static linking so pass
--without-debuginfod when CT_STATIC_TOOLCHAIN is selected.

Fixes #1683

Signed-off-by: Chris Packham <judge.packham@gmail.com>
2022-02-23 20:20:34 +13:00
Chris Packham
4221618268 glibc: mark 2.12.1 as obsolete
CentOS6 has reached EOL so now glibc-2.12.1 can be marked as obsolete.
This also means the last glibc-ports version (and glibc-ports itself)
obsolete as well. These will be removed after the next release.

Signed-off-by: Chris Packham <judge.packham@gmail.com>
2022-02-23 20:20:09 +13:00
Chris Packham
20044c0bf7 bionic: mark bionic/android-ndk as obsolete
Support for bionic was dropped by GCC some time ago. There are patches
for older GCC versions but those are difficult to maintain and the
version of the android-ndk they support is of little use. Mark all of
the existing bionic support as obsolete so it can be removed after the
next release.

Signed-off-by: Chris Packham <judge.packham@gmail.com>
2022-02-23 20:19:46 +13:00
Chris Packham
71fad07b71 strace: Remove 5.0 to 5.14
strace maintains backwards compatibility with older kernels so there is
no need to keep multiple versions of strace. Versions 5.0 to 5.14
weren't present in the crosstool-ng-1.24 release so remove them directly
instead of marking them as obsolete.

Signed-off-by: Chris Packham <judge.packham@gmail.com>
2022-02-23 20:19:10 +13:00
Chris Packham
3a80ddda77 strace: mark 4.15 to 4.26 as obsolete
strace maintains backwards compatibility with older kernel versions so
there's no particular reason to keep many versions of strace around.
Mark the versions that were present in the 1.24 release as obsolete.
They will be remove following the next release.

Signed-off-by: Chris Packham <judge.packham@gmail.com>
2022-02-23 20:19:10 +13:00
Artem Panfilov
a21748bd53 CI: add Canadian Cross build job
Signed-off-by: Artem Panfilov <artemp@synopsys.com>
2022-02-20 20:41:31 +13:00
Artem Panfilov
e1a654eb93 CI: sort sample lines ascending order
Signed-off-by: Artem Panfilov <artemp@synopsys.com>
2022-02-20 20:41:31 +13:00
Artem Panfilov
5ea8f0f524 CI: auto reformat YAML
Signed-off-by: Artem Panfilov <artemp@synopsys.com>
2022-02-20 20:41:31 +13:00
Chris Packham
74d6f26b46 strace: Add 5.16
https://lists.strace.io/pipermail/strace-devel/2022-January/010884.html

Signed-off-by: Chris Packham <judge.packham@gmail.com>
2022-02-16 20:34:02 +13:00
Chris Packham
0b2ef63a6b linux: Add 5.16.9, bump LTS
Add 5.16.9
Bump 5.15.2 -> 5.15.23
Bump 5.10.79 -> 5.10.100
Bump 5.4.159 -> 5.4.179
Bump 4.19.217 -> 4.19.229
Bump 4.9.290 -> 4.9.301
Bump 4.4.292 -> 4.4.302

Signed-off-by: Chris Packham <judge.packham@gmail.com>
2022-02-16 20:33:42 +13:00
Alexey Neyman
681aaef1f1
Merge pull request #1674 from stilor/master
Updates to make `ct-ng build-all` pass
2022-02-14 00:11:42 -08:00
Hans-Christian Noren Egtvedt
ba680a3e5b packages/binutils: add binutils-2.38
Binutils version 2.38 has been released
https://www.phoronix.com/scan.php?page=news_item&px=GNU-Binutils-2.38
https://sourceware.org/pipermail/binutils/2022-February/119721.html

Patches 0000 to 0008 from binutils-2.37 applied clean, so forward ported
them.

The following patches are now applied from upstream, hence dropped:
0010-change-uint-to-unsigned.patch
0011-bfd-close-the-file-descriptor-if-there-is-no-archive-fd.patch
0012-pr28391-strip-objcopy-preserve-dates-a-cannot-set-time.patch
0013-ld-pru-fix-resource_table-output-section-alignment.patch
0014-pr28422-build_id-use-after-free.patch
0015-pr28459-readelf-issues-bogus-warning.patch
0016-pr28417-std-string-no-longer-allows-accepting-nullptr_t.patch
0017-pr28540-segmentation-fault-on-NULL-byte_get.patch
0018-gold-place-note-gnu-property-section-before-other-note-sections.patch
0019-waddress-warning-in-ldelf.c.patch

Signed-off-by: Hans-Christian Noren Egtvedt <hegtvedt@cisco.com>
2022-02-13 20:47:12 +13:00
Chris Packham
c5565f175a powerpc: Allow GCC 8.5 for SPE ABI
Support for the SPE ABI was removed in GCC 9. Update the select to
GCC_REQUIRE_older_than_9 so that GCC 8.5 can be selected.

Fixes #1349, fixes #1666

Signed-off-by: Chris Packham <judge.packham@gmail.com>
2022-02-13 20:46:27 +13:00
Alexey Neyman
86c2982568 Run patches thru manage-packages -P
This refreshes the line numbers, removes any fuzz (which would make any
future forward ports easier) and standardizes the patch/file headers
(which makes them easier to read).

Signed-off-by: Alexey Neyman <stilor@att.net>
2022-02-11 00:47:51 -08:00
Alexey Neyman
1210b0c2f4 Run packages through manage-packages -D
This fixed some typos in the checksum files (please don't edit them
manually, this is error-prone!)

Signed-off-by: Alexey Neyman <stilor@att.net>
2022-02-11 00:47:51 -08:00
Alexey Neyman
5411e69b91 Update the docker containers
To avoid proliferation of versions, I suggest the following policy: the
oldest LTS release still receiving maintenance updates + the most recent
release for distributions that offer LTS releases.

For CentOS, this means CentOS7 and CentOS Stream 9 (since CentOS are all
"long-term support", this is just the oldest and the newest among
currently supported).

For Ubuntu, this means Ubuntu 18.04 (previous LTS are in "security fixes
only" mode) and Ubuntu 21.10. Recent Ubuntu attempts to be interactive
during the configuration of tzdata, required some additional setup.

In the common installation script, the logic for handling a
configured/built local directory breaks if `gmake` is detected as the
make binary; `make distclean` then fails inside the container because
not all systems have `gmake` symlink. Remove that attempt of a
workaround completely, just require that the host directory is clean.

Signed-off-by: Alexey Neyman <stilor@att.net>
2022-02-11 00:47:51 -08:00
Alexey Neyman
a4cff7a061 glibc-2.12.1: backport a fix for 2-pass build
Otherwise, it tries to link against libgcc_eh which is not available
until the final compiler (or previously, the pass-2 compiler) is built.

Signed-off-by: Alexey Neyman <stilor@att.net>
2022-02-11 00:47:51 -08:00
Alexey Neyman
5a0be8b4ec Unify core passes
With libc_headers step before pass-1, there is no need to distinguish
pass-1 and pass-2; they are configured identically (note that with the
current configuration, core pass-2 is only used for win32 - hence, uses
build_libgcc=yes and mode=static).

Signed-off-by: Alexey Neyman <stilor@att.net>
2022-02-11 00:47:51 -08:00
Alexey Neyman
93be629f2b Fold libc_start_files into libc
After 557b9d4, libc_start_files and libc_main steps are performed one
after another. It doesn't make sense, especially since some of the libcs
(glibc, uClibc-ng) go to great lengths to first install start files in
the first step, libc_start_files, only to remove them immediately in the
second step, libc_main.

Current build steps also break in the xtensa newlib configurations, as
it needs to install the custom xtensa headers before building the libgcc
and after 557b9d4, the headers are not installed before libgcc is built
in pass-1.

Therefore, finish what 557b9d4 mentioned but did not do: move header
installation into a new step, libc_headers, and combine libc_start_files
and libc_main into a single step.

This also allows to combine the core pass-1/pass-2 steps, to be done in
a subsequent commit.

Signed-off-by: Alexey Neyman <stilor@att.net>
2022-02-11 00:47:51 -08:00
Alexey Neyman
c320d220d6 Turn off debugging in sample configuration
Signed-off-by: Alexey Neyman <stilor@att.net>
2022-02-11 00:47:51 -08:00
Alexey Neyman
7b97bdd825 Convert tabs to spaces
Recent changes introduced a mixture of tabs/spaces that result in broken
indentation in multiple places.

Signed-off-by: Alexey Neyman <stilor@att.net>
2022-02-11 00:47:51 -08:00
Alexey Neyman
c6ff1eca5b Restrict *-uclibc,* canadians to gettext 0.20
Newer gettext is incompatible with uClibc-NG in cross-compilation, see
the comment in the code.

Signed-off-by: Alexey Neyman <stilor@att.net>
2022-02-11 00:47:51 -08:00
Alexey Neyman
a59503c872 Update m4 to 1.4.19
This fixes the x86_64-multilib-linux-uclibc,powerpc-unknown-elf canadian
cross example (which currently breaks because the gnulib example assumes
SIGSTKSZ is constant while recent libcs started defining it as a
sysconf(...) call.

Signed-off-by: Alexey Neyman <stilor@att.net>
2022-02-11 00:47:51 -08:00
Alexey Neyman
58da27c965 Restrict bionic's GCC/GDB selections
Refer to the comments in the code for the reason.

Signed-off-by: Alexey Neyman <stilor@att.net>
2022-02-11 00:47:51 -08:00
Alexey Neyman
db3b51de5a Remove GDB 11.1
This was originally an upgrade from 11.1 to 11.2 that fixed moxie-*
samples affected by PR sim/28302. GDB 11.2 landed independently on
master, so just remove 11.1 (one release per upstream branch, please, we
already have lots of version/architecture/host permutations to test).

Signed-off-by: Alexey Neyman <stilor@att.net>
2022-02-11 00:47:51 -08:00
Alexey Neyman
4c0d78bb64 gdb: use single-number versions/milestones for 9+
Starting with GDB9, the release number is only two numbers (with the
last being patchlevel). Therefore, keep two numbers for releases 8 and
below, but just a single number for 9 and up.

Signed-off-by: Alexey Neyman <stilor@att.net>
2022-02-11 00:47:51 -08:00
Alexey Neyman
586c2d0156 sparc-leon: restrict to GDB9
Starting with GDB10, it requires support for std::future<> in the
compiler. Such support has not been available on some architectures
until GCC9 (see PR 64735). I haven't determined the exact list of
affected architectures, so decided to make it a broad dependency: for
GDB10+, you need GCC9+.

Signed-off-by: Alexey Neyman <stilor@att.net>
2022-02-11 00:47:51 -08:00
Alexey Neyman
c48319e65f Rename moxiebox to match its tuple
Signed-off-by: Alexey Neyman <stilor@att.net>
2022-02-11 00:47:51 -08:00
Alexey Neyman
b4191b23a8 Update tic6x sample
Restrict kernel to 5.11 and below (support for this arch has been
dropped in 5.12); rename the sample to match its name as printed by
`ct-ng show-tuple` (otherwise, `make saveconfig` does not update the
sample's configuration).

Signed-off-by: Alexey Neyman <stilor@att.net>
2022-02-11 00:47:51 -08:00
Alexey Neyman
858f939436 More sample config updates
*-moxie*: DTC_VERBOSE is a wobbler, it depends on whether dtc is enabled
on the host machine (if dtc is installed, DTC defaults to 'n' and hence
prevents DTC_VERBOSE from appearing at all). Remove the option from
config file so that its value reverts to the default.

xtensa-fsf-elf: mark configuration obsolete so that it can use GDB 8.1
(it uses custom sources and needs to select the version therein)

Signed-off-by: Alexey Neyman <stilor@att.net>
2022-02-11 00:47:51 -08:00
Alexey Neyman
196f62e18c Upgrade script for uClibc retirement
Run samples through upgrade and fix accumulated breakages:

*-centos6-*: After 2.12.2 retirement, the samples selected most recent
glibc (2.34) which also forced kernels 3.2+. Revert to 2.12.1 and
2.6.32.71, respectively. Interestingly, 2.12.1 was marked as being used
in CentOS6, but the samples selected 2.12.2. Anyway, CentOS6 is EOL now
and glibc 2.12 is going to be marked obsolete, and retired soon.

arc-*: Make TARGET_VENDOR match the sample's name; otherwise `ct-ng
saveconfig` places the config file into a different location.

Fix 'savedefconfig' which was not saving the configuration file version
(CT_VCHECK was set to 'load' after CT_LoadConfig call).

Signed-off-by: Alexey Neyman <stilor@att.net>
2022-02-11 00:47:50 -08:00
Alexey Neyman
cc6b7fad46 Retire obsoleted milestones
... and the code dependent on them, after the latest wave of obsolete
package removals. This concludes the glorious history of the original
uClibc (non-NG) with lots of kludges removed.

There was a choice here, whether to call the resulting libc "uClibc" or
"uClibc-ng". I opted in favor of giving uClibc-ng the recognition it
deserves, although it had some ripple effect in the ct-ng code.

Signed-off-by: Alexey Neyman <stilor@att.net>
2022-02-11 00:47:50 -08:00
Alexey Neyman
4c6604e730 Remove gcc-oracle-4.8-44.0.5
GCC 4.8 and its prerequisites have been removed by 04dce680, 41d4583a
and e4221734; as a result, 4.8-based version of gcc-oracle became
unbuildable (no valid versions for the prerequisites).

Update the samples to use 4.9.4; which however fails to build on a modern
host GCC. Build fix backported to gcc-4.9 and gcc-5 versions.

Fix binutils-oracle build with host GCC11.

Signed-off-by: Alexey Neyman <stilor@att.net>
2022-02-11 00:47:50 -08:00
Alexey Neyman
8d63665818 glibc-ports: remove obsolete versions
The corresponding versions of glibc have been removed previously; kill
their "ports" counterpart.

Signed-off-by: Alexey Neyman <stilor@att.net>
2022-02-11 00:47:50 -08:00
Chris Packham
30fb23dd89 contrib: Remove openrisc-or32.patch.lzma
Remove out of date openrisc support.

Signed-off-by: Chris Packham <judge.packham@gmail.com>
2022-02-11 15:05:23 +13:00
Hans-Christian Noren Egtvedt
c206f2fc3e packages/glibc: add glibc version 2.35
Copied patches from glibc version 2.34, they still apply clean and I
assume they still are relevant.

Signed-off-by: Hans-Christian Noren Egtvedt <hegtvedt@cisco.com>
[cp add __convert_scm_timestamps patch]
Signed-off-by: Chris Packham <judge.packham@gmail.com>
2022-02-09 20:56:28 +13:00
Hans-Christian Noren Egtvedt
803f9b84f6 packages/gdb: add gdb-11.2
Forward port patches from gdb-11.1, as they still apply clean, hence
still assumed to be relevant.

Signed-off-by: Hans-Christian Noren Egtvedt <hegtvedt@cisco.com>
2022-02-08 20:52:48 +13:00
Hans-Christian Noren Egtvedt
5a4c95d658 binutils-2.37: add more patches from upstream release branch
Fetch in various patches from binutils-2_37-branch upstream.

The most vital change is the
0012-pr28391-strip-objcopy-preserve-dates-a-cannot-set-time.patch which
allows building large upstream projects like Qt WebEngine without need
100k's of file descriptors open.

Signed-off-by: Hans-Christian Noren Egtvedt <hegtvedt@cisco.com>
2022-02-04 09:55:25 +13:00
Norbert Lange
392955a293 Fix deterministic binutils option
Versions before 2.26 got removed in fa992b41, together with
CT_BINUTILS_2_23_or_later.
Remove reference to this variable

Signed-off-by: Norbert Lange <nolange79@gmail.com>
2022-01-30 21:08:25 +13:00
Chris Packham
6737cfaa8c gcc: Use upstream fix for cross-canadian builds
Replace the patch from #1600 with the change that landed upstream.

Signed-off-by: Chris Packham <judge.packham@gmail.com>
2022-01-14 12:44:51 +13:00
Chris Packham
f58583039f glibc: Re-enable Werror
Now that we have a 2-pass build it is no longer necessary to disable
-Werror in glibc.

This partially reverts commits 6ca5f91f ("Disable -Werror for GLIBC for
all ARCH for GCC11."), 215432d3 ("config/libc: Extend glibc 2.32
workaround to include sparc") and 645ee124 ("glibc: Don't build with
-Werror for powerpc64+glibc-2.32").

Signed-off-by: Chris Packham <judge.packham@gmail.com>
2022-01-12 21:02:38 +13:00
Chris Packham
557b9d4f8d gcc: Build static libgcc in core_pass1
Per https://github.com/crosstool-ng/crosstool-ng/issues/808 build static
libgcc in the first pass which lets us skip the second one.  Building
mingw-w64 requires header files in order to build C++ support so mingw
builds core pass 2. This could probably be cleaned up by splitting
libc_start_files into a separate libc_header step. But for now having
core 2 for mingw-w64 and core 1 for the other libcs will have to do.

Anything that previously selected CC_CORE_PASSES_NEEDED now selects
CC_CORE_PASS_1_NEEDED. The same goes for CC_CORE_PASS_2_NEEDED with the
exception of mingw-w64.

Fixes #808
Fixes #217

Signed-off-by: Chris Packham <judge.packham@gmail.com>
2022-01-12 21:02:38 +13:00
Chris Packham
ade8c04d14 configure.ac: Check that patch supports --no-backup-if-mismatch
BSD patch does not support --no-backup-if-mismatch. When we detect patch
check that it supports the option we use.

Fixes: #1577

Signed-off-by: Chris Packham <judge.packham@gmail.com>
2022-01-10 13:33:53 +13:00
Chris Packham
584e57e888 Update config.{sub,guess}
Run `ct-ng updatetools` to pick up the latest config.{sub,guess} from
upstream. This picks up support for some new architectures (e.g.
loongarch) and some new variants of existing ones. There is some
refactoring that makes the diff a bit larger but it's fairly easy to
follow.

Signed-off-by: Chris Packham <judge.packham@gmail.com>
2021-12-13 21:19:47 +13:00
Kairui Song
85530cce98 gcc: Fix 11.2.0 build failure on MacOS with Apple M1
With latest aarch64-unknown-linux-gnu, ct-ng build failed with:

[INFO ]  Installing pass-1 core C gcc compiler
[EXTRA]    Configuring core C gcc compiler
[EXTRA]    Building gcc
[ERROR]    clang: error: linker command failed with exit code 1 (use -v to see invocation)
[ERROR]    make[2]: *** [Makefile:2148: xgcc] Error 1
[ERROR]    make[2]: *** Waiting for unfinished jobs....
[ERROR]    clang: error: linker command failed with exit code 1 (use -v to see invocation)
[ERROR]    make[2]: *** [Makefile:2157: cpp] Error 1
[ERROR]    make[1]: *** [Makefile:4444: all-gcc] Error 2

And in build log:
Undefined symbols for architecture arm64:
  "host_detect_local_cpu(int, char const**)", referenced from:
      static_spec_functions in gcc.o

Just backport a upstream gcc fix.

Signed-off-by: Kairui Song <ryncsn@gmail.com>
2021-12-13 21:19:30 +13:00