Bug 46630

Summary: Make Failed: padsp.c for function dsp_ioctl
Product: PulseAudio Reporter: johndoe32102002
Component: build-systemAssignee: pulseaudio-bugs
Status: RESOLVED FIXED QA Contact: pulseaudio-bugs
Severity: normal    
Priority: medium CC: colin, johndoe32102002, lennart
Version: unspecified   
Hardware: x86-64 (AMD64)   
OS: Linux (All)   
Whiteboard: triaged
i915 platform: i915 features:
Attachments: Disable OSS Wrapper if SOUND_PCM_* defines do not exist.

Description johndoe32102002 2012-02-25 17:20:53 UTC
After running ./configure with no errors, the make failed:
...
utils/padsp.c: In function 'dsp_ioctl':
utils/padsp.c:2266:14: error: 'SOUND_PCM_READ_RATE_is_obsolete' undeclared (first use in this function)
utils/padsp.c:2266:14: note: each undeclared identifier is reported only once for each function it appears in
utils/padsp.c:2274:14: error: 'SOUND_PCM_READ_CHANNELS_is_obsolete' undeclared (first use in this function)
utils/padsp.c:2282:14: error: 'SOUND_PCM_READ_BITS_is_obsolete' undeclared (first use in this function)
make[4]: *** [libpulsedsp_la-padsp.lo] Error 1
...

Here is my configuration for ./configure:

---{ pulseaudio 0.9.23 }---

    prefix:                        /usr/local
    sysconfdir:                    ${prefix}/etc
    localstatedir:                 ${prefix}/var
    System Runtime Path:           ${prefix}/var/run/pulse
    System State Path:             ${prefix}/var/lib/pulse
    System Config Path:            ${prefix}/var/lib/pulse
    Compiler:                      gcc -std=gnu99
    CFLAGS:                        -g -O2 -Wall -W -Wextra -pipe -Wno-long-long -Winline -Wvla -Wno-overlength-strings -Wunsafe-loop-optimizations -Wundef -Wformat=2 -Wlogical-op -Wsign-compare -Wformat-security -Wmissing-include-dirs -Wformat-nonliteral -Wold-style-definition -Wpointer-arith -Winit-self -Wdeclaration-after-statement -Wfloat-equal -Wmissing-prototypes -Wstrict-prototypes -Wredundant-decls -Wmissing-declarations -Wmissing-noreturn -Wshadow -Wendif-labels -Wcast-align -Wstrict-aliasing=2 -Wwrite-strings -Wno-unused-parameter -ffast-math -Wp,-D_FORTIFY_SOURCE=2 -fno-common -fdiagnostics-show-option

    Have X11:                      no
    Enable OSS Output:             yes
    Enable OSS Wrapper:            yes
    Enable Alsa:                   yes
    Enable Solaris:                no
    Enable GLib 2.0:               yes
    Enable Gtk+ 2.0:               yes
    Enable GConf:                  yes
    Enable Avahi:                  no
    Enable Jack:                   yes
    Enable Async DNS:              no
    Enable LIRC:                   no
    Enable DBUS:                   yes
      Enable HAL:                  yes
      Enable BlueZ:                no
    Enable udev:                   yes
      Enable HAL->udev compat:     no
    Enable TCP Wrappers:           no
    Enable libsamplerate:          yes
    Enable IPv6:                   yes
    Enable OpenSSL (for Airtunes): yes
    Enable tdb:                    yes
    Enable gdbm:                   no
    Enable simple database:        no

    System User:                   pulse
    System Group:                  pulse
    Access Group:                  pulse-access
    Enable per-user EsounD socket: yes
    Force preopen:                 no
    Preopened modules:             all
Comment 1 Tanu Kaskinen 2012-03-12 00:34:47 UTC
The "is_obsolete" suffix sounds like those symbols have been removed from newer OSS versions. This should be fixed in Pulseaudio, but as a temporary workaround you can pass --disable-oss-wrapper to ./configure if you don't need padsp. I guess it's pretty likely that you'll get similar errors also with the OSS modules. In that case use also --disable-oss-output.
Comment 2 Colin Guthrie 2012-03-13 16:17:50 UTC
Created attachment 58404 [details] [review]
Disable OSS Wrapper if SOUND_PCM_* defines do not exist.

What headers are you using here? Are you compiling against OSSv4 or similar?

For me I have:
/usr/include/linux/soundcard.h:#define SOUND_PCM_READ_RATE		_SIOR ('P', 2, int)

(this is included from /usr/include/sys/soundcard.h which I would think OSSv4 would override).

Anyway, I guess a compile test should be added to make sure that these defines are usable. The attached patch does this, but as Tanu said you may have other OSS problems in the compile.

I'll only include this patch upstream if the rest of your OSS stuff builds. Can you confirm?
Comment 3 johndoe32102002 2012-03-24 07:08:55 UTC
I am not too familiar with diff and patch, but I ran these commands:
diff -u configure new_configure > mod_config.diff #where mod_config has your changes
patch -R < new.diff && ./configure

Error:
CCLD   mcalign-test
I get undefined errors to what appears to be variables.  Here is an example:
/pulseaudio-0.9.23/src/.libs/libpulsecommon-0.9.23.so: undefined reference to `pa_path_get_filename'

I don't know if this (0.9.23) is the current version, so I think I will try the git.  I'll also manually check to ensure I have the latest version of all dependencies.
Comment 4 johndoe32102002 2012-03-24 09:14:25 UTC
The latest git today compiled fine (03/24/2012).

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.