httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "William A. Rowe, Jr." <wr...@rowe-clan.net>
Subject RE: cvs commit: apache-2.0/src/include ap_config.h
Date Wed, 11 Oct 2000 13:03:48 GMT
> From: Greg Stein [mailto:gstein@lyra.org]
> Sent: Wednesday, October 11, 2000 3:33 AM
> 
> Not necessarily a debate here :-) ... but what is the difference between
> API_EXPORT and MODULE_EXPORT? And API_VAR_EXPORT and MODULE_VAR_EXPORT?
> 
> They all look the same to me.
> 
> Can we possibly convert to a single form and grandfather the older ones?
> 
> e.g. AP_EXPORT(type), AP_EXPORT_NONSTD(type), AP_EXPORT_VAR

They change meaning on the context of what is defined when the compiler
is invoked:

APR_ symbols become dllexport when APR_EXPORT_SYMBOLS is defined, say, when
     we are building the shared APR_ library.  Otherwise dllimport on Win32
     unless STATIC_SYMBOLS - This is the APR library

API_ symbols become dllexport when APR_EXPORT_SYMBOLS is defined, say, when
     we are building the shared APR_ library.  Otherwise dllimport on Win32
     unless STATIC_SYMBOLS - This is the CORE library

MODULE_ symbols just -stay- as dllexport.  They don't change meanings into
        dllimport on any flag at all - These are (usually) mod_.dll's that
        nobody else includes.

DAV_ is the very example of how these tricks are played for mod_dav.h, and
was included in the patch I posted.

Yes, _EXPORT() and _EXPORT_NONSTD() are identical, at the moment.  If we wanted
another calling method (c v.s. pascal conventions) this would be the one stop
shop to change that behavior.  I will be testing it next week for robustness.


Mime
View raw message