Commit: Add support for merging PE/COFF .rsrc sections

Nick Clifton nickc@redhat.com
Tue Dec 17 15:42:00 GMT 2013


Hi Guys,

  I am applying the patch below to add support for merging the contents
  of .rsrc sections to PE/COFF targets.  Unfortunately the specification
  for the contents of a .rsrc section means that multiple sections
  cannot just be concatenated when linking - they have to be manipulated
  and merged together properly.

  Tested with x86_64-pc-cygwin and i686-pc-cygwin toolchains.

Cheers
  Nick

bfd/ChangeLog
2013-12-17  Nick Clifton  <nickc@redhat.com>

	* peXXigen.c: Include wchar.h if available.
	Include safe-ctype.h.
	(HighBitSet, SetHighBit, WithoutHighBit): New macros.
	(pe_print_resource_entries): Rename to
	rsrc_print_resource_entries.  Handle names that are not RVAs.
	(pe_print_resource_directory): Rename to
	rsrc_print_resource_directory.
	(pe_print_rsrc): Rename to rsrc_print_section.  Corrupt
	computation of RVA bias.
	(rsrc_count_entries): New function.
	(rsrc_count_directory): New function.
	(rsrc_parse_entry): New function.
	(rsrc_parse_entries): New function.
	(rsrc_parse_directory): New function.
	(rsrc_write_string): New function.
	(rsrc_compute_rva): New function.
	(rsrc_write_leaf): New function.
	(rsrc_write_entry): New function.
	(rsrc_write_directory): New function.
	(u16_mbtouc): New function.
	(rsrc_cmp): New function.
	(rsrc_print_name): New function.
	(rsrc_resource_name): New function.
	(rsrc_merge_string_entries): New function.
	(rsrc_sort_entries): New function.
	(rsrc_attach_chain): New function.
	(rsrc_merge): New function.
	(rsrc_process_section): New function - merges the contents of a
	.rsrc section.
	(_bfd_XXi_final_link_postscript): Call rsrc_process_section.
	* configure.in (AC_CHECK_HEADERS): Add wchar.h
	* config.in: Regenerate.
	* configure: Regenerate.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: peXXigen.c.patch.xz
Type: application/x-xz
Size: 9836 bytes
Desc: not available
URL: <https://sourceware.org/pipermail/binutils/attachments/20131217/fca02302/attachment.xz>


More information about the Binutils mailing list