This upgrade GCC 4 to 4.9.4, the last release in the GCC 4 series. This
lets us drop one of the patches, which was included in 4.9.4.
We need to get rid of 3 flags that are set globally for compiling such
an old version of GCC (it doesn't know two of them, and
-Werror=format-security cannot be used with GCC).
Signed-off-by: Jens Reidel <adrian@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7423>
Neither ppc64le nor loongarch64 use vendor kernels, so the old GCCs
packages are not required.
They currently don't build either because of a couple of problems when
building with GCC 15. If we really want to, ppc64le can be re-enabled
once those problems are resolved, since it is supported since GCC 4.9.
loongarch64 needs a much newer GCC.
[ci:skip-vercheck]
Signed-off-by: Jens Reidel <adrian@postmarketos.org>
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7117
[ci:skip-build]: just disabling some arches
Don't build with !tracedeps, as otherwise the isl dependency is not
properly added to the built gccs. In practice this probably doesn't
matter since we only use these old gccs to build kernels in the native
chroots (not via crossdirect in foreign arch chroots), and we also
install a proper gcc in the native chroot that pulls in the isl
dependency. But fix it for correctness.
Related: pmaports issue 1732
[ci:skip-build] Already built successfuly on CI in MR
Previously only cross/gcc{4,6}-* packages were adjusted in MR 3419, but
these packages need to be adjusted as well.
Fix for error shown in upstream_compat check:
Increase 'gcc6' pkgrel (10 -> 11), missing depend(s): isl
Increase 'gcc4' pkgrel (5 -> 6), missing depend(s): isl
Related: pmbootstrap issue 2167
[ci:skip-build] Already built successfully once
Bump the pkgrel of gcc4 and gcc6, and regenerate the cross/* versions
with "pmbootstrap aportgen gcc6-armv7" etc.
Should fix these errors:
Error loading shared library libisl.so.22: No such file or directory (needed by /usr/gcc6/libexec/gcc/x86_64-alpine-linux-musl/6.4.0/cc1)
Error relocating /usr/gcc6/libexec/gcc/x86_64-alpine-linux-musl/6.4.0/cc1: isl_union_map_free: symbol not found
Error relocating /usr/gcc6/libexec/gcc/x86_64-alpine-linux-musl/6.4.0/cc1: isl_map_from_pw_aff: symbol not found
Error relocating /usr/gcc6/libexec/gcc/x86_64-alpine-linux-musl/6.4.0/cc1: isl_schedule_from_domain: symbol not found
...
Related: https://gitlab.alpinelinux.org/alpine/aports/-/commit/54749a52225575a91f01d04f8d024b4ee853cfb6
[ci:skip-build]: already built successfully in CI
Fix the build failure when built with newer gcc:
/home/pmos/build/src/gcc-4.9.2/gcc/reload1.c:89:24: error: use of an operand of type 'bool' in 'operator++' is forbidden in C++17
89 | (this_target_reload->x_spill_indirect_levels)
| ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
/home/pmos/build/src/gcc-4.9.2/gcc/reload1.c:444:7: note: in expansion of macro 'spill_indirect_levels'
444 | spill_indirect_levels++;
| ^~~~~~~~~~~~~~~~~~~~~
Patch source: https://github.com/ChrisMacGregor/esp-open-sdk/blob/master/1001-fix-reload1-compile-error.patch
Rebuild all other GCC packages against mpfr4, so they don't fail with:
Error loading shared library libmpfr.so.4: No such file or directory (needed by /usr/gcc4/libexec/gcc/x86_64-alpine-linux-musl/4.9.2/cc1)
[ci:skip-build]: won't finish in time
Related: 2b32ed3a48786fa151cad8f920e5d9997bee94ed in Alpine's aports.git
Explicitly depend on mpc1. Our generated gcc aports use the !tracedeps
option, so we need to explicitly set the libraries it depends on.
This has mostly not been an issue, as we are installing our gcc
packages together with Alpine's gcc package, which causes the libraries
to get installed anyway.
Fixes#236.
[ci:skip-build]: takes too long to build.
Successfully tested both the gcc4 compiler on x86_64 with a simple
program (fbdebug) and the gcc4-armhf cross-compiler to build a very old
u-boot port for Galaxy Nexus (a MR will follow soon) which failed to
boot with either newer version (6 and 8).
[skip ci]: already went through