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.

Reply via email to