Hi again,
 
    Now I have a DCL procedure found on the internet which analyzes .obj files 
and
    creates a modules.opt file with all object files named to be linked in it, 
and a 
    _link.opt file which has a symbol vector setup to name all the external 
avilable 
    symbole (procedures and data) Used to link all the object files into a 
sharable image,
    for OpenVMS, beeing very close to a DDL file.
 
    So far my AXIS2/C is compiled into a bunch of sharable images and all 
togeter
    form the axis2_http_server.exe, aimed at loading images on demand. 
 
    Also my server starts but fails during initialization with error 34 as it 
could not 
    load axis2_mod_addr.exe, which is another sharable image. 
 
    In fact it loades it but can not retreive the function axis2_get_instance()
 
    why?
   
    The problem has much to do with AXIS2_STATIC_DEPLOY, to which I have a
    few to now info found in the sources. (any other places to look?)
 
    The axis2_engine depends on axis2_engine_receivers and *receivers depend 
    on the *engine. as the *receivers come in with axis2_get_instance() 
    this symbo is used and hence leads to the problem of multiple defined 
symbols 
    if one likes to linke axis2_mod_addr.exe/share
 
    Now I can easy rename in each *mod* and in *sender* and *receiver*
    the function axis2_mod_addr_get_Instance(), and its counterpart but then 
the 
    class loader can not find it again, even he loads the module, the *sender*,
    *receiver* or any other *image* which has the axis2_get_instance() and the
    axis2_remove_instance() in it.
 
    **********************************    
    How shall / does static deployment work?
    **********************************
 
    what do I have to configure that I can start my server and get it running 
in this mode?.
 
    How are modules engaged if the server is made using STATIC_DEPLOMENT?
 
    what is statically deployed when the server is built for static and what is 
still
    loaded at runtime by the class loader? 
 
    Would it work if I change the name of the engine built in receiver method 
from
    axis2_get_instance into something different, if yes into what preferably?
 
    Unfortunately when I compile/link the objects making 
axis2_mod_addr.exe/share
    the error multiple defined symbols will happen. The exe is created but the
    symbol axis2_get_instance() is not generated into the axis2_mod_adder.exe
 
    And this makes the module loadable by the class loader but the classloader
    then fails as it can not find axis2_get_instance because it generated or 
inserted
    into the symbol table by the linker.
 
    The workarround could be that axis2_engine_receivers are made into a .DLL
    (an sharable OpenVMS image) too. This would allow all modules to be linked
    with the engine and would not result in the known error multiple defined 
symbols.
 
    How can I make it all static?
 
    OR
 
    How can I make axis2_engine_receivers into a self contained .DLL or image
    and avoid the cross dependencies of the two engine and receivers.
 
    I tried to link axis2_engine_receivers without engine. A NOGO.
 
    Thats itm, as else all my stuff is now compiled linked and is ready to 
startup
    as soon as modules and services are able to be loaded by the classloader
 
    and this is on HP Alpha OpenVMS
    regards
    Josef.Stadelmann
    @axa-winterthur.ch
 
    
     
     

-----Ursprüngliche Nachricht-----
Von: Dinesh Premalal [mailto:[EMAIL PROTECTED]
Gesendet: Montag, 29. Oktober 2007 09:26
An: Apache AXIS C User List
Betreff: Re: AXIS2/C OpenVMS Port


Hi, 
 
  Please find my comments inline.


On 10/24/07, Stadelmann Josef < [EMAIL PROTECTED]  <mailto:[EMAIL PROTECTED]> > 
wrote: 

Hi developer team, 

I have ported almost a great part of AXIS2/C to HP Alpha/OpenVMS 

so far, all basic libs (zlib, libxml2, ... ) a re running, are tested, 

so far, libxml2 is built and test after I have managed to move the test and 
result xml files correctly to OpenVMS 

so far, axutil is ported and has passed all given test (including uuidgen) 

so far, axiom is ported and has passed all existing tests (could use more 
testing on that component) 

so far, all core and module sources are compiled and .obj's are inserted into 
relevant .OLB files 

so far, axis2_http_server.c is compiled and linkes with only 3 minor warnings  
BUT IT FAILS ON STARTUP 

The reason is that AXIS2_PLAFTFORM_LOADLIB (axutil_class_loader) uses 


#include <dlfcn.h> 
void *dlopen (char *pathname, int mode); 


BUT my pathname arg points i.e to axis2_mod_addr.olb which is wrong and must be 
axis2_mod_addr.exe implemented as a shareable image

On a Alpha/OpenVMS system, shareable Images depend on a option file for 
linking, defining a transfer vector to gloabl processes, data, symbols, etc.

i.e. 

$ LINK/SHAREABLE  MY_MATH, SYS$INPUT/OPT 
GSMATCH=lequal,1,1000 
SYMBOL_VECTOR=(myadd=PROCEDURE,- 
               mysub=PROCEDURE,- 
               mymul=PROCEDURE,- 
               mydiv=PROCEDURE,- 
               my_symbol=DATA,- 
               my_data=PSECT) 
[Ctrl/Z] 


I would like to know from you dear team members, which routines, symbols, etc. 
of 

addr_in_handler.c;2 
addr_out_handler.c;2 
mod_addr.c;2 

I do have to declare in this option file as PROCEDURE, DATA, PSECT 

How can I get this information from existing axis2_mod_addr.lib's  out of 
Visual Studio C++ 2005, which I use for parallel development purpose, and then 
move the source to OpenVMS. 

I have made some MMK make files to build the components; not as clean as 
delivered, all in absence of dozends of unix tools (automake configure libtool 
etc) on OpenVMS, they need improvments in the area of generic and intrinsic 
rules, also maybe a better MMK.EXE would do the job more cleaner by following 
sub dirs etc. i.e. build of this mmk description files is a major work;


I think you could get an idea about  build frameworks of both unix and window 
by looking at make files and nmake files. I would recommend you to look at 
nmake file which is located in 

build/win32/makefile , which will be much more useful to get the details that 
you asked.

thanks,
Dinesh




Reply via email to