crossgcc: arbitrary sections?

Josef Wolf jw@raven.inka.de
Wed Apr 1 14:51:00 GMT 1998


> Use elf for arbitrary named sections.  See the archives for more
> info.  There was a thread recently on implementing --target=m68k-elf,
> and it seems to me that there we some gotchas you had to overcome, and 
> the info to do so was posted.  
> 
> BTW The archives are at http://www.elilabs.com/xgccarc for your
> browsing pleasure.

I've read this thread and browsed once more through the archives
but could not find any mentions about gotchas with m68k-elf. I've
downloaded the patches and applied them with very little success.
The build (one-tree-setup) fails with:

> cp ../../src/gcc/config/m68k/lb1sf68.asm libgcc1.S
> for name in _mulsi3 _udivsi3 [ many more deleted ... ]
> do \
>  echo ${name}; \
>  /usr/local/spool1/maketemp/tmp/m68k-cross-gcc/build/gcc/xgcc -B/usr/local/spool1/maketemp/tmp/m68k-cross-gcc/build/gcc/ -Dinhibit_libc -O2  -DCROSS_COMPILE -DIN_GCC   -O2 -fomit-frame-pointer -I./include  -g1 -I. -I../../src/gcc -I../../src/gcc/config -c -DL${name} libgcc1.S; \
> if [ $? -eq 0 ] ; then true; else exit 1; fi; \
>   mv libgcc1.o ${name}.o; \
>   /usr/local/spool1/maketemp/tmp/m68k-cross-gcc/build/binutils/ar rc tmplibgcc1.a ${name}.o; \
>   rm -f ${name}.o; \
> done
> _mulsi3
> _udivsi3
> libgcc1.S: Assembler messages:
> libgcc1.S:298: Error: operands mismatch -- statement `cmpl ' ignored
> libgcc1.S:312: Error: operands mismatch -- statement `lsrl ' ignored
> libgcc1.S:313: Error: operands mismatch -- statement `lsrl ' ignored
> libgcc1.S:314: Error: operands mismatch -- statement `cmpl ' ignored
> libgcc1.S:317: Error: operands mismatch -- statement `andl ' ignored
> libgcc1.S:327: Error: operands mismatch -- statement `btst ' ignored
> libgcc1.S:333: Error: operands mismatch -- statement `subql ' ignored
> make[1]: *** [libgcc1-asm.a] Error 1
> make[1]: Leaving directory `/usr/local/spool1/maketemp/tmp/m68k-cross-gcc/build/gcc'
> make: *** [all-gcc] Error 2

It seems that gas don't understand non-motorola-syntax. But it _do_
understand it with m68k-coff. I assume the problem arise because I use
the one-tree-build. The absence of m68k.h in binutils-2.7/include/elf
seem to confirm this assumption:

> $ ls binutils-2.7/include/coff
> ChangeLog   aux-coff.h  i860.h      mips.h      sparc.h     z8k.h
> a29k.h      ecoff.h     i960.h      pe.h        sym.h
> alpha.h     h8300.h     internal.h  powerpc.h   symconst.h
> apollo.h    h8500.h     m68k.h      rs6000.h    w65.h
> arm.h       i386.h      m88k.h      sh.h        we32k.h
> $ ls binutils-2.7/include/elf
> ChangeLog   common.h    external.h  internal.h  ppc.h
> alpha.h     dwarf.h     hppa.h      mips.h      sparc.h
> root@raven:/usr/local/spool1/maketemp/tmp/m68k-cross-gcc.elf#

Any suggestions?



More information about the crossgcc mailing list