building for cygwin (nearly there)
Bruce Adams
bruadams@tycoint.com
Fri Sep 6 07:27:00 GMT 2002
Hi,
I am (still!) trying to build a m68k-elf compiler for windows 2000 under
cygwin. I have compiled
and installed binutils with make check reporting only one failure
"ld-discard/extern".
The path seems to be what was causing some of my problems. Putting my
prefix path
before cygwin seems to fix some of the issues. I would definitely recommend
putting that one in the FAQ in big friendly letters. It stumped me for
ages.
Still I can't help thinking that if the order of the path is important then
there is something wrong with the system. Surely we would all be better off
if when the cross
compiler wants to use the cross compiler it use e.g. m68k-elf-gcc instead of
just gcc. Plain 'ol gcc by itself is just asking for trouble. Not to
mention
the fact that I'd rather typing gcc myself invoked the native compiler
rather
than a half constructed cross compiler (this is in the case that --prefix is
not
the same location as the normal gcc).
I can compile and install the partial gcc using the following:
PREFIX=/cygdrive/c/gccm68k
TARGET=m68k-elf
HOST=i686-pc-cygwin
GCCDISTO=gcc-3.2-core
make distclean
../${GCCDISTO}/configure --target=$TARGET --prefix=$PREFIX --build=$HOST
--host=$HOST \
--enable-languages=c --with-gnu-ld --with-gnu-as --without-headers
--with-newlib --verbose \
2>&1 | tee configure.log
make ac_cv_prog_cc_cross=yes cross_compiling=yes
Where gcc-3.2-core does NOT include the newlib sources.
I cannot compile in a single operation (using the same configure command
with or without c++ added) when the newlib directory is added to the gcc
source
tree. Oddly it fails compiling libiberty (regex.c) rather than compiling
newlib (complaining that the size of a buffer structure is unknown). It
looks like it never got as far as compiling newlib.
Anyhow I can at last build and install newlib-1.10.0.
But the second stage compilation fails on libstdc++.
Making all in libsupc++
make[3]: Entering directory
`/cygdrive/c/brucea/downloads/gcc/cross2/full/m68k-elf/libstdc++-v3/libsupc+
+'
/bin/sh ../libtool --tag CXX --tag disable-shared --mode=compile
/cygdrive/c/brucea/downloads/gcc/cross2/full/gcc/xgcc -shared-libgcc
-B/cygdrive/c/brucea/downloads/gcc/cross2/full/gcc/ -nostdinc++
-L/cygdrive/c/brucea/downloads/gcc/cross2/full/m68k-elf/libstdc++-v3/src
-L/cygdrive/c/brucea/downloads/gcc/cross2/full/m68k-elf/libstdc++-v3/src/.li
bs -B/cygdrive/c/gccm68k/m68k-elf/bin/ -B/cygdrive/c/gccm68k/m68k-elf/lib/
-isystem /cygdrive/c/gccm68k/m68k-elf/include
-I../../../../gcc-3.2/libstdc++-v3/../gcc
-I../../../../gcc-3.2/libstdc++-v3/../include
-I/cygdrive/c/brucea/downloads/gcc/cross2/full/m68k-elf/libstdc++-v3/include
/m68k-elf
-I/cygdrive/c/brucea/downloads/gcc/cross2/full/m68k-elf/libstdc++-v3/include
-I../../../../gcc-3.2/libstdc++-v3/libsupc++ -g -O2
-fno-implicit-templates -Wall -Wno-format -W -Wwrite-strings -Winline
-fdiagnostics-show-location=once -g -c
../../../../gcc-3.2/libstdc++-v3/libsupc++/eh_alloc.cc
/cygdrive/c/brucea/downloads/gcc/cross2/full/gcc/xgcc -shared-libgcc
-B/cygdrive/c/brucea/downloads/gcc/cross2/full/gcc/ -nostdinc++
-L/cygdrive/c/brucea/downloads/gcc/cross2/full/m68k-elf/libstdc++-v3/src
-L/cygdrive/c/brucea/downloads/gcc/cross2/full/m68k-elf/libstdc++-v3/src/.li
bs -B/cygdrive/c/gccm68k/m68k-elf/bin/ -B/cygdrive/c/gccm68k/m68k-elf/lib/
-isystem /cygdrive/c/gccm68k/m68k-elf/include
-I../../../../gcc-3.2/libstdc++-v3/../gcc
-I../../../../gcc-3.2/libstdc++-v3/../include
-I/cygdrive/c/brucea/downloads/gcc/cross2/full/m68k-elf/libstdc++-v3/include
/m68k-elf
-I/cygdrive/c/brucea/downloads/gcc/cross2/full/m68k-elf/libstdc++-v3/include
-I../../../../gcc-3.2/libstdc++-v3/libsupc++ -g -O2 -fno-implicit-templates
-Wall -Wno-format -W -Wwrite-strings -Winline
-fdiagnostics-show-location=once -g -c
../../../../gcc-3.2/libstdc++-v3/libsupc++/eh_alloc.cc -o eh_alloc.o
In file included from
../../../../gcc-3.2/libstdc++-v3/libsupc++/eh_alloc.cc:33:
/cygdrive/c/brucea/downloads/gcc/cross2/full/m68k-elf/libstdc++-v3/include/c
stdlib:86: `
div_t' not declared
/cygdrive/c/brucea/downloads/gcc/cross2/full/m68k-elf/libstdc++-v3/include/c
stdlib:87: `
ldiv_t' not declared
/cygdrive/c/brucea/downloads/gcc/cross2/full/m68k-elf/libstdc++-v3/include/c
stdlib:97: `
div' not declared
/cygdrive/c/brucea/downloads/gcc/cross2/full/m68k-elf/libstdc++-v3/include/c
stdlib:102: `
ldiv' not declared
/cygdrive/c/brucea/downloads/gcc/cross2/full/m68k-elf/libstdc++-v3/include/c
stdlib:104: `
mblen' not declared
/cygdrive/c/brucea/downloads/gcc/cross2/full/m68k-elf/libstdc++-v3/include/c
stdlib:105: `
mbstowcs' not declared
/cygdrive/c/brucea/downloads/gcc/cross2/full/m68k-elf/libstdc++-v3/include/c
stdlib:106: `
mbtowc' not declared
/cygdrive/c/brucea/downloads/gcc/cross2/full/m68k-elf/libstdc++-v3/include/c
stdlib:115: `
wcstombs' not declared
/cygdrive/c/brucea/downloads/gcc/cross2/full/m68k-elf/libstdc++-v3/include/c
stdlib:116: `
wctomb' not declared
/cygdrive/c/brucea/downloads/gcc/cross2/full/m68k-elf/libstdc++-v3/include/c
stdlib:122: syntax
error before `(' token
make[3]: *** [eh_alloc.lo] Error 1
make[3]: Leaving directory
`/cygdrive/c/brucea/downloads/gcc/cross2/full/m68k-elf/libstdc++-v3/libsupc+
+'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory
`/cygdrive/c/brucea/downloads/gcc/cross2/full/m68k-elf/libstdc++-v3'
make[1]: *** [all-recursive-am] Error 2
make[1]: Leaving directory
`/cygdrive/c/brucea/downloads/gcc/cross2/full/m68k-elf/libstdc++-v3'
make: *** [all-target-libstdc++-v3] Error 2
Anyone know how to fix this?
Regards,
Bruce A.
============================================================================
Any opinions expressed in this e-mail are those of the individual and not
necessarily those of Tyco Electronic Product Group.
Any prices for the supply of goods or services are only valid if supported
by a formal written quotation.
This e-mail and any files transmitted with it, including replies and
forwarded copies (which may contain alterations) subsequently transmitted
from Tyco Electronic Product Group are confidential and solely for the use
of the intended recipient.
If you are not the intended recipient or the person responsible for
delivery to the intended recipient, be advised that you have received this
e-mail in error and that any use is strictly prohibited. In this event,
please notify us via e-mail at 'helpdesk.tepg@tycoint.com' or telephone on
0121 255 6499 and then delete the e-mail and any copies of it.
============================================================================
------
Want more information? See the CrossGCC FAQ, http://www.objsw.com/CrossGCC/
Want to unsubscribe? Send a note to crossgcc-unsubscribe@sources.redhat.com
More information about the crossgcc
mailing list