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>
next in thread | previous in thread | raw e-mail | index | archive | help
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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4A6C7DA4.4050107>