Excerpts from Ryan Freeman's message of Mon Aug 16 09:13:29 -0700 2010:
> Excerpts from Ryan Freeman's message of Fri Aug 13 08:49:30 -0700 2010:
> > Hello ports@
> > 
> > Here is a patch updating my chocolate-doom port from 1.2.1 to the
> > latest version, 1.4.0. Daniel Dickman previously submitted a patch
> > to me updating to 1.3.0, however Edd Barrett informed me that the
> > 1.4.0 version would not build on sparc64.
> > 
> > To summarize changes, the 1.4.0 and 1.5.0 release logs are here:
> > 1.3.0 to 1.4.0: 
> > http://chocolate-doom.svn.sourceforge.net/viewvc/chocolate-doom/trunk/chocolate-doom/ChangeLog?r1=1869&r2=1941
> > 1.2.1 to 1.3.0: 
> > http://chocolate-doom.svn.sourceforge.net/viewvc/chocolate-doom/trunk/chocolate-doom/ChangeLog?r1=1421&r2=1869
> > 
> > One thing to note is fraggle's efforts to add support for openbsd's
> > OPL device driver, and a software OPL emulator to play back doom's
> > music as closely as possible to the way it would have originally
> > sounded back in 1993 with the appropriate audio card :)
> > 
> > Please test, and Edd if you could let me know if this now builds
> > on sparc64, i would appreciate it :D Also if it doesn't, did you
> > ever get a chance to check and see if chocolate-doom 1.2.1 built
> > on sparc64? 
> >
> 
> first of all to correct confusion there is no 1.5.0 release, i meant
> to type 'the 1.3.0 and 1.4.0 release logs are here:'
> 
> Calling Edd! :) I received a patch from Simon Howard (chocolate-doom
> author) for sparc64 issues can this be tested by Edd or anyone
> with sparc64?  thanks!
> 

Edd! :) can you test this on your sparc64 real quick? i have Simon
asking if he can commit the below fix to his trunk, i'm hoping that
resolves it all .

-ryan

> From Simon:
>     I checked the ports@ archives about the sparc64 problem and it seems
>     to be a SIGBUS, which implies a memory alignment problem.  Apparently
>     SPARC64 expects some things to be 8-byte word aligned.  Doom's zone  
>     memory system aligns allocated memory to 4 byte boundaries and I   
>     assumed this would be enough, but it may be an invalid assumption.
> 
> 
> /usr/ports/mystuff/games/chocolate-doom/patches/patch-src_z_zone_c:
> 
> $OpenBSD$
> --- src/z_zone.c.orig    Mon Aug 16 09:05:39 2010
> +++ src/z_zone.c    Mon Aug 16 09:06:59 2010
> @@ -40,7 +40,8 @@
>  // It is of no value to free a cachable block,
>  //  because it will get overwritten automatically if needed.
>  // 
> - 
> +
> +#define MEM_ALIGN sizeof(void *) 
>  #define ZONEID    0x1d4a11
>  
>  typedef struct memblock_s
> @@ -201,7 +202,7 @@ Z_Malloc
>      memblock_t*    base;
>      void *result;
>  
> -    size = (size + 3) & ~3;
> +    size = (size + MEM_ALIGN - 1) & ~(MEM_ALIGN - 1);
>      
>      // scan through the block list,
>      // looking for the first free block
>  

Reply via email to