Previously we had:
static OutputSection *Bss;
static OutputSection *BssRelRo;
That was not very flexible. Sections required addditional handling
and it would be impossible to combine them into single if script
saying something like that:
aabb : { *(.bss.*) }
I think using of approach for synthetics is more natural here.
Patch adds synthetic stubs .bss and .bss.rel.ro from start.
That allows linker to create output sections early.
Later, depending on if we had the copy relocations or not, existing infrastructure
can remove unused output sections.
Patch removes need to add these sections manually.