Re: Ports and WITH_LIBCPLUSPLUS

2013-02-05 Thread Andreas Nilsson
On Mon, Feb 4, 2013 at 2:40 PM, Volodymyr Kostyrko c.kw...@gmail.comwrote:

 03.02.2013 15:28, Dimitry Andric:

  Thanks for trying this out.  Is there also a list of ports that *do*
 compile (and hopefully run) successfully? :-)


 I already switched to libc++ on my unstable STABLE-9 machines. Currently
 I'm using this config:

 *: CXXFLAGS= -stdlib=libc++ -std=c++11 | LDFLAGS= -stdlib=libc++

 audio/flac databases/db5 devel/binutils devel/doxygen devel/qt4-designer
 devel/qt4-qt3support devel/qt4-script devel/yasm graphics/libopenraw
 graphics/tesseract lang/gcc multimedia/phonon-gstreamer
 net-p2p/transmission-cli net-p2p/transmission-daemon sysutils/smartmontools
 textproc/hunspell www/qt4-webkit x11/nvidia-driver x11/qt4-opengl:
 !CXXFLAGS | !LDFLAGS

 databases/mariadb-client emulators/pearpc www/libxul x11-toolkits/qt4-gui:
 USE_GCC=4.6+ | !CXXFLAGS | !LDFLAGS

 www/squid32: USE_GCC=any | !CXXFLAGS | !LDFLAGS

snip

 --
 Sphinx of black quartz, judge my vow.

Could you clarify where you have these settings?

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


Re: Ports and WITH_LIBCPLUSPLUS

2013-02-05 Thread Volodymyr Kostyrko

05.02.2013 13:59, Andreas Nilsson:


Thanks for trying this out.  Is there also a list of ports that *do*
compile (and hopefully run) successfully? :-)


I already switched to libc++ on my unstable STABLE-9 machines.
Currently I'm using this config:

*: CXXFLAGS= -stdlib=libc++ -std=c++11 | LDFLAGS= -stdlib=libc++

audio/flac databases/db5 devel/binutils devel/doxygen
devel/qt4-designer devel/qt4-qt3support devel/qt4-script devel/yasm
graphics/libopenraw graphics/tesseract lang/gcc
multimedia/phonon-gstreamer net-p2p/transmission-cli
net-p2p/transmission-daemon sysutils/smartmontools textproc/hunspell
www/qt4-webkit x11/nvidia-driver x11/qt4-opengl: !CXXFLAGS | !LDFLAGS

databases/mariadb-client emulators/pearpc www/libxul
x11-toolkits/qt4-gui: USE_GCC=4.6+ | !CXXFLAGS | !LDFLAGS

www/squid32: USE_GCC=any | !CXXFLAGS | !LDFLAGS

snip



Could you clarify where you have these settings?


This is my desktops that I use @home and @work. I'm not going that 
experimental on any production machine.


--
Sphinx of black quartz, judge my vow.
___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to freebsd-stable-unsubscr...@freebsd.org


Re: Ports and WITH_LIBCPLUSPLUS

2013-02-05 Thread Andreas Nilsson
On Tue, Feb 5, 2013 at 1:06 PM, Volodymyr Kostyrko c.kw...@gmail.comwrote:

 05.02.2013 13:59, Andreas Nilsson:


  Thanks for trying this out.  Is there also a list of ports that
 *do*
 compile (and hopefully run) successfully? :-)


 I already switched to libc++ on my unstable STABLE-9 machines.
 Currently I'm using this config:

 *: CXXFLAGS= -stdlib=libc++ -std=c++11 | LDFLAGS= -stdlib=libc++

 audio/flac databases/db5 devel/binutils devel/doxygen
 devel/qt4-designer devel/qt4-qt3support devel/qt4-script devel/yasm
 graphics/libopenraw graphics/tesseract lang/gcc
 multimedia/phonon-gstreamer net-p2p/transmission-cli
 net-p2p/transmission-daemon sysutils/smartmontools textproc/hunspell
 www/qt4-webkit x11/nvidia-driver x11/qt4-opengl: !CXXFLAGS | !LDFLAGS

 databases/mariadb-client emulators/pearpc www/libxul
 x11-toolkits/qt4-gui: USE_GCC=4.6+ | !CXXFLAGS | !LDFLAGS

 www/squid32: USE_GCC=any | !CXXFLAGS | !LDFLAGS

 snip


  Could you clarify where you have these settings?


 This is my desktops that I use @home and @work. I'm not going that
 experimental on any production machine.


 --
 Sphinx of black quartz, judge my vow.


Ah, sorry for being unclear. I meant which config files :)

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


