You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@httpd.apache.org by Ken Ashcraft <ka...@stanford.edu> on 2003/07/27 07:18:44 UTC

What is the point of aprutil.exp?

Hi,

I'm trying to run the Metacompiler (http://www.stanford.edu/~engler It
uses compile-time analysis to find bugs) on httpd-2.0.47.  I'm very new
to the source base, so I'd appreciate your help on the following:  I'm
having trouble figuring out where a bunch of function pointers are
used.  It appears that functions like

apr_os_exp_time_get
apr_threadkey_private_create
apr_poll_socket_clear

are only ever used in the files server/exports.c and
srclib/apr/exports.c.  These exports.c files are concatenated to
aprutil.exp during the build process, but I don't understand what
aprutil.exp is used for.  I don't see it referenced anywhere else.  And
those functions mentioned above manage to get linked into some .so
files, but I don't see who calls them.  

Is this how modules interface with the core code?  If so, does that mean
that these functions can be called asynchronously?

thanks for your help,
Ken


Re: What is the point of aprutil.exp?

Posted by Jeff Trawick <tr...@attglobal.net>.
Ken Ashcraft wrote:
> used.  It appears that functions like
> 
> apr_os_exp_time_get
> apr_threadkey_private_create
> apr_poll_socket_clear
> 
> are only ever used in the files server/exports.c and
> srclib/apr/exports.c.

Such functions are provided by APR but apparently not used by Apache 
httpd.  But Apache httpd is just one APR app...  there are others that 
may use them.

> aprutil.exp during the build process, but I don't understand what
> aprutil.exp is used for.

Certain Apache httpd modules (and presumably other APR apps) on AIX use 
aprutil.exp (and apr.exp and maybe httpd.exp) to specify which symbols 
they rely on from libaprutil (and libapr and maybe httpd).

This is the only way to link users of such routines on old AIX, and it 
is a  non-default but viable way to link users of such routines on newer 
AIX.

> Is this how modules interface with the core code?  If so, does that mean
> that these functions can be called asynchronously?

what modules are we talking about?

what does "asynchronously" mean?

does it help to understand that apr and aprutil exist independently of 
httpd, and that httpd is just one user of the features provided by apr 
and aprutil?