From 44bd1acd55dcc15322a5c2d33442cd219ca320c7 Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Fri, 24 Apr 2015 19:19:37 +0930 Subject: Non-alloc sections don't belong in PT_LOAD segments Taking them out showed a bug in the powerpc64 backend with .branch_lt being removed from output_bfd but not from previously set up segment section maps. Removing the bfd sections meant their sh_flags (and practically everything else) remaining zero, ie. not SHF_ALLOC, triggering complaints about "`.branch_lt' can't be allocated in segment". include/elf/ * internal.h (ELF_SECTION_IN_SEGMENT_1): Ensure PT_LOAD and similar segments only contain alloc sections. ld/ * emultempl/ppc64elf.em (gld${EMULATION_NAME}_after_allocation): Call gld${EMULATION_NAME}_map_segments regardless of need_laying_out. ld/testsuite/ * ld-powerpc/tocnovar.d: Revert last change. --- ld/testsuite/ld-powerpc/tocnovar.d | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'ld/testsuite/ld-powerpc') diff --git a/ld/testsuite/ld-powerpc/tocnovar.d b/ld/testsuite/ld-powerpc/tocnovar.d index 475617a..d1fd258 100644 --- a/ld/testsuite/ld-powerpc/tocnovar.d +++ b/ld/testsuite/ld-powerpc/tocnovar.d @@ -11,4 +11,4 @@ #... +00 +\.text +01 +\.opd \.got - +02 +\.opd \.got .* + +02 +\.opd \.got -- cgit v1.1