[PATCH] create-diff-object: Handle missing secsym for debug sections

Ross Lagerwall posted 1 patch 1 year, 2 months ago
Failed in applying to current master (apply log)
create-diff-object.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[PATCH] create-diff-object: Handle missing secsym for debug sections
Posted by Ross Lagerwall 1 year, 2 months ago
Certain debug sections like ".debug_aranges" when built with GCC 11.2.1
are missing section symbols (presumably because they're not needed).
Instead, of segfaulting, simply don't include them if they're missing.

Signed-off-by: Ross Lagerwall <ross.lagerwall@citrix.com>
---
 create-diff-object.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/create-diff-object.c b/create-diff-object.c
index a516670..780e6c8 100644
--- a/create-diff-object.c
+++ b/create-diff-object.c
@@ -1484,7 +1484,7 @@ static void kpatch_include_debug_sections(struct kpatch_elf *kelf)
 	list_for_each_entry(sec, &kelf->sections, list) {
 		if (is_debug_section(sec)) {
 			sec->include = 1;
-			if (!is_rela_section(sec))
+			if (!is_rela_section(sec) && sec->secsym)
 				sec->secsym->include = 1;
 		}
 	}
-- 
2.31.1
Re: [PATCH] create-diff-object: Handle missing secsym for debug sections
Posted by Andrew Cooper 1 year, 2 months ago
On 08/02/2023 6:04 pm, Ross Lagerwall wrote:
> Certain debug sections like ".debug_aranges" when built with GCC 11.2.1
> are missing section symbols (presumably because they're not needed).
> Instead, of segfaulting, simply don't include them if they're missing.
>
> Signed-off-by: Ross Lagerwall <ross.lagerwall@citrix.com>

Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>
Re: [PATCH] create-diff-object: Handle missing secsym for debug sections
Posted by Jan Beulich 1 year, 2 months ago
On 08.02.2023 19:04, Ross Lagerwall wrote:
> Certain debug sections like ".debug_aranges" when built with GCC 11.2.1
> are missing section symbols (presumably because they're not needed).

Is it really gcc (not gas) which controls whether section symbols are emitted
for a particular section?

Jan
Re: [PATCH] create-diff-object: Handle missing secsym for debug sections
Posted by Ross Lagerwall 1 year, 2 months ago
> From: Jan Beulich <jbeulich@suse.com>
> Sent: Thursday, February 9, 2023 8:46 AM
> To: Ross Lagerwall <ross.lagerwall@citrix.com>
> Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>; Andrew Cooper <Andrew.Cooper3@citrix.com>; Sergey Dyasli <sergey.dyasli@citrix.com>; xen-devel@lists.xen.org <xen-devel@lists.xen.org>
> Subject: Re: [PATCH] create-diff-object: Handle missing secsym for debug sections 
>  
> On 08.02.2023 19:04, Ross Lagerwall wrote:
> > Certain debug sections like ".debug_aranges" when built with GCC 11.2.1
> > are missing section symbols (presumably because they're not needed).
> 
> Is it really gcc (not gas) which controls whether section symbols are emitted
> for a particular section?

You're right. I tested it and it is down to the gas version (2.36.1 in this
case). I'll fix that before pushing it.

Ross