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

Dockerize and run on server #9

Closed
2 tasks
nevyn opened this issue Mar 17, 2019 · 5 comments
Closed
2 tasks

Dockerize and run on server #9

nevyn opened this issue Mar 17, 2019 · 5 comments
Assignees

Comments

@nevyn
Copy link
Member

nevyn commented Mar 17, 2019

  • Fix EI build problem
  • Figure out how to run it persistently

Upvote & Fund

  • We're using Polar.sh so you can upvote and help fund this issue.
  • We receive the funding once the issue is completed & confirmed by you.
  • Thank you in advance for helping prioritize & fund our backlog.
Fund with Polar
@nevyn nevyn closed this as completed Mar 17, 2019
@nevyn nevyn reopened this Mar 17, 2019
@nevyn nevyn self-assigned this Mar 17, 2019
@nevyn
Copy link
Member Author

nevyn commented Mar 17, 2019

==> allo_placeserv
-- The C compiler identification is GNU 6.3.0
-- The CXX compiler identification is GNU 6.3.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
CMake Warning (dev) at src/allonet/lib/enet/CMakeLists.txt:3 (project):
  Policy CMP0048 is not set: project() command manages VERSION variables.
  Run "cmake --help-policy CMP0048" for policy details.  Use the cmake_policy
  command to set the policy and suppress this warning.

  The following variable(s) would be set to empty:

    PROJECT_VERSION
    PROJECT_VERSION_MAJOR
    PROJECT_VERSION_MINOR
    PROJECT_VERSION_PATCH
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Looking for fcntl
-- Looking for fcntl - found
-- Looking for poll
-- Looking for poll - found
-- Looking for getaddrinfo
-- Looking for getaddrinfo - found
-- Looking for getnameinfo
-- Looking for getnameinfo - found
-- Looking for gethostbyname_r
-- Looking for gethostbyname_r - found
-- Looking for gethostbyaddr_r
-- Looking for gethostbyaddr_r - found
-- Looking for inet_pton
-- Looking for inet_pton - found
-- Looking for inet_ntop
-- Looking for inet_ntop - found
-- Performing Test HAS_MSGHDR_FLAGS
-- Performing Test HAS_MSGHDR_FLAGS - Success
-- Check size of socklen_t
-- Check size of socklen_t - done
CMake Warning (dev) at src/allonet/lib/cJSON/CMakeLists.txt:4 (project):
  Policy CMP0048 is not set: project() command manages VERSION variables.
  Run "cmake --help-policy CMP0048" for policy details.  Use the cmake_policy
  command to set the policy and suppress this warning.

  The following variable(s) would be set to empty:

    PROJECT_VERSION
    PROJECT_VERSION_MAJOR
    PROJECT_VERSION_MINOR
    PROJECT_VERSION_PATCH
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Performing Test FLAG_SUPPORTED_stdc89
-- Performing Test FLAG_SUPPORTED_stdc89 - Success
-- Performing Test FLAG_SUPPORTED_pedantic
-- Performing Test FLAG_SUPPORTED_pedantic - Success
-- Performing Test FLAG_SUPPORTED_Wall
-- Performing Test FLAG_SUPPORTED_Wall - Success
-- Performing Test FLAG_SUPPORTED_Wextra
-- Performing Test FLAG_SUPPORTED_Wextra - Success
-- Performing Test FLAG_SUPPORTED_Werror
-- Performing Test FLAG_SUPPORTED_Werror - Success
-- Performing Test FLAG_SUPPORTED_Wstrictprototypes
-- Performing Test FLAG_SUPPORTED_Wstrictprototypes - Success
-- Performing Test FLAG_SUPPORTED_Wwritestrings
-- Performing Test FLAG_SUPPORTED_Wwritestrings - Success
-- Performing Test FLAG_SUPPORTED_Wshadow
-- Performing Test FLAG_SUPPORTED_Wshadow - Success
-- Performing Test FLAG_SUPPORTED_Winitself
-- Performing Test FLAG_SUPPORTED_Winitself - Success
-- Performing Test FLAG_SUPPORTED_Wcastalign
-- Performing Test FLAG_SUPPORTED_Wcastalign - Success
-- Performing Test FLAG_SUPPORTED_Wformat2
-- Performing Test FLAG_SUPPORTED_Wformat2 - Success
-- Performing Test FLAG_SUPPORTED_Wmissingprototypes
-- Performing Test FLAG_SUPPORTED_Wmissingprototypes - Success
-- Performing Test FLAG_SUPPORTED_Wstrictoverflow2
-- Performing Test FLAG_SUPPORTED_Wstrictoverflow2 - Success
-- Performing Test FLAG_SUPPORTED_Wcastqual
-- Performing Test FLAG_SUPPORTED_Wcastqual - Success
-- Performing Test FLAG_SUPPORTED_Wundef
-- Performing Test FLAG_SUPPORTED_Wundef - Success
-- Performing Test FLAG_SUPPORTED_Wswitchdefault
-- Performing Test FLAG_SUPPORTED_Wswitchdefault - Success
-- Performing Test FLAG_SUPPORTED_Wconversion
-- Performing Test FLAG_SUPPORTED_Wconversion - Success
-- Performing Test FLAG_SUPPORTED_Wccompat
-- Performing Test FLAG_SUPPORTED_Wccompat - Success
-- Performing Test FLAG_SUPPORTED_fstackprotectorstrong
-- Performing Test FLAG_SUPPORTED_fstackprotectorstrong - Success
-- Performing Test FLAG_SUPPORTED_Wcomma
-- Performing Test FLAG_SUPPORTED_Wcomma - Failed
-- Performing Test FLAG_SUPPORTED_Wdoublepromotion
-- Performing Test FLAG_SUPPORTED_Wdoublepromotion - Success
-- Performing Test FLAG_SUPPORTED_Wparentheses
-- Performing Test FLAG_SUPPORTED_Wparentheses - Success
-- Performing Test FLAG_SUPPORTED_Wformatoverflow
-- Performing Test FLAG_SUPPORTED_Wformatoverflow - Failed
-- Performing Test FLAG_SUPPORTED_Wunusedmacros
-- Performing Test FLAG_SUPPORTED_Wunusedmacros - Success
-- Performing Test FLAG_SUPPORTED_Wmissingvariabledeclarations
-- Performing Test FLAG_SUPPORTED_Wmissingvariabledeclarations - Failed
-- Performing Test FLAG_SUPPORTED_Wusedbutmarkedunused
-- Performing Test FLAG_SUPPORTED_Wusedbutmarkedunused - Failed
-- Performing Test FLAG_SUPPORTED_Wswitchenum
-- Performing Test FLAG_SUPPORTED_Wswitchenum - Success
-- Performing Test FLAG_SUPPORTED_fvisibilityhidden
-- Performing Test FLAG_SUPPORTED_fvisibilityhidden - Success
-- Using Erlang OTP: /usr/local/lib/erlang - found OTP version 21
-- Using erl_interface version: /usr/local/lib/erlang/lib/erl_interface-3.11
-- Using erts version: erts-10.3
ei
-- Configuring done
-- Generating done
-- Build files have been written to: /app/_cmake

