[PATCH v2 0/9] ELF support for targets with octets_per_byte>1

Christian Eggers ceggers@gmx.de
Thu Nov 21 21:17:00 GMT 2019


Changes in v2:
- Add new argument to bfd_octets_per_byte() instead of creating a the
  new function bfd_section_octets_per_byte().
- Convert all calls to bfd_octets_per_byte().
- Fix several style issues.
- Check if OBJ_ELF and OBJ_MAYBE_ELF are defined (GAS).
- Move conditional definition of SEC_OCTETS from dwarf2dbg.c to as.h.

Original patch description follows:
------------------------------------
This patch series replaces my patches from March 2019.

On targets with more than one octet per byte, DWARF-2 information cannot be
stored because DWARF is organized in octets (8 bit) instead of target bytes
(8, 16 or 32 bit). The size of a DWARF section (e.g. .debug_line) may not be
a multiple of a target byte. Additionally relocation offsets can be at a
location which is not aligned to a byte, the same is for relocation symbols.

My patches from March tried to address these issues by aligning relocation
offsets and section sizes to target bytes by inserting fill instructions (for
.debug_line) when GAS generates debug information. Unfortunately this does not
work for DWARF unit tests where debug information is built "by hand" and not
generated by GAS. Additionally the concept of aligning relocations to target
bytes was limited to targets with 2 octets per byte and would not work for
target with more than 2 octets per byte.

This series reverts (most) of the old patches and introduces the concept of
"octet sections". Within these sections, everything is addressed in octets
instead of bytes. In this way also hand crafted DWARF sections in unit tests
will work (already tested for SDMA (WIP, nearly finished)) and this concept
should also do the job for targets with more than 2 octets per byte. "Normal"
targets with one octet per byte should not be affected, only the output of
objdump will show the new "OCTET" section flag.

regards
Christian

P.S. All patches have been automatically encoded "quoted printable" by
"git send-email" and I don't know how to change this. "git am" should be able
to process these patches.



More information about the Binutils mailing list