Re: Ports and WITH_LIBCPLUSPLUS
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
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
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
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
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
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
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
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
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
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