gnuc compatibility macro