同步操作将从 OpenCloudOS Stream/binutils 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
From e0323071916878e0634a6e24d8250e4faff67e88 Mon Sep 17 00:00:00 2001From: Alan Modra <amodra@gmail.com>Date: 2024年11月11日 10:24:09 +1030Subject: [PATCH] Re: tekhex object file output fixesCommit 8b5a212495 supported *ABS* symbols by allowing "section" to bebfd_abs_section, but bfd_abs_section needs to be treated specially.In particular, bfd_get_next_section_by_name (.., bfd_abs_section_ptr)is invalid.PR 32347* tekhex.c (first_phase): Guard against modification of_bfd_std_section[] entries.---bfd/tekhex.c | 38 ++++++++++++++++++++------------------1 file changed, 20 insertions(+), 18 deletions(-)diff --git a/bfd/tekhex.c b/bfd/tekhex.cindex aea2ebb23df..b305c1f96f1 100644--- a/bfd/tekhex.c+++ b/bfd/tekhex.c@@ -361,6 +361,7 @@ first_phase (bfd *abfd, int type, char *src, char * src_end){asection *section, *alt_section;unsigned int len;+ bfd_vma addr;bfd_vma val;char sym[17]; /* A symbol can only be 16chars long. */@@ -368,20 +369,16 @@ first_phase (bfd *abfd, int type, char *src, char * src_end){case '6':/* Data record - read it and store it. */- {- bfd_vma addr;-- if (!getvalue (&src, &addr, src_end))- return false;-- while (*src && src < src_end - 1)- {- insert_byte (abfd, HEX (src), addr);- src += 2;- addr++;- }- return true;- }+ if (!getvalue (&src, &addr, src_end))+ return false;++ while (*src && src < src_end - 1)+ {+ insert_byte (abfd, HEX (src), addr);+ src += 2;+ addr++;+ }+ return true;case '3':/* Symbol record, read the segment. */@@ -406,13 +403,16 @@ first_phase (bfd *abfd, int type, char *src, char * src_end){case '1': /* Section range. */src++;- if (!getvalue (&src, §ion->vma, src_end))+ if (!getvalue (&src, &addr, src_end))return false;if (!getvalue (&src, &val, src_end))return false;- if (val < section->vma)- val = section->vma;- section->size = val - section->vma;+ if (bfd_is_const_section (section))+ break;+ section->vma = addr;+ if (val < addr)+ val = addr;+ section->size = val - addr;/* PR 17512: file: objdump-s-endless-loop.tekhex.Check for overlarge section sizes. */if (section->size & 0x80000000)@@ -455,6 +455,8 @@ first_phase (bfd *abfd, int type, char *src, char * src_end)new_symbol->symbol.flags = BSF_LOCAL;if (stype == '2' || stype == '6')new_symbol->symbol.section = bfd_abs_section_ptr;+ else if (bfd_is_const_section (section))+ ;else if (stype == '3' || stype == '7'){if ((section->flags & SEC_DATA) == 0)
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。