Thu Aug 10 10:46:29 CEST 2006
Joel Reymont writes:
> This might turn out to be simple than I thought sigaltstack-wise but
> I'm getting the following error.
> My poking around reveals that ERTS_ALC_T_HIPE gets generated from ./
> erts/emulator/beam/erl_alloc.types by make_alloc_types (a perl
> script). I enabled smp, threads and hipe during the configure step
> but the same error happens if I just enable hipe.
> In erl_alloc.types the generation of ERTS_ALC_T_HIPE is conditional
> on +hipe. Does it mean something is not getting defined somewhere
> during configure?
> What do I need to enable/disable to generate ERTS_ALC_T_HIPE?
> Thanks, Joel
> cd erts/emulator && ERL_TOP=/Users/joelr/work/Erlang/otp_src_R11B-0
> make generate depend
> make -f i386-apple-darwin8.7.1/Makefile generate
> gcc -mdynamic-no-pic -g -O3 -I/Users/joelr/work/Erlang/
> otp_src_R11B-0/erts/i386-apple-darwin8.7.1 -no-cpp-precomp -
> DHAVE_CONFIG_H -Wall -Wstrict-prototypes -Wmissing-prototypes -
> DUSE_THREADS -D_THREAD_SAFE -D_REENTRANT -Ibeam -Isys/unix -Isys/
> common -Ii386-apple-darwin8.7.1/opt -Ii386-apple-darwin8.7.1 -Izlib -
> Ihipe -I../include/internal -I../include/internal/i386-apple-
> darwin8.7.1 -c hipe/hipe_mkliterals.c -o /Users/joelr/work/Erlang/
> In file included from beam/erl_process.h:39,
> from beam/beam_load.h:23,
> from beam/export.h:66,
> from beam/global.h:29,
> from hipe/hipe_mkliterals.c:14:
> hipe/hipe_process.h: In function 'hipe_delete_process':
> hipe/hipe_process.h:64: error: 'ERTS_ALC_T_HIPE' undeclared (first
> use in this function)
> hipe/hipe_process.h:64: error: (Each undeclared identifier is
> reported only oncehipe/hipe_process.h:64: error: for each function it
> appears in.)
You have an inconsistent build. ERTS_ALC_T_HIPE gets defined if HiPE
is enabled, and erl_process.h only includes hipe_process.h if HiPE is
enabled. So ERTS_ALC_T_HIPE being undefined there should be impossible.
My guess is that you started with a standard build, which didn't auto-enable
HiPE, and later did a ./configure --enable-hipe; make build in the same source
tree, which apparently failed to regenerate erl_alloc_types.h, leading to the
error. 'make clean' has historically not worked well in the Erlang/OTP sources,
so your best bet is to do the ./configure --enable-hipe; make thing in a
completely fresh source tree.
More information about the erlang-questions