use __GNUC_PREREQ macro