Wolfgang Dautermann writes:
On 2016-11-14 16:20, Daniel Kochmański wrote:
Your patch added to the develop branch.
Best regards, Daniel
Thank you. That branch I could not (cross)compile. The native compiliation works, but when I crosscompile, I get error messages, where I was not able to find the reason:
First the 'preprocessor' emits some warnings:
dpp: /home/dauti/Software/ecl-crosscompiling/build/ecl-prefix/src/ecl/src/c/symbol.d -> c/symbol.c dpp: /home/dauti/Software/ecl-crosscompiling/build/ecl-prefix/src/ecl/src/c/package.d -> c/package.c
Unknown symbol: si::*ignore-package-locks*
Unknown symbol: si::*ignore-package-locks*
And later there are compilation errors because of this unknown symbol:
Compiling c/package.o... In file included from ./ecl/ecl.h:89:0, from /home/dauti/Software/ecl-crosscompiling/build/ecl-prefix/src/ecl/src/c/package.d:16: /home/dauti/Software/ecl-crosscompiling/build/ecl-prefix/src/ecl/src/c/package.d: In function ‘ecl_rename_package’: /home/dauti/Software/ecl-crosscompiling/build/ecl-prefix/src/ecl/src/c/package.d:250:22: error: ‘unknown’ undeclared (first use in this function) @'si::*ignore-package-locks*') == ECL_NIL) { ^ ./ecl/stacks.h:59:47: note: in definition of macro ‘ECL_SYM_VAL’ # define ECL_SYM_VAL(env,s) (ecl_bds_read(env,s))
(further errors follow). ^
It seems, that your host ECL has different version than sources you compile. Make sure, that you remove build/ directory (for instance with make distclean), rebuild host ECL and cross-compile target ECL with the new host.
But the "build-clean" branch (which you recommended, that I should use) is okay (with that patch) - no errors occur there.
develop branch has now build-clean branch merged. Please use it instead now. Thanks.
Hm. If both compilers (bytecode & C) are enabled, how can one select which one should be used? Or which should be the default?
as you have mentioned, you should use ext:install-bytecodes-compiler or ext:install-c-compiler
Somewhere I found that "(ext::install-bytecodes-compiler)" works. This should probably be added to the manual where compiliation mentioned (https://common-lisp.net/project/ecl/manual/ch34s06.html)
That seems to work now. And if I call ecl with ecl.exe --eval "(ext::install-bytecodes-compiler)" [further parameters] the bytecode compiler is called by default. Perhaps I am able to crosscompile Maxima with it. There is no easier command line option (or configuration value somewhere) for that?
Not yet. bytecodes compiler is usually installed by default on Windows though.
Best regards, Daniel