Skip to content

Commit

Permalink
games/qudos: try to unbreak the port's build against Clang 16
Browse files Browse the repository at this point in the history
While here, remove compiler flags `-fomit-frame-pointer' and
`-funroll-loops': the effect of the former is minuscule these
days (but it still breaks debugging) and for the latter, one
should let the [modern] compiler decide which loops to unroll
and when; forcing it will most likely yield larger and slower
code due to instruction cache misses.

Last but not least, make some private functions in the OpenGL
renderer static and define LICENSE (GPLv2 or later).

Reported by:	pkg-fallout
  • Loading branch information
Alexey Dokuchaev authored and Alexey Dokuchaev committed Jul 8, 2023
1 parent a8300c4 commit 7b672c1
Show file tree
Hide file tree
Showing 4 changed files with 108 additions and 8 deletions.
7 changes: 2 additions & 5 deletions games/qudos/Makefile
Expand Up @@ -11,6 +11,8 @@ EXTRACT_ONLY= ${DISTNAME}${EXTRACT_SUFX}
MAINTAINER= danfe@FreeBSD.org
COMMENT= Enhanced OpenGL-only Quake II engine

LICENSE= GPLv2+

USES= gmake tar:bzip2
MAKE_ENV= WITH_DATADIR=YES WITH_LIBDIR=YES WITH_XMMS=NO \
DATADIR="${Q2DIR}" LIBDIR="${LIBDIR}" BUILD_ARTS_SND=NO
Expand Down Expand Up @@ -169,11 +171,6 @@ MAKE_ENV+= WITH_X86_ASM=YES
MAKE_ENV+= WITH_X86_ASM=NO
.endif

post-patch:
# Resolve name collision with jpeg-8
@${REINPLACE_CMD} -e 's|jpeg_mem_src|local_jpeg_mem_src|' \
${WRKSRC}/src/ref_gl/gl_image.c

post-build:
.for bin in ${Q2BIN}
@cd ${WRKSRC}/quake2 && ${MV} ${bin:S/qudos/QuDos/} ${bin}
Expand Down
2 changes: 1 addition & 1 deletion games/qudos/files/patch-Makefile
Expand Up @@ -6,7 +6,7 @@
else
-CFLAGS+= -O3 -ffast-math -funroll-loops -fomit-frame-pointer \
- -fexpensive-optimizations
+CFLAGS+= -fcommon -ffast-math -funroll-loops -fomit-frame-pointer
+CFLAGS+= -fcommon -ffast-math -Wno-incompatible-function-pointer-types
ifeq ($(ARCH),i386)
-CFLAGS+= -falign-loops=2 -falign-jumps=2 -falign-functions=2 \
+CFLAGS+= -falign-functions=2 \
Expand Down
17 changes: 15 additions & 2 deletions games/qudos/files/patch-src__ref_gl__gl_local.h
@@ -1,5 +1,5 @@
--- src/ref_gl/gl_local.h.orig 2006-06-10 12:22:27.000000000 +0200
+++ src/ref_gl/gl_local.h 2012-04-25 06:13:42.000000000 +0200
--- src/ref_gl/gl_local.h.orig 2006-06-10 10:22:27 UTC
+++ src/ref_gl/gl_local.h
@@ -30,6 +30,7 @@
#include <GL/glext.h>

Expand All @@ -8,3 +8,16 @@
#include <jpeglib.h>

#include "../client/ref.h"
@@ -480,12 +481,6 @@ int Draw_GetPalette(void);
void GL_ResampleTexture(unsigned *in, int inwidth, int inheight, unsigned *out, int outwidth, int outheight);

struct image_s *R_RegisterSkin(char *name);
-
-void LoadPCX (char *filename, byte ** pic, byte ** palette, int *width, int *height);
-void LoadTGA (char *filename, byte ** pic, int *width, int *height);
-void LoadJPG (char *filename, byte ** pic, int *width, int *height);
-void LoadPNG (char *filename, byte ** pic, int *width, int *height);
-

