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.