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.

-- 
jca | PGP : 0x1524E7EE / 5135 92C1 AD36 5293 2BDF  DDCC 0DFA 74AE 1524 E7EE

Reply via email to