On 2018 Jan 21 (Sun) at 22:18:21 +0100 (+0100), Jeremie Courreges-Anglas wrote: :On Sun, Jan 21 2018, Peter Hessler <phess...@openbsd.org> wrote: :> On 2018 Jan 21 (Sun) at 21:45:53 +0100 (+0100), Jeremie Courreges-Anglas wrote: :> :On Sun, Jan 21 2018, Brian Callahan <bcal...@devio.us> wrote: :> :> On 01/21/18 08:13, Peter Hessler wrote: :> :>> On 2018 Jan 21 (Sun) at 02:06:52 -0500 (-0500), Brian Callahan wrote: :> :>> :Finally, it looks like libffi needs libc++abi on arm for at least some :> :>> :functions, as :> :>> :experienced with lang/snobol4, its configure script didn't pick up libffi and :> :>> :instead :> :>> :complained about this: :> :>> :/usr/local/lib/libffi.so.1.2: undefined reference to `__aeabi_unwind_cpp_pr0' :> :>> :/usr/local/lib/libffi.so.1.2: undefined reference to `__aeabi_unwind_cpp_pr1' :> :>> :Those functions are in libc++abi. :> :>> : :> :>> :> :>> Did you mean to include a patch to libffi.pc to address these issues? :> :>> :> :>> :> :> :> :> Ugh. No more 2am diffs more me. :> :> :> :> We just want this to be for arm, of course, to avoid breaking all gcc :> :> archs. Attached diff deals. :> : :> :I think it would be better to link libffi against -lc++abi, inter-libs deps :> :would be enough and would ensure that consumers don't need to use :> :pkg-config. static builds would still need the pkg-config goo, but we :> :don't have static archs any more. Do we have such ports? :> : :> :> iirc, lld doesn't do inter-lib deps so we would still need pkg-config :> help. while this isn't a problem *yet*, I'd like to avoid it being a :> problem in the (hopefully near) future. : :lld's behavior is a bit more convoluted: say your program links against :libfoo, and libfoo in turn links against libbar. As long as your :program only uses symbols from libfoo, you're fine. If the program also :use symbols from libbar, you must tell lld to link your program against :libfoo *and* libbar*. : :This is not the case here, linking libffi against libc++abi should be :enough. If a port uses libffi and also needs functions from :libc++abi/libunwind, it should specify so. : :* There's probably a more formal, better wording for the difference in : behavior between our old ld(1) and lld. :
Ahh, then I misunderstood some of the details. Thanks for the explanation! -- The other day I put instant coffee in my microwave oven ... I almost went back in time. -- Steven Wright