Re: Almost finished porting gnat-4.6 to GNU/Hurd
On Thu, 2012-03-22 at 21:43 +0100, Svante Signell wrote:
> On Thu, 2012-03-22 at 19:16 +0100, Ludovic Brenta wrote:
> > Svante Signell writes:
>
> > > #0 0x01050b10 in
> > > system__task_primitives__operations__specific__initializeXnn@plt ()
> > > 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
> >
> > This calls
> >
> > pthread_key_create (ATCB_Key'Access, null);
> >
> > at s-tpopsp-posix-foreign.adb:50; here ATCB_Key is an aliased global
> > variable declared at s-taprop-posix.adb:86, so its access value cannot
> > be null. MAybe what is happening is that pthread_key_create is itself
> > an unresolved symbol? What does
> >
Doing nm --dynamic /lib/libpthread.so.0.3| grep pthred_key_create
shows:
00004fe0 T pthread_key_create
while
nm /usr/lib/i386-gnu/libgnarl-4.6.so.1|grep pthread_key_create
U pthread_key_create
so things should be in order.
Something more suspicious is:
#1 0x0105dc2f in system.task_primitives.operations.initialize (
environment_task=0x80689e0) at s-taprop.adb:1341
act = (sa_handler => (system.address) 0x34014, sa_flags => 25164832,
sa_mask => (60003, 16951728, 0, 1))
old_act = (sa_handler => (system.address) 0x5, sa_flags => 0,
sa_mask => (832, 17059356, 134646232, 17031168))
tmp_set = (17057068, 17242772, 134646240, 0)
#2 0x010608fa in system.tasking.initialize () at s-taskin.adb:215
t = 0x80689e0
base_priority = 15
base_cpu = 0
Looking at the new values of act compared to old_act the sa_flags value
seems to be bogus??
Where is these variables set? One thing that puzzles me is that init.c
seems to handle most stuff related to initialization, but that function
is used in libgnat-4.6.so.1 not libgnarl-4.6.so.1? And libngnarl is the
run-time library, right? No C functions are used building libgnarl. How
to modify the compile/link commands to use the static libraries
libgnat.a and libgnarl.a?
Reply to: