[erlang-questions] open_port returns enoent even when driver init function executes correctly.
SurferJeff
surferjeff@REDACTED
Thu Jan 3 05:53:30 CET 2013
I found the recipe to build debug:
$ cd $ERL_TOP
$ rm bin/win32/erlexec.dll
$ cd erts/emulator
$ make debug
$ cd ../etc
$ make debug
And it succeeded. However, the next command in the recipe fails:
jeff@REDACTED /cygdrive/c/Users/jeff/GitHub/otp
$ make local_setup
make[1]: Entering directory `/cygdrive/c/Users/jeff/GitHub/otp/erts'
make[2]: Entering directory
`/cygdrive/c/Users/jeff/GitHub/otp/erts/start_script
s'
make[2]: Nothing to be done for `debug'.
make[2]: Leaving directory
`/cygdrive/c/Users/jeff/GitHub/otp/erts/start_scripts
'
ct_run.exe dialyzer.exe erl.ini erl_crash.dump escript.exe run_test.exe
typer.ex
e werl.exe win32
make[2]: Entering directory
`/cygdrive/c/Users/jeff/GitHub/otp/erts/start_script
s'
/usr/bin/install -c -d
/cygdrive/c/users/jeff/github/otp/erts/start_scripts/tmp
( cd /cygdrive/c/users/jeff/github/otp/erts/start_scripts/tmp && \
erlc -W -I/cygdrive/c/users/jeff/github/otp/lib/kernel/ebin
-I/cygdrive/c/use
rs/jeff/github/otp/lib/stdlib/ebin
-I/cygdrive/c/users/jeff/github/otp/lib/sasl/
ebin +no_warn_sasl +otp_build -o
/cygdrive/c/users/jeff/github/otp/bin/start.scr
ipt /cygdrive/c/users/jeff/github/otp/erts/start_scripts/start_clean.rel )
File not found:
"c:/cygdrive/c/users/jeff/github/otp/erts/start_scripts/start_cl
ean.rel"
Makefile:129: recipe for target
`/cygdrive/c/users/jeff/github/otp/bin/start.scr
ipt' failed
make[2]: *** [/cygdrive/c/users/jeff/github/otp/bin/start.script] Error 1
make[2]: Leaving directory
`/cygdrive/c/Users/jeff/GitHub/otp/erts/start_scripts
'
Makefile:69: recipe for target `local_setup' failed
make[1]: *** [local_setup] Error 2
make[1]: Leaving directory `/cygdrive/c/Users/jeff/GitHub/otp/erts'
Makefile:883: recipe for target `local_setup' failed
make: *** [local_setup] Error 2
And now my erl.exe is completely hosed:
jeff@REDACTED /cygdrive/c/Users/jeff/GitHub/otp/bin/win32
$ ./erl.exe
{(no error logger present"i)n ietr rtoerr: m"iEnrartoirn gi ni np
rdooc_ebsoost
"<,0{.b2a.d0a>r wgi,t[h{ eerxli_tp rviaml_uleo:a
d{ebra,dcahregc,k[_{feirlle__pr
reismu_llto,a3d,e[r{,fcihleec,k"_efrill_ep_rriems_ullota,d3er,[.{efrill"e},,\{"l
eirnle_,p28r3i}m]_}l,o{aidneirt.,egrelt\_"b}o,o{tl,i1n,e[,{2f8i3l}e,]"}i,n{iitn.
ite,rgle"t},_{bloionte,,178,5[}{]f}i,l{ei,n\i"ti,ngiett._ebrolo\t",}2,,{[l{ifnie
l,e7,8"5i}n]i}t,.{eirnli"t},,g{elti_nbeo,o77t2,}2]},,[{{ifniilte,,d\o"_ibnoiott.
,e3r,l[\{"f}i,l{el,i"nien,i7t7.2e}r]l}",}{,i{nliitn,ed,o73_9b}o]o}t],}3},
[{file,\"init.erl\"},{line,739}]}]}\n"
Crash dump was written to: erl_crash.dump
init terminating in do_boot ()
On Wednesday, January 2, 2013 7:26:09 PM UTC-8, SurferJeff wrote:
> I'm working through the example here:
> http://www.erlang.org/doc/tutorial/c_portdriver.html
> And I'm trying to get it to run on Windows. I reordered the code in the C
> source so that it compiles, and added a module.def file so that erlang
> actually finds and executes the driver init function.
>
> I attached a debugger. Walking back up the stack, I observe that:
> The driver init function returns correctly.
> erts_sys_ddll_call_init() returns correctly.
> do_load_driver_entry() returns ERL_DE_NO_ERROR.
> load_driver_entry() returns ERL_DE_NO_ERROR.
> erl_ddll_try_load_3 returns t = TUPLE2(hp, am_ok, ok_term); on line 417 of
> erl_bif_ddl.c.
> But the next higher call on the stack is _process_main(), which was
> compiled
> with gcc and has no debug symbols so I can't step through and figure out
> why
> the end result is:
>
> =ERROR REPORT==== 2-Jan-2013::19:14:22 ===
> Error in process <0.31.0> with exit value:
> {enoent,[{erlang,open_port,[{spawn,"example_drv"},[]],[]},{complex5,init,1,[
>
> {file,"c:/Users/jeff/code/code/port_driver/complex5.erl"},{line,19}]}]}
>
> Has anyone seen this before?
>
> If not, how do I recompile erl.exe purely with cl.exe (no gcc) so that it
> generates debug symbols? And while I'm recompiling, how do I turn off all
> optimizations? I can read basic make files, but I get lost in the
> configure
> scripts and .in and .mk files. Please take pity on a Windows programmer
> ;-)
>
>
> _______________________________________________
> erlang-questions mailing list
> erlang-questions@REDACTED
> http://erlang.org/mailman/listinfo/erlang-questions
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20130102/34e6a630/attachment.htm>
More information about the erlang-questions
mailing list