Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
 Request for removing libwim dependency
#1
First, I'd like to thank you for this PXE boot version ventoy. This is amazing! 

I want to host iventoy on a openwrt x86 system. I got the glibc, libevent2 and etc installed. But still no way to makes it run iventoy. I ldd it and find it has a libwim dependency. But somehow I see a topic about no intention for supporting wim boot. So is it possbile to remove this dependency? Or please kindly provide suggestions on how to resolve this. Thanks. Heres my ldd output. 

ldd iventoy
/lib64/ld-linux-x86-64.so.2 (0x7f26bc78c000)
libglib-2.0.so.0 => /usr/lib/libglib-2.0.so.0 (0x7f26bc684000)
libgthread-2.0.so.0 => /usr/lib/libgthread-2.0.so.0 (0x7f26bc67f000)
libevent-2.1.so.7 => /usr/lib/libevent-2.1.so.7 (0x7f26bc645000)
libevent_pthreads-2.1.so.7 => /usr/lib/libevent_pthreads-2.1.so.7 (0x7f26bc640000)
libdl.so.2 => /lib64/ld-linux-x86-64.so.2 (0x7f26bc78c000)
Error loading shared library libwim.so.15: No such file or directory (needed by iventoy)
libc.so.6 => /lib64/ld-linux-x86-64.so.2 (0x7f26bc78c000)
libevent_core-2.1.so.7 => /usr/lib/libevent_core-2.1.so.7 (0x7f26bc61c000)
Error relocating iventoy: wimlib_decompress: symbol not found
Error relocating iventoy: g_tree_node_value: symbol not found
Error relocating iventoy: wimlib_free_decompressor: symbol not found
Error relocating iventoy: g_tree_node_first: symbol not found
Error relocating iventoy: wimlib_create_decompressor: symbol not found
Error relocating iventoy: g_tree_node_next: symbol not found
Reply
#2
iVentoy will pack the glib2/libevent/libwim library .so files together.
iVentoy must run with the packed version of glib2/libevent/libwim, you should not let iVentoy use these so files that are in the system.
Reply
#3
Thanks for this information!

Would it better to set LD_LIBRARY_PATH in the iventoy.sh to make iventoy load its dependencies under lin64 instead of looking them up in /lib?
Reply
#4
Tried LD_LIBRARY_PATH today. Looks this won't work as well. Could be musl's different implement. Will iVentoy have a static linked version?
Here's ldd output after LD_LIBRARY_PATH set to lin64.
ldd /root/iventoy/iventoy-1.0.10/lib/iventoy
/lib64/ld-linux-x86-64.so.2 (0x7fb9bdebe000)
libglib-2.0.so.0 => /root/iventoy/iventoy-1.0.10/lib/lin64/libglib-2.0.so.0 (0x7fb9bdb4c000)
libgthread-2.0.so.0 => /root/iventoy/iventoy-1.0.10/lib/lin64/libgthread-2.0.so.0 (0x7fb9bd94a000)
libevent-2.1.so.7 => /root/iventoy/iventoy-1.0.10/lib/lin64/libevent-2.1.so.7 (0x7fb9bd6f5000)
libevent_pthreads-2.1.so.7 => /root/iventoy/iventoy-1.0.10/lib/lin64/libevent_pthreads-2.1.so.7 (0x7fb9bd4f2000)
libdl.so.2 => /lib64/ld-linux-x86-64.so.2 (0x7fb9bdebe000)
libwim.so.15 => /root/iventoy/iventoy-1.0.10/lib/lin64/libwim.so.15 (0x7fb9bd282000)
libc.so.6 => /lib64/ld-linux-x86-64.so.2 (0x7fb9bdebe000)
libiconv.so.2 => /root/iventoy/iventoy-1.0.10/lib/lin64/libiconv.so.2 (0x7fb9bcf9d000)
libpthread.so.0 => /lib64/ld-linux-x86-64.so.2 (0x7fb9bdebe000)
Error relocating /root/iventoy/iventoy-1.0.10/lib/lin64/libglib-2.0.so.0: __isnan: symbol not found
Error relocating /root/iventoy/iventoy-1.0.10/lib/lin64/libglib-2.0.so.0: strtoull_l: symbol not found
Error relocating /root/iventoy/iventoy-1.0.10/lib/lin64/libglib-2.0.so.0: strtoll_l: symbol not found
Error relocating /root/iventoy/iventoy-1.0.10/lib/lin64/libevent-2.1.so.7: __strtok_r: symbol not found
Error relocating /root/iventoy/iventoy-1.0.10/lib/lin64/libevent-2.1.so.7: __strdup: symbol not found
Error relocating /root/iventoy/iventoy-1.0.10/lib/lin64/libevent-2.1.so.7: __rawmemchr: symbol not found
Reply
#5
iVentoy was built with -rpath option, so there is no need for LD_LIBRARY_PATH
iVentoy must run under the decompressed directory, so if you run ldd under the correct directory you will get the right dependency result:

[root@CENTOS212 iventoy-1.0.11]# ldd lib/iventoy
        linux-vdso.so.1 =>  (0x00007ffc27503000)
        libglib-2.0.so.0 => ./lib/lin64/libglib-2.0.so.0 (0x00007f2eddfc1000)
        libgthread-2.0.so.0 => ./lib/lin64/libgthread-2.0.so.0 (0x00007f2edddbf000)
        libevent-2.1.so.7 => ./lib/lin64/libevent-2.1.so.7 (0x00007f2eddb6a000)
        libevent_pthreads-2.1.so.7 => ./lib/lin64/libevent_pthreads-2.1.so.7 (0x00007f2edd967000)
        libdl.so.2 => /lib64/libdl.so.2 (0x00007f2edd763000)
        libwim.so.15 => ./lib/lin64/libwim.so.15 (0x00007f2edd4f3000)
        libc.so.6 => /lib64/libc.so.6 (0x00007f2edd126000)
        libiconv.so.2 => ./lib/lin64/libiconv.so.2 (0x00007f2edce41000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f2edcc25000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f2ede333000)
[root@CENTOS212 iventoy-1.0.11]#

Besides, iVentoy only supports to run in the system with glibc. musl is not suported.
Reply
#6
Thanks for explaining!
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)