Commit Graph

5443 Commits

Author SHA1 Message Date
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
Chris Packham
5075e1f98e glibc: Add comment about python 3.4 dependency
Add a comment that is visible when the python3.4 prerequisite is not met
so that users can tell why they can't select a newer glibc version.

Signed-off-by: Chris Packham <judge.packham@gmail.com>
2021-11-30 19:56:44 +13:00
Chris Packham
f441a6bf0d linux: Add dependency on rsync for Linux >= 5.3
As of Linux v5.3 rsync is used as part of the build process. Add Linux
5.3 as a milestone, configure detection of rsync and a dependency on
rsync for Linux 5.3 and newer. Add a comment in so that users can tell
why they can't select a newer version.

Fixes #1628

Signed-off-by: Chris Packham <judge.packham@gmail.com>
2021-11-30 19:56:44 +13:00
Chris Packham
4dc9d643f9 gettext: Add gettext 0.21
https://git.savannah.gnu.org/cgit/gettext.git/log/?qt=range&q=v0.20.2..v0.21

Signed-off-by: Chris Packham <judge.packham@gmail.com>
2021-11-24 11:20:34 +13:00
Chris Packham
8d296762d6 CI: Add mingw32 samples
Add i686-w64-mingw32 and x86_64-w64-mingw32 to the targets built for CI.

Signed-off-by: Chris Packham <judge.packham@gmail.com>
2021-11-22 21:15:31 +13:00
Bensuperpc
ea79ce7bf4 Update picolibc to 1.7.4
Update picolibc to 1.7.4

Signed-off-by: Bensuperpc <bensuperpc@gmail.com>
2021-11-22 20:10:26 +13:00
Chris Packham
c55c826dc0 strace: add 5.14
https://lists.strace.io/pipermail/strace-devel/2021-September/010674.html

Bring in upstream patch to deal with removal of linux/ipx.h in the
linux 5.15.

Signed-off-by: Chris Packham <judge.packham@gmail.com>
2021-11-16 22:11:03 +13:00
Chris Packham
fac5020ae0 linux: add 5.15, update stable/lts
Add 5.15.2
Update 4.4.283 -> 4.4.292
Update 4.9.282 -> 4.9.290
Update 4.14.246 -> 4.14.255
Update 4.19.206 -> 4.19.217
Update 5.4.144 -> 5.4.159
Update 5.10.62 -> 5.10.79
Update 5.14.1 -> 5.14.18

Signed-off-by: Chris Packham <judge.packham@gmail.com>
2021-11-16 22:11:03 +13:00
Chris Packham
ce405b871b cloog: remove gnu mirror
The GNU mirror doesn't contain cloog-18.4. Remove it.

Signed-off-by: Chris Packham <judge.packham@gmail.com>
2021-11-15 20:14:52 +13:00
Chris Packham
95130d134e CI: install the latest GNU make on macOS
The CI builds currently seem unhappy on macOS when we build make
ourselves. Install GNU make via brew so that we don't have to build it
ourselves.

Signed-off-by: Chris Packham <judge.packham@gmail.com>
2021-11-14 20:10:54 +13:00
Keith Packard
25f6dae85e Switch picolibc to 1.7.3
Signed-off-by: Keith Packard <keithp@keithp.com>
2021-10-20 19:36:31 +13:00
lancethepants
f6cefea020 Add uclibc-ng 1.0.39
Signed-off-by: Lance Fredrickson <lancethepants@gmail.com>
2021-10-19 20:24:13 +13:00
Chris Packham
10ac846d42 Merge branch 'ld_makefile-remove' of https://github.com/foss-for-synopsys-dwc-arc-processors/crosstool-ng
Signed-off-by: Chris Packham <judge.packham@gmail.com>
2021-10-11 21:13:24 +13:00
Chris Packham
2a770f3091 Merge branch 'ncurses-v6-abi' of https://github.com/foss-for-synopsys-dwc-arc-processors/crosstool-ng
Signed-off-by: Chris Packham <judge.packham@gmail.com>
2021-10-11 21:12:17 +13:00
Chris Packham
405449624a Merge branch 'more-gcc11-fixes-for-arc' of https://github.com/foss-for-synopsys-dwc-arc-processors/crosstool-ng
Signed-off-by: Chris Packham <judge.packham@gmail.com>
2021-10-11 21:11:13 +13:00
Alexey Brodkin
5d903ccee9 binutils-2.37: Remove obsolete ld_makefile patch
The patch in question was first introduced in [1] as a copy-paste
from OpenEmbedded [2], where it seems to exist on the first ever SVN commit.
Later it was removed from OE in [3] on switching to Binutils 2.25.

