29 декабря 2016 г. 22:25:23 CET, Bob Friesenhahn <bfrie...@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

_______________________________________________
openindiana-discuss mailing list
openindiana-discuss@openindiana.org
https://openindiana.org/mailman/listinfo/openindiana-discuss

Reply via email to