[rtmpdump] Problems compiling rtmpdump for Synology 214play

Simon Carter bbbscarter at gmail.com
Tue Mar 11 10:42:52 CET 2014


 
Hi! I’ve been trying to compile rtmpdump for my Synology 214play (with an atom CPU), without a great deal of success. I’ve got a fair amount of C/C++ compilation experience, but not with the finer details of Linux, so I’m reaching the edge of my knowledge.

So far I’ve followed the instructions here:  
https://www.mail-archive.com/get_iplayer@lists.infradead.org/msg04672.html

and I’ve got ipkg installed and can compile librtmpdump fine. Unfortunately, when it comes to linking rtmpdump itself I get the following error:  

/opt/i686-linux-gnu/lib/libdl.so.2: undefined reference to `_dl_open at GLIBC_PRIVATE'  
/opt/i686-linux-gnu/lib/libdl.so.2: undefined reference to `_dl_close at GLIBC_PRIVATE’  

Digging into it, I think the problem is something to do with library paths and libssl and libdl.  

- I have two copies of libdl.so.2 - one in /lib and one in /opt/i686-linux-gnu/lib 

- Similarly I have /lib/libssl.so, /lib/libssl.so.1.0.0 and /opt/lib/libssl.so, /opt/lib/libssl.0, /opt/lib/libssl.so.0.9.8

- If I do /lib/ld.so.1 librtmpdmp.so I get ./librtmp.so: error while loading shared libraries: libssl.so.0.9.8: cannot open shared object file: No such file or directory

- If I export LD_LIBRARY_PATH=/opt/lib I can inspect librtmp.so properly:
/lib/ld.so.1 --list /opt/rtmpdump/librtmp/librtmp.so
linux-gate.so.1 => (0xffffe000)
libssl.so.0.9.8 => /opt/lib/libssl.so.0.9.8 (0xb76c2000)
libcrypto.so.0.9.8 => /opt/lib/libcrypto.so.0.9.8 (0xb7585000)
libz.so.1 => /opt/lib/libz.so.1 (0xb756f000)
libc.so.6 => /lib/libc.so.6 (0xb73f7000)
libdl.so.2 => /lib/libdl.so.2 (0xb73f1000)
/lib/ld.so.1 (0xb7722000)

It seems to be depending on the wrong libdl.so.

- /opt/lib/libssl.0.9.8 seems to depend on the wrong libdl:  
/lib/ld.so.1 --list /opt/lib/libssl.so.0.9.8  
linux-gate.so.1 => (0xffffe000)
libcrypto.so.0.9.8 => /opt/lib/libcrypto.so.0.9.8 (0xb7630000)
libdl.so.2 => /lib/libdl.so.2 (0xb762b000)
libc.so.6 => /lib/libc.so.6 (0xb74b3000)

/lib/ld.so.1 (0xb77b3000)
- If I try to compile with LD_LIBRARY_PATH=/opt/lib I get the same errors.

I’m not entirely sure what to do next. My instinct is that /opt/lib/libssl.so should be using /opt/i686-linux-gnu/libdl.so,. Unfortunately on this box there’s no /etc/ld.conf to control library search paths, and LD_LIBRARY_PATH doesn’t seem to redirect it in this case.  


I expect I’m missing something obvious, so any help would be much appreciated!  

Thanks!  

Simon


More information about the rtmpdump mailing list