While building 'cross-tools' on i386 host, OpenBSD 3.7 (with current
patches.)
Environment var: TARGET=m68k
From /usr/src
Command: make cross-tools (TARGET=m68k already defined in ENV )
...................
Goes well for m68k build (always) until it gets into the 'libgcc2'
floating point functions, and then
consistently fails for the (apparent) function: _fixdfdi
..................
Here (below) is the output at the point of failure...
After this section is what I've
researched, and my plea for any helpful pointers to a way past this
obstacle....
./xgcc -B./ -I/usr/cross/m68k/usr/include -O2
-I/usr/src/gnu/usr.bin/gcc/../../lib/libiberty/include -DIN_GCC
-DCROSS_COMPILE
-W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes
-isystem ./include -g -DIN_LIBGCC2
-D__GCC_FLOAT_NOT_NEEDED -Dinhibit_libc -fno-stack-protector -I. -I.
-I/usr/src/gnu/usr.bin/gcc/gcc
-I/usr/src/gnu/usr.bin/gcc/gcc/. -I/usr/src/gnu/usr.bin/gcc/gcc/config
-I/usr/src/gnu/usr.bin/gcc/gcc/../include -fpic
-DL_fixdfdi -c /usr/src/gnu/usr.bin/gcc/gcc/libgcc2.c -o
libgcc/fpic/_fixdfdi.o
/tmp//ccc32409.s: Assembler messages:
/tmp//ccc32409.s:125: Error: operands mismatch -- statement `jbsr
___fixunsdfdi,a1' ignored
/tmp//ccc32409.s:133: Error: operands mismatch -- statement `jbsr
___fixunsdfdi,a1' ignored
*** Error code 1
Stop in /usr/src/gnu/usr.bin/gcc/obj.i386.m68k (line 94 of libgcc.mk).
*** Error code 1
Stop in /usr/src/gnu/usr.bin/gcc/obj.i386.m68k (line 2159 of Makefile).
*** Error code 1
Stop in /usr/src/gnu/usr.bin/gcc (line 84 of
/usr/src/gnu/usr.bin/gcc/Makefile.bsd-wrapper).
*** Error code 1
Stop in /usr/src (line 208 of Makefile.cross).
Googling this for days has taken me down many dead-end roads.
There was some discussions, and some patches to GCC/BINUTILS sections
relating to the m68k
section over the past years and even the past month or so.
The observation regarding incorrect assembler code generation ( jbsr
offset,a(n) ) has been reported
many times but I cannot find a fix to try and patch into our tree.
I have, as a sanity check, built many other cross-tools sets with only
one small
error having to do with a C prototype isssue in a completely unrelated
area; but
using 'make -k cross-tools' lets me get past that and actually build a set.
I've made sute that 32 & 64 bit targets will build.
It just seems (right now) to be limited to the m68k target.
If anyone has seen & resolved this, please let me know how.
Solving this will let us get the RTMX POSIX Real Time extensions project
back
on track and we can (again, as before) donate this feature-set into OpenBSD.
Thanks in advance.
Randy