Current CVS dlls/winmm/winealsa/audio.c issue

Carl Sopchak carl.sopchak at cegis123.com
Sun Dec 21 15:12:40 CST 2003


I just did a cvs update on the wine tree, and tried to build it.  The build 
failed when trying to link winealsa.drv.spec, with ALSA_widMessage reference 
undefined.

The issue was that the majority of the code in audio.c, including one 
definition of the function ALSA_widMessage, is conditioned upon

#if defined(HAVE_ALSA) &&  ((SND_LIB_MAJOR == 0 && SND_LIB_MINOR >= 9) || 
SND_LIB_MAJOR >= 1)

Then, near the bottom, another version of ALSA_widMessage is compiled 
conditioned upon

#ifndef HAVE_ALSA


So, If HAVE_ALSA is defined, but the rest of the first condition causes it to 
evaluate to FALSE, neither version of ALSA_widMessage gets compiled.  This is 
apparently what is happening to me.

Unfortunately, I have no idea about what *should* be happening here.  To get 
the build to continue, I just made the second half (&& onward) of the first 
condition into a second condition, added an #else, and copied the version of 
ALSA_widMessage that gets compiled #ifndef HAVE_ALSA into the #else clause.

I'm not sure if ./configure is erroneously setting HAVE_ALSA, or if the 
SND_LIB_* values are not defined right, or if the #if conditions are wrong in 
audio.c.  (I'd think that the later is at least *part* of the problem...)

Sad to say, I don't have the expertise, time, or, quite frankly, the desire to 
look into this right now.  (I'm actually trying to work on a problem with 
Quicken Delux 2000 printing partial page landscape checks that causes wine to 
crash which just started with a recent cvs update.  But that's another 
e-mail...)  But I thought someone who might be working on this code would be 
interested in knowing about it.

Regards,

Carl



More information about the wine-devel mailing list