Use custom GCC toolchain
This commit is contained in:
12
Makefile
12
Makefile
@ -17,6 +17,18 @@ prepare:
|
|||||||
cd limine; \
|
cd limine; \
|
||||||
make; \
|
make; \
|
||||||
fi
|
fi
|
||||||
|
if [ ! -d toolchain/binutils-gdb ]; then \
|
||||||
|
cd toolchain; \
|
||||||
|
git clone git://sourceware.org/git/binutils-gdb.git --depth=1; \
|
||||||
|
$(PWD)/scripts/build-binutils-gdb.sh; \
|
||||||
|
cd ..; \
|
||||||
|
fi
|
||||||
|
if [ ! -d toolchain/gcc ]; then \
|
||||||
|
cd toolchain; \
|
||||||
|
git clone https://gcc.gnu.org/git/gcc.git --depth=1; \
|
||||||
|
$(PWD)/scripts/build-gcc.sh; \
|
||||||
|
cd ..; \
|
||||||
|
fi
|
||||||
|
|
||||||
cleanall:
|
cleanall:
|
||||||
make clean
|
make clean
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
CC := x86_64-elf-gcc
|
PREFIX := $(ROOT)/toolchain/root/bin
|
||||||
LD := x86_64-elf-ld
|
|
||||||
AR := x86_64-elf-ar
|
CC := $(PREFIX)/x86_64-elf-gcc
|
||||||
|
LD := $(PREFIX)/x86_64-elf-ld
|
||||||
|
AR := $(PREFIX)/x86_64-elf-ar
|
||||||
|
@ -9,4 +9,5 @@ CFLAGS += -m64 \
|
|||||||
-fno-stack-protector \
|
-fno-stack-protector \
|
||||||
-fno-stack-check \
|
-fno-stack-check \
|
||||||
-fno-builtin \
|
-fno-builtin \
|
||||||
|
-fno-omit-frame-pointer \
|
||||||
-O0 \
|
-O0 \
|
||||||
|
12
scripts/build-binutils-gdb.sh
Executable file
12
scripts/build-binutils-gdb.sh
Executable file
@ -0,0 +1,12 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
PREFIX=$(pwd)/root
|
||||||
|
|
||||||
|
mkdir build-bintuils-gdb
|
||||||
|
cd build-bintuils-gdb
|
||||||
|
../binutils-gdb/configure --prefix="$PREFIX" \
|
||||||
|
--disable-nls \
|
||||||
|
--disable-werror \
|
||||||
|
--target=x86_64-elf
|
||||||
|
make -j$(nproc)
|
||||||
|
make install
|
25
scripts/build-gcc.sh
Executable file
25
scripts/build-gcc.sh
Executable file
@ -0,0 +1,25 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
PREFIX=$(pwd)/root
|
||||||
|
|
||||||
|
cd gcc
|
||||||
|
./contrib/download_prerequisites
|
||||||
|
cd ..
|
||||||
|
mkdir build-gcc
|
||||||
|
cd build-gcc
|
||||||
|
../gcc/configure --prefix="$PREFIX" \
|
||||||
|
--disable-nls \
|
||||||
|
--enable-languages=c \
|
||||||
|
--target=x86_64-elf \
|
||||||
|
--disable-bootstrap \
|
||||||
|
--without-headers \
|
||||||
|
--disable-shared \
|
||||||
|
--disable-threads \
|
||||||
|
--disable-libssp \
|
||||||
|
--disable-libquadmath \
|
||||||
|
--disable-libgomp \
|
||||||
|
--disable-libatomic \
|
||||||
|
--disable-libmudflap \
|
||||||
|
--disable-multilib
|
||||||
|
make -j$(nproc)
|
||||||
|
make install
|
Reference in New Issue
Block a user