Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 23 Jul 2017 14:46:08 -0700
From:      Mark Millard <markmi@dsl-only.net>
To:        Dimitry Andric <dim@FreeBSD.org>
Cc:        FreeBSD Toolchain <freebsd-toolchain@freebsd.org>, FreeBSD PowerPC ML <freebsd-ppc@freebsd.org>, FreeBSD Current <freebsd-current@freebsd.org>, Shawn Webb <shawn.webb@hardenedbsd.org>
Subject:   Re: -r321371 amd64 -> powerpc64 cross build: lldb.full link fails with: c++: error: linker command failed with exit code 1, -B/usr/local/powerpc64-freebsd/bin/  in use
Message-ID:  <B0EC1A43-FF42-4390-A21F-2066FC6E09CD@dsl-only.net>
In-Reply-To: <9D2961AE-D423-4ED4-B16D-308BA19AC7A0@dsl-only.net>
References:  <9EF818CD-73FC-4283-8CC2-4BA21342CFB1@dsl-only.net> <98DFB763-0CA4-45B3-98E3-050462A9EC15@dsl-only.net> <FEB83F55-C486-487B-BC18-70F9DBF149F0@dsl-only.net> <B6B47C09-DC41-4170-A6E8-F5CC1C41B74D@FreeBSD.org> <9D2961AE-D423-4ED4-B16D-308BA19AC7A0@dsl-only.net>

next in thread | previous in thread | raw e-mail | index | archive | help

[Shawn Webb's logfile shows an error similar to what I
report: lldb_private::AppleObjCRuntime::GetFoundationVersion()
is a problem. But his report shows other errors as well, ones
that I did not get.]

On 2017-Jul-23, at 1:04 PM, Mark Millard <markmi at dsl-only.net> wrote:

> [The lldb problem is a:
> 
> lldb_private::AppleObjCRuntime::GetFoundationVersion()
> 
> reference via Cocoa.o in liblldb.a . See below.
> Sorry that sometimes I'm having to go back and
> later find and report more details because of
> other things going on here. But this likely
> will continue for some of my preliminary
> reports.]
> 
> On 2017-Jul-23, at 5:00 AM, Dimitry Andric <dim@FreeBSD.org> wrote:
> 
>> On 23 Jul 2017, at 11:17, Mark Millard <markmi@dsl-only.net> wrote:
>>> 
>>> [Linking lldb.full via 2.28 of /usr/local/powerpc64-freebsd/bin/ld
>>> also fails with "exit code 1" (using WIHTOUT_LLD so it gets that
>>> far). I'll continue via WITHOUT_LLDB.]
>> ...
>>> 
>>> Here is the lldb.full failure text:
>>> 
>>> --- all_subdir_usr.bin ---
>>> --- all_subdir_usr.bin/clang/lldb ---
>>> c++: error: linker command failed with exit code 1 (use -v to see invocation)
>> 
>> Unfortunately the actual linker errors were above these lines, so you
>> will have to look them up in the full build log (search for "undefined
>> symbol"), or post that somewhere off-list.
>> 
>> I'm suspecting you get the same type of error Shawn's been getting while
>> linking lldb.  Apparently in some scenarios more object files are needed
>> than the minimum set I put in liblldb's Makefile.
> 
> --- lldb.full ---
> /usr/obj/powerpc64vtsc_clang_altbinutils/powerpc.powerpc64/usr/src/lib/clang/liblldb/liblldb.a(Cocoa.o): In function `lldb_private::formatters::NSNumberSummaryProvider(lldb_private::ValueObject&, lldb_private::Stream&, lldb_private::TypeSummaryOptions const&)':
> /usr/src/contrib/llvm/tools/lldb/source/Plugins/Language/ObjC/Cocoa.cpp:(.text._ZN12lldb_private10formatters23NSNumberSummaryProviderERNS_11ValueObjectERNS_6StreamERKNS_18TypeSummaryOptionsE+0x398): undefined reference to `lldb_private::AppleObjCRuntime::GetFoundationVersion()'

The first error in Shawn Webb's logfile looks like what I report:

error: undefined symbol: lldb_private::AppleObjCRuntime::GetFoundationVersion()

via Cocoa.o in liblldb.a . See below:

===> usr.sbin/ancontrol (all)
/usr/obj/usr/src/tmp/usr/bin/ld: error: undefined symbol: lldb_private::AppleObjCRuntime::GetFoundationVersion()
>>> referenced by /usr/src/contrib/llvm/tools/lldb/source/Plugins/Language/ObjC/Cocoa.cpp
>>>               Cocoa.o:(lldb_private::formatters::NSNumberSummaryProvider(lldb_private::ValueObject&, lldb_private::Stream&, lldb_private::TypeSummaryOptions const&)) in archive /usr/obj/usr/src/lib/clang/liblldb/liblldb.a

After that his log showed:

/usr/obj/usr/src/tmp/usr/bin/ld: error: undefined symbol: lldb::SBTrace::SBTrace()
>>> referenced by /usr/src/contrib/llvm/tools/lldb/source/API/SBProcess.cpp
>>>               SBProcess.o:(lldb::SBProcess::StartTrace(lldb::SBTraceOptions&, lldb::SBError&)) in archive /usr/obj/usr/src/lib/clang/liblldb/liblldb.a
/usr/obj/usr/src/tmp/usr/bin/ld: error: undefined symbol: lldb::SBTrace::SetSP(std::__1::shared_ptr<lldb_private::Process> const&)
>>> referenced by /usr/src/contrib/llvm/tools/lldb/source/API/SBProcess.cpp
>>>               SBProcess.o:(lldb::SBProcess::StartTrace(lldb::SBTraceOptions&, lldb::SBError&)) in archive /usr/obj/usr/src/lib/clang/liblldb/liblldb.a
/usr/obj/usr/src/tmp/usr/bin/ld: error: undefined symbol: lldb::SBTrace::SetTraceUID(unsigned long)
>>> referenced by /usr/src/contrib/llvm/tools/lldb/source/API/SBProcess.cpp
>>>               SBProcess.o:(lldb::SBProcess::StartTrace(lldb::SBTraceOptions&, lldb::SBError&)) in archive /usr/obj/usr/src/lib/clang/liblldb/liblldb.a
c++: error: linker command failed with exit code 1 (use -v to see invocation)
--- lldb.full ---
*** [lldb.full] Error code 1

make[5]: stopped in /usr/src/usr.bin/clang/lldb
1 error

make[5]: stopped in /usr/src/usr.bin/clang/lldb
--- all_subdir_usr.bin/clang/lldb ---
*** [all_subdir_usr.bin/clang/lldb] Error code 2



===
Mark Millard
markmi at dsl-only.net





Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?B0EC1A43-FF42-4390-A21F-2066FC6E09CD>