Hi,

wmii doesnt build with -fno-common

suckless.org has decomissionned wmii in 2012 (its main author and
maintainer died in 2010)

https://git.suckless.org/sites/commit/b3f0a378e7d2dab6213be07e8f2b21fb637d6776.html

I'd suggest to delete it.

Alternatively the patches below fix the build (only very ligtly tested
that it still starts)

Index: Makefile
===================================================================
RCS file: /cvs/OpenBSD/ports/x11/wmii/Makefile,v
retrieving revision 1.23
diff -u -p -u -r1.23 Makefile
--- Makefile    12 Jul 2019 20:51:24 -0000      1.23
+++ Makefile    21 Feb 2021 08:56:50 -0000
@@ -3,7 +3,7 @@
 COMMENT=       dynamic window manager
 
 DISTNAME=      wmii-3.6
-REVISION=      6
+REVISION=      7
 CATEGORIES=    x11
 
 HOMEPAGE=      http://wmii.suckless.org/
Index: patches/patch-cmd_util_c
===================================================================
RCS file: patches/patch-cmd_util_c
diff -N patches/patch-cmd_util_c
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-cmd_util_c    21 Feb 2021 08:56:50 -0000
@@ -0,0 +1,18 @@
+$OpenBSD$
+
+fix for -fno-common
+
+Index: cmd/util.c
+--- cmd/util.c.orig
++++ cmd/util.c
+@@ -9,6 +9,10 @@
+ #include <util.h>
+ #include <fmt.h>
+ 
++char *argv0;
++void *__p;
++int __i;
++
+ typedef struct VFmt VFmt;
+ struct VFmt {
+       const char *fmt;
Index: patches/patch-cmd_wmii_dat_h
===================================================================
RCS file: patches/patch-cmd_wmii_dat_h
diff -N patches/patch-cmd_wmii_dat_h
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-cmd_wmii_dat_h        21 Feb 2021 08:56:50 -0000
@@ -0,0 +1,94 @@
+$OpenBSD$
+
+fix for -fno-common
+
+Index: cmd/wmii/dat.h
+--- cmd/wmii/dat.h.orig
++++ cmd/wmii/dat.h
+@@ -194,7 +194,7 @@ struct Ruleset {
+ };
+ 
+ /* global variables */
+-struct {
++struct Def {
+       CTuple focuscolor;
+       CTuple normcolor;
+       Font *font;
+@@ -207,8 +207,10 @@ struct {
+       char grabmod[5];
+       ulong mod;
+       int colmode;
+-} def;
++};
+ 
++extern struct Def def;
++
+ enum {
+       BarLeft, BarRight
+ };
+@@ -223,40 +225,42 @@ struct WMScreen {
+ 
+       Rectangle r;
+       Rectangle brect;
+-} *screens, *screen;
++};
+ 
+-Client *client;
+-View *view;
+-Key *key;
+-Divide *divs;
+-Client c_magic;
+-Client c_root;
++extern struct WMScreen  *screens, *screen;
+ 
+-Handlers framehandler;
++extern Client *client;
++extern View *view;
++extern Key *key;
++extern Divide *divs;
++extern Client c_magic;
++extern Client c_root;
+ 
+-char buffer[8092];
++extern Handlers framehandler;
+ 
++extern char buffer[8192];
++
+ /* IXP */
+-IxpServer srv;
+-Ixp9Srv p9srv;
++extern IxpServer srv;
++extern Ixp9Srv p9srv;
+ 
+ /* X11 */
+-uint num_screens;
+-uint valid_mask;
+-uint num_lock_mask;
+-Bool sel_screen;
++extern uint num_screens;
++extern uint valid_mask;
++extern uint num_lock_mask;
++extern Bool sel_screen;
+ 
+-Image xor;
++extern Image xor;
+ 
+-Cursor cursor[CurLast];
+-void (*handler[LASTEvent]) (XEvent *);
++extern Cursor cursor[CurLast];
++extern void (*handler[LASTEvent]) (XEvent *);
+ 
+ /* Misc */
+-Image *broken;
+-Bool starting;
+-Bool verbose;
+-char *user;
+-char *execstr;
++extern Image *broken;
++extern Bool starting;
++extern Bool verbose;
++extern char *user;
++extern char *execstr;
+ 
+ #define Debug if(verbose)
+ #define Dprint(...) do{ Debug fprint(2, __VA_ARGS__); }while(0)
Index: patches/patch-cmd_wmii_main_c
===================================================================
RCS file: patches/patch-cmd_wmii_main_c
diff -N patches/patch-cmd_wmii_main_c
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-cmd_wmii_main_c       21 Feb 2021 08:56:50 -0000
@@ -0,0 +1,44 @@
+$OpenBSD$
+
+fix for -fno-common
+
+Index: cmd/wmii/main.c
+--- cmd/wmii/main.c.orig
++++ cmd/wmii/main.c
+@@ -17,6 +17,36 @@
+ #include <unistd.h>
+ #include "fns.h"
+ 
++
++struct Def def;
++
++struct WMScreen *screens, *screen;
++
++Client *client;
++View *view;
++Key *key;
++Divide *divs;
++Client c_magic;
++Client c_root;
++
++char buffer[8192];
++
++IxpServer srv;
++
++uint num_screens;
++uint valid_mask;
++uint num_lock_mask;
++Bool sel_screen;
++
++Image xor;
++
++Cursor cursor[CurLast];
++
++Bool starting;
++Bool verbose;
++char *user;
++char *execstr;
++
+ static const char
+       version[] = "wmii-"VERSION", ©2007 Kris Maglione\n";
+ 
Index: patches/patch-cmd_wmii_x11_c
===================================================================
RCS file: patches/patch-cmd_wmii_x11_c
diff -N patches/patch-cmd_wmii_x11_c
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-cmd_wmii_x11_c        21 Feb 2021 08:56:50 -0000
@@ -0,0 +1,17 @@
+$OpenBSD$
+
+fix for -f no-common
+
+Index: cmd/wmii/x11.c
+--- cmd/wmii/x11.c.orig
++++ cmd/wmii/x11.c
+@@ -11,6 +11,9 @@
+ #include <bio.h>
+ #include "fns.h"
+ 
++Display *display;
++Screen scr;
++
+ Point ZP = {0, 0};
+ Rectangle ZR = {{0, 0}, {0, 0}};
+ 
Index: patches/patch-cmd_wmii_x11_h
===================================================================
RCS file: patches/patch-cmd_wmii_x11_h
diff -N patches/patch-cmd_wmii_x11_h
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-cmd_wmii_x11_h        21 Feb 2021 08:56:50 -0000
@@ -0,0 +1,18 @@
+$OpenBSD$
+
+fix for -fno-common
+
+Index: cmd/wmii/x11.h
+--- cmd/wmii/x11.h.orig
++++ cmd/wmii/x11.h
+@@ -94,8 +94,8 @@ struct Font {
+       char *name;
+ };
+ 
+-Display *display;
+-Screen scr;
++extern Display *display;
++extern Screen scr;
+ 
+ extern Point ZP;
+ extern Rectangle ZR;
Index: patches/patch-include_util_h
===================================================================
RCS file: patches/patch-include_util_h
diff -N patches/patch-include_util_h
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-include_util_h        21 Feb 2021 08:56:50 -0000
@@ -0,0 +1,20 @@
+$OpenBSD$
+
+fix for -fno-common
+
+Index: include/util.h
+--- include/util.h.orig
++++ include/util.h
+@@ -37,9 +37,9 @@ char *str_nil(char *s);
+ int utflcpy(char *to, const char *from, int l);
+ uint strlcat(char *dst, const char *src, unsigned int siz);
+ 
+-char *argv0;
+-void *__p;
+-int __i;
++extern char *argv0;
++extern void *__p;
++extern int __i;
+ #undef ARGBEGIN
+ #undef ARGEND
+ #undef ARGF


-- 
Matthieu Herrb

Reply via email to