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: Can't build gcc-2.95.3 with g++ for m68k-elf


Heelo Peter,

I ran into exactly that problem when trying to build a gcc for
m68k-coff.
I added --with-newlib to the config options fot the gcc configure, and
the errors disappeared, but I didn't test c++ up to now.

I think there is a bug in the gcc-2.95.3 build for m68k targets. For a
standard build, you end up with a compiler setup with missing board
support libraries, so a link fails with missing symbols and configure
says the compiler is not working.

If you don't need c++, you may set languages to c only. In this case the
libiberty is not needed and won't be built.

Wolfgang



> -----Original Message-----
> From: Peter Barada [mailto:pbarada@mail.wm.sps.mot.com]
> Sent: Wednesday, February 06, 2002 12:49 AM
> To: bgat@billgatliff.com; dkorn@pixelpower.com;
> y.rutschle@indigovision.com; kai.ruottu@luukku.com;
> joel.sherrill@oarcorp.com; jan.vermeculen@siemens.atea.be
> Cc: crossgcc@sources.redhat.com
> Subject: Can't build gcc-2.95.3 with g++ for m68k-elf
> 
> 
> 
> I'm sending this to you directly since the crossgcc@sources.redhat.com
> address has permanent errors, and I've been smacking my head against
> this all day.  I apoligize if you get this twice.  Here's the message
> from rehat:
> 
> >Hi. This is the qmail-send program at sources.redhat.com.
> >I'm afraid I wasn't able to deliver your message to the 
> following addresses.
> >This is a permanent error; I've given up. Sorry it didn't work out.
> >
> ><mailto:crossgcc@sources.redhat.com>:
> >Sorry, no mailbox here by that name. (#5.1.1)
> 
> I picked up gcc-2.95.3 and gcc-g++-2.95.3 from gcc.gnu.org, and with
> binutils-2.11.2, and newlib-1.9.0, I'm attempting to build a full up
> c++ cross-compiler.
> 
> Using a script that started out as Bill's crossgcc.sh script, I was
> able to build binutils, the core compiler, newlib, and while coming
> back to build gcc, it craps out with:
> 
> cd ../libiberty ; make "SHELL=/bin/sh" "INSTALL=/bin/sh 
> /home/pbarada/work/cvs-wavemark/cross-linux-tools/g++-2.95.3/i
> nstall-sh -c" "INSTALL_DATA=/bin/sh 
> /home/pbarada/work/cvs-wavemark/cross-linux-tools/g++-2.95.3/i
> nstall-sh -c -m 644" "INSTALL_PROGRAM=/bin/sh 
> /home/pbarada/work/cvs-wavemark/cross-linux-tools/g++-2.95.3/i
> nstall-sh -c " "prefix=/tmp/crap-g++-2.95.3" 
> "exec_prefix=/tmp/crap-g++-2.95.3" 
> "tooldir=/tmp/crap-g++-2.95.3/m68k-elf" 
> "gxx_include_dir=/tmp/crap-g++-2.95.3/include/g++-3" 
> "libsubdir=/tmp/crap-g++-2.95.3/lib/gcc-lib/m68k-elf/2.95.3" 
> "gcc_version=2.95.3" 
> "gcc_version_trigger=/home/pbarada/work/cvs-wavemark/cross-lin
> ux-tools/g++-2.95.3/gcc/version.c" "AR=m68k-elf-ar" 
> "AR_FLAGS=rc" 
> "CC=/home/pbarada/work/cvs-wavemark/cross-linux-tools/obj-crap
> -g++-2.95.3/m68k-elf/build-gcc/gcc/xgcc 
> -B/home/pbarada/work/cvs-wavemark/cross-linux-tools/obj-crap-g
> ++-2.95.3/m68k-elf/build-gcc/gcc/ 
> -B/tmp/crap-g++-2.95.3/m68k-elf/bin/" 
> "CXX=/home/pbarada/work/cvs-wavemark/cross-linux!
> !
> !
> -tools/obj-crap-g++-2.95.3/m68k-elf/build-gcc/gcc/xgcc 
> -B/home/pbarada/work/cvs-wavemark/cross-linux-tools/obj-crap-g
> ++-2.95.3/m68k-elf/build-gcc/gcc/ 
> -B/tmp/crap-g++-2.95.3/m68k-elf/bin/" "CFLAGS=-g -O2" 
> "CXXFLAGS=-g -O2" "NM=m68k-elf-nm" "RANLIB=m68k-elf-ranlib" 
> "LIBCFLAGS=-g -O2" "LIBCXXFLAGS=-g -O2 
> -fno-implicit-templates" "LOADLIBES=" "LDFLAGS=" 
> "MAKEINFO=/home/pbarada/work/cvs-wavemark/cross-linux-tools/ob
> j-crap-g++-2.95.3/m68k-elf/build-gcc/texinfo/makeinfo/makeinfo
>  " "SHLIB=libstdc++.so.2.10.0" "SHCURSES=" "RUNTESTFLAGS="
> make[2]: Entering directory 
> `/home/pbarada/work/cvs-wavemark/cross-linux-tools/obj-crap-g+
> +-2.95.3/m68k-elf/build-gcc/m68k-elf/libiberty'
> make[2]: *** No targets specified and no makefile found.  Stop.
> make[2]: Leaving directory 
> `/home/pbarada/work/cvs-wavemark/cross-linux-tools/obj-crap-g+
> +-2.95.3/m68k-elf/build-gcc/m68k-elf/libiberty'
> make[1]: *** [../libiberty/libiberty.a] Error 2
> make[1]: Leaving directory 
> `/home/pbarada/work/cvs-wavemark/cross-linux-tools/obj-crap-g+
> +-2.95.3/m68k-elf/build-gcc/m68k-elf/libstdc++'
> make: *** [all-target-libstdc++] Error 2
> 
> Looking in m68k-elf-libiberty shows:
> 
> [pbarada: 
> ~/work/cvs-wavemark/cross-linux-tools/obj-crap-g++-2.95.3/m68k
> -elf/build-gcc/m68k-elf/libiberty] > ls
> ./  ../  confdefs.h  config.cache  config.log  xhost-mkfrag
> [pbarada: 
> ~/work/cvs-wavemark/cross-linux-tools/obj-crap-g++-2.95.3/m68k
> -elf/build-gcc/m68k-elf/libiberty] > 
> 
> 
> From build-gcc/m68k-elf/libiberty/config.log I saw:
> 
> configure:1765: 
> /home/pbarada/work/cvs-wavemark/cross-linux-tools/obj-crap-g++
> -2.95.3/m68k-elf/build-gcc/gcc/xgcc 
> -B/home/pbarada/work/cvs-wavemark/cross-linux-tools/obj-crap-g
> ++-2.95.3/m68k-elf/build-gcc/gcc/ 
> -B/tmp/crap-g++-2.95.3/m68k-elf/bin/ -o conftest -g -O2   
> conftest.c  1>&5
> /tmp/crap-g++-2.95.3/m68k-elf/bin/ld: warning: cannot find 
> entry symbol _start; defaulting to 80000074
> /tmp/crap-g++-2.95.3/m68k-elf/lib/crt0.o: In function `start':
> /tmp/crap-g++-2.95.3/m68k-elf/lib/crt0.o(.text+0x2): 
> undefined reference to `__stack'
> /tmp/crap-g++-2.95.3/m68k-elf/lib/crt0.o(.text+0x58): 
> undefined reference to `__FINI_SECTION__'
> /tmp/crap-g++-2.95.3/m68k-elf/lib/crt0.o(.text+0x38): 
> undefined reference to `hardware_init_hook'
> /tmp/crap-g++-2.95.3/m68k-elf/lib/crt0.o(.text+0x48): 
> undefined reference to `software_init_hook'
> /tmp/crap-g++-2.95.3/m68k-elf/lib/crt0.o(.text+0x5e): 
> undefined reference to `atexit'
> /tmp/crap-g++-2.95.3/m68k-elf/lib/crt0.o(.text+0x64): 
> undefined reference to `__INIT_SECTION__'
> /tmp/crap-g++-2.95.3/m68k-elf/lib/crt0.o(.text+0x84): 
> undefined reference to `exit'
> /home/pbarada/work/cvs-wavemark/cross-linux-tools/obj-crap-g++
> -2.95.3/m68k-elf/build-gcc/gcc/libgcc.a(__main.o): In 
> function `__do_global_ctors':
> /home/pbarada/work/cvs-wavemark/cross-linux-tools/g++-2.95.3/g
> cc/libgcc2.c(.text+0x3a): undefined reference to `atexit'
> collect2: ld returned 1 exit status
> configure: failed program was:
> 
> #line 1760 "configure"
> #include "confdefs.h"
> 
> main(){return(0);}
> 
> 
> The config line for the compiler is:
> 
> [pbarada: 
> ~/work/cvs-wavemark/cross-linux-tools/obj-crap-g++-2.95.3/m68k
> -elf/build-gcc] > 
> /home/pbarada/work/cvs-wavemark/cross-linux-tools/g++-2.95.3/c
> onfigure --host=i686-pc-linux-gnu --target=m68k-elf 
> --prefix=/tmp/crap-g++-2.95.3 --enable-languages=c,c++ 
> --with-local-prefix=/tmp/crap-g++-2.95.3/m68k-elf 2>&1 | tee 
> configure.log
> 
> And the configure.log doesn't show any errors.
> 
> If I changes --enable-languages to just 'c', everything is happy.
> 
> Any ideas???
> 
> - -- 
> Peter Barada                                   
> Peter.Barada@motorola.com
> Wizard                                         781-852-2768 (direct)
> WaveMark Solutions(wholly owned by Motorola)   781-270-0193 (fax)
> ------- End of forwarded message -------
> 
> ------
> Want more information?  See the CrossGCC FAQ, 
> http://www.objsw.com/CrossGCC/
> Want to unsubscribe? Send a note to 
> crossgcc-unsubscribe@sources.redhat.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]