[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

CygWin+rtems installation guide


I was asked to describe the way I had managed to install rtems under cygwin.
So I hope this little manual will help other people.

First of all, download CygWinB.20 Full installation from www.cygnus.com
(14Mb) and install it.
After that, download latest snapshot of cygwin, e.g.
cygwin-inst-19991201.tar.gz from the same server.
Run cygnus.bat and unpack the snapshot.
Mount / as described in RTEMS installation guide.
After that exit from bash. And copy extracted bin, i586-pc-cygwin32 and lib
directories to ....\cygwin-b20\H-i586-cygwin32 directory.

Download binutils-2.9.1 and newlib-1.8.0 from rtems server.
Download egcs-1.1.2.tar.gz & egcs-1.1.2-cygbin20.tar.gz from www.cygnus.com
(or it links).

install binutils as described in RTEMS installation guide. Don't forget to
apply rtems-binutils patch.
If configure script fails with message "permissions denied", than change
cygwin1.dll. I used the one from the
00066.html link.
So binutils should be compiled w/o any troubles. Add path to compiled
binutils bin directory to cygnus.bat

Now extract egcs & it's patch. And apply the latter.
run configure script and then "make cross" as described in RTEMS
installation guide.
if there are problems with configure script try another cygwin as described
Egcs 1.1.2 also compiles w/o any difficulties but it takes a lot of time.
Note. prefix for egcs should be the same as for binutils. Or you'll have to
add it's bins to path too.

Now extract rtems-4.0.0. No patches are required.
download make-3.77 from the same page
and place it in /cygnus/H-i586-cygwin32/bin

create /build directory.
cd /build
run <path to extracted rtems>/configure <options>. Options can be seen by
running script w/o arguments or with the --help arg.
used --prefix=/gcc-mips64-orion --target=mips64orion --enable-cxx --disable-
posix --disable-tests
If configure script fails then try the method above with cygwin1.dll
then type "make all"
If it fails during compilation proccess with the message that there is an
undeclared identifier that is declared in limits.h than make the following:
merge files
/gcc-<cpu>-rtems/lib/gcc-lib/<cpu>-rtems/egcs-2.91.66/include/limits.h and
/gcc-<cpy>-rtems/<cpu>-rtems/include/limits.h into one file and place it
instead of the first one. And the second one rename to any backup name...
Then try to compile it again.

I hope this is the end of your torture...

Moscow Institue of Physics & Technology
kirillx at 7ka.mipt.ru