Bloatware contest: producing 100+ MiB executable Create short source code in your favourite compiled language that compiles into a big (not less than 104857600 bytes) executable file. The program must be runnable (assuming 1GB of free memory) and can do anything (preferrable something simple like a hello world).

Usage of non-obvious tricks is encouraged.

Boring example in C:

int a[1024*1024*25] = { 1 };

int main(){}


Bonus points if it can be "explained" why the executable can't be reduced in size (i.e. all bloat is actually used somehow).
OK, here's another one in C, going for the vaguely defined bonus points:

#define a(x) x,x|1,x|2,x|3,x|4,x|5,x|6,x|7
#define b(x) a(x),a(x|8),a(x|16),a(x|24)
#define c(x) b(x),b(x|32),b(x|64),b(x|96)
#define d(x) c(x),c(x|128),c(x|256),c(x|384)
#define e(x) d(x),d(x|512),d(x|4&lt;&lt;8),d(x|6&lt;&lt;8)
#define f(x) e(x),e(x|2048),e(x|4096),e(x|6144)
#define g(x) f(x),f(x|8192),f(x|4&lt;&lt;12),f(x|6&lt;&lt;12)
#define h(x) g(x),g(x|2&lt;&lt;14),g(x|4&lt;&lt;14),g(x|6&lt;&lt;14)
#define i(x) h(x),h(x|2&lt;&lt;16),h(x|4&lt;&lt;16),h(x|6&lt;&lt;16)
#define j(x) i(x),i(x|2&lt;&lt;18),i(x|4&lt;&lt;18),i(x|6&lt;&lt;18)
#define k(x) j(x),j(x|2&lt;&lt;20),j(x|4&lt;&lt;20),j(x|6&lt;&lt;20)
int u,v,z[]={k(0),k(2&lt;&lt;22),k(4&lt;&lt;22),k(6&lt;&lt;22)}
int main(){for(u=v=0;u&lt;1&lt;&lt;25;u++)v|=u!=z[u];return v;}


Basically, at compile time, it build a ascending sequence of integers from 0 to 225 &minus; 1.  At runtime, it verifies that the sequence indeed contains the expected values, and if not, returns a non-zero error code.

Ps. If I did my math right, the executable should be over 100 MiB.  I'll let you know the exact size once it's done compiling...