http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53611
--- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> 2012-06-08 18:44:18 UTC --- I think this is expected behavior as if someone defines a "__cook" in the executable which links to the shared library, it will be considered a different type.