gcc iussue or ... ?
gmarco at scotty.masternet.it
Fri Apr 11 23:12:51 PDT 2003
At 11/04/2003, you wrote:
>In message: <18.104.22.168.2.20030411223601.053eaeb8 at 22.214.171.124>
> Gianmarco Giovannelli <gmarco at scotty.masternet.it> writes:
>: At 11/04/2003, Leo Bicknell wrote:
>: >In a message written on Fri, Apr 11, 2003 at 08:41:37AM +0200, Gianmarco
>: >Giovannelli wrote:
>: > > The problem is that if I compile it under FreeBSD it is a binary of 19M,
>: > > while on linux (debian 3.0), same Makefile, is only 2MB. FreeBSD 5.0 and
>: > > OpenBSD 3.1 produce the (about) 19M file.
>: >Well, the problem location is fairly obvious:
>: >% ls -lags | sort -nr | more
>: >19416 -rwxr-xr-x 1 bicknell wheel 19854956 Apr 11 09:49 lonewolf*
>: >16912 -rw-r--r-- 1 bicknell wheel 17286792 Apr 11 09:42 globals.o
>: > 368 -rw-r--r-- 1 bicknell wheel 365140 Apr 11 09:46 npcinfo.o
>: > 304 -rw-r--r-- 1 bicknell wheel 301100 Apr 11 09:47 targeting.o
>: > 272 -rw-r--r-- 1 bicknell wheel 267648 Apr 11 09:48 virtues.o
>: >A quick nm --size-sort globals.o | tail shows:
>: >00009b80 D ownsp
>: >00009b80 D spawnsp
>: >000138a0 D location
>: >00111020 D region
>: >002180a0 D buffer
>: >002190a0 D PacketFetcher
>: >01061710 D PacketSender
>: >01061778 D cwrap
>: >010617f0 D w_anim
>: >01061850 D wp_version
>: >buffer, for instance appears to be 129 * 17000 = 2193000, a 2M
>: >buffer, and nm shows 2195616 bytes.
>: >I can't track down quickly why the others are so big, but I suspect you
>: >may be making them bigger than you expected. It could also be that
>: >FreeBSD puts some types of globals in the executable to load, where as
>: >Linux puts them in some zero filled pages or something, I don't know
>: >enough to know for sure. Either way, you probably want to make the
>: >data smaller, or dynamically allocate it to make sure you don't run
>: >into this on any platform.
>: The problem is that both the system start from _equals_ conditions (gcc
>: version, Makefiles and so on).
>: I'd like to understand way they generate different (and very different) exe
>Since you haven't given us the output of the make build, we can't tell
>that for sure. Equal makefiles might give slightly different results.
>Also, the items in 'D', why are they in data section rather than bss
>section. That's likely a large part of the problem. Can you share
>the definition of buffer?
first of all thanks for your reply.
My skills in g++ programming (as in other fields as well :-) are very
The only help I can give you is where the sources are (they are very small
and you can easily build with make -f Makefile.unix) :
or if you prefer a short way:
If you can help in trace down this hacks it will be wonderfull :-)
Gianmarco Giovannelli , "Unix expert since yesterday"
More information about the freebsd-hackers