#C, 26 bytes source, 800008567 byte executable
Here's a start. This simply defines a large global array and initialises its first element. This causes GCC to store the entire array in the resulting executable.
a[200000000]={1};main(){}; GCC ran out of memory with a significantly larger array. I can probably adjust my VM and its swap settings to improve on this.