http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46333
--- Comment #4 from Jay <jay.krell at cornell dot edu> 2010-11-06 23:53:47 UTC --- "../../gcc-4.5/gcc/opts.c", line 1233: Error: The function "__flsbuf" must have a prototype. "../../gcc-4.5/gcc/opts.c", line 1350: Error: The function "__flsbuf" must have a prototype. #if (__cplusplus >= 199711L && (defined(_LP64) || defined(_REENTRANT))) || \ __cplusplus < 199711L ... #ifndef _LP64 extern int __filbuf(FILE *); extern int __flsbuf(int, FILE *); #endif /* _LP64 */ #else /* !defined __STDC__ */ either need to #if __GNUC__ around #define foo foo_unlocked or need to define __REENTRANT. This is all on Solaris 2.9, which may be out of support soon. I can move to Solaris 2.10. I need gcc 4.5.1. I can look into trunk *later*. Some of my own patches run afoul of SunStudio 12 C++, that maybe unique to me, e.g.: bool unused_gcc_feature (...) { gcc_unreachable (); } => unused_gcc_feature must return a value so I put in return 0; unpatched gcc doesn't necessarily have this. I'm not 100% which older g++ is on the other machine, just that it had problem with attribute(unused). However, I bet it is easier to use than non-g++! :) Also my ENUM_BITFIELD has an obvious typo in the last case, it need to reference NAME. Later, - Jay