[Xotcl] XoTCL 1.0 on AIX
Adrian Wallaschek
adrian_wallaschek at be.ibm.com
Mon Dec 9 19:05:21 CET 2002
Problem:
the build for AIX fails multiple times: mainly around building the shared
libraries.
Ok, I've worked a little bit:
the following issues came up:
- the choice of ALLOCA is not good vor Visual C/C++ 5.0. Choosing MALLOC
seems to be good and should be good for all IBM compilers
- the compilers were formerly versioned with hex codes now they are with
decimal codes which regrettably sabotages any scalar comparison so #if
__IBMC__ >= 0x306 won't work. This makes it hard to distinguish between
various IBM C compilers. If you insist compare only with = not with > or <.
- the shared library configuration is not correctly used in the makefiles.
see description below
I am currently collecting issues. With some help of the
creators/maintainers and probably somebody who gives them access to an AIX
box (sorry I cannot) we'll port correctly to AIX.
The thing with the shared libraries doesn't apply to AIX only but to all
systems like this.
What happens: The anatomy of the TCL (original within the TCL
configure/make system) is:
$(SHLIB_LD) $(SHLIB_LD_FLAGS) objects .... $(SHLIB_LD_LIBS)
The TCL configure sets the SHLIB_LD_LIBS to either being empty or ${LIBS}
in case the loader need the linkable libraries to generate the shared
library.
Now TCL would be linked like "shell + tcl-lib + dl-lib + c-lib + m-lib +
bsd-lib" (cited from memory not sure about the mathlib). So to create the
shared-lib tcl8.4 it uses "-ldl -lc -lm -lbsd" as value for $(LIBS)
Now XoTCL set the variable TCL_LIBS with those additional libs. This is
nice but ends here because the SHLIB_LD_LIBS needs LIBS
So the Makefile of XoTCL requires a line like:
LIBS=-ltcl8.4 $(TCL_LIBS)
If this is not set with the list of libraries needed to link an application
with XoTCL then the configuration in SHLIB_LD_LIBS is useless! AIX and some
other OSes need these libraries mentioned. TCL provides the list needed for
TCL, add TCL itself and any others you need yourself and set those to LIBS.
Now I suppose the tcl8.4 can also be taken from some variable. Also it
requires the either the LIBS or the SHLIB_LD_FLAGS to be extended with the
-L option to specify from where to take the libtcl8.4.so.
Currently my XoTCL library links correctly and is loadable nicely, but all
the changes are manually hacked. I need to redo in a more strucured way
later.
anyone offering help/support?
Regards,
Adrian Wallaschek
"Just when you think, life can't possible get worse,
it suddenly does!"
The Hitchhiker's guide to the galaxy - Douglas Adams
Uwe Zdun
<uwe.zdun at wu-wien To: Adrian Wallaschek/Belgium/Contr/IBM at IBMBE
.ac.at> cc:
Subject: Re: [Xotcl] Announcing XOTcl 1.0
09.12.02 17:18
Hi Adrian,
hast du das an die Liste geschickt? Es sieht so aus, als wäre es nur an
mich
gegangen.
Sorry, das ich deine andere Mail noch nicht angeschaut hatte; ich war übers
Wochenende nicht verfügbar ...
Ich bin auch nicht sicher, was das Problem ist; ich hab ja auch keinen
Access
zu einem AIX system, vielleicht kannst du es etwas näher spezifizieren und
an
die Liste schicken? Ich weiss nicht, ob Gustaf Neumann noch an ein AIX
System drankommt, dass würde das Problemsuchen vereinfachen ...
Gruss,
Uwe
On Monday 09 December 2002 03:58 pm, you wrote:
> Hi there!
>
> Anybody playing with XoTCL on an AIX 4.3.x?
>
> XoTcl is giving me a hard time to get it working. I'd like to get in
touch
> with somebody who had some success.
> So far I get a far as getting a shared lib created but when loading it,
it
> core dumps the TCL.
>
> Any hints/clues?
>
> Using AIX 4.3 with Visual C/C++ 5.
>
> In the meanwhile I'll try getting a gcc together.
>
> Regards,
> Adrian Wallaschek
>
> "Just when you think, life can't possible get worse,
> it suddenly does!"
> The Hitchhiker's guide to the galaxy - Douglas Adams
--
Uwe Zdun
Department of Information Systems, Vienna University of Economics
Phone: +43 1 313 36 4796, Fax: +43 1 313 36 746
zdun@{xotcl,computer,acm}.org, uwe.zdun at wu-wien.ac.at
More information about the Xotcl
mailing list