Skip to content

Commit 9f88b90

Browse files
jbeulichH. Peter Anvin
authored andcommitted
x86-64, vdso: Fix vDSO build breakage due to empty .rela.dyn
Certain ld versions (observed with 2.20.0) put an empty .rela.dyn section into shared object files, breaking the assumption on the number of sections to be copied to the final output. Simply discard any empty SHT_REL and SHT_RELA sections to address this. Signed-off-by: Jan Beulich <jbeulich@suse.com> Link: http://lkml.kernel.org/r/53B5861E02000078000204D1@mail.emea.novell.com Acked-by: Andy Lutomirski <luto@amacapital.net> Tested-by: Boris Ostrovsky <boris.ostrovsky@oracle.com> Tested-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
1 parent cd3de83 commit 9f88b90

File tree

1 file changed

+3
-0
lines changed

1 file changed

+3
-0
lines changed

arch/x86/vdso/vdso2c.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,9 @@ static void BITSFUNC(copy_section)(struct BITSFUNC(fake_sections) *out,
9393
uint64_t flags = GET_LE(&in->sh_flags);
9494

9595
bool copy = flags & SHF_ALLOC &&
96+
(GET_LE(&in->sh_size) ||
97+
(GET_LE(&in->sh_type) != SHT_RELA &&
98+
GET_LE(&in->sh_type) != SHT_REL)) &&
9699
strcmp(name, ".altinstructions") &&
97100
strcmp(name, ".altinstr_replacement");
98101

0 commit comments

Comments
 (0)