[fpc-devel] Bug: Alignment issue with dwarf debug_info on mipsel(-embedded)?? code
mail at michael-ring.org
Sat Jul 6 19:30:34 CEST 2013
I have now commited my work to svn on the branch mips_embedded so that
it is easier to reproduce the problem.
For building the target you need to install binutils for pic32mx from
Instructions for building the toolchain (only binutils is needed):
currently xc32 binutils from microchip do not work. latest binutils work
mostly but they cannot create .hex files
To build use the following commandline:
make clean buildbase CROSSINSTALL=1 OS_TARGET=embedded CPU_TARGET=mipsel
SUBARCH=pic32mx OPT="" CROSSOPT="-O-" BINUTILSPREFIX=pic32mx-elf32-
sudo make installbase CROSSINSTALL=1 OS_TARGET=embedded
CPU_TARGET=mipsel SUBARCH=pic32mx OPT="" CROSSOPT="-O-"
to compile use:
ppcrossmipsel -MObjFPC -Scghi -Ch1024 -Cs1024 -Tembedded -Pmipsel -gw2
-vewnhix -l -Cppic32mx -WpPIC32MX220F032C -XPpic32mx-elf32-
-FD/usr/local/bin -a -godwarfsets -godwarfmethodclassprefix hello.pas
Am 05.07.13 22:23, schrieb Michael Ring:
> I have now found out why debug symbols get discarded by
> pic32mx-elf32-gdb. The problem is a bug in the generation of
> dwarf-debuginfo. My guess is that the problem should also exist in
> linux target.
> For mips unaligned data in dward debug info needs to be defined as
> .4byte and .2byte instead of .long and .short.
> This is implemented in most places but it seems not everywhere.
> When I compile this program:
> program hello;
> i : integer;
> the symbol I has one entry with .long, the resulting binary does not
> load in gdb with the error-message: Dwarf Error: wrong version in
> compilation unit header (is 10752, should be 2, 3, or 4)
> # Syms - Begin Staticsymtable
> # Symbol SYSTEM
> # Symbol OBJPAS
> # Symbol PIC32MX2XXFXXXC
> # Symbol HELLO
> # Symbol main
> # Symbol I
> .uleb128 2
> .ascii "I\000"
> .byte 5
> .byte 3
> .long U_$P$HELLO_$$_I
> .4byte _$HELLO$_Ld1
> # Syms - End Staticsymtable
> when I replace the '.long' with '.4byte' and recompile then the
> resulting hello.elf loads fine into gdb. I could see before with
> readelf that the dwarf info was misaligned compared to the dwarf imfo
> when I compile the same code for arm-embedded
> Can anybody help with a fix?
> fpc-devel maillist - fpc-devel at lists.freepascal.org
More information about the fpc-devel