* Nikolaus Rath <[email protected]>, 2011-05-22, 21:17:
gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions 
build/temp.linux-x86_64-2.7/src/llfuse.o -o 
build/lib.linux-x86_64-2.7/llfuse.so --as-needed -pthread -lfuse -lrt -ld

You want to use "-Wl,--as-needed", not "--as-needed". ("--as-needed" is a linker option, not a compiler option.)

Doesn't seem to make any difference:

[...]
gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions 
build/temp.linux-x86_64-2.6/src/llfuse.o -o 
build/lib.linux-x86_64-2.6/llfuse.so -Wl,--as-needed -pthread -lfuse -lrt -ldl
copying build/lib.linux-x86_64-2.6/llfuse.so -> src

$ ldd src/llfuse.so
        linux-vdso.so.1 =>  (0x00007fff63dff000)
        libfuse.so.2 => /usr/lib/libfuse.so.2 (0x00007fe771490000)
        libpthread.so.0 => /lib/libpthread.so.0 (0x00007fe771274000)
        libc.so.6 => /lib/libc.so.6 (0x00007fe770ef0000)
        librt.so.1 => /lib/librt.so.1 (0x00007fe770ce8000)
        libdl.so.2 => /lib/libdl.so.2 (0x00007fe770ae4000)
        /lib64/ld-linux-x86-64.so.2 (0x00007fe77193b000)

Please keep in mind that ldd is recursive. Since libfuse.so.2 is linked with librt and libdl, these two will show up in ldd output regardless of whether llfuse is linked with them or not.

Use "readelf -d /path/to/library | grep NEEDED" instead of ldd.

--
Jakub Wilk


--
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]
Archive: http://lists.debian.org/[email protected]

Reply via email to