OpenRISC 1000 Project: The GNU Toolchain Port

Home | Architecture | OpenRISC 1200 | GNU Toolchain | Or1ksim | Linux | uClinux | RTEMS |ATS

Introduction

The aim of this project is to port and maintain GCC, GNU Binutils, Newlib and the GDB to the OpenRISC 1000 family.

GCC is a GNU Compiler Collection that includes the ANSI C Compiler, C++, Java, Fortran and other compilers. All compilers produce excellent code and are often used in commercial products. GCC is free software with full source code available.

The GNU Binutils are a collection of binary tools. The main ones are:

But they also include:

Newlib is a C library intended for use on embedded systems. It is a conglomeration of several library parts, all under free software licenses that make them easily usable on embedded products.

GDB, the GNU Project debugger, can do four main kinds of things (plus other things in support of these) to help you catch bugs in the act:

Status

If you would like to help with the development, please contact the developers.

Download

Source code for current development tarball of the OpenRISC GCC port is available from the OpenCores CVS under the module hierarchy or1k/gcc. You can also get it directly by using the CVSget.

Source code for current development tarball of the OpenRISC Newlib port is available from the OpenCores CVS under the module hierarchy or1k/newlib. You can also get it directly by using the CVSget.

Source code for current development tarball of the OpenRISC GNU Binutils port is available from the OpenCores CVS under the module hierarchy or1k/binutils. You can also get it directly by using the CVSget.

Source code for current development tarball of the OpenRISC GDB port is available from the OpenCores CVS under the module hierarchy or1k/gdb. You can also get it directly by using the CVSget.

At this point no binaries for the OpenRISC are available due to development status of the GNU Toolchain. However building the GNU Toolchain should be rather straightforward.

Installation

Regular GNU Toolchain building is tested only under RedHat 7.0 GNU/Linux. The procedure to build and install the GNU Binutils, Newlib and GCC is the following:

First step is optional - you need to have recent source subdirectories ready (for example downloaded as tarballs). If you don't have them, get them from the OpenCores CVS by following Download procedure or by using local cvs. The checkout process might take a while.

cvs -d :pserver:cvs@cvs.opencores.org:/home/oc/cvs -z9 co or1k/binutils
cvs -d :pserver:cvs@cvs.opencores.org:/home/oc/cvs -z9 co or1k/newlib
cvs -d :pserver:cvs@cvs.opencores.org:/home/oc/cvs -z9 co or1k/gcc
cd or1k

It is very important to follow the proper order of building and installing the tools. First build and install the GNU Binutils.

mkdir b-b
cd b-b
../binutils/configure --target=or32-rtems --prefix=/opt/or32-rtems &&
make all install
export PATH=/opt/or32-rtems/bin:$PATH
cd ..

Now build and install Newlib and GCC.

cd gcc
./contrib/egcs_update --touch
ln -s ../newlib/newlib .
cd ..
mkdir b-gcc
cd b-gcc
../gcc/configure --target=or32-rtems \
    --with-gnu-as --with-gnu-ld --with-newlib --verbose \
    --enable-threads --prefix=/opt/or32-rtems --enable-languages="c" && \
make all install 

Instructions how to build and install the GDB will be provided in the future.

Documentation

See online documentation at the following sites:

Wish List (TODO List)

This is what we would like to develop/see developed but presently nobody is working on these projects. If you want to help, send an email to the mailing list.

If you have a suggestion for new Wish List entry, feel free to send it to the mailing list so that is added to the list and somebody may start working on it.

Additional Software Development Tools

We are currently testing Source Navigator and GDB Graphical User Interface Insight. So far they both appear to work fine.

Past Contributor(s)

These are the people currently not working on the GNU Toolchain, but have contributed in the past:

Developer(s)

The team working on the GNU Toolchain port:

Mailing list / Discussion Forum

To participate in the development or simply to discuss GNU Toolchain issues and to report bugs, go to the openrisc mailing list. To subscribe to the list, follow mailing list subscribe instructions.

Page Maintainer(s)

This web page is maintained by Marko Mlinar and Damjan Lampret.