add DLLEXPORT definition for __GNUC__ >= 4