Bug 104613 - games-fps/quake2-icculus-0.16.1 fails to build with gcc-3.3
|
Bug#:
104613
|
Product: Gentoo Linux
|
Version: unspecified
|
Platform: x86
|
|
OS/Version: Linux
|
Status: RESOLVED
|
Severity: minor
|
Priority: P2
|
|
Resolution: FIXED
|
Assigned To: games@gentoo.org
|
Reported By: brebs@sent.com
|
|
Component: Games
|
|
|
URL:
|
|
Summary: games-fps/quake2-icculus-0.16.1 fails to build with gcc-3.3
|
|
Keywords:
|
|
Status Whiteboard:
|
|
Opened: 2005-09-02 08:48 0000
|
The ebuild contains "BUILD_DEDICATED=YES \" instead of "BUILD_DEDICATED=$(yesno
dedicated) \"
This small fix allows the ebuild to compile by turning the "dedicated" USE flag
off, because with BUILD_DEDICATED=YES I get the compilation error:
gcc -Wall -pipe -Dstricmp=strcasecmp
-DDEFAULT_BASEDIR='\"/usr/share/games/quake2-data\"'
-DDEFAULT_LIBDIR='\"/usr/games/lib/quake2-icculus-qmax\"' -DQMAX -g
-DDEDICATED_ONLY -o releasei386/ded/q_shared.o -c src/game/q_shared.c
<command line>:5:18: missing terminating " character
<command line>:6:17: missing terminating " character
make[1]: *** [releasei386/ded/q_shared.o] Error 1
make[1]: Leaving directory
`/var/tmp/portage/quake2-icculus-0.16.1/work/quake2-r0.16.1'
make: *** [build_release] Error 2
!!! ERROR: games-fps/quake2-icculus-0.16.1 failed.
!!! Function src_compile, Line 103, Exitcode 2
!!! make failed
Reproducible: Always
Steps to Reproduce:
emerge quake2-icculus
Portage 2.0.51.22-r2 (default-linux/x86/2005.1, gcc-3.3.5-20050130,
glibc-2.3.5-r1, 2.6.13-gentoo i686)
=================================================================
System uname: 2.6.13-gentoo i686 AMD Athlon(tm) XP 2800+
Gentoo Base System version 1.6.13
distcc 2.18.3 i686-pc-linux-gnu (protocols 1 and 2) (default port 3632) [disabled]
ccache version 2.3 [disabled]
dev-lang/python: 2.3.5
sys-apps/sandbox: 1.2.12
sys-devel/autoconf: 2.13, 2.59-r6
sys-devel/automake: 1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6
sys-devel/binutils: 2.15.92.0.2-r10
sys-devel/libtool: 1.5.18-r1
virtual/os-headers: 2.6.11-r2
ACCEPT_KEYWORDS="x86"
AUTOCLEAN="yes"
CBUILD="i686-pc-linux-gnu"
CFLAGS="-march=athlon-xp"
CHOST="i686-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3.3/env
/usr/kde/3.3/share/config /usr/kde/3.3/shutdown /usr/kde/3/share/config
/usr/lib/X11/xkb /usr/lib/mozilla/defaults/pref /usr/share/config
/usr/share/texmf/dvipdfm/config/ /usr/share/texmf/dvips/config/
/usr/share/texmf/tex/generic/config/ /usr/share/texmf/tex/platex/config/
/usr/share/texmf/xdvi/ /var/bind /var/qmail/control"
CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d"
CXXFLAGS="-march=athlon-xp"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoconfig distlocks sandbox sfperms strict"
GENTOO_MIRRORS="http://gentoo.blueyonder.co.uk
ftp://mirrors.blueyonder.co.uk/mirrors/gentoo
http://www.mirrorservice.org/sites/www.ibiblio.org/gentoo/
ftp://ftp.mirrorservice.org/sites/www.ibiblio.org/gentoo/"
LANG="en_GB.UTF-8"
LC_ALL="en_GB.UTF-8"
LINGUAS="en"
MAKEOPTS="-j1"
PKGDIR="/usr/portage/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/portage"
SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage"
USE="x86 3dnow X aac aalib acpi alsa apache2 avi berkdb bitmap-fonts cdr crypt
curl dga directfb divx4linux dvd eds emboss encode fam flac foomaticdb fortran
gd gdbm gif gnome gnutls gpm gstreamer gtk gtk2 gtkhtml hal imagemagick imlib
java jpeg junit libg++ libwww mad mikmod mmx motif mozilla mp3 mpeg ncurses nls
nvidia offensive ogg oggvorbis opengl pam pdflib perl png postgres python
quicktime readline samba scanner sdl slang speex sse ssl svga sysfs tcpd tetex
tiff truetype truetype-fonts type1-fonts unicode vorbis wifi win32codecs xine
xml2 xmms xv zlib linguas_en userland_GNU kernel_linux elibc_glibc"
Unset: ASFLAGS, CTARGET, LDFLAGS
dedicated use flag is unrelated to your error
I'm having the same problems trying to emerge quake2-icculus. Make gives almost
the same output in the original report:
gcc -Wall -pipe -Dstricmp=strcasecmp -DHAVE_IPV6
-DDEFAULT_BASEDIR='\"/usr/share/games/quake2-data\"'
-DDEFAULT_LIBDIR='\"/usr/games/lib/quake2-icculus-qmax\"' -DQMAX
-I/usr/kde/3.4/include/artsc -pthread -I/usr/include/glib-2.0
-I/usr/lib/glib-2.0/include -g -DDEDICATED_ONLY -o releasei386/ded/q_shared.o -c
src/game/q_shared.c
<command line>:7:18: missing terminating " character
<command line>:8:17: missing terminating " character
make[1]: *** [releasei386/ded/q_shared.o] Error 1
make[1]: Leaving directory
`/var/tmp/portage/quake2-icculus-0.16.1/work/quake2-r0.16.1'
make: *** [build_release] Error 2
My emerge --info:
Portage 2.0.51.22-r2 (default-linux/x86/2005.1, gcc-3.3.5-20050130,
glibc-2.3.5-r1, 2.6.12-gentoo-r10-superorc i686)
=================================================================
System uname: 2.6.12-gentoo-r10-superorc i686 AMD Opteron(tm) Processor 146
Gentoo Base System version 1.6.13
dev-lang/python: 2.3.5
sys-apps/sandbox: 1.2.12
sys-devel/autoconf: 2.13, 2.59-r6
sys-devel/automake: 1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6
sys-devel/binutils: 2.15.92.0.2-r10
sys-devel/libtool: 1.5.18-r1
virtual/os-headers: 2.6.11-r2
ACCEPT_KEYWORDS="x86"
AUTOCLEAN="yes"
CBUILD="i686-pc-linux-gnu"
CFLAGS="-march=athlon-xp -O3 -pipe"
CHOST="i686-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3.4/env
/usr/kde/3.4/share/config /usr/kde/3.4/shutdown /usr/kde/3/share/config
/usr/lib/X11/xkb /usr/share/config /var/qmail/control"
CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d"
CXXFLAGS="-march=athlon-xp -O3 -pipe"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoconfig distlocks sandbox sfperms strict"
GENTOO_MIRRORS="http://distfiles.gentoo.org
http://distro.ibiblio.org/pub/Linux/distributions/gentoo"
MAKEOPTS="-j2"
PKGDIR="/usr/portage/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
SYNC="rsync://rsync.namerica.gentoo.org/gentoo-portage"
USE="x86 3dnow X aac acpi aim alsa aotuv apm arts audiofile avi berkdb
bitmap-fonts browserplugin bzip2 cdparanoia cdr crypt cups curl divx4linux dv
dvd dvdr dvdread emboss encode exif fam ffmpeg flac foomaticdb fortran gd gdbm
gif glut gpm gstreamer gtk gtk2 hal icc icq ieee1394 imagemagick imap imlib ipv6
java jpeg kde kdeenablefinal libg++ libwww mad matroska mikmod mmx mng motif mp3
mpeg msn mysql ncurses nls nocd nsplugin nvidia offensive ogg oggvorbis openal
opengl oss pam pdflib perl png python qt quicktime readline real sdl sndfile
spell sse sse2 ssl svga tcltk tcpd theora tiff truetype truetype-fonts
type1-fonts usb videos vorbis win32codecs xine xml xml2 xmms xprint xv xvid zlib
userland_GNU kernel_linux elibc_glibc"
Unset: ASFLAGS, CTARGET, LANG, LC_ALL, LDFLAGS, LINGUAS, PORTDIR_OVERLAY
I'm unable to fix the compilation errors caused by the "dedicated" flag being
hard-coded to YES. I found that adding this line to the ebuild, after the
"epatch" lines, helped:
sed -i "s/'/\"/g" Makefile
However, that gave rise to further nasty compilation errors. I assume these
errors are appearing due to the increased strictness of gcc in recent versions.
I would imagine that 90% of emergers don't care about the "dedicated"
functionality (and would rather be able to compile the client, than none at
all), so I suggest that a new ebuild be released with my one-line patch. Thanks.
Have the same problem...
> I'm unable to fix the compilation errors caused by the "dedicated" flag being
> hard-coded to YES. I found that adding this line to the ebuild, after the
> "epatch" lines, helped:
>
> sed -i "s/'/\"/g" Makefile
appliyng this patch caused another error:
src/qcommon/files.c: In function `FS_InitFilesystem':
src/qcommon/files.c:903: error: syntax error before '/' token
src/qcommon/files.c:909: error: syntax error before '/' token
make[1]: *** [releasei386/client/files.o] Error 1
make[1]: Leaving directory
`/var/tmp/portage/quake2-icculus-0.16.1/work/quake2-r0.16.1'
make: *** [build_release] Error 2
!!! ERROR: games-fps/quake2-icculus-0.16.1 failed.
!!! Function src_compile, Line 104, Exitcode 2
!!! make failed
!!! If you need support, post the topmost build error, NOT this status message.
Seems like this bug might be related to gcc version. It fails with gcc 3.3 but
builds fine with gcc 3.4.
You are right, thanks for tip
I' ve changed gcc-3.3.5 to 3.3.4 and now all is working fine
> I' ve changed gcc-3.3.5 to 3.3.4 and now all is working fine
br, mistake: I' ve changed gcc-3.3.5 to 3.4.4 and now all is working fine
I keyworded gcc ~x86 and emerged gcc 3.4.4 and now it will emerge.
Created an attachment (id=68896) [details]
quake2-icculus-0.16.1.diff
I'd like to add a "me too" that it compiles with the "dedicated" USE flag on,
with gcc-3.4.4-r1.
Let's not forget that this bug report was started *because* the "dedicated" USE
flag is ignored. So, enclosed is the patch equivalent to my original request to
make the "dedicated" USE flag actually have an effect - happily being, fixing
the compilation problem for roughly 90% of gcc-3.3.6 users.
I've been advised against updating gcc-3.3.6 to 3.4.4-r1, citing possible bad
voodoo with Gentoo. Am I going to end up breaking things if I change?
it doesnt fix anything, it ignores the problem
well, it fixes the 'ignores dedicated USE flag', but that's it
(In reply to comment #12)
> well, it fixes the 'ignores dedicated USE flag', but that's it
Is that not a good-enough reason to apply the patch? I'm confused.
it only treats the symptoms, not the problem itself
We would still add the patch to enable/disable the dedicated support, but would
*also* like to actually fix the problem. Otherwise, we'll have another bug 5
minutes later about "USE=dedicated quake2-icculus doesn't compile!"
There's no point in only half-fixing the problem.
*Compilation* with gcc 3.3.6 succeeds if these two patch lines in
quake2-icculus-0.16.1-gentoo-paths.patch are *not* applied:
BASE_CFLAGS += -DDEFAULT_BASEDIR='\"$(DEFAULT_BASEDIR)\"'
BASE_CFLAGS += -DDEFAULT_LIBDIR='\"$(DEFAULT_LIBDIR)\"'
Any news? I'm getting the same error and would be happy to start the dedicated
server..
Same problem here:
gcc -Wall -pipe -Dstricmp=strcasecmp -DHAVE_IPV6
-DDEFAULT_BASEDIR=''"/usr/share/games/quake2-data"''
-DDEFAULT_LIBDIR=''"/usr/games/lib/quake2-icculus-qmax"'' -DQMAX
-I/usr/kde/3.5/include/artsc -pthread -I/usr/include/glib-2.0
-I/usr/lib/glib-2.0/include -O2 -march=pentium4 -DLINUX_VERSION=''"3.21+r0.16"''
-DDEDICATED_ONLY -o releasei386/ded/net_udp.o -c src/linux/net_udp.c
gcc -Wall -pipe -Dstricmp=strcasecmp -DHAVE_IPV6
-DDEFAULT_BASEDIR=''\"/usr/share/games/quake2-data\"''
-DDEFAULT_LIBDIR=''\"/usr/games/lib/quake2-icculus-qmax\"'' -DQMAX
-I/usr/kde/3.5/include/artsc -pthread -I/usr/include/glib-2.0
-I/usr/lib/glib-2.0/include -g -DDEDICATED_ONLY -o releasei386/ded/q_shared.o -c
src/game/q_shared.c
<command line>:7:18: missing terminating " character
<command line>:8:17: missing terminating " character
make[1]: *** [releasei386/ded/q_shared.o] Error 1
make[1]: Leaving directory
`/var/tmp/portage/quake2-icculus-0.16.1/work/quake2-r0.16.1''
make: *** [build_release] Error 2
Created an attachment (id=71974) [details]
changes escaping of the path variables
Could somebody try this patch (of the patch ;) )?
It solves the problem for me, and I'm using gcc-3.3.6.
Instructions:
1. cat quake2-icculus-path.diff | patch -p0 -d
/usr/portage/games-fps/quake2-icculus
2. ebuild /usr/portage/games-fps/quake2-icculus/quake2-icculus-0.16.1.ebuild
digest
3. emerge quake2-icculus
Hi, I confirm that the patch in comment #20 works, on x86 (athlon-xp), after
switching back from gcc 3.4.4 and running "ccache -C". Compilation succeeds, and
the dedicated server works with the client.
Thanks for tha patch and also for testing it... Applied to CVS...
*** Bug 111431 has been marked as a duplicate of this bug. ***