Re: Ports and WITH_LIBCPLUSPLUS

2013-02-05 Thread Volodymyr Kostyrko

05.02.2013 15:06, Andreas Nilsson:

Ah, sorry for being unclear. I meant which config files :)


I'm using ports-mgmt/portconf to keep track of all knobs.

--
Sphinx of black quartz, judge my vow.
___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to freebsd-stable-unsubscr...@freebsd.org


Re: Ports and WITH_LIBCPLUSPLUS

2013-02-05 Thread Andreas Nilsson
On Tue, Feb 5, 2013 at 3:54 PM, Volodymyr Kostyrko c.kw...@gmail.comwrote:

 05.02.2013 15:06, Andreas Nilsson:

  Ah, sorry for being unclear. I meant which config files :)


 I'm using ports-mgmt/portconf to keep track of all knobs.


 --
 Sphinx of black quartz, judge my vow.


Thanks. I'll look into that, and how it will fit in with poudriere.

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


Re: Ports and WITH_LIBCPLUSPLUS

2013-02-04 Thread Volodymyr Kostyrko

03.02.2013 15:28, Dimitry Andric:

Thanks for trying this out.  Is there also a list of ports that *do*
compile (and hopefully run) successfully? :-)


I already switched to libc++ on my unstable STABLE-9 machines. Currently 
I'm using this config:


*: CXXFLAGS= -stdlib=libc++ -std=c++11 | LDFLAGS= -stdlib=libc++

audio/flac databases/db5 devel/binutils devel/doxygen devel/qt4-designer 
devel/qt4-qt3support devel/qt4-script devel/yasm graphics/libopenraw 
graphics/tesseract lang/gcc multimedia/phonon-gstreamer 
net-p2p/transmission-cli net-p2p/transmission-daemon 
sysutils/smartmontools textproc/hunspell www/qt4-webkit 
x11/nvidia-driver x11/qt4-opengl: !CXXFLAGS | !LDFLAGS


databases/mariadb-client emulators/pearpc www/libxul 
x11-toolkits/qt4-gui: USE_GCC=4.6+ | !CXXFLAGS | !LDFLAGS


www/squid32: USE_GCC=any | !CXXFLAGS | !LDFLAGS

Currently I have working seamonkey and slim built this way.

 ldd `which seamonkey`
/usr/local/bin/seamonkey:
libm.so.5 = /lib/libm.so.5 (0x800846000)
libcxxrt.so.1 = /lib/libcxxrt.so.1 (0x800a65000)
libc++.so.1 = /usr/lib/libc++.so.1 (0x800c7e000)
libthr.so.3 = /lib/libthr.so.3 (0x800f34000)
libc.so.7 = /lib/libc.so.7 (0x801156000)
libgcc_s.so.1 = /lib/libgcc_s.so.1 (0x8014a5000)

I can post whole list of packages if anyone is interested. Everything 
looks even better then when clang was introduced to ports - almost any 
package works, the ones that doesn't just have a complicated 
build/install process. No painful glitches yet.


--
Sphinx of black quartz, judge my vow.
___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to freebsd-stable-unsubscr...@freebsd.org


Re: Ports and WITH_LIBCPLUSPLUS

2013-02-03 Thread Dimitry Andric

On 2013-02-03 11:39, Andreas Nilsson wrote:

I wanted to try the new c++ stuff, ie clang-3.2, libc++ and libcxxrt, so I
used poudriere to build a jail setup for that ( WITH_LIBCPLUSPLUS=yes in
src.conf, CXXFLAGS+=-stdlib=libc++ and libsupc++.so.1  libcxxrt.so.1 in
libmap.conf ), and started to build my normal set of packages ( see
desktop.list ). Please note that I also have WITH_NEW_XORG=yes and
WITH_KMS=yes, as well as using the devel xorg repo.

First Great work for moving FreeBSD towards a more modern c++ world!

Results:
Some stuff works, some don't ;) Some may be due to clang and not just
libc++. Here is a list of packages that fails:

audio/libofa
databases/akonadi
devel/binutils
devel/kBuild
devel/libftdi
devel/libplist
devel/qca
devel/qt4-qdbusviewer
devel/qt4-script
emulators/qemu-devel
graphics/cairo
graphics/graphite2
graphics/libfpx
graphics/opencv-core
graphics/podofo
graphics/vigra
lang/sbcl
math/cln
net-im/libmsn
net-p2p/libtorrent
net/hupnp
net/ns3
net/xmlrpc-c-devel
science/openbabel
security/pinentry
sysutils/fusefs-kmod
sysutils/synergy
textproc/clucene
x11/nvidia-driver