Scanning dependencies of target cjson-static
[  1%] Building C object src/allonet/lib/cJSON/CMakeFiles/cjson-static.dir/cJSON.c.o
[  3%] Linking C static library libcjson.a
[  3%] Built target cjson-static
Scanning dependencies of target enet
[  4%] Building C object src/allonet/lib/enet/CMakeFiles/enet.dir/callbacks.c.o
[  6%] Building C object src/allonet/lib/enet/CMakeFiles/enet.dir/compress.c.o
[  7%] Building C object src/allonet/lib/enet/CMakeFiles/enet.dir/host.c.o
[  9%] Building C object src/allonet/lib/enet/CMakeFiles/enet.dir/list.c.o
[ 10%] Building C object src/allonet/lib/enet/CMakeFiles/enet.dir/packet.c.o
[ 12%] Building C object src/allonet/lib/enet/CMakeFiles/enet.dir/peer.c.o
[ 14%] Building C object src/allonet/lib/enet/CMakeFiles/enet.dir/protocol.c.o
[ 15%] Building C object src/allonet/lib/enet/CMakeFiles/enet.dir/unix.c.o
[ 17%] Building C object src/allonet/lib/enet/CMakeFiles/enet.dir/win32.c.o
[ 18%] Linking C static library libenet.a
[ 18%] Built target enet
Scanning dependencies of target allonet
[ 20%] Building C object src/allonet/CMakeFiles/allonet.dir/src/client.c.o
[ 21%] Building C object src/allonet/CMakeFiles/allonet.dir/src/server.c.o
[ 23%] Building C object src/allonet/CMakeFiles/allonet.dir/src/state.c.o
[ 25%] Building C object src/allonet/CMakeFiles/allonet.dir/src/util.c.o
[ 26%] Linking C shared library liballonet.so
[ 26%] Built target allonet
Scanning dependencies of target AllonetPort
[ 28%] Building C object CMakeFiles/AllonetPort.dir/src/erl_comm.c.o
[ 29%] Building C object CMakeFiles/AllonetPort.dir/src/main.c.o
/app/src/main.c: In function ‘handle_erl’:
/app/src/main.c:50:28: warning: initialization makes pointer from integer without a cast [-Wint-conversion]
         void *client_ptr = ERL_LL_UVALUE(e_client_ptr);
                            ^~~~~~~~~~~~~
