[OpenIndiana-discuss] How many versions of libs/apps should OI provide?

Jim Klimov jimklimov at cos.ru
Thu Dec 29 22:24:02 UTC 2016


29 декабря 2016 г. 22:25:23 CET, Bob Friesenhahn <bfriesen at simple.dallas.tx.us> пишет:
>On Thu, 29 Dec 2016, James Carlson via openindiana-discuss wrote:
>> Now we deliver a new libfoo.so.2.  The guy who maintains our
>application
>> is a real go-getter, so he relinks and redelivers binaries almost
>right
>> away.  When the application runs, it pulls in libfoo.so.2 and (via
>the
>> libbar.so.1 dependency) pulls in libfoo.so.1 as well.  Oops.  Chaos
>> ensues.  You get SIGBUS and an extremely confusing to examine core
>dump
>> if you're lucky, or silently corrupted user data if you're not.
>
>At least Linux supports versioned symbols and libjpeg (and some 
>others) were adapted to use versioned symbols so that multiple major 
>versions of the library could be pulled in at once without harm.
>
>Does Illumos support Linux-style versioned symbols?
>
>Bob

Bob, do you mean symbols like 'this requires SUNW_1.23'? Yes, these are here too. I believe they do not quite work around the issue James describes, e.g. when your running binary pulls two copies of different libjpeg.so.* even with proper versioning. For example, if a library uses some global variables for state-keeping, and you call a random set of functions from one and another copy of the loaded lib that both satisfy your older required ABI version, you can get chaos. @James, is this a correct interpretation? ;)

Jim
--
Typos courtesy of K-9 Mail on my Samsung Android



More information about the openindiana-discuss mailing list