Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 11 Apr 2003 23:04:38 -0600 (MDT)
From:      "M. Warner Losh" <imp@bsdimp.com>
To:        gmarco@scotty.masternet.it
Cc:        hackers@freebsd.org
Subject:   Re: gcc iussue or ... ?
Message-ID:  <20030411.230438.53067150.imp@bsdimp.com>
In-Reply-To: <5.2.0.9.2.20030411223601.053eaeb8@194.184.65.7>
References:  <5.2.0.9.2.20030411082040.02604e90@194.184.65.4> <20030411140738.GA40724@ussenterprise.ufp.org> <5.2.0.9.2.20030411223601.053eaeb8@194.184.65.7>

next in thread | previous in thread | raw e-mail | index | archive | help
In message: <5.2.0.9.2.20030411223601.053eaeb8@194.184.65.7>
            Gianmarco Giovannelli <gmarco@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
: >[etc]
: >
: >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 
: file...

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?

Warner



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20030411.230438.53067150.imp>