[RFA] Linker script extension SECTION_FLAGS

Catherine Moore clm@codesourcery.com
Wed May 18 19:32:00 GMT 2011


This patch extends the linker script language to include SECTION_FLAGS 
on an output section statement.  The purpose of the flags is to ensure 
that all input sections assigned to the output section either have the 
flags set or cleared.

This version of the patch sets the infrastructure but does not define a 
backend implementation.  I will provide that along with additional 
testcases when I contribute the Powerpc VLE port.

This patch was originally discussed in the thread beginning here:
http://sourceware.org/ml/binutils/2011-04/msg00428.html

Does this look okay to install?

Thanks,
Catherine


2011-05-18  Catherine Moore  <clm@codesourcery.com>

       	include/
   	* bfdlink.h (flag_type): New enumeration.
         (flag_info_list): New structure.
         (flag_info): New structure.

	ld/
	* ld.texinfo: Document usage of SECTION_FLAGS.
	* ldgram.y (section): Recognize sect_flags.
	(sect_flags): New rule.
	(sect_flag_list): New rule.
	* ldlang.c (lang_add_section): Check section flags.
	(lang_enter_output_section_statement): Add argument sflags.
	Initialize sflags field in output statement.
	* ldlang.h (lang_output_section_statement_type): Add flag_info field.
	(lang_enter_output_section_statement): New argument sflags.  Update
	all callers.
	* ldlex.l (SECTION_FLAGS): New token.A
	* mri.c (mri_draw_tree): Update argument list for
	land_enter_output_section_statement.

	ld/testsuite/
	* ld-scripts/section-flags-1.exp: New.
         * ld-scripts/section-flags-1.s: New.
         * ld-scripts/section-flags-1.t: New.

	bfd/
	2011-05-18  Catherine Moore  <clm@codesourcery.com>

         * bfd-in2.h: Regenerated.
         * bfd.c (bfd_lookup_section_flags): New definition.
         * binary.c (binary_bfd_lookup_section_flags): New definition.
         * coff-rs6000.c (rs6000coff_vec): Include
         bfd_generic_lookup_section_flags.
         (pmac_xcoff_vec): Likewise.
         * coffcode.h (coff_bfd_lookup_section_flags): New definition.
         * elf-bfd.h (elf_backend_lookup_section_flags_hook): Declare.
         (bfd_elf_lookup_section_flags): Declare.
         * elflink.c (bfd_elf_lookup_section_flags): New function.
         * elfxx-target.h (bfd_elfNN_bfd_lookup_section_flags): Define.
         (elf_backend_lookup_section_flags_hook): Define.
         (elf_backend_data): Add elf_backend_lookup_section_flags_hook.
         * ieee.c (ieee_bfd_lookup_section_flags): New define.
         * ihex.c (ihex_bfd_lookup_section_flags): New define.
         * libbfd-in.h (_bfd_nolink_bfd_lookup_section_flags): Declare.
         (bfd_generic_lookup_section_flags): Declare.
         * libbfd.h: Regenerated.
         * mach-o-target.c (bfd_mach_o_bfd_lookup_section_flags): New.
         * mmo.c (mmo_fd_lookup_section_flags): New definition.
         * oasys.c (oasys_bfd_lookup_section_flags): New definition.
         * pef.c (bfd_pef_bfd_lookup_section_flags): New definition.
         * plugin.c (bfd_plugin_bfd_lookup_section_flags): New definition.
         * ppcboot.c (ppcboot_bfd_lookup_section_flags): New definition.
         * reloc.c (bfd_generic_lookup_section_flags): New function.
         * som.c (som_bfd_lookup_section_flags): New definition.
         * srec.c (srec_bfd_lookup_section_flags): New definition.
         * targets.c (flag_info): Declare.
         (NAME##_bfd_lookup_section_flags): Add to LINK jump table.
         (_bfd_lookup_section_flags): New.
         * tekhex.c (tekhex_bfd_lookup_section_flags): New definition.
         * versados.c (versados_bfd_lookup_section_flags): New definition.
         * vms-alpha.c (alpha_vms_bfd_lookup_section_flag): New definition.
         * xsym.c (bfd_sym_bfd_lookup_section_flags): New definition.




-------------- next part --------------
A non-text attachment was scrubbed...
Name: sf.patch
Type: text/x-patch
Size: 36545 bytes
Desc: not available
URL: <https://sourceware.org/pipermail/binutils/attachments/20110518/8575fcde/attachment.bin>


More information about the Binutils mailing list