Elf: Fix link info note generation
Previously we would use the
.int assembler directive to generate
32-bit words in the note section. However,
.int is note guaranteed to
produce 4-bytes; in fact, on some platforms (e.g. AArch64) it produces
8-bytes. Use the
.4bytes directive to avoid this.
Moreover, we used the
.align directive, which is quite platform
dependent. On AArch64 it appears to not even be idempotent (despite what
the documentation claims).
.balign is consequentially preferred as it
offers consistent behavior across platforms.
This fixes a number of failing recompilation checking bugs on AArch64 and some i386 platforms.