This is the mail archive of the crossgcc@sourceware.org mailing list for the crossgcc project.

See the CrossGCC FAQ for lots more information.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: crosstools 0.42 builds arm bootloader executable size > 800 MB


If Dan's instinct is good (as it often is), I'd suggest that the issue might be found in the linker script -- you might need a special one to solve this problem. I'd start by running the -M (map) option on 'ld' ... verify if you're really getting 800 MB+ of zeros. The map just may point the way to what you'd need to do to the linker script. Assuming we're dealing with ELF, there are ways to get zeroed pages loaded without requiring copies of those pages in the executable. You'll need to find out which control section is holding all those zeroes: hopefully it's distinct from all the others. 'readelf' may also be of help to you (again, assuming ELF format).

Cheers,
--Jim--

Alex XT.Yan wrote:
hi,
	I compiled vivi(arm bootloader of Samsung) with crosstools 0.42.
	After some Makefile and header hacks like "short-load-bytes" and
	"no-fpu", the compilation finishs normally, but the size of the output
	executable (vivi) is 871MB which should be more or less than 70k~!
	'ls -l' and 'du -sh' totally make me confused:
	$ ls -l vivi
	-rwxrwxr-x   1 yanxt   yanxt  871430121  Jul 6 21:53 vivi
	$ du -sh vivi
	72K     vivi
	the needed time for transferring it convices me that 'ls -l' seems
	to tell the truth.

Dan suggested that it's mostly zeroes, cos it's asked to be loaded high (or that's the default), and it had to pad with zeroes.
Anyone can kindly convince me that please in the attached Makefile?
I can't figure it out yet.
How come this weird thing takes place?
Any advice is appreciated in advance.


Regards,




------------------------------------------------------------------------

Subject:
Re: crosstools_0.42 builds arm bootloader executable size > 800 MB
From:
"Dan Kegel" <dank06@kegel.com>
Date:
Fri, 6 Jul 2007 10:25:53 -0700
To:
YanXT <xiaotian.yan@gmail.com>

To:
YanXT <xiaotian.yan@gmail.com>

Delivered-To:
xiaotian.yan@gmail.com
Received:
from gmail-pop.l.google.com [209.85.199.111] by localhost with POP3 (fetchmail-6.3.2) for <YanXT@localhost> (single-drop); Sat, 07 Jul 2007 10:00:00 +0800 (CST)
Received:
by 10.114.157.2 with SMTP id f2cs916620wae; Fri, 6 Jul 2007 10:25:53 -0700 (PDT)
Received:
by 10.115.61.1 with SMTP id o1mr824825wak.1183742753630; Fri, 06 Jul 2007 10:25:53 -0700 (PDT)
Received:
by 10.114.171.20 with HTTP; Fri, 6 Jul 2007 10:25:53 -0700 (PDT)
Message-ID:
<a71bd89a0707061025k1f1b1933v722b8490a8baeac0@mail.gmail.com>
Sender:
daniel.r.kegel@gmail.com
In-Reply-To:
<56857a6a0707060903p5c4bbd68kc37fe5d8d6ecaf0d@mail.gmail.com>
MIME-Version:
1.0
Content-Type:
text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding:
7bit
Content-Disposition:
inline
References:
<20070706142215.GA5434@bupt-bcnl.com> <56857a6a0707060801x7a0a663am72c1da45d7a50f6d@mail.gmail.com> <a71bd89a0707060824seb90c77h420191502c9d880a@mail.gmail.com> <56857a6a0707060847i7e5d7efcn98c19b7066a2772e@mail.gmail.com> <56857a6a0707060903p5c4bbd68kc37fe5d8d6ecaf0d@mail.gmail.com>
X-Google-Sender-Auth:
89092c25de65dd75



Yeah, sounds like it's mostly zeroes. I bet you asked for it to be loaded high (or that's the default), and it had to pad with zeroes.

I've never dealt with this, you'll have to ask somebody
who knows more about linker maps, objcopy, and all that.

Try joining the mailing list, maybe it will accept your posts.
Or try posting on the binutils mailing list, maybe?

On 7/6/07, YanXT <xiaotian.yan@gmail.com> wrote:
size: vivi: File format not recognized
size: vivi.HY: File format not recognized
(vivi.HY is shipped with reference arm board)
$size vivi-elf
   text    data     bss     dec     hex filename
  51007    2828   10620   64455    fbc7 vivi-elf
the possibility that there are a lot of zero bytes in it is big:
$tar cjvf vivi-tbz2 vivi
$ls -l vivi-tbz2
-rw-rw-r--  1 yanxt    yanxt    28406  Jul  6 23:52  vivi-tbz2

it's stripped according to the Makefile:
/usr/local/arm/2.95.3/bin/arm-linux-nm -v -l vivi-elf > vivi.map
/usr/local/arm/2.95.3/bin/arm-linux-objcopy -O binary -S vivi-elf vivi
-R .comment -R .stab -R .stabstr



------------------------------------------------------------------------

--
For unsubscribe information see http://sourceware.org/lists.html#faq

-- For unsubscribe information see http://sourceware.org/lists.html#faq


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]