Alpha VM on Solaris UltraSPARC?

Nick Forde nickf at
Sun Mar 20 11:15:07 PST 2005

On 19 Mar 2005, at 18:38, Brian Rice wrote:

> Did altering the order of the options on the command-line help at all?

No. Apparently GCC makes its own mind up about when to pay attention to 
-mno-faster-structs option.

> What are we recommending here for a portability patch before I start 
> thinking about the next release?

Unfortunately as far as I can determine there isn't a command line 
option to solve the
problem, other than switching to -O0. Use of the GCC attribute 
extension, as
described in my mail of March 14th,  could be controlled using a 
#define from the
makefiles, but will also require updates to mobius. Also, this really 
should be
implemented in a more general purpose way such that compiler extensions 
be easily applied to all struct members.

Sorry I've not submitted a patch for this yet. I have had a number of 
deadlines recently
which have consumed all of my free time.


> On Mar 12, 2005, at 12:13 PM, Nick Forde wrote:
>> Unfortunately using -mno-faster-structs didn't work but switching to 
>> -O0 did.
>> For reference I tried building slate using GCC v3.2.3 on a number of 
>> other Unix
>> platforms and didn't encounter any other compatibility problems.
>> The vm and mobius/vm/platform/unix code appears to be very portable - 
>> nice job!
>> These worked OK using -O2:
>> Linux 2.4.9-enterprise #1 SMP, i686
>> OSX Darwin 7.8.0 Darwin Kernel Version 7.8.0, powerpc
>> AIX 3 4 0000C35B4C00 - IBM,7043-260
>> and the following core dumped with -O2 but worked with -O0:
>> SunOS 5.8 Generic_108528-29 sun4u sparc SUNW, Sun-Fire-880
>> HP-UX B.11.00 U 9000/785 2011991039, J6000 Workstation
>> Nick.
>> On 13 Mar 2005, at 00:02, Lee Salzman wrote:
>>> In our case it is definitely a problem with GCC. The field of the 
>>> structure in
>>> question may be aligned to an 8 byte boundary, but the structure 
>>> itself  is
>>> only aligned to a 4 byte boundary in the Slate heap. This is, 
>>> overall, a policy
>>> decision on GCC's part to ignore this possibility to eek out a few 
>>> more cycles
>>> here and there.
>>> It seems the options -mno-faster-structs on SPARC may entirely solve 
>>> this
>>> problem, and it may be that at higher optimization levels GCC assumes
>>> -mfaster-structs. The man page says this controls the assumption of 
>>> 8 byte
>>> alignment of structures. So ya'll try using -mno-faster-structs and 
>>> see what
>>> happens.
>>> Lee
> --
> Brian T. Rice
> LOGOS Research and Development

More information about the Slate mailing list