aboutsummaryrefslogtreecommitdiff
path: root/ld/testsuite/ld-scripts/empty-aligned.d
AgeCommit message (Collapse)AuthorFilesLines
2014-01-22Make assignments to dot keep an empty output section.Alan Modra1-10/+4
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.
2012-10-24 * ld-scripts/empty-aligned.d: Revert last change. Allow moreAlan Modra1-3/+3
than one header, just not two PT_LOAD. * ld-elf/stack.s: Use .long 0 rather than nops.
2012-10-23 bfd/Nathan Sidwell1-1/+1
* bfd-in.h (bfd_elf_stack_segment_size): Declare. * bfd-in2.h: Rebuilt. * elfxx-target.h (elf_backend_stack_align): New. (elfNN_bed): Add it. * elf-bfd.h (struct elf_backend_data): Add stack_align field. * elf.c (bfd_elf_map_sections_to_segments): Pay attention to stack_align and stacksize for PT_GNU_STACK segment. (assign_file_positions_for_non_load_sections): Set p_memsz for PT_GNU_STACK segment. (copy_elf_program_header): Copy PT_GNU_STACK size. * elflink.c (bfd_elf_stack_segment_size): New function, taken from uclinux backends. (bfd_elf_size_dynamic_sections): Determine PT_GNU_STACK requirements after calling backend. Pay attention to stacksize. * elf32-bfin.c (elf32_bfinfdpic_always_size_sections): Call bfd_elf_stack_segment_size. (elf32_bfinfdpic_modify_program_headers): Delete. (elf32_bfingfdpic_copy_private_bfd_data): Don't copy PT_GNU_STACK here. (elf_backend_stack_align): Override. (elf_backend_modify_program_headers): Don't override. * elf32-frv.c (frvfdpic_always_size_sections): Call bfd_elf_stack_segment_size. (elf32_frvfdpic_modify_program_headers): Delete. (elf32_frvfdpic_copy_private_bfd_data): Don't copy PT_GNU_STACK here. (elf_backend_stack_align): Override. (elf_backend_modify_program_headers): Don't override. * elf32-lm32.c (lm32_elf_always_size_sections): Leave PT_GNU_STACK creation to underlying elf support. Check __stacksize here for backwards compatibility, and set it if needed. (lm32_elf_modify_segment_map): Delete. (lm32_elf_modify_program_headers): Delete. (elf_backend_stack_align): Override. (elf_backend_modify_segment_map): Don't override. (elf_backend_modify_program_headers): Don't override. * elf32-sh.c (sh_elf_always_size_sections): Call bfd_elf_stack_segment_size. (sh_elf_modify_program_headers): Delete. (sh_elf_copy_private_data): Don't copy PT_GNU_STACK here. (elf_backend_stack_align): Override. (elf_backend_modify_program_headers): Don't override. * elf32-tic6x.c (elf32_tic6x_always_size_sections): Call bfd_elf_stack_segment_size. (elf32_tic6x_modify_program_headers): Delete. (elf32_tic6x_copy_private_data): Delete. (elf_backend_stack_align): Override. (bfd_elf32_bfd_copy_private_bfd_data): Don't override. (elf_backend_modify_program_headers): Don't override. include/ * bfdlink.h (struct bfd_link_info): Add stacksize option. ld/ * ld.texinfo (stack-size): New option. * emultempl/elf32.em: Add stack-size option. ld/testsuite/ * ld-elf/binutils.exp: Add -z stack-size=0. * ld-elf/elf.exp: Add stack-exec and stack-size tests. * ld-elf/orphan-region.d: Add stack-size option. Remove xfail. * ld-elf/stack-exec.rd: New. * ld-elf/stack-size.rd: New. * ld-elf/stack.s: New. * ld-scripts/empty-aligned.d: Add stack-size option. * ld-sh/fdpic-stack-set.d: New. * ld-tic6x/shlib-1.rd: Remove __stacksize symbol. * ld-tic6x/shlib-1b.rd: Likewise. * ld-tic6x/shlib-1r.rd: Likewise. * ld-tic6x/shlib-1rb.rd: Likewise. * ld-tic6x/shlib-app-1.rd: Likewise. * ld-tic6x/shlib-app-1b.rd: Likewise. * ld-tic6x/shlib-app-1r.rd: Likewise. * ld-tic6x/shlib-app-1rb.rd: Likewise. * ld-tic6x/shlib-noindex.rd: Likewise. * ld-tic6x/static-app-1.rd: Likewise. * ld-tic6x/static-app-1b.rd: Likewise. * ld-tic6x/static-app-1r.rd: Likewise. * ld-tic6x/static-app-1rb.rd: Likewise.
2009-09-09 * ld-elf/sec64k.exp: For frv-linux use "aw" sections.Alan Modra1-0/+1
* ld-elf/seg.d: Cater for GNU_STACK segment. * ld-elf/symbol1ref.s: Use data section. * ld-elf/symbol2ref.s: Likewise. * ld-scripts/empty-address-1.d: Don't run on frv-linux. * ld-scripts/empty-address-2a.d: Likewise. * ld-scripts/empty-address-2b.d: Likewise. * ld-scripts/empty-aligned.d: Likewise. * ld-elf/extract-symbol-1sym.d: Tolerate extra target supplied syms. * ld-scripts/sort_b_a-1.d: Likewise. * ld-scripts/sort_b_a.d: Likewise. * ld-scripts/sort_b_a_a-1.d: Likewise. * ld-scripts/sort_b_a_a-2.d: Likewise. * ld-scripts/sort_b_a_a-3.d: Likewise. * ld-scripts/sort_b_a_n-1.d: Likewise. * ld-scripts/sort_b_a_n-2.d: Likewise. * ld-scripts/sort_b_a_n-3.d: Likewise. * ld-scripts/sort_b_n-1.d: Likewise. * ld-scripts/sort_b_n.d: Likewise. * ld-scripts/sort_b_n_a-1.d: Likewise. * ld-scripts/sort_b_n_a-2.d: Likewise. * ld-scripts/sort_b_n_a-3.d: Likewise. * ld-scripts/sort_b_n_n-1.d: Likewise. * ld-scripts/sort_b_n_n-2.d: Likewise. * ld-scripts/sort_b_n_n-3.d: Likewise. * ld-scripts/sort_no-1.d: Likewise. * ld-scripts/sort_no-2.d: Likewise.
2005-08-18 * ld-d10v/default_layout.d: Adjust for section removal.Alan Modra1-0/+1
* ld-elf/empty.s: Define "main". * ld-elf/frame.exp: Don't run for hppa64 and v850. * ld-elf/group1.d: xfail various targets. * ld-elf/merge.d: Likewise. * ld-elf/merge2.d: Likewise. * ld-elf/warn1.d: Likewise. * ld-scripts/defined2.d: Likewise. * ld-scripts/defined3.d: Likewise. * ld-scripts/empty-aligned.d: Likewise. * ld-scripts/size-2.d: Likewise. * ld-scripts/weak.exp: Likewise. * ld-selective/sel-dump.exp: Likewise. * ld-undefined/weak-undef.exp: Likewise.
2005-08-15 * ld-elf/empty.s: Define "start".Alan Modra1-1/+1
* ld-elf/merge2.d: xfail arc-*-* and dlx-*-*. * ld-scripts/empty-aligned.s: No .data section. * ld-scripts/empty-aligned.t: Discard most sections. * ld-scripts/empty-aligned.d: Adjust.
2005-06-10 * ld-scripts/empty-aligned.t: Adjust alignment expressions soAlan Modra1-3/+1
that no .text? section is kept. Also check setting vma and lma. * ld-scripts/empty-aligned.d: Update.
2005-06-09 * ld-scripts/empty-aligned.d: Adjust.Alan Modra1-1/+3
2005-05-17bfd/H.J. Lu1-0/+12
2005-05-17 H.J. Lu <hongjiu.lu@intel.com> PR 797 * elf32-i386.c (elf_i386_size_dynamic_sections): Also remove empty sdynbss section. * elf64-x86-64.c (elf64_x86_64_size_dynamic_sections): Likewise. ld/ 2005-05-17 H.J. Lu <hongjiu.lu@intel.com> PR 797 * ldexp.c (exp_fold_tree_1): Renamed from exp_fold_tree and take take a bfd_boolean, mark_used. Ignore assert failure if mark_used is TRUE. (exp_fold_tree) Call exp_fold_tree_1 with mark_used == FALSE. (exp_fold_tree_no_dot): Updated to take a bfd_boolean, mark_used and pass down. (fold_unary): Likewise. (fold_binary): Likewise. (fold_trinary): Likewise. (exp_binop): Add FALSE to call to exp_fold_tree_no_dot. (exp_trinop): Likewise. (exp_unop): Likewise. (exp_nameop): Likewise. (exp_get_vma): Likewise. (exp_get_fill): Likewise. (exp_get_abs_int): Likewise. (fold_name): Likewise. Set SEC_KEEP in output section flags. (exp_mark_used_section): New. * ldexp.h (exp_mark_used_section): New. * ldlang.c (lang_output_section_statement_lookup_1): Set the ignored field to FALSE. (lang_mark_used_section_1): New. (lang_mark_used_section): Call lang_mark_used_section_1. (strip_excluded_output_sections): Call lang_mark_used_section and check for unused sections. (lang_size_sections_1): Skip an output section if it should be ignored. (lang_do_assignments_1): Likewise. (lang_process): Don't call lang_mark_used_section here. * ldlang.h (lang_output_section_statement_type): Change all_input_readonly to bitfield. Add ignored. ld/testsuite/ 2005-05-17 H.J. Lu <hongjiu.lu@intel.com> PR 797 * empty-aligned.d: New file. * empty-aligned.exp: Likewise. * empty-aligned.s: Likewise. * empty-aligned.t: Likewise.