Estimated hours taken: 0.1
Plus lots of debugging time
scripts/mc.in
Always pass --bits-per-word 32, since for some reason
--bits-per-word 64 causes the compiler to generate incorrect
code for lookup switches.
Estimated hours taken: 0.25
(plus 0.75 debugging)
scripts/mc.in:
Pass the configured value of --bytes-per-word.
Also fix a missing line for --bits-per-word.
Estimated hours taken: 0.1
scripts/mc.in:
Pass the number of bits in a word as a configured parameter
to mercury_compile instead of using the default (32). Ports
to 16 bit achitectures should now work ;-)
Estimated hours taken: 0.2
mc.in:
Transmit the --num-real-r-regs, --num-real-temps and
--branch-delay-slot options from autoconfiguration to mercury_compile.
Estimated hours taken: 2
Make sure that `mc -c' passes the correct machine- and grade-specific
options to the C compiler.
configure.in:
Set CFLAGS_FOR_REGS and CFLAGS_FOR_GOTOS to any special
gcc options required for the use of gcc global registers and gcc
nonlocal gotos respectively.
scripts/mc.in:
Pass the values of CFLAGS_FOR_REGS and CFLAGS_FOR_GOTOS to
mercury_compile.
compiler/options.m:
Add new options for passing CFLAGS_FOR_REGS and CFLAGS_FOR_GOTOS.
compiler/mercury_compile.pp:
Pass the CFLAGS_FOR_REGS and/or CFLAGS_FOR_GOTOS to the C compiler,
if appropriate.
can avoid bootstrapping problems. Instead of getting configuration
paramters from `conf.m.in', they are now passed via the `mc' script.
Also renamed the `num_real_regs' option to `num_real_r_regs',
to avoid confusion with the NUM_REAL_REGS macro set in runtime/machdeps/*.h
(which has a different meaning).
scripts/mc.in:
Pass the value of @LOW_TAG_BITS@ (as determined by the configure
script) to mercury_compile using the --conf-low-tag-bits option,
and pass the value of @NUM_REAL_R_REGS@ as the default value
of the --num-real-r-regs option.
scripts/*.in:
Replace all uses of
... "$@" ...
with
case $# in
0) ... ...
*) ... "$@" ...
esac
since on ULTRIX and OSF, "$@" does the wrong thing if $# is 0.
mgnuc.in:
Use @CC@ from configure rather than `gcc'.
(We still require gcc, though, since we pass a lot
of gcc-specific options.)
Remove the site-specific kludges for finding `gcc'.
NB: Zoltan, this means that you need to explicitly
add `-msupersparc' to the MGNUCFLAGS for benchmarking.
Also, on Irix 5 we need to pass `-mno-abicalls' to
turn off shared libraries for the grades which use
gcc non-local gotos.
mc.in:
Use @CC@ from configure, and pass it use the --cc option.
ml.in:
For Irix 5, we need to pass `-non_shared' for the grades which use
gcc non-local gotos, and we also need to export a LIBRARY_PATH
which points to the nonshared libraries.
{mc,ml,mgnuc,mmake}.in:
Use MERCURY_DEFAULT_GRADE, with a default value @DEFAULT_GRADE@
determined by configure, rather than hard-coding asm_fast.gc as
the default grade.
mmake.in:
Update the documentation.