You are viewing a plain text version of this content. The canonical link for it is here.
Posted to c-user@axis.apache.org by PP <pa...@gmail.com> on 2009/03/02 07:11:01 UTC

Re: unable to start axis2_http_server on AIX 6.1

Anyone please help me?
Why so many changes are required to compile Axis2c on AIX? The steps i
followed are:

I saw some posts to this list and the user list from a couple of months
ago about issues building Axis2/C on AIX.  I managed to get 1.4.0 to
build (and run) on AIX 5.3 and thought I should post my experience.

I had to make some minor code changes and I am not sure the way I got it
to build is the best (putting -D_ALL_SOURCE in CFLAGS seems like a bit
of a hack).  I tried putting define of _ALL_SOURCE in an aix specific
header file but I got into a recursive include mess and gave up ton
that.

Also, I have never used autoconf nor automake and my boxes don't have
versions that work with the distributed configure.ac and Makefile.am
files so I am not sure how the below "todo's" should be resolved.

Versions:
Axis2/C 1.4.0
AIX 5.3
gcc 4.2.0
native ld
native make


Below are errors encountered and what I did to get around them.
########################################################################
####
make: error:
uuid_gen_unix.c:36:26: error: sys/sockio.h: No such file or directory
"fix": surrounded #include <sys/sockio.h> with #ifdef HAVE_SYS_SOCKIO_H
in ./util/src/platforms/unix/uuid_gen_unix.c:
> /opt/freeware/bin/diff -c
../axis2c-src-1.4.0.orig/util/src/platforms/unix/uuid_gen_unix.c
util/src/platforms/unix/>
*** ../axis2c-src-1.4.0.orig/util/src/platforms/unix/uuid_gen_unix.c
Wed Jan  9 21:39:33 2008
--- util/src/platforms/unix/uuid_gen_unix.c     Tue Oct 28 16:07:58 2008
***************
*** 17,22 ****
--- 17,23 ----
   */

  #include <config.h>
+ #include <platforms/axutil_platform_auto_sense.h>

  #include <sys/ioctl.h>
  #include <string.h>
***************
*** 26,42 ****
  #include <fcntl.h>
  #include <unistd.h>
  #include <sys/types.h>
- #include <sys/socket.h>
  #include <sys/time.h>

  #ifdef HAVE_LINUX_IF_H
  # include <linux/if.h>
  #else
  # ifdef HAVE_NET_IF_H
- #  include <sys/sockio.h>
  #  include <net/if.h>
  #  include <net/if_arp.h>
  # endif
  # ifdef HAVE_NET_IF_TYPES_H
  #  include <net/if_types.h>
  # endif
--- 27,45 ----
  #include <fcntl.h>
  #include <unistd.h>
  #include <sys/types.h>
  #include <sys/time.h>

+ /* these ifdefs would be better in a header file
  #ifdef HAVE_LINUX_IF_H
  # include <linux/if.h>
  #else
  # ifdef HAVE_NET_IF_H
  #  include <net/if.h>
  #  include <net/if_arp.h>
  # endif
+ # ifdef HAVE_SOCKIO_H
+ #  include <sys/sockio.h>
+ # endif
  # ifdef HAVE_NET_IF_TYPES_H
  #  include <net/if_types.h>
  # endif

todo: configure should check for existence of sys/sockio.h and set
HAVE_SYS_SOCKIO_H
########################################################################
####
make error:
In file included from uuid_gen_unix.c:37:
/usr/include/net/if_arp.h:68: error: expected specifier-qualifier-list
before 'u_short'
"fix": define _ALL_SOURCE before include of sys/types.h
add "-D_ALL_SOURCE" to CFLAGS before running configure
########################################################################
####
make error:
from uuid_gen_unix.c:50:
../../../include/platforms/unix/axutil_unix.h:119:20: error: getopt.h:
No such file or directory
make: The error code from the last command is 1.
"fix": surrounded #include <getopt.h> with #ifdef HAVE_GETOPT_H in
...util/include/platforms/unix/axutil_unix.h:
> clude/platforms/unix/axutil_unix.h
util/include/platforms/unix/axutil_unix.h
<
*** ../axis2c-src-1.4.0.orig/util/include/platforms/unix/axutil_unix.h
Sun Mar  9 23:29:37 2008
--- util/include/platforms/unix/axutil_unix.h   Tue Oct 28 12:49:18 2008
***************
*** 116,122 ****
--- 116,124 ----
  #include "axutil_uuid_gen_unix.h"   /* uuid_gen unix implementation */
  #include <netinet/tcp.h>        /* TCP_NODELAY */
  #include <utime.h>
+ #ifdef HAVE_GETOPT_H
  #include <getopt.h>
+ #endif
  #include "axutil_date_time_util_unix.h"

      /* for file access handling */

todo: configure.ac: should check for existence of sys/sockio.h and set
HAVE_GETOPT_H

########################################################################
####
make error:
gcc -DHAVE_CONFIG_H -I. -I. -I../../.. -I../../../include
-I../../../include/platforms -I../../../include/platforms/unix -g -O2
-D_ALL_SOURCE -D_LARGEFILE64_SOURCE -ansi -Wall -Werror
-Wno-implicit-function-declaration -MT thread_unix.lo -MD -MP -MF
.deps/thread_unix.Tpo -c thread_unix.c -DPIC -o .libs/thread_unix.o
cc1: warnings being treated as errors
thread_unix.c: In function 'axutil_thread_once_init':
thread_unix.c:279: warning: missing braces around initializer
thread_unix.c:279: warning: (near initialization for
'once_init.__on_word')
"fix": added -DAXIS2_AIX to CFLAGS AND changed
util/src/platforms/unix/thread_unix.c as follows:
> c/platforms/unix/thread_unix.c util/src/platforms/unix/thread_unix.c
<
*** ../axis2c-src-1.4.0.orig/util/src/platforms/unix/thread_unix.c
Wed Jan  9 21:39:33 2008
--- util/src/platforms/unix/thread_unix.c       Tue Oct 28 12:49:20 2008
***************
*** 17,22 ****
--- 17,23 ----
   */

  #include <config.h>
