Hi, similar to devel/universal-ctags, the parent project devel/ectags is broken for the same reasons, also analyzed by guenther@. Also, lots of people keep reporting it to me in private, so i'm posting here.
Here is a minimal patch letting it build again; not tested at run-time. Note that this is a band-aid; a proper fix would require changing all instances of __unused__ and __printf__ in all *.c files to something like "ectags_unused", or even better just rely on the standard __attribute__ names throughout and not define anything in the first place. But i'm not sure whether upstream still exists. Should this be committed? This overrides my previous patch sent to the MAINTAINER in private, incorporating stylistic feedback from naddy@. Yours, Ingo Index: patches/patch-eiffel_c =================================================================== RCS file: patches/patch-eiffel_c diff -N patches/patch-eiffel_c --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-eiffel_c 6 Sep 2017 11:23:43 -0000 @@ -0,0 +1,16 @@ +$OpenBSD$ + +stop stomping on implementation namespace + +Index: eiffel.c +--- eiffel.c.orig ++++ eiffel.c +@@ -34,6 +34,8 @@ + #include "read.h" + #endif + ++#define __unused__ __unused ++ + /* + * MACROS + */ Index: patches/patch-general_h =================================================================== RCS file: patches/patch-general_h diff -N patches/patch-general_h --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-general_h 6 Sep 2017 11:23:43 -0000 @@ -0,0 +1,17 @@ +$OpenBSD$ + +stop stomping on implementation namespace + +Index: general.h +--- general.h.orig ++++ general.h +@@ -57,7 +57,9 @@ + * to prevent warnings about unused variables. + */ + #if (__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7)) && !defined (__GNUG__) ++#if 0 + # define __unused__ __attribute__((unused)) ++#endif + # define __printf__(s,f) __attribute__((format (printf, s, f))) + #else + # define __unused__ Index: patches/patch-lregex_c =================================================================== RCS file: patches/patch-lregex_c diff -N patches/patch-lregex_c --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-lregex_c 6 Sep 2017 11:23:43 -0000 @@ -0,0 +1,16 @@ +$OpenBSD$ + +stop stomping on implementation namespace + +Index: lregex.c +--- lregex.c.orig ++++ lregex.c +@@ -35,6 +35,8 @@ + #include "read.h" + #include "routines.h" + ++#define __unused__ __unused ++ + #ifdef HAVE_REGEX + + /* Index: patches/patch-lua_c =================================================================== RCS file: patches/patch-lua_c diff -N patches/patch-lua_c --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-lua_c 6 Sep 2017 11:23:43 -0000 @@ -0,0 +1,16 @@ +$OpenBSD$ + +stop stomping on implementation namespace + +Index: lua.c +--- lua.c.orig ++++ lua.c +@@ -21,6 +21,8 @@ + #include "read.h" + #include "vstring.h" + ++#define __unused__ __unused ++ + /* + * DATA DEFINITIONS + */ Index: patches/patch-main_c =================================================================== RCS file: patches/patch-main_c diff -N patches/patch-main_c --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-main_c 6 Sep 2017 11:23:43 -0000 @@ -0,0 +1,16 @@ +$OpenBSD$ + +stop stomping on implementation namespace + +Index: main.c +--- main.c.orig ++++ main.c +@@ -83,6 +83,8 @@ + #include "read.h" + #include "routines.h" + ++#define __unused__ __unused ++ + /* + * MACROS + */ Index: patches/patch-options_c =================================================================== RCS file: patches/patch-options_c diff -N patches/patch-options_c --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-options_c 6 Sep 2017 11:23:43 -0000 @@ -0,0 +1,16 @@ +$OpenBSD$ + +stop stomping on implementation namespace + +Index: options.c +--- options.c.orig ++++ options.c +@@ -27,6 +27,8 @@ + #include "parse.h" + #include "routines.h" + ++#define __unused__ __unused ++ + /* + * MACROS + */ Index: patches/patch-parse_c =================================================================== RCS file: patches/patch-parse_c diff -N patches/patch-parse_c --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-parse_c 6 Sep 2017 11:23:43 -0000 @@ -0,0 +1,16 @@ +$OpenBSD$ + +stop stomping on implementation namespace + +Index: parse.c +--- parse.c.orig ++++ parse.c +@@ -27,6 +27,8 @@ + #include "routines.h" + #include "vstring.h" + ++#define __unused__ __unused ++ + /* + * DATA DEFINITIONS + */ Index: patches/patch-python_c =================================================================== RCS file: patches/patch-python_c diff -N patches/patch-python_c --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-python_c 6 Sep 2017 11:23:43 -0000 @@ -0,0 +1,16 @@ +$OpenBSD$ + +stop stomping on implementation namespace + +Index: python.c +--- python.c.orig ++++ python.c +@@ -24,6 +24,8 @@ + #include "routines.h" + #include "debug.h" + ++#define __unused__ __unused ++ + /* + * DATA DECLARATIONS + */ Index: patches/patch-routines_c =================================================================== RCS file: patches/patch-routines_c diff -N patches/patch-routines_c --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-routines_c 6 Sep 2017 11:23:43 -0000 @@ -0,0 +1,16 @@ +$OpenBSD$ + +stop stomping on implementation namespace + +Index: routines.c +--- routines.c.orig ++++ routines.c +@@ -62,6 +62,8 @@ + #include "debug.h" + #include "routines.h" + ++#define __unused__ __unused ++ + /* + * MACROS + */