[build] Fix use of inline assembly on GCC 4.8 ARM64 builds
authorMichael Brown <mcb30@ipxe.org>
Fri, 28 Jul 2017 12:50:35 +0000 (13:50 +0100)
committerMichael Brown <mcb30@ipxe.org>
Fri, 28 Jul 2017 12:50:35 +0000 (13:50 +0100)
commit1a7746603bca1022b63c406c9459525312a2b2b6
tree7cffc520efda73bb1b1e1fd20ce6cac03fbe11d7
parentb6fc8be2c43c4e1b068613abadc48c1d86caee2b
[build] Fix use of inline assembly on GCC 4.8 ARM64 builds

The inline assembly used in include/errno.h to generate the einfo
blocks requires the ability to generate an immediate constant with no
immediate-value prefix (such as the dollar sign for x86 assembly).

We currently achieve this via the undocumented "%c0" form of operand.
This causes an "invalid operand prefix" error on GCC 4.8 for ARM64
builds.

Fix by switching to the equally undocumented "%a0" form of operand,
which appears to work correctly on all tested versions of GCC.

Reported-by: Benjamin S. Allen <bsallen@alcf.anl.gov>
Signed-off-by: Michael Brown <mcb30@ipxe.org>
src/include/errno.h