Yup, checked ALSA 1.0.12 (which looks like the one used on the K3), and the linking script indeed does the same kind of versioning on the 1.0 API that the newer versions don't do anymore... That's fun. -_-"
EDIT: Apparently, it was a
bug ;-)
From what I gather, they use libdl/dlsym/a dlsym wrapper because they default to dynamically loading the plugins, to avoid the overhead of having the dynamic loader do a full lookup for every plugin when you usually only need a small part of them in your processing chain, I think... That ends up being funny to do with only static libraries when you need to handle symbol versioning on top of it. (Take that with a grain of salt, I didn't look too deeply into it, and that's mostly way-over-my-head ELF stuff ;p).