comp.lang.ada
 help / color / mirror / Atom feed
* GNAT installation
@ 1998-12-07  0:00 Alex Maranda
  1998-12-08  0:00 ` david.c.hoos.sr
  0 siblings, 1 reply; 2+ messages in thread
From: Alex Maranda @ 1998-12-07  0:00 UTC (permalink / raw)


Hi,

I have trouble installing GNAT3.10p on a Linux box. The (only) binary
distribution I could find (based on gcc2.7.2.1) misses two key object
files for the compiler back-end (linker actually): crtbegin.o, crtend.o.
I tried to work around the problem by putting in place the object files
from vanilla gcc2.7.2.3, and managed to link executables, but it
coredumps miserably.
options:
1. find sane GNAT distribution with the object files in place (need URL)
2. get those little bastards from somewhere (a caring netmate :-)
3. fill in yours

Cheers,
Alex
-- 
Alex Maranda         mailto: amaranda@spider.com
Spider Software Ltd. Tel: +44 (0)131 4757036
Edinburgh, UK        http://members.xoom.com/Alex_Maranda
STREAMS based communications protocols for embedded systems




^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: GNAT installation
  1998-12-07  0:00 GNAT installation Alex Maranda
@ 1998-12-08  0:00 ` david.c.hoos.sr
  0 siblings, 0 replies; 2+ messages in thread
From: david.c.hoos.sr @ 1998-12-08  0:00 UTC (permalink / raw)
  To: amaranda

In article <366BB468.6553@spider.com>,
  Alex Maranda <amaranda@spider.com> wrote:
> Hi,
>
> I have trouble installing GNAT3.10p on a Linux box. The (only) binary
> distribution I could find (based on gcc2.7.2.1) misses two key object
> files for the compiler back-end (linker actually): crtbegin.o, crtend.o.
> I tried to work around the problem by putting in place the object files
> from vanilla gcc2.7.2.3, and managed to link executables, but it
> coredumps miserably.
> options:
> 1. find sane GNAT distribution with the object files in place (need URL)
> 2. get those little bastards from somewhere (a caring netmate :-)
> 3. fill in yours
>
It would really help if you would specify on which of the myriad "Linux boxes"
you're running.

In case it's Redhat 5, here is a message I have posted numerous times on the
gnat-chat mail list (really the best place for gnat-specific help):


>it in /opt/gnat, and sourced env-vals.  It won't link any of the examples
>because RedHat's path to some object files
>(/usr/lib/gcc-lib/i386-redhat-linux/2.7.2.3/crtbegin.o) is different from what
>gnat expects.  I couldn't find a discussion of what environment variable
>(if any) to set to point to the C libraries.
>
>Can you send it to me?
>
>Also I've seen mention of a FAQ about using gnat in general and maybe 3.10p
>specifically under RedHat Linux.  I looked at
>ftp:rtfm.mit.edu/pub/usenet-by-group/comp.lang.ada but it's empty.  Where's
>the FAQ list?

Since this is a gnat question, the place you want to look is the gant chat
archive.

Here is a list of links to some of the gnat chat archive messages on this
subject:

http://www.gnat.com/chat/1852.html
http://www.gnat.com/chat/1853.html
http://www.gnat.com/chat/1854.html
http://www.gnat.com/chat/1855.html
http://www.gnat.com/chat/1857.html
http://www.gnat.com/chat/1858.html
http://www.gnat.com/chat/1864.html
http://www.gnat.com/chat/1901.html
http://www.gnat.com/chat/1903.html
http://www.gnat.com/chat/1936.html
http://www.gnat.com/chat/1940.html
http://www.gnat.com/chat/1941.html
http://www.gnat.com/chat/1944.html
http://www.gnat.com/chat/2248.html
http://www.gnat.com/chat/2249.html
http://www.gnat.com/chat/2252.html
http://www.gnat.com/chat/2253.html
http://www.gnat.com/chat/2254.html
http://www.gnat.com/chat/2276.html
http://www.gnat.com/chat/2279.html
http://www.gnat.com/chat/2280.html
http://www.gnat.com/chat/2384.html
http://www.gnat.com/chat/2385.html
http://www.gnat.com/chat/2499.html
http://www.gnat.com/chat/2500.html
http://www.gnat.com/chat/2501.html
http://www.gnat.com/chat/2502.html
http://www.gnat.com/chat/2505.html
http://www.gnat.com/chat/2508.html
http://www.gnat.com/chat/2509.html
http://www.gnat.com/chat/2511.html
http://www.gnat.com/chat/2512.html
http://www.gnat.com/chat/2513.html
http://www.gnat.com/chat/2514.html
http://www.gnat.com/chat/2516.html
http://www.gnat.com/chat/2778.html
http://www.gnat.com/chat/2779.html
http://www.gnat.com/chat/2780.html
http://www.gnat.com/chat/2781.html
http://www.gnat.com/chat/2855.html
http://www.gnat.com/chat/2857.html
http://www.gnat.com/chat/2859.html

Here is a posting I have made many, many times regarding gnat-3.10p with
Redhat:


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.

> Cheers,
> Alex
> --
> Alex Maranda         mailto: amaranda@spider.com
> Spider Software Ltd. Tel: +44 (0)131 4757036
> Edinburgh, UK        http://members.xoom.com/Alex_Maranda
> STREAMS based communications protocols for embedded systems
>

-----------== Posted via Deja News, The Discussion Network ==----------
http://www.dejanews.com/       Search, Read, Discuss, or Start Your Own    




^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~1998-12-08  0:00 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
1998-12-07  0:00 GNAT installation Alex Maranda
1998-12-08  0:00 ` david.c.hoos.sr

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox