On Wed, Jun 14, 2000 at 12:21:34AM +0000, Shane Nay wrote:
> Those are internal functions to apache, like helper functions. Your probably
> missing an object file in your ld command, I don't have it open right now, but
> just run nm blah.o|grep ap_palloc on all the object files running around in the
> apache directory, and you'll find it. (Notice that most of these functions
> "look" similar to C calls, that's because they sort of are. There like cross
> platform wrapper functions for apache, pretty cool huh?) Oh, yes and nm's
> output will tell you two things, where the function is "used", and where its
> "defined". BTW: I think you're looking for libap.a, I just poked through that
> archive of object files, and it contained the symbols you're looking for. I
> don't know if AIX supports linking in archive files, but if not just link in by
> hand all the object files in that directory. (apache_1.blah/src/ap/*.o)
This is not the right way to do it - this would link in dead duplicates
of the code into the embperl shared object, possibly creating duplicate
global variables only visible in the embperl object that are not the
same as the ones used in the Apache main httpd executable. You must use
proper .exp files to signal the linker that the symbols are to be
imported at runtime from some other shared object.
> If nm shows the symbols in place, I would say it's probably the AIX linkers
> fault. I don't know much about AIX specifically but I have heard lots of
> people complain about their linker :-(.
It is not buggy, it is just very different. Most unix linkers consider
global variables from all shared objects that comprise a process image
as one global space. The AIX linker does not do that, it does
explicitely require you to specify which global symbols enter the
inter-module name space through the use of .exp files. If you link in
global symbols from some .o files these are not global symbols for other
shared objects unless being made inter-module global by an .exp file.
--
Jens-Uwe Mager
HELIOS Software GmbH
Steinriede 3
30827 Garbsen
Germany
Phone: +49 5131 709320
FAX: +49 5131 709325
Internet: [EMAIL PROTECTED]