Problem during dlopen()

Konstantin Belousov kostikbel at gmail.com
Tue Jul 5 11:51:09 UTC 2016


On Tue, Jul 05, 2016 at 01:13:42PM +0200, Willem Jan Withagen wrote:
> Hi,
> 
> I'm banging my head agains the wall because I cannot seem to get this
> working.
> 
> The problem is due to changing from automake to cmake building.
> 
> But all my dlopens start failing with something like:
> load failed dlopen(build/lib/compressor/libceph_snappy.so) or
> dlopen(build/lib/libceph_snappy.so): build/lib/libceph_snappy.so:
> Undefined symbol "_ZN4ceph6buffer4list8iterator7advanceEl"
> 
> If do a lookup for  the name:
> nm build/lib/libceph_snappy.so |grep ceph6buffer4list8iterator7advanceEl
> 
> if give me:
>                  U _ZN4ceph6buffer4list8iterator7advanceEl
> 
> The parent/calling executable however has:
> 	0000000000513de0 T _ZN4ceph6buffer4list8iterator7advanceEl
Are you sure ?  In which symbol table (dynamic or debug) the referenced
symbol appear ?  Check with nm -D.  If it is in debug table, you need
--export-dynamic linker switch when creating the binary defining the
symbols.

> 
> Clearly dlopen is not able to match these 2 and succeed.
Why are you sure that the dynamic linker at fault ?

> 
> Question:
> So on which part of the building is what switch missing.
> 
> Thanx,
> --WjW
> _______________________________________________
> freebsd-hackers at freebsd.org mailing list
> https://lists.freebsd.org/mailman/listinfo/freebsd-hackers
> To unsubscribe, send any mail to "freebsd-hackers-unsubscribe at freebsd.org"


More information about the freebsd-hackers mailing list