[M3devel] some other ports.. (PPC32_OPENBSD, SPARC64_OPENBSD, SPARC64_SOLARIS)

Tony Hosking hosking at cs.purdue.edu
Fri May 14 15:59:02 CEST 2010


Argh.  I worried about that when I made my changes, but all seemed to be well for bootstraps on Darwin/x86.

Also, we need to have regular testing of the compiler at both -O1 and -O2 or -O3 optimisation levels.  I know of at least one gcc ICE on one platform (I forget which) that manifests only at -O3 compiling just one module in the entire CM3 distribution.  This is fragile stuff... and it may just be a bug in gcc that we are exercising.

It may be that we just need to update the backend to a newer version of gcc.  It has been a couple of years, and Jay is pushing the target envelope much further than it ever has been.  Problem is that newer gcc may not play nice with older targets.  I strongly suggest that we focus effort on modern targets and not older targets, which implies we probably want to roll the gcc-based backend forward to a more current gcc release.

On 14 May 2010, at 06:27, Jay K wrote:

> 
> ok, bringing parse.c mostly back to what it is in release, has cleared up a lot of this, I haven't nested it all.
> Then I'll have to narrow it down some -- there are two main sets of changes:
>  - my changes to set operations   
>  - my change to div/mod
>  - Tony's to bit field operations  
> 
> It is also conceivable that mixing release/head cm3 with head/release cm3cg 1) doesn't work 2) I was doing it.
> 
> I thought I had tested my changes thoroughly but at this point, I don't know, and don't care much
> to keep them if they don't work.
>  (Well, hopefully the NT386 versions can stay. :) )
> 
>  - Jay
> 
> 
> ----------------------------------------
>> From: jay.krell at cornell.edu
>> To: m3devel at elegosoft.com
>> Date: Fri, 14 May 2010 09:08:58 +0000
>> Subject: Re: [M3devel] some other ports.. (PPC32_OPENBSD, SPARC64_OPENBSD, SPARC64_SOLARIS)
>> 
>> 
>> Hm. Something is wrong on many platforms, in head, at least with my boot archives.
>>  PPC_DARWIN, SOLsun, I386_LINUX
>> I'll figure it out. Hopefully soon.
>> 
>> - Jay
>> 
>> ----------------------------------------
>>> From: jay.krell at cornell.edu
>>> To: m3devel at elegosoft.com
>>> Date: Fri, 14 May 2010 06:37:07 +0000
>>> Subject: [M3devel] some other ports.. (PPC32_OPENBSD, SPARC64_OPENBSD, SPARC64_SOLARIS)
>>> 
>>> 
>>> I've tried SPARC64_OPENBSD, SPARC64_SOLARIS, PPC32_OPENBSD recently (this week).
>>> 
>>> SPARC64_SOLARIS gets far through RTLinker__InitRuntime, but ultimately bus errors in around the first line of RTType__UpdateCell, something in PolyBasis.
>>> The data in the assembly looks like. Maybe a runtime memory corruption.
>>> 
>>> 
>>> PPC32_OPENBSD complains something like in TextCat that a type is missing.
>>> I think it used to mostly work since I deleted some install I had there.
>>> 
>>> 
>>> SPARC64_OPENBSD bus errors just a few instructions into RTLinker__InitRuntime.
>>> (gdb) disassem
>>> Dump of assembler code for function RTLinker__InitRuntime:
>>> 0x00000000004bd01c : save %sp, -224, %sp
>>> 0x00000000004bd020 : sethi %hi(0xd18800), %l7
>>> 0x00000000004bd024 : add %l7, 0x1fc, %l7 ! 0xd189fc
>>> 0x00000000004bd028 : call 0x4bd010 <_m3_fault+60>
>>> 0x00000000004bd02c : nop
>>> 0x00000000004bd030 : stx %i0, [ %fp + 0x87f ]
>>> 0x00000000004bd034 : stx %i1, [ %fp + 0x887 ]
>>> 0x00000000004bd038 : stx %i2, [ %fp + 0x88f ]
>>> 0x00000000004bd03c : stx %i3, [ %fp + 0x897 ]
>>> 0x00000000004bd040 : sethi %hi(0x942c00), %g1
>>> 0x00000000004bd044 : or %g1, 0x290, %g1 ! 0x942e90
>>> 0x00000000004bd048 : ldx [ %l7 + %g1 ], %g1 << here
>>> 
>>> 
>>> This seems like it'll be tough going. :(
>>> 
>>> 
>>> I think I'll try with PIC turned off.
>>> 
>>> - Jay
>>> 
>>> 
>> 
> 		 	   		  




More information about the M3devel mailing list