Thanks for trying this out.  Is there also a list of ports that *do*
compile (and hopefully run) successfully? :-)

I expect there will be quite a few ports that are very difficult to get
building and running properly with libc++.  Some programs rely on
undocumented (or half-documented) libstdc++ internals, or on behaviour
specific to libstdc++.

Also, it would not suprise me if there are programs that even depend on
a very specific version of libstdc++, and its accompanying version of
gcc.

In short, we need some sort of system to specify the general C++ library
to use by default (e.g. in make.conf or ports.conf), and for ports that
only work with a very specific version, a variable similar to USE_GCC,
for example:

USE_LIBSTDCXX=4.6+



where at least ns3 can be ignored ( I created that port myself ). I think
nvidia-driver and fusefs-kmod now fails due to -stdlib=libc++ in LDFLAGS,
normally fusefs-kmod just fails install-phase due to missing pkg-message
file.

I saved the workdirs for poudriere, and they are available at
http://benriach.widell.net/~andrnils/libc++/ , both as individual tarballs
and one tarball that includes all the others. There is also the lists of
packages I try to build, as well as the ones that fails.


One general question: How am I supposed to include -stdlib=libc++ in
LDFLAGS just for c++? Having -stdlib=libc++ in LDFLAGS causes c compiles to
fail linking with ld: unrecognized option '-stdlib=libc++'


This is as yet an unsolved problem, as LDFLAGS is the same for both C
and C++ link jobs.  I think the easiest way would be to set your CXX
variable to:

CXX=cc -stdlib=libc++

The -std=c++11 flag should only have to be specified in CXXFLAGS.  I
don't think it has any influence on linking.
___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to freebsd-stable-unsubscr...@freebsd.org


Re: Ports and WITH_LIBCPLUSPLUS

2013-02-03 Thread Andreas Nilsson
On Sun, Feb 3, 2013 at 2:28 PM, Dimitry Andric d...@freebsd.org wrote:

 On 2013-02-03 11:39, Andreas Nilsson wrote:

 I wanted to try the new c++ stuff, ie clang-3.2, libc++ and libcxxrt, so I
 used poudriere to build a jail setup for that ( WITH_LIBCPLUSPLUS=yes in
 src.conf, CXXFLAGS+=-stdlib=libc++ and libsupc++.so.1  libcxxrt.so.1 in
 libmap.conf ), and started to build my normal set of packages ( see
 desktop.list ). Please note that I also have WITH_NEW_XORG=yes and
 WITH_KMS=yes, as well as using the devel xorg repo.

 First Great work for moving FreeBSD towards a more modern c++ world!

 Results:
 Some stuff works, some don't ;) Some may be due to clang and not just
 libc++. Here is a list of packages that fails:

 audio/libofa
 databases/akonadi
 devel/binutils
 devel/kBuild
 devel/libftdi
 devel/libplist
 devel/qca
 devel/qt4-qdbusviewer
 devel/qt4-script
 emulators/qemu-devel
 graphics/cairo
 graphics/graphite2
 graphics/libfpx
 graphics/opencv-core
 graphics/podofo
 graphics/vigra
 lang/sbcl
 math/cln
 net-im/libmsn
 net-p2p/libtorrent
 net/hupnp
 net/ns3
 net/xmlrpc-c-devel
 science/openbabel
 security/pinentry
 sysutils/fusefs-kmod
 sysutils/synergy
 textproc/clucene
 x11/nvidia-driver


 Thanks for trying this out.  Is there also a list of ports that *do*
 compile (and hopefully run) successfully? :-)

I didn't save the output for successful packages, but looking through just
the files gives libcpp.built at same URL.


 I expect there will be quite a few ports that are very difficult to get
 building and running properly with libc++.  Some programs rely on
 undocumented (or half-documented) libstdc++ internals, or on behaviour
 specific to libstdc++.

 Also, it would not suprise me if there are programs that even depend on
 a very specific version of libstdc++, and its accompanying version of
 gcc.

 In short, we need some sort of system to specify the general C++ library
 to use by default (e.g. in make.conf or ports.conf), and for ports that
 only work with a very specific version, a variable similar to USE_GCC,
 for example:

 USE_LIBSTDCXX=4.6+


