Date: Thu, 31 Jan 2013 21:13:01 +0800 From: Jesse <jesse@glx.me> To: "O. Hartmann" <ohartman@zedat.fu-berlin.de> Cc: David Chisnall <theraven@freebsd.org>, freebsd-current@freebsd.org, Dimitry Andric <dim@freebsd.org> Subject: Re: buildworld error Message-ID: <CAEMuk5-o7Ew8j4yNqYVTtWsAtXpkUi9Z6c%2BdYvRPUHu8Kqs4NQ@mail.gmail.com> In-Reply-To: <510A5382.6040007@zedat.fu-berlin.de> References: <CAEMuk5-RYj2fLPPzRwxUwnDbotQa0wEK4MO2DgCa47Lvte%2B73g@mail.gmail.com> <51092025.1070906@FreeBSD.org> <CAEMuk5-V3mS-BNJqmwrhE7c0Mre6oPYOR-moDyFtrODa9YCXCw@mail.gmail.com> <CAEMuk5-=mHhYPLe1vmkCL2BGy8PWwfwQKvSd-k2PfKA_miQuCg@mail.gmail.com> <5109F682.3060604@zedat.fu-berlin.de> <510A5382.6040007@zedat.fu-berlin.de>
next in thread | previous in thread | raw e-mail | index | archive | help
yes, that may be the reason. I write a simple c++ program in the built-complete system. and compile it: clang++ hello.cpp -std=c++11 -stdlib=libc++ -o hello it reports undefined reference to bad_alloc errors message same as someones discuss in this mail list. I find that it is because -stdlib=libc++ will link /usr/lib/libc++.so. If compile and link the c++ code like this it reports no error: clang++ hello.cpp -c -o hello.o -std=c++11 -stdlib=libc++ clang++ hello.o -o hello /usr/lib/libc++.a The second command will force clang++ to link the static libc++ instead of the shared lib. I think the current src build the libc++.so by false. Maybe libc++.so lacks some object files to wrap. ar -tv /usr/lib/libc++.a will print all of the necessary object files. On Thu, Jan 31, 2013 at 7:20 PM, O. Hartmann <ohartman@zedat.fu-berlin.de>wrote: > On 01/31/13 05:43, O. Hartmann wrote: > > Am 01/31/13 05:06, schrieb Jesse: > >> z > >> > >> On 1/31/13, Jesse <jesse@glx.me> wrote: > >>> i set these in make.conf: > >>> CXXFLAGS+=-stdlib=libc++ > >>> CXXFLAGS+=-std=c++11 > >>> > >>> i comment them and rebuild world ok > >>> but it works at previous revision. > >>> > >>> On 1/30/13, Dimitry Andric <dim@freebsd.org> wrote: > >>>> On 2013-01-30 10:37, Jesse wrote: > >>>>> I just update /usr/src and make buildworld. The building proccess > stop > >>>>> as > >>>>> errors: > >>>>> > >>>>> ===> lib/clang/libllvmx86asmparser (all) > >>>>> ===> lib/clang/libllvmx86codegen (all) > >>>>> ===> lib/clang/libllvmx86desc (all) > >>>>> ===> lib/clang/libllvmx86disassembler (all) > >>>>> ===> lib/clang/libllvmx86info (all) > >>>>> ===> lib/clang/libllvmx86instprinter (all) > >>>>> ===> lib/clang/libllvmx86utils (all) > >>>>> ===> lib/clang/libllvmdebuginfo (all) > >>>>> ===> lib/clang/libllvmexecutionengine (all) > >>>>> ===> lib/clang/libllvminterpreter (all) > >>>>> ===> lib/clang/libllvmjit (all) > >>>>> ===> lib/clang/libllvmmcdisassembler (all) > >>>>> ===> lib/clang/libllvmmcjit (all) > >>>>> ===> lib/clang/libllvmruntimedyld (all) > >>>>> ===> lib/clang/include (all) > >>>>> 1 error > >>>>> *** [everything] Error code 2 > >>>>> 1 error > >>>>> *** [buildworld] Error code 2 > >>>>> 1 error > >>>> > >>>> Because you are making buildworld with -j, the actual error message is > >>>> not visible. Try searching back in the log to find the actual error, > >>>> and post that. Alternatively, make buildworld without -j. > >>>> > >>> > >> _______________________________________________ > >> freebsd-current@freebsd.org mailing list > >> http://lists.freebsd.org/mailman/listinfo/freebsd-current > >> To unsubscribe, send any mail to " > freebsd-current-unsubscribe@freebsd.org" > >> > > > > > > I see the very same issue and reported this already. Since I'm not a > > professional developer, I'm not quite sure what and how to report the > > issue in exactly and accurate. > > > > In my case, this issue came "out of the blue". I also have set > > > > CXXFLAGS+= -stdlib=libc++ -std=c++11 > > > > but in /etc/src.conf. Commenting out "-std=c++11" makes the build of > > world fail with something like > > > > [...] > > fatal error: too many errors emitted, stopping now [-ferror-limit=] > > In file included from > > > /usr/src/lib/atf/libatf-c++/../../../contrib/atf/atf-c++/detail/application.cpp:42: > > In file included from > /usr/obj/usr/src/tmp/usr/include/c++/v1/iostream:38: > > In file included from /usr/obj/usr/src/tmp/usr/include/c++/v1/ios:216: > > In file included from > /usr/obj/usr/src/tmp/usr/include/c++/v1/__locale:15: > > In file included from /usr/obj/usr/src/tmp/usr/include/c++/v1/string:434: > > In file included from > /usr/obj/usr/src/tmp/usr/include/c++/v1/algorithm:594: > > In file included from /usr/obj/usr/src/tmp/usr/include/c++/v1/memory:597: > > /usr/obj/usr/src/tmp/usr/include/c++/v1/__functional_base:22:1: error: > > inline namespaces are a C++11 feature [-Werror,-Wc++11-extensions] > > [...] > > > > which sounds strange to me, since I completely erase /usr/obj before > > building and I do not use a ccache or any other similar facility. > > > > Regards, > > Oliver > > > > > > > I can confirm, that disabling CXXFLAGS+= -stdlib=libc++ > -std=c++11 completely solves the problem. > > Using -stdlib=libc++ building the system's sources decalres CURRENT broken. > >
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAEMuk5-o7Ew8j4yNqYVTtWsAtXpkUi9Z6c%2BdYvRPUHu8Kqs4NQ>