[Ecls-list] Objective achieved
Waldek Hebisch
hebisch at math.uni.wroc.pl
Sat Feb 16 14:39:04 UTC 2008
Juan Jose Garcia-Ripoll wrote:
> Sorry, I do not have a 64 bit machine and forgot to adapt the FFI
> interface. Go to src/c/arch and type "cvs update" some time later
> (between 15 minutes and half an hour). You can then continue your
> original build by going to ecl/build, typing "make -C c clean; rm -f
> ecl_min; make"
>
I get now different error:
if test -f ../CROSS-DPP ; then ../CROSS-DPP /var/tmp/hebisch/lisp/ecl-tst2/src/c/arch/ffi_x86_64.d ffi_x86_64.c ; else ./dpp /var/tmp/hebisch/lisp/ecl-tst2/src/c/arch/ffi_x86_64.d ffi_x86_64.c ; fi
dpp: /var/tmp/hebisch/lisp/ecl-tst2/src/c/arch/ffi_x86_64.d -> ffi_x86_64.c
gcc -c -I. -I/var/tmp/hebisch/lisp/ecl-tst2/build -I/var/tmp/hebisch/lisp/ecl-tst2/src/c -I../ecl/gc -D_GNU_SOURCE -g -O2 -fPIC -fstrict-aliasing -Dlinux -o
ffi_x86_64.o ffi_x86_64.c
/var/tmp/hebisch/lisp/ecl-tst2/src/c/arch/ffi_x86_64.d: In function 'ecl_dynamic_callback_execute':
/var/tmp/hebisch/lisp/ecl-tst2/src/c/arch/ffi_x86_64.d:191: error: 'i' undeclared (first use in this function)
/var/tmp/hebisch/lisp/ecl-tst2/src/c/arch/ffi_x86_64.d:191: error: (Each undeclared identifier is reported only once
/var/tmp/hebisch/lisp/ecl-tst2/src/c/arch/ffi_x86_64.d:191: error: for each function it appears in.)
/var/tmp/hebisch/lisp/ecl-tst2/src/c/arch/ffi_x86_64.d:216: warning: assignment
makes pointer from integer without a cast
make[2]: *** [ffi_x86_64.o] Error 1
Looks trivial to fix (see patch below).
Later I get another error:
if [ -f CROSS-COMPILER ]; then \
touch ecl_min; \
else \
gcc -o ecl_min cinit.o c/all_symbols.o -L./ libeclmin.a -leclgc -ldl -lm -lgmp;\
fi
libeclmin.a(ffi_x86_64.o): In function `ecl_dynamic_callback_execute':
/var/tmp/hebisch/lisp/ecl-tst2/src/c/arch/ffi_x86_64.d:217: undefined reference
to `cl_apply_from_stack_frame'
/var/tmp/hebisch/lisp/ecl-tst2/src/c/arch/ffi_x86_64.d:218: undefined reference
to `cl_stack_frame_close'
collect2: ld returned 1 exit status
make[1]: *** [ecl_min] Error 1
make[1]: Leaving directory `/var/tmp/hebisch/lisp/ecl-tst2/build'
make: *** [all] Error 2
Looks like a typo ('ecl_apply_from_stack_frame' and 'ecl_stack_frame_close'
are defined). Correcting this problem gave me succesful build.
The changes:
--- /home/s/test/tt/axiom3/ecl-tst/ecl/src/c/arch/ffi_x86_64.d 2008-02-16 14:04:46.000000000 +0100
+++ src/c/arch/ffi_x86_64.d 2008-02-16 15:15:43.000000000 +0100
@@ -162,6 +162,7 @@
cl_index size, i_reg_index, f_reg_index;
union ecl_ffi_values output;
enum ecl_ffi_tag tag;
+ long i;
long i_reg[MAX_INT_REGISTERS];
double f_reg[MAX_FP_REGISTERS];
@@ -213,8 +214,8 @@
ecl_stack_frame_push(frame, result);
}
- result = cl_apply_from_stack_frame(frame, fun);
- cl_stack_frame_close(frame);
+ result = ecl_apply_from_stack_frame(frame, fun);
+ ecl_stack_frame_close(frame);
tag = ecl_foreign_type_code(rtype);
memset(&output, 0, sizeof(output));
--
Waldek Hebisch
hebisch at math.uni.wroc.pl
More information about the ecl-devel
mailing list