Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 107014 - quake3 has no sound without oss workaround, but freezes at start of match with
Summary: quake3 has no sound without oss workaround, but freezes at start of match with
Status: RESOLVED INVALID
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Games (show other bugs)
Hardware: x86 Linux
: High normal
Assignee: Gentoo Games
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2005-09-23 10:35 UTC by Triffid Hunter
Modified: 2005-09-26 04:21 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Triffid Hunter 2005-09-23 10:35:58 UTC
the plugin mmap workarounds in /usr/src/linux/Documentation/sound/alsa/OSS-
Emulation.txt seem to be necessary, yet when they're enabled the game has sound, 
but freezes as soon as the player joins a match.

both the workaround requirement and freezing problem are new after updating 
about 200 packages to latest versions..

Reproducible: Always
Steps to Reproduce:
1. enable sound using workaround
2. quake3
3. start any game

Actual Results:  
game freezes as soon as player spawns

Expected Results:  
normal gameplay

emerge info
Portage 2.0.51.22-r2 (default-linux/x86/2005.0, gcc-3.4.4, glibc-2.3.5-r1, 2.6.
13-gentoo-r2 i686)
=================================================================
System uname: 2.6.13-gentoo-r2 i686 AMD Athlon(tm) 64 Processor 3000+
Gentoo Base System version 1.6.13
distcc 2.18.3 i686-pc-linux-gnu (protocols 1 and 2) (default port 3632) 
[enabled]
ccache version 2.3 [enabled]
dev-lang/python:     2.3.5-r2
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="-O2 -pipe               -march=athlon64                 -mtune=athlon64  
               -maccumulate-outgoing-args              -mfpmath=sse            -
mmmx           -msse2          -m32                              -fexpensive-
optimizations               -fmove-all-movables             -fomit-frame-pointer 
           -fprefetch-loop-arrays          -frerun-cse-after-loop   -frerun-
loop-opt                 -ftracer                "
CHOST="i686-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3/share/config /usr/lib/
X11/xkb /usr/lib/mozilla/defaults/pref /usr/share/config /var/qmail/control"
CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d"
CXXFLAGS="-O2 -pipe             -march=athlon64                 -mtune=athlon64  
               -maccumulate-outgoing-args              -mfpmath=sse            -
mmmx           -msse2          -m32                              -fexpensive-
optimizations               -fmove-all-movables             -fomit-frame-pointer 
           -fprefetch-loop-arrays          -frerun-cse-after-loop   -frerun-
loop-opt                 -ftracer                "
DISTDIR="/usr/portage/distfiles"
FEATURES="autoconfig ccache distcc distlocks fixpackages sandbox sfperms strict"
GENTOO_MIRRORS="http://mirror.aarnet.edu.au/pub/gentoo http://mirror.pacific.
net.au/linux/Gentoo http://mirror.isp.net.au/pub/gentoo"
MAKEOPTS="-j8"
PKGDIR="/usr/portage/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="x86 3dnow 3dnowext X X509 a52 aac acpi alsa apm avi bash-completion berkdb 
bitmap-fonts buttons bzip2 caps cdr crypt cups curl dga dts dv dvd dvdread eds 
emboss encode erandom escreen esd extensions fam ffmpeg fftw flac foomaticdb gd 
gdbm gif gnome gnutls gphoto2 gpm graphviz gstreamer gtk gtk2 hpn ieee1394 
imagemagick imlib jack jpeg libg++ libwww linuxthreads-tls lirc mad mikmod mmap 
mmx mmxext motif mp3 mpeg ncurses network nfs nls nptl nvidia offensive ogg 
oggvorbis opengl oss pam pcre pdflib perl png python quicktime readline samba 
sdl slang socks5 spell sse sse2 ssl svg tcltk tcpd threads tiff truetype 
truetype-fonts type1-fonts v4l vorbis win32codecs xchatdccserver xine xml xml2 
xmms xosd xv xvid xvmc zlib zvbi userland_GNU kernel_linux elibc_glibc"
Unset:  ASFLAGS, CTARGET, LANG, LC_ALL, LDFLAGS, LINGUAS, PORTDIR_OVERLAY
Comment 1 Chris Gianelloni (RETIRED) gentoo-dev 2005-09-23 12:19:17 UTC
Holy crap!

Have you tried recompiling with some sane CFLAGS?  That combination of CFLAGS is
like playing Russian roulette.  Try using something like "-O2 -march=athlon64
-pipe" instead.  Also, is -march=athlon64 even *valid* for 32-bit?

Anyway, feel free to REOPEN this after recompiling your system with sane CFLAGS.
Comment 2 Triffid Hunter 2005-09-24 20:52:06 UTC
I haven't yet found a document that states which -march is correct for each cpu 
type, let alone one that says what the proper set with which to build a 32 bit 
system for a 64bit chip is..

-march=athlon64 -m32 was just a guess that most programs seem to like.. ut2004/
diablo 2 under wine/unreal tournament/xorg-x11/etc all seem fine with these 
flags, and quake3 runs fine without the plugin/mmap workaround..

So if you'd like to point me the way of a document that answers the question "is 
-march=athlon64 even *valid* for 32-bit?" by way of lookup table or better, i'd 
have a better idea whether the above guess was a bit wierd or just plain wrong..

Any idea *what* I should recompile with fewer cflags and/or different arch? And 
any idea which arch and/or flags are "recommended" for 32bit systems on a 64bit 
cpu?
Comment 3 Triffid Hunter 2005-09-25 16:45:32 UTC
seems to be the related to http://forums.gentoo.org/viewtopic-t-313030.html and 
http://forums.gentoo.org/viewtopic-t-310644-highlight-sigsegv+xine.html..

the solutions there fixed numerous programs, but not (yet) quake3 unfortunately
..

any definition on what constitutes a 'sane' march yet, for this configuration? 
i've googled around, asked on the channel and poked at the forums, and it seems 
that no-one has any idea...
Comment 4 Chris Gianelloni (RETIRED) gentoo-dev 2005-09-26 04:21:01 UTC
Sane to me would be this:

-O2 -march=athlon64 -pipe

Anything else, and you're going against the compiler's better judgement and
forcing things on when they shouldn't be.  A prime example is -mfpmath=sse...
This forces the compiler to use SSE even where regular FPU might be more
efficient.  And no, -mfpmath=sse,387 isn't a good idea, either.  From what I can
tell from the GCC manual, athlon64 looks valid for 32-bit, also.  You won't need
-m32, either.  In fact, strip *everything* but what I stated above, and you'll
want to recompile at *least* your kernel and toolchain with the new flags.