httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "William A. Rowe, Jr." <>
Subject RE: cvs commit: apache-2.0/src/lib/apr/include apr.hw
Date Wed, 11 Oct 2000 17:33:04 GMT
> wrowe       00/10/11 10:05:07
>   Modified:    src/lib/apr/include apr.hw
>   Log:
>     Take Greg's criticism very literally.  EXPORT (when it's 
> really IMPORT)
>     is a true Lewis Carrollism.  This patch replaces the following:
>       APR_EXPORT()        -> APR_DECLARE()         This is a public fn
>       APR_EXPORT_NONSTD() -> APR_DECLARE_NONSTD()  This is a varargs fn
>       APR_VAR_EXPORT      -> APR_DECLARE_DATA      These are public vars
>       APR_VAR_IMPORT      -> APR_DECLARE_DATA      ditto
>       APR_EXPORT_SYMBOLS  -> APR_DECLARE_EXPORT Compile the lib to export
>       APR_STATIC          -> APR_DECLARE_STATIC Compile:linked to the .lib
>       no define                                 Compile:linked to the .dll
>     The old symbols are retained in-place.  I will wait for the firestorm
>     of controversy to die before we actually use these symbols in the APR,
>     or will back out the new names under CtR

There we are.  Everyone should look at these symbol names and ask themselves
if this makes fundimentally more sense.  Corresponding changes in ap_config.h
bring the Apache Core into the same schema (AP_DECLARE* and MODULE_DECLARE*
for modules to always export symbols).  And I really illustrated it within 
mod_dav (although it's overkill, mod_dav doesn't need all the symbols, since 
it exports only functions at this moment.  I left them in as place holders 
till Greg and company are done identifing all potential exports.)

Compiling APR, APR_DECLARE* exports symbols.

Linking to aprlib.dll, APR_DECLARE* imports symbols.

Under other platforms, or static linking to apr.lib (for example, the
support and installer binaries) APR_DECLARE* does nothing at all.

I really believe this is less confusing, as Greg suggested.

Wouldn't this be a happy day.  However, it's a mass symbol rename.  
I'm batting close to 0 to getting anything like this past the list.
So I didn't - the old symbols are all aliased right alongside these
new declarations.  So vote your preference or veto this symbol rename,
as you will.


View raw message