PulseAudio contains a lot of non-trivial code that has the side effect of triggering a few bugs in libraries it uses.
- libtool's libltdl 1.5.22 is buggy and causes PA to abort immediately after startup with a mutex locking error. Upgrade to 1.5.24 at least.
- Some recent libc versions have a locking problem in the dynamic module loader, which will cause PulseAudio to freeze randomly. This has been fixed in Fedora glibc 2.6.90-14. rhbz
- Some older libc6 versions have problems linking PulseAudio, see #152
- libatomic_ops for AMD64 is causes random bugs. Make sure to use a compiler that supports !sync to avoid these issues.
- Some distros don't properly configure /dev/tmpfs to enable POSIX shared memory. This will cause PA to print warnings on startup and will cause PA to disable shared memory data transfer.
- Some distros don't enable "POSIX" capabilities in the kernel. However, PulseAudio expects them to be available when compiled with support for them. Make sure to enable them in the kernel.
- If you compile PA on an embedded platform (i.e. one with exotic CPU) it will fall back to emulated atomic operations. Those are not real-time safe and also very slow. For the ARM case, read this blog story.
- There is a known and somewhat annoying issue with PA and ALSA that affects some apps using ALSA output via the PA ALSA plugin (e.g. Ekiga). See #23 and the upstream ALSA Bug for more details. The latest version that is known to compile fine on Solaris is 0.9.6. Newer versions are tested on Linux only. Patches welcome.