Because we now have the symbol list we should probably change the header to always declare the whole API, and return errors when the compiled library doesn't enable the appropriate backend(s). That can be done in a later commit though, this is fine for now.