This is the mail archive of the ecos-discuss@sources.redhat.com mailing list for the eCos project.


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: File Size Problem??


First thank you very much Gray.

Will the size of binary file = sum of each section of the a.out (image file)
??

Or any relation between binary file size and the sections in the a.out
(image file)?
Why the debug appeared in the command output (arm-elf-objdump -h) that I
havn't include '-g' for creating debug information? and should the debug
section be count into if calculating the size of the file?

e.g
arm-elf-objdump -h

Sections:
Idx	Name			Size		VMA		LMA		File off		Algn
0	.debug_aranges		00000368	00000000	00000000	000097c4	2**0
	CONTENTS,		READONLY,	DEBUGGING
1	.debug_pubnames	0000052c	00000000	00000000	00009b2c	2**0
	CONTENTS,		READONLY,	DEBUGGING
2	.debug_info		00008c4d	00000000	00000000	0000a058	2**0
	CONTENTS,		READONLY,	DEBUGGING
3	.debug_abbrev		00000c86
	xxxxxxxxxxxxxx
4	.debug_line		00002c70
	xxxxxxxxxxxxxx
5	.fixed_vectors		00000140
	xxxxxxxxxxxxxx
6	.rom_vectors		00000040
	xxxxxxxxxxxxxx
7	.text			00001650
	xxxxxxxxxxxxxx
8	.fini			00000000
	xxxxxxxxxxxxxx
9.	.rodata			00000011
	xxxxxxxxxxxxxx
10	.rodata1			00000000
	xxxxxxxxxxxxxx
11	.fixup			00000000
	xxxxxxxxxxxxxx
12	.gcc_except_table		00000000
	xxxxxxxxxxxxxx
13	.data			00000120
	xxxxxxxxxxxxxx
14	.bss			00008180
	xxxxxxxxxxxxxx



ls -l

b  size 6084

Any relation ship between those two sizes?

Thanks a lot!

best regards!

james


-----Original Message-----
From: Gary Thomas [mailto:gthomas@redhat.com]
Sent: 2001Äê12ÔÂ11ÈÕ 18:14
To: HuangQiang
Cc: eCos Discussion
Subject: Re: [ECOS] File Size Problem??


On Tue, 2001-12-11 at 10:35, HuangQiang wrote:
> Hi all:
>
> hello.c ---  int main(void) { return (0);}
>
> gcc hello.c
> size a.exe
> text	data	bss	dec	hex	filename
> 1024	1024	12	2060	80c	a.exe
>
> arm-elf-gcc xxxxxxx    hello.c xxxxxx  (no debug option -g not listed)
> arm-elf-size a.out
> text	data	bss	dec	hex	filename
> 206540	7484	180644	394668	605ac	a.out
>
> Why so much different??? It seems that the arm-elf-gcc output is much
larger
> that the gcc output. How can I get the actual size of the app for the arm?
I
> convert it to binary by using arm-elf-objcopy -O binary a.out b, I got b
> 200KB , how come? Is it possible for just for a plain main function? Is
> there any way to get the size of each section for the binary file?

For more detailed information, use 'arm-elf-objdump -h'  However, the
reason for the disparity is that the Linux application only contains
the code for your program.  The eCos application needs to be stand-alone
and thus contains the eCos kernel, etc.

Let's be fair.  On Linux (or any other OS), the 'a.exe' file that you
quote only has the code+data for "hello.c", whereas your eCos
application contains that plus the eCos kernel (which may include
a networking stack and lots of other things).

If you were to compare apples to apples, you'd need to add in all
of these things as well:

[root@hermes parted]# size /boot/vmlinux-2.2.16-22
   text    data     bss     dec     hex filename
1121911  220968  244092 1586971  18371b /boot/vmlinux-2.2.16-22
[root@hermes parted]# size /lib/libc.so.6
   text    data     bss     dec     hex filename
1259785   18212   16872 1294869  13c215 /lib/libc.so.6
  ...




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