From: Marc Espie Subject: fixes for the nethack-like games with llvm22 To: ports@openbsd.org Date: Wed, 3 Jun 2026 16:39:12 +0200 Rather straightforward, mostly neuter some old BSD ifdefs from long ago. I chose not to bother with any srand because those are not needed for us. These 3 all build and run. Seems that falconeye's saves is broken, but I surmise it's another issue entirely I'll have to investigate. Index: slash/Makefile =================================================================== RCS file: /vide/cvs/ports/games/slash/Makefile,v diff -u -p -r1.54 Makefile --- slash/Makefile 25 Sep 2023 17:07:29 -0000 1.54 +++ slash/Makefile 3 Jun 2026 12:47:55 -0000 @@ -2,7 +2,7 @@ COMMENT = dungeon explorin', hackin' gam DISTNAME = slash-e8 PKGNAME = slash-3.2.2.e8 -REVISION = 8 +REVISION = 9 CATEGORIES = games SITES = ${SITE_SOURCEFORGE:=nethack/} Index: slash/patches/patch-src_hacklib_c =================================================================== RCS file: slash/patches/patch-src_hacklib_c diff -N slash/patches/patch-src_hacklib_c --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ slash/patches/patch-src_hacklib_c 3 Jun 2026 12:47:35 -0000 @@ -0,0 +1,52 @@ +Index: src/hacklib.c +--- src/hacklib.c.orig ++++ src/hacklib.c +@@ -410,6 +410,7 @@ static struct tm *NDECL(getlt); + void + setrandom() + { ++#if 0 + /* the types are different enough here that sweeping the different + * routine names into one via #defines is even more confusing + */ +@@ -433,6 +434,7 @@ setrandom() + # endif + # endif + #endif ++#endif + } + + static struct tm * +@@ -440,12 +442,12 @@ getlt() + { + time_t date; + +-#ifdef BSD ++#if 0 + (void) time((long *)(&date)); + #else + (void) time(&date); + #endif +-#if (defined(ULTRIX) && !(defined(ULTRIX_PROTO) || defined(NHSTDC))) || defined(BSD) ++#if 0 + return(localtime((long *)(&date))); + #else + return(localtime(&date)); +@@ -469,7 +471,7 @@ time_t date; + if (date == 0) + lt = getlt(); + else +-#if (defined(ULTRIX) && !(defined(ULTRIX_PROTO) || defined(NHSTDC))) || defined(BSD) ++#if 0 + lt = localtime((long *)(&date)); + #else + lt = localtime(&date); +@@ -490,7 +492,7 @@ time_t date; + if (date == 0) + lt = getlt(); + else +-#if (defined(ULTRIX) && !(defined(ULTRIX_PROTO) || defined(NHSTDC))) || defined(BSD) ++#if 0 + lt = localtime((long *)(&date)); + #else + lt = localtime(&date); Index: slash/patches/patch-src_u_init_c =================================================================== RCS file: slash/patches/patch-src_u_init_c diff -N slash/patches/patch-src_u_init_c --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ slash/patches/patch-src_u_init_c 3 Jun 2026 12:47:35 -0000 @@ -0,0 +1,12 @@ +Index: src/u_init.c +--- src/u_init.c.orig ++++ src/u_init.c +@@ -711,7 +711,7 @@ u_init() + u.ulycn = NON_PM; + set_uasmon(); + +-#ifdef BSD ++#if 0 + (void) time((long *)&u.ubirthday); + #else + (void) time(&u.ubirthday); Index: slash/patches/patch-sys_unix_unixunix_c =================================================================== RCS file: /vide/cvs/ports/games/slash/patches/patch-sys_unix_unixunix_c,v diff -u -p -r1.2 patch-sys_unix_unixunix_c --- slash/patches/patch-sys_unix_unixunix_c 11 Mar 2022 19:04:55 -0000 1.2 +++ slash/patches/patch-sys_unix_unixunix_c 3 Jun 2026 12:47:35 -0000 @@ -1,5 +1,6 @@ ---- sys/unix/unixunix.c.orig Tue Jun 18 00:34:55 1996 -+++ sys/unix/unixunix.c Fri Apr 14 15:10:49 2000 +Index: sys/unix/unixunix.c +--- sys/unix/unixunix.c.orig ++++ sys/unix/unixunix.c @@ -38,7 +38,9 @@ gethdate(name) * does not exist on all systems, and moreover, that it sometimes includes * again, so that the compiler sees these typedefs twice. @@ -10,3 +11,12 @@ register const char *np, *path; char filename[MAXPATHLEN+1]; +@@ -107,7 +109,7 @@ int fd; + #ifndef INSURANCE + if(buf.st_size != sizeof(int)) return(0); /* not an xlock file */ + #endif +-#ifdef BSD ++#if 0 + (void) time((long *)(&date)); + #else + (void) time(&date); Index: slash-em/Makefile =================================================================== RCS file: /vide/cvs/ports/games/slash-em/Makefile,v diff -u -p -r1.34 Makefile --- slash-em/Makefile 7 Nov 2023 14:19:31 -0000 1.34 +++ slash-em/Makefile 3 Jun 2026 13:06:43 -0000 @@ -1,7 +1,7 @@ COMMENT = dungeon explorin', hackin', game. Hard DISTNAME = se007e7f1 PKGNAME = slash-em-3.4.3.7e7f1 -REVISION = 9 +REVISION = 10 V = 3.4.3.7e7f1 CATEGORIES = games Index: slash-em/patches/patch-util_lev_comp_y =================================================================== RCS file: slash-em/patches/patch-util_lev_comp_y diff -N slash-em/patches/patch-util_lev_comp_y --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ slash-em/patches/patch-util_lev_comp_y 3 Jun 2026 13:16:41 -0000 @@ -0,0 +1,12 @@ +Index: util/lev_comp.y +--- util/lev_comp.y.orig ++++ util/lev_comp.y +@@ -597,7 +597,7 @@ room_door : DOOR_ID ':' secret ',' door_state ',' door + /* ERR means random here */ + if ($7 == ERR && $9 != ERR) { + yyerror("If the door wall is random, so must be its pos!"); +- tmprdoor[ndoor] = (struct room_door *)0; ++ tmprdoor[ndoor] = (room_door *)0; + } else { + tmprdoor[ndoor] = New(room_door); + tmprdoor[ndoor]->secret = $3; Index: falconseye/Makefile =================================================================== RCS file: /vide/cvs/ports/games/falconseye/Makefile,v diff -u -p -r1.35 Makefile --- falconseye/Makefile 7 Nov 2023 14:19:29 -0000 1.35 +++ falconseye/Makefile 3 Jun 2026 14:37:08 -0000 @@ -3,7 +3,7 @@ COMMENT = NetHack derivative VERSION = 1.9.3 DISTNAME = nethack_source_331_jtp_${VERSION:S/.//g} PKGNAME = falconseye-${VERSION} -REVISION = 10 +REVISION = 11 CATEGORIES = games x11 EXTRACT_SUFX = .zip Index: falconseye/patches/patch-src_hacklib_c =================================================================== RCS file: falconseye/patches/patch-src_hacklib_c diff -N falconseye/patches/patch-src_hacklib_c --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ falconseye/patches/patch-src_hacklib_c 3 Jun 2026 13:49:44 -0000 @@ -0,0 +1,43 @@ +Index: src/hacklib.c +--- src/hacklib.c.orig ++++ src/hacklib.c +@@ -437,6 +437,7 @@ static struct tm *NDECL(getlt); + void + setrandom() + { ++#if 0 + /* the types are different enough here that sweeping the different + * routine names into one via #defines is even more confusing + */ +@@ -460,6 +461,7 @@ setrandom() + # endif + # endif + #endif ++#endif + } + + static struct tm * +@@ -467,12 +469,12 @@ getlt() + { + time_t date; + +-#ifdef BSD ++#if 0 + (void) time((long *)(&date)); + #else + (void) time(&date); + #endif +-#if (defined(ULTRIX) && !(defined(ULTRIX_PROTO) || defined(NHSTDC))) || defined(BSD) ++#if 0 + return(localtime((long *)(&date))); + #else + return(localtime(&date)); +@@ -519,7 +521,7 @@ time_t date; + if (date == 0) + lt = getlt(); + else +-#if (defined(ULTRIX) && !(defined(ULTRIX_PROTO) || defined(NHSTDC))) || defined(BSD) ++#if 0 + lt = localtime((long *)(&date)); + #else + lt = localtime(&date); Index: falconseye/patches/patch-src_u_init_c =================================================================== RCS file: falconseye/patches/patch-src_u_init_c diff -N falconseye/patches/patch-src_u_init_c --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ falconseye/patches/patch-src_u_init_c 3 Jun 2026 13:49:44 -0000 @@ -0,0 +1,12 @@ +Index: src/u_init.c +--- src/u_init.c.orig ++++ src/u_init.c +@@ -576,7 +576,7 @@ u_init() + aligns[flags.initalign].value; + u.ulycn = NON_PM; + +-#ifdef BSD ++#if 0 + (void) time((long *)&u.ubirthday); + #else + (void) time(&u.ubirthday); Index: falconseye/patches/patch-sys_unix_unixunix_c =================================================================== RCS file: /vide/cvs/ports/games/falconseye/patches/patch-sys_unix_unixunix_c,v diff -u -p -r1.2 patch-sys_unix_unixunix_c --- falconseye/patches/patch-sys_unix_unixunix_c 11 Mar 2022 19:04:20 -0000 1.2 +++ falconseye/patches/patch-sys_unix_unixunix_c 3 Jun 2026 13:49:44 -0000 @@ -1,5 +1,6 @@ ---- sys/unix/unixunix.c.orig Sun Jun 24 18:57:24 2001 -+++ sys/unix/unixunix.c Wed Jul 4 11:23:29 2001 +Index: sys/unix/unixunix.c +--- sys/unix/unixunix.c.orig ++++ sys/unix/unixunix.c @@ -42,7 +42,9 @@ gethdate(name) * does not exist on all systems, and moreover, that it sometimes includes * again, so that the compiler sees these typedefs twice. @@ -10,3 +11,12 @@ register const char *np, *path; char filename[MAXPATHLEN+1]; +@@ -119,7 +121,7 @@ int fd; + #ifndef INSURANCE + if(buf.st_size != sizeof(int)) return(0); /* not an xlock file */ + #endif +-#ifdef BSD ++#if 0 + (void) time((long *)(&date)); + #else + (void) time(&date);