I seem to have problems compiling XEmacs 21 (or 20.4 for that matter)
on SunOS 5.7 with the 64-bit compiler.
It seems that in several places in the code, XEmacs makes assumptions
about the size of int's and long's and it assumes they are same size.
Here is an example from lisp.h:
#if (LONGBITS > INTBITS)
# define EMACS_INT long
# define EMACS_UINT unsigned long
# define SIZEOF_EMACS_INT SIZEOF_LONG
#else# define EMACS_INT int
# define EMACS_UINT unsigned int
# define SIZEOF_EMACS_INT SIZEOF_INT
#endif
...
#if (LONGBITS < 16)
#error What the hell?!
#elif (LONGBITS < 32)
# define LONGBITS_LOG2 4
# define LONGBITS_POWER_OF_2 16
#elif (LONGBITS < 64)
# define LONGBITS_LOG2 5
# define LONGBITS_POWER_OF_2 32
#elif (LONGBITS < 128)
# define LONGBITS_LOG2 6
# define LONGBITS_POWER_OF_2 64
#else
#error You really have 128-bit integers?!#endif
INLINE int
bit_vector_bit (struct Lisp_Bit_Vector *v, int i)
{
unsigned int ui = (unsigned int) i;
return (((v)->bits[ui >> LONGBITS_LOG2] >> (ui & (LONGBITS_POWER_OF_2
- 1)))
& 1);
}
The end result is that temacs goes off to visit Elvis when it is
trying to do the dynodump.
How is this done on 64-bit only arch. like Alpha?
cfs
--
Charles F. Stephens = cfs AT
eng.sun.com
Software Psychic and Illuminary =
Solaris Network Sustaining = "We know what you buy, we know where you
Solaris Software = live." -- Wesayso Corp.
Sun Microsystems, Inc. =
Menlo Park, California, USA =