If this externed variable is not resolved within the library, then programs which dynamically link to libmdxmini will fail to resolve the symbol when linking or dlopening.
mdxmini previously used a set of global pointers to manage a great deal of crucial song data, making it impossible to maintain multiple mdxmini instances at a time. This separates out those few pointers into a new struct which lives inside a t_mdxmini struct, meaning that any given t_mdxmini instance is totally isolated from every other. It's possible to have multiple instances of mdxmini living alongside each other! This necessitated a few API changes at the mdxmini level, but only a few; most of the changes are in the original mdxplay innards. The changed functions are: mdx_make_buffer (takes an extra argument) mdx_get_buffer_size (takes a struct as an argument rather than void) mdx_get_sample_size (takes a struct as an argument rather than void)