I have been upgrading gcc 2.9 to 3.0 on SGI (2.9 has a conflict with GLU library) and I could not belive how many problems new version has created to me.
1) Looks like they have chage algorith of name mangling, so all previously C++ compiled libraries with gcc 2.9 had to be recompiled to be link with gcc 3.0 objects.
2) Precompiled gcc3.0 from freeware.sgi.com does not include SGI specific C inludes. I have copied it from 2.9 or some macros in va_arg was undefined;
3) Level O2 optimization doesn't work with such code:
int *pi = NULL;
void **ppv = (void**)π
*ppv=malloc(2*sizeof(int));
after that pi was still NULL, but O1 optimization works fine.
May be it will be usefull to somebody.
1) Looks like they have chage algorith of name mangling, so all previously C++ compiled libraries with gcc 2.9 had to be recompiled to be link with gcc 3.0 objects.
2) Precompiled gcc3.0 from freeware.sgi.com does not include SGI specific C inludes. I have copied it from 2.9 or some macros in va_arg was undefined;
3) Level O2 optimization doesn't work with such code:
int *pi = NULL;
void **ppv = (void**)π
*ppv=malloc(2*sizeof(int));
after that pi was still NULL, but O1 optimization works fine.
May be it will be usefull to somebody.