httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Brian Havard" <bri...@kheldar.apana.org.au>
Subject Re: make_exports.awk vs APR_DECLARE_* macros
Date Wed, 25 Jul 2001 16:13:16 GMT
On Wed, 25 Jul 2001 08:36:56 -0700, Ryan Bloom wrote:

>On Tuesday 24 July 2001 22:45, William A. Rowe, Jr. wrote:
>> Good point.  And folks, this is a 2.0.22-dev showstopper :(
>>
>> Ryan, you invented both constructs.  Thoughts?
>
>First, apr_file_set_inherit isn't in the exports file, because we explicitly don't put
it there.
>The problem is that the function only exists when a macro is evaluated, so if we use the

>awk script, then we try to create  a line like:
>
>void *ap_hack_apr_set_##type##_inherit = apr_set_##name##_inherit
>
>This is obviosly wrong.  No amount of mucking with APR_DECLARE_* will resolve this.
>
>I guess I am having a hard time seeing any way to resolve this problem.

I worked around it with the change in the patch below. There are others, of
course, but this gets all current modules building again. The other option
is to have make_exports.awk know how to do the same transform but to do
that it would require full knowledge of ALL such macros.

Maybe we could pass the .h files through the CPP before feeding them to
make_exports.awk? Probably not practical but might be worth a try.


Index: apr_file_io.h
===================================================================
RCS file: /usr/local/cvs/apr/include/apr_file_io.h,v
retrieving revision 1.105
diff -u -r1.105 apr_file_io.h
--- apr_file_io.h	2001/07/18 19:12:41	1.105
+++ apr_file_io.h	2001/07/25 16:01:34
@@ -575,14 +576,14 @@
  * @param file The file to enable inheritance.
  * @deffunc void apr_file_set_inherit(apr_file_t *file)
  */
-APR_DECLARE_SET_INHERIT(file);
+APR_DECLARE(void) apr_file_set_inherit(apr_file_t *file);
 
 /**
  * Unset a file from being inherited by child processes.
  * @param file The file to disable inheritance.
  * @deffunc void apr_file_unset_inherit(apr_file_t *file)
  */
-APR_DECLARE_UNSET_INHERIT(file);
+APR_DECLARE(void) apr_file_unset_inherit(apr_file_t *file);
 
 #ifdef __cplusplus
 }


>> ----- Original Message -----
>> From: "Brian Havard" <brianh@kheldar.apana.org.au>
>> To: "Apache Developers Mailing List" <new-httpd@apache.org>
>> Sent: Tuesday, July 24, 2001 9:43 PM
>> Subject: make_exports.awk vs APR_DECLARE_* macros
>>
>> > A problem I have with the current code is that apr_file_set_inherit()
>> > isn't included in the exports list because its declaration isn't of the
>> > usual form. We need to either make make_exports.awk aware of the various
>> > APR_DECLARE_* macros or ditch them altogether & declare them normally. I
>> > vote the latter, we write the standard form in the comment above it
>> > anyway...

-- 
 ______________________________________________________________________________
 |  Brian Havard                 |  "He is not the messiah!                   |
 |  brianh@kheldar.apana.org.au  |  He's a very naughty boy!" - Life of Brian |
 ------------------------------------------------------------------------------


Mime
View raw message