Program headers must be allocated in the first PT_LOAD segment, however
this is not necessarily at the lowest VMA in the program image.
Previously lld would find the lowest VMA in all allocated sections and
allocate the program headers below that.
This patch changes to searching the first PT_LOAD segment first and
falls back to the old behaviour if that fails.
The new offset-headers.s test case previously failed with:
ld.lld: error: could not allocate headers