From: "David C. Hoos, Sr." <david.c.hoos.sr@ada95.com>
Subject: Re: a tisket - NO TASKet
Date: 1998/10/09
Date: 1998-10-09T00:00:00+00:00 [thread overview]
Message-ID: <medGWu289GA.209@samson.airnet.net> (raw)
In-Reply-To: 6vjpvq$fdf$1@usenet44.supernews.com
alan walkington wrote in message <6vjpvq$fdf$1@usenet44.supernews.com>...
>Horrors
>
>Redhat 5.1, intel box, latest free gnat (2.10? .. whatever).
>
>Attempting to execute ANY program with tasking gets a
> Seg fault during elaboration of the _adainit internal
> >>>'system_interupt_management___elabb'<<<
>
>Have had no problems with anything else, but even the
>simplest tasking example fails to execute.
>
>Help anyone??????
>
A number of people have found that this solution works for them. The
cause of the segmentation fault is the change of the size of sigset_t
from 32 bits to 1024 bits.
I have posted this message several times on gnat chat -- so here it is
again:
For what it's worth, Here's how I have gnat-3.10p running on RedHat 5.0.
I did it originally with the 2.0.31 kernel, the upgraded to the 2.0.32
kernel.
The fundamental problem is that RedHat 5.0 increases the size of sigset_t
from 32 bits to 1024 bits.
To correct this problem, the file s-osinte.ads needs to be altered -- e.g.
as follows:
591c591,593
< type sigset_t is new unsigned_long;
---
> SIGSET_NWORDS : constant := 1024 / (unsigned_long'Size);
>
> type sigset_t is array (1 .. SIGSET_NWORDS) of unsigned_long;
Then, the adalib(s) need to be compiled -- either the native linux threads
runtime or the Florida State University (fsu) runtime, or both.
To do this I executed the following script in each adalib directory:
#!/bin/tcsh -f
foreach f (../adainclude/*.ad[bs])
gcc -c -O2 -gnatpga -I- $f
end
To be sure, this script re-compiles some stuff not rendered obsolete by
the change to s-osinte.ads, but it was quicker just to recompile
everything than to figure out what needed to be recompiled.
Next, the libgnat.a archive needs to be rebuilt with something like:
ar ru libgnat.a *.o, in each of the adalibs.
In my case, the size of the libgnat.a file for the native rts changed as
follows:
-rw-r--r-- 1 root root 1747090 Feb 14 12:21 ../adalib/libgnat.a
-rw-r--r-- 1 4168 1100 1740584 Aug 24 1997
../adalib/libgnat.a.orig
I don't remember for sure, but I don't think I manually manipulated any of
the symbolic links related to the libraries, but at any rate, here's what my
/usr/lib/gcc-lib/i386-linux/2.7.2.1 directory looks like (sorry but these
long lines may wrap in you mail client):
NOTE: While the above comment about my not remembering making any
symbolic liks is true, the evidence below suggests that I symbolically
linked
several files in /usr/lib/gcc-lib/i386-redhat-linux/2.7.2.3/2.7.2.1 to the
/usr/lib/gcc-lib/i386-linux/2.7.2.1 directory.
total 2743
lrwxrwxrwx 1 root root 50 Feb 12 05:24 2.7.2.1 ->
/usr/lib/gcc-lib/i386-redhat-linux/2.7.2.3/2.7.2.1
lrwxrwxrwx 1 root root 55 Feb 12 05:24 SYSCALLS.c.X ->
/usr/lib/gcc-lib/i386-redhat-linux/2.7.2.3/SYSCALLS.c.X
lrwxrwxrwx 1 root root 58 Feb 20 04:22 adainclude ->
/usr/lib/gcc-lib/i386-linux/2.7.2.1/rts-native/adainclude/
lrwxrwxrwx 1 root root 54 Feb 20 04:22 adalib ->
/usr/lib/gcc-lib/i386-linux/2.7.2.1/rts-native/adalib/
lrwxrwxrwx 1 root root 46 Feb 12 05:24 cc1 ->
/usr/lib/gcc-lib/i386-redhat-linux/2.7.2.3/cc1
lrwxrwxrwx 1 root root 50 Feb 12 05:24 cc1plus ->
/usr/lib/gcc-lib/i386-redhat-linux/2.7.2.3/cc1plus
lrwxrwxrwx 1 root root 46 Feb 12 05:24 cpp ->
/usr/lib/gcc-lib/i386-redhat-linux/2.7.2.3/cpp
lrwxrwxrwx 1 root root 53 Feb 12 05:24 crtbegin.o ->
/usr/lib/gcc-lib/i386-redhat-linux/2.7.2.3/crtbegin.o
lrwxrwxrwx 1 root root 54 Feb 12 05:24 crtbeginS.o ->
/usr/lib/gcc-lib/i386-redhat-linux/2.7.2.3/crtbeginS.o
lrwxrwxrwx 1 root root 51 Feb 12 05:24 crtend.o ->
/usr/lib/gcc-lib/i386-redhat-linux/2.7.2.3/crtend.o
lrwxrwxrwx 1 root root 52 Feb 12 05:24 crtendS.o ->
/usr/lib/gcc-lib/i386-redhat-linux/2.7.2.3/crtendS.o
-rwxr-xr-x 1 4168 1100 2271408 Sep 12 1997 gnat1
lrwxrwxrwx 1 root root 50 Feb 12 05:24 include ->
/usr/lib/gcc-lib/i386-redhat-linux/2.7.2.3/include
-rw-r--r-- 1 root root 206902 Feb 14 10:10 libgcc.a
-rw-r--r-- 1 root root 238346 Feb 14 10:10 libgthreads.a
-rw-r--r-- 1 root root 74242 Feb 14 10:10 libmalloc.a
drwxr-xr-x 4 4168 1100 1024 Aug 24 1997 rts-fsu
drwxr-xr-x 4 4168 1100 1024 Aug 24 1997 rts-native
lrwxrwxrwx 1 root root 48 Feb 12 05:24 specs ->
/usr/lib/gcc-lib/i386-redhat-linux/2.7.2.3/specs
As a further sanity check, executing "gcc -v" should result in a message
like:
Reading specs from: /usr/lib/gcc-lib/i386-linux/2.7.2.1/specs
The 2.7.2.1 directory points to 2.7.2.3 because gcc 2.7.2.3 was installed
first (as part of the Linux installation), then gnat was installed on top of
that -- and gnat is 2.7.2.1-based.
I hope I've covered all of the bases here, as this installation is working
fine for me.
I should acknowledge that others of this group helped me when I ran into the
problem a few weeks ago, identifying the cause of the problem and providing
the broad outline of what to do.
Good luck to all who have this problem.
David C. Hoos, Sr.
next prev parent reply other threads:[~1998-10-09 0:00 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
1998-10-08 0:00 a tisket - NO TASKet alan walkington
1998-10-09 0:00 ` David C. Hoos, Sr. [this message]
1998-10-10 0:00 ` Baasket case : " walkington
1998-10-10 0:00 ` David C. Hoos, Sr.
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox