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-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to