When the contents of TESTING.C are: #include "stdio.h" void main(void) { printf("\n%d\n", ( -0.25 < 0) ? 2 : 4); } Upon trying to compile: $ gcc -o TESTING TESTING.C TESTING.C:3: error: ‘::main’ must return ‘int’ Then I changed the file to: #include "stdio.h" int main(void) { printf("\n%d\n", ( -0.25 < 0) ? 2 : 4); return 1; } Then I got: $ gcc -o TESTING TESTING.C /tmp/ccEnQk4o.o:(.eh_frame+0x11): undefined reference to `__gxx_personality_v0' collect2: ld returned 1 exit status But if I change the input file name extension to testing.c or even TESTING.c (small letters) no problems were got. Why is this? -- Tux #395953 resides at http://samvit.org playing with KDE 3.51 on SUSE Linux 10.0 $ date [] CCE +2006-03-25 W12-6 UTC+0530 - : send the line "unsubscribe linux-c-programming" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html