Slashdot Mirror


Size Is Everything: Making Tiny ELF Binaries

Milk Toast writes "According to this article one can start with a simple program consisting of 3998 bytes and reduce it down to a mere 45 bytes. Now if they could only reduce the size of my Office install." It involves digging into assembly, naturally, but it's interesting to see the extra code generated not only by the compiler, but by the other steps along the way.

3 of 40 comments (clear)

  1. gcc opts by beswicks · · Score: 2, Insightful

    Erm, i'm not sure its nearly 5 in the morning here but initially he compiles with

    gcc -Wall -s -O3 tiny.c

    shouldn't

    gcc -Wall -s -Os tiny.c

    make more sense seeing as how -O(1-3) are for SPEED optimization where as -Os is to make things SMALL

    pls. Expose my idiocy...

    1. Re:gcc opts by Anonymous Coward · · Score: 1, Insightful

      It really depends. I was working on a bootloader earlier in the semester and tried the different compile options to see what their effects were. For one-shot pieces of code, -O3 actually reduces size more than -Os because of the way everything is inlined.

  2. Re:Completely, utterly, useless by Fujamabob · · Score: 3, Insightful

    When you google for ways to fit a program in 512 bytes on the first sector of a floppy, and this is the first article that mentions the options for not using standard include files, etc., it becomes useful.