Re: clang, dbus, firefox+thunderbird

2012-06-20 Thread 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 Samorodovb...@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 b...@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.

--
WBR, Boris Samorodov (bsam)
FreeBSD Committer, http://www.FreeBSD.org The Power To Serve
___
freebsd-ports@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to freebsd-ports-unsubscr...@freebsd.org


Re: clang, dbus, firefox+thunderbird

2012-06-20 Thread Beat Gaetzi
2012/6/20 Boris Samorodov b...@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 Samorodovb...@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     b...@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.

Beat
___
freebsd-ports@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to freebsd-ports-unsubscr...@freebsd.org


Re: clang, dbus, firefox+thunderbird

2012-06-20 Thread Dimitry Andric
On 2012-06-19 19:14, Andrew W. Nosenko wrote:
 On Tue, Jun 19, 2012 at 6:16 PM, Boris Samorodov b...@passap.ru wrote:
...
 /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
...
 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.

Note, the version of clang in base defaults to gnu++98, *not* c++11 or
gnu++11.  Maybe this is added by the configure script, after detection
of c++11 support?
___
freebsd-ports@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to freebsd-ports-unsubscr...@freebsd.org


Re: clang, dbus, firefox+thunderbird

2012-06-20 Thread Andrew W. Nosenko
On Wed, Jun 20, 2012 at 11:54 AM, Dimitry Andric d...@freebsd.org wrote:
 On 2012-06-19 19:14, Andrew W. Nosenko wrote:
 On Tue, Jun 19, 2012 at 6:16 PM, Boris Samorodov b...@passap.ru wrote:
 ...
 /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
 ...
 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.

 Note, the version of clang in base defaults to gnu++98, *not* c++11 or
 gnu++11.  Maybe this is added by the configure script, after detection
 of c++11 support?

Another posibility: message about C++11 user defined literals is just
a warning intended for forward compatibility, but promoted to error
because of -Werror.  But it's just a guess, I'm didn't tried to build
firefox or thunderbird by self.

-- 
Andrew W. Nosenko andrew.w.nose...@gmail.com
___
freebsd-ports@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to freebsd-ports-unsubscr...@freebsd.org


Re: clang, dbus, firefox+thunderbird

2012-06-20 Thread Dimitry Andric
On 2012-06-19 19:14, Andrew W. Nosenko wrote:
 On Tue, Jun 19, 2012 at 6:16 PM, Boris Samorodov b...@passap.ru wrote:
...
 /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
...
 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).

Yes, this is exactly how upstream has fixed it:

http://cgit.freedesktop.org/dbus/dbus/commit/dbus/dbus-protocol.h?id=51b88b4c7919487290c0862b013cd8e7cd2de34b
___
freebsd-ports@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to freebsd-ports-unsubscr...@freebsd.org


Re: clang, dbus, firefox+thunderbird

2012-06-20 Thread Boris Samorodov

20.06.2012 12:45, Beat Gaetzi пишет:

2012/6/20 Boris Samorodov b...@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 Samorodovb...@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 b...@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


___
freebsd-ports@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to freebsd-ports-unsubscr...@freebsd.org


Re: clang, dbus, firefox+thunderbird

2012-06-19 Thread Andrew W. Nosenko
On Tue, Jun 19, 2012 at 6:16 PM, Boris Samorodov b...@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     b...@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

-- 
Andrew W. Nosenko andrew.w.nose...@gmail.com
___
freebsd-ports@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to freebsd-ports-unsubscr...@freebsd.org