From owner-freebsd-hackers@FreeBSD.ORG Fri Apr 11 22:04:51 2003 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 48A5437B401 for ; Fri, 11 Apr 2003 22:04:51 -0700 (PDT) Received: from harmony.village.org (rover.bsdimp.com [204.144.255.66]) by mx1.FreeBSD.org (Postfix) with ESMTP id 3C5A743FAF for ; Fri, 11 Apr 2003 22:04:50 -0700 (PDT) (envelope-from imp@bsdimp.com) Received: from localhost (warner@rover2.village.org [10.0.0.1]) by harmony.village.org (8.12.8/8.12.3) with ESMTP id h3C54mA7032856; Fri, 11 Apr 2003 23:04:48 -0600 (MDT) (envelope-from imp@bsdimp.com) Date: Fri, 11 Apr 2003 23:04:38 -0600 (MDT) Message-Id: <20030411.230438.53067150.imp@bsdimp.com> To: gmarco@scotty.masternet.it From: "M. Warner Losh" 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> X-Mailer: Mew version 2.1 on Emacs 21.2 / Mule 5.0 (SAKAKI) Mime-Version: 1.0 Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit cc: hackers@freebsd.org Subject: Re: gcc iussue or ... ? X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 Apr 2003 05:04:51 -0000 In message: <5.2.0.9.2.20030411223601.053eaeb8@194.184.65.7> Gianmarco Giovannelli 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