On Mon, 22 Jun 2020 10:26:31 +0100
Stuart Henderson wrote:

> I haven't checked but the libraries are probably really needed at
> runtime (at least if it crashes at runtime, that's where the unwind
> functions are most likely to be used) on clang LLD arches too. The
> difference is that LLD will still link if there are missing symbols
> and crash at runtime if the functions are called, ld.bfd will check
> at link time.
> 
> I would make it conditional on just clang rather than the linker too.
>
> -- 
>   Sent from a phone, apologies for poor formatting.
> On 22 June 2020 09:43:51 Charlene Wendling <juliana...@posteo.jp>
> wrote:
> 
> > On Mon, 15 Jun 2020 21:12:48 +0100
> > Stuart Henderson wrote:
> >
> >> On 2020/06/15 21:46, Charlene Wendling wrote:
> >> > Hi,
> >> >
> >> > libosinfo's build fails on my macppc machine with:
> >> >
> >> > > /usr/ports/pobj/libosinfo-1.8.0/build-powerpc/osinfo/libosinfo-1.0.so.
> >> > > 1.5: undefined reference to `_Unwind_GetIP'
> >> > > /usr/ports/pobj/libosinfo-1.8.0/build-powerpc/osinfo/libosinfo-1.0.so.
> >> > > 1.5: undefined reference to `_Unwind_GetRegionStart'
> >> > (etc.)
> >> >
> >> > I don't know why macppc is the only one needing that, but linking
> >> > against libc++abi and pthread works, tests have only 1 failure,
> >> > as seen on amd64.
> >>
> >> btw, same on amd64 if you set USE_LLD=No.
> >
> > I missed the fact that mips64 had the same issue, so the diff is now
> > targeting clang+lb.bfd archs.
> >
> >> > While here i've moved HOMEPAGE to https.
> >> >
> >> > Comments/feedback are welcome,
> >> >
> >> > Charlène.
> >> >

The _Unwind_* symbols seem to come from osinfo_loader_process_user_path,
i've tried to isolate the situation in C and vala without success. I may
be wrong about this assumption.

The only other case where it's needed is for lang/luajit, so i've
looked at the cvs log, and there was no clear reason invoked by espie
back then as well.

So here is a diff that adds the WANTLIBs and LDFLAGS for all base-clang
archs. I've updated the comment in case someone may think it's unneeded.

Charlène.


Index: Makefile.inc
===================================================================
RCS file: /cvs/ports/misc/osinfo/Makefile.inc,v
retrieving revision 1.11
diff -u -p -u -p -r1.11 Makefile.inc
--- Makefile.inc        31 May 2020 10:36:21 -0000      1.11
+++ Makefile.inc        23 Jun 2020 15:39:20 -0000
@@ -6,7 +6,7 @@ CATEGORIES=             misc devel
 
 MAINTAINER=            Antoine Jacoutot <ajacou...@openbsd.org>
 
-HOMEPAGE=              http://libosinfo.org/
+HOMEPAGE=              https://libosinfo.org/
 
 # GPLv2+ - LGPLv2+
 PERMIT_PACKAGE=                Yes
Index: libosinfo/Makefile
===================================================================
RCS file: /cvs/ports/misc/osinfo/libosinfo/Makefile,v
retrieving revision 1.12
diff -u -p -u -p -r1.12 Makefile
--- libosinfo/Makefile  9 Jun 2020 07:14:44 -0000       1.12
+++ libosinfo/Makefile  23 Jun 2020 15:39:20 -0000
@@ -3,7 +3,7 @@
 COMMENT=               library for managing information about operating systems
 
 DISTNAME=              libosinfo-${V}
-REVISION=              0
+REVISION=              1
 
 SHARED_LIBS += osinfo-1.0                1.5 # 0.1008.0
 
@@ -29,5 +29,13 @@ TEST_DEPENDS=                misc/osinfo/osinfo-db
 
 CONFIGURE_ARGS=                
-Dwith-pci-ids-path=${LOCALBASE}/share/hwdata/pnp.ids \
                        -Dwith-usb-ids-path=${LOCALBASE}/share/hwdata/usb.ids
+
+.include <bsd.port.arch.mk>
+# Fix undefined reference errors to _Unwind_* on clang+ld.bfd archs;
+# it may cause runtime issues on lld archs as well.
+.if ${PROPERTIES:Mclang}
+CONFIGURE_ENV +=       LDFLAGS="${LDFLAGS} -lc++abi -lpthread"
+WANTLIB +=             c++abi pthread
+.endif
 
 .include <bsd.port.mk>
Index: osinfo-db/Makefile
===================================================================
RCS file: /cvs/ports/misc/osinfo/osinfo-db/Makefile,v
retrieving revision 1.33
diff -u -p -u -p -r1.33 Makefile
--- osinfo-db/Makefile  31 May 2020 10:36:36 -0000      1.33
+++ osinfo-db/Makefile  23 Jun 2020 15:39:20 -0000
@@ -3,6 +3,7 @@
 COMMENT=               osinfo database files
 
 V=                     20200529
+REVISION=              0
 DISTNAME=              osinfo-db-${V}
 EXTRACT_SUFX=          .tar.xz
 
Index: osinfo-db-tools/Makefile
===================================================================
RCS file: /cvs/ports/misc/osinfo/osinfo-db-tools/Makefile,v
retrieving revision 1.11
diff -u -p -u -p -r1.11 Makefile
--- osinfo-db-tools/Makefile    31 May 2020 10:36:21 -0000      1.11
+++ osinfo-db-tools/Makefile    23 Jun 2020 15:39:21 -0000
@@ -3,6 +3,7 @@
 COMMENT=               tools to manage the libosinfo database
 
 DISTNAME=              osinfo-db-tools-${V}
+REVISION=              0
 
 WANTLIB += archive c gio-2.0 glib-2.0 gobject-2.0 intl json-glib-1.0
 WANTLIB += soup-2.4 xml2

Reply via email to