Hi,
I'm trying to get axis2c ver .96 building on solaris 10 64bit sparc. I have
identified a two issues with the util/configure.ac and have corrected one of
them.
The other how ever is a little more complicated and I don't know how to fix
it. I was hoping some one could direct me.
The Problem:
The test, AC_CHECK_TYPES([struct lifreq]) in configure.ac fails. The build
of file ./util/src/platforms/unix/uuid_gen_unix.c defaults to Darwin
Description:
Solaris 10 64bit redefines "struct lifreq" as only a 64bits structure, 32
bit programs do not have access to the data structure. Solaris gcc compiler
defaults to 32bit builds, so "struct lifreq" is undefined with the current
util/configure.ac. To build in 64bit mode, the build environment must have
the "__sparcv9" preprocessor symbol defined. When the AC_CHECK_TYPES([struct
lifreq]) test fails, preprocessor symbol HAVE_STRUCT_LIFREQ is undefined.
This leaves ./util/src/platforms/unix/uuid_gen_unix.c building Darwin code.
See code excerpts on the bottom.:
Using #ifdef HAVE_STRUCT_LIFREQ may not be the best way to determine the
platform, but that's all good IF the AC_CHECK_TYPES([struct lifreq]) test
passes.
I have tried several different ways to get "__sparcv9" preprocessor symbol
defined. I can't seem to get it to show up in config.h and pass the test.
Please help me !!
>From ./util/src/platforms/unix/uuid_gen_unix.c line 236
#else
#ifdef HAVE_STRUCT_LIFREQ /* Solaris-ish */
/* code modified from that posted on:
* http://forum.sun.com/jive/thread.jspa?threadID=84804
<http://forum.sun.com/jive/thread.jspa?threadID=84804&tstart=30> &tstart=30
*/
char * AXIS2_CALL
axis2_uuid_get_mac_addr()
>From ./util/src/platforms/unix/uuid_gen_unix.c line 307
# else /* Darwin */
#ifndef max
#define max(a,b) ((a) > (b) ? (a) : (b))
#endif /* !max */
char * AXIS2_CALL
axis2_uuid_get_mac_addr()
{
-thx
gary