/app/src/main.c:73:28: warning: initialization makes pointer from integer without a cast [-Wint-conversion]
         void *client_ptr = ERL_LL_UVALUE(e_client_ptr);
                            ^~~~~~~~~~~~~
/app/src/main.c: In function ‘clients_changed’:
/app/src/main.c:108:88: warning: passing argument 1 of ‘erl_mk_ulonglong’ makes integer from pointer without a cast [-Wint-conversion]
         scoped_comp ETERM *msg = erl_format("{client_connected, ~w}", erl_mk_ulonglong(added));
                                                                                        ^~~~~
In file included from /app/src/main.c:2:0:
/usr/local/lib/erlang/usr/include/erl_interface.h:394:8: note: expected ‘long long unsigned int’ but argument is of type ‘alloserver_client * {aka struct alloserver_client *}’
 ETERM *erl_mk_ulonglong(unsigned long long);
        ^~~~~~~~~~~~~~~~
/app/src/main.c:111:91: warning: passing argument 1 of ‘erl_mk_ulonglong’ makes integer from pointer without a cast [-Wint-conversion]
         scoped_comp ETERM *msg = erl_format("{client_disconnected, ~w}", erl_mk_ulonglong(removed));
                                                                                           ^~~~~~~
In file included from /app/src/main.c:2:0:
/usr/local/lib/erlang/usr/include/erl_interface.h:394:8: note: expected ‘long long unsigned int’ but argument is of type ‘alloserver_client * {aka struct alloserver_client *}’
 ETERM *erl_mk_ulonglong(unsigned long long);
        ^~~~~~~~~~~~~~~~
/app/src/main.c: In function ‘client_sent’:
/app/src/main.c:118:83: warning: passing argument 1 of ‘erl_mk_ulonglong’ makes integer from pointer without a cast [-Wint-conversion]
     scoped_comp ETERM *msg = erl_format("{client_sent, ~w, ~w}", erl_mk_ulonglong(client), erl_mk_binary((const char*)data, data_length));
                                                                                   ^~~~~~
In file included from /app/src/main.c:2:0:
/usr/local/lib/erlang/usr/include/erl_interface.h:394:8: note: expected ‘long long unsigned int’ but argument is of type ‘alloserver_client * {aka struct alloserver_client *}’
 ETERM *erl_mk_ulonglong(unsigned long long);
        ^~~~~~~~~~~~~~~~
