On Tue, Dec 24, 2019 at 09:22:27AM +0100, Solene Rapenne wrote:
> Le Tue, 24 Dec 2019 10:46:41 +1100,
> Jonathan Gray <j...@jsg.id.au> a écrit :
> 
> > On Mon, Dec 23, 2019 at 07:41:32PM +0100, Solene Rapenne wrote:
> > > This patch updates eduke32 to last version and enable playing Ion
> > > Fury
> > > 
> > > most of the diff comes from the following thread
> > > https://marc.info/?l=openbsd-misc&m=156907261602397&w=2
> > > 
> > > tested Ion Fury, works fine on an old T400 (smooth if
> > > I disabled sound...) but smooth on a T480, it's really CPU intensive
> > > 
> > > duke32 shareware data still works fine out of the box  
> > 
> > This looks mostly fine but why have you dropped base-clang from
> > COMPILER?
> > 
> 
> I forgot to explain why I dropped base-clang, this is because eduke32
> fails with this error:
> 
> ===>  Building for eduke32-2.0.0.8494
> mkdir -p obj/duke3d
> c++ -std=gnu++11 -fno-exceptions -fno-rtti  -fomit-frame-pointer 
> -fno-strict-aliasing -fno-threadsafe-statics -fjump-tables 
> -fno-stack-protector -O2 -pipe -W -Wall -Wextra -Wpointer-arith 
> -Wno-char-subscripts -Wno-missing-braces -Wwrite-strings -Wuninitialized 
> -Wno-attributes -Wno-strict-overflow         -Isource/build/include 
> -Isource/mact/include -Isource/audiolib/include -Isource/glad/include 
> -Isource/voidwrap/include -MP -MMD -funsigned-char -U_FORTIFY_SOURCE 
> -D_FORTIFY_SOURCE=0 -DNDEBUG -DNOASM -DRENDERTYPESDL=1 -DSTARTUP_WINDOW 
> -DUSE_OPENGL -DPOLYMER -I/usr/local/include -DUSE_LIBVPX -DHAVE_VORBIS 
> -DHAVE_FLAC -DHAVE_XMP -DSDL_TARGET=2 -I/usr/local/include 
> -I/usr/local/include/SDL2 -I/usr/X11R6/include -D_REENTRANT 
> -I/usr/X11R6/include -DHAVE_GTK2 -I/usr/local/include/gtk-2.0 
> -I/usr/local/lib/gtk-2.0/include -I/usr/local/include/pango-1.0 
> -I/usr/local/include/gio-unix-2.0 -I/usr/X11R6/include 
> -I/usr/local/include/cairo -I/usr/local/include/atk-1.0 
> -I/usr/local/include/gdk-pixbuf-2.0 -I/usr/local/include -pthread 
> -I/usr/local/include/fribidi -I/usr/X11R6/include/pixman-1 
> -I/usr/local/include/libpng16 -I/usr/local/include/harfbuzz 
> -I/usr/local/include/glib-2.0 -I/usr/local/lib/glib-2.0/include 
> -I/usr/X11R6/include/freetype2  -Isource/duke3d/src -c 
> source/duke3d/src/actors.cpp -o obj/duke3d/actors.o 
> In file included from source/duke3d/src/actors.cpp:25:
> In file included from source/duke3d/src/duke3d.h:134:
> In file included from source/duke3d/src/game.h:34:
> source/duke3d/src/gamevars.h:254:85: error: fallthrough annotation does not 
> directly precede switch label
>         case GAMEVAR_PERPLAYER: iptr = &var.pValues[vm.playerNum & 
> (MAXPLAYERS-1)]; fallthrough__;
>                                                                               
>       ^
> source/build/include/compat.h:267:25: note: expanded from macro 
> 'fallthrough__'
> #  define fallthrough__ [[fallthrough]]
>                         ^
> 1 error generated.
> gmake: *** [GNUmakefile:1074: obj/duke3d/actors.o] Error 1
> *** Error 2 in . (/home/ports/infrastructure/mk/bsd.port.mk:2890 
> '/home/ports/pobj/eduke32-2.0.0.8494/.build_done')
> *** Error 1 in /usr/ports/games/eduke32 
> (/home/ports/infrastructure/mk/bsd.port.mk:2556 'all')

case GAMEVAR_PERACTOR: iptr = &var.pValues[vm.spriteNum & (MAXSPRITES-1)]; goto 
jmp;
case GAMEVAR_PERPLAYER: iptr = &var.pValues[vm.playerNum & (MAXPLAYERS-1)]; 
fallthrough__;
jmp: default: *iptr = libdivide_s32_do(*iptr, dptr); break;

it should be enough to change this to

default: jmp: ...

[[fallthrough]] requires the next statement to be a case or default
statement.  gcc seems to be less strict.

Reply via email to