david/ipxe
david
/
ipxe
Archived
1
0
Fork 0
This repository has been archived on 2020-12-06. You can view files and clone it, but cannot push or open issues or pull requests.
ipxe/src
Michael Brown 2a187f480e [arm] Avoid instruction references to symbols defined via ".equ"
When building for 64-bit ARM, some symbol references may be resolved
via an "adrp" instruction (to obtain the start of the 4kB page
containing the symbol) and a separate 12-bit offset.  For example
(taken from the GNU assembler documentation):

  adrp x0, foo
  ldr  x0, [x0, #:lo12:foo]

We occasionally refer to symbols defined via mechanisms that are not
directly visible to gcc.  For example:

  extern char some_magic_symbol[];
  __asm__ ( ".equ some_magic_symbol, some_magic_expression" );

The subsequent use of the ":lo12:" prefix on such magically-defined
symbols triggers an assertion failure in the assembler.

This problem seems to affect only "private_key_len" in the current
codebase.  Fix by storing this value as static data; this avoids the
need to provide the value as a literal within the instruction stream,
and so avoids the problematic use of the ":lo12:" prefix.

Signed-off-by: Michael Brown <mcb30@ipxe.org>
2016-05-08 00:08:48 +01:00
..
arch [arm] Add support for 32-bit ARM 2016-05-06 12:08:44 +01:00
bin Rename .cvsignore files to .gitignore 2007-06-09 22:57:00 +01:00
config [arm] Add support for 32-bit ARM 2016-05-06 12:08:44 +01:00
core [image] Skip misleading "format not recognised" error message 2016-04-28 12:12:50 +01:00
crypto [arm] Avoid instruction references to symbols defined via ".equ" 2016-05-08 00:08:48 +01:00
doc [build] Rename gPXE to iPXE 2010-04-19 23:43:39 +01:00
drivers [ath] Fix building with GCC 6 2016-05-04 16:01:33 +01:00
hci [mucurses] Fix GCC 6 nonnull-compare errors 2016-05-04 16:01:32 +01:00
image [build] Allow assembler section type character to vary by architecture 2016-03-13 11:20:53 +00:00
include [legacy] Fix building with GCC 6 2016-05-04 16:01:33 +01:00
interface [efi] Generalise EFI entropy generation to non-x86 CPUs 2016-05-04 14:34:24 +01:00
libgcc [libgcc] Provide __divmoddi4() 2016-05-05 23:42:57 +01:00
net [ethernet] Make LACP support configurable at build time 2016-04-18 10:08:46 +01:00
scripts [efi] Centralise architecture-independent EFI Makefile and linker script 2016-03-12 21:47:13 +00:00
tests [bitops] Fix typo in test case 2016-05-05 23:42:57 +01:00
usr [int13] Allow drive to be hooked using the natural drive number 2016-03-22 09:55:09 +00:00
util [arm] Add support for 32-bit ARM 2016-05-06 12:08:44 +01:00
.gitignore [build] Add support for local configuration files 2010-03-26 19:07:22 +00:00
Makefile [build] Remove unnecessary dependency on zlib 2016-05-02 23:09:49 +01:00
Makefile.efi [efi] Centralise architecture-independent EFI Makefile and linker script 2016-03-12 21:47:13 +00:00
Makefile.housekeeping [build] Remove unnecessary dependency on zlib 2016-05-02 23:09:49 +01:00
doxygen.cfg [build] Remove PACKED macro 2010-05-29 23:49:47 +01:00