Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Error on dynamically loaded library: dlllwt_unix_stubs.so #273

Closed
rom38 opened this issue Feb 18, 2019 · 7 comments
Closed

Error on dynamically loaded library: dlllwt_unix_stubs.so #273

rom38 opened this issue Feb 18, 2019 · 7 comments

Comments

@rom38
Copy link

rom38 commented Feb 18, 2019

Than i try install utop on android termux. I get the following:

$ opam install utop
The following actions will be performed:
  ∗ install utop 2.3.0

<><> Gathering sources ><><><><><><><><><><><><><><><><><><><><><><><><><><><><>
[utop.2.3.0] found in cache

<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><>
[ERROR] The compilation of utop failed at
        "/data/data/com.termux/files/home/.opam/4.06.1+termux/bin/dune build -p utop -j 7".

#=== ERROR while compiling utop.2.3.0 =========================================#
# context     2.0.1 | linux/arm64 |  | https://opam.ocaml.org#6cfd4ce2
# path        ~/.opam/4.06.1+termux/.opam-switch/build/utop.2.3.0
# command     ~/.opam/4.06.1+termux/bin/dune build -p utop -j 7
# exit-code   1
# env-file    ~/.opam/log/utop-4465-05296d.env
# output-file ~/.opam/log/utop-4465-05296d.out
### output ###
#       ocamlc src/top/utop.bc (exit 2)
# (cd _build/default && /data/data/com.termux/files/home/.opam/4.06.1+termux/bin/ocamlc.opt -w -40 -safe-string -g -o src/top/utop.bc -linkall -I /data/data/com.termux/files/home/.opam/4.06.1+termux/lib/bisect_ppx/runtime -I /data/data/com.termux/files/home/.opam/4.06.1+termux/lib/bytes -I /data/data/com.termux/files/home/.opam/4.06.1+termux/lib/camomile -I /data/data/com.termux/files/home/.opa[...]
# File "_none_", line 1:
# Error: Error on dynamically loaded library: /data/data/com.termux/files/home/.opam/4.06.1+termux/lib/stublibs/dlllwt_unix_stubs.so: dlopen failed: cannot locate symbol "socket_type_table" referenced by "/data/data/com.termux/files/home/.opam/4.06.1+termux/lib/stublibs/dlllwt_unix_stubs.so"...



<><> Error report <><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>
┌─ The following actions failed
│ λ build utop 2.3.0
└─
╶─ No changes have been performed

$ cat ~/.opam/log/utop-5746-05296d.out
      ocamlc src/top/utop.bc (exit 2)
