Looking at compiler inline...
Ian Piumarta
ian.piumarta at inria.fr
Thu Apr 8 19:04:59 UTC 2004
Hi Alan,
> The next thing I tried was to change the prefferances of VMMaker to
> disable inlining.
>
> This caused the compiler to generate a file was broken on the unix
> platform due to some ill-advised post-proccessing by "gnuify" ( sorry,
> Ian...)
I'm not sure it's broken, just a little obscure to use (since only
those doing VM debugging or low-level profiling should ever care about
it -- as you just discovered as part of your current adventures ;).
Gnuify should detect a non-inlined interp.c and bail immediately. If
it doesn't, that's a bug.
You can build a VM from a non-gnuified interp.c, but you have to tell
"make" explicitly to avoid trying to gnuify it at all, like this:
../plat/ux/conf/configure # as usual
make INTERP=interp # avoid gnuifying
How does this work? The VM is built from a bunch of stuff, including
${INTERP}.o which contains the generated part of the VM. The default
value of INTERP is "gnu-interp", which does not exist in the source
tree at the beginning; only the file "interp.c" already exists. Then
there is a rule in the Makefile that says "gnu-interp.c is built from
interp.c by gnufiying the latter into the former". That's where the
"missing" gnu-interp.c file comes from, and where the gnuification
stage actually takes place.
By running make with "INTERP=interp" as an argument on the command-line
you simply bypass the rule that gnuifies interp.c, since "gnu-interp.o"
is never required by the build, and simply use the original one
unmodified instead.
I hope that made some kind of sense.
Cheers,
Ian
More information about the Squeak-dev
mailing list
|