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