httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "William A. Rowe, Jr." <>
Subject RE: _selfish_ NT development requests
Date Thu, 16 Mar 2000 18:27:03 GMT
> From: Manoj Kasichainula []
> Sent: Wednesday, March 15, 2000 3:03 PM
> On Tue, Mar 14, 2000 at 12:06:29AM -0600, William A. Rowe, Jr. wrote:
> > The problem, though, is that the
> > precompiled header of the core source files #define'ing
> > compatible with the header of the core source files that
> don't define it.
> > I have a somewhat radical thought to solve it... is it
> unreasonable ACROSS
> > ALL PLATFORMS to compile the core binary with a define directive
> > (-dCORE_PRIVATE) rather than #define'ing it at the top of
> specific modules?
> This sounds ugly to me. I agree with Bill here.

Which of us :~? - but I agree this does not address what CORE_PRIVATE was
ment to accomplish.  My thought is CORE_PRIVATE is a code permissions flag
(this module is spying where it shouldn't so to speak), more than some
module-inclusion flag for linkage.

> But, would it be just as effective to separate out the CORE_PRIVATE
> stuff into separate header files? This was something Ryan and I talked
> about doing a while back when we were revamping the header files, but
> no one has gotten around to it.
> We wanted to do this because it just looks and feels cleaner to have a
> set of headerfiles containing nothing but the API. It sounds like this
> will help you as well, and not add ickiness to the build process.

My thoughts exactly.

So... I tore it apart, and want some feedback.

CORE_PRIVATE applies to 4 headers, httpd.h, http_core.h, http_request.h, and

The http_core.h privates have dependencies on its publics.  Therefore these
cannot be drawn into a single header without requiring httpd.h _and_
http_core.h be included prior to http_core_private.

Or... create 2+ headers, at least httpd_private.h and http_core_private.h
both required and in that order, or...

Include the dependent headers within the headers, or...

Add conditionals to a single header.  When http_core_private.h is included,
conditionally invoke the http_core definitions based on the
APACHE_HTTP_CORE_H define.  To prevent errors, add tests in the public
headers and #error out if they are included after APACHE_HTTP_CORE_PRIVATE_H
is parsed.


The other aspect, creating some core defines for APR_EXPORT, COREDLL_EXPORT
etc. will be in another post.

View raw message