[root@trash ~]# rpm -qf /lib/libmagmamsg.so.1.0.0.pre21 magma-1.0-0.pre21.7 [root@trash ~]# ls -l /lib/libmagmamsg.so.1.0.0.pre21 -rw-r--r-- 1 root root 23128 May 6 17:33 /lib/libmagmamsg.so.1.0.0.pre21 <-- should be 0755 [root@trash ~]# ldd -r /lib/libmagmamsg.so.1.0.0.pre21 ldd: warning: you do not have execution permission for `/lib/libmagmamsg.so.1.0.0.pre21' undefined symbol: clist_get_flags (/lib/libmagmamsg.so.1.0.0.pre21) undefined symbol: memb_resolve_list (/lib/libmagmamsg.so.1.0.0.pre21) undefined symbol: clist_set_purpose (/lib/libmagmamsg.so.1.0.0.pre21) undefined symbol: clist_delete (/lib/libmagmamsg.so.1.0.0.pre21) undefined symbol: clist_next_set (/lib/libmagmamsg.so.1.0.0.pre21) undefined symbol: clist_get_purpose (/lib/libmagmamsg.so.1.0.0.pre21) undefined symbol: clist_insert (/lib/libmagmamsg.so.1.0.0.pre21) undefined symbol: cml_dup (/lib/libmagmamsg.so.1.0.0.pre21) undefined symbol: memb_id_to_p (/lib/libmagmamsg.so.1.0.0.pre21) undefined symbol: cml_free (/lib/libmagmamsg.so.1.0.0.pre21) undefined symbol: clist_fill_fdset (/lib/libmagmamsg.so.1.0.0.pre21) undefined symbol: memb_resolve (/lib/libmagmamsg.so.1.0.0.pre21) undefined symbol: clist_purgeall (/lib/libmagmamsg.so.1.0.0.pre21) ... <-- and it's missing a dependency on some other library.
You're right, the lib should be 0755 The dependency is on libmagma. Basically, we separated libmagma and libmagmamsg so that we could make sure libmagma was LGPL-licensed. Libmagmamsg requires libmagma at link time when building an application against it. The socket handling code in libmagmamsg dates back GPL code from Mission Critical Linux ca. 2000, and is GPL-licensed, which is why libmagmamsg is separate in the first place...
Created attachment 118322 [details] cfeist + lhh's patch to fix mode / linking problem
Yow: + ${LD} -shared -soname libmagmamsg.so.$(RELEASE_MAJOR) -o $@ $^ -Bdynamic -lc -L. -lmagma -lpthread -ldl you should never ever ever be linking anything using ld directly. use gcc -shared ... and the explicit -lc is not necessary either.
I know the explicit lc isn't necessary, I was just using what was in the makefile ;) The whole makefile would need to be rewritten to make it not use LD directly.. To be honest, I don't know where that came from, I was sure I was using gcc.
Created attachment 118348 [details] Hail rewrites.
Created attachment 118349 [details] Remove already-committed mode change
-Bdynamic is also redundant on Linux, otherwise that looks good.
The fixes have been commited upstream and should show up in the next fedora core build of magma.