This is the mail archive of the crossgcc@sources.redhat.com mailing list for the crossgcc project.

See the CrossGCC FAQ for lots more information.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Mips cross compiler for cygwin


Harry:


[Just happened to catch me at my desk!]


Make sure you nuke sys-include at the end of the bootstrap build, before you build newlib or the "complete" gcc.


See if that helps,



b.g.


Harry Kaes wrote:

Kaes Harry wrote


In the meantime I continued my attempts to build the cross compiler
following the instructions by Bill Gatliff. For this build I'm using gcc
sources 3.3.3, binutils 2.14 and newlib 1.12.0. I'm able to compile the
binutils (well, I don't get any errors anyway), as well as the newlib
library and the bootstrap cross compiler. I created a directory gcc on the


c


drive and put the gcc sources in a subdirectory gcc-sources, the binutils
sources in binutils-2.14 and the newlib sources in newlib-1.12.0. I made
four directories (again as subdirectories of c:\gcc) to perform the builds
in : build-gcc (for the bootstrap compiler), build-newlib, build-binutils
and build-gcc-final (for the actual cross compiler). I compiled the
different sources in this order :

from the directory build-binutils :



../binutils-2.14/configure --target=mipsel-elf --host=i686-pc-cygwin --build


=i686-pc-cygwin --prefix=/gcc-mips --with-gnu-as --with-gnu-ld
make all install
from the directory build-gcc :



../gcc-sources/configure --target=mipsel-elf --host=i686-pc-cygwin --build=i


686-pc-cygwin --prefix=/gcc-mips --with-gnu-as --with-gnu-ld --without-heade


rs --with-newlib -v
make all-gcc install-gcc
from the directory build-newlib :



../newlib-1.12.0/configure --target=mipsel-elf --host=i686-pc-cygwin --build


=i686-pc-cygwin --prefix=/gcc-mips --with-gnu-as --with-gnu-ld
make all install
from the directory build-gcc-final :



../gcc-sources/configure --target=mipsel-elf --host=i686-pc-cygwin --build=i


686-pc-cygwin --prefix=/gcc-mips --with-gnu-as --with-gnu-ld -v
make all install

Running this final make to build the actual cross compiler results in an
error while executing the following command :




/cygdrive/c/gcc/build-gcc-final/gcc/xgcc -shared-libgcc -B/cygdrive/c/gcc/bu


ild-gcc-final/gcc/ -nostdinc++ -L/cygdrive/c/gcc/build-gcc-final/mipsel-elf/


soft-float/libstdc++-v3/src -L/cygdrive/c/gcc/build-gcc-final/mipsel-elf/sof


t-float/libstdc++-v3/src/.libs -B/gcc-mips/mipsel-elf/bin/ -B/gcc-mips/mipse


l-elf/lib/ -isystem



/gcc-mips/mipsel-elf/include -msoft-float -I../../../../../gcc-sources/libst


dc++-v3/../gcc -I../../../../../gcc-sources/libstdc++-v3/../include -I/cygdr


ive/c/gcc/build-gcc-final/mipsel-elf/soft-float/libstdc++-v3/include/mipsel-


elf -I/cygdrive/c/gcc/build-gcc-final/mipsel-elf/soft-float/libstdc++-v3/inc


lude -I../../../../../gcc-sources/libstdc++-v3/libsupc++ -g -O2 -msoft-float


-fno-implicit-templates -Wall -Wno-format -W -Wwrite-strings -fdiagnostic


s-


show-location=once -c
../../../../../gcc-sources/libstdc++-v3/libsupc++/eh_alloc.cc -o


eh_alloc.o


The resulting error is :

In file included from
../../../../../gcc-sources/libstdc++-v3/libsupc++/eh_alloc
.cc:33:



/cygdrive/c/gcc/build-gcc-final/mipsel-elf/soft-float/libstdc++-v3/include/c


stdl
ib:86: error: `
  div_t' not declared



/cygdrive/c/gcc/build-gcc-final/mipsel-elf/soft-float/libstdc++-v3/include/c


stdl
ib:87: error: `
  ldiv_t' not declared



/cygdrive/c/gcc/build-gcc-final/mipsel-elf/soft-float/libstdc++-v3/include/c


stdl
ib:97: error: `
  div' not declared



/cygdrive/c/gcc/build-gcc-final/mipsel-elf/soft-float/libstdc++-v3/include/c


stdl
ib:102: error: `
  ldiv' not declared



/cygdrive/c/gcc/build-gcc-final/mipsel-elf/soft-float/libstdc++-v3/include/c


stdl
ib:104: error: `
  mblen' not declared



/cygdrive/c/gcc/build-gcc-final/mipsel-elf/soft-float/libstdc++-v3/include/c


stdl
ib:105: error: `
  mbstowcs' not declared



/cygdrive/c/gcc/build-gcc-final/mipsel-elf/soft-float/libstdc++-v3/include/c


stdl
ib:106: error: `
  mbtowc' not declared



/cygdrive/c/gcc/build-gcc-final/mipsel-elf/soft-float/libstdc++-v3/include/c


stdl
ib:115: error: `
  wcstombs' not declared



/cygdrive/c/gcc/build-gcc-final/mipsel-elf/soft-float/libstdc++-v3/include/c


stdl
ib:116: error: `
  wctomb' not declared



/cygdrive/c/gcc/build-gcc-final/mipsel-elf/soft-float/libstdc++-v3/include/c


stdl
ib:122: error: syntax
  error before `(' token
make[6]: *** [eh_alloc.lo] Error 1
make[6]: Leaving directory
`/cygdrive/c/gcc/build-gcc-final/mipsel-elf/soft-floa
t/libstdc++-v3/libsupc++'
make[5]: *** [all-recursive] Error 1
make[5]: Leaving directory
`/cygdrive/c/gcc/build-gcc-final/mipsel-elf/soft-floa
t/libstdc++-v3'
make[4]: *** [all-recursive-am] Error 2
make[4]: Leaving directory
`/cygdrive/c/gcc/build-gcc-final/mipsel-elf/soft-floa
t/libstdc++-v3'
make[3]: *** [multi-do] Error 1
make[3]: Leaving directory
`/cygdrive/c/gcc/build-gcc-final/mipsel-elf/libstdc++
-v3'
make[2]: *** [all-multi] Error 2
make[2]: Leaving directory
`/cygdrive/c/gcc/build-gcc-final/mipsel-elf/libstdc++
-v3'
make[1]: *** [all-recursive-am] Error 2
make[1]: Leaving directory
`/cygdrive/c/gcc/build-gcc-final/mipsel-elf/libstdc++
-v3'
make: *** [all-target-libstdc++-v3] Error 2

To attempt a little debugging I concentrated on the first error : 'div_t'
not declared. I found some stdlib.h files scattered over the different
directories in which this define could be found. The stdlib.h file used by
this last command however, was the stdlib.h file in the directory
c:\gcc\build-gcc-final\gcc\include which of course did not contain a
declaration of div_t.

Does anyone have an idea of what goes wrong?

Harry Kaes.




I tried to find a solution for the problem in the archives of the mailing list and luckily I found a few mails concerning this problem. In most of the cases, the solution is to delete the invalid stdlib.h file, so that gcc automatically takes the correct one (of the newlib sources) in a 'standard' directory. I found the descriptions of the solutions somewhat unclear however and I found myself unable to apply them to my situtation. The biggest problem is of course my lack of knowledge about the whole cross compiling system. If I follow the guidelines as described in http://sources.redhat.com/ml/crossgcc/2003-09/msg00104.html, I arrive at the point where I should delete de stdlib.h file, but I am unable to find it in the directory as described in that message.

Can anyone give a clearer view on the solution for this problem?

Harry Kaes


------ Want more information? See the CrossGCC FAQ, http://www.objsw.com/CrossGCC/ Want to unsubscribe? Send a note to crossgcc-unsubscribe@sources.redhat.com




-- Bill Gatliff GNU-based embedded development, training and consulting services. bgat@billgatliff.com




------ Want more information? See the CrossGCC FAQ, http://www.objsw.com/CrossGCC/ Want to unsubscribe? Send a note to crossgcc-unsubscribe@sources.redhat.com


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]