+ #include "platforms/axutil_platform_auto_sense.h"
  #include "axutil_thread_unix.h"

  AXIS2_EXTERN axutil_threadattr_t *AXIS2_CALL
***************
*** 273,279 ****
  axutil_thread_once_init(
      axutil_allocator_t * allocator)
  {
! #ifdef AXIS2_SOLARIS
      static const pthread_once_t once_init = { PTHREAD_ONCE_INIT };
  #else
      static const pthread_once_t once_init = PTHREAD_ONCE_INIT;
--- 274,280 ----
  axutil_thread_once_init(
      axutil_allocator_t * allocator)
  {
! #if (defined(AXIS2_SOLARIS) || defined(AXIS2_AIX))
      static const pthread_once_t once_init = { PTHREAD_ONCE_INIT };
  #else
      static const pthread_once_t once_init = PTHREAD_ONCE_INIT;

########################################################################
####
make error:
../include/platforms/unix/axutil_uuid_gen_unix.h:57: error: field
'time_last' has incomplete type
plus a bunch more
"fix": this is also fixed if _ALL_SOURCE is defined before include of
sys/types.h
added -D_ALL_SOURCE to CFLAGS before configure
########################################################################
####
make error:
cc1: warnings being treated as errors
dir_handler.c: In function
'axutil_dir_handler_list_services_or_modules_in_dir':
dir_handler.c:72: warning: passing argument 3 of 'scandir' from
incompatible pointer type
dir_handler.c: In function
'axutil_dir_handler_list_service_or_module_dirs':
dir_handler.c:212: warning: passing argument 3 of 'scandir' from
incompatible pointer type
"fix":
* added -DAXIS2_AIX to CFLAGS
* changed dir_handler.c as follows:
> /opt/freeware/bin/diff -c
../axis2c-src-1.4.0.orig/./util/src/dir_handler.c
./util/src/dir_handler.c
*** ../axis2c-src-1.4.0.orig/./util/src/dir_handler.c   Tue Mar 18
23:31:08 2008
--- ./util/src/dir_handler.c    Tue Oct 28 12:49:19 2008
***************
*** 31,37 ****

  extern int AXIS2_ALPHASORT(
      );
! #ifdef IS_MACOSX
  int dir_select(
      struct dirent *entry);
  #else
--- 31,37 ----

  extern int AXIS2_ALPHASORT(
      );
! #if (defined IS_MACOSX || defined AXIS2_AIX )
  int dir_select(
      struct dirent *entry);
  #else
***************
*** 39,47 ****
--- 39,53 ----
      const struct dirent *entry);
  #endif

+ #ifdef AXIS2_AIX
+ int
+ file_select(
+     struct dirent *entry);
+ #else
  int
  file_select(
      const struct dirent *entry);
+ #endif

  /**
   * List the dll files in the given service or module folder path
***************
*** 321,328 ****
  }

  int
! file_select(
!     const struct dirent *entry)
  {
      /** FIXME:
        * This block of code has been sitting here doing nothing.
--- 327,337 ----
  }

  int
! #if (defined IS_MACOSX || defined AXIS2_AIX)
! file_select( struct dirent *entry)
! #else
! file_select( const struct dirent *entry)
! #endif
  {
      /** FIXME:
        * This block of code has been sitting here doing nothing.
***************
*** 346,352 ****
          return (AXIS2_FALSE);
  }

! #ifdef IS_MACOSX
  int
  dir_select(
      struct dirent *entry)
--- 355,361 ----
          return (AXIS2_FALSE);
  }

! #if (defined IS_MACOSX || defined AXIS2_AIX)
  int
  dir_select(
      struct dirent *entry)
########################################################################
####
make error:
data_handler.c: In function 'axiom_data_handler_read_from':
data_handler.c:156: error: storage size of 'stat_p' isn't known
cc1: warnings being treated as errors
data_handler.c:156: warning: unused variable 'stat_p'
file: ./axiom/src/attachments/data_handler.c
"fix": define _ALL_SOURCE before include of sys/types.h (see above)
########################################################################
####
make error: (plus many more)
In file included from
../../../util/include/platforms/unix/axutil_unix.h:116,
from ../../../util/include/platforms/axutil_platform_auto_sense.h:51,
from ../../../util/include/axutil_uuid_gen.h:24,
from om_output.c:26:
../../../util/include/platforms/unix/axutil_uuid_gen_unix.h:57: error:
field 'time_last' has incomplete type
file: .../axiom/src/om/om_output.c
"fix":
add -D_ALL_SOURCE to CFLAGS

########################################################################
####
> make install
.
.
.
Target "install-data-am" is up to date.
Target "install" is up to date.
########################################################################
####runtime linker errors:
various errors including coredumps, libs not found, unable to load libs,
*.so missing from lib, etc.
try:
export LDFLAGS=-Wl,-brtl
./configure ...

axis2_http_server still coredumps
make is not passing LDFLAGS to linker
"fix": add -Wl,-brtl to CFLAGS before configure
todo: makefile gen should pass LDFLAGS in Makefile's
todo: my build output has a bunch of warnings from gcc about -brtl:
gcc: -brtl: linker input file unused because linking not done
gcc: unrecognized option '-brtl'

########################################################################
####
rebuild from scratch
> export AXIS2C_HOME=$HOME/axis2c
> cd
> gtar xzf axis2c-src-1.4.0.tar.gz
> cd axis2c-src-1.4.0
> patch -p1 <../axis2c-src-1.4.0-aix-patch
# patch contents is just above diff output
> export CFLAGS="-DAXIS2_AIX -D_ALL_SOURCE -Wl,-brtl"
> ./configure --prefix=${AXIS2C_HOME}
> make install
.
.
.
Target "install" is up to date.

########################################################################
####
build of samples
> export AXIS2C_HOME=$HOME/axis2c
> export LIBPATH=$LIBPATH:${AXIS2C_HOME}/lib/
> cd $HOME/axis2c-src-1.4.0/samples
> export CFLAGS="-DAXIS2_AIX -D_ALL_SOURCE -Wl,-brtl"
> ./configure --prefix=$AXIS2C_HOME
-with-axis2=${AXIS2C_HOME}/include/axis2-1.4.0
> make install
.
.
.
Target "install" is up to date.



On Fri, Feb 27, 2009 at 7:52 PM, PP <pa...@gmail.com> wrote:

> Hi,
>
> I followed these instructions to build axis2c on AIX. After little effort i
> was able to build the lib/server.
>
>
> http://mail-archives.apache.org/mod_mbox/ws-axis-c-dev/200810.mbox/%3C1C5078180E92E94595BBC384F5F3FC3B0206A8B6@USCOBRMFA-SE-70.northamerica.cexp.com%3E
>
> but when i start the server it just stops and when i see the error log.
> The error message is "cannot load /lib/axis2_http_sender.a ...invalid magic
> number....
>
> can someone please help what could be the error?
>
> My env is:
> AIX-rpm-6.1.0.0-1
> axis2c-src-1.5.0
>
> gcc-cpp-4.2.3-1
> gcc-4.2.3-1
> libgcc-4.2.3-1
>
>
>
> --
> Thanks & Regards
> Pradeep Patel
>



-- 
Thanks & Regards
Pradeep Patel

Re: unable to start axis2_http_server on AIX 6.1

Posted by PP <pa...@gmail.com>.
anyone please???

On Mon, Mar 2, 2009 at 3:13 PM, PP <pa...@gmail.com> wrote:

> hi,
>
> i am still getting the same error.
>
> [Mon Mar  2 13:26:20 2009] [error] class_loader.c(162) Loading shared
> library ..//lib/libaxis2_http_sender.a  Failed. DLERROR IS        0509-022
> Cannot load module ..//lib/libaxis2_http_sender.a.
>         0509-103   The module has an invalid magic number.
>
> the lib is present in the lib folder.
>
> I am using 64-bit AIX. does it make any diff?
>
> My env is:
> AIX-rpm-6.1.0.0-1
> axis2c-src-1.5.0
>
> gcc-cpp-4.2.3-1
> gcc-4.2.3-1
> libgcc-4.2.3-1
>
> CPU Type: 64-bit
> Kernel Type: 64-bit
> System Model: IBM,9111-520
> Processor Type: PowerPC_POWER5
> Number Of Processors: 2
>
>
>
> On Mon, Mar 2, 2009 at 11:41 AM, PP <pa...@gmail.com> wrote:
>
>> Anyone please help me?
>> Why so many changes are required to compile Axis2c on AIX? The steps i
>> followed are:
>>
>> I saw some posts to this list and the user list from a couple of months
>> ago about issues building Axis2/C on AIX.  I managed to get 1.4.0 to
>>
>>
>> build (and run) on AIX 5.3 and thought I should post my experience.
>>
>> I had to make some minor code changes and I am not sure the way I got it
>> to build is the best (putting -D_ALL_SOURCE in CFLAGS seems like a bit
>>
>>
>> of a hack).  I tried putting define of _ALL_SOURCE in an aix specific
>> header file but I got into a recursive include mess and gave up ton
>> that.
>>
>> Also, I have never used autoconf nor automake and my boxes don't have
>>
>>
>> versions that work with the distributed configure.ac and Makefile.am
>> files so I am not sure how the below "todo's" should be resolved.
>>
>> Versions:
>>
>> Axis2/C 1.4.0
>>
>> AIX 5.3
>> gcc 4.2.0
>> native ld
>> native make
>>
>>
>> Below are errors encountered and what I did to get around them.
>> ########################################################################
>> ####
>> make: error:
>>
>>
>> uuid_gen_unix.c:36:26: error: sys/sockio.h: No such file or directory
>> "fix": surrounded #include <sys/sockio.h> with #ifdef HAVE_SYS_SOCKIO_H
>> in ./util/src/platforms/unix/uuid_gen_unix.c:
>> > /opt/freeware/bin/diff -c
>>
>>
>> ../axis2c-src-1.4.0.orig/util/src/platforms/unix/uuid_gen_unix.c
>> util/src/platforms/unix/>
>> *** ../axis2c-src-1.4.0.orig/util/src/platforms/unix/uuid_gen_unix.c
>> Wed Jan  9 21:39:33 2008
>> --- util/src/platforms/unix/uuid_gen_unix.c     Tue Oct 28 16:07:58 2008
>>
>>
>> ***************
>> *** 17,22 ****
>> --- 17,23 ----
>>    */
>>
>>   #include <config.h>
>> + #include <platforms/axutil_platform_auto_sense.h>
>>
>>   #include <sys/ioctl.h>
>>   #include <string.h>
>>
>>
>> ***************
>> *** 26,42 ****
>>   #include <fcntl.h>
>>   #include <unistd.h>
>>   #include <sys/types.h>
>> - #include <sys/socket.h>
>>   #include <sys/time.h>
>>
>>   #ifdef HAVE_LINUX_IF_H
>>
>>
>>   # include <linux/if.h>
>>   #else
>>   # ifdef HAVE_NET_IF_H
>> - #  include <sys/sockio.h>
>>   #  include <net/if.h>
>>   #  include <net/if_arp.h>
>>   # endif
>>   # ifdef HAVE_NET_IF_TYPES_H
>>
>>
>>   #  include <net/if_types.h>
>>   # endif
>> --- 27,45 ----
>>   #include <fcntl.h>
>>   #include <unistd.h>
>>   #include <sys/types.h>
>>   #include <sys/time.h>
>>
>> + /* these ifdefs would be better in a header file
>>
>>
>>   #ifdef HAVE_LINUX_IF_H
>>   # include <linux/if.h>
>>   #else
>>   # ifdef HAVE_NET_IF_H
>>   #  include <net/if.h>
>>   #  include <net/if_arp.h>
>>   # endif
>> + # ifdef HAVE_SOCKIO_H
>> + #  include <sys/sockio.h>
>>
>>
>> + # endif
>>   # ifdef HAVE_NET_IF_TYPES_H
>>   #  include <net/if_types.h>
>>   # endif
>>
>> todo: configure should check for existence of sys/sockio.h and set
>> HAVE_SYS_SOCKIO_H
>> ########################################################################
>>
>>
>> ####
>> make error:
>> In file included from uuid_gen_unix.c:37:
>> /usr/include/net/if_arp.h:68: error: expected specifier-qualifier-list
>> before 'u_short'
>> "fix": define _ALL_SOURCE before include of sys/types.h
>>
>>
>> add "-D_ALL_SOURCE" to CFLAGS before running configure
>> ########################################################################
>> ####
>> make error:
>> from uuid_gen_unix.c:50:
>> ../../../include/platforms/unix/axutil_unix.h:119:20: error: getopt.h:
>>
>>
>> No such file or directory
>> make: The error code from the last command is 1.
>> "fix": surrounded #include <getopt.h> with #ifdef HAVE_GETOPT_H in
>> ...util/include/platforms/unix/axutil_unix.h:
>> > clude/platforms/unix/axutil_unix.h
>>
>>
>> util/include/platforms/unix/axutil_unix.h
>> <
>> *** ../axis2c-src-1.4.0.orig/util/include/platforms/unix/axutil_unix.h
>> Sun Mar  9 23:29:37 2008
>> --- util/include/platforms/unix/axutil_unix.h   Tue Oct 28 12:49:18 2008
>>
>>
>> ***************
>> *** 116,122 ****
>> --- 116,124 ----
>>   #include "axutil_uuid_gen_unix.h"   /* uuid_gen unix implementation */
>>   #include <netinet/tcp.h>        /* TCP_NODELAY */
>>   #include <utime.h>
>>
>>
>> + #ifdef HAVE_GETOPT_H
>>   #include <getopt.h>
>> + #endif
>>   #include "axutil_date_time_util_unix.h"
>>
>>       /* for file access handling */
>>
>> todo: configure.ac: should check for existence of sys/sockio.h and set
>>
>>
>> HAVE_GETOPT_H
>>
>> ########################################################################
>> ####
>> make error:
>> gcc -DHAVE_CONFIG_H -I. -I. -I../../.. -I../../../include
>> -I../../../include/platforms -I../../../include/platforms/unix -g -O2
>>
>>
>> -D_ALL_SOURCE -D_LARGEFILE64_SOURCE -ansi -Wall -Werror
>> -Wno-implicit-function-declaration -MT thread_unix.lo -MD -MP -MF
>> .deps/thread_unix.Tpo -c thread_unix.c -DPIC -o .libs/thread_unix.o
>> cc1: warnings being treated as errors
>>
>>
>> thread_unix.c: In function 'axutil_thread_once_init':
>> thread_unix.c:279: warning: missing braces around initializer
>> thread_unix.c:279: warning: (near initialization for
>> 'once_init.__on_word')
>>
>> "fix": added -DAXIS2_AIX to CFLAGS AND changed
>>
>> util/src/platforms/unix/thread_unix.c as follows:
>> > c/platforms/unix/thread_unix.c util/src/platforms/unix/thread_unix.c
>> <
>> *** ../axis2c-src-1.4.0.orig/util/src/platforms/unix/thread_unix.c
>> Wed Jan  9 21:39:33 2008
>>
>>
>> --- util/src/platforms/unix/thread_unix.c       Tue Oct 28 12:49:20 2008
>> ***************
>> *** 17,22 ****
>> --- 17,23 ----
>>    */
>>
>>   #include <config.h>
>> + #include "platforms/axutil_platform_auto_sense.h"
>>
>>
>>   #include "axutil_thread_unix.h"
>>
>>   AXIS2_EXTERN axutil_threadattr_t *AXIS2_CALL
>> ***************
>> *** 273,279 ****
>>   axutil_thread_once_init(
>>       axutil_allocator_t * allocator)
>>   {
>> ! #ifdef AXIS2_SOLARIS
>>
>>
>>       static const pthread_once_t once_init = { PTHREAD_ONCE_INIT };
>>   #else
>>       static const pthread_once_t once_init = PTHREAD_ONCE_INIT;
>> --- 274,280 ----
>>   axutil_thread_once_init(
>>       axutil_allocator_t * allocator)
>>
>>
>>   {
>> ! #if (defined(AXIS2_SOLARIS) || defined(AXIS2_AIX))
>>       static const pthread_once_t once_init = { PTHREAD_ONCE_INIT };
>>   #else
>>       static const pthread_once_t once_init = PTHREAD_ONCE_INIT;
>>
>> ########################################################################
>>
>>
>> ####
>> make error:
>> ../include/platforms/unix/axutil_uuid_gen_unix.h:57: error: field
>> 'time_last' has incomplete type
>> plus a bunch more
>> "fix": this is also fixed if _ALL_SOURCE is defined before include of
>>
>>
>> sys/types.h
>> added -D_ALL_SOURCE to CFLAGS before configure
>> ########################################################################
>> ####
>> make error:
>> cc1: warnings being treated as errors
>> dir_handler.c: In function
>>
>>
>> 'axutil_dir_handler_list_services_or_modules_in_dir':
>> dir_handler.c:72: warning: passing argument 3 of 'scandir' from
>> incompatible pointer type
>> dir_handler.c: In function
>> 'axutil_dir_handler_list_service_or_module_dirs':
>>
>>
>> dir_handler.c:212: warning: passing argument 3 of 'scandir' from
>> incompatible pointer type
>> "fix":
>> * added -DAXIS2_AIX to CFLAGS
>> * changed dir_handler.c as follows:
>> > /opt/freeware/bin/diff -c
>>
>>
>> ../axis2c-src-1.4.0.orig/./util/src/dir_handler.c
>> ./util/src/dir_handler.c
>> *** ../axis2c-src-1.4.0.orig/./util/src/dir_handler.c   Tue Mar 18
>> 23:31:08 2008
>> --- ./util/src/dir_handler.c    Tue Oct 28 12:49:19 2008
>>
>>
>> ***************
>> *** 31,37 ****
>>
>>   extern int AXIS2_ALPHASORT(
>>       );
>> ! #ifdef IS_MACOSX
>>   int dir_select(
>>       struct dirent *entry);
>>   #else
>> --- 31,37 ----
>>
>>   extern int AXIS2_ALPHASORT(
>>
>>
>>       );
>> ! #if (defined IS_MACOSX || defined AXIS2_AIX )
>>   int dir_select(
>>       struct dirent *entry);
>>   #else
>> ***************
>> *** 39,47 ****
>> --- 39,53 ----
>>       const struct dirent *entry);
>>
>>   #endif
>>
>> + #ifdef AXIS2_AIX
>> + int
>> + file_select(
>> +     struct dirent *entry);
>> + #else
>>   int
>>   file_select(
>>       const struct dirent *entry);
>> + #endif
>>
>>   /**
>>    * List the dll files in the given service or module folder path
>>
>>
>> ***************
>> *** 321,328 ****
>>   }
>>
>>   int
>> ! file_select(
>> !     const struct dirent *entry)
>>   {
>>       /** FIXME:
>>         * This block of code has been sitting here doing nothing.
>> --- 327,337 ----
>>
>>
>>   }
>>
>>   int
>> ! #if (defined IS_MACOSX || defined AXIS2_AIX)
>> ! file_select( struct dirent *entry)
>> ! #else
>> ! file_select( const struct dirent *entry)
>> ! #endif
>>   {
>>       /** FIXME:
>>         * This block of code has been sitting here doing nothing.
>>
>>
>> ***************
>> *** 346,352 ****
>>           return (AXIS2_FALSE);
>>   }
>>
>> ! #ifdef IS_MACOSX
>>   int
>>   dir_select(
>>       struct dirent *entry)
>> --- 355,361 ----
>>           return (AXIS2_FALSE);
>>   }
>>
>>
>> ! #if (defined IS_MACOSX || defined AXIS2_AIX)
>>   int
>>   dir_select(
>>       struct dirent *entry)
>> ########################################################################
>> ####
>> make error:
>> data_handler.c: In function 'axiom_data_handler_read_from':
>>
>>
>> data_handler.c:156: error: storage size of 'stat_p' isn't known
>> cc1: warnings being treated as errors
>> data_handler.c:156: warning: unused variable 'stat_p'
>> file: ./axiom/src/attachments/data_handler.c
>>
>>
>> "fix": define _ALL_SOURCE before include of sys/types.h (see above)
>> ########################################################################
>> ####
>> make error: (plus many more)
>> In file included from
>>
>>
>> ../../../util/include/platforms/unix/axutil_unix.h:116,
>> from ../../../util/include/platforms/axutil_platform_auto_sense.h:51,
>> from ../../../util/include/axutil_uuid_gen.h:24,
>> from om_output.c:26:
>> ../../../util/include/platforms/unix/axutil_uuid_gen_unix.h:57: error:
>>
>>
>> field 'time_last' has incomplete type
>> file: .../axiom/src/om/om_output.c
>> "fix":
>> add -D_ALL_SOURCE to CFLAGS
>>
>> ########################################################################
>> ####
>>
>>
>> > make install
>> .
>> .
>> .
>> Target "install-data-am" is up to date.
>> Target "install" is up to date.
>> ########################################################################
>> ####runtime linker errors:
>>
>>
>> various errors including coredumps, libs not found, unable to load libs,
>> *.so missing from lib, etc.
>> try:
>> export LDFLAGS=-Wl,-brtl
>> ./configure ...
>>
>> axis2_http_server still coredumps
>> make is not passing LDFLAGS to linker
>>
>>
>> "fix": add -Wl,-brtl to CFLAGS before configure
>> todo: makefile gen should pass LDFLAGS in Makefile's
>> todo: my build output has a bunch of warnings from gcc about -brtl:
>> gcc: -brtl: linker input file unused because linking not done
>>
>>
>> gcc: unrecognized option '-brtl'
>>
>> ########################################################################
>> ####
>> rebuild from scratch
>> > export AXIS2C_HOME=$HOME/axis2c
>> > cd
>> > gtar xzf axis2c-src-1.4.0.tar.gz
>>
>>
>> > cd axis2c-src-1.4.0
>> > patch -p1 <../axis2c-src-1.4.0-aix-patch
>> # patch contents is just above diff output
>> > export CFLAGS="-DAXIS2_AIX -D_ALL_SOURCE -Wl,-brtl"
>> > ./configure --prefix=${AXIS2C_HOME}
>>
>>
>> > make install
>> .
>> .
>> .
>> Target "install" is up to date.
>>
>> ########################################################################
>> ####
>> build of samples
>> > export AXIS2C_HOME=$HOME/axis2c
>>
>>
>> > export LIBPATH=$LIBPATH:${AXIS2C_HOME}/lib/
>> > cd $HOME/axis2c-src-1.4.0/samples
>> > export CFLAGS="-DAXIS2_AIX -D_ALL_SOURCE -Wl,-brtl"
>> > ./configure --prefix=$AXIS2C_HOME
>> -with-axis2=${AXIS2C_HOME}/include/axis2-1.4.0
>>
>>
>> > make install
>> .
>> .
>> .
>> Target "install" is up to date.
>>
>>
>>
>> On Fri, Feb 27, 2009 at 7:52 PM, PP <pa...@gmail.com> wrote:
>>
>>> Hi,
>>>
>>> I followed these instructions to build axis2c on AIX. After little effort
>>> i was able to build the lib/server.
>>>
>>>
>>> http://mail-archives.apache.org/mod_mbox/ws-axis-c-dev/200810.mbox/%3C1C5078180E92E94595BBC384F5F3FC3B0206A8B6@USCOBRMFA-SE-70.northamerica.cexp.com%3E
>>>
>>> but when i start the server it just stops and when i see the error log.
>>> The error message is "cannot load /lib/axis2_http_sender.a ...invalid
>>> magic number....
>>>
>>> can someone please help what could be the error?
>>>
>>> My env is:
>>> AIX-rpm-6.1.0.0-1
>>> axis2c-src-1.5.0
>>>
>>> gcc-cpp-4.2.3-1
>>> gcc-4.2.3-1
>>> libgcc-4.2.3-1
>>>
>>>
>>>
>>> --
>>> Thanks & Regards
>>> Pradeep Patel
>>>
>>
>>
>>
>> --
>> Thanks & Regards
>> Pradeep Patel
>>
>
>
>
> --
> Thanks & Regards
> Pradeep Patel
>



-- 
Thanks & Regards
Pradeep Patel

Re: unable to start axis2_http_server on AIX 6.1

Posted by PP <pa...@gmail.com>.
hi,

i am still getting the same error.

[Mon Mar  2 13:26:20 2009] [error] class_loader.c(162) Loading shared
library ..//lib/libaxis2_http_sender.a  Failed. DLERROR IS        0509-022
Cannot load module ..//lib/libaxis2_http_sender.a.
        0509-103   The module has an invalid magic number.

the lib is present in the lib folder.

I am using 64-bit AIX. does it make any diff?

My env is:
AIX-rpm-6.1.0.0-1
axis2c-src-1.5.0

gcc-cpp-4.2.3-1
gcc-4.2.3-1
libgcc-4.2.3-1

CPU Type: 64-bit
Kernel Type: 64-bit
System Model: IBM,9111-520
Processor Type: PowerPC_POWER5
Number Of Processors: 2


On Mon, Mar 2, 2009 at 11:41 AM, PP <pa...@gmail.com> wrote:

> Anyone please help me?
> Why so many changes are required to compile Axis2c on AIX? The steps i
> followed are:
>
> I saw some posts to this list and the user list from a couple of months
> ago about issues building Axis2/C on AIX.  I managed to get 1.4.0 to
>
> build (and run) on AIX 5.3 and thought I should post my experience.
>
> I had to make some minor code changes and I am not sure the way I got it
> to build is the best (putting -D_ALL_SOURCE in CFLAGS seems like a bit
>
> of a hack).  I tried putting define of _ALL_SOURCE in an aix specific
> header file but I got into a recursive include mess and gave up ton
> that.
>
> Also, I have never used autoconf nor automake and my boxes don't have
>
> versions that work with the distributed configure.ac and Makefile.am
> files so I am not sure how the below "todo's" should be resolved.
>
> Versions:
> Axis2/C 1.4.0
>
> AIX 5.3
> gcc 4.2.0
> native ld
> native make
>
>
> Below are errors encountered and what I did to get around them.
> ########################################################################
> ####
> make: error:
>
> uuid_gen_unix.c:36:26: error: sys/sockio.h: No such file or directory
> "fix": surrounded #include <sys/sockio.h> with #ifdef HAVE_SYS_SOCKIO_H
> in ./util/src/platforms/unix/uuid_gen_unix.c:
> > /opt/freeware/bin/diff -c
>
> ../axis2c-src-1.4.0.orig/util/src/platforms/unix/uuid_gen_unix.c
> util/src/platforms/unix/>
> *** ../axis2c-src-1.4.0.orig/util/src/platforms/unix/uuid_gen_unix.c
> Wed Jan  9 21:39:33 2008
> --- util/src/platforms/unix/uuid_gen_unix.c     Tue Oct 28 16:07:58 2008
>
> ***************
> *** 17,22 ****
> --- 17,23 ----
>    */
>
>   #include <config.h>
> + #include <platforms/axutil_platform_auto_sense.h>
>
>   #include <sys/ioctl.h>
>   #include <string.h>
>
> ***************
> *** 26,42 ****
>   #include <fcntl.h>
>   #include <unistd.h>
>   #include <sys/types.h>
> - #include <sys/socket.h>
>   #include <sys/time.h>
>
>   #ifdef HAVE_LINUX_IF_H
>
>   # include <linux/if.h>
>   #else
>   # ifdef HAVE_NET_IF_H
> - #  include <sys/sockio.h>
>   #  include <net/if.h>
>   #  include <net/if_arp.h>
>   # endif
>   # ifdef HAVE_NET_IF_TYPES_H
>
>   #  include <net/if_types.h>
>   # endif
> --- 27,45 ----
>   #include <fcntl.h>
>   #include <unistd.h>
>   #include <sys/types.h>
>   #include <sys/time.h>
>
> + /* these ifdefs would be better in a header file
>
>   #ifdef HAVE_LINUX_IF_H
>   # include <linux/if.h>
>   #else
>   # ifdef HAVE_NET_IF_H
>   #  include <net/if.h>
>   #  include <net/if_arp.h>
>   # endif
> + # ifdef HAVE_SOCKIO_H
> + #  include <sys/sockio.h>
>
> + # endif
>   # ifdef HAVE_NET_IF_TYPES_H
>   #  include <net/if_types.h>
>   # endif
>
> todo: configure should check for existence of sys/sockio.h and set
> HAVE_SYS_SOCKIO_H
> ########################################################################
>
> ####
> make error:
> In file included from uuid_gen_unix.c:37:
> /usr/include/net/if_arp.h:68: error: expected specifier-qualifier-list
> before 'u_short'
> "fix": define _ALL_SOURCE before include of sys/types.h
>
> add "-D_ALL_SOURCE" to CFLAGS before running configure
> ########################################################################
> ####
> make error:
> from uuid_gen_unix.c:50:
> ../../../include/platforms/unix/axutil_unix.h:119:20: error: getopt.h:
>
> No such file or directory
> make: The error code from the last command is 1.
> "fix": surrounded #include <getopt.h> with #ifdef HAVE_GETOPT_H in
> ...util/include/platforms/unix/axutil_unix.h:
> > clude/platforms/unix/axutil_unix.h
>
> util/include/platforms/unix/axutil_unix.h
> <
> *** ../axis2c-src-1.4.0.orig/util/include/platforms/unix/axutil_unix.h
> Sun Mar  9 23:29:37 2008
> --- util/include/platforms/unix/axutil_unix.h   Tue Oct 28 12:49:18 2008
>
> ***************
> *** 116,122 ****
> --- 116,124 ----
>   #include "axutil_uuid_gen_unix.h"   /* uuid_gen unix implementation */
>   #include <netinet/tcp.h>        /* TCP_NODELAY */
>   #include <utime.h>
>
> + #ifdef HAVE_GETOPT_H
>   #include <getopt.h>
> + #endif
>   #include "axutil_date_time_util_unix.h"
>
>       /* for file access handling */
>
> todo: configure.ac: should check for existence of sys/sockio.h and set
>
> HAVE_GETOPT_H
>
> ########################################################################
> ####
> make error:
> gcc -DHAVE_CONFIG_H -I. -I. -I../../.. -I../../../include
> -I../../../include/platforms -I../../../include/platforms/unix -g -O2
>
> -D_ALL_SOURCE -D_LARGEFILE64_SOURCE -ansi -Wall -Werror
> -Wno-implicit-function-declaration -MT thread_unix.lo -MD -MP -MF
> .deps/thread_unix.Tpo -c thread_unix.c -DPIC -o .libs/thread_unix.o
> cc1: warnings being treated as errors
>
> thread_unix.c: In function 'axutil_thread_once_init':
> thread_unix.c:279: warning: missing braces around initializer
> thread_unix.c:279: warning: (near initialization for
> 'once_init.__on_word')
> "fix": added -DAXIS2_AIX to CFLAGS AND changed
>
> util/src/platforms/unix/thread_unix.c as follows:
> > c/platforms/unix/thread_unix.c util/src/platforms/unix/thread_unix.c
> <
> *** ../axis2c-src-1.4.0.orig/util/src/platforms/unix/thread_unix.c
> Wed Jan  9 21:39:33 2008
>
> --- util/src/platforms/unix/thread_unix.c       Tue Oct 28 12:49:20 2008
> ***************
> *** 17,22 ****
> --- 17,23 ----
>    */
>
>   #include <config.h>
> + #include "platforms/axutil_platform_auto_sense.h"
>
>   #include "axutil_thread_unix.h"
>
>   AXIS2_EXTERN axutil_threadattr_t *AXIS2_CALL
> ***************
> *** 273,279 ****
>   axutil_thread_once_init(
>       axutil_allocator_t * allocator)
>   {
> ! #ifdef AXIS2_SOLARIS
>
>       static const pthread_once_t once_init = { PTHREAD_ONCE_INIT };
>   #else
>       static const pthread_once_t once_init = PTHREAD_ONCE_INIT;
> --- 274,280 ----
>   axutil_thread_once_init(
>       axutil_allocator_t * allocator)
>
>   {
> ! #if (defined(AXIS2_SOLARIS) || defined(AXIS2_AIX))
>       static const pthread_once_t once_init = { PTHREAD_ONCE_INIT };
>   #else
>       static const pthread_once_t once_init = PTHREAD_ONCE_INIT;
>
> ########################################################################
>
> ####
> make error:
> ../include/platforms/unix/axutil_uuid_gen_unix.h:57: error: field
> 'time_last' has incomplete type
> plus a bunch more
> "fix": this is also fixed if _ALL_SOURCE is defined before include of
>
> sys/types.h
> added -D_ALL_SOURCE to CFLAGS before configure
> ########################################################################
> ####
> make error:
> cc1: warnings being treated as errors
> dir_handler.c: In function
>
> 'axutil_dir_handler_list_services_or_modules_in_dir':
> dir_handler.c:72: warning: passing argument 3 of 'scandir' from
> incompatible pointer type
> dir_handler.c: In function
> 'axutil_dir_handler_list_service_or_module_dirs':
>
> dir_handler.c:212: warning: passing argument 3 of 'scandir' from
> incompatible pointer type
> "fix":
> * added -DAXIS2_AIX to CFLAGS
> * changed dir_handler.c as follows:
> > /opt/freeware/bin/diff -c
>
> ../axis2c-src-1.4.0.orig/./util/src/dir_handler.c
> ./util/src/dir_handler.c
> *** ../axis2c-src-1.4.0.orig/./util/src/dir_handler.c   Tue Mar 18
> 23:31:08 2008
> --- ./util/src/dir_handler.c    Tue Oct 28 12:49:19 2008
>
> ***************
> *** 31,37 ****
>
>   extern int AXIS2_ALPHASORT(
>       );
> ! #ifdef IS_MACOSX
>   int dir_select(
>       struct dirent *entry);
>   #else
> --- 31,37 ----
>
>   extern int AXIS2_ALPHASORT(
>
>       );
> ! #if (defined IS_MACOSX || defined AXIS2_AIX )
>   int dir_select(
>       struct dirent *entry);
>   #else
> ***************
> *** 39,47 ****
> --- 39,53 ----
>       const struct dirent *entry);
>   #endif
>
> + #ifdef AXIS2_AIX
> + int
> + file_select(
> +     struct dirent *entry);
> + #else
>   int
>   file_select(
>       const struct dirent *entry);
> + #endif
>
>   /**
>    * List the dll files in the given service or module folder path
>
> ***************
> *** 321,328 ****
>   }
>
>   int
> ! file_select(
> !     const struct dirent *entry)
>   {
>       /** FIXME:
>         * This block of code has been sitting here doing nothing.
> --- 327,337 ----
>
>   }
>
>   int
> ! #if (defined IS_MACOSX || defined AXIS2_AIX)
> ! file_select( struct dirent *entry)
> ! #else
> ! file_select( const struct dirent *entry)
> ! #endif
>   {
>       /** FIXME:
>         * This block of code has been sitting here doing nothing.
>
> ***************
> *** 346,352 ****
>           return (AXIS2_FALSE);
>   }
>
> ! #ifdef IS_MACOSX
>   int
>   dir_select(
>       struct dirent *entry)
> --- 355,361 ----
>           return (AXIS2_FALSE);
>   }
>
> ! #if (defined IS_MACOSX || defined AXIS2_AIX)
>   int
>   dir_select(
>       struct dirent *entry)
> ########################################################################
> ####
> make error:
> data_handler.c: In function 'axiom_data_handler_read_from':
>
> data_handler.c:156: error: storage size of 'stat_p' isn't known
> cc1: warnings being treated as errors
> data_handler.c:156: warning: unused variable 'stat_p'
> file: ./axiom/src/attachments/data_handler.c
>
> "fix": define _ALL_SOURCE before include of sys/types.h (see above)
> ########################################################################
> ####
> make error: (plus many more)
> In file included from
>
> ../../../util/include/platforms/unix/axutil_unix.h:116,
> from ../../../util/include/platforms/axutil_platform_auto_sense.h:51,
> from ../../../util/include/axutil_uuid_gen.h:24,
> from om_output.c:26:
> ../../../util/include/platforms/unix/axutil_uuid_gen_unix.h:57: error:
>
> field 'time_last' has incomplete type
> file: .../axiom/src/om/om_output.c
> "fix":
> add -D_ALL_SOURCE to CFLAGS
>
> ########################################################################
> ####
>
> > make install
> .
> .
> .
> Target "install-data-am" is up to date.
> Target "install" is up to date.
> ########################################################################
> ####runtime linker errors:
>
> various errors including coredumps, libs not found, unable to load libs,
> *.so missing from lib, etc.
> try:
> export LDFLAGS=-Wl,-brtl
> ./configure ...
>
> axis2_http_server still coredumps
> make is not passing LDFLAGS to linker
>
> "fix": add -Wl,-brtl to CFLAGS before configure
> todo: makefile gen should pass LDFLAGS in Makefile's
> todo: my build output has a bunch of warnings from gcc about -brtl:
> gcc: -brtl: linker input file unused because linking not done
>
> gcc: unrecognized option '-brtl'
>
> ########################################################################
> ####
> rebuild from scratch
> > export AXIS2C_HOME=$HOME/axis2c
> > cd
> > gtar xzf axis2c-src-1.4.0.tar.gz
>
> > cd axis2c-src-1.4.0
> > patch -p1 <../axis2c-src-1.4.0-aix-patch
> # patch contents is just above diff output
> > export CFLAGS="-DAXIS2_AIX -D_ALL_SOURCE -Wl,-brtl"
> > ./configure --prefix=${AXIS2C_HOME}
>
> > make install
> .
> .
> .
> Target "install" is up to date.
>
> ########################################################################
> ####
> build of samples
> > export AXIS2C_HOME=$HOME/axis2c
>
> > export LIBPATH=$LIBPATH:${AXIS2C_HOME}/lib/
> > cd $HOME/axis2c-src-1.4.0/samples
> > export CFLAGS="-DAXIS2_AIX -D_ALL_SOURCE -Wl,-brtl"
> > ./configure --prefix=$AXIS2C_HOME
> -with-axis2=${AXIS2C_HOME}/include/axis2-1.4.0
>
> > make install
> .
> .
> .
> Target "install" is up to date.
>
>
>
> On Fri, Feb 27, 2009 at 7:52 PM, PP <pa...@gmail.com> wrote:
>
>> Hi,
>>
>> I followed these instructions to build axis2c on AIX. After little effort
>> i was able to build the lib/server.
>>
>>
>> http://mail-archives.apache.org/mod_mbox/ws-axis-c-dev/200810.mbox/%3C1C5078180E92E94595BBC384F5F3FC3B0206A8B6@USCOBRMFA-SE-70.northamerica.cexp.com%3E
>>
>> but when i start the server it just stops and when i see the error log.
>> The error message is "cannot load /lib/axis2_http_sender.a ...invalid
>> magic number....
>>
>> can someone please help what could be the error?
>>
>> My env is:
>> AIX-rpm-6.1.0.0-1
>> axis2c-src-1.5.0
>>
>> gcc-cpp-4.2.3-1
>> gcc-4.2.3-1
>> libgcc-4.2.3-1
>>
>>
>>
>> --
>> Thanks & Regards
>> Pradeep Patel
>>
>
>
>
> --
> Thanks & Regards
> Pradeep Patel
>



-- 
Thanks & Regards
Pradeep Patel