[ 31%] Linking C executable ../priv/AllonetPort
/usr/local/lib/erlang/usr/lib/liberl_interface.a(erl_eterm.o): In function `erl_atom_ptr_latin1':
/usr/src/otp_src_21.3/lib/erl_interface/src/legacy/erl_eterm.c:171: undefined reference to `utf8_to_latin1'
/usr/src/otp_src_21.3/lib/erl_interface/src/legacy/erl_eterm.c:181: undefined reference to `utf8_to_latin1'
/usr/local/lib/erlang/usr/lib/liberl_interface.a(erl_eterm.o): In function `erl_atom_ptr_utf8':
/usr/src/otp_src_21.3/lib/erl_interface/src/legacy/erl_eterm.c:192: undefined reference to `latin1_to_utf8'
/usr/src/otp_src_21.3/lib/erl_interface/src/legacy/erl_eterm.c:198: undefined reference to `latin1_to_utf8'
/usr/local/lib/erlang/usr/lib/liberl_interface.a(erl_eterm.o): In function `erl_mk_atom':
/usr/src/otp_src_21.3/lib/erl_interface/src/legacy/erl_eterm.c:161: undefined reference to `__erl_errno_place'
/usr/local/lib/erlang/usr/lib/liberl_interface.a(erl_eterm.o): In function `erl_mk_pid_helper':
/usr/src/otp_src_21.3/lib/erl_interface/src/legacy/erl_eterm.c:302: undefined reference to `ei_internal_use_r9_pids_ports'
/usr/local/lib/erlang/usr/lib/liberl_interface.a(erl_eterm.o): In function `erl_mk_pid':
/usr/src/otp_src_21.3/lib/erl_interface/src/legacy/erl_eterm.c:291: undefined reference to `__erl_errno_place'
/usr/local/lib/erlang/usr/lib/liberl_interface.a(erl_eterm.o): In function `erl_mk_port_helper':
/usr/src/otp_src_21.3/lib/erl_interface/src/legacy/erl_eterm.c:337: undefined reference to `ei_internal_use_r9_pids_ports'
/usr/local/lib/erlang/usr/lib/liberl_interface.a(erl_eterm.o): In function `erl_mk_port':
/usr/src/otp_src_21.3/lib/erl_interface/src/legacy/erl_eterm.c:328: undefined reference to `__erl_errno_place'
/usr/local/lib/erlang/usr/lib/liberl_interface.a(erl_eterm.o): In function `__erl_mk_reference':
/usr/src/otp_src_21.3/lib/erl_interface/src/legacy/erl_eterm.c:364: undefined reference to `__erl_errno_place'
/usr/local/lib/erlang/usr/lib/liberl_interface.a(erl_eterm.o): In function `erl_mk_var':
/usr/src/otp_src_21.3/lib/erl_interface/src/legacy/erl_eterm.c:608: undefined reference to `__erl_errno_place'
/usr/local/lib/erlang/usr/lib/liberl_interface.a(erl_eterm.o): In function `erl_copy_term':
/usr/src/otp_src_21.3/lib/erl_interface/src/legacy/erl_eterm.c:913: undefined reference to `__erl_errno_place'
/usr/local/lib/erlang/usr/lib/liberl_interface.a(erl_eterm.o): In function `erl_init':
/usr/src/otp_src_21.3/lib/erl_interface/src/legacy/erl_eterm.c:68: undefined reference to `ei_init'
/usr/local/lib/erlang/usr/lib/liberl_interface.a(erl_eterm.o): In function `erl_set_compat_rel':
/usr/src/otp_src_21.3/lib/erl_interface/src/legacy/erl_eterm.c:73: undefined reference to `ei_set_compat_rel'
/usr/local/lib/erlang/usr/lib/liberl_interface.a(erl_malloc.o): In function `erl_malloc':
/usr/src/otp_src_21.3/lib/erl_interface/src/legacy/erl_malloc.c:234: undefined reference to `ei_malloc'
/usr/local/lib/erlang/usr/lib/liberl_interface.a(erl_malloc.o): In function `erl_realloc':
/usr/src/otp_src_21.3/lib/erl_interface/src/legacy/erl_malloc.c:244: undefined reference to `ei_realloc'
/usr/local/lib/erlang/usr/lib/liberl_interface.a(erl_malloc.o): In function `erl_free':
/usr/src/otp_src_21.3/lib/erl_interface/src/legacy/erl_malloc.c:251: undefined reference to `ei_free'
/usr/local/lib/erlang/usr/lib/liberl_interface.a(erl_marshal.o): In function `encode_atom':
/usr/src/otp_src_21.3/lib/erl_interface/src/legacy/erl_marshal.c:177: undefined reference to `ei_encode_atom_len_as'
/usr/src/otp_src_21.3/lib/erl_interface/src/legacy/erl_marshal.c:181: undefined reference to `ei_encode_atom_len_as'
/usr/local/lib/erlang/usr/lib/liberl_interface.a(erl_marshal.o): In function `erl_term_len_helper':
/usr/src/otp_src_21.3/lib/erl_interface/src/legacy/erl_marshal.c:665: undefined reference to `__erl_errno_place'
/usr/local/lib/erlang/usr/lib/liberl_interface.a(erl_marshal.o): In function `read_atom':
/usr/src/otp_src_21.3/lib/erl_interface/src/legacy/erl_marshal.c:698: undefined reference to `ei_decode_atom_as'
/usr/local/lib/erlang/usr/lib/liberl_interface.a(erl_marshal.o): In function `erl_decode_it':
/usr/src/otp_src_21.3/lib/erl_interface/src/legacy/erl_marshal.c:1029: undefined reference to `ei_decode_double'
/usr/local/lib/erlang/usr/lib/liberl_interface.a(erl_marshal.o): In function `cmp_small_float':
/usr/src/otp_src_21.3/lib/erl_interface/src/legacy/erl_marshal.c:1952: undefined reference to `ei_decode_long'
/usr/src/otp_src_21.3/lib/erl_interface/src/legacy/erl_marshal.c:1953: undefined reference to `ei_decode_double'
/usr/local/lib/erlang/usr/lib/liberl_interface.a(erl_marshal.o): In function `cmp_small_big':
/usr/src/otp_src_21.3/lib/erl_interface/src/legacy/erl_marshal.c:1910: undefined reference to `ei_decode_long'
/usr/src/otp_src_21.3/lib/erl_interface/src/legacy/erl_marshal.c:1912: undefined reference to `ei_get_type'
/usr/src/otp_src_21.3/lib/erl_interface/src/legacy/erl_marshal.c:1915: undefined reference to `ei_alloc_big'
/usr/src/otp_src_21.3/lib/erl_interface/src/legacy/erl_marshal.c:1916: undefined reference to `ei_small_to_big'
/usr/src/otp_src_21.3/lib/erl_interface/src/legacy/erl_marshal.c:1921: undefined reference to `ei_alloc_big'
/usr/src/otp_src_21.3/lib/erl_interface/src/legacy/erl_marshal.c:1926: undefined reference to `ei_decode_big'
/usr/src/otp_src_21.3/lib/erl_interface/src/legacy/erl_marshal.c:1932: undefined reference to `ei_big_comp'
/usr/src/otp_src_21.3/lib/erl_interface/src/legacy/erl_marshal.c:1934: undefined reference to `ei_free_big'
/usr/src/otp_src_21.3/lib/erl_interface/src/legacy/erl_marshal.c:1935: undefined reference to `ei_free_big'
/usr/src/otp_src_21.3/lib/erl_interface/src/legacy/erl_marshal.c:1927: undefined reference to `ei_free_big'
/usr/src/otp_src_21.3/lib/erl_interface/src/legacy/erl_marshal.c:1928: undefined reference to `ei_free_big'
/usr/src/otp_src_21.3/lib/erl_interface/src/legacy/erl_marshal.c:1922: undefined reference to `ei_free_big'
/usr/local/lib/erlang/usr/lib/liberl_interface.a(erl_marshal.o):/usr/src/otp_src_21.3/lib/erl_interface/src/legacy/erl_marshal.c:1917: more undefined references to `ei_free_big' follow
/usr/local/lib/erlang/usr/lib/liberl_interface.a(erl_marshal.o): In function `cmp_float_big':
/usr/src/otp_src_21.3/lib/erl_interface/src/legacy/erl_marshal.c:1974: undefined reference to `ei_decode_double'
/usr/src/otp_src_21.3/lib/erl_interface/src/legacy/erl_marshal.c:1976: undefined reference to `ei_get_type'
/usr/src/otp_src_21.3/lib/erl_interface/src/legacy/erl_marshal.c:1977: undefined reference to `ei_alloc_big'
/usr/src/otp_src_21.3/lib/erl_interface/src/legacy/erl_marshal.c:1978: undefined reference to `ei_decode_big'
/usr/src/otp_src_21.3/lib/erl_interface/src/legacy/erl_marshal.c:1981: undefined reference to `ei_big_to_double'
/usr/src/otp_src_21.3/lib/erl_interface/src/legacy/erl_marshal.c:1988: undefined reference to `ei_free_big'
/usr/src/otp_src_21.3/lib/erl_interface/src/legacy/erl_marshal.c:1984: undefined reference to `ei_free_big'
/usr/local/lib/erlang/usr/lib/liberl_interface.a(erl_marshal.o): In function `cmp_exe2':
/usr/src/otp_src_21.3/lib/erl_interface/src/legacy/erl_marshal.c:1845: undefined reference to `ei_decode_double'
/usr/src/otp_src_21.3/lib/erl_interface/src/legacy/erl_marshal.c:1849: undefined reference to `ei_decode_double'
/usr/src/otp_src_21.3/lib/erl_interface/src/legacy/erl_marshal.c:1740: undefined reference to `ei_decode_pid'
/usr/src/otp_src_21.3/lib/erl_interface/src/legacy/erl_marshal.c:1773: undefined reference to `ei_decode_port'
/usr/src/otp_src_21.3/lib/erl_interface/src/legacy/erl_marshal.c:1774: undefined reference to `ei_decode_port'
/usr/src/otp_src_21.3/lib/erl_interface/src/legacy/erl_marshal.c:1741: undefined reference to `ei_decode_pid'
/usr/local/lib/erlang/usr/lib/liberl_interface.a(erl_marshal.o): In function `cmp_big_big':
/usr/src/otp_src_21.3/lib/erl_interface/src/legacy/erl_marshal.c:2043: undefined reference to `ei_get_type'
/usr/src/otp_src_21.3/lib/erl_interface/src/legacy/erl_marshal.c:2044: undefined reference to `ei_get_type'
/usr/src/otp_src_21.3/lib/erl_interface/src/legacy/erl_marshal.c:2046: undefined reference to `ei_alloc_big'
/usr/src/otp_src_21.3/lib/erl_interface/src/legacy/erl_marshal.c:2047: undefined reference to `ei_alloc_big'
/usr/src/otp_src_21.3/lib/erl_interface/src/legacy/erl_marshal.c:2052: undefined reference to `ei_decode_big'
/usr/src/otp_src_21.3/lib/erl_interface/src/legacy/erl_marshal.c:2053: undefined reference to `ei_decode_big'
/usr/src/otp_src_21.3/lib/erl_interface/src/legacy/erl_marshal.c:2055: undefined reference to `ei_big_comp'
/usr/src/otp_src_21.3/lib/erl_interface/src/legacy/erl_marshal.c:2057: undefined reference to `ei_free_big'
/usr/src/otp_src_21.3/lib/erl_interface/src/legacy/erl_marshal.c:2058: undefined reference to `ei_free_big'
/usr/local/lib/erlang/usr/lib/liberl_interface.a(erl_marshal.o): In function `cmp_float_float':
/usr/src/otp_src_21.3/lib/erl_interface/src/legacy/erl_marshal.c:2025: undefined reference to `ei_decode_double'
/usr/src/otp_src_21.3/lib/erl_interface/src/legacy/erl_marshal.c:2026: undefined reference to `ei_decode_double'
/usr/local/lib/erlang/usr/lib/liberl_interface.a(erl_marshal.o): In function `cmp_small_small':
/usr/src/otp_src_21.3/lib/erl_interface/src/legacy/erl_marshal.c:2002: undefined reference to `ei_decode_long'
/usr/src/otp_src_21.3/lib/erl_interface/src/legacy/erl_marshal.c:2006: undefined reference to `ei_decode_long'
/usr/local/lib/erlang/usr/lib/liberl_interface.a(erl_marshal.o): In function `cmp_big_big':
/usr/src/otp_src_21.3/lib/erl_interface/src/legacy/erl_marshal.c:2048: undefined reference to `ei_free_big'
/usr/local/lib/erlang/usr/lib/liberl_interface.a(erl_fix_alloc.o): In function `erl_init_eterm_alloc':
/usr/src/otp_src_21.3/lib/erl_interface/src/legacy/erl_fix_alloc.c:73: undefined reference to `ei_mutex_create'
/usr/src/otp_src_21.3/lib/erl_interface/src/legacy/erl_fix_alloc.c:86: undefined reference to `__erl_errno_place'
/usr/local/lib/erlang/usr/lib/liberl_interface.a(erl_fix_alloc.o): In function `erl_eterm_alloc':
/usr/src/otp_src_21.3/lib/erl_interface/src/legacy/erl_fix_alloc.c:104: undefined reference to `ei_mutex_lock'
/usr/src/otp_src_21.3/lib/erl_interface/src/legacy/erl_fix_alloc.c:122: undefined reference to `ei_mutex_unlock'
/usr/src/otp_src_21.3/lib/erl_interface/src/legacy/erl_fix_alloc.c:112: undefined reference to `__erl_errno_place'
/usr/src/otp_src_21.3/lib/erl_interface/src/legacy/erl_fix_alloc.c:114: undefined reference to `ei_mutex_unlock'
/usr/local/lib/erlang/usr/lib/liberl_interface.a(erl_fix_alloc.o): In function `erl_eterm_free':
/usr/src/otp_src_21.3/lib/erl_interface/src/legacy/erl_fix_alloc.c:148: undefined reference to `ei_mutex_lock'
/usr/local/lib/erlang/usr/lib/liberl_interface.a(erl_fix_alloc.o): In function `erl_eterm_release':
/usr/src/otp_src_21.3/lib/erl_interface/src/legacy/erl_fix_alloc.c:169: undefined reference to `ei_mutex_lock'
/usr/local/lib/erlang/usr/lib/liberl_interface.a(erl_fix_alloc.o): In function `erl_eterm_free':
/usr/src/otp_src_21.3/lib/erl_interface/src/legacy/erl_fix_alloc.c:156: undefined reference to `ei_mutex_unlock'
/usr/local/lib/erlang/usr/lib/liberl_interface.a(erl_fix_alloc.o): In function `erl_eterm_release':
/usr/src/otp_src_21.3/lib/erl_interface/src/legacy/erl_fix_alloc.c:180: undefined reference to `ei_mutex_unlock'
collect2: error: ld returned 1 exit status
CMakeFiles/AllonetPort.dir/build.make:123: recipe for target '../priv/AllonetPort' failed
make[2]: *** [../priv/AllonetPort] Error 1
CMakeFiles/Makefile2:69: recipe for target 'CMakeFiles/AllonetPort.dir/all' failed
make[1]: *** [CMakeFiles/AllonetPort.dir/all] Error 2
Makefile:127: recipe for target 'all' failed
make: *** [all] Error 2

Compiling 7 files (.ex)
Generated allo_placeserv app
Removing intermediate container d1de823dee6a
 ---> f21f5901f7d1
Step 8/8 : CMD ls -laR && mix run --no-halt
 ---> Running in 35d83b3d0709
Removing intermediate container 35d83b3d0709
 ---> 77b13788eb5a
Successfully built 77b13788eb5a
nevyn@nevyns-place ~/alloplace> 

@nevyn
Copy link
Member Author

nevyn commented Mar 17, 2019

utf8_to_latin1 is in liberl_interface.a according to nm.

Libs are in /usr/local/lib/erlang/usr/lib

Verbose linking:

/usr/bin/cmake -E cmake_link_script CMakeFiles/AllonetPort.dir/link.txt --verbose=1
/usr/bin/cc     CMakeFiles/AllonetPort.dir/src/erl_comm.c.o CMakeFiles/AllonetPort.dir/src/main.c.o  -o ../priv/AllonetPort  -L/usr/local/lib/erlang/usr/lib -Wl,-rpath,/usr/local/lib/erlang/usr/lib:/app/_cmake/src/allonet -rdynamic -lei -lerl_interface src/allonet/liballonet.so src/allonet/lib/enet/libenet.a src/allonet/lib/cJSON/libcjson.a -lm 
/usr/local/lib/erlang/usr/lib/liberl_interface.a(erl_eterm.o): In function `erl_atom_ptr_latin1':
/usr/src/otp_src_21.3/lib/erl_interface/src/legacy/erl_eterm.c:171: undefined reference to `utf8_to_latin1'
/usr/src/otp_src_21.3/lib/erl_interface/src/legacy/erl_eterm.c:181: undefined reference to `utf8_to_latin1'
/usr/local/lib/erlang/usr/lib/liberl_interface.a(erl_eterm.o): In function `erl_atom_ptr_utf8':

@nevyn
Copy link
Member Author

nevyn commented Mar 18, 2019

OK linking must be in the correct order: -lerl_interface and THEN -lei. Now I get:

root@bc45808e5fc1:/app/_cmake# /usr/bin/cc     CMakeFiles/AllonetPort.dir/src/erl_comm.c.o CMakeFiles/AllonetPort.dir/src/main.c.o  -o ../priv/AllonetPort  -L/usr/local/lib/erlang/usr/lib -Wl,-rpath,/usr/local/lib/erlang/usr/lib:/app/_cmake/src/allonet -rdynamic -lerl_interface -lei src/allonet/liballonet.so src/allonet/lib/enet/libenet.a src/allonet/lib/cJSON/libcjson.a -lm 
/usr/local/lib/erlang/usr/lib/libei.a(ei_pthreads.o): In function `__erl_errno_place':
/usr/src/otp_src_21.3/lib/erl_interface/src/misc/ei_pthreads.c:195: undefined reference to `pthread_once'
/usr/src/otp_src_21.3/lib/erl_interface/src/misc/ei_pthreads.c:201: undefined reference to `pthread_getspecific'
/usr/src/otp_src_21.3/lib/erl_interface/src/misc/ei_pthreads.c:211: undefined reference to `pthread_setspecific'
/usr/src/otp_src_21.3/lib/erl_interface/src/misc/ei_pthreads.c:211: undefined reference to `pthread_getspecific'
/usr/local/lib/erlang/usr/lib/libei.a(ei_pthreads.o): In function `erl_errno_key_alloc':
/usr/src/otp_src_21.3/lib/erl_interface/src/misc/ei_pthreads.c:172: undefined reference to `pthread_key_create'
/usr/local/lib/erlang/usr/lib/libei.a(ei_pthreads.o): In function `ei_m_trylock':
/usr/src/otp_src_21.3/lib/erl_interface/src/misc/ei_pthreads.c:139: undefined reference to `pthread_mutex_trylock'

@nevyn
Copy link
Member Author

nevyn commented Mar 18, 2019

And ei needs pthread on linux. Container now builds. Now for deployment.

@nevyn
Copy link
Member Author

nevyn commented Mar 18, 2019

run: sudo docker run -d -p 21337:21337/udp 887381407260

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

1 participant