Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 47622

Summary: wmix-3.0-r1 fails (gcc 3.3.3, linux-headers-2.6.4)
Product: Gentoo Linux Reporter: Jim Ramsay (lack) (RETIRED) <lack>
Component: New packagesAssignee: Desktop Misc. Team <desktop-misc>
Status: RESOLVED UPSTREAM    
Severity: normal    
Priority: High    
Version: unspecified   
Hardware: x86   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---

Description Jim Ramsay (lack) (RETIRED) gentoo-dev 2004-04-12 11:56:03 UTC
I get the following error:

  # emerge =x11-plugins/wmix-3.0-r1
  Calculating dependencies ...done!
  >>> emerge (1 of 1) x11-plugins/wmix-3.0-r1 to /
  >>> md5 src_uri ;-) wmix-3.0.tar.gz
  >>> Unpacking source...
  >>> Unpacking wmix-3.0.tar.gz to /var/tmp/portage/wmix-3.0-r1/work
  >>> Source unpacked.
  gcc -O2 -march=athlon-xp -pipe   -c -o misc.o misc.c
  gcc -O2 -march=athlon-xp -pipe   -c -o mixer-oss.o mixer-oss.c
  mixer-oss.c: In function `get_mixer_state':
  mixer-oss.c:105: error: subscripted value is neither array nor pointer
  mixer-oss.c: In function `mixer_init':
  mixer-oss.c:258: error: subscripted value is neither array nor pointer
  make: *** [mixer-oss.o] Error 1
  make: *** Waiting for unfinished jobs....

  !!! ERROR: x11-plugins/wmix-3.0-r1 failed.
  !!! Function src_compile, Line 22, Exitcode 2
  !!! (no error message)

I do not know if this is the fault of gcc (--version gives "gcc (GCC) 3.3.3 20040217 (Gentoo Linux 3.3.3, propolice-3.3-7)") or that I have linux-headers-2.6.4 installed.  However, the following patch makes it work:

--- mixer-oss.c.orig    2004-04-12 12:37:50.331573500 -0600
+++ mixer-oss.c 2004-04-12 12:38:31.847763644 -0600
@@ -93,7 +93,7 @@

 static bool get_mixer_state(void)
 {
-    struct mixer_info mixer_info;
+    struct mixer_info m_info;
     int dev_lr_volume, dev_left_volume, dev_right_volume;
     float left, right;
     int srcmask;
@@ -102,9 +102,9 @@
     /* to really keep track of updates */
     static MixerChannel oldmixer[SOUND_MIXER_NRDEVICES];

-    ioctl(mixer_fd, SOUND_MIXER_INFO, &mixer_info);
+    ioctl(mixer_fd, SOUND_MIXER_INFO, &m_info);

-    if (mixer_info.modify_counter == prev_modify_counter)
+    if (m_info.modify_counter == prev_modify_counter)
        /*
         * Mixer state has not changed
         */
@@ -156,7 +156,7 @@
        }
        mixer[ch].is_recording = ((1 << mixer[ch].dev) & srcmask) != 0;
     }
-    prev_modify_counter = mixer_info.modify_counter;
+    prev_modify_counter = m_info.modify_counter;
     /* check if this was due to OSS stupidity or if we really changed */
     if (!memcmp(&mixer, &oldmixer, sizeof(mixer))) {
        memcpy(&oldmixer, &mixer, sizeof(mixer));
@@ -223,7 +223,7 @@
 void mixer_init(const char *mixer_device, bool verbose)
 {   
     int devmask, srcmask, recmask, stmask;
-    struct mixer_info mixer_info;
+    struct mixer_info m_info;
     int count;
     int mask;

@@ -255,13 +255,13 @@
        exit(EXIT_FAILURE);
     }

-    if (ioctl(mixer_fd, SOUND_MIXER_INFO, &mixer_info) == -1) {
+    if (ioctl(mixer_fd, SOUND_MIXER_INFO, &m_info) == -1) {
        fputs("error: could not read mixer info\n", stderr);
        exit(EXIT_FAILURE);
     }
     
     if (verbose) {
-       printf("%s (%s)\n", mixer_info.name, mixer_info.id);
+       printf("%s (%s)\n", m_info.name, m_info.id);
        puts("Supported channels:");
     }
     for (count = 0; count < SOUND_MIXER_NRDEVICES; count++) {
Comment 1 James Kyte 2004-05-11 15:05:03 UTC
confirmed, i get the same error. using linux-headers-2.6.5:

Portage 2.0.50-r6 (default-x86-2004.0, gcc-3.3.2, glibc-2.3.2-r9, 2.6.5-gentoo-r1)
=================================================================
System uname: 2.6.5-gentoo-r1 i686 AMD Athlon(tm) XP 2000+
Gentoo Base System version 1.4.10
Autoconf: sys-devel/autoconf-2.58-r1
Automake: sys-devel/automake-1.8.3
ACCEPT_KEYWORDS="x86"
AUTOCLEAN="yes"
CFLAGS="-march=athlon-xp -Os -pipe -fomit-frame-pointer"
CHOST="i686-pc-linux-gnu"
COMPILER="gcc3"
CONFIG_PROTECT="/etc /usr/X11R6/lib/X11/xkb /usr/kde/2/share/config /usr/kde/3/share/config /usr/share/config /var/qmail/control"
CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d"
CXXFLAGS="-march=athlon-xp -Os -pipe -fomit-frame-pointer"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoaddcvs ccache sandbox"
GENTOO_MIRRORS="ftp://ftp.ndlug.nd.edu/pub/gentoo/ http://mirror.datapipe.net/gentoo ftp://mirrors.tds.net/gentoo ftp://ftp.gtlib.cc.gatech.edu/pub/gentoo"
MAKEOPTS="-j2"
PKGDIR="/usr/portage/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/portage"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="3dnow X acpi alsa avi berkdb cdr crypt cups encode foomaticdb gdbm gif gpm gtk gtk2 imlib jpeg libg++ libwww mad mikmod mmx motif mpeg ncurses nls nptl oggvorbis opengl oss pam pdflib perl png python qt quicktime readline sdl slang spell sse ssl svga tcltk tcpd tiff truetype x86 xinerama xml2 xmms xv zlib"
Comment 2 Jim Ramsay (lack) (RETIRED) gentoo-dev 2004-07-06 08:13:27 UTC
Looks to me like wmix-3.1 does not exhibit the same problem.  Anyone else agree?
Comment 3 Michele Noberasco (RETIRED) gentoo-dev 2004-07-16 17:03:01 UTC
Definitely... I'm removing the old 3.0 ebuild in favour of 3.1...