Difference between revisions of "Building the RL78 Toolchain under Ubuntu 14.04"
(Created page with "Steps for building the RL78 Toolchain under Ubuntu 14.04: * Run the followings commands before you start: sudo apt-get install build-essential sudo apt-get update sudo apt...") |
|||
Line 29: | Line 29: | ||
5) Copy the archive in the source folder that you previously created: | 5) Copy the archive in the source folder that you previously created: | ||
− | $ cp /home/username/Downloads/gdb-7.8.2_rl78_v15.01.tar.bz2 source | + | $ cp /home/<username>/Downloads/gdb-7.8.2_rl78_v15.01.tar.bz2 source |
− | $ cp /home/username/Downloads/binutils-2.24-20150423_rl78_v15.02.tar.bz2 source | + | $ cp /home/<username>/Downloads/binutils-2.24-20150423_rl78_v15.02.tar.bz2 source |
− | $ cp /home/username/Downloads/newlib-2.1.0-20150423_rl78_v15.02.tar.bz2 source | + | $ cp /home/<username>/Downloads/newlib-2.1.0-20150423_rl78_v15.02.tar.bz2 source |
− | $ cp /home/username/Downloads/gcc-4.9.2-20150423_rl78_v15.02.tar.bz2 source | + | $ cp /home/<username>/Downloads/gcc-4.9.2-20150423_rl78_v15.02.tar.bz2 source |
*Assuming that Downloads is you default download folder.If not you have to put the path to the location where the files were downloaded. | *Assuming that Downloads is you default download folder.If not you have to put the path to the location where the files were downloaded. | ||
Line 52: | Line 52: | ||
c) Build and make: | c) Build and make: | ||
− | $ /home/username/RL78-Toolchain/source/gdb-7.8.2/configure --target=rl78-elf --prefix=/home/username/RL78-Toolchain/prefix/ | + | $ /home/<username>/RL78-Toolchain/source/gdb-7.8.2/configure --target=rl78-elf --prefix=/home/<username>/RL78-Toolchain/prefix/ |
$ make | $ make | ||
$ make install | $ make install | ||
Line 66: | Line 66: | ||
b) Build and make: | b) Build and make: | ||
− | $ /home/username/RL78-Toolchain/source/binutils-2.24-20150423/configure --target=rl78-elf --prefix=/home/username/RL78-Toolchain/prefix/ --enable-maintainer-mode --disable-nls --disable-werror | + | $ /home/<username>/RL78-Toolchain/source/binutils-2.24-20150423/configure --target=rl78-elf --prefix=/home/<username>/RL78-Toolchain/prefix/ --enable-maintainer-mode --disable-nls --disable-werror |
$ make | $ make | ||
$ make install | $ make install | ||
Line 74: | Line 74: | ||
d) Export path | d) Export path | ||
− | $ export PATH="/home/username/RL78-Toolchain/prefix/bin:$PATH" | + | $ export PATH="/home/<username>/RL78-Toolchain/prefix/bin:$PATH" |
9) INSTALL GCC-RL78-V15.02 | 9) INSTALL GCC-RL78-V15.02 | ||
Line 115: | Line 115: | ||
d) Build and make: | d) Build and make: | ||
− | $ /home/username/RL78-Toolchain/source/gcc-4.9.2-20150423/configure --target=rl78-elf --prefix=/home/username/RL78-Toolchain/prefix/ --enable-languages=c,c++ --disable-shared --with-newlib --enable-lto --disable-werror | + | $ /home/<username>/RL78-Toolchain/source/gcc-4.9.2-20150423/configure --target=rl78-elf --prefix=/home/<username>/RL78-Toolchain/prefix/ --enable-languages=c,c++ --disable-shared --with-newlib --enable-lto --disable-werror |
$ make all-gcc | $ make all-gcc | ||
$ make install-gcc | $ make install-gcc | ||
Line 123: | Line 123: | ||
f) Export path | f) Export path | ||
− | $ export PATH="/home/username/RL78-Toolchain/prefix/bin:$PATH" | + | $ export PATH="/home/<username>/RL78-Toolchain/prefix/bin:$PATH" |
10) INSTALL Newlib-RL78_V15.02 | 10) INSTALL Newlib-RL78_V15.02 | ||
Line 134: | Line 134: | ||
b) Build and make : | b) Build and make : | ||
− | $ /home/username/RL78-Toolchain/source/newlib-2.1.0-20150423/configure --target=rl78-elf --prefix=/home/username/RL78-Toolchain/prefix/ | + | $ /home/<username>/RL78-Toolchain/source/newlib-2.1.0-20150423/configure --target=rl78-elf --prefix=/home/<username>/RL78-Toolchain/prefix/ |
$ make | $ make | ||
$ make install | $ make install | ||
Line 153: | Line 153: | ||
OBSERVATIONS: | OBSERVATIONS: | ||
− | */home/username/gcc/gcc-4.9.2 is the path to your gcc folder; | + | */home/<username>/gcc/gcc-4.9.2 is the path to your gcc folder; |
*if you save your gcc folder(the one in which you copy the archive) in another location than the default one your path will change; | *if you save your gcc folder(the one in which you copy the archive) in another location than the default one your path will change; | ||
*the configure command must end with gcc-version/configure; | *the configure command must end with gcc-version/configure; | ||
− | */home/username/newlib/newlib-2.1.0 is the path to your newlib folder; | + | */home/<username>/newlib/newlib-2.1.0 is the path to your newlib folder; |
*if you save your newlib folder(the one in which you copy the archive) in another location than the default one your path will change; | *if you save your newlib folder(the one in which you copy the archive) in another location than the default one your path will change; | ||
*the configure command must end with newlib-version/configure; | *the configure command must end with newlib-version/configure; | ||
− | */home/username/binutils/binutils-2.24-20150423 is the path to your configure file. binutils-2.24-20150423 is the folder that was created after extracting the package, and if your folder has a different name your path will become: /home/username/binutils/folderName; | + | */home/<username>/binutils/binutils-2.24-20150423 is the path to your configure file. binutils-2.24-20150423 is the folder that was created after extracting the package, and if your folder has a different name your path will become: /home/<username>/binutils/folderName; |
*if you save your binutils folder(the one in which you copy the archive) in another location than the default one your path will change; | *if you save your binutils folder(the one in which you copy the archive) in another location than the default one your path will change; | ||
− | */home/username/rl78/gdb-7.8.2 is the path to your rl78 folder; | + | */home/<username>/rl78/gdb-7.8.2 is the path to your rl78 folder; |
*if you save your rl78 folder(the one in which you copy the archive) in another location than the default one your path will change; | *if you save your rl78 folder(the one in which you copy the archive) in another location than the default one your path will change; | ||
*the configure command must end with rl78-version/configure. | *the configure command must end with rl78-version/configure. | ||
Line 167: | Line 167: | ||
1./usr/local/bin/ld - this linker was not configured to use sysroots | 1./usr/local/bin/ld - this linker was not configured to use sysroots | ||
collect2: error: ld returned 1 exit status | collect2: error: ld returned 1 exit status | ||
− | 2.configure: error: '/home/username/gdb/build' : | + | 2.configure: error: '/home/<username>/gdb/build' : |
configure: error: C compiler cannot create executables | configure: error: C compiler cannot create executables | ||
You will have to remove ld file from /usr/local/bin following the steps: | You will have to remove ld file from /usr/local/bin following the steps: | ||
Line 173: | Line 173: | ||
1. $ cd /usr/local/bin | 1. $ cd /usr/local/bin | ||
2. $ rm -f ld | 2. $ rm -f ld | ||
− | 3. $ cd /home/username/RL78-Toolchain/build | + | 3. $ cd /home/<username>/RL78-Toolchain/build |
Revision as of 12:38, 25 April 2016
Steps for building the RL78 Toolchain under Ubuntu 14.04:
- Run the followings commands before you start:
sudo apt-get install build-essential sudo apt-get update sudo apt-get upgrade sudo apt-get install flex bison texinfo libncurses5-dev
1) Create a new folder for the toolchain
$ mkdir RL78-Toolchain
2) Change the current directory to RL78-Toolchain
$ cd RL78-Toolchain
3) Create 3 new folders : source, build, prefix
$ mkdir source $ mkdir build $ mkdir prefix
4) Download the source codes for Binutils-RL78_V15.02, Newlib-RL78_V15.02, GCC-RL78_V15.02, GDB-RL78_V15.01 from :
-GDB: http://kpitgnutools.com/utilities/files/uploads/gdb-7.8.2_rl78_v15.01.tar.bz2
-Binutils: http://kpitgnutools.com/utilities/files/uploads/binutils-2.24-20150423_rl78_v15.02.tar.bz2
-Newlib: http://kpitgnutools.com/utilities/files/uploads/newlib-2.1.0-20150423_rl78_v15.02.tar.bz2
-GCC: http://kpitgnutools.com/utilities/files/uploads/gcc-4.9.2-20150423_rl78_v15.02.tar.bz2
5) Copy the archive in the source folder that you previously created:
$ cp /home/<username>/Downloads/gdb-7.8.2_rl78_v15.01.tar.bz2 source $ cp /home/<username>/Downloads/binutils-2.24-20150423_rl78_v15.02.tar.bz2 source $ cp /home/<username>/Downloads/newlib-2.1.0-20150423_rl78_v15.02.tar.bz2 source $ cp /home/<username>/Downloads/gcc-4.9.2-20150423_rl78_v15.02.tar.bz2 source
- Assuming that Downloads is you default download folder.If not you have to put the path to the location where the files were downloaded.
6) Change the current directory and extract the archives:
$ cd source $ tar -jxvf gdb-7.8.2_rl78_v15.01.tar.bz2 $ tar -jxvf binutils-2.24-20150423_rl78_v15.02.tar.bz2 $ tar -jxvf newlib-2.1.0-20150423_rl78_v15.02.tar.bz2 $ tar -jxvf gcc-4.9.2-20150423_rl78_v15.02.tar.bz2
7) INSTALL GDB-RL78_V15.01
a) Change the current directory to build and create a new folder for gdb:
$ cd ../build $ mkdir gdb
b) Change the current directory to the gdb folder that you previously created:
$ cd gdb
c) Build and make:
$ /home/<username>/RL78-Toolchain/source/gdb-7.8.2/configure --target=rl78-elf --prefix=/home/<username>/RL78-Toolchain/prefix/ $ make $ make install
d) Return to the build directory
$ cd ..
8) INSTALL BINUTILS-RL78_V15.02
a) Create a new folder for binutils and change the current directory to it:
$ mkdir binutils $ cd binutils
b) Build and make:
$ /home/<username>/RL78-Toolchain/source/binutils-2.24-20150423/configure --target=rl78-elf --prefix=/home/<username>/RL78-Toolchain/prefix/ --enable-maintainer-mode --disable-nls --disable-werror $ make $ make install
c) Return to the build directory
$ cd ..
d) Export path
$ export PATH="/home/<username>/RL78-Toolchain/prefix/bin:$PATH"
9) INSTALL GCC-RL78-V15.02
a) Change the current directory to GCC source folder and run the following command :
$ cd ../source/gcc-4.9.2-20150423 $ ./contrib/download_prerequisites
OBS: if for some reason MPC,MPFR and GMP is not downloaded automatically when running the command ./contrib/download_prerequisites you have to download them manually and move the packages into GCC source folder.To do that follow the steps:
- Download the source code for GMP,MPFR,MPC:
https://gmplib.org/download/gmp/gmp-6.1.0.tar.bz2
ftp://ftp.gnu.org/gnu/mpc/mpc-1.0.2.tar.gz
http://www.mpfr.org/mpfr-current/mpfr-3.1.3.tar.bz2
- Copy the packages into GCC source folder
$ cp ~/Downloads/gmp-6.1.0.tar.bz2 ~/gcc/gcc-4.9.2 $ cp ~/Downloads/mpfr-3.1.3.tar.bz2 ~/gcc/gcc-4.9.2 $ cp ~/Downloads/mpc-1.0.2.tar.gz ~/gcc/gcc-4.9.2
- Extract the packages :
$ tar -jxvf gmp-6.1.0.tar.bz2 $ tar -jxvf mpfr-3.1.3.tar.bz2 $ tar -zxvf mpc-1.0.2.tar.gz
- Rename GMP,MPFR,MPC folders
$ mv gmp-6.1.0 gmp $ mv mpfr-3.1.3 mpfr $ mv mpc-1.0.2 mpc
b) Return to the build directory:
$ cd ../../build
c) Create a new folder for gcc and change the current directory to it:
$ mkdir gcc $ cd gcc
d) Build and make:
$ /home/<username>/RL78-Toolchain/source/gcc-4.9.2-20150423/configure --target=rl78-elf --prefix=/home/<username>/RL78-Toolchain/prefix/ --enable-languages=c,c++ --disable-shared --with-newlib --enable-lto --disable-werror $ make all-gcc $ make install-gcc
e) Return to the build directory
$ cd ..
f) Export path
$ export PATH="/home/<username>/RL78-Toolchain/prefix/bin:$PATH"
10) INSTALL Newlib-RL78_V15.02
OBS: Build Newlib only after you built Binutils and GCC.
a) Create a new folder for newlib and change the current directory to it:
$ mkdir newlib $ cd newlib
b) Build and make :
$ /home/<username>/RL78-Toolchain/source/newlib-2.1.0-20150423/configure --target=rl78-elf --prefix=/home/<username>/RL78-Toolchain/prefix/ $ make $ make install
c) Return to the build directory
$ cd ..
11) Build final GCC
a) Change the current directory to gcc:
$ cd gcc
b) Build :
$ sudo make $ sudo make install
OBSERVATIONS:
- /home/<username>/gcc/gcc-4.9.2 is the path to your gcc folder;
- if you save your gcc folder(the one in which you copy the archive) in another location than the default one your path will change;
- the configure command must end with gcc-version/configure;
- /home/<username>/newlib/newlib-2.1.0 is the path to your newlib folder;
- if you save your newlib folder(the one in which you copy the archive) in another location than the default one your path will change;
- the configure command must end with newlib-version/configure;
- /home/<username>/binutils/binutils-2.24-20150423 is the path to your configure file. binutils-2.24-20150423 is the folder that was created after extracting the package, and if your folder has a different name your path will become: /home/<username>/binutils/folderName;
- if you save your binutils folder(the one in which you copy the archive) in another location than the default one your path will change;
- /home/<username>/rl78/gdb-7.8.2 is the path to your rl78 folder;
- if you save your rl78 folder(the one in which you copy the archive) in another location than the default one your path will change;
- the configure command must end with rl78-version/configure.
- If one of this errors occurs :
1./usr/local/bin/ld - this linker was not configured to use sysroots collect2: error: ld returned 1 exit status 2.configure: error: '/home/<username>/gdb/build' : configure: error: C compiler cannot create executables
You will have to remove ld file from /usr/local/bin following the steps:
1. $ cd /usr/local/bin 2. $ rm -f ld 3. $ cd /home/<username>/RL78-Toolchain/build