[Slackbuilds-users] pulseaudio slackbuild

Gilles Chanteperdrix gilles.chanteperdrix at xenomai.org
Sun Mar 29 12:55:05 UTC 2015


On Sat, Mar 28, 2015 at 08:59:09AM +1000, Christoph Willing wrote:
> 
> 
> On 03/28/2015 06:59 AM, Gilles Chanteperdrix wrote:
> >On Sat, Mar 28, 2015 at 02:37:04AM +0700, Willy Sudiarto Raharjo wrote:
> >>>I am trying to build pulseaudio on slackware 14.1 from its
> >>>slackbuild, but I get compilation errors. First:
> >>>
> >>>CC     modules/module_udev_detect_la-module-udev-detect.lo
> >>>modules/module-udev-detect.c: In function 'is_card_busy':
> >>>modules/module-udev-detect.c:199:5: warning: implicit declaration
> >>>of function 'offsetof' [-Wimplicit-function-declaration] len =
> >>>offsetof(struct dirent, d_name) + fpathconf(dirfd(card_dir),
> >>>_PC_NAME_MAX) + 1; ^ modules/module-udev-detect.c:199:20: error:
> >>>expected expression before 'struct' len = offsetof(struct dirent,
> >>>d_name) + fpathconf(dirfd(card_dir), _PC_NAME_MAX) + 1; ^ make[3]:
> >>>*** [modules/module_udev_detect_la-module-udev-detect.lo] Error 1
> >>>
> >>>Then if I add --disable-udev to the configure arguments:
> >>>
> >>>daemon/dumpmodules.c: In function ‘is_preloaded’:
> >>>daemon/dumpmodules.c:95:14: error: ‘lt_preloaded_symbols’
> >>>undeclared (first use in this function) for (l =
> >>>lt_preloaded_symbols; l->name; l++) { ^ daemon/dumpmodules.c:95:14:
> >>>note: each undeclared identifier is reported only once for each
> >>>function it appears in daemon/dumpmodules.c: In function
> >>>‘pa_dump_modules’: daemon/dumpmodules.c:138:18: error:
> >>>‘lt_preloaded_symbols’ undeclared (first use in this function) for
> >>>(l = lt_preloaded_symbols; l->name; l++) { ^ make[3]: ***
> >>>[daemon/pulseaudio-dumpmodules.o] Error 1
> >>>
> >>>
> >>>Has anyone succeeded in compiling this software for 14.1 recently?
> >>
> >>tested on slackware64-14.1 and it's built properly
> >>speex:
> >>   MD5SUM check for speex-1.2rc2.tar.gz ... OK
> >>   Building package speex-1.2rc2-x86_64-1_SBo.tgz ... OK
> >>   Installing package speex-1.2rc2-x86_64-1_SBo.tgz ... OK
> >>
> >>json-c:
> >>   MD5SUM check for json-c-0.11.tar.gz ... OK
> >>   Building package json-c-0.11-x86_64-1_SBo.tgz ... OK
> >>   Installing package json-c-0.11-x86_64-1_SBo.tgz ... OK
> >>
> >>pulseaudio:
> >>   MD5SUM check for pulseaudio-5.0.tar.xz ... OK
> >>   Building package pulseaudio-5.0-x86_64-4_SBo.tgz ... OK
> >>   Installing package pulseaudio-5.0-x86_64-4_SBo.tgz ... OK
> >>
> >>Have you installed the deps?
> >
> >Could you tell me from which header your compilation gets offsetof ?
> >In my installation, it is not defined in any /usr/include headers.
> 
> This looks like a multilib issue -
> 
> man offsetof says #include <stddef.h>
> 
> I see there are a few stddef.h on my system, including:
>     /usr/include/linux/stddef.h is just a blank line - who knows what its
> there for. However
>     /usr/src/linux-3.14.33/include/linux/stddef.h
> and
>     /usr/lib64/gcc/x86_64-slackware-linux/4.8.2/include/stddef.h
> both have definitions of offsetof.
> 
> The fact that one of these is compiler-specific is what leads me to suspect
> a multilib issue since one might expect a mulitlib system to also have a
> /usr/lib/gcc/x86_64-slackware-linux/4.8.2/include/stddef.h but I don't have
> that on my multilib system. My guess is that you're trying to build a 32bit
> version and so the compiler can't find its stddef.h (its not there). You can
> compile a 64bit version on multilib i.e. don't do the
> /etc/profile.d/32dev.sh thing) and it should compile OK.

Ok, the file where the compilation error occurs did not include
stddef.h, so I added the include, and now pulseaudio compiles. I
guess stddef.h gets included by another header with the default
toolchain, and not with the multilib toolchain.

The other errors were due to antique headers installed in /usr/local.

Thanks for the help.
Regards.

-- 
					    Gilles.


More information about the SlackBuilds-users mailing list