Starting in gcc-4.3, storage specifiers can't be given for template specializations. ReZound uses the "static" storage specifier for various template specializations. The problem being is that you can't simply remove that storage specifier because linking will then fail with pre-4.3. The attached patch uses a macro to test whether gcc-4.3 is being used and all the template specializations use STATIC as their storage specifier. If gcc-4.3 or newer is being used, STATIC expands to nothing. Otherwise, it expands to static. Note, the patch was originally supplied to Debian by Maximiliano Curia. I simply updated it to make the distinction between being compiled with a pre-4.3 compiler or not.