[M3commit] CVS Update: cm3

Tony Hosking hosking at cs.purdue.edu
Mon Jan 7 21:27:30 CET 2008


Also, following up on your changes for the backend.  I suggest you  
take a look at the way things are handled in the M3BackLinux.m3 code  
for PM3.  You should be able to switch between the integrated backend  
and the gcc-based backend similarly, based on the value of the  
M3_BACKEND_MODE flag.  Thus, controlling the backend is a simple  
matter of changing the cm3.cfg.



On Jan 7, 2008, at 3:16 PM, Tony Hosking wrote:

> Jay, I am very nervous about the pervasive nature of some of your  
> recent commits.  NT386GNU is usually configured with  
> OS_TYPE="POSIX".  Thus, the m3makefile for cm3, which contains the  
> following:
>
> if equal (OS_TYPE, "POSIX")
>   interface ("M3Backend")
>   implementation ("M3BackPosix")
>   implementation ("UtilsPosix")
> else
>   import ("m3objfile")
>   import ("m3back")
>   interface ("M3Backend")
>   implementation ("M3BackWin32")
>   implementation ("UtilsWin32")
> end
>
> will build a POSIX backend for you on NT386GNU which should do the  
> right thing in invoking the gcc-based backend.  Your changes, which  
> hardwire things in cm3 for NT386GNU are thus unnecessary.   I  
> suggest you back these changes out and reconsider things.   
> Certainly, NT386GNU should be considered as an independent POSIX  
> target from the NT386 WIN32 target.  Thus, one need not make  
> changes to M3BackWin32 for NT386GNU, since it is treated as a POSIX  
> target.
>
> As far as threading goes, if user-level threading for NT386 does  
> not work then I can imagine it would be OK to use native WIN32  
> threads.  The switch for that is in m3core/src/thread/m3makefile,  
> which would check for TARGET="NT386GNU" and choose sibdirectory  
> WIN32 instead of using OS_TYPE to pick subdirectory POSIX.
>
> On Jan 7, 2008, at 8:38 AM, Jay Krell wrote:
>
>> CVSROOT:	/usr/cvs
>> Changes by:	jkrell at birch.	08/01/07 08:38:15
>>
>> Modified files:
>> 	cm3/m3-libs/m3core/src/unix/cygwin/: Umman.i3 Uresource.i3
>> 	                                     Utypes.m3
>> 	cm3/m3-sys/cm3/src/: Builder.i3 Builder.m3 M3BackPosix.m3
>> 	                     M3BackWin32.m3 M3Backend.i3
>> 	cm3/m3-sys/cminstall/src/config/: NT386GNU
>> 	cm3/m3-sys/m3front/src/misc/: M3Front.m3
>>
>> Log message:
>> 	some fixes for NT386GNU (cygwin)
>> 	
>> 	let win32 cm3 use the gcc backend if target == NT386GNU
>> 	might need a better interface here?
>> 	switching on target name is probably the wrong thing
>> 	need something called "use gcc backend" or somesuch
>> 	
>> 	loosen the check for file name vs. module name to account for  
>> paths with both types of slashes
>> 	might need a better interface/implementation here?
>> 	should try to get the paths to line up instead?
>> 	
>> 	remove -fPIC since it warns that it is redundant (though the  
>> warning is probably wrong
>> 	in other details -- not all code is position independent, merely  
>> relocatable..)
>> 	
>> 	use configured ar, /usr/bin/ar doesn't work, just plain ar does
>> 	
>> 	update Umman.i3 MAP_ANONYMOUS to new shorter name MAP_ANON
>> 	
>> 	update Uresource.i3 from struct_rusage_start to VAR struct_rusage
>> 	
>> 	fix warning about unused import long in Utypes.m3
>> 	
>> 	change SYSTEM_CC from cc to gcc because cc is something on my  
>> system,
>> 	that I have not investigated, and doesn't work; gcc is perfectly  
>> ok here, though
>> 	cc lines up nicely with the other two character names -- ar and as
>> 	
>> 	now need to deal with threads to get m3core to build
>




More information about the M3commit mailing list