no such thing as __GNUC_MAJOR__, should have been __GNUC__