Previously lld attempted to allocate program headers before the lowest
VMA in the program image.
This patch changes the behaviour to allocate program headers in their
associated load segment. This will only happen if specified in a linker
The new offset-headers.s test case previously failed with:
ld.lld: error: could not allocate headers
This improves compatibility with ld.bfd scripts.