Sounds good :) Perhaps something like
if (( CLANG_IS_CC || CC==clang )  WITH_LIBCPLUSPLUS )
CXXFLAGS+=-stdlib=libc++
endif
could be added to correct mk-file




  where at least ns3 can be ignored ( I created that port myself ). I think
 nvidia-driver and fusefs-kmod now fails due to -stdlib=libc++ in LDFLAGS,
 normally fusefs-kmod just fails install-phase due to missing pkg-message
 file.

 I saved the workdirs for poudriere, and they are available at
 http://benriach.widell.net/~**andrnils/libc++/http://benriach.widell.net/~andrnils/libc++/,
  both as individual tarballs
 and one tarball that includes all the others. There is also the lists of
 packages I try to build, as well as the ones that fails.


 One general question: How am I supposed to include -stdlib=libc++ in
 LDFLAGS just for c++? Having -stdlib=libc++ in LDFLAGS causes c compiles
 to
 fail linking with ld: unrecognized option '-stdlib=libc++'


 This is as yet an unsolved problem, as LDFLAGS is the same for both C
 and C++ link jobs.  I think the easiest way would be to set your CXX
 variable to:

 CXX=cc -stdlib=libc++

Wouldn't CXX=CC -stdlib=libc++ be more appropriate, as cc is for c and CC
for c++, or have that convention gone away?



 The -std=c++11 flag should only have to be specified in CXXFLAGS.  I
 don't think it has any influence on linking.


My adding them to LDFLAGS comes from
https://wiki.freebsd.org/NewC++Stackwhere it says Add -stdlib=libc++
to your compile and link flags... It
actually made a bunch of the qt4- packages build, they wouldn't without it.

I guess a wiki page tracking the failing packages would be good, but I
couldn't get the hang of creating a page there :(

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


Re: Ports and WITH_LIBCPLUSPLUS

2013-02-03 Thread Dimitry Andric

On 2013-02-03 14:56, Andreas Nilsson wrote:

On Sun, Feb 3, 2013 at 2:28 PM, Dimitry Andric d...@freebsd.org wrote:

...

This is as yet an unsolved problem, as LDFLAGS is the same for both C
and C++ link jobs.  I think the easiest way would be to set your CXX
variable to:

CXX=cc -stdlib=libc++


Wouldn't CXX=CC -stdlib=libc++ be more appropriate, as cc is for c and CC
for c++, or have that convention gone away?


Sorry, I should have taken one more cup of coffee. :-)  'CC' is not
really recommended anymore, just use:

CXX=c++ -stdlib=libc++



My adding them to LDFLAGS comes from
https://wiki.freebsd.org/NewC++Stackwhere it says Add -stdlib=libc++
to your compile and link flags...


Yes, that advice is just fine, but in some cases you cannot influence
the link flags used only for C++ linking.  In those cases, you will have
to trick the build system into doing so.

In most cases (but probably not all), this can be done by adding the
required flags to ${CXX}.



It
actually made a bunch of the qt4- packages build, they wouldn't without it.

I guess a wiki page tracking the failing packages would be good, but I
couldn't get the hang of creating a page there :(


This would better be done by a normal exp-run procedure, but those are
offline for the time being.
___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to freebsd-stable-unsubscr...@freebsd.org


Re: Ports and WITH_LIBCPLUSPLUS

2013-02-03 Thread Andreas Nilsson
On Sun, Feb 3, 2013 at 3:25 PM, Dimitry Andric d...@freebsd.org wrote:

 On 2013-02-03 14:56, Andreas Nilsson wrote:

 On Sun, Feb 3, 2013 at 2:28 PM, Dimitry Andric d...@freebsd.org wrote:

 ...

  This is as yet an unsolved problem, as LDFLAGS is the same for both C
 and C++ link jobs.  I think the easiest way would be to set your CXX
 variable to:

 CXX=cc -stdlib=libc++

  Wouldn't CXX=CC -stdlib=libc++ be more appropriate, as cc is for c and
 CC
 for c++, or have that convention gone away?


 Sorry, I should have taken one more cup of coffee. :-)  'CC' is not
 really recommended anymore, just use:

 CXX=c++ -stdlib=libc++


Ah, yes. To little coffee here as well.



  My adding them to LDFLAGS comes from
 https://wiki.freebsd.org/NewC+**+Stackwherehttps://wiki.freebsd.org/NewC++Stackwhereit
  says Add -stdlib=libc++

 to your compile and link flags...


 Yes, that advice is just fine, but in some cases you cannot influence
 the link flags used only for C++ linking.  In those cases, you will have
 to trick the build system into doing so.

 In most cases (but probably not all), this can be done by adding the
 required flags to ${CXX}.


Good point.




  It
 actually made a bunch of the qt4- packages build, they wouldn't without
 it.

 I guess a wiki page tracking the failing packages would be good, but I
 couldn't get the hang of creating a page there :(


 This would better be done by a normal exp-run procedure, but those are
 offline for the time being.


On a side note: I forget the actual logs. They are now available as
logs.tgz at same base URL.

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