From owner-freebsd-apache@FreeBSD.ORG Sun Jul 26 16:31:53 2009 Return-Path: Delivered-To: apache@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B759C1065675; Sun, 26 Jul 2009 16:31:53 +0000 (UTC) (envelope-from mi+thun@aldan.algebra.com) Received: from aldan.algebra.com (aldan.algebra.com [216.254.65.224]) by mx1.freebsd.org (Postfix) with ESMTP id 69DAE8FC16; Sun, 26 Jul 2009 16:31:53 +0000 (UTC) (envelope-from mi+thun@aldan.algebra.com) Received: from aldan.algebra.com (localhost [127.0.0.1]) by aldan.algebra.com (8.14.3/8.14.3) with ESMTP id n6QG0aWp010009; Sun, 26 Jul 2009 12:00:36 -0400 (EDT) (envelope-from mi+thun@aldan.algebra.com) Message-ID: <4A6C7DA4.4050107@aldan.algebra.com> Date: Sun, 26 Jul 2009 12:00:36 -0400 From: "Mikhail T." User-Agent: Thunderbird 2.0.0.22 (X11/20090711) MIME-Version: 1.0 To: pav@FreeBSD.org References: <1248608867.3438.10.camel@hood.oook.cz> In-Reply-To: <1248608867.3438.10.camel@hood.oook.cz> Content-Type: text/plain; charset=KOI8-R Content-Transfer-Encoding: 8bit Cc: Erwin Lansing , apache@FreeBSD.org Subject: Re: [Fwd: mod_dtcl-0.12.0_1 failed on amd64 8-exp] X-BeenThere: freebsd-apache@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Support of apache-related ports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 26 Jul 2009 16:31:54 -0000 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 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