On 2019/01/06 22:27, Antoine Jacoutot wrote: > On Sun, Jan 06, 2019 at 08:45:00PM +0000, Stuart Henderson wrote: > > On 2019/01/06 21:28, Antoine Jacoutot wrote: > > > On Sun, Jan 06, 2019 at 01:15:51PM -0700, Landry Breuil wrote: > > > > CVSROOT: /cvs > > > > Module name: ports > > > > Changes by: lan...@cvs.openbsd.org 2019/01/06 13:15:51 > > > > > > > > Modified files: > > > > audio/ncmpc : Makefile > > > > > > > > Log message: > > > > Pass -Db_asneeded=false to meson so that it doesn't add -Wl,--as-needed. > > > > > > > > Fixes the build on i386/ld.bfd archs which was failing with missing refs > > > > to pthread functions, as reported by sthen@ > > > > > > Why not contain this to ld.bfd archs then? > > > > Makes sense, but also why constrain it to ncmpc? meson itself seems > > the obvious place, here's one way to do it (using patch+sed to avoid > > a conditional patch file because I know what fun port updates are > > when you use them :) > > > > As a bonus this fixes gvfs. > > I like this better. > *But*, can't it have an effect on WANTLIB?
Ugh, yes. gvfs-1.38.1(x11/gnome/gvfs,-main): Missing: gck-1.2 from gcr-3.28.0p3 (/usr/local/lib/gvfs/libgvfsdaemon.so) Missing: gpg-error.3 from libgpg-error-1.33 (/usr/local/libexec/gvfsd-afp-browse) Missing: p11-kit.2 from p11-kit-0.23.2p1 (/usr/local/lib/gvfs/libgvfsdaemon.so) Missing: pthread.25 (/usr/local/libexec/gvfsd-dnssd) (system lib) WANTLIB += gck-1 gpg-error p11-kit pthread Scanning: ok I don't see what we can really do about it though. At least they would have a path via LIB_DEPENDS already so it shouldn't result in completely missing dependencies, and if I understand as-needed correctly then e.g. in the case of say gvfs and p11-kit, it shouldn't be gvfs directly depending on p11-kit's ABI but rather gvfs depends on $some_other_port's ABI, and it's only $some_other_port that needs updating if p11-kit changes.. So I don't think this would cause a real problem. But it is messy, especially if someone does a WANTLIB sweep across the tree on i386 :/ > Also, I'd use CONFIGURE_ARGS in meson.port.mk instead (like -Db_lundef=false > is done). That is indeed better. i386/amd64 tests show this doing the right thing: Index: meson.port.mk =================================================================== RCS file: /cvs/ports/devel/meson/meson.port.mk,v retrieving revision 1.30 diff -u -p -r1.30 meson.port.mk --- meson.port.mk 11 Dec 2018 08:05:15 -0000 1.30 +++ meson.port.mk 6 Jan 2019 21:40:04 -0000 @@ -25,6 +25,12 @@ CONFIGURE_ARGS += --strip # specific libc majors, so those options have always suffered false positives CONFIGURE_ARGS += -Db_lundef=false +# disable meson's default of using "-Wl,--as-needed" on ld.bfd arches; +# build failures due to undefined references are often seen. +.if !${PROPERTIES:Mlld} +CONFIGURE_ARGS += -Db_asneeded=false +.endif + # from ${LOCALBASE}/bin/meson: # Warn if the locale is not UTF-8. This can cause various unfixable issues # such as os.stat not being able to decode filenames with unicode in them.