use static declarations in external libraries
All externals need to have their functions and global variables declared as
static. Otherwise namespace pollution across translation units will occur.
All externals currently do not.
For simple externals, this can just be a matter of adding the
static keyword where necessary. (Excluding the
*_setup function, of course.)
For more complex libraries (ones that use their own shared libs, have their own headers, crazy nested makefiles) this will require more caution/testing.