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