Reviewed-on: #6
This commit is contained in:
commit
6c39867556
4
Makefile
4
Makefile
@ -2,8 +2,8 @@ override MAKEFLAGS += -rR
|
|||||||
override IMAGE_NAME := asagiri
|
override IMAGE_NAME := asagiri
|
||||||
override ARCH := aarch64
|
override ARCH := aarch64
|
||||||
|
|
||||||
override CC := aarch64-elf-gcc
|
override CC := aarch64-none-elf-gcc
|
||||||
override LD := aarch64-elf-ld
|
override LD := aarch64-none-elf-ld
|
||||||
override DEFAULT_HOST_CFLAGS := -g -O3 -pipe
|
override DEFAULT_HOST_CFLAGS := -g -O3 -pipe
|
||||||
|
|
||||||
.PHONY: all
|
.PHONY: all
|
||||||
|
48
compile-toolchain.sh
Executable file → Normal file
48
compile-toolchain.sh
Executable file → Normal file
@ -1,7 +1,7 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
set -e
|
set -euo pipefail
|
||||||
export PREFIX="$HOME/cross-aarch64"
|
export PREFIX="$HOME/cross-aarch64"
|
||||||
export TARGET="aarch64-elf"
|
export TARGET="aarch64-none-elf"
|
||||||
export PATH="$PREFIX/bin:$PATH"
|
export PATH="$PREFIX/bin:$PATH"
|
||||||
|
|
||||||
# Get thread count
|
# Get thread count
|
||||||
@ -11,6 +11,17 @@ else
|
|||||||
export NPROC="nproc"
|
export NPROC="nproc"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
existGCC=0
|
||||||
|
existBIN=0
|
||||||
|
if [ -e binutils-2.41.tar.gz ]; then
|
||||||
|
existBIN=1
|
||||||
|
fi
|
||||||
|
if [ -e gcc-13.2.0.tar.gz ]; then
|
||||||
|
existGCC=1
|
||||||
|
fi
|
||||||
|
|
||||||
|
startLoc=$(pwd)
|
||||||
|
|
||||||
# Create prefix path
|
# Create prefix path
|
||||||
mkdir -p $PREFIX
|
mkdir -p $PREFIX
|
||||||
# Create compilation directory
|
# Create compilation directory
|
||||||
@ -20,8 +31,17 @@ mkdir -p toolchain
|
|||||||
cd toolchain
|
cd toolchain
|
||||||
|
|
||||||
# Get sources
|
# Get sources
|
||||||
wget https://ftp.gnu.org/gnu/binutils/binutils-2.41.tar.gz
|
if [[ "${existBIN}" != "1" ]]; then
|
||||||
wget https://ftp.gnu.org/gnu/gcc/gcc-13.2.0/gcc-13.2.0.tar.gz
|
wget https://ftp.gnu.org/gnu/binutils/binutils-2.41.tar.gz
|
||||||
|
else
|
||||||
|
cp "${startLoc}/binutils-2.41.tar.gz" .
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ "${existGCC}" != "1" ]]; then
|
||||||
|
wget https://ftp.gnu.org/gnu/gcc/gcc-13.2.0/gcc-13.2.0.tar.gz
|
||||||
|
else
|
||||||
|
cp "${startLoc}/gcc-13.2.0.tar.gz" .
|
||||||
|
fi
|
||||||
|
|
||||||
# Build binutils for aarch64
|
# Build binutils for aarch64
|
||||||
# might need texinfo
|
# might need texinfo
|
||||||
@ -29,12 +49,14 @@ mkdir -p binutils-src
|
|||||||
tar -xvf binutils-2.41.tar.gz -C binutils-src/
|
tar -xvf binutils-2.41.tar.gz -C binutils-src/
|
||||||
mkdir -p binutils
|
mkdir -p binutils
|
||||||
cd binutils
|
cd binutils
|
||||||
../binutils-src/*/configure --target=$TARGET --prefix=$PREFIX \
|
../binutils-src/*/configure --target=$TARGET --prefix=$PREFIX --libexecdir=$PREFIX/lib \
|
||||||
--enable-shared --enable-threads=posix --enable-libmpx --with-system-zlib --enable-__cxa_atexit \
|
--enable-shared --enable-threads=posix --enable-libmpx --with-system-zlib --enable-__cxa_atexit \
|
||||||
--disable-libunwind-exceptions --enable-clocale=gnu --disable-libstdcxx-pch --disable-libssp --enable-plugin \
|
--disable-libunwind-exceptions --enable-clocale=gnu --disable-libstdcxx-pch --disable-libssp --enable-plugin \
|
||||||
--disable-linker-build-id --enable-lto --enable-install-libiberty --with-linker-hash-style=gnu --with-gnu-ld\
|
--disable-linker-build-id --enable-lto --enable-install-libiberty --with-linker-hash-style=gnu --with-gnu-ld\
|
||||||
--enable-gnu-indirect-function --disable-multilib --disable-werror --enable-checking=release --enable-default-pie \
|
--enable-gnu-indirect-function --disable-multilib --disable-werror --enable-checking=release --enable-default-pie \
|
||||||
--enable-default-ssp --enable-gnu-unique-object --with-zstd=no
|
--enable-default-ssp --enable-gnu-unique-object --with-zstd=no --with-arch=armv8-a --enable-fix-cortex-a53-835769 \
|
||||||
|
--enable-fix-cortex-a53-843419
|
||||||
|
|
||||||
make -j$($NPROC)
|
make -j$($NPROC)
|
||||||
make install
|
make install
|
||||||
|
|
||||||
@ -47,17 +69,15 @@ cd gcc-src/*/
|
|||||||
cd ../../
|
cd ../../
|
||||||
mkdir -p gcc
|
mkdir -p gcc
|
||||||
cd gcc
|
cd gcc
|
||||||
../gcc-src/*/configure --target=$TARGET --prefix=$PREFIX --enable-languages=c \
|
../gcc-src/*/configure --target=$TARGET --prefix=$PREFIX --disable-shared --disable-nls --disable-threads --disable-tls \
|
||||||
--enable-shared --enable-threads=posix --enable-libmpx --with-system-zlib --enable-__cxa_atexit \
|
--enable-checking=release --enable-languages=c,c++ --with-newlib --with-gnu-as --with-gnu-ld
|
||||||
--disable-libunwind-exceptions --enable-clocale=gnu --disable-libstdcxx-pch --disable-libssp --enable-plugin \
|
|
||||||
--disable-linker-build-id --enable-lto --enable-install-libiberty --with-linker-hash-style=gnu --with-gnu-ld\
|
|
||||||
--enable-gnu-indirect-function --disable-multilib --disable-werror --enable-checking=release --enable-default-pie \
|
|
||||||
--enable-default-ssp --enable-gnu-unique-object
|
|
||||||
make -j$($NPROC) all-gcc
|
make -j$($NPROC) all-gcc
|
||||||
make install-gcc
|
make install-gcc
|
||||||
|
make -j$($NPROC) all-target-libgcc
|
||||||
|
make install-target-libgcc
|
||||||
cd
|
cd
|
||||||
rm -rf /tmp/toolchain
|
rm -rf /tmp/toolchain
|
||||||
echo "Toolchain installation is complete!"
|
echo "Toolchain installation is complete!"
|
||||||
echo "Please add this to your bashrc or zshrc or whatever"
|
echo "Please add this to your bashrc or zshrc or whatever"
|
||||||
echo "export \$PATH=\"$PREFIX/bin:\$PATH\""
|
echo "export PATH=\"$PREFIX/bin:\$PATH\""
|
||||||
|
Loading…
x
Reference in New Issue
Block a user