www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1994/11/23/04:33:07

Date: Tue, 22 Nov 94 23:58:39 EST
From: dliu AT faraday-gw DOT njit DOT edu (Dong Liu)
To: Kimberley Burchett <OKRA AT max DOT tiac DOT net>
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>
<Pine DOT 3 DOT 89 DOT 9411221653 DOT B15124-0100000 AT max DOT tiac DOT net>
Mailer: VM 5.32 (beta) for GNU Emacs 18.59.5

>>>>> On Tue, 22 Nov 1994 16:14:31 -0500 (EST), Kimberley Burchett <OKRA AT max DOT tiac DOT net> 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  <dliu AT ace DOT njit DOT edu>
Electrical and Computer Engineering Department
New Jersey Institute of Technology, Newark, NJ 07102

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019