This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: debug_info strangeness (arm-mingw32ce)


On Wed, 2009-12-16 at 12:47 +0100, Danny Backx wrote:
> On Tue, 2009-12-15 at 17:44 +0000, Dave Korn wrote:
> >   I'd much rather we made it DTRT in one pass if we could.

FYI here's what I have trouble with :

pavilion: {1072}
gdb /home/danny/src/cegcc/svn.sf.net/cegcc/trunk/cegcc/src/build-mingw32ce/binutils/ld/ld-new
GNU gdb 6.8-6mdv2009.1 (Mandriva Linux release 2009.1)
Copyright (C) 2008 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later
<http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show
copying"
and "show warranty" for details.
This GDB was configured as "i586-mandriva-linux-gnu"...
(gdb) l fill_edata 
1120        }
1121    }
1122    
1123    /* static */ void
1124    fill_edata (bfd *abfd, struct bfd_link_info *info
ATTRIBUTE_UNUSED)
1125    {
1126      int s, hint;
1127      unsigned char *edirectory;
1128      unsigned char *eaddresses;
1129      unsigned char *enameptrs;
(gdb) break 1137
Breakpoint 1 at 0x806b0f8:
file /home/danny/src/cegcc/svn.sf.net/cegcc/trunk/cegcc/src/binutils/ld/pe-dll.c, line 1137.
(gdb) r --shared -Bdynamic -e DllMainCRTStartup -o
lib2.dll /opt/mingw32ce/lib/gcc/arm-mingw32ce/4.4.0/../../../../arm-mingw32ce/lib/dllcrt3.o -L/opt/mingw32ce/lib/gcc/arm-mingw32ce/4.4.0 -L/opt/mingw32ce/lib/gcc/arm-mingw32ce/4.4.0/../../../../arm-mingw32ce/lib lib2.o -lmingw32 -lgcc_s -lgcc -lceoldname -lmingwex -lcoredll -lcoredll -lmingw32 -lgcc_s -lgcc -lceoldname -lmingwex -lcoredll
Starting
program: /home/danny/src/cegcc/svn.sf.net/cegcc/trunk/cegcc/src/build-mingw32ce/binutils/ld/ld-new --shared -Bdynamic -e DllMainCRTStartup -o lib2.dll /opt/mingw32ce/lib/gcc/arm-mingw32ce/4.4.0/../../../../arm-mingw32ce/lib/dllcrt3.o -L/opt/mingw32ce/lib/gcc/arm-mingw32ce/4.4.0 -L/opt/mingw32ce/lib/gcc/arm-mingw32ce/4.4.0/../../../../arm-mingw32ce/lib lib2.o -lmingw32 -lgcc_s -lgcc -lceoldname -lmingwex -lcoredll -lcoredll -lmingw32 -lgcc_s -lgcc -lceoldname -lmingwex -lcoredll

Breakpoint 1, fill_edata (abfd=0x8ff3ee8, info=0x80e0c40)

at /home/danny/src/cegcc/svn.sf.net/cegcc/trunk/cegcc/src/binutils/ld/pe-dll.c:1137
1137      if (edataoff && edata_s) {
Missing debug package(s), you should install:
glibc-debug-2.9-0.20081113.5mnb2.i586 zlib-debug-1.2.3-13mdv2009.1.i586
(gdb) bt
#0  fill_edata (abfd=0x8ff3ee8, info=0x80e0c40)

at /home/danny/src/cegcc/svn.sf.net/cegcc/trunk/cegcc/src/binutils/ld/pe-dll.c:1137
#1  0x0806b872 in pe_dll_fill_sections (abfd=0x8ff3ee8, info=0x80e0c40)

at /home/danny/src/cegcc/svn.sf.net/cegcc/trunk/cegcc/src/binutils/ld/pe-dll.c:3180
#2  0x08063ea1 in gld_arm_wince_pe_finish () at earm_wince_pe.c:1670
#3  0x080596e1 in lang_process ()

at /home/danny/src/cegcc/svn.sf.net/cegcc/trunk/cegcc/src/binutils/ld/ldlang.c:6379
#4  0x0805cc28 in main (argc=Cannot access memory at address 0x0
)

at /home/danny/src/cegcc/svn.sf.net/cegcc/trunk/cegcc/src/binutils/ld/ldmain.c:455
(gdb) c
Continuing.

Breakpoint 1, fill_edata (abfd=0x8ff3ee8, info=0x0)

at /home/danny/src/cegcc/svn.sf.net/cegcc/trunk/cegcc/src/binutils/ld/pe-dll.c:1137
1137      if (edataoff && edata_s) {
(gdb) bt
#0  fill_edata (abfd=0x8ff3ee8, info=0x0)

at /home/danny/src/cegcc/svn.sf.net/cegcc/trunk/cegcc/src/binutils/ld/pe-dll.c:1137
#1  0x080928fe in _bfd_pei_final_link_postscript (abfd=0x8ff3ee8,
pfinfo=0xbff3277c)
    at peigen.c:2521
#2  0x08096367 in _bfd_coff_final_link (abfd=0x8ff3ee8, info=0x80e0c40)

at /home/danny/src/cegcc/svn.sf.net/cegcc/trunk/cegcc/src/binutils/bfd/cofflink.c:933
#3  0x0805d6a4 in ldwrite ()

at /home/danny/src/cegcc/svn.sf.net/cegcc/trunk/cegcc/src/binutils/ld/ldwrite.c:568
#4  0x0805cc43 in main (argc=Cannot access memory at address 0x0
)

at /home/danny/src/cegcc/svn.sf.net/cegcc/trunk/cegcc/src/binutils/ld/ldmain.c:464
(gdb) c
Continuing.

Program exited normally.
(gdb) q

The state of my "work" (hacks) is currently such that fill_edata gets
called twice, from the places shown. I'd like to figure out how to fix
this.

Also I've created a bad dependency : a call to peXXigen.c from a bfd
source file. Obviously due to this tools like objdump don't get built
right any more...

	Danny
-- 
Danny Backx ; danny.backx - at - scarlet.be ; http://danny.backx.info


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]