Could be symbols are not stripped; if you
you may see something like this (yours will most likely not be identical)
Code:
hello: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), not stripped
Then look at the other one and see if it says "stripped."
On my system,
hello not stripped is 8,118 bytes, stripped it's 4,392.
You can strip symbols during compiling by adding the
-s flag to the compile command; you don't need the symbols unless you're going to be using the profiler or some similar utility.
Hope this helps some.