> The change is supposed to be binary compatible so not sure what this
> means.

Our problem is related with distribution, not with a specific library
or its ABI.  Imagine that:

$VENDOR1 builds GNAT without the fix.
$VENDOR2 builds libfoo against GNAT.
$administrator installs both.

I write bar.adb using foo.adb.

$VENDOR1 rebuilds GNAT with the fix modifying s-osinte__linux.ads and
s-osinte.ali.
$administrator updates GNAT.

My next attempt to rebuild bar.adb fails.

GNAT (correctly) reports that foo.ali is obsolete and should be
rebuilt against the updated s-osinte.ali.

I don’t understand the problem because I have never heard of
s-osinte.ali.  The error happens while building bar.adb, the message
mentions libfoo, but the problem originates in an unrelated GNAT
update.

Even if I did, I could not apply the right fix ($VENDOR2 should
rebuild libfoo fory all users).

Here VENDOR1=VENDOR2=administrator=Debian wants to prevent this
scenario for end users.  We must choose to revert the patch or rebuild
most Ada packages (the error may affects any recursive dependency of
libgnat…).  Currently, a stable release is in preparation so the
second option has a much higher price.

Reply via email to