73 lines
1.7 KiB
Markdown
73 lines
1.7 KiB
Markdown
|
# INSTALLATION
|
||
|
|
||
|
## Cross compile the compile
|
||
|
|
||
|
### WHY ??
|
||
|
Why cross compile the gcc ?
|
||
|
|
||
|
We must cross compile gcc cause our kernel is developped for i386 cpu but your current cpu is probally not an i386 so we need to create an i386 compiler
|
||
|
|
||
|
### HOW ?
|
||
|
|
||
|
[THE DOCUMENTATION](https://wiki.osdev.org/GCC_Cross-Compiler)
|
||
|
- install requirement follow [THE DOCUMENTATION](https://wiki.osdev.org/GCC_Cross-Compiler)
|
||
|
- Setup the shell
|
||
|
``` sh
|
||
|
export PREFIX="$HOME/opt/cross"
|
||
|
export TARGET=i386-elf
|
||
|
export PATH="$PREFIX/bin:$PATH"
|
||
|
mkdir $HOME/src
|
||
|
cd $HOME/src
|
||
|
```
|
||
|
- Download [binutils](https://ftp.gnu.org/gnu/binutils/?C=M;O=D)
|
||
|
- Download [gcc](https://ftp.gnu.org/gnu/gcc/?C=M;O=D)
|
||
|
- Download [gdb](https://ftp.gnu.org/gnu/gdb/?C=M;O=D)
|
||
|
- extract archives
|
||
|
``` sh
|
||
|
tar xf [your binutils archive]
|
||
|
tar xf [your gcc archive]
|
||
|
tar xf [your gdb archive]
|
||
|
```
|
||
|
- (protips use -j [nb core])
|
||
|
- Compile binutils
|
||
|
``` sh
|
||
|
cd $HOME/src
|
||
|
mkdir build-binutils
|
||
|
|
||
|
cd build-binutils
|
||
|
../binutils-x.y.z/configure --target=$TARGET --prefix="$PREFIX" --with-sysroot --disable-nls --disable-werror
|
||
|
make
|
||
|
make install
|
||
|
```
|
||
|
- Compile gdb
|
||
|
``` sh
|
||
|
cd $HOME/src
|
||
|
mkdir build-gdb
|
||
|
|
||
|
cd build-gdb
|
||
|
../gdb.x.y.z/configure --target=$TARGET --prefix="$PREFIX" --disable-werror
|
||
|
make all-gdb
|
||
|
make install-gdb
|
||
|
make
|
||
|
make install
|
||
|
```
|
||
|
- Compile gcc
|
||
|
``` sh
|
||
|
cd $HOME/src
|
||
|
|
||
|
# The $PREFIX/bin dir _must_ be in the PATH. We did that above.
|
||
|
which -- $TARGET-as || echo $TARGET-as is not in the PATH
|
||
|
|
||
|
mkdir build-gcc
|
||
|
cd build-gcc
|
||
|
../gcc-x.y.z/configure --target=$TARGET --prefix="$PREFIX" --disable-nls --enable-languages=c,c++ --without-headers
|
||
|
make all-gcc
|
||
|
make all-target-libgcc
|
||
|
make install-gcc
|
||
|
make install-target-libgcc
|
||
|
```
|
||
|
|
||
|
## Compile and the start the kernel
|
||
|
``` sh
|
||
|
make run
|
||
|
```
|