(Some?) ports using cmake that have both a library and a binary in the
same build, built using ld.lld as linker, look like this:

$ objdump -p /usr/local/bin/zint|grep NEEDED
  NEEDED      libzint.so
  NEEDED      libpng.so.17.5
  NEEDED      libz.so.5.0
  NEEDED      libm.so.10.1
  NEEDED      libc.so.93.0

i.e. missing the version number.

When built using ld.bfd it's like this:

$ objdump -p /usr/obj/ports/zint-2.6.3.src/fake-amd64/usr/local/bin/zint | grep 
NEEDED
  NEEDED      libzint.so.1.0
  NEEDED      libpng.so.17.5
  NEEDED      libz.so.5.0
  NEEDED      libm.so.10.1
  NEEDED      libc.so.93.0

First noticed with wireshark, but graphics/zint is a quicker build and
shows it easily too (lib and executable in different subpackages makes
it very easy to spot with "make port-lib-depends-check").

Anyone have a clue what's going on?

I've confirmed that compiler command lines are the same by setting
"USE_NINJA=samurai" to avoid doing random build order and diffing build
logs between the two, the only difference is because ld.lld doesn't show
apiwarn messages.

Reply via email to