Commit graph

4 commits

Author SHA1 Message Date
Alan Modra
2edab91c10 Make assignments to dot keep an empty output section.
An assignment to dot in an output section that allocates space of
course keeps the output section.  Here, I'm changing the behaviour for
assignments that don't allocate space.  The idea is not so much to
allow people to force output of an empty section with ". = .", but
to fix cases where an otherwise empty section has padding added by an
alignment expression that changes with relaxation or .eh_frame
editing.  Such a section might have zero size before relaxation and so
be stripped incorrectly.

ld/
	* ld.texinfo (Output Section Discarding): Mention assigning to dot
	as a way of keeping otherwise empty sections.
	* ldexp.c (is_dot, is_value, is_sym_value, is_dot_ne_0,
	is_dot_plus_0, is_align_conditional): New predicates.
	(exp_fold_tree_1): Set SEC_KEEP when assigning to dot inside an
	output section, except for some special cases.
	* scripttempl/elfmicroblaze.sc: Use canonical form to align at
	end of .heap and .stack.
ld/testsuite/
	* ld-shared/elf-offset.ld: Align end of .bss with canonical form
	of ALIGN that allows an empty .bss to be removed.
	* ld-arm/arm-dyn.ld: Likewise.
	* ld-arm/arm-lib.ld: Likewise.
	* ld-elfvsb/elf-offset.ld: Likewise.
	* ld-mips-elf/mips-dyn.ld: Likewise.
	* ld-mips-elf/mips-lib.ld: Likewise.
	* ld-arm/arm-no-rel-plt.ld: Remove duplicate ALIGN.
	* ld-powerpc/vle-multiseg-1.ld: Remove ALIGN at start of section.
	ALIGN address of section instead.
	* ld-powerpc/vle-multiseg-2.ld: Likewise.
	* ld-powerpc/vle-multiseg-3.ld: Likewise.
	* ld-powerpc/vle-multiseg-4.ld: Likewise.
	* ld-powerpc/vle-multiseg-6.ld: Likewise.
	* ld-scripts/empty-aligned.d: Check section headers not program
	headers.  Remove xfail and notarget.
	* ld-scripts/empty-aligned.t: Use canonical ALIGN for end of .text2.
2014-01-22 11:58:29 +10:30
Jakub Jelinek
933f40e758 * ld-elfvsb/elf-offset.ld: Add .rel.toc, .rela.toc and .toc
sections.
--- ld/testsuite/ld-elfvsb/elf-offset.ld.jj	2003-05-19 17:12:47.000000000 -0400
+++ ld/testsuite/ld-elfvsb/elf-offset.ld	2003-07-29 05:39:34.000000000 -0400
@@ -46,6 +46,8 @@ SECTIONS
     }
   .rel.got       : { *(.rel.got)		}
   .rela.got      : { *(.rela.got)		}
+  .rel.toc       : { *(.rel.toc)		}
+  .rela.toc      : { *(.rela.toc)		}
   .rel.ctors     : { *(.rel.ctors)	}
   .rela.ctors    : { *(.rela.ctors)	}
   .rel.dtors     : { *(.rel.dtors)	}
@@ -111,6 +113,7 @@ SECTIONS
     KEEP (*(.dtors))
   }
   .got           : { *(.got.plt) *(.got) }
+  .toc           : { *(.toc) }
   .dynamic       : { *(.dynamic) }
   /* We want the small data sections together, so single-instruction offsets
      can access them all, and initialized data all before uninitialized, so
2003-07-29 14:02:55 +00:00
Martin Schwidefsky
4648dfcf5b * ld-elfvsb/elf-offset.ld: Add .rel.eh_frame and .rela.eh_frame
to linker script.
	* ld-elfvsb/elfvsb.exp (visibility_run): Add setup_xfails for s390x.
	* ld-selective/selective.exp: Disable for s390 and s390x.
	* ld-shared/elf-offset.ld: Add .rel.eh_frame and .rela.eh_frame
	to linker script.
	* ld-shared/shared.exp (shared_test): Add setup_xfails for s390x.
	* ld-undefined/undefined.exp (checkund): Remove setup_xfail for s390x.
2003-05-09 15:35:09 +00:00
H.J. Lu
6fc49d288b 2000-05-13 H.J. Lu (hjl@gnu.org)
* lib/ld-lib.exp (default_ld_link): Redirect the linker output
	to link_output and make it global.

	* ld-elfvsb/elf-offset.ld: New. ELF visibility fearture
	tests.
	* ld-elfvsb/elfvsb.dat: Likewise.
	* ld-elfvsb/elfvsb.exp: Likewise.
	* ld-elfvsb/main.c: Likewise.
	* ld-elfvsb/sh1.c: Likewise.
	* ld-elfvsb/sh2.c: Likewise.
2000-05-13 16:54:32 +00:00