If I have a simple program... #include <stdio.h> int main(void) { printf("hello world\n"); return 0; } and compile it to object (gcc -c...) then run size and objdump on them $ gcc -W -Wall -c hello_world-1.c $ gcc -o hello_world-1 hello_world-1.o $ size hello_world-1 hello_world-1.o text data bss dec hex filename 916 256 4 1176 498 hello_world-1 48 0 0 48 30 hello_world-1.o and $ objdump -h hello_world-1.o hello_world-1.o: file format elf32-i386 Sections: Idx Name Size VMA LMA File off Algn 0 .text 00000023 00000000 00000000 00000034 2**2 CONTENTS, ALLOC, LOAD, RELOC, READONLY, CODE 1 .data 00000000 00000000 00000000 00000058 2**2 CONTENTS, ALLOC, LOAD, DATA 2 .bss 00000000 00000000 00000000 00000058 2**2 ALLOC 3 .rodata 0000000d 00000000 00000000 00000058 2**0 CONTENTS, ALLOC, LOAD, READONLY, DATA 4 .note.GNU-stack 00000000 00000000 00000000 00000065 2**0 CONTENTS, READONLY 5 .comment 0000001b 00000000 00000000 00000065 2**0 CONTENTS, READONLY You see that objdump object file says text is size 23, while size says it's 48. There's a 25 byte discrepency. Why? It seems to be the exact size of the entire printf... line in the code (plus a \0?). Any ideas? __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com