Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 20 Jun 2012 14:01:37 +0400
From:      Boris Samorodov <bsam@passap.ru>
To:        Beat Gaetzi <beat@FreeBSD.org>
Cc:        jkim@FreeBSD.org, freebsd-gecko@FreeBSD.org, freebsd-ports@freebsd.org, "Andrew W. Nosenko" <andrew.w.nosenko@gmail.com>
Subject:   Re: clang, dbus, firefox+thunderbird
Message-ID:  <4FE19F81.5090105@passap.ru>
In-Reply-To: <CAJTLrNwyhSnzC8Qjqfc%2B1phX_SFdiRPm=9bnjvBKYjZEn1Nh=g@mail.gmail.com>
References:  <4FE097DA.30701@passap.ru> <CALa-7vwOaw5hwMGdDN497KCG=qn3NK_hPA8VYeDCDErE6oSmvQ@mail.gmail.com> <4FE18BB5.5040803@passap.ru> <CAJTLrNwyhSnzC8Qjqfc%2B1phX_SFdiRPm=9bnjvBKYjZEn1Nh=g@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
20.06.2012 12:45, Beat Gaetzi пишет:
> 2012/6/20 Boris Samorodov <bsam@passap.ru>:
>> 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<bsam@passap.ru>  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 "<!DOCTYPE node PUBLIC
>>>>
>>>> \""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 "<!DOCTYPE node PUBLIC
>>>>
>>>> \""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 "<!DOCTYPE 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 "<!DOCTYPE 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





Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4FE19F81.5090105>