Hi,

Thanks for your e-mail.

> You may want to look at our autoconf template for building modules
> that we contributed as mentioned on opendx.org.

Yes, we based our modules on your template.  Thank you - it is very
useful.  The template works great for C modules.  Our module, however,
is written in C++, so we had to modify the template.

> Also, you need to make sure that you export the symbols when
> building the dxexec for AIX.

I presume you mean the module, not dxexec.  Yes, I tried a few things
for exporting, all to no avail: "-bexpall", "-bexpfull", an export
file (-bE:file_name) with only "DXEntry" and the module name,
"m_ImportHDF5Field", and finally I made libtool generate an export
file for me.

Because OpenDX's dxexec is built on AIX without the "-brtl" option,
dxexec was even unable to load our module that was built with
"-BI:/path_to_opendx/lib/dxexec.exp".  To build a module that dxexec
is able to open, I had to slightly modify the dxexec.exp file (replace
the first line from "#!" with "#!.").

After I examined your template, my guess is that on AIX it will
produce modules that dxexec cannot load.  I have not tried this.

> I remember once having a similar problem and it was because the -bE
> was not included when linking. I have never built binaries for AIX
> 5, but I have for 4.1.2, 4.2 and 4.3.

Depending on how I compile our module, the module or dxexec crashes in
various places.  When "-bE" is not included, dxexec crashes on loading
the module.

Now, I found something in the IBM "AIX Linking and Loading Mechanisms"
publication.  There is this ominous paragraph:

"On a final note, in the same way that a C++-aware tool must be used
to build loadable modules contaning C++ code, it is required that any
application that will take adavantage of C++-based modules should be
built with the C++ compiler.  Thus, final program construction should
be accomplished with either the xlC or xlC_r command, depending upon
whether thread support is necessary."

Bottomline: if you work on AIX and want to use a C++ loadable module
in OpenDX, then dxexec should be linked with a C++ command.

To test the above idea, I built dxexec with xlC_r.  Unfortunately, I
must have done sth wrong, because it crashed before it entered "main".

> If it is something that you just have to complete and have a little
> bit of money set aside, we could probably help out further if you
> purchase a tech support incident.

Thank you for your offer.  I was hired to further develop the modules
and to port them to AIX, and so it is rather a delicate matter for me
to ask my boss to hire someone else for just this task.

Have you heard of anyone else who works on C++ loadable modules for
AIX 5?


Best,
Irek




Reply via email to