On Tue, Oct 9, 2012 at 2:16 PM, Marc Espie <es...@nerim.net> wrote:
> On Tue, Oct 09, 2012 at 02:01:26PM +0100, Federico Schwindt wrote:
>> I sent this patch quickly before I left for work so I didn't have time
>> to write anything but I'd like to make my stance clear.
>>
>> I rewrote this patch because espie doesn't believe the original
>> approach was correct and he is too busy to do it himself.
>>
>> I don't specially care about qt4 and I'm a bit annoyed that he's
>> particularly picky about this patch when there are 2 others in qt4
>> that do this but for the benefit of other users and in order to remove
>> a warning from the only port I use that depends on qt4 I submitted it.
>>
>> I don't agree with espie. The dlopen approach is quite different than
>> linking to a library: a dlopen is always followed by a dlsym. If qt4
>> expects the library to provide certain symbols without checking (which
>> btw is not the case in qt4) the code is wrong.
>> Having a particular version hardcoded in the qt4 code does not
>> guarantee that this version will have the needed symbols, only that
>> this particular version was present when qt4 was compiled.
>> I think this subtle difference is quite important. qt4 does NOT
>> enforce NOR requires a particular version. It's just using 49 because
>> that's what's in the icu4c headers, that's all.
>
> I'm going to put a bit more oil on that fire, because I believe what
> you're writing here is wrong, so there HAS TO BE SOME CORRECTION in the
> mailing list archives.
>
> An ABI is *not* a symbol name. (We are NOT using versioned symbols on OpenBSD,
> in any case, and versioned symbols are a HUGE can of worms that takes YEARS
> to get right with DEADLY CONSEQUENCES when you fuck up). In many, many
> cases, a major library bump will happen *without* any visible symbols
> changing.   Structures that change size *are* a major reason of ABI changes.
>
> Heck, they are THE main reason for  ABI failures.
>
> And you can open the new library, and you can locate the symbols, and
> you will still get fucked.
>
> Or, hey, when/if we switch time_t to 64 bits, have fun mixing your new
> kernel and your old libc... (no symbol change !!! so it must still be right,
> right ?   Remember that I did handle the big ABI breakage back when we
> started implementing wide-chars, and suddenly, FILE* were not FILE* any more 
> ?)
>
> As usual, you can't predict the future. It might be this will never happen
> with icu4c. If it does, no amount of guessing through dlsyms will save you.
> It's what major library numbers are for.
> [..]

As much as it pains me to admit it you're right.
I looked at the code and was under the impression that qt was not
using any of the structures from icu4c but I was wrong.

f.-

Reply via email to