Sparc needs double precision items to be aligned mod64, so when building
libglx.so (and hw/dmx) in xorg-server, __GLX_ALIGN64 must be defined.
Otherwise, depending on the compiler used to build xorg-server and other random
events, libglx.so might work or it might generate Bus errors (Signal 10) which
kill Xserver. This is the same as hw/xfree86/doc/changelogs/CHANGELOG, entry 417.
By popular demand, I am expanding this to ask about the status of other 64-bit
architectures, such as alpha, ia64, amd64, mips, ppc64. They might run into the
same problem, but I am not in a position to test them.
From the imake...
# if defined(SparcArchitecture) \
|| defined (Sparc64Architecture) \
|| defined(ia64Architecture) \
|| defined(s390xArchitecture) \
# define GlxArchDefines -D__GLX_ALIGN64
# elif defined(AlphaArchitecture)
/* On the Alpha we need to ensure floating point accuracy for 3D */
# define GlxArchDefines -D__GLX_ALIGN64 -mieee
# elif defined(DarwinArchitecture)
/* GLX contains lots of uninitialized globals, which can upset Darwin */
# define GlxArchDefines -fno-common
Sorry about the phenomenal bug spam, guys. Adding xorg-team@ to the QA contact so bugs don't get lost in future.
*** This bug has been marked as a duplicate of bug 8392 ***