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 >