httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ben Laurie <>
Subject Re: cvs commit: apache-1.3/src/include ap_mmn.h
Date Tue, 25 Aug 1998 19:51:18 GMT
Alexei Kosut wrote:
> On 14 Aug 1998, Randy Terbush wrote:
> > I understand that ap_log_rerror was not a minor change, but did it
> > really cause enough changes that would have required an old module to
> > be recompiled? I must admit that I have not studied the change, but
> > the change to MODULE_MAGIC_NUMBER_MAJOR is *fatal* for older modules.
> Yes, it would. This was (and I just remembered) one of the reasons why I
> never bothered to do this for 1.x, even though I've thought about it
> numerous times.
> It is obvious that the removal of a function, or a change in name or
> parameters will require recompilation. However, the *addition* of a
> function requires recompilation as well. Why? Because some OSes, Win32 in
> particular, do symbol lookups on linked-in (as opposed to loaded
> programatically) shared libraries not by name, but ordinally. VC++'s
> linker makes DLLs with, by default, alphabetized lists of functions. So
> ap_log_rerror gets placed in the slot after ap_log_reason, and all the
> functions following it are pushed up one. So a function calling
> ap_log_unixerr, for example, will now actually be calling ap_log_rerror.
> Which is a Bad Thing.
> There are ways to fix this (maintain a .def file with a fixed-order list
> of functions, and add new ones to the bottom), but we don't do them.

Hang about - we've been here before, surely? If you provide a .def file
THEN you get linked ordinally. Otherwise the ordinals are just hints and
the _real_ match is done on the string. So you pay a little in
efficiency, but it doesn't go all weird on you.

I think!



Ben Laurie            |Phone: +44 (181) 735 0686| Apache Group member
Freelance Consultant  |Fax:   +44 (181) 735 0689|
and Technical Director|Email: |
A.L. Digital Ltd,     |Apache-SSL author
London, England.      |"Apache: TDG"


View raw message