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

Build failed raspbian stretch #208

Closed
sushrut91 opened this issue Jul 23, 2018 · 7 comments
Closed

Build failed raspbian stretch #208

sushrut91 opened this issue Jul 23, 2018 · 7 comments

Comments

@sushrut91
Copy link

I am getting a compilation error with the CoAP module when I try to compile the version 2.1.0 on Raspbian stretch running on Raspberry pi model B V1.2. Any help is highly appreciated. Thanks

$ sudo make
make[1]: Entering directory '/home/pi/emq-relx-2.1.0/deps/emqttd'
make[2]: Entering directory '/home/pi/emq-relx-2.1.0/deps/cuttlefish'
./rebar get-deps
==> getopt (get-deps)
==> goldrush (get-deps)
==> lager (get-deps)
==> neotoma (get-deps)
==> cuttlefish (get-deps)
./rebar compile
==> getopt (compile)
==> goldrush (compile)
==> lager (compile)
==> neotoma (compile)
==> cuttlefish (compile)
==> getopt (escriptize)
==> goldrush (escriptize)
==> lager (escriptize)
==> neotoma (escriptize)
==> cuttlefish (escriptize)
./rebar skip_deps=true escriptize
==> cuttlefish (escriptize)
make[2]: Leaving directory '/home/pi/emq-relx-2.1.0/deps/cuttlefish'
make[2]: Entering directory '/home/pi/emq-relx-2.1.0/deps/goldrush'
make[2]: Leaving directory '/home/pi/emq-relx-2.1.0/deps/goldrush'
make[2]: Entering directory '/home/pi/emq-relx-2.1.0/deps/gproc'
make[2]: Leaving directory '/home/pi/emq-relx-2.1.0/deps/gproc'
make[2]: Entering directory '/home/pi/emq-relx-2.1.0/deps/lager'
make[2]: Leaving directory '/home/pi/emq-relx-2.1.0/deps/lager'
make[2]: Entering directory '/home/pi/emq-relx-2.1.0/deps/esockd'
make[3]: Entering directory '/home/pi/emq-relx-2.1.0/deps/gen_logger'
make[3]: Leaving directory '/home/pi/emq-relx-2.1.0/deps/gen_logger'
 GEN    rebar.config
make[2]: Leaving directory '/home/pi/emq-relx-2.1.0/deps/esockd'
make[2]: Entering directory '/home/pi/emq-relx-2.1.0/deps/ekka'
make[3]: Entering directory '/home/pi/emq-relx-2.1.0/deps/jsx'
make[3]: Leaving directory '/home/pi/emq-relx-2.1.0/deps/jsx'
make[2]: Leaving directory '/home/pi/emq-relx-2.1.0/deps/ekka'
make[2]: Entering directory '/home/pi/emq-relx-2.1.0/deps/mochiweb'
make[2]: Leaving directory '/home/pi/emq-relx-2.1.0/deps/mochiweb'
make[2]: Entering directory '/home/pi/emq-relx-2.1.0/deps/pbkdf2'
make[2]: Leaving directory '/home/pi/emq-relx-2.1.0/deps/pbkdf2'
make[2]: Entering directory '/home/pi/emq-relx-2.1.0/deps/lager_syslog'
make[3]: Entering directory '/home/pi/emq-relx-2.1.0/deps/syslog'
make -f c_src/Makefile.erlang.mk
make[4]: Entering directory '/home/pi/emq-relx-2.1.0/deps/syslog'
make[4]: Nothing to be done for 'all'.
make[4]: Leaving directory '/home/pi/emq-relx-2.1.0/deps/syslog'
make[3]: Leaving directory '/home/pi/emq-relx-2.1.0/deps/syslog'
make[2]: Leaving directory '/home/pi/emq-relx-2.1.0/deps/lager_syslog'
make[2]: Entering directory '/home/pi/emq-relx-2.1.0/deps/bcrypt'
make -f c_src/Makefile.erlang.mk
make[3]: Entering directory '/home/pi/emq-relx-2.1.0/deps/bcrypt'
make[3]: Nothing to be done for 'all'.
make[3]: Leaving directory '/home/pi/emq-relx-2.1.0/deps/bcrypt'
make[2]: Leaving directory '/home/pi/emq-relx-2.1.0/deps/bcrypt'
make[2]: Entering directory '/home/pi/emq-relx-2.1.0/deps/clique'
make[2]: Leaving directory '/home/pi/emq-relx-2.1.0/deps/clique'
 GEN    rebar.config
