# include <stdio.h> main() { printf( "HELLO WORLD\n"); } If Above is called h.c it compiles if it is called H.C it doesn't. However it compiles with g++. It seems to me that at compile time H.C is taken to be a C++ programme but at link time it is treated as a C programme. If this is not a bug it sure acts like one. gcc H.C produces
Reading specs from /usr/lib/gcc-lib/i486-slackware-linux/3.3.4/specs Configured with: ../gcc-3.3.4/configure --prefix=/usr --enable-shared --enable-threads=posix --enable-__cxa_atexit --disable-checking --with-gnu-ld --verbose --target=i486-slackware-linux --host=i486-slackware-linux Thread model: posix gcc version 3.3.4 /usr/lib/gcc-lib/i486-slackware-linux/3.3.4/cc1plus -quiet -v -D__GNUC__=3 -D__GNUC_MINOR__=3 -D__GNUC_PATCHLEVEL__=4 -D_GNU_SOURCE H.C -D__GNUG__=3 -quiet -dumpbase H.C -auxbase H -version -o /tmp/ccfcrS3x.s GNU C++ version 3.3.4 (i486-slackware-linux) compiled by GNU C version 3.3.4. GGC heuristics: --param ggc-min-expand=81 --param ggc-min-heapsize=97018 ignoring nonexistent directory "/usr/i486-slackware-linux/include" #include "..." search starts here: #include <...> search starts here: /usr/lib/qt/include /usr/include/c++/3.3.4 /usr/include/c++/3.3.4/i486-slackware-linux /usr/include/c++/3.3.4/backward /usr/local/include /usr/lib/gcc-lib/i486-slackware-linux/3.3.4/include /usr/include End of search list. /usr/lib/gcc-lib/i486-slackware-linux/3.3.4/../../../../i486-slackware-linux/bin/as -V -Qy -o /tmp/ccqbZW7Z.o /tmp/ccfcrS3x.s GNU assembler version 2.15.92.0.2 (i486-slackware-linux) using BFD version 2.15.92.0.2 20040927 /usr/lib/gcc-lib/i486-slackware-linux/3.3.4/collect2 --eh-frame-hdr -m elf_i386 -dynamic-linker /lib/ld-linux.so.2 /usr/lib/gcc-lib/i486-slackware-linux/3.3.4/../../../crt1.o /usr/lib/gcc-lib/i486-slackware-linux/3.3.4/../../../crti.o /usr/lib/gcc-lib/i486-slackware-linux/3.3.4/crtbegin.o -L/usr/lib/gcc-lib/i486-slackware-linux/3.3.4 -L/usr/lib/gcc-lib/i486-slackware-linux/3.3.4/../../../../i486-slackware-linux/lib -L/usr/lib/gcc-lib/i486-slackware-linux/3.3.4/../../.. /tmp/ccqbZW7Z.o -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed /usr/lib/gcc-lib/i486-slackware-linux/3.3.4/crtend.o /usr/lib/gcc-lib/i486-slackware-linux/3.3.4/../../../crtn.o /tmp/ccqbZW7Z.o(.eh_frame+0x11): undefined reference to `__gxx_personality_v0' collect2: ld returned 1 exit status -- Summary: __gxx_personality_v0 Product: gcc Version: 3.3.4 Status: UNCONFIRMED Severity: normal Priority: P2 Component: c AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: murdochrav at yahoo dot ca GCC host triplet: i486-slackware-linux GCC target triplet: i486-slackware-linux http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24544