[M3commit] CVS Update: cm3

Jay Krell jkrell at elego.de
Mon Nov 10 14:44:44 CET 2008


CVSROOT:	/usr/cvs
Changes by:	jkrell at birch.	08/11/10 14:44:43

Modified files:
	cm3/m3-libs/libm3/src/os/POSIX/: OSConfigPosix.m3 
	cm3/m3-libs/libm3/src/random/: m3makefile 
	cm3/m3-libs/m3core/src/: m3makefile 
	cm3/m3-libs/m3core/src/C/AMD64_LINUX/: m3makefile 
	cm3/m3-libs/m3core/src/C/Common/: m3makefile 
	cm3/m3-libs/m3core/src/Csupport/: m3makefile 
	cm3/m3-libs/m3core/src/float/: m3makefile 
	cm3/m3-libs/m3core/src/runtime/AMD64_LINUX/: m3makefile 
	cm3/m3-libs/m3core/src/runtime/NT386GNU/: m3makefile 
	cm3/m3-libs/m3core/src/runtime/POSIX/: m3makefile 
	cm3/m3-libs/m3core/src/runtime/SPARC32_LINUX/: m3makefile 
	cm3/m3-libs/m3core/src/runtime/SPARC64_LINUX/: m3makefile 
	cm3/m3-libs/m3core/src/runtime/common/: Compiler.tmpl 
	cm3/m3-libs/m3core/src/thread/: m3makefile 
	cm3/m3-libs/m3core/src/time/POSIX/: m3makefile 
	cm3/m3-libs/m3core/src/unix/: m3makefile 
	cm3/m3-sys/cminstall/src/config-no-install/: SOLgnu SOLsun 
	cm3/m3-sys/m3cc/src/: m3makefile 
	cm3/m3-sys/m3middle/src/: Target.i3 Target.m3 
	cm3/scripts/python/: pylib.py 
Added files:
	cm3/m3-libs/m3core/src/C/Common/: Cstdio.i3 Cstring.i3 
	cm3/m3-libs/m3core/src/C/SPARC64_SOLARIS/: Csetjmp.i3 Csignal.i3 
	                                           m3makefile 
	cm3/m3-libs/m3core/src/runtime/SPARC64_SOLARIS/: RTMachine.i3 
	                                                 RTSignal.m3 
	                                                 m3makefile 
	cm3/m3-sys/cminstall/src/config-no-install/: SPARC64_SOLARIS 
	                                             Solaris.common 
Removed files:
	cm3/m3-libs/m3core/src/C/AMD64_LINUX/: Cstdio.i3 Cstring.i3 
	cm3/m3-libs/m3core/src/C/PPC32_OPENBSD/: Cstdio.i3 Cstring.i3 
	cm3/m3-libs/m3core/src/C/SPARC32_LINUX/: Cstdio.i3 Cstring.i3 
	cm3/m3-libs/m3core/src/C/SPARC64_LINUX/: Cstdio.i3 Cstring.i3 
	cm3/m3-libs/m3core/src/C/SPARC64_OPENBSD/: Cstdio.i3 
	cm3/m3-libs/m3core/src/runtime/AMD64_LINUX/: RTThread.m3 
	cm3/m3-libs/m3core/src/runtime/SPARC32_LINUX/: RTThread.m3 
	                                               RTThreadC.c 
	cm3/m3-libs/m3core/src/runtime/SPARC64_LINUX/: RTThread.m3 
	                                               RTThreadC.c 

Log message:
	enough SPARC64_SOLARIS support to build a bootstrap package,
	build the bootstrap on the target, and startup cm3,
	which then hits an alignment fault in RTLinker__AddUnit.
	This shouldn't be hard to get past, it is doing ldx against
	an address that is not a multiple of 4.
	
	-bash-3.00$ dbx ./cm3
	(dbx) run
	Running: cm3
	(process id 3185)
	Reading libc_psr.so.1
	t at 1 (l at 1) signal BUS (invalid address alignment) in RTLinker__AddUnit at 0x10036e028
	0x000000010036e028: RTLinker__AddUnit+0x001c:   ldx      [%g1], %g1
	Current function is main
	12     RTLinker__InitRuntime (argc, argv, envp, 0);
	(dbx) where
	current thread: t at 1
	[1] RTLinker__AddUnit(0x10036d984, 0x0, 0x0, 0x0, 0x0, 0x0), at 0x10036e028
	[2] RTLinker__InitRuntime(0x1, 0xffffffff7ffffb78, 0xffffffff7ffffb88, 0x0, 0x0, 0x0), at 0x10036db18
	=>[3] main(argc = 1, argv = 0xffffffff7ffffb78, envp = 0xffffffff7ffffb88), line
	12 in "_m3main.c"
	(dbx) print $g1
	$g1 = 4298561924ULL
	
	This gives us another big endian 64 bit system, rather
	than only MIPS64_OPENBSD.
	
	Also remove a sh wrapper on NT in m3cc. Otherwise I
	was going to rename the file to include M3CC_TARGET,
	so concurrent builds don't step on each other.
	
	Significant working and reworking of config-no-install/*sol*,
	though ultimately this will probably be trimmed down substantially
	once I use multilibed gcc. (Note that SOLsun is easy, if you
	dig past the gcc stuff, and that SPARC64_SOLARIS is using the
	Sun compiler also, but Solaris now factored like NT so that you can
	say C_COMPILER = "SUN" or C_COMPILER = "GNU" (at least my config files
	are; I didn't touch the others).
	
	Presumably fix the building of a few minor platforms from earlier tonight,
	and then some -- go ahead and remove the dummy RTThread.i3 and RTThread.m3
	on platforms that just had stubs. (I broke them by removing RTMachine.StackTopPad
	or such, presumably; these are mostly "immature" platforms, except I386_CYGWIN)
	
	Note that I cheated in building my m3cg and hand patched auto-host.h rather
	than wait for the configure command line change to trickle through. It should
	be equiv.
	
	Move the common Cstdio.i3 and Cstring.i3 to common. This can be more all platforms
	later, but for now is only for some.
	
	Also the Solaris "unix" directory needs to be revisited, probably start over from a
	minimal Cygwin or OpenBSD base, at least for new Solaris targets.
	
	Also new files are likely to have carriage returns, but preexisting files shouldn't.




More information about the M3commit mailing list