It's not clear why it was introduced in the first place and why it
got removed later. But given in OE/Yocto it was missing since 2015
and never was reverted, I guess it is not strictly necessary
at least with recent Binutils. So it's an extra patch which adds
questionable value. Moreover it gets in the way if one wants to
merge a couple of separate toolchains like little- & big-enadian
so that "bin" & "lib" folder contain all the binaries and libs
simultaneously. W/ that patch in place ldscripts won't co-exist,
but instead the latest set of scripts will override all the rest.

And in case of aforementioned example w/ merged little- &
big-endian toolchains BE ldscripts will override LE ones leading
to a funny behavior: on linking w/o explicitly set endianess
(via "-EL" or "-EB") default linker scripts won't match the GCC driver
used:
------------------------------->8---------------------------
$ arc-elf32-gcc test.c -Wl,-marcv2elfx

...

.../bin/../lib/gcc/arc-snps-elf/11.2.0/../../../../arc-snps-elf/bin/ld: .../bin/../lib/gcc/arc-snps-elf/11.2.0/../../../../arc-snps-elf/lib/crt0.o: compiled for a little endian system and target is big endian
.../bin/../lib/gcc/arc-snps-elf/11.2.0/../../../../arc-snps-elf/bin/ld: failed to merge target specific data of file .../bin/../lib/gcc/arc-snps-elf/11.2.0/../../../../arc-snps-elf/lib/crt0.o
.../bin/../lib/gcc/arc-snps-elf/11.2.0/../../../../arc-snps-elf/bin/ld: .../bin/../lib/gcc/arc-snps-elf/11.2.0/crti.o: compiled for a little endian system and target is big endian

...
------------------------------->8---------------------------

[1] cfbcdd3786
[2] 4b46c1f6e8
[3] 3c7fe424f8

Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
2021-10-10 04:55:24 -07:00
Alexey Brodkin
c46a6e809e ncurses: Use new v6 ABI by default
These days old v5 ABI is not that relevant as it used to be back in
2015 when ncurses 6.x was added to CT-NG.

And now we see say target "gdb" relying on "libncurses.so.5",
while up-to-date Buildroot provides "libncurses.so" & "libncurses.so.6":
--------------------------->8-------------------------
$ ldd /bin/gdb
        libncurses.so.5 => not found
        libstdc++.so.6 => /lib/libstdc++.so.6 (0x20022000)
        libm.so.6 => /lib/libm.so.6 (0x2017c000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x201ba000)
        libc.so.6 => /lib/libc.so.6 (0x201c8000)
        /lib/ld-linux-arc.so.2 (0x20000000)
--------------------------->8-------------------------

Switching to a default (v6 ABI) by default. And...
--------------------------->8-------------------------
$ ldd /bin/gdb
        libncurses.so.6 => /usr/lib/libncurses.so.6 (0x20022000)
        libstdc++.so.6 => /lib/libstdc++.so.6 (0x20054000)
        libm.so.6 => /lib/libm.so.6 (0x201ae000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x201ec000)
        libc.so.6 => /lib/libc.so.6 (0x201fa000)
        /lib/ld-linux-arc.so.2 (0x20000000)
--------------------------->8-------------------------

Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
2021-10-10 04:54:36 -07:00
Alexey Brodkin
15f9d8fcea gcc11: Fixes for ARC
See more details here:
1. https://github.com/foss-for-synopsys-dwc-arc-processors/toolchain/issues/398
2. https://github.com/foss-for-synopsys-dwc-arc-processors/toolchain/issues/427
3. https://github.com/foss-for-synopsys-dwc-arc-processors/toolchain/issues/429

Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
2021-10-10 04:53:17 -07:00
Chris Packham
bf890ce59e
Merge pull request #1614 from cpackham/isl-mirror
isl: Update mirror URL
2021-10-10 21:58:49 +13:00
Chris Packham
cfb7d07ae1 isl: Update mirror URL
gforge.inria.fr has been shutdown. The isl project has moved hosting to
sourceforge.io. Update the mirror accordingly.

Signed-off-by: Chris Packham <judge.packham@gmail.com>
2021-10-10 21:35:26 +13:00
Chris Packham
aa524934f5 Merge branch 'remove-obsolete-versions' of https://github.com/cpackham/crosstool-ng
Signed-off-by: Chris Packham <judge.packham@gmail.com>
2021-09-26 20:47:42 +13:00