Date: Thu, 23 Jun 2016 13:10:08 -0400 From: Rich Felker <dalias@...c.org> To: musl@...ts.openwall.com Subject: Re: musl ldd: swt build: Error relocating / symbol not found On Thu, Jun 23, 2016 at 03:39:46PM +0000, Andrei Pozolotin wrote: > 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 OK so it looks like you're trying to run foreign glibc binaries with musl. That might or might not work, and in this case it seems to be not working. You really should be using a build of eclipse and all its libraries against musl rather than putting glibc-linked binaries on the system. > 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? No, it will use them. > * if not, is there a way to tell musl ld.so to blacklist private path > libraries? No, but you could just rm (or mv) them. But I suspect you'll still run into other problems. Support for using glibc-linked programs/libraries is inherently error-prone and really only intended for use in situations where you can't get a properly-built binary (e.g. Flash plugin). Rich
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.