make[1]: Leaving directory '/home/pi/emq-relx-2.1.0/deps/emqttd'
make[1]: Entering directory '/home/pi/emq-relx-2.1.0/deps/emq_modules'
make[1]: Leaving directory '/home/pi/emq-relx-2.1.0/deps/emq_modules'
make[1]: Entering directory '/home/pi/emq-relx-2.1.0/deps/emq_dashboard'
 GEN    rebar.config
make[1]: Leaving directory '/home/pi/emq-relx-2.1.0/deps/emq_dashboard'
make[1]: Entering directory '/home/pi/emq-relx-2.1.0/deps/emq_retainer'
make[1]: Leaving directory '/home/pi/emq-relx-2.1.0/deps/emq_retainer'
make[1]: Entering directory '/home/pi/emq-relx-2.1.0/deps/emq_recon'
make[2]: Entering directory '/home/pi/emq-relx-2.1.0/deps/recon'
make[2]: Leaving directory '/home/pi/emq-relx-2.1.0/deps/recon'
 GEN    rebar.config
make[1]: Leaving directory '/home/pi/emq-relx-2.1.0/deps/emq_recon'
make[1]: Entering directory '/home/pi/emq-relx-2.1.0/deps/emq_reloader'
 GEN    rebar.config
make[1]: Leaving directory '/home/pi/emq-relx-2.1.0/deps/emq_reloader'
make[1]: Entering directory '/home/pi/emq-relx-2.1.0/deps/emq_auth_clientid'
make[1]: Leaving directory '/home/pi/emq-relx-2.1.0/deps/emq_auth_clientid'
make[1]: Entering directory '/home/pi/emq-relx-2.1.0/deps/emq_auth_username'
make[1]: Leaving directory '/home/pi/emq-relx-2.1.0/deps/emq_auth_username'
make[1]: Entering directory '/home/pi/emq-relx-2.1.0/deps/emq_auth_ldap'
make[2]: Entering directory '/home/pi/emq-relx-2.1.0/deps/ecpool'
make[2]: Leaving directory '/home/pi/emq-relx-2.1.0/deps/ecpool'
 GEN    rebar.config
make[1]: Leaving directory '/home/pi/emq-relx-2.1.0/deps/emq_auth_ldap'
make[1]: Entering directory '/home/pi/emq-relx-2.1.0/deps/emq_auth_http'
 GEN    rebar.config
make[1]: Leaving directory '/home/pi/emq-relx-2.1.0/deps/emq_auth_http'
make[1]: Entering directory '/home/pi/emq-relx-2.1.0/deps/emq_auth_mysql'
make[2]: Entering directory '/home/pi/emq-relx-2.1.0/deps/mysql'
make[2]: Leaving directory '/home/pi/emq-relx-2.1.0/deps/mysql'
 GEN    rebar.config
make[1]: Leaving directory '/home/pi/emq-relx-2.1.0/deps/emq_auth_mysql'
make[1]: Entering directory '/home/pi/emq-relx-2.1.0/deps/emq_auth_pgsql'
make[2]: Entering directory '/home/pi/emq-relx-2.1.0/deps/epgsql'
make[2]: Leaving directory '/home/pi/emq-relx-2.1.0/deps/epgsql'
 GEN    rebar.config
make[1]: Leaving directory '/home/pi/emq-relx-2.1.0/deps/emq_auth_pgsql'
make[1]: Entering directory '/home/pi/emq-relx-2.1.0/deps/emq_auth_redis'
make[2]: Entering directory '/home/pi/emq-relx-2.1.0/deps/eredis'
sed "s/{{EXTRA_OPTS}}/ {d,namespaced_types},/" Emakefile.src > Emakefile
erl -noinput -eval 'up_to_date = make:all()' -s erlang halt
make[2]: Leaving directory '/home/pi/emq-relx-2.1.0/deps/eredis'
 GEN    rebar.config
make[1]: Leaving directory '/home/pi/emq-relx-2.1.0/deps/emq_auth_redis'
make[1]: Entering directory '/home/pi/emq-relx-2.1.0/deps/emq_auth_mongo'
make[2]: Entering directory '/home/pi/emq-relx-2.1.0/deps/mongodb'
make[3]: Entering directory '/home/pi/emq-relx-2.1.0/deps/bson'
make[3]: Leaving directory '/home/pi/emq-relx-2.1.0/deps/bson'
make[3]: Entering directory '/home/pi/emq-relx-2.1.0/deps/poolboy'
make[3]: Leaving directory '/home/pi/emq-relx-2.1.0/deps/poolboy'
make[2]: Leaving directory '/home/pi/emq-relx-2.1.0/deps/mongodb'
 GEN    rebar.config
