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

gnat-3.2 / gnat3.15 transition plans



[Apologies for sending this follow-up a month after most of the other
messages -- I've been a bit busy.  I hope that I haven't missed any
messages or repeated anything obvious.]

On Sun, 2 Mar 2003, Matthew Wilcox wrote:
> Subject: gnat-3.2 transition plan
>
> First, what packages are affected?  On my i386-unstable box, only the
> following packages depend on either gnat or libgnat-3.14p-1
> [...]
> (why don't libadaodbc1 or libadasockets0 show up on this?

I don't think libadasockets0 needs to depend on gnat -- it is, I
think, `just' a shared object library.  However, there is clearly an
expectation that the program linking with it is compiled with gnat so
that the Ada-related symbols are all resolved.  Perhaps it should
recommend gnat or libgnat<version>.


On Sun, 2 Mar 2003, Florian Weimer wrote:
> Subject: Re: GNAT 3.15p transition plan
> > Florian, I don't agree. I understand your arguments but honestly,
> > there is no more than one ACT release per year. So people don't
> > have to often rebuilt their programs and libraries.
> I've looked at a few packages which would need DSOs and I came to the
> conclusion that I simply do not have the time to take care of them
> properly.
>
> If someone else stepped in and helped with the various library
> packages, I wouldn't object, of course.

I've just adopted adasockets (well, I had an ITA open on it for long
enough), and hope to do the same for libgtkada....  (If someone else
with more time wishes to adopt it instead of me, feel free.  Just let
me know.)

Personally, I would like to keep shared library support for gnat, for
reasons already explained in other replies.  However, to do that, we
do need to sort out the ABI and related version problems:

We already have an ABI-like issue whereby .ali files are tied to the
gnat version (i.e., 3.14 or 3.15) (see the open bugs in adacgi).  I
wonder how that will relate to the library packaging guidelines if we
have gnat-3.2 co-existing with gnat?  I.e., whereas gnat_3.15 will
replace gnat_3.14, what happens if gnat_3.15 and gnat-3.2 want to use
the same library?  Do we then have a version of each library (i.e.,
.o, .ali, and .so files) for gnat and another for gnat-3.2?

The simple alternative is to not package any .ali, .o, .so files, and
have the Ada library packages provide only source code.  Of course,
until gnat-3.2 is viable, is it worth worrying about this?  (This
solution would mean effectively dropping shared libraries.)

Ignoring gnat-3.2 for a moment: As noted in other messages, there
doesn't seem to be a huge amount of work to convert packages from gnat
3.14 to 3.15 (just change the Depends/Build-Depends).  If I understand
correctly, the testing scripts will stop gnat 3.15 going from unstable
to testing until the packages that have dependencies on gnat 3.14 have
been changed to 3.15.  So it should be clear what work needs doing
when the gnat version changes.

My last point in this (increasingly incoherent) email: I don't yet
know if the actual .so files still work with a later version of gnat.
I.e., given the scenerio:
  - Build library package libfoo with gnat 3.14, so the .ali files are
    associated with gnat 3.14.
  - Build application bar, which links to libfoo.so.  As part of the
    build of bar, we have to use the libfoo .ali files, so we use gnat
    3.14.
  - We upgrade to gnat 3.15.

 Will bar still work with libfoo.so if foo.so hasn't been rebuilt?
 (Yes, I say.)

 Will bar still work with libfoo.so when libfoo has been rebuilt with
 gnat 3.15 and bar has not been recompiled?  (Or are some of the
 symbols in libfoo.so linked to something unique to gnat 3.14?)
 (I don't know about this one....)

Hope all the makes sense!

Cheers,

Phil.



Reply to: