Rich: On 06/23/2016 04:24 AM, Rich Felker wrote: > On Thu, Jun 23, 2016 at 03:35:02AM +0000, Andrei Pozolotin wrote: >> https://github.com/random-alpiner/repository/blob/master/bugs/01/1-app.log >> https://github.com/random-alpiner/repository/blob/master/bugs/01/2-ldd.log >> https://github.com/random-alpiner/repository/blob/master/bugs/01/3-readelf.log >> >> My first guess would be that something else in the application >> (eclipse) has already caused an older/stale version of libgobject to >> be loaded, so that the version containing the symbol definition does >> not get loaded. You could confirm this by running strace on the >> program and checking what library files it loads/maps. Thank you for the tip. 1) the trace shows: https://github.com/random-alpiner/repository/blob/master/bugs/01/4-strace.log 2) that the proper /usr/lib/libgobject-2.0.so.0 is in fact loaded before /usr/lib/libswt-atk-gtk-4530.so 3) however, the loading starts from /home/work/space/none-4.5.0/conf/org.eclipse.osgi/748/0/.cp/libswt-gtk-4530.so, which is an eclipse default library bundled with the eclipse application, and which is compiled against foreign libc.6.so: lddtree /home/work/space/none-4.5.0/conf/org.eclipse.osgi/748/0/.cp/libswt-gtk-4530.so libswt-gtk-4530.so => /home/work/space/none-4.5.0/conf/org.eclipse.osgi/748/0/.cp/libswt-gtk-4530.so (interpreter => none) libc.so.6 => not found 4) the library loading logic of eclipse is: first try to load bundled libraries from private paths, and if that fails, then try to load these libraries from the public paths, such as "/usr/lib/*", etc. 5) I do provide replacement libswt-* libraries built against musl on the public path "/usr/lib/*", and the assumption was that when private path library loading fails, then the library will be loaded from the public path, which "sort of almost works", so: * was that a wrong assumption? * will in fact musl ld.so reject libraries linked to the libc.so.6? * if not, is there a way to tell musl ld.so to blacklist private path libraries?