image_t *GL_LoadPic(char *name, byte * pic, int width, int height, imagetype_t type, int bits);
image_t *GL_FindImage(char *name, imagetype_t type);
90 changes: 90 additions & 0 deletions games/qudos/files/patch-src_ref__gl_gl__image.c
@@ -0,0 +1,90 @@
--- src/ref_gl/gl_image.c.orig 2006-06-02 18:14:31 UTC
+++ src/ref_gl/gl_image.c
@@ -477,7 +477,7 @@ Scrap_Upload(void)
/*
* ============== LoadPCX ==============
*/
-void
+static void
LoadPCX(char *filename, byte ** pic, byte ** palette, int *width, int *height)
{
byte *raw;
@@ -602,7 +602,7 @@ typedef struct _TargaHeader {
* ============= LoadTGA NiceAss: LoadTGA() from Q2Ice, it supports more
* formats =============
*/
-void
+static void
LoadTGA(char *filename, byte ** pic, int *width, int *height)
{
int w, h, x, y, i, temp1, temp2;
@@ -888,19 +888,19 @@ LoadTGA(char *filename, byte ** pic, int *width, int *
* =================================================================
*/

-void
+static void
jpg_null(j_decompress_ptr cinfo)
{
}

-boolean
+static boolean
jpg_fill_input_buffer(j_decompress_ptr cinfo)
{
ri.Con_Printf(PRINT_ALL, "Premature end of JPEG data\n");
return 1;
}

-void
+static void
jpg_skip_input_data(j_decompress_ptr cinfo, long num_bytes)
{

@@ -911,8 +911,8 @@ jpg_skip_input_data(j_decompress_ptr cinfo, long num_b
ri.Con_Printf(PRINT_ALL, "Premature end of JPEG data\n");
}

-void
-jpeg_mem_src(j_decompress_ptr cinfo, byte * mem, int len)
+static void
+local_jpeg_mem_src(j_decompress_ptr cinfo, byte *mem, int len)
{
cinfo->src = (struct jpeg_source_mgr *)(*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, JPOOL_PERMANENT, sizeof(struct jpeg_source_mgr));
cinfo->src->init_source = jpg_null;
@@ -927,7 +927,7 @@ jpeg_mem_src(j_decompress_ptr cinfo, byte * mem, int l
/*
* ============== LoadJPG ==============
*/
-void
+static void
LoadJPG(char *filename, byte ** pic, int *width, int *height)
{
struct jpeg_decompress_struct cinfo;
@@ -956,7 +956,7 @@ LoadJPG(char *filename, byte ** pic, int *width, int *
jpeg_create_decompress(&cinfo);

/* Feed JPEG memory into the libJpeg Object */
- jpeg_mem_src(&cinfo, rawdata, rawsize);
+ local_jpeg_mem_src(&cinfo, rawdata, rawsize);

/* Process JPEG header */
jpeg_read_header(&cinfo, true);
@@ -1139,7 +1139,7 @@ fReadData(png_structp png, png_bytep data, png_size_t
* =============================================================
*/

-void
+static void
LoadPNG(char *filename, byte ** pic, int *width, int *height)
{
png_structp png;
@@ -1186,7 +1186,7 @@ LoadPNG(char *filename, byte ** pic, int *width, int *
if (my_png->ColorType == PNG_COLOR_TYPE_PALETTE)
png_set_palette_to_rgb(png);
if (my_png->ColorType == PNG_COLOR_TYPE_GRAY && my_png->BitDepth < 8)
- png_set_gray_1_2_4_to_8(png);
+ png_set_expand_gray_1_2_4_to_8(png);

/* Add alpha channel if present */
if (png_get_valid(png, pnginfo, PNG_INFO_tRNS))

0 comments on commit 7b672c1

Please sign in to comment.