Thread overview
Creating a binary?
Aug 15, 2006
Peter Thomassen
Aug 15, 2006
Lars Ivar Igesund
Aug 15, 2006
Peter Thomassen
Sep 13, 2006
Hasan Aljudy
Sep 13, 2006
Oskar Linde
Sep 13, 2006
Hasan Aljudy
August 15, 2006
Hi,

when compiling file.d using dmd, file begins like this:

ELF Header:
  Magic:   7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00
  Class:                             ELF32
  Data:                              2's complement, little endian
  Version:                           1 (current)

I think this is the reason why D programs are that big ... why aren't binaries created?

Peter
August 15, 2006
Peter Thomassen wrote:

> Hi,
> 
> when compiling file.d using dmd, file begins like this:
> 
> ELF Header:
>   Magic:   7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00
>   Class:                             ELF32
>   Data:                              2's complement, little endian
>   Version:                           1 (current)
> 
> I think this is the reason why D programs are that big ... why aren't binaries created?
> 
> Peter

Ehm, this seems like the pretty printed version of an ELF header (which is stored binary btw), much like the one produced by analytical programs like readelf. All ELF binaries (whether executables, shared libs or object files) start like this.

-- 
Lars Ivar Igesund
blog at http://larsivi.net
DSource & #D: larsivi
August 15, 2006
Hi!

Lars Ivar Igesund schrieb am Dienstag, 15. August 2006 22:46:
> Ehm, this seems like the pretty printed version of an ELF header (which is stored binary btw), much like the one produced by analytical programs like readelf. All ELF binaries (whether executables, shared libs or object files) start like this.

I used less to view the compiled file, and obviously less passes the file through readelf or sth. Using cat file | less, everything looks binary :-) My mistake, sorry.

Anyway: Why are (striped) binaries at least 150 KB of size, even when doing
nothing (void main() { })?

Thanks,
Peter
August 15, 2006
Peter Thomassen wrote:

> Anyway: Why are (striped) binaries at least 150 KB of size, even when doing
> nothing (void main() { })?

Phobos is statically linked. (for instance libstdc++ is usually dynamic)

--anders
September 13, 2006

Peter Thomassen wrote:
> Hi!
> 
> Lars Ivar Igesund schrieb am Dienstag, 15. August 2006 22:46:
> 
>>Ehm, this seems like the pretty printed version of an ELF header (which is
>>stored binary btw), much like the one produced by analytical programs like
>>readelf. All ELF binaries (whether executables, shared libs or object
>>files) start like this.
> 
> 
> I used less to view the compiled file, and obviously less passes the file
> through readelf or sth. Using cat file | less, everything looks binary :-)
> My mistake, sorry.
> 
> Anyway: Why are (striped) binaries at least 150 KB of size, even when doing
> nothing (void main() { })?
> 
> Thanks,
> Peter

150 KB is big?
September 13, 2006
Hasan Aljudy wrote:
> 
> 
> Peter Thomassen wrote:
>> Hi!
>>
>> Lars Ivar Igesund schrieb am Dienstag, 15. August 2006 22:46:
>>
>>> Ehm, this seems like the pretty printed version of an ELF header (which is
>>> stored binary btw), much like the one produced by analytical programs like
>>> readelf. All ELF binaries (whether executables, shared libs or object
>>> files) start like this.
>>
>>
>> I used less to view the compiled file, and obviously less passes the file
>> through readelf or sth. Using cat file | less, everything looks binary :-)
>> My mistake, sorry.
>>
>> Anyway: Why are (striped) binaries at least 150 KB of size, even when doing
>> nothing (void main() { })?
>>
>> Thanks,
>> Peter
> 
> 150 KB is big?

My latest stripped DMD (-O -release) generated binary had a code segment of 18 MB. On the other hand, binaries I write for microcontrollers is often smaller than 200 bytes (not using D of course). Everything is relative. :)

/Oskar

September 13, 2006

Oskar Linde wrote:
> Hasan Aljudy wrote:
> 
>>
>>
>> Peter Thomassen wrote:
>>
>>> Hi!
>>>
>>> Lars Ivar Igesund schrieb am Dienstag, 15. August 2006 22:46:
>>>
>>>> Ehm, this seems like the pretty printed version of an ELF header (which is
>>>> stored binary btw), much like the one produced by analytical programs like
>>>> readelf. All ELF binaries (whether executables, shared libs or object
>>>> files) start like this.
>>>
>>>
>>>
>>> I used less to view the compiled file, and obviously less passes the file
>>> through readelf or sth. Using cat file | less, everything looks binary :-)
>>> My mistake, sorry.
>>>
>>> Anyway: Why are (striped) binaries at least 150 KB of size, even when doing
>>> nothing (void main() { })?
>>>
>>> Thanks,
>>> Peter
>>
>>
>> 150 KB is big?
> 
> 
> My latest stripped DMD (-O -release) generated binary had a code segment of 18 MB. On the other hand, binaries I write for microcontrollers is often smaller than 200 bytes (not using D of course). Everything is relative. :)
> 
> /Oskar
> 

I have on my computer some anime movies of sizes 200 and 700 MB and more, so 150 KB seems so tiny.