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

Reply via email to