You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by Christopher Schultz <ch...@christopherschultz.net> on 2015/01/07 00:25:23 UTC
[mod_jk] Modify how common/config.h gets built
All,
I give up. I can't seem to figure out exactly how common/config.h comes
into existence during the "configure" process.
When compiling on Mac OS X, I get the following irritating warning:
In file included from mod_jk.c:89:
In file included from ../common/jk_global.h:29:
../common/config.h:81:9: warning: 'PACKAGE_NAME' macro redefined
#define PACKAGE_NAME "mod_jk"
^
/usr/include/apache2/ap_config_auto.h:213:9: note: previous definition
is here
#define PACKAGE_NAME ""
^
There are 3 others like it for a few other #defines. I would like to
clean these up, but I can't just commit changes to common/config.h
because it's auto-generated.
Can anyone shed some light on where I can modify what gets dumped into
common/config.h? I see some stuff in config.status, but that in turn
gets generated by configure.
Any suggestions?
Thanks,
-chris
Re: [mod_jk] Modify how common/config.h gets built
Posted by Rainer Jung <ra...@kippdata.de>.
Am 07.01.2015 um 15:05 schrieb Christopher Schultz:
> On 1/7/15 6:24 AM, Rainer Jung wrote:
>> Am 07.01.2015 um 03:15 schrieb Konstantin Kolinko:
>>> 2015-01-07 2:25 GMT+03:00 Christopher Schultz
>>> <ch...@christopherschultz.net>:
>>>> All,
>>>>
>>>> I give up. I can't seem to figure out exactly how common/config.h comes
>>>> into existence during the "configure" process.
>>
>> It is created from common/config.h.in. Whereas most of the .in-based
>> files are created by configure (see configure.ac) in
>>
>> AC_OUTPUT([
>> Makefile
>> apache-1.3/Makefile
>> apache-1.3/Makefile.apxs
>> apache-2.0/Makefile
>> apache-2.0/Makefile.apxs
>> common/Makefile
>> common/list.mk
>> common/jk_types.h
>> ])
>>
>> the config.h is handled by
>>
>> AC_CONFIG_HEADER(common/config.h)
>>
>> and the PACKAGE variable values come from
>>
>> AC_INIT([mod_jk], [1.2.41])
>
> Okay, but how can we tweak what comes out into common/config.h?
I don't really know, but I expect no easy way to fine-tune the file. It
is meant to be generated by autoconf and contain the configure detection
results in the form of defines.
>> So I applied a workaround in r1650036, that can be found in other
>> modules as well, namely undefining those vars before including our own
>> config.h.
>
> That's exactly what I was going to do... just in config.h.
Which IMHO is harder or impossible to do.
>> Thanks for the heads up. I found it annoying as well and simply needed a
>> kick to look for a solution.
>
> :)
>
> I was going to take a look at all our native components to see if I
> could get rid of all warnings on both Linux and Mac OS X (environments
> to which I have easy access).
>
> It looks like mod_jk builds on Mac OS X now with no warnings or anything
> when using "-Wall -pedantic". Yay!
Great, thanks for checking.
Regards,
Rainer
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org
Re: [mod_jk] Modify how common/config.h gets built
Posted by Christopher Schultz <ch...@christopherschultz.net>.
Rainer,
On 1/7/15 6:24 AM, Rainer Jung wrote:
> Am 07.01.2015 um 03:15 schrieb Konstantin Kolinko:
>> 2015-01-07 2:25 GMT+03:00 Christopher Schultz
>> <ch...@christopherschultz.net>:
>>> All,
>>>
>>> I give up. I can't seem to figure out exactly how common/config.h comes
>>> into existence during the "configure" process.
>
> It is created from common/config.h.in. Whereas most of the .in-based
> files are created by configure (see configure.ac) in
>
> AC_OUTPUT([
> Makefile
> apache-1.3/Makefile
> apache-1.3/Makefile.apxs
> apache-2.0/Makefile
> apache-2.0/Makefile.apxs
> common/Makefile
> common/list.mk
> common/jk_types.h
> ])
>
> the config.h is handled by
>
> AC_CONFIG_HEADER(common/config.h)
>
> and the PACKAGE variable values come from
>
> AC_INIT([mod_jk], [1.2.41])
Okay, but how can we tweak what comes out into common/config.h?
>> I have never built mod_jk, but here are some thoughts
>>
>>> When compiling on Mac OS X, I get the following irritating warning:
>>>
>>> In file included from mod_jk.c:89:
>>> In file included from ../common/jk_global.h:29:
>>> ../common/config.h:81:9: warning: 'PACKAGE_NAME' macro redefined
>>> #define PACKAGE_NAME "mod_jk"
>>> ^
>>
>> 1. I think that the PACKAGE_NAME define is generated by the following
>> macro in native/configure.ac:
>>
>> dnl package and version.
>> dnl synchronization with common/jk_version.h ?
>> AC_INIT([mod_jk], [1.2.41])
>>
>>
>>> /usr/include/apache2/ap_config_auto.h:213:9: note: previous definition
>>> is here
>>> #define PACKAGE_NAME ""
>>> ^
>>
>> 2. From the path and file name, I think that the above header file
>> belongs to Apache HTTPD, not mod_jk. It is no wonder that it has a
>> different PACKAGE_NAME.
>>
>>> There are 3 others like it for a few other #defines. I would like to
>>> clean these up, but I can't just commit changes to common/config.h
>>> because it's auto-generated.
>>>
>>> Can anyone shed some light on where I can modify what gets dumped into
>>> common/config.h? I see some stuff in config.status, but that in turn
>>> gets generated by configure.
>>>
>>> Any suggestions?
>
> Yes, those errors are annoying. The problem is, that the Apache web
> server and also mod_jk use autoconf/automake and both include the
> generated defines for PACKAGE_NAME etc. in their header files.
> Officially those vars should not get published by Apache but instead be
> kept in private header files.
>
> During mod_jk build that generates these redefine warnings. Currently
> that does not pose a real problem, since the mod_jk defines win and we
> don't need the Apache defines.
>
> In Apache land the defines are in ap_config_auto.h, which is included in
> ap_config.h. I don't expect that not including Apache ap_config.h is an
> option. It is included itself in to many other Apache include files.
>
> So I applied a workaround in r1650036, that can be found in other
> modules as well, namely undefining those vars before including our own
> config.h.
That's exactly what I was going to do... just in config.h.
> Thanks for the heads up. I found it annoying as well and simply needed a
> kick to look for a solution.
:)
I was going to take a look at all our native components to see if I
could get rid of all warnings on both Linux and Mac OS X (environments
to which I have easy access).
It looks like mod_jk builds on Mac OS X now with no warnings or anything
when using "-Wall -pedantic". Yay!
Thanks,
-chris
Re: [mod_jk] Modify how common/config.h gets built
Posted by Rainer Jung <ra...@kippdata.de>.
Am 07.01.2015 um 03:15 schrieb Konstantin Kolinko:
> 2015-01-07 2:25 GMT+03:00 Christopher Schultz <ch...@christopherschultz.net>:
>> All,
>>
>> I give up. I can't seem to figure out exactly how common/config.h comes
>> into existence during the "configure" process.
It is created from common/config.h.in. Whereas most of the .in-based
files are created by configure (see configure.ac) in
AC_OUTPUT([
Makefile
apache-1.3/Makefile
apache-1.3/Makefile.apxs
apache-2.0/Makefile
apache-2.0/Makefile.apxs
common/Makefile
common/list.mk
common/jk_types.h
])
the config.h is handled by
AC_CONFIG_HEADER(common/config.h)
and the PACKAGE variable values come from
AC_INIT([mod_jk], [1.2.41])
> I have never built mod_jk, but here are some thoughts
>
>> When compiling on Mac OS X, I get the following irritating warning:
>>
>> In file included from mod_jk.c:89:
>> In file included from ../common/jk_global.h:29:
>> ../common/config.h:81:9: warning: 'PACKAGE_NAME' macro redefined
>> #define PACKAGE_NAME "mod_jk"
>> ^
>
> 1. I think that the PACKAGE_NAME define is generated by the following
> macro in native/configure.ac:
>
> dnl package and version.
> dnl synchronization with common/jk_version.h ?
> AC_INIT([mod_jk], [1.2.41])
>
>
>> /usr/include/apache2/ap_config_auto.h:213:9: note: previous definition
>> is here
>> #define PACKAGE_NAME ""
>> ^
>
> 2. From the path and file name, I think that the above header file
> belongs to Apache HTTPD, not mod_jk. It is no wonder that it has a
> different PACKAGE_NAME.
>
>> There are 3 others like it for a few other #defines. I would like to
>> clean these up, but I can't just commit changes to common/config.h
>> because it's auto-generated.
>>
>> Can anyone shed some light on where I can modify what gets dumped into
>> common/config.h? I see some stuff in config.status, but that in turn
>> gets generated by configure.
>>
>> Any suggestions?
Yes, those errors are annoying. The problem is, that the Apache web
server and also mod_jk use autoconf/automake and both include the
generated defines for PACKAGE_NAME etc. in their header files.
Officially those vars should not get published by Apache but instead be
kept in private header files.
During mod_jk build that generates these redefine warnings. Currently
that does not pose a real problem, since the mod_jk defines win and we
don't need the Apache defines.
In Apache land the defines are in ap_config_auto.h, which is included in
ap_config.h. I don't expect that not including Apache ap_config.h is an
option. It is included itself in to many other Apache include files.
So I applied a workaround in r1650036, that can be found in other
modules as well, namely undefining those vars before including our own
config.h.
Thanks for the heads up. I found it annoying as well and simply needed a
kick to look for a solution.
Regards,
Rainer
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org
Re: [mod_jk] Modify how common/config.h gets built
Posted by Konstantin Kolinko <kn...@gmail.com>.
2015-01-07 2:25 GMT+03:00 Christopher Schultz <ch...@christopherschultz.net>:
> All,
>
> I give up. I can't seem to figure out exactly how common/config.h comes
> into existence during the "configure" process.
Hi!
I have never built mod_jk, but here are some thoughts
> When compiling on Mac OS X, I get the following irritating warning:
>
> In file included from mod_jk.c:89:
> In file included from ../common/jk_global.h:29:
> ../common/config.h:81:9: warning: 'PACKAGE_NAME' macro redefined
> #define PACKAGE_NAME "mod_jk"
> ^
1. I think that the PACKAGE_NAME define is generated by the following
macro in native/configure.ac:
dnl package and version.
dnl synchronization with common/jk_version.h ?
AC_INIT([mod_jk], [1.2.41])
> /usr/include/apache2/ap_config_auto.h:213:9: note: previous definition
> is here
> #define PACKAGE_NAME ""
> ^
2. From the path and file name, I think that the above header file
belongs to Apache HTTPD, not mod_jk. It is no wonder that it has a
different PACKAGE_NAME.
> There are 3 others like it for a few other #defines. I would like to
> clean these up, but I can't just commit changes to common/config.h
> because it's auto-generated.
>
> Can anyone shed some light on where I can modify what gets dumped into
> common/config.h? I see some stuff in config.status, but that in turn
> gets generated by configure.
>
> Any suggestions?
Best regards,
Konstantin Kolinko
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org