Improving Ada support on FreeBSD and in the ports system

freebsd-ports at coreland.ath.cx freebsd-ports at coreland.ath.cx
Wed Nov 11 17:59:52 UTC 2009


On 2009-11-08 00:06:16, Daniel Eischen wrote:
> 
> Patches for amd64 support are also welcome.  I thought you were
> going to do a port for GNAT-gpl amd64?

'Lo.

I just tried to compile the vanilla GNAT-GPL 2009 sources today and
came across the following error:

/gnat/gpl-2009/src/GNAT/obj/./gcc/xgcc -B/gnat/gpl-2009/src/GNAT/obj/./gcc/ -B/usr/local/x86_64-unknown-freebsd7.2/bin/ -B/usr/local/x86_64-unknown-freebsd7.2/lib/ -isystem /usr/local/x86_64-unknown-freebsd7.2/include -isystem /usr/local/x86_64-unknown-freebsd7.2/sys-include -g -fkeep-inline-functions -O2  -O2 -g -g -O2   -DIN_GCC    -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition  -isystem ./include   -fPIC -pthread -g -DHAVE_GTHR_DEFAULT -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED   -I. -I. -I../.././gcc -I../../../src/libgcc -I../../../src/libgcc/. -I../../../src/libgcc/../gcc -I../../../src/libgcc/../include  -DHAVE_CC_TLS -o unwind-dw2.o -MT unwind-dw2.o -MD -MP -MF unwind-dw2.dep -fexceptions -c ../../../src/libgcc/../gcc/unwind-dw2.c -fvisibility=hidden -DHIDE_EXPORTS
In file included from ../../../src/libgcc/../gcc/unwind-dw2.c:338:
../../../src/libgcc/../gcc/config/i386/freebsd-unwind.h: In function ‘x86_freebsd_fallback_frame_state’:
../../../src/libgcc/../gcc/config/i386/freebsd-unwind.h:78: error: ‘struct sigcontext’ has no member named ‘sc_esp’
../../../src/libgcc/../gcc/config/i386/freebsd-unwind.h:85: error: ‘struct sigcontext’ has no member named ‘sc_eax’
../../../src/libgcc/../gcc/config/i386/freebsd-unwind.h:87: error: ‘struct sigcontext’ has no member named ‘sc_ebx’
../../../src/libgcc/../gcc/config/i386/freebsd-unwind.h:89: error: ‘struct sigcontext’ has no member named ‘sc_ecx’
../../../src/libgcc/../gcc/config/i386/freebsd-unwind.h:91: error: ‘struct sigcontext’ has no member named ‘sc_edx’
../../../src/libgcc/../gcc/config/i386/freebsd-unwind.h:93: error: ‘struct sigcontext’ has no member named ‘sc_esi’
../../../src/libgcc/../gcc/config/i386/freebsd-unwind.h:95: error: ‘struct sigcontext’ has no member named ‘sc_edi’
../../../src/libgcc/../gcc/config/i386/freebsd-unwind.h:97: error: ‘struct sigcontext’ has no member named ‘sc_ebp’
../../../src/libgcc/../gcc/config/i386/freebsd-unwind.h:99: error: ‘struct sigcontext’ has no member named ‘sc_eip’
gmake[3]: *** [unwind-dw2.o] Error 1
gmake[3]: Leaving directory `/gnat/gpl-2009/src/GNAT/obj/x86_64-unknown-freebsd7.2/libgcc'
gmake[2]: *** [all-stage1-target-libgcc] Error 2
gmake[2]: Leaving directory `/gnat/gpl-2009/src/GNAT/obj'
gmake[1]: *** [stage1-bubble] Error 2
gmake[1]: Leaving directory `/gnat/gpl-2009/src/GNAT/obj'
gmake: *** [all] Error 2

The actual GNAT part of the compiler appeared to compile without issue, using
the compiler from the lang/gnat-gcc44 port. The above, however, seems to be
a problem with the GCC core. It looks very i386 to me...

There doesn't appear to be any explicit support for FreeBSD amd64/x86_64
in those GCC sources as far as I can tell and not being very familiar with
the GCC codebase, I'm not sure how much work it'll be to add them.

Any ideas?
M


More information about the freebsd-ports mailing list