[comp.sys.sgi] Black Magic: __EXTENSIONS__

amoss@SHUM.HUJI.AC.IL (Amos Shapira) (10/26/90)

Hello,
 While installin GCC 1.37.1 on Iris 4D under Irix 3.3, I found that
 programs which refference sys_siglist compile and resolve this
 refference when compiled by the regular cc and not when compiled with
 GCC. When I #define __EXTENSIONS__ and include <signal.h> things work
 O.K. cc(1) doesn't define it when calling cpp (from running "cc -v").
 And it seems that cpp define this internally.

 I didn't find any mention of sys_siglist under /usr/include/*.h nor
 under /usr/include/sys/*.h. Also the only refferences in /usr/lib
 describe sys_siglist as an external symbol, none of them define it.

 What happens here?

Thanks in advance,
Amos Shapira
amoss@batata.huji.ac.il

moraes@cs.toronto.edu (Mark Moraes) (10/27/90)

It would appear that #ifdef __EXTENSIONS__ encloses all non-ANSI stuff
in the header files.  Presumably, if __EXTENSIONS__ were undefined,
the SGI header files would strictly conform to the ANSI namespace.  I
can't find a way to turn off __EXTENSIONS__, short of putting undef's
in my code.  [gcc will turn it off with -ansi, which I hope is correct]
Of course, lots of things stop working once you turn off
__EXTENSIONS__.