(cd _build/default && /data/data/com.termux/files/home/.opam/4.06.1+termux/bin/ocamlc.opt -w -40 -safe-string -g -o src/top/utop.bc -linkall
-I /data/data/com.termux/files/home/.opam/4.06.1+termux/lib/bisect_ppx/runtime
-I /data/data/com.termux/files/home/.opam/4.06.1+termux/lib/bytes 
-I /data/data/com.termux/files/home/.opam/4.06.1+termux/lib/camomile 
-I /data/data/com.termux/files/home/.opam/4.06.1+termux/lib/camomile/default_config 
-I /data/data/com.termux/files/home/.opam/4.06.1+termux/lib/camomile/dyn 
-I /data/data/com.termux/files/home/.opam/4.06.1+termux/lib/camomile/lib_default 
-I /data/data/com.termux/files/home/.opam/4.06.1+termux/lib/camomile/library 
-I /data/data/com.termux/files/home/.opam/4.06.1+termux/lib/findlib 
-I /data/data/com.termux/files/home/.opam/4.06.1+termux/lib/lambda-term 
-I /data/data/com.termux/files/home/.opam/4.06.1+termux/lib/lwt 
-I /data/data/com.termux/files/home/.opam/4.06.1+termux/lib/lwt/unix 
-I /data/data/com.termux/files/home/.opam/4.06.1+termux/lib/lwt_log 
-I /data/data/com.termux/files/home/.opam/4.06.1+termux/lib/lwt_log/core 
-I /data/data/com.termux/files/home/.opam/4.06.1+termux/lib/lwt_react 
-I /data/data/com.termux/files/home/.opam/4.06.1+termux/lib/ocaml/compiler-libs 
-I /data/data/com.termux/files/home/.opam/4.06.1+termux/lib/ocaml/threads
-I /data/data/com.termux/files/home/.opam/4.06.1+termux/lib/react 
-I /data/data/com.termux/files/home/.opam/4.06.1+termux/lib/result 
-I /data/data/com.termux/files/home/.opam/4.06.1+termux/lib/seq 
-I /data/data/com.termux/files/home/.opam/4.06.1+termux/lib/zed 
-I src/lib
/data/data/com.termux/files/home/.opam/4.06.1+termux/lib/ocaml/compiler-libs/ocamlcommon.cma /data/data/com.termux/files/home/.opam/4.06.1+termux/lib/ocaml/compiler-libs/ocamlbytecomp.cma /data/data/com.termux/files/home/.opam/4.06.1+termux/lib/ocaml/compiler-libs/ocamltoplevel.cma /data/data/com.termux/files/home/.opam/4.06.1+termux/lib/findlib/findlib.cma /data/data/com.termux/files/home/.opam/4.06.1+termux/lib/findlib/findlib_top.cma /data/data/com.termux/files/home/.opam/4.06.1+termux/lib/ocaml/unix.cma /data/data/com.termux/files/home/.opam/4.06.1+termux/lib/bisect_ppx/runtime/bisect.cma /data/data/com.termux/files/home/.opam/4.06.1+termux/lib/result/result.cma /data/data/com.termux/files/home/.opam/4.06.1+termux/lib/seq/seq.cma /data/data/com.termux/files/home/.opam/4.06.1+termux/lib/lwt/lwt.cma /data/data/com.termux/files/home/.opam/4.06.1+termux/lib/ocaml/bigarray.cma /data/data/com.termux/files/home/.opam/4.06.1+termux/lib/ocaml/threads/threads.cma /data/data/com.termux/files/home/.opam/4.06.1+termux/lib/lwt/unix/lwt_unix.cma /data/data/com.termux/files/home/.opam/4.06.1+termux/lib/react/react.cma /data/data/com.termux/files/home/.opam/4.06.1+termux/lib/lwt_react/lwt_react.cma /data/data/com.termux/files/home/.opam/4.06.1+termux/lib/camomile/default_config/camomileDefaultConfig.cma /data/data/com.termux/files/home/.opam/4.06.1+termux/lib/camomile/library/camomileLibrary.cma /data/data/com.termux/files/home/.opam/4.06.1+termux/lib/camomile/lib_default/camomileLibraryDefault.cma /data/data/com.termux/files/home/.opam/4.06.1+termux/lib/camomile/dyn/camomileLibraryDyn.cma /data/data/com.termux/files/home/.opam/4.06.1+termux/lib/camomile/camomile_yuge.cma /data/data/com.termux/files/home/.opam/4.06.1+termux/lib/zed/zed.cma /data/data/com.termux/files/home/.opam/4.06.1+termux/lib/lwt_log/core/lwt_log_core.cma /data/data/com.termux/files/home/.opam/4.06.1+termux/lib/lwt_log/lwt_log.cma /data/data/com.termux/files/home/.opam/4.06.1+termux/lib/lambda-term/lambda_term.cma src/lib/uTop.cma src/top/.utop.eobjs/byte/utop.cmo)
File "_none_", line 1:
Error: Error on dynamically loaded library: /data/data/com.termux/files/home/.opam/4.06.1+termux/lib/stublibs/dlllwt_unix_stubs.so: dlopen failed: cannot locate symbol "socket_type_table" referenced by "/data/data/com.termux/files/home/.opam/4.06.1+termux/lib/stublibs/dlllwt_unix_stubs.so"...

