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>tags/v1.20.1
|
|
||
69 |
|
69 |
|
70 |
|
70 |
|
71 |
|
71 |
|
|
72 |
|
|
|
73 |
|
|
|
74 |
|
|
|
75 |
|
|
|
76 |
|
|
|
77 |
|
|
72 |
|
78 |
|
73 |
|
79 |
|
74 |
|
80 |
|
|
|
||
92 |
|
98 |
|
93 |
|
99 |
|
94 |
|
100 |
|
95 |
|
|
|
96 |
|
|
|
|
101 |
|
|
|
102 |
|
|
97 |
|
103 |
|
98 |
|
104 |
|
99 |
|
105 |
|