Monday, December 05, 2022

[sparc64] build of glib2

Latest devel/glib2 doesn't build on sparc64. Various things now seem to
require a C++11 capable compiler, e.g.,

../glib-2.74.3/glib/guri.h:92: error: comma at end of enumerator list
../glib-2.74.3/glib/guri.h:213: error: comma at end of enumerator list
../glib-2.74.3/glib/guri.h:263: error: comma at end of enumerator list
../glib-2.74.3/glib/guri.h:338: error: comma at end of enumerator list

../glib-2.74.3/glib/tests/cxx.cpp: In function 'void test_typeof()':
../glib-2.74.3/glib/tests/cxx.cpp:31: error: invalid conversion from 'void*' to 'MyObject*'
../glib-2.74.3/glib/tests/cxx.cpp:34: error: invalid conversion from 'void*' to 'MyObject*'
../glib-2.74.3/glib/tests/cxx.cpp:54: error: invalid conversion from 'void*' to 'MyObject*'

Part of this is due to this commit

https://gitlab.gnome.org/GNOME/glib/-/commit/c19904d6e8951ea774dc298fa793d8b0e506e32d

(I'm not sure how this is supposed to work with older compilers as
mentioned in the commit message: given how glib_typeof() is defined, it
requires gcc >= 4.8 or clang or a C++11-capable compiler)

Instead of doing a patching whack-a-mole, it seems saner to switch
compiler at least until upstream fixes this. The below probably isn't
quite right since port-lib-depends-check on sparc64 complains about

Extra: estdc++.19

I don't know how to fix that.

Index: Makefile
===================================================================
RCS file: /cvs/ports/devel/glib2/Makefile,v
retrieving revision 1.369
diff -u -p -r1.369 Makefile
--- Makefile 2 Dec 2022 07:28:43 -0000 1.369
+++ Makefile 5 Dec 2022 21:21:32 -0000
@@ -32,6 +32,9 @@ MODULES= devel/meson \

MODGNOME_TOOLS= docbook

+# Tests in cpp.cxx now require C++11
+COMPILER= base-clang ports-gcc
+
DEBUG_PACKAGES= ${BUILD_PACKAGES}

# meson: have_bash, needed to install bash-completion snippets

No comments:

Post a Comment