readelf -s /data/data/com.termux/files/home/.opam/4.06.1+termux/lib/stublibs/dlllwt_unix_stubs.so|grep so
    14: 0000000000000000     0 NOTYPE  GLOBAL DEFAULT  UND socket_type_table
    15: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND getsockopt@LIBC (2)
    77: 0000000000000000     0 NOTYPE  GLOBAL DEFAULT  UND alloc_sockaddr
    96: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND getsockname@LIBC (2)
   125: 0000000000000000     0 NOTYPE  GLOBAL DEFAULT  UND get_sockaddr
   128: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND setsockopt@LIBC (2)
   148: 0000000000000000     0 NOTYPE  GLOBAL DEFAULT  UND socket_domain_table
   172: 000000000000ae54    20 FUNC    GLOBAL DEFAULT   10 lwt_unix_is_socket
   215: 000000000000ab54   112 FUNC    GLOBAL DEFAULT   10 socket_domain
   321: 000000000000ae7c    20 FUNC    GLOBAL DEFAULT   10 lwt_unix_socketpair_stub
    38: 0000000000000000     0 FILE    LOCAL  DEFAULT  ABS crtbegin_so.c
  1603: 0000000000000000     0 FILE    LOCAL  DEFAULT  ABS windows_is_socket.c
  1621: 0000000000020510     8 OBJECT  LOCAL  DEFAULT   17 __dso_handle
  1651: 0000000000000000     0 NOTYPE  GLOBAL DEFAULT  UND socket_type_table
  1652: 000000000000ab54   112 FUNC    GLOBAL DEFAULT   10 socket_domain
  1657: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND getsockopt@@LIBC
  1789: 000000000000ae54    20 FUNC    GLOBAL DEFAULT   10 lwt_unix_is_socket
  1798: 0000000000000000     0 NOTYPE  GLOBAL DEFAULT  UND alloc_sockaddr
  1841: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND getsockname@@LIBC
  1844: 000000000000ae7c    20 FUNC    GLOBAL DEFAULT   10 lwt_unix_socketpair_stub
  1902: 0000000000000000     0 NOTYPE  GLOBAL DEFAULT  UND get_sockaddr
  1907: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND setsockopt@@LIBC
  1955: 0000000000000000     0 NOTYPE  GLOBAL DEFAULT  UND socket_domain_table
nm -D /data/data/com.termux/files/home/.opam/4.06.1+termux/lib/stublibs/dlllwt_unix_stubs.so|grep so
                 U alloc_sockaddr
                 U get_sockaddr
                 U getsockname
                 U getsockopt
000000000000ae54 T lwt_unix_is_socket
000000000000ae7c T lwt_unix_socketpair_stub
                 U setsockopt
000000000000ab54 T socket_domain
                 U socket_domain_table
                 U socket_type_table

In linux ubuntu 18.06 and in windows 7 cygwin all OK

What can i do?
And what the symbol "socket_type_table"? I can not find it in linux shared libraries in /system/lib/.

@ghost
Copy link

ghost commented Feb 18, 2019

Could you try this:

$ touch x.ml
$ ocamlfind ocamlc -linkpkg -linkall -package lwt.unix x.ml

?

@rom38
Copy link
Author

rom38 commented Feb 18, 2019

Thanks for help!
Yes you right

$ ocamlfind ocamlc -linkpkg  -package lwt.unix x.ml
ocamlfind: [WARNING] Package `threads': Linking problems may arise because of the missing -thread or -vmthread switch
File "x.ml", line 1:
Error: Error on dynamically loaded library: /data/data/com.termux/files/home/.opam/4.06.1+termux/lib/stublibs/dlllwt_unix_stubs.so: dlopen failed: cannot locate symbol "socket_type_table" referenced by "/data/data/com.termux/files/home/.opam/4.06.1+termux/lib/stublibs/dlllwt_unix_stubs.so"...
$
$ ocamlfind ocamlc -linkpkg  -linkall -package lwt.unix x.ml
ocamlfind: [WARNING] Package `threads': Linking problems may arise because of the missing -thread or -vmthread switch
File "x.ml", line 1:
Error: Required module `Condition' is unavailable
$ ocamlfind ocamlc -linkpkg  -linkall -thread -package lwt.unix x.ml
File "x.ml", line 1:
Error: Error on dynamically loaded library: /data/data/com.termux/files/home/.opam/4.06.1+termux/lib/stublibs/dlllwt_unix_stubs.so: dlopen failed: cannot locate symbol "socket_type_table" referenced by "/data/data/com.termux/files/home/.opam/4.06.1+termux/lib/stublibs/dlllwt_unix_stubs.so"...
$

@rom38
Copy link
Author

rom38 commented Feb 18, 2019

Maybe this is linked with android/ndk#201 ?

@ghost
Copy link

ghost commented Feb 18, 2019

Ok, so this is not an issue with utop then. Could you close this issue and open another one on https://github.com/ocsigen/lwt?

Looking at the Lwt code, there indeed seems to be an inconsistency between the .c and .h files regarding socket_type_table and defined(LWT_ON_WINDOWS) /cc @aantron

@rom38
Copy link
Author

rom38 commented Feb 18, 2019

Yes you are right, this is the problem lwt

@rom38 rom38 closed this as completed Feb 18, 2019
@ophey
Copy link

ophey commented Sep 24, 2019

was there even an issue opened for this on lwt? h0w to fix it?

@aantron
Copy link

aantron commented Sep 24, 2019

ocsigen/lwt#664

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants