The declarations in libiberty.h do not match the declarations from glibc: /usr/include/libiberty.h:98: error: declaration of ‘char* basename(const char*)’ throws different exceptions /usr/include/string.h:387: error: than previous declaration ‘char* basename(const char*) throw ()’ /usr/include/libiberty.h:523: error: declaration of ‘int asprintf(char**, const char*, ...)’ throws different exceptions /usr/include/stdio.h:374: error: than previous declaration ‘int asprintf(char**, const char*, ...) throw ()’ /usr/include/libiberty.h:530: error: declaration of ‘int vasprintf(char**, const char*, char*)’ throws different exceptions /usr/include/stdio.h:368: error: than previous declaration ‘int vasprintf(char**, const char*, char*) throw ()’ The involved RPM Packages (versions): > rpm -qf /usr/include/libiberty.h /usr/include/string.h /usr/include/stdio.h /usr/include/stdio.h binutils-2.16.91.0.2-8 glibc-devel-2.3.5-40 glibc-devel-2.3.5-40 glibc-devel-2.3.5-40
When you include /usr/include/libiberty.h, you should define proper macros, like HAVE_DECL_BASENAME, HAVE_DECL_ASPRINTF, .., to avoid this.