Alpha VM on Solaris UltraSPARC?
Nick Forde
nickf at system-7.freeserve.co.uk
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
the
-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
can
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.
Nick.
> 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
> http://tunes.org/~water/
More information about the Slate
mailing list