Date: Tue, 22 Nov 94 23:58:39 EST From: dliu AT faraday-gw DOT njit DOT edu (Dong Liu) To: Kimberley Burchett Cc: djgpp AT sun DOT soe DOT clarkson DOT edu, bug-g++@prep.ai.mit.edu Subject: G++ doesn't use bss? [Was HUGE exe] References: <9411220914 DOT AA04227 AT pvax DOT ico DOT olivetti DOT com> Mailer: VM 5.32 (beta) for GNU Emacs 18.59.5 >>>>> On Tue, 22 Nov 1994 16:14:31 -0500 (EST), Kimberley Burchett said: > -----------SOURCE----------- > > char Map[256][512]; > > main() { > } // turns out even memset() isn't needed... > > -----------SIZE----------- > text data bss dec hex filename > 3008 135168 164 138340 21c64 test It seems a bug of g++, I can reproduce it under Linux as following: /home/tmp$ cat tbss.c char arrary[1024][1024]; main() { } /home/tmp$ gcc -v -o c.out tbss.c Reading specs from /usr/lib/gcc-lib/i486-linux/2.6.2/specs gcc version 2.6.2 /usr/lib/gcc-lib/i486-linux/2.6.2/cpp -lang-c -v -undef -D__GNUC__=2 -D__GNUC_MINOR__=6 -Dunix -Di386 -Dlinux -D__unix__ -D__i386__ -D__linux__ -D__unix -D__i386 -D__linux -Asystem(unix) -Asystem(posix) -Acpu(i386) -Amachine(i386) -D__i486__ tbss.c /tmp/cca00379.i GNU CPP version 2.6.2 (80386, BSD syntax) #include "..." search starts here: #include <...> search starts here: /usr/local/include /usr/i486-linux/include /usr/lib/gcc-lib/i486-linux/2.6.2/include /usr/include End of search list. /usr/lib/gcc-lib/i486-linux/2.6.2/cc1 /tmp/cca00379.i -quiet -dumpbase tbss.c -version -o /tmp/cca00379.s GNU C version 2.6.2 (80386, BSD syntax) compiled by GNU C version 2.6.2. as -o /tmp/cca003791.o /tmp/cca00379.s ld -dll-verbose -m486 -o c.out /usr/lib/crt0.o -L/usr/lib/gcc-lib/i486-linux/2.6.2 /tmp/cca003791.o -lgcc -lc -lgcc ld version 2.5.2 (with BFD 2.5) /home/tmp$ gcc -v -x c++ -o c++.out tbss.c Reading specs from /usr/lib/gcc-lib/i486-linux/2.6.2/specs gcc version 2.6.2 /usr/lib/gcc-lib/i486-linux/2.6.2/cpp -lang-c++ -v -undef -D__GNUC__=2 -D__GNUG__=2 -D__cplusplus -D__GNUC_MINOR__=6 -Dunix -Di386 -Dlinux -D__unix__ -D__i386__ -D__linux__ -D__unix -D__i386 -D__linux -Asystem(unix) -Asystem(posix) -Acpu(i386) -Amachine(i386) -D__i486__ tbss.c /tmp/cca00384.ii GNU CPP version 2.6.2 (80386, BSD syntax) #include "..." search starts here: #include <...> search starts here: /usr/include/g++ /usr/local/include /usr/i486-linux/include /usr/lib/gcc-lib/i486-linux/2.6.2/include /usr/include End of search list. /usr/lib/gcc-lib/i486-linux/2.6.2/cc1plus /tmp/cca00384.ii -quiet -dumpbase tbss.cc -version -o /tmp/cca00384.s GNU C++ version 2.6.2 (80386, BSD syntax) compiled by GNU C version 2.6.2. as -o /tmp/cca003841.o /tmp/cca00384.s ld -dll-verbose -m486 -o c++.out /usr/lib/crt0.o -L/usr/lib/gcc-lib/i486-linux/2.6.2 /tmp/cca003841.o -lgcc -lc -lgcc ld version 2.5.2 (with BFD 2.5) /home/tmp$ ls -l c.out c++.out -rwxr-xr-x 1 dliu other 1061308 Nov 22 23:49 c++.out* -rwxr-xr-x 1 dliu other 12706 Nov 22 23:48 c.out* /home/tmp$ size -A c.out c++.out c.out : section size addr .text 4064 4128 .data 4096 8192 .bss 1044620 12288 Total 1052780 c++.out : section size addr .text 4064 4128 .data 1052672 8192 .bss 0 1060864 Total 1056736 --- Dong Liu Electrical and Computer Engineering Department New Jersey Institute of Technology, Newark, NJ 07102