make[1]: Leaving directory '/home/pi/emq-relx-2.1.0/deps/emq_auth_mongo'
make[1]: Entering directory '/home/pi/emq-relx-2.1.0/deps/emq_sn'
make[1]: Leaving directory '/home/pi/emq-relx-2.1.0/deps/emq_sn'
make[1]: Entering directory '/home/pi/emq-relx-2.1.0/deps/emq_coap'
make[2]: Entering directory '/home/pi/emq-relx-2.1.0/deps/gen_coap'
 XYRL   core_link_scanner.xrl core_link_parser.yrl
Compiler function leex:compile/3 failed:
{undef,[{leex,compile,
              ["/home/pi/emq-relx-2.1.0/deps/gen_coap/src/core_link_scanner",
               "/home/pi/emq-relx-2.1.0/deps/gen_coap/src/core_link_scanner",
               {options,[],"/home/pi/emq-relx-2.1.0/deps/gen_coap/src",
                        undefined,[],1,true,999,[],[],
                        "/home/pi/emq-relx-2.1.0/deps/gen_coap"}],
              []},
        {erl_compile,compile_file,4,[{file,"erl_compile.erl"},{line,304}]},
        {erl_compile,compile3,3,[{file,"erl_compile.erl"},{line,285}]},
        {erl_compile,'-compiler_runner/1-fun-0-',1,
                     [{file,"erl_compile.erl"},{line,92}]}]}
make[2]: *** No rule to make target 'gen_coap.d'.  Stop.
make[2]: Leaving directory '/home/pi/emq-relx-2.1.0/deps/gen_coap'
../../erlang.mk:312: recipe for target 'deps' failed
make[1]: *** [deps] Error 2
make[1]: Leaving directory '/home/pi/emq-relx-2.1.0/deps/emq_coap'
erlang.mk:310: recipe for target 'deps' failed
make: *** [deps] Error 2

@gilbertwong96
Copy link
Contributor

It is the compile error. Which erlang/otp version do you use?

@sushrut91
Copy link
Author

Erlang/OTP 19 [erts-8.2.1] [source] [smp:4:4] [async-threads:10] [kernel-poll:false]

Eshell V8.2.1 (abort with ^G)

@gilbertwong96
Copy link
Contributor

gen_coap needs the leex module in order to compile. Normally this module is installed with Erlang in a complete installation. But it was wrong on Raspberry pi. So I recommend you to compile and make install erlang/otp 20 yourself on your Raspberry pi and compile master branch of emq-relx . I'm not familiar with Raspberry pi. Maybe it could help you.

@gilbertwong96
Copy link
Contributor

gilbertwong96 commented Jul 24, 2018

@sushrut91, The build failure has been fixed after merging this PR https://github.com/emqx/emqx-coap/pull/83 Now,it should be ok. Please try again.

@sushrut91
Copy link
Author

Thanks for your help, with Erlang/OTP 20 the compilation error went away however I am getting this error when I try to run the /bin/emqttd

sudo ./emqttd console
Argument '-smp disable' not supported. Use "+S 1" instead.
Usage: erl [-version] [-sname NAME | -name NAME] [-noshell] [-noinput] [-env VAR VALUE] [-compile file ...] [-smp [auto|enable]] [-make] [-man [manopts] MANPAGE] [-x] [-emu_args] [-start_epmd BOOLEAN] [-args_file FILENAME] [+A THREADS] [+a SIZE] [+B[c|d|i]] [+c [BOOLEAN]] [+C MODE] [+h HEAP_SIZE_OPTION] [+K BOOLEAN] [+l] [+M<SUBSWITCH> <ARGUMENT>] [+P MAX_PROCS] [+Q MAX_PORTS] [+R COMPAT_REL] [+r] [+rg READER_GROUPS_LIMIT] [+s SCHEDULER_OPTION] [+S NO_SCHEDULERS:NO_SCHEDULERS_ONLINE] [+SP PERCENTAGE_SCHEDULERS:PERCENTAGE_SCHEDULERS_ONLINE] [+T LEVEL] [+V] [+v] [+W<i|w|e>] [+z MISC_OPTION] [args ...]

@sushrut91 sushrut91 reopened this Jul 24, 2018
@gilbertwong96
Copy link
Contributor

Erlang/OTP 20 does not accept "-smp disable". Did you compile version 2.1.0 of emq-relx which only supported on Erlang/OTP 19 ?

If you use Erlang/OTP 20, please checkout v2.3.11 tag of emq-relx and rebuild it again.

@sushrut91
Copy link
Author

sushrut91 commented Jul 24, 2018

I switched to v2.3.11 with Erlang/OTP 20 and now things are working fine. Thanks for your help !

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

2 participants