From owner-freebsd-ports@FreeBSD.ORG Wed Jun 20 10:01:41 2012 Return-Path: Delivered-To: freebsd-ports@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6C759106564A; Wed, 20 Jun 2012 10:01:41 +0000 (UTC) (envelope-from bsam@passap.ru) Received: from forward5h.mail.yandex.net (forward5h.mail.yandex.net [IPv6:2a02:6b8:0:f05::5]) by mx1.freebsd.org (Postfix) with ESMTP id 6A3058FC18; Wed, 20 Jun 2012 10:01:40 +0000 (UTC) Received: from smtp2h.mail.yandex.net (smtp2h.mail.yandex.net [84.201.187.145]) by forward5h.mail.yandex.net (Yandex) with ESMTP id B4EF6D0241F; Wed, 20 Jun 2012 14:01:38 +0400 (MSK) Received: from smtp2h.mail.yandex.net (localhost [127.0.0.1]) by smtp2h.mail.yandex.net (Yandex) with ESMTP id 329E7170014E; Wed, 20 Jun 2012 14:01:38 +0400 (MSK) Received: from 87.249.28.58.tel.ru (87.249.28.58.tel.ru [87.249.28.58]) by smtp2h.mail.yandex.net (nwsmtp/Yandex) with ESMTP id 1bLKXBmu-1bL8SWvi; Wed, 20 Jun 2012 14:01:37 +0400 X-Yandex-Rcpt-Suid: beat@FreeBSD.org X-Yandex-Rcpt-Suid: andrew.w.nosenko@gmail.com X-Yandex-Rcpt-Suid: freebsd-ports@freebsd.org X-Yandex-Rcpt-Suid: jkim@FreeBSD.org X-Yandex-Rcpt-Suid: freebsd-gecko@FreeBSD.org Message-ID: <4FE19F81.5090105@passap.ru> Date: Wed, 20 Jun 2012 14:01:37 +0400 From: Boris Samorodov User-Agent: Mozilla/5.0 (X11; FreeBSD i386; rv:13.0) Gecko/20120620 Thunderbird/13.0.1 MIME-Version: 1.0 To: Beat Gaetzi References: <4FE097DA.30701@passap.ru> <4FE18BB5.5040803@passap.ru> In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Cc: jkim@FreeBSD.org, freebsd-gecko@FreeBSD.org, freebsd-ports@freebsd.org, "Andrew W. Nosenko" Subject: Re: clang, dbus, firefox+thunderbird X-BeenThere: freebsd-ports@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting software to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Jun 2012 10:01:41 -0000 20.06.2012 12:45, Beat Gaetzi пишет: > 2012/6/20 Boris Samorodov : >> Hi All, >> >> Andrew, thanks for your time and help! >> >> 19.06.2012 21:14, Andrew W. Nosenko написал: >> >>> On Tue, Jun 19, 2012 at 6:16 PM, Boris Samorodov wrote: >>>> >>>> Hi List, >>>> >>>> I use clang compiled world (WITH_CLANG_IS_CC="YES" and >>>> WITH_LIBCPLUSPLUS="YES" at /etc/make.conf). The system >>>> is current: >>>> ----- >>>> % uname -a >>>> FreeBSD bsam.wart.ru 10.0-CURRENT FreeBSD 10.0-CURRENT #16 r237055: Thu >>>> Jun >>>> 14 17:16:43 SAMT 2012 bsam@bsam.wart.ru:/usr/obj/usr/src/sys/BBX >>>> i386 >>>> ----- >>>> >>>> While updating to the latest firefox I get an error: >>>> ----- >>>> /usr/local/include/dbus-1.0/dbus/dbus-protocol.h:459:77: error: invalid >>>> suffix on literal; C++11 requires a space between literal and identifier >>>> [-Wreserved-user-defined-literal] >>>> #define DBUS_INTROSPECT_1_0_XML_DOCTYPE_DECL_NODE ">>> >>>> \""DBUS_INTROSPECT_1_0_XML_PUBLIC_IDENTIFIER"\"\n\""DBUS_INTROSPECT_1_0_XML_SYSTEM_IDENTIFIER"\">\n" >>>> >>>> ^ >>>> >>>> >>>> /usr/local/include/dbus-1.0/dbus/dbus-protocol.h:459:126: error: invalid >>>> suffix on literal; C++11 requires a space between literal and identifier >>>> [-Wreserved-user-defined-literal] >>>> #define DBUS_INTROSPECT_1_0_XML_DOCTYPE_DECL_NODE ">>> >>>> \""DBUS_INTROSPECT_1_0_XML_PUBLIC_IDENTIFIER"\"\n\""DBUS_INTROSPECT_1_0_XML_SYSTEM_IDENTIFIER"\">\n" >>>> >>>> ^ >>>> >>>> >>>> 2 errors generated. >>>> >>>> ----- >>>> >>>> OK, I did make config and deselect DBUS. Great, firefox compiles and >>>> installs (the latest one, 13.0.1). Then I try to upgrade thunderbird >>>> and get the same error. However there is no option DBUS to disable. >>>> >>>> What am I to do? >>>> Thanks! >>> >>> >>> It's because of "User defined literals" (the new c++11 feature) and >>> your clang++ is in c++11 (or gnu++11?) mode by default. >>> >>> As workaround, you may try either: "downgrade" to something like gnu++ >>> 98 (-std=gnu++98), or edit dbus-protocol.h header for make it c++11 >>> compatible. It's easy: just add spaces around >>> DBUS_INTROSPECT_1_0_XML_PUBLIC_IDENTIFIER and >>> DBUS_INTROSPECT_1_0_XML_SYSTEM_IDENTIFIER literals in the line 459 >>> (just as compiler suggested). >>> >>> I.e. the line 459 >>> >>> #define DBUS_INTROSPECT_1_0_XML_DOCTYPE_DECL_NODE ">> PUBLIC >>> \""DBUS_INTROSPECT_1_0_XML_PUBLIC_IDENTIFIER"\"\n\""DBUS_INTROSPECT_1_0_XML_SYSTEM_IDENTIFIER"\">\n" >>> >>> should be written as >>> >>> #define DBUS_INTROSPECT_1_0_XML_DOCTYPE_DECL_NODE ">> PUBLIC \"" DBUS_INTROSPECT_1_0_XML_PUBLIC_IDENTIFIER "\"\n\"" >>> DBUS_INTROSPECT_1_0_XML_SYSTEM_IDENTIFIER "\">\n" >> >> >> You are right. And AFAIK a similar fix was committed to the ports tree >> while I was testing your suggestion. >> >> The fix helped clang to build firefox with DBUS on. However, >> thunderbird stopped building with another error. I'll create >> a new thread on the matter after some testing. > > There are patches to build Thunderbird with clang: > > http://lists.freebsd.org/pipermail/freebsd-gecko/2012-June/002273.html > > Maybe you could give them a try. Confirmed. It works for thunderbird 13.0.1. Thanks! -- WBR, Boris Samorodov (bsam) FreeBSD Committer, http://www.FreeBSD.org The Power To Serve