[0/7] gas: Fixes for DWARF2 debug info with OCTETS_PER_BYTE>1

Message ID 20190310182158.23705-1-ceggers@gmx.de
Headers show
Series
  • gas: Fixes for DWARF2 debug info with OCTETS_PER_BYTE>1
Related show

Message

Christian Eggers March 10, 2019, 6:21 p.m.
I'm working on a binutils port for the SDMA controller which is inside many
of NXP's i.MX SOCs. In contrast to most other architectures, the SDMA has
16 bit per instruction address (OCTETS_PER_BYTE=2). Up to now, no architecture
with OCTETS_PER_BYTE>1 uses DWARF debug information (tic4x and tic54x use
stabs).

With OCTETS_PER_BYTE=2, the smallest addressable unit is 16 bit. This is
problematic with DWARF2 debug information, as this format always uses 8 bit
quantities. Resulting problems can be truncated sections and displaced
relocations.

These patch series fixes the generation of DWARF debug information in gas for
these architectures, which is a prerequisite for the SDMA port.

These changes should not affect existing architectures as all targets currently
using DWARF2 have 8 bit per byte.

Christian Eggers (7):
  [gas] dwarf2: Fix calculation of line info offset
  [gas] Allow to create symbols with octets value
  [gas] dwarf2: Use octets for dwarf2 headers
  [gas] dwarf2: Use octets for .debug_line prologue
  [gas] dwarf2: Use octets for .debug_string offsets
  [gas] dwarf2: Pad size of .debug_line section.
  [gas] dwarf2: Align relocation within .debug_line section

 gas/ChangeLog   | 42 ++++++++++++++++++++++++++++++++++++++++++
 gas/dwarf2dbg.c | 55 ++++++++++++++++++++++++++++++++++++++++++-------------
 gas/symbols.c   | 39 ++++++++++++++++++++++++++++++++++++++-
 gas/symbols.h   |  3 +++
 4 files changed, 125 insertions(+), 14 deletions(-)

-- 
2.16.4

Comments

Alan Modra March 13, 2019, 4:48 a.m. | #1
On Sun, Mar 10, 2019 at 07:21:51PM +0100, Christian Eggers wrote:
> I'm working on a binutils port for the SDMA controller which is inside many

> of NXP's i.MX SOCs. In contrast to most other architectures, the SDMA has

> 16 bit per instruction address (OCTETS_PER_BYTE=2). Up to now, no architecture

> with OCTETS_PER_BYTE>1 uses DWARF debug information (tic4x and tic54x use

> stabs).

> 

> With OCTETS_PER_BYTE=2, the smallest addressable unit is 16 bit. This is

> problematic with DWARF2 debug information, as this format always uses 8 bit

> quantities. Resulting problems can be truncated sections and displaced

> relocations.

> 

> These patch series fixes the generation of DWARF debug information in gas for

> these architectures, which is a prerequisite for the SDMA port.


I've pushed this series after fixing a number of formatting issues.

-- 
Alan Modra
Australia Development Lab, IBM