[Bug 39165] New: dlls/xaudio2_7 fails to compile (unconditional dependency on OpenAL)
https://bugs.winehq.org/show_bug.cgi?id=39165 Bug ID: 39165 Summary: dlls/xaudio2_7 fails to compile (unconditional dependency on OpenAL) Product: Wine Version: 1.7.50 Hardware: x86-64 OS: Linux Status: NEW Keywords: regression Severity: blocker Priority: P2 Component: -unknown Assignee: wine-bugs(a)winehq.org Reporter: dmitry(a)baikal.ru CC: aeikum(a)codeweavers.com Regression SHA1: 1c643f39e2814dca59e284092aa3fb47f6280791 Distribution: --- This is a regression, introduced by commit 1c643f39e2814dca59e284092aa3fb47f6280791 Author: Andrew Eikum <aeikum(a)codeweavers.com> Date: Tue Aug 25 14:28:37 2015 -0500 xaudio2: Implement device activation. This adds a build-time dependency on openal, and a run-time dependency on openal-soft's ALC_SOFT_loopback extension. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=39165 --- Comment #1 from Dmitry Timoshkov <dmitry(a)baikal.ru> --- It's worth to mention that I have openal/openal-devel installed (both 64-bit and 32-bit). -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=39165 --- Comment #2 from Sebastian Lackner <sebastian(a)fds-team.de> --- Are you sure that this is a problem in practice? --- snip --- --- a/configure.ac +++ b/configure.ac @@ -1738,8 +1738,9 @@ then AC_DEFINE_UNQUOTED(HAVE_OPENAL,1,[Define to 1 if OpenAL is available])],,) fi WINE_NOTICE_WITH(openal,[test "x$ac_cv_lib_openal" != xyes], - [libopenal ${notice_platform}development files not found (or too old), OpenAL won't be supported.]) + [libopenal ${notice_platform}development files not found (or too old), OpenAL and XAudio2 won't be supported]) test "x$ac_cv_lib_openal" = xyes || enable_openal32=${enable_openal32:-no} +test "x$ac_cv_lib_openal" = xyes || enable_xaudio2_7=${enable_xaudio2_7:-no} dnl **** Check for libkstat **** if test "$ac_cv_header_kstat_h" = "yes" --- snip --- With these changes xaudio2_7 should be disabled when OpenAL is not present. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=39165 --- Comment #3 from Dmitry Timoshkov <dmitry(a)baikal.ru> --- (In reply to Sebastian Lackner from comment #2)
With these changes xaudio2_7 should be disabled when OpenAL is not present.
I guess that since I have libopenal/libopenal-devel installed the configure check passes. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=39165 --- Comment #4 from Dmitry Timoshkov <dmitry(a)baikal.ru> --- Here is the compilation failure: xaudio_dll.c: In function al_get_loopback_format: xaudio_dll.c:1462:20: error: ALC_UNSIGNED_BYTE_SOFT undeclared (first use in this function) xaudio_dll.c:1462:20: note: each undeclared identifier is reported only once for each function it appears in xaudio_dll.c:1464:20: error: ALC_SHORT_SOFT undeclared (first use in this function) xaudio_dll.c:1466:20: error: ALC_INT_SOFT undeclared (first use in this function) xaudio_dll.c:1472:20: error: ALC_FLOAT_SOFT undeclared (first use in this function) xaudio_dll.c: In function IXAudio2Impl_CreateMasteringVoice: xaudio_dll.c:1592:16: error: ALC_FORMAT_CHANNELS_SOFT undeclared (first use in this function) xaudio_dll.c:1595:20: error: ALC_MONO_SOFT undeclared (first use in this function) xaudio_dll.c:1598:20: error: ALC_STEREO_SOFT undeclared (first use in this function) xaudio_dll.c:1601:20: error: ALC_QUAD_SOFT undeclared (first use in this function) xaudio_dll.c:1604:20: error: ALC_5POINT1_SOFT undeclared (first use in this function) xaudio_dll.c:1607:20: error: ALC_6POINT1_SOFT undeclared (first use in this function) xaudio_dll.c:1610:20: error: ALC_7POINT1_SOFT undeclared (first use in this function) xaudio_dll.c:1619:16: error: ALC_FORMAT_TYPE_SOFT undeclared (first use in this function) make: *** [xaudio_dll.o] Error 1 and the config.log snippets: configure:6747: checking OpenAL/al.h usability configure:6747: gcc -m32 -c -g -O2 conftest.c >&5 conftest.c:55:23: fatal error: OpenAL/al.h: No such file or directory ... configure:6747: checking OpenAL/al.h presence configure:6747: gcc -m32 -E conftest.c conftest.c:22:23: fatal error: OpenAL/al.h: No such file or directory ... configure:13544: checking for -lopenal configure:13569: gcc -m32 -o conftest -g -O2 conftest.c -lopenal >&5 configure:13569: $? = 0 configure:13588: result: libopenal.so.1 ... | #define SONAME_LIBOPENAL "libopenal.so.1" | #define HAVE_OPENAL 1 -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=39165 --- Comment #5 from Dmitry Timoshkov <dmitry(a)baikal.ru> --- And some more detals: $> ls /usr/include/AL alc.h alext.h al.h efx-creative.h efx.h $> grep -r AL_UNSIGNED_BYTE /usr/include/AL -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=39165 --- Comment #6 from Dmitry Timoshkov <dmitry(a)baikal.ru> --- (In reply to Dmitry Timoshkov from comment #5)
$> grep -r AL_UNSIGNED_BYTE /usr/include/AL
should read as $> grep -r ALC_UNSIGNED_BYTE /usr/include/AL -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=39165 --- Comment #7 from Andrew Eikum <aeikum(a)codeweavers.com> --- That's interesting, what distro is this? I wonder what OpenAL they're using. Most Linux distros I looked at use openal-soft, which is where those definitions come from. In any case, they should be guarded by ifdefs. I suspect I broke the OSX build for the same reason. I will work on fixing this, thanks for reporting. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=39165 --- Comment #8 from Andrew Eikum <aeikum(a)codeweavers.com> --- In fact, we need openal-soft to work, so I should just disable xaudio2_7 entirely if openal-soft isn't present. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=39165 --- Comment #9 from Andrew Eikum <aeikum(a)codeweavers.com> --- Created attachment 52199 --> https://bugs.winehq.org/attachment.cgi?id=52199 Fix xaudio build Dmitry, I think this will fix it by disabling xaudio2_7 if openal-soft is not found. Please test (don't forget to clean the tree, run autoconf, etc). I'm not an autoconf expert, so review is welcome. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=39165 --- Comment #10 from Dmitry Timoshkov <dmitry(a)baikal.ru> --- (In reply to Andrew Eikum from comment #9)
Created attachment 52199 [details] Fix xaudio build
Dmitry, I think this will fix it by disabling xaudio2_7 if openal-soft is not found. Please test (don't forget to clean the tree, run autoconf, etc).
I'm not an autoconf expert, so review is welcome.
Seems to work, thanks. Is it possible to use standard openal API instead of openal-soft, or even implement xaudio on top of direct sound API? How many distributions provide openal-soft in addition to (or instead of) plain openal? -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=39165 --- Comment #11 from Andrew Eikum <aeikum(a)codeweavers.com> --- (In reply to Dmitry Timoshkov from comment #10)
(In reply to Andrew Eikum from comment #9)
Created attachment 52199 [details] Fix xaudio build
Dmitry, I think this will fix it by disabling xaudio2_7 if openal-soft is not found. Please test (don't forget to clean the tree, run autoconf, etc).
I'm not an autoconf expert, so review is welcome.
Seems to work, thanks.
Thanks for testing. I'll submit upstream.
Is it possible to use standard openal API instead of openal-soft,
No, unfortunately. Only openal-soft provides a software renderer. Every other openal implementation outputs only to hardware devices. I don't want to implement another mixer in Wine, and due to XAudio2 providing "effect chains," we may need access to the mixed samples before they are sent to hardware.
or even implement xaudio on top of direct sound API?
We could do this, though it isn't how Windows works. dsound's mixer and especially resampler aren't very fast or well featured, and frankly I would rather move dsound to use openal than try to reimplement those mixer features in Wine.
How many distributions provide openal-soft in addition to (or instead of) plain openal?
Arch Linux provides only openal-soft: https://projects.archlinux.org/svntogit/packages.git/tree/trunk/PKGBUILD?h=p... Ubuntu provides only openal-soft: http://packages.ubuntu.com/trusty/libopenal1 Debian provides only openal-soft: https://packages.debian.org/jessie/libopenal-dev Modern Fedora provides only openal-soft: http://koji.fedoraproject.org/koji/packageinfo?packageID=8993 Gentoo provides only openal-soft: https://packages.gentoo.org/package/media-libs/openal What's left? What distro are you using? -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=39165 Dmitry Timoshkov <dmitry(a)baikal.ru> changed: What |Removed |Added ---------------------------------------------------------------------------- Fixed by SHA1| |7f72a5f4ed0f09c58bac2364c74 | |d2ce7b4c3b967 Status|NEW |RESOLVED Resolution|--- |FIXED --- Comment #12 from Dmitry Timoshkov <dmitry(a)baikal.ru> --- Fixed by 7f72a5f4ed0f09c58bac2364c74d2ce7b4c3b967, thanks Andrew. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=39165 Alexandre Julliard <julliard(a)winehq.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED --- Comment #13 from Alexandre Julliard <julliard(a)winehq.org> --- Closing bugs fixed in 1.7.51. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
participants (1)
-
wine-bugs@winehq.org