diff options
author | edwin <edwin@FreeBSD.org> | 2005-11-18 05:58:49 +0800 |
---|---|---|
committer | edwin <edwin@FreeBSD.org> | 2005-11-18 05:58:49 +0800 |
commit | 5e280c5e0f8b56d0a555583479dcce4e1888483f (patch) | |
tree | c2bb6e49fe1c358cb50d602ee91ce21b1103e7a3 /games | |
parent | 1ec2bcb1d489c24c99041e1f8ee7d662404a9d59 (diff) | |
download | freebsd-ports-gnome-5e280c5e0f8b56d0a555583479dcce4e1888483f.tar.gz freebsd-ports-gnome-5e280c5e0f8b56d0a555583479dcce4e1888483f.tar.zst freebsd-ports-gnome-5e280c5e0f8b56d0a555583479dcce4e1888483f.zip |
[patch] games/quakeforge does not respond to keyboard input
After ports recompilation for 6.0 (upgrade from 5-STABLE)
I noticed that quakeforge start and plays the demo, but
completely ignores any keyboard input. Besides that, it
reports that plugin /usr/local/lib/quakeforge/console_client.so
cannot be loaded.
Investigation had shown that the plugin is used to drive
the game menu, and the reason it cannot be loaded is that
the main executable of the game does not export the symbol
Key_Progs_Init.
Symbol is absent since build links final exe from some
static libraries, and .o with Key_Progs_Init is (for some
reasons) not referenced by exe. As a workaround, I propose
to add an explicit reference for the symbol.
Proper fix would be something like -Wl,--whole-archive
switch for final link, but this does not work due to libtool
only allows to put switches at the start of the command
line. And cc links libgcc.a twice, that leads to duplicate
symbol definitions.
PR: ports/89065
Submitted by: Kostik Belousov <kostikbel@gmail.com>
Approved by: Alejandro Pulver <alejandro@varnet.biz>
Diffstat (limited to 'games')
-rw-r--r-- | games/quakeforge/files/patch-nq__source__sys_unix.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/games/quakeforge/files/patch-nq__source__sys_unix.c b/games/quakeforge/files/patch-nq__source__sys_unix.c new file mode 100644 index 000000000000..7bcb34b9bec7 --- /dev/null +++ b/games/quakeforge/files/patch-nq__source__sys_unix.c @@ -0,0 +1,12 @@ +--- nq/source/sys_unix.c.orig ++++ nq/source/sys_unix.c +@@ -69,6 +69,9 @@ + fcntl (0, F_SETFL, fcntl (0, F_GETFL, 0) & ~O_NONBLOCK); + } + ++extern void Key_Progs_Init (progs_t *pr); ++void (*x)() = Key_Progs_Init; ++ + int + main (int c, const char *v[]) + { |