[2024-feb-29] Sad news: Eric Layton aka Nocturnal Slacker aka vtel57 passed away on Feb 26th, shortly after hospitalization. He was one of our Wiki's most prominent admins. He will be missed.
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
howtos:hardware:arm:gcc-11.x_aarch64_cross-compiler [2021/09/28 09:28 (UTC)] – corrected text content - Aarch64 to AArch64 exaga | howtos:hardware:arm:gcc-11.x_aarch64_cross-compiler [2022/08/22 07:41 (UTC)] (current) – updated for gcc-12.1.0 exaga | ||
---|---|---|---|
Line 1: | Line 1: | ||
<!-- Add your text below. We strongly advise to start with a Headline (see button bar above). --> | <!-- Add your text below. We strongly advise to start with a Headline (see button bar above). --> | ||
- | ====== Slackware ARM current ARMv8 AArch64 cross-compiler build script (gcc-11.2.0) for the Raspberry Pi 3/4 ====== | + | ====== Slackware ARM current ARMv8 AArch64 cross-compiler build script (gcc-12.1.0) for the Raspberry Pi 3/4 ====== |
===== Preface ===== | ===== Preface ===== | ||
- | With the recent | + | With the updates of [[http:// |
Previous [[https:// | Previous [[https:// | ||
Line 10: | Line 10: | ||
===== Notes ===== | ===== Notes ===== | ||
- | Slackware ARM current was used on a Raspberry Pi 4 [4GB RAM] to build and install the gcc-11.2.0 aarch64-linux cross-compiler. | + | Slackware ARM current was used on a Raspberry Pi 4 [4GB RAM] to build and install the gcc-12.1.0 aarch64-linux cross-compiler. |
The Linux kernel source downloaded is from the Raspberry Pi Github repository: [[https:// | The Linux kernel source downloaded is from the Raspberry Pi Github repository: [[https:// | ||
Line 21: | Line 21: | ||
As a pre-requisite, | As a pre-requisite, | ||
- | * a Raspberry Pi 3 or 4 (i.e. a 64bit CPU) running Slackware ARM current with as much unused [>= 5GB] storage space on your system as possible. \\ | + | * a Raspberry Pi 3 or 4 (i.e. a 64-bit |
* [[http:// | * [[http:// | ||
Line 27: | Line 27: | ||
===== AArch64 cross-compiler script code ===== | ===== AArch64 cross-compiler script code ===== | ||
- | Download the ' | + | Download the ' |
- | Make the file executable using 'chmod +x SARPi64.SlackBuild-gcc-11.2.0-aarch64-cc.sh' | + | Make the file executable using 'chmod +x SARPi64.SlackBuild-gcc-12.1.0-aarch64-cc.sh' |
Refer to the commented top section of the script code for usage. | Refer to the commented top section of the script code for usage. | ||
- | <file sh SARPi64.SlackBuild-gcc-11.2.0-aarch64-cc.sh> | + | <file sh SARPi64.SlackBuild-gcc-12.1.0-aarch64-cc.sh> |
#! /bin/bash | #! /bin/bash | ||
############################################################################## | ############################################################################## | ||
- | # Slackware ARM gcc-11.2.0 aarch64 cross-compiler for Raspberry Pi | + | # Slackware ARM gcc-12.1.0 aarch64 cross-compiler for Raspberry Pi |
# | # | ||
- | # SARPi64.SlackBuild-gcc-11.2.0-aarch64-cc [v1.4] - 2021-09-25 | + | # SARPi64.SlackBuild-gcc-12.1.0-aarch64-cc [v1.5] - 2022-06-16 |
# | # | ||
+ | # 2022-06-16 by Exaga | ||
# 2021-09-25 by Exaga | # 2021-09-25 by Exaga | ||
# 2020-12-29 by Exaga | # 2020-12-29 by Exaga | ||
Line 52: | Line 53: | ||
# | # | ||
# This script downloads RPi Linux kernel source and the required binaries, | # This script downloads RPi Linux kernel source and the required binaries, | ||
- | # and configures, builds, patches, and installs a gcc 11.2.x aarch64-linux | + | # and configures, builds, patches, and installs a gcc 12.1.x aarch64-linux |
# cross-compiler on Slackware ARM current running on a Raspberry Pi 3/4. | # cross-compiler on Slackware ARM current running on a Raspberry Pi 3/4. | ||
# | # | ||
Line 59: | Line 60: | ||
# (e.g. / | # (e.g. / | ||
# | # | ||
- | # ~# chmod +x SARPi64.SlackBuild-gcc-11.2.0-aarch64-cc.sh | + | # ~# chmod +x SARPi64.SlackBuild-gcc-12.1.0-aarch64-cc.sh |
- | # ~# ./ | + | # ~# ./ |
# | # | ||
# You may install the cross-compiler anywhere you like, as long as it can be | # You may install the cross-compiler anywhere you like, as long as it can be | ||
Line 136: | Line 137: | ||
# Required build packages-versions [* newer versions may exist] | # Required build packages-versions [* newer versions may exist] | ||
- | BINUTILS_VERSION=binutils-2.37 | + | BINUTILS_VERSION=binutils-2.38 |
CLOOG_VERSION=cloog-0.18.1 | CLOOG_VERSION=cloog-0.18.1 | ||
- | GCC_VERSION=gcc-11.2.0 | + | GCC_VERSION=gcc-12.1.0 |
- | GLIBC_VERSION=glibc-2.34 | + | GLIBC_VERSION=glibc-2.35 |
GMP_VERSION=gmp-6.2.1 | GMP_VERSION=gmp-6.2.1 | ||
- | ISL_VERSION=isl-0.18 | + | ISL_VERSION=isl-0.24 |
MPFR_VERSION=mpfr-4.1.0 | MPFR_VERSION=mpfr-4.1.0 | ||
MPC_VERSION=mpc-1.2.1 | MPC_VERSION=mpc-1.2.1 | ||
# RPi GitHub Linux source - working branch [e.g. rpi-4.14.y | rpi-4.19.y | rpi-5.2.y ] | # RPi GitHub Linux source - working branch [e.g. rpi-4.14.y | rpi-4.19.y | rpi-5.2.y ] | ||
- | DEV_BRANCH=rpi-5.14.y | + | DEV_BRANCH=rpi-5.18.y |
Line 321: | Line 322: | ||
make $PARALLEL_JOBS install-gcc | make $PARALLEL_JOBS install-gcc | ||
- | # create gcc-11.2.0 libsanitizer asan_linux-cpp.patch file | + | # create gcc-12.1.0 libsanitizer asan_linux-cpp.patch file |
cd " | cd " | ||
touch asan_linux-cpp.patch | touch asan_linux-cpp.patch | ||
cat << EOF > asan_linux-cpp.patch | cat << EOF > asan_linux-cpp.patch | ||
- | --- gcc-11.2.0/ | + | --- gcc-12.1.0/ |
- | +++ asan_linux.cpp 2021-09-25 12:35:18.000000000 +0100 | + | +++ asan_linux.cpp 2022-06-18 09:42:36.000000000 +0100 |
- | @@ -76,6 +76,10 @@ | + | @@ -77,6 +77,10 @@ |
| | ||
} | } | ||
Line 341: | Line 342: | ||
EOF | EOF | ||
- | # Patch gcc-11.2.x/ | + | # Patch gcc-12.1.x/ |
ASANLINUXCC=$CWD/ | ASANLINUXCC=$CWD/ | ||
if [ ! -f " | if [ ! -f " | ||
Line 414: | Line 415: | ||
===== Configuring the system to use the AArch64 cross-compiler ===== | ===== Configuring the system to use the AArch64 cross-compiler ===== | ||
- | Once the cross-compiler has been built and you intend to use it to compile AArch64 [64bit] binaries, the location of the tool-chains must be exported to your system' | + | Once the cross-compiler has been built and you intend to use it to compile AArch64 [64-bit] binaries, the location of the tool-chains must be exported to your system' |
< | < | ||
Line 479: | Line 480: | ||
# Linux/arm64 5.14.4 Kernel Configuration | # Linux/arm64 5.14.4 Kernel Configuration | ||
# | # | ||
- | CONFIG_CC_VERSION_TEXT=" | + | CONFIG_CC_VERSION_TEXT=" |
CONFIG_CC_IS_GCC=y | CONFIG_CC_IS_GCC=y | ||
CONFIG_GCC_VERSION=110200 | CONFIG_GCC_VERSION=110200 | ||
Line 502: | Line 503: | ||
<note warning> | <note warning> | ||
- | So with everything compiled and built, you just need to copy the ' | + | So with everything compiled and built, you just need to copy the ' |
- | <note important> | + | <note important> |
- | < | + | < |
root@slackware:/ | root@slackware:/ | ||
root@slackware:/ | root@slackware:/ | ||
- | That's it! When you reboot your system it should now be using a 64bit kernel and modules. One should be mindful that [[http:// | + | That's it! When you reboot your system it should now be using a 64-bit |
I hope this AArch64 cross-compiler build script and/or information will be useful for Slackware [ARM] users in whatever ways are possible. Any questions or assistance can be addressed via the [[https:// | I hope this AArch64 cross-compiler build script and/or information will be useful for Slackware [ARM] users in whatever ways are possible. Any questions or assistance can be addressed via the [[https:// | ||
Line 544: | Line 545: | ||
<!-- You must remove the tag-word " | <!-- You must remove the tag-word " | ||
{{tag> | {{tag> | ||
+ |