User:Imate900/GDC Cross-Compiler-Part2

From OSDev.wiki
Jump to navigation Jump to search

Step 2 - Native Compiler

Once you port Newlib to your OS (and install it to /usr/native), you may now do a native build of gdc to your OS.

Prepare for the build:

   export PREFIX=/usr/native
   export TARGET=i586-elf
   export HOST=i586-elf
   cd /usr/src

mkdir build-native build-native/binutils build-native/gcc

binutils

   cd /usr/src/build-native/binutils
   /usr/src/binutils-x.xx/configure --build=`./config.guess` --target=$TARGET --prefix=$PREFIX --host=$HOST --disable-nls
   make all
   make install

gcc

   cd /usr/src/gcc-x.x.x
   ./gcc/d/setup-gcc.sh

Go to /usr/src/gcc-x.x.x/gcc/d, open d-lang.cc and look at line 188. You'll see this

  const char* cygwin_d_os_versym = D_OS_VERSYM;

Change D_OS_VERSYM to whatever you want, since it is a string, like "MyOS". (Wilkie told me not to set it to NULL, it will make the compiler to segfault)

Now build GDC:

   cd /usr/src/build-native/gcc
   /usr/src/gcc-x.x.x/configure --build=`./config.guess` --host=$HOST --target=$TARGET --prefix=$PREFIX --disable-nls \
       --enable-languages=c,d,c++ --with-headers=/usr/native
   make all-gcc
   make install-gcc

Your native toolchain is now ready in /usr/native!

This page is a work in progress.
This page may thus be incomplete. Its content may be changed in the near future.