help-gnat
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Fwd: Almost finished porting gnat-4.6 to GNU/Hurd]


From: Svante Signell
Subject: [Fwd: Almost finished porting gnat-4.6 to GNU/Hurd]
Date: Thu, 22 Mar 2012 09:58:33 +0100

Hi, 

I'm forwarding here in hope to get some replies. No response yet from
debian-ada.

Please Cc: me since I'm not subscribed to help-gnat.

Thanks!
-------- Forwarded Message --------
From: Svante Signell <address@hidden>
Reply-to: address@hidden
To: address@hidden
Subject: Almost finished porting gnat-4.6 to GNU/Hurd
Date: Tue, 20 Mar 2012 23:46:21 +0100

Hello,

I have almost completed the cross-build and native-build of gnat-4.6.2
for GNU/Hurd. All debs does now compile and I can create packages
requiring gnat. One problem remains: Tuning the OS-interface routines.
Currently libraries and binaries build, but the binaries fail with
exception code: e.g.
./music123
raised STORAGE_ERROR : s-intman.adb:139 explicit raise

gdb music123 gives:
Program received signal SIGSEGV, Segmentation fault.
0x01050b10 in
address@hidden
    () from /usr/lib/i386-gnu/libgnarl-4.6.so.1
(gdb) bt
#0  0x01050b10 in
address@hidden ()
from /usr/lib/i386-gnu/libgnarl-4.6.so.1
#1  0x0105de9f in system.task_primitives.operations.initialize (
    environment_task=0x8066b00) at s-taprop.adb:1420
#2  0x01060b6a in system.tasking.initialize () at s-taskin.adb:215
#3  0x01060044 in system.tasking.initialization.init_rts () at
s-tasini.adb:323
#4  0x010602d4 in <system__tasking__initialization___elabb> ()
    at s-tasini.adb:828
#5  0x0804cda8 in adainit ()
    at /home/srs/DEBs/music123/music123-16.3/b~music123.adb:211
#6  0x0804ca8a in main (argc=1, argv=(system.address) 0x17ffd78, 
    envp=(system.address) 0x17ffd80)
    at /home/srs/DEBs/music123/music123-16.3/b~music123.adb:266
#7  0x013fcc3b in __libc_start_main (main=0x804ca50 <main>, argc=1, 
    ubp_av=0x17ffd78, init=0x805f400 <__libc_csu_init>, 
    fini=0x805f3f0 <__libc_csu_fini>, rtld_fini=0xf340,
stack_end=0x17ffd6c)
    at libc-start.c:257
#8  0x0804cac9 in _start ()

so the problems seems to be in libgnarl-4.6.so.1.
Single stepping in gdb shows where the segfault occurs:
s-taprop-posix.adb:1420 Specific.Initialize (Environment_Task);

It looks like the problems is centered around
src/gcc/ada/{s-intman-posix.adb, s-taprop-posix.adb,init.c}
but from the list below there might be more files involved.

I have mainly used the kfreebsd settings and the
src/gcc/ada/gcc-interface/Makefile.in entry reads:
ifeq ($(strip $(filter-out %86 gnu%,$(arch) $(osys))),)
  LIBGNAT_TARGET_PAIRS = \
  a-intnam.ads<a-intnam-freebsd.ads \
  a-numaux.adb<a-numaux-x86.adb \
  a-numaux.ads<a-numaux-x86.ads \
  s-inmaop.adb<s-inmaop-posix.adb \
  s-intman.adb<s-intman-posix.adb \
  s-osinte.adb<s-osinte-kfreebsd-gnu.adb \
  s-osinte.ads<s-osinte-kfreebsd-gnu.ads \
  s-osprim.adb<s-osprim-posix.adb \
  s-taprop.adb<s-taprop-posix.adb \
  s-taspri.ads<s-taspri-posix.ads \
  s-tpopsp.adb<s-tpopsp-posix-foreign.adb \
  system.ads<system-freebsd-x86.ads

  TOOLS_TARGET_PAIRS =  \
    mlib-tgt-specific.adb<mlib-tgt-specific-linux.adb \
    indepsw.adb<indepsw-gnu.adb

  EH_MECHANISM=-gcc
  THREADSLIB = -lpthread
  GNATLIB_SHARED = gnatlib-shared-dual
  GMEM_LIB = gmemlib
  LIBRARY_VERSION := $(LIB_VERSION)
endif

Unfortunately I don't know much about ADA and would really appreciate
hints on how to change the interface routines. GNU/Hurd is almost POSIX
compatible, but there are of course exceptions.

Thanks!







reply via email to

[Prev in Thread] Current Thread [Next in Thread]