Date: Sun, 26 Jul 2009 12:00:36 -0400 From: "Mikhail T." <mi+thun@aldan.algebra.com> To: pav@FreeBSD.org Cc: Erwin Lansing <erwin@FreeBSD.org>, apache@FreeBSD.org Subject: Re: [Fwd: mod_dtcl-0.12.0_1 failed on amd64 8-exp] Message-ID: <4A6C7DA4.4050107@aldan.algebra.com> In-Reply-To: <1248608867.3438.10.camel@hood.oook.cz> References: <1248608867.3438.10.camel@hood.oook.cz>
index | next in thread | previous in thread | raw e-mail
Pav Lucistnik ΞΑΠΙΣΑΧ(ΜΑ):
...
apache_cookie.So(.text+0x0): In function `ap_os_is_path_absolute':
: multiple definition of `ap_os_is_path_absolute'
tcl_commands.So(.text+0x0): first defined here
Apache attempts to make the function -- ap_os_is_path_absolute --
inlined, wherever possible. From ${LOCALBASE}/include/apache/os.h:
#if !defined(INLINE) && defined(USE_GNU_INLINE)
/* Compiler supports inline, so include the inlineable functions as
* part of the header
*/
#define INLINE extern ap_inline
INLINE int ap_os_is_path_absolute(const char *file);
#include "os-inline.c"
#else
/* Compiler does not support inline, so prototype the inlineable
functions
* as normal
*/
extern int ap_os_is_path_absolute(const char *file);
#endif
Apparently, something misfires on the 8.0 (amd64-only?) and the
os-inline.c is included, but the function remains non-inlined. As a
result, everybody, who includes the <apache/os.h> gets a full
(non-inlined) definition of the function. This is really up for Apache@
people to investigate/fix, I think...
Considering, that all of the possible C-compilers available on FreeBSD
support the "inline" keyword properly, the simplest solution, probably,
is to untangle the ifdef-mess and just always use "inline" --
unconditionally.
As an alternative, I can try to add a "-DINLINE=inline" to the CFLAGS in
the port, but it seems like a cludge -- currently the CFLAGS are derived
from the output of ``apxs -q CFLAGS CFLAGS_SHLIB'', which is how things
should be, shouldn't they?
Yours,
-mi
help
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4A6C7DA4.4050107>
