Re: buildworld error

From: Jesse <jesse_at_glx.me>
Date: Thu, 31 Jan 2013 21:13:01 +0800
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_at_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_at_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_at_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_at_freebsd.org mailing list
> >> http://lists.freebsd.org/mailman/listinfo/freebsd-current
> >> To unsubscribe, send any mail to "
> freebsd-current-unsubscribe_at_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.
>
>
Received on Thu Jan 31 2013 - 12:13:04 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:34 UTC