[pulseaudio-discuss] PulseAudio support on Solaris
brian.cameron at oracle.com
Wed Oct 19 12:30:14 PDT 2011
> Thanks for trying this workaround and confirming that this is indeed
> the problem.
> (core-cache.h includes core.h, sink.h and others, which define objects
> using PA_DECLARE_PUBLIC_CLASS, that cause trouble when not linked in.
> I'm wondering why this is no problem on Linux)
Probably because these functions are actually unused by any clients,
and the lazy linker used on Linux doesn't care, wheras Solaris linker
is more strict. You could probably make the Linux linker more strict
with the right arguments.
>> I am not sure if this is the best way to fix this issue. If the PulseAudio
>> maintainers want to rearrange the header files in some other way to avoid
>> the libpulsecommon pstream.c file needing to include
>> pulsecore/core-scache.h, that is obviously okay.
> Did you check that other users of PA_SCACHE_ENTRY_SIZE_MAX can find
> the macro in the new location?
Since core-scache.h includes memchunk.h anyway, it will always be
available to anything that previously included core-scache.h. As I
said PulseAudio builds okay with this change, no issues with other
things not finding it.
> The problem with the workaround is obviously that something about the
> scache does not belong in memchunk.h conceptually.
As I said in my comments, I do not really care how the headers are
organized. If creating a new separate header file with only the
#define that can be included from core-scache.h and pstream.c, that
would obviously also be fine. There are probably a million ways to
fix this sort of issue. If you instruct me how you would prefer this
to be organized, I can create a new patch.
>> I also notice that src/Makefile needs to be updated so connect_stress links
>> with libpulsecore, so this is also fixed in this patch.
> This needs to go in a separate patch.
Sure. Do you need me to split this file into two patches for you?
More information about the pulseaudio-discuss