diff options
author | Ian Moffett <ian@osmora.org> | 2024-06-24 22:55:29 -0400 |
---|---|---|
committer | Ian Moffett <ian@osmora.org> | 2024-06-24 22:55:29 -0400 |
commit | 236963e7563be3e3f8220dac7bb4af446928e194 (patch) | |
tree | e521ea226db0345bbb3679fffe09d96254b7dc73 /tools/cross.sh | |
parent | 214eadc62b5578f76c98a38a28f8b3d80ac4d6ad (diff) |
Clean out for expt
Signed-off-by: Ian Moffett <ian@osmora.org>
Diffstat (limited to 'tools/cross.sh')
-rw-r--r-- | tools/cross.sh | 164 |
1 files changed, 0 insertions, 164 deletions
diff --git a/tools/cross.sh b/tools/cross.sh deleted file mode 100644 index 52e7b1b..0000000 --- a/tools/cross.sh +++ /dev/null @@ -1,164 +0,0 @@ -#!/bin/bash - -# -# Copyright (c) 2023-2024 Ian Marco Moffett and the Osmora Team. -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are met: -# -# 1. Redistributions of source code must retain the above copyright notice, -# this list of conditions and the following disclaimer. -# 2. Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in the -# documentation and/or other materials provided with the distribution. -# 3. Neither the name of Hyra nor the names of its contributors may be used -# to endorse or promote products derived from this software without -# specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -# POSSIBILITY OF SUCH DAMAGE. -# - -################################################################ -# Toolchain configuration -################################################################ - -set -e - -if [ "$1" == "amd64" ] -then - TARGET="x86_64-hyra" -else - TARGET="$1-elf" -fi - -BINUTILS_VERSION=2.42 -GCC_VERSION=13.2.0 -BINUTILS_NAME="binutils-$BINUTILS_VERSION" -BINUTILS_TARBALL="$BINUTILS_NAME.tar.xz" -BINUTILS_URL="https://ftp.gnu.org/gnu/binutils/$BINUTILS_TARBALL" -GCC_NAME="gcc-$GCC_VERSION" -GCC_TARBALL="$GCC_NAME.tar.xz" -GCC_URL="https://ftp.gnu.org/gnu/gcc/gcc-$GCC_VERSION/$GCC_TARBALL" - -# Remove debugging information, it takes up a lot of space -export CFLAGS="-g0" -export CXXFLAGS="-g0" - -# System-dependent configuration -SYSTEM_NAME="$(uname -s)" -MAKE="make" -NPROC="nproc" -if [ "$SYSTEM_NAME" = "OpenBSD" ]; then - MAKE="gmake" - NPROC="sysctl -n hw.ncpuonline" -elif [ "$SYSTEM_NAME" = "FreeBSD" ]; then - MAKE="gmake" - NPROC="sysctl -n hw.ncpu" -elif [ "$SYSTEM_NAME" = "Darwin" ]; then - NPROC="sysctl -n hw.ncpu" -fi -CORES="$($NPROC)" - -# Set build paths -PREFIX="$(pwd)/cross" -export PATH="$PREFIX/bin:$PATH" - -# Create build directory -mkdir -p "$PREFIX/build" -cd "$PREFIX/build" - -################################################################ -# Download and extract sources -################################################################ - -if [ ! -f $BINUTILS_TARBALL ]; then - echo "Downloading binutils..." - curl $BINUTILS_URL -o $BINUTILS_TARBALL -fi -if [ ! -f $GCC_TARBALL ]; then - echo "Downloading gcc..." - curl $GCC_URL -o $GCC_TARBALL -fi - -echo "Extracting binutils..." -rm -rf $BINUTILS_NAME -tar -xf $BINUTILS_TARBALL -echo "Extracting gcc..." -rm -rf $GCC_NAME -tar -xf $GCC_TARBALL - -################################################################ -# Build packages -################################################################ - -echo "Removing previous builds..." -rm -rf build-gcc build-binutils - -# Binutils build -clear -mkdir build-binutils - -echo "Applying binutils patch" -cp -r $BINUTILS_NAME $BINUTILS_NAME-copy -patch -s -p0 < ../../builddeps/binutils.patch -rm -rf $BINUTILS_NAME-copy - -echo "Configuring $BINUTILS_NAME..." -cd build-binutils -../$BINUTILS_NAME/configure --target="$TARGET" --prefix="$PREFIX" --with-sysroot --disable-nls --disable-werror --enable-targets=all -echo "Building $BINUTILS_NAME..." -$MAKE -j$CORES -echo "Installing $BINUTILS_NAME..." -$MAKE install -echo "Cleaning $BINUTILS_NAME..." -cd .. -rm -rf $BINUTILS_NAME build-binutils - -# GCC build -clear -echo "Downloading prerequisites for $GCC_NAME..." -cd $GCC_NAME -contrib/download_prerequisites -cd .. - -echo "Applying GCC patch" -cp -r $GCC_NAME $GCC_NAME-copy -patch -s -p0 < ../../builddeps/gcc.patch -rm -rf $GCC_NAME-copy - -echo "Configuring $GCC_NAME..." -mkdir build-gcc -cd build-gcc -../$GCC_NAME/configure --target="$TARGET" --with-sysroot=/ --prefix="$PREFIX" --disable-nls --enable-languages=c,c++,lto --disable-multilib -echo "Building all-gcc..." -$MAKE all-gcc -j"$CORES" -echo "Building all-target-libgcc..." -$MAKE all-target-libgcc -j"$CORES" -echo "Installing $GCC_NAME..." -$MAKE install-gcc -echo "Installing target-libgcc..." -$MAKE install-target-libgcc -echo "Cleaning $GCC_NAME..." -cd .. -rm -rf $GCC_NAME build-gcc - -################################################################ -# Cleanup -################################################################ - -clear -"$TARGET"-ld -v -"$TARGET"-gcc --version | head -n1 -echo "Build complete, binaries are in $PREFIX" -echo "Finished in $(($SECONDS / 60)) minutes and $(($SECONDS % 60)) seconds" |