
Manuel Carro wrote:
I really feel this is a strong limitation of GNU Prolog: we cannot ask our users to recompile every library they use so as to make sure that -fomit-frame-pointer is used or left out consistently in all the builds.
One thing is that this option is among the ones which brings more
speed (at least in ix86 architectures). Ciao Prolog is also compiled with this option.
Right. However, I believe here the point is another one: do GNU and Ciao Prolog require all foreign code they interoperate with to be compiled with -fomit-frame-pointer for proper operation? And: to interoperate with foreign code compiled without -fomit-frame-pointer, is it necessary to recompile GNU and Ciao Prolog without -fomit-frame-pointer?
For GNU Prolog, the experiments conducted by Daniele and myself would seem to indicate two positive answers. Should that be confirmed, it would constitute a serious drawback of GNU Prolog, since proper behavior should not depend on how foreign code is compiled, provided the calling conventions of the platform at hand are respected (and compiling with or without -fomit-frame-pointer has no influence, AFAICT, on the calling conventions used in the platforms we are talking about). All the best
Roberto