Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

OpenBSD 3.9 libc compatibility with earlier versions?

2 views
Skip to first unread message

Tim Jones

unread,
Jul 11, 2006, 8:28:41 PM7/11/06
to
We've been providing BRU and BRU Server agents for OpenBSD since
OpenBSD 2.8.

For the most part, OpenBSD updates have not broken compatibility with
our baseline builds for 2.8 and 3.5 - until 3.9. We have a customer
that has installed 3.9 on a group of servers and we now witness libc
compatibility issues that can't be resolved with a simply symlink.

Is it known that applications built against the 3.5 libc are not
compatible with 3.9 (they have been proven to work fine with 3.8)? Is
there something that the user can do to enable backwards compatibility,
or is the only solution to compile special versions of the BRU tools
for 3.9?

Tim
--
Tim Jones tj...@tolisgroup.com

Otto Moerbeek

unread,
Jul 12, 2006, 12:23:29 AM7/12/06
to

You leave outthe intersting details... but symlinking lib versions is
bad, bad, bad. What should work is copying the right libc (the one the
app was linked against).

-Otto

Theo de Raadt

unread,
Jul 12, 2006, 2:05:46 AM7/12/06
to
> We've been providing BRU and BRU Server agents for OpenBSD since
> OpenBSD 2.8.
>
> For the most part, OpenBSD updates have not broken compatibility with
> our baseline builds for 2.8 and 3.5 - until 3.9. We have a customer
> that has installed 3.9 on a group of servers and we now witness libc
> compatibility issues that can't be resolved with a simply symlink.

Sorry, but symlinking shared libraries basically undermines all the
reasons why we change the shared library names.

We specifically change the shared library major/minor numbers because
SEVERE INCOMPATIBILITIES have been introduced, and unlike other
projects we do not feel that these incompatibilities should be shoved
under the rug and ignored, because random people will later get
burned.

We introduce the incompatibilities for very strong reasons. The
commit messages explain things.

> Is it known that applications built against the 3.5 libc are not
> compatible with 3.9 (they have been proven to work fine with 3.8)?

Yes. I could research the commits done just before each shared
library revision crank, and write you specific test programs in about
10 seconds for each case. How will each of those cases affect your
application? I don't know. That is why we crank things.

> Is
> there something that the user can do to enable backwards compatibility,
> or is the only solution to compile special versions of the BRU tools
> for 3.9?

There is no binary backwards compatibility.

You have a choice: new or old. Choose. I am sorry, but there is no
way we could cope with this any other way as programmers, oh, except
for maybe bloating the code every time we need to change something,
and 10 years from now libc will be a gig. That's not a world any of
us want.

Noone wants us to stop improving things.

Tim Jones

unread,
Jul 12, 2006, 11:15:31 AM7/12/06
to
On Jul 11, 2006, at 5:54 PM, Chris Kuethe wrote:

> Roughly speaking, a libc minor version bump means that new functions
> have been added. A major version bump means functions have been
> removed or some behaviour has been significantly changed. Sometime
> syscalls are moved, removed, or recycled. That you can get away with a
> symlink is just luck - if you have a major version bump, you'd better
> recompile.

This is what we suspected. Sorry to raise such dust over the symlink
comment - we don't recommend the symlink option in general, it's just a
test situation.

> In short, I guess it is known that applications built against obsd35
> libc won't work with obsd39 libc - that's why the version number
> changed. Maybe you can include a copy of obsd35 libc with your
> product?

Actually, that is most likely the best solution (and one I'd not
considered). We'll update the build on our end and add a copy of the
libc from 3.5.

Thanks,

Tim
--
Tim Jones tj...@tolisgroup.com

> On 7/11/06, Tim Jones <tj...@tolisgroup.com> wrote:
>> We've been providing BRU and BRU Server agents for OpenBSD since
>> OpenBSD 2.8.
>>
>> For the most part, OpenBSD updates have not broken compatibility with
>> our baseline builds for 2.8 and 3.5 - until 3.9. We have a customer
>> that has installed 3.9 on a group of servers and we now witness libc
>> compatibility issues that can't be resolved with a simply symlink.
>>

>> Is it known that applications built against the 3.5 libc are not

>> compatible with 3.9 (they have been proven to work fine with 3.8)? Is


>> there something that the user can do to enable backwards
>> compatibility,
>> or is the only solution to compile special versions of the BRU tools
>> for 3.9?
>>

>> Tim
>> --
>> Tim Jones tj...@tolisgroup.com
>>
>>
>
>

> --
> GDB has a 'break' feature; why doesn't it have 'fix' too?

0 new messages