devel/pango fails to build with LLVM 10, which takes out a large part of the ports tree. http://build-failures.rhaalovely.net/amd64-clang/2020-07-31/devel/pango.log
The fix has two parts, picked from upstream: (1) In glib2, define G_GNUC_FALLTHROUGH in such a way that is also available with LLVM 10. (2) In pango, make use of G_GNUC_FALLTHROUGH. This is urgently required to allow us to make progress with LLVM 10 and the ports tree. OK? Index: glib2/Makefile =================================================================== RCS file: /cvs/ports/devel/glib2/Makefile,v retrieving revision 1.332 diff -u -p -r1.332 Makefile --- glib2/Makefile 3 Jul 2020 21:12:39 -0000 1.332 +++ glib2/Makefile 1 Aug 2020 15:41:07 -0000 @@ -5,7 +5,7 @@ COMMENT= general-purpose utility librar GNOME_PROJECT= glib GNOME_VERSION= 2.64.4 PKGNAME= ${DISTNAME:S/glib/glib2/} -REVISION= 0 +REVISION= 1 CATEGORIES= devel Index: glib2/patches/patch-glib_gmacros_h =================================================================== RCS file: glib2/patches/patch-glib_gmacros_h diff -N glib2/patches/patch-glib_gmacros_h --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ glib2/patches/patch-glib_gmacros_h 1 Aug 2020 15:41:07 -0000 @@ -0,0 +1,26 @@ +$OpenBSD$ + +Define G_GNUC_FALLTHROUGH for more compilers +https://gitlab.gnome.org/GNOME/glib/-/commit/5f38ae5f + +Index: glib/gmacros.h +--- glib/gmacros.h.orig ++++ glib/gmacros.h +@@ -532,7 +532,7 @@ + /** + * G_GNUC_FALLTHROUGH: + * +- * Expands to the GNU C `fallthrough` statement attribute if the compiler is gcc. ++ * Expands to the GNU C `fallthrough` statement attribute if the compiler supports it. + * This allows declaring case statement to explicitly fall through in switch + * statements. To enable this feature, use `-Wimplicit-fallthrough` during + * compilation. +@@ -558,6 +558,8 @@ + * Since: 2.60 + */ + #if __GNUC__ > 6 ++#define G_GNUC_FALLTHROUGH __attribute__((fallthrough)) ++#elif g_macro__has_attribute (fallthrough) + #define G_GNUC_FALLTHROUGH __attribute__((fallthrough)) + #else + #define G_GNUC_FALLTHROUGH Index: pango/patches/patch-examples_cairotwisted_c =================================================================== RCS file: pango/patches/patch-examples_cairotwisted_c diff -N pango/patches/patch-examples_cairotwisted_c --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ pango/patches/patch-examples_cairotwisted_c 1 Aug 2020 15:41:07 -0000 @@ -0,0 +1,26 @@ +$OpenBSD$ + +Replace fallthrough comments with G_GNUC_FALLTHROUGH +https://gitlab.gnome.org/GNOME/pango/-/commit/5423136a + +Index: examples/cairotwisted.c +--- examples/cairotwisted.c.orig ++++ examples/cairotwisted.c +@@ -234,7 +234,7 @@ parametrize_path (cairo_path_t *path) + case CAIRO_PATH_CLOSE_PATH: + /* Make it look like it's a line_to to last_move_to */ + data = (&last_move_to) - 1; +- /* fall through */ ++ G_GNUC_FALLTHROUGH; + case CAIRO_PATH_LINE_TO: + parametrization[i] = two_points_distance (¤t_point, &data[1]); + current_point = data[1]; +@@ -361,7 +361,7 @@ point_on_path (parametrized_path_t *param, + case CAIRO_PATH_CLOSE_PATH: + /* Make it look like it's a line_to to last_move_to */ + data = (&last_move_to) - 1; +- /* fall through */ ++ G_GNUC_FALLTHROUGH; + case CAIRO_PATH_LINE_TO: + { + ratio = the_x / parametrization[i]; Index: pango/patches/patch-pango_break_c =================================================================== RCS file: pango/patches/patch-pango_break_c diff -N pango/patches/patch-pango_break_c --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ pango/patches/patch-pango_break_c 1 Aug 2020 15:41:07 -0000 @@ -0,0 +1,35 @@ +$OpenBSD$ + +Replace fallthrough comments with G_GNUC_FALLTHROUGH +https://gitlab.gnome.org/GNOME/pango/-/commit/5423136a + +Index: pango/break.c +--- pango/break.c.orig ++++ pango/break.c +@@ -405,7 +405,7 @@ pango_default_break (const gchar *text, + GB_type = GB_Prepend; + break; + } +- /* fall through */ ++ G_GNUC_FALLTHROUGH; + case G_UNICODE_CONTROL: + case G_UNICODE_LINE_SEPARATOR: + case G_UNICODE_PARAGRAPH_SEPARATOR: +@@ -421,7 +421,7 @@ pango_default_break (const gchar *text, + GB_type = GB_ControlCRLF; + break; + } +- /* fall through */ ++ G_GNUC_FALLTHROUGH; + + case G_UNICODE_OTHER_LETTER: + if (makes_hangul_syllable) +@@ -594,7 +594,7 @@ pango_default_break (const gchar *text, + case G_UNICODE_CONTROL: + if (wc != 0x000D && wc != 0x000A && wc != 0x000B && wc != 0x000C && wc != 0x0085) + break; +- /* fall through */ ++ G_GNUC_FALLTHROUGH; + case G_UNICODE_LINE_SEPARATOR: + case G_UNICODE_PARAGRAPH_SEPARATOR: + WB_type = WB_NewlineCRLF; /* CR, LF, Newline */ Index: pango/patches/patch-pango_pango-renderer_c =================================================================== RCS file: pango/patches/patch-pango_pango-renderer_c diff -N pango/patches/patch-pango_pango-renderer_c --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ pango/patches/patch-pango_pango-renderer_c 1 Aug 2020 15:41:07 -0000 @@ -0,0 +1,17 @@ +$OpenBSD$ + +Replace fallthrough comments with G_GNUC_FALLTHROUGH +https://gitlab.gnome.org/GNOME/pango/-/commit/5423136a + +Index: pango/pango-renderer.c +--- pango/pango-renderer.c.orig ++++ pango/pango-renderer.c +@@ -222,7 +222,7 @@ draw_underline (PangoRenderer *renderer, + rect->y + 2 * rect->height, + rect->width, + rect->height); +- /* Fall through */ ++ G_GNUC_FALLTHROUGH; + case PANGO_UNDERLINE_SINGLE: + case PANGO_UNDERLINE_LOW: + pango_renderer_draw_rectangle (renderer, Index: pango/patches/patch-tests_testboundaries_ucd_c =================================================================== RCS file: pango/patches/patch-tests_testboundaries_ucd_c diff -N pango/patches/patch-tests_testboundaries_ucd_c --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ pango/patches/patch-tests_testboundaries_ucd_c 1 Aug 2020 15:41:07 -0000 @@ -0,0 +1,17 @@ +$OpenBSD$ + +Replace fallthrough comments with G_GNUC_FALLTHROUGH +https://gitlab.gnome.org/GNOME/pango/-/commit/5423136a + +Index: tests/testboundaries_ucd.c +--- tests/testboundaries_ucd.c.orig ++++ tests/testboundaries_ucd.c +@@ -104,7 +104,7 @@ parse_line (gchar *line, + { + case 0x00f7: /* DIVISION SIGN: boundary here */ + temp_attr.bits |= bits.bits; +- /* fall through */ ++ G_GNUC_FALLTHROUGH; + + case 0x00d7: /* MULTIPLICATION SIGN: no boundary here */ + break; -- Christian "naddy" Weisgerber na...@mips.inka.de