Hi all,
On my latest updated openbsd 6.9 laptop, I get crashes. GWorkspace
coredumps.
I get several of these warnings before:
GWorkspace:/usr/local/lib/libestdc++.so.19.0: /usr/lib/libc++abi.so.5.0
: WARNING: symbol(_ZTVN10__cxxabiv120__si_class_type_infoE) size
mismatch, relink your program
I think the issue comes from the fact that OpenBSD has a very basic
system gcc 4.2 compiler (no Obj-C support, only C and C++) and then gcc8
or clang can be installed as packages. On this system I have gcc. It is
easily distinguished because it is named "egcc"
I suppose that PDFKit is the issue, the only mixed Obj-C and C++ module
I know for GWorkpace.
so I did some checks. First, I found out there was a bug in GWorkspace
build files were sub-projects could use the wrong compiler. Now it is fixed.
I double-checked that also PDFKit gets compiled with the correct
compiler and it is.
ldd /Local/Library/Libraries/libPDFKit.so
/Local/Library/Libraries/libPDFKit.so:
Start End Type Open Ref GrpRef Name
01d0b000 21e20000 dlib 2 0 0
/Local/Library/Frameworks/PDFKit.framework/Versions/1/libPDFKit.so.1.2.0
0c9dc000 2c9e1000 rlib 0 1 0
/usr/X11R6/lib/libfreetype.so.30.0
030ca000 230cc000 rlib 0 2 0 /usr/lib/libz.so.5.0
0f88c000 2f96f000 rlib 0 1 0
/usr/local/lib/libestdc++.so.19.0
080b0000 280b2000 rlib 0 2 0 /usr/lib/libm.so.10.1
012ba000 212bc000 rlib 0 1 0 /usr/lib/libpthread.so.26.1
FSNode of GWorkspace has this content:
ldd /System/Library/Libraries/libFSNode.so
/System/Library/Libraries/libFSNode.so:
Start End Type Open Ref GrpRef Name
04b33000 24b97000 dlib 2 0 0
/System/Library/Frameworks/FSNode.framework/Versions/0/libFSNode.so.0.1.0
0c02e000 2c3f9000 rlib 0 1 0
/System/Library/Libraries/libgnustep-gui.so.0.29
0dcf4000 2e09c000 rlib 0 2 0
/System/Library/Libraries/libgnustep-base.so.1.28
060e5000 260f8000 rlib 0 3 0 /usr/local/lib/libobjc.so.8.0
01bb0000 21bb2000 rlib 0 9 0 /usr/lib/libm.so.10.1
08002000 28004000 rlib 0 12 0 /usr/lib/libpthread.so.26.1
0202f000 2203a000 rlib 0 2 0
/usr/local/lib/libicui18n.so.19.2
0c400000 2c40c000 rlib 0 3 0 /usr/local/lib/libicuuc.so.19.2
095d0000 295d1000 rlib 0 4 0
/usr/local/lib/libicudata.so.19.2
06863000 26865000 rlib 0 1 0 /usr/local/lib/libpng.so.18.0
09788000 2978a000 rlib 0 1 0 /usr/local/lib/libgif.so.8.0
08c7a000 28c7f000 rlib 0 1 0 /usr/local/lib/libtiff.so.40.5
0eaed000 2eaef000 rlib 0 7 0 /usr/lib/libz.so.5.0
0479f000 247a1000 rlib 0 2 0 /usr/local/lib/libjpeg.so.70.0
044f5000 244f7000 rlib 0 3 0 /usr/local/lib/libgmp.so.11.0
05a36000 25a43000 rlib 0 1 0 /usr/local/lib/libgnutls.so.46.6
0a161000 2a163000 rlib 0 1 0 /usr/local/lib/libxslt.so.4.0
07034000 2703b000 rlib 0 2 0 /usr/local/lib/libxml2.so.16.1
02349000 2234b000 rlib 0 7 0 /usr/local/lib/libiconv.so.7.0
01834000 21836000 rlib 0 3 0 /usr/local/lib/libffi.so.1.2
0f58d000 2f590000 rlib 0 1 0 /usr/lib/libiberty.so.12.0
0bc12000 2bc16000 rlib 0 1 0 /usr/local/lib/libcurl.so.26.9
0e30e000 2e314000 rlib 0 2 0 /usr/lib/libc++.so.7.0
02751000 22755000 rlib 0 3 0 /usr/lib/libc++abi.so.5.0
0e1f0000 2e1f2000 rlib 0 1 0 /usr/local/lib/libzstd.so.5.0
0ea20000 2ea22000 rlib 0 3 0 /usr/local/lib/liblzma.so.2.1
0ea70000 2ea73000 rlib 0 1 0 /usr/local/lib/libintl.so.7.0
00c37000 20c42000 rlib 0 1 0 /usr/local/lib/libp11-kit.so.3.0
0035c000 2035e000 rlib 0 1 0 /usr/local/lib/libidn2.so.1.1
007ce000 207d2000 rlib 0 2 0
/usr/local/lib/libunistring.so.0.1
028fc000 228fe000 rlib 0 1 0 /usr/local/lib/libtasn1.so.4.2
0efc2000 2efc4000 rlib 0 2 0 /usr/local/lib/libnettle.so.7.0
0a556000 2a558000 rlib 0 1 0 /usr/local/lib/libhogweed.so.3.0
0805e000 28061000 rlib 0 1 0
/usr/local/lib/libnghttp2.so.0.17
01c7e000 21c83000 rlib 0 1 0 /usr/lib/libssl.so.48.2
0aba2000 2abb9000 rlib 0 2 0 /usr/lib/libcrypto.so.46.2
But even base has this:
/System/Library/Libraries/libgnustep-base.so:
Start End Type Open Ref GrpRef Name
02c4d000 22ff5000 dlib 2 0 0
/System/Library/Libraries/libgnustep-base.so.1.28.0
0f507000 2f51a000 rlib 0 1 0 /usr/local/lib/libobjc.so.8.0
079f7000 279f9000 rlib 0 3 0 /usr/local/lib/libgmp.so.11.0
07d34000 27d41000 rlib 0 1 0 /usr/local/lib/libgnutls.so.46.6
08e97000 28e99000 rlib 0 1 0 /usr/local/lib/libxslt.so.4.0
01a04000 21a0b000 rlib 0 2 0 /usr/local/lib/libxml2.so.16.1
0204a000 2204c000 rlib 0 7 0 /usr/local/lib/libiconv.so.7.0
0e53c000 2e53e000 rlib 0 3 0 /usr/local/lib/libffi.so.1.2
08f88000 28f8b000 rlib 0 1 0 /usr/lib/libiberty.so.12.0
0f14f000 2f151000 rlib 0 9 0 /usr/lib/libpthread.so.26.1
025e0000 225e2000 rlib 0 4 0 /usr/lib/libz.so.5.0
09427000 29432000 rlib 0 1 0
/usr/local/lib/libicui18n.so.19.2
0925e000 2926a000 rlib 0 2 0 /usr/local/lib/libicuuc.so.19.2
07be7000 27be8000 rlib 0 3 0
/usr/local/lib/libicudata.so.19.2
03760000 23764000 rlib 0 1 0 /usr/local/lib/libcurl.so.26.9
0167f000 21681000 rlib 0 5 0 /usr/lib/libm.so.10.1
0175c000 2175f000 rlib 0 1 0 /usr/local/lib/libintl.so.7.0
0887f000 2888a000 rlib 0 1 0 /usr/local/lib/libp11-kit.so.3.0
0c4ff000 2c501000 rlib 0 1 0 /usr/local/lib/libidn2.so.1.1
031f9000 231fd000 rlib 0 2 0
/usr/local/lib/libunistring.so.0.1
0b679000 2b67b000 rlib 0 1 0 /usr/local/lib/libtasn1.so.4.2
04762000 24764000 rlib 0 2 0 /usr/local/lib/libnettle.so.7.0
0ef10000 2ef12000 rlib 0 1 0 /usr/local/lib/libhogweed.so.3.0
01ccb000 21ccd000 rlib 0 2 0 /usr/local/lib/liblzma.so.2.1
08fb7000 28fbd000 rlib 0 2 0 /usr/lib/libc++.so.7.0
0ca18000 2ca1c000 rlib 0 3 0 /usr/lib/libc++abi.so.5.0
0ac4c000 2ac4f000 rlib 0 1 0
/usr/local/lib/libnghttp2.so.0.17
0b84d000 2b852000 rlib 0 1 0 /usr/lib/libssl.so.48.2
0bb08000 2bb1f000 rlib 0 2 0 /usr/lib/libcrypto.so.46.2
So indeed, once running, there is a mix of:
0f88c000 2f96f000 rlib 0 1 0
/usr/local/lib/libestdc++.so.19.0
vs:
08fb7000 28fbd000 rlib 0 2 0 /usr/lib/libc++.so.7.0
0ca18000 2ca1c000 rlib 0 3 0 /usr/lib/libc++abi.so.5.0
but why do base and FSNode link against this system library? Do we use
C++ stuff? not that I know, explicitely. Only PDFKit has an explicit use
of the C++ compiler.
I wonder how I can mitigate this
Riccardo