Re: Any AIX experts out there?
Neal Norwitz <[email protected]> Sat, 01 Feb 2003 17:44:36 -0500
| Newsgroups | gmane.comp.python.snake-farm.user |
|---|---|
| Message-ID | <[email protected]> |
On Sat, Feb 01, 2003 at 11:25:03PM +0100, M.-A. Lemburg wrote: > Neal Norwitz wrote: > > >I am able to build now based on information provided by Gary Hooks > >from IBM. Here's what he said: > > > > The python.exp list is wrong. Using only the #! means that > > every listed symbol is a deferred import, and those are > > resolved by loading subsequent modules or calling loadbind(). > > What you need is a first line that has 3 characters: "#!." > > The period is critical. It tells the binder,and later the > > loader, that the symbol comes from the main application. This > > is why the module call-back fails. > > > > The "." syntax was introduced in AIX 4.2. The question is > > really, what code was doing the dynamic loading? If it worked > > on AIX 3.2 and 4.1, then it's pretty certain that Jens > > Uwe-Mager's dlopen implementation was being used, and his code > > did a full loadbind() of every module against every other > > module. That would have resolved the deferred imports. > > AFAIK, that old dlopen code still works, although we encourage > > people to use the native dlopen API. > > > > If you put the period in, the import list won't be handled > > properly pre-4.2. Yes, much changed in that release. So you > > have a bit of a conundrum. Not sure if configure can be > > trained to figure out the version/release and manipulate the > > import list appropriately... > > > >I've modified configure to recognize if we are AIX 4.2+ and add in the > >period. Is it possible that no one else is using dynamic (shared) > >libraries on AIX 4.2+? > > No :-) > > I've built Python on AIX a couple of times (both on AIX 3 and 4) > and always used shared libs (the mx tools and other third party tools). Did you use AIX 4.2/4.3 or 4.1? Do you have the dlopen library installed (Jens Uwe-Mager reference above) or is dynload_aix being used? (see DYNLOADFILE in Makefile) Do you know if the compiler, etc. were built on 4.2/4.3 or perhaps on an earlier version? (Not sure if this would matter or not.) > I never had to change python.exp, so I'm not sure whether this > really fixes the problem. It does allow imports of dynamic libraries to succeed on the test machine. Before it would crash. > Could be that makexp_aix needs fixing though: it relies on the > format of nm output, so if that changes, it's likely to cause > problems. I agree that makexp_aix could need upgrading. nm isn't a problem for me now, but I agree with you. I'm still not comfortable making the change. I'd really like feedback from AIX users. MAL, can you test if adding a period works for you? The easiest way to make the change is modifying the Makefile (after running configure) and change \"\" to a period ".". I will definitely update the AIX-NOTES file. Neal