Maarten: > 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? Brian