Re: [AD] 5.0 and 5.2 on the same system

[ Thread Index | Date Index | More lists.liballeg.org/allegro-developers Archives ]


On Tue, 11 Dec 2012 14:29:44 +0100, Elias Pschernig <elias.pschernig@xxxxxxxxxx> wrote:
> On Tue, Dec 11, 2012 at 2:09 PM, Peter Wang <novalazy@xxxxxxxxxx> wrote:
> > On Tue, 11 Dec 2012 11:56:12 +0100, Elias Pschernig <elias.pschernig@xxxxxxxxxx> wrote:
> >> I still think when compiling 5.0 code for 5.2 it actually *should* be
> >> manually checked for any deprecated code and someone should be forced
> >> to consciously change the version from 5.0 to 5.2.
> >
> > I don't understand what you want to achieve with that.  5.2 will be
> > almost completely source compatible with 5.0 so there's nothing to
> > check.  If I have Allegro 5.2 installed and the program I'm trying to
> > build tries to link with allegro-5.0, I'm just going to bump it to
> > allegro-5.2 without any further thought.  It's just an annoyance.
> >
> 
> Yes, basically I want to reserve the right to change the API between
> major versions. To me it just always is the worst nightmare that I
> suddenly end up having to keep supporting some old feature just to
> stay compatible with something :P But it means I'd also just
> change/remove/rename API symbols without compatibility #defines and so
> on. Since we do have those, I guess it would be consequential to keep
> the same library name (even though I don't like the whole concept).

Allegro is not one of *those* libraries, though some might dispute
that with 5.0..

If a library is known for breaking user code, then I would simply avoid
it.  I think we didn't delete a single symbol in the 4.x series (though
we unintentially made the cpu_* globals do nothing in 4.4).  Similar
story for Allegro 2.x and Allegro 3.x.

> >
> > I assume by full name you mean the library with the soname.
> >
> 
> Yes. Right now it is strange that the pkgconfig files are named -5.0
> and the .so paths in the resulting binary are named -5.0, but some
> intermediate command-line returned by pkgconfig says just -lallegro.

"It doesn't work" seems like a pretty good reason.

If you passed -lallegro-5.0 on the command-line then the linker
won't find anything because our files are NOT named liballegro-5.0.*
but

    liballegro.so -> liballegro.so.5.0
    liballegro.so.5.0 -> liballegro.so.5.0.8
    liballegro.so.5.0.8

You would need pass the full path directly instead of using the -l option.
Possible but a bit unconventional.

Peter




Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/