[M3commit] CVS Update: cm3
Jay Krell
jkrell at elego.de
Sat Apr 24 21:29:46 CEST 2010
CVSROOT: /usr/cvs
Changes by: jkrell at birch. 10/04/24 21:29:46
Modified files:
cm3/scripts/python/: pylib.py
Log message:
When building "boot" archives, instead of foo.ms => foo.ms.o
foo.is => foo.is.o
foo.c => foo.c.o
and ld *.o
do
foo.ms => foo.mo
foo.is => foo.io
foo.c => foo.o
and ld *.mo *.io *.o (or ld *o would work)
This is faithful to the mainline methods, and
doesn't produce files with multiple dots -- so they
can be directly stored on VMS ODS-2 file system.
Though ODS-5 would be nice.
Might also help with MS-DOS down the line.
Some other tweaks, for example
instead of foo.contains("BAR") or foo.startswith("BAR_")
or foo.endswith("_BAR") use:
def StringTagged(a, b):
return a.startswith(b + "_") or a.endswith("_" + b) or StringContains(a, "_" + b + "_")
which will work if we have any multipart targetnames
(granted, much slower due to extra string concats)
more lazily form up tons of target names, since that takes less code,
just every architecture + OS combination,
even if it forms invalid names like I386_IRIX, etc.
write out a separate vmsmake.com file for building cm3 on the target system
(.com is a file containing DCL commands; DCL is the usual command
line interface -- Digital Command Language)
In the generated makefile, instead of
Objects += foo
say:
Objects=$(Objects) foo
in case that is more portable.
e.g. to Microsoft nmake.
But we should really investigate more and depend on GNU make on
the more GNUish systems (Linux, Cygwin) and find out what BSD make can do.
As well, for NT, we write out a simple little Makefile that doesn't use either.
(Relying on the fact that for NT we have already produced .obj files)
For VMS, run a cross assembler on the host and copy the object files
to the target, instead of copying the assembly source and running
the assembler on the target. However the object files I'm getting
are being rejected by the linker, so more investigation is needed,
possibly using the more common pattern of running the assembler
on the target, though I'm skeptical we have the matching syntax.
Might undo this part. Or make it a command line option, or make
it probe for the cross assembler -- it is actually legitimate for
all/many targets, though it doesn't make a big difference either way.
Still lots of warnings/errors in the C code to look into as well.
More information about the M3commit
mailing list