Add fix to build ATF (ARM Trusted Firmware).
ok patrick@, sthen@, jsg@, bmercer@
This commit is contained in:
parent
c094a42ef8
commit
41ed7510a2
@ -1,9 +1,10 @@
|
||||
# $OpenBSD: Makefile,v 1.4 2017/07/16 12:44:19 kettenis Exp $
|
||||
# $OpenBSD: Makefile,v 1.5 2017/08/02 11:40:40 kettenis Exp $
|
||||
|
||||
COMMENT= binutils for ${CONFIG} cross-development
|
||||
|
||||
V= 2.27
|
||||
DISTNAME= binutils-${V}
|
||||
VERSION= 2.27
|
||||
DISTNAME= binutils-${VERSION}
|
||||
REVISION= 0
|
||||
|
||||
FLAVORS= aarch64 arm
|
||||
FLAVOR?= arm
|
||||
|
@ -0,0 +1,54 @@
|
||||
$OpenBSD: patch-gas_config_tc-aarch64_c,v 1.1 2017/08/02 11:40:41 kettenis Exp $
|
||||
|
||||
Backport upstream fix (also present in the Linaro fork of 2.27) that fixes
|
||||
building ATF.
|
||||
|
||||
commit 7ea12e5c3ad54da440c08f32da09534e63e515ca
|
||||
Author: Nick Clifton <nickc@redhat.com>
|
||||
Date: Fri Aug 5 10:37:57 2016 +0100
|
||||
|
||||
Fix the generation of alignment frags in code sections for AArch64.
|
||||
|
||||
PR gas/20364
|
||||
* config/tc-aarch64.c (s_ltorg): Change the mapping state after
|
||||
aligning the frag.
|
||||
(aarch64_init): Treat rs_align frags in code sections as
|
||||
containing code, not data.
|
||||
* testsuite/gas/aarch64/pr20364.s: New test.
|
||||
* testsuite/gas/aarch64/pr20364.d: New test driver.
|
||||
|
||||
Index: gas/config/tc-aarch64.c
|
||||
--- gas/config/tc-aarch64.c.orig
|
||||
+++ gas/config/tc-aarch64.c
|
||||
@@ -1736,13 +1736,13 @@ s_ltorg (int ignored ATTRIBUTE_UNUSED)
|
||||
if (pool == NULL || pool->symbol == NULL || pool->next_free_entry == 0)
|
||||
continue;
|
||||
|
||||
- mapping_state (MAP_DATA);
|
||||
-
|
||||
/* Align pool as you have word accesses.
|
||||
Only make a frag if we have to. */
|
||||
if (!need_pass_2)
|
||||
frag_align (align, 0, 0);
|
||||
|
||||
+ mapping_state (MAP_DATA);
|
||||
+
|
||||
record_alignment (now_seg, align);
|
||||
|
||||
sprintf (sym_name, "$$lit_\002%x", pool->id);
|
||||
@@ -6373,10 +6373,14 @@ aarch64_init_frag (fragS * fragP, int max_chars)
|
||||
|
||||
switch (fragP->fr_type)
|
||||
{
|
||||
- case rs_align:
|
||||
case rs_align_test:
|
||||
case rs_fill:
|
||||
mapping_state_2 (MAP_DATA, max_chars);
|
||||
+ break;
|
||||
+ case rs_align:
|
||||
+ /* PR 20364: We can get alignment frags in code sections,
|
||||
+ so do not just assume that we should use the MAP_DATA state. */
|
||||
+ mapping_state_2 (subseg_text_p (now_seg) ? MAP_INSN : MAP_DATA, max_chars);
|
||||
break;
|
||||
case rs_align_code:
|
||||
mapping_state_2 (MAP_INSN, max_chars);
|
Loading…
Reference in New Issue
Block a user