ld/gold allow using linker generated sections as inputs to create some other output sections, for example:
SECTIONS { .got : { *(.got.plt) *(.got) } }
This will create single output section .got with contents of linker generated .got and .got.plt section. This patch makes it possible to do the same
This is done by means of using 'proxy' input section, which holds pointer to linker generated section and can be added to OutputSection<ELFT>,
just like any other regular input section can. In future this can also be used to create single output section for mergeable/non-mergeable inputs,
if linker script demands this.
This field is very specific to build-id, which needs to back-fill the buildid value after we get a complete output file. No other sections should need them, and that's a good thing because it keeps most sections being agnostic where they are written. So I'd move this to BuildIdSection, as it used to be.