Skip to content

Commit

Permalink
[wip] Update to GCC 14.1.0
Browse files Browse the repository at this point in the history
  • Loading branch information
Kartatz committed May 16, 2024
1 parent 7079117 commit 163f162
Showing 1 changed file with 33 additions and 4 deletions.
37 changes: 33 additions & 4 deletions build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,9 @@ declare -r mpc_directory='/tmp/mpc-1.3.1'
declare -r binutils_tarball='/tmp/binutils.tar.xz'
declare -r binutils_directory='/tmp/binutils-2.42'

declare -r llvm_tarball='/tmp/llvm.tar.gz'
declare -r llvm_directory='/tmp/llvm-project-llvmorg-18.1.5'

declare gcc_directory=''

function setup_gcc_source() {
Expand Down Expand Up @@ -134,6 +137,11 @@ if ! [ -f "${binutils_tarball}" ]; then
patch --directory="${binutils_directory}" --strip='1' --input="${workdir}/patches/0001-Revert-gold-Use-char16_t-char32_t-instead-of-uint16_.patch"
fi

if ! [ -f "${llvm_tarball}" ]; then
wget --no-verbose 'https://github.com/llvm/llvm-project/archive/refs/tags/llvmorg-18.1.5.tar.gz' --output-document="${llvm_tarball}"
tar --directory="$(dirname "${llvm_directory}")" --extract --file="${llvm_tarball}"
fi

declare -r toolchain_directory="/tmp/atar"

[ -d "${gmp_directory}/build" ] || mkdir "${gmp_directory}/build"
Expand Down Expand Up @@ -189,6 +197,21 @@ rm --force --recursive ./*
make all --jobs
make install

[ -d "${llvm_directory}/build" ] || mkdir "${llvm_directory}/build"

cd "${llvm_directory}/build"
rm --force --recursive ./*

cmake \
-DCMAKE_BUILD_TYPE='MinSizeRel' \
-DCMAKE_CXX_FLAGS='-static-libgcc -static-libstdc++ -Wl,-s' \
-DLLVM_ENABLE_PROJECTS='lld' \
-DCMAKE_INSTALL_PREFIX="${toolchain_directory}" \
"${llvm_directory}"

make all --jobs="${max_jobs}"
make install

sed -i 's/#include <stdint.h>/#include <stdint.h>\n#include <stdio.h>/g' "${toolchain_directory}/include/mpc.h"

[ -d "${binutils_directory}/build" ] || mkdir "${binutils_directory}/build"
Expand Down Expand Up @@ -242,15 +265,21 @@ for target in "${targets[@]}"; do
cd "${binutils_directory}/build"
rm --force --recursive ./*

declare extra_binutils_flags=''

if [ "${target}" = 'armv7' ] || [ "${target}" = 'arm64' ]; then
extra_binutils_flags+=' --disable-ld --disable-gold --disable-lto'
else
extra_binutils_flags+=' --enable-ld --enable-gold --enable-lto'
fi

../configure \
--target="${triplet}" \
--prefix="${toolchain_directory}" \
--enable-gold \
--enable-ld \
--enable-lto \
--disable-gprofng \
--with-static-standard-libraries \
--with-sysroot="${toolchain_directory}/${triplet}" \
${extra_binutils_flags} \
${cross_compile_flags} \
CFLAGS="${optflags}" \
CXXFLAGS="${optflags}" \
Expand Down Expand Up @@ -310,7 +339,7 @@ for target in "${targets[@]}"; do
--enable-linker-build-id \
--enable-link-serialization='1' \
--enable-plugin \
--enable-lto \
--disable-lto \
--enable-shared \
--enable-threads='posix' \
--enable-languages='c,c++' \
Expand Down

0 comments on commit 163f162

Please sign in to comment.