Hi,
It seems that binaries are different in terms of dwarf section:
[EMAIL PROTECTED] ~/rpm/BUILD/distcc-2.14]$ file distcc
distcc: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.6.0,
dynamically linked (uses shared libs), not stripped
[EMAIL PROTECTED] ~/rpm/BUILD/distcc-2.14]$ file distcc.gcc
distcc.gcc: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux
2.6.0, dynamically linked (uses shared libs), not stripped
distcc binary was compiled using distcc, distcc.gcc was
compiled using only local gcc 3.3.3.
Now the difference:
[EMAIL PROTECTED] ~/rpm/BUILD/distcc-2.14]$ readelf --debug-dump distcc 2>&1 |grep
comp_dir | grep string
DW_AT_comp_dir DW_FORM_string
DW_AT_comp_dir DW_FORM_string
DW_AT_comp_dir DW_FORM_string
DW_AT_comp_dir DW_FORM_string
DW_AT_comp_dir DW_FORM_string
[...]
DW_AT_comp_dir DW_FORM_string
DW_AT_comp_dir DW_FORM_string
DW_AT_comp_dir DW_FORM_string
DW_AT_comp_dir DW_FORM_string
while
[EMAIL PROTECTED] ~/rpm/BUILD/distcc-2.14]$ readelf --debug-dump distcc.gcc 2>&1 |grep
comp_dir | grep string
DW_AT_comp_dir : (indirect string, offset: 0x1020):
/home/users/misiek/rpm/BUILD/distcc-2.14
DW_AT_comp_dir : (indirect string, offset: 0x1020):
/home/users/misiek/rpm/BUILD/distcc-2.14
DW_AT_comp_dir : (indirect string, offset: 0x1020):
/home/users/misiek/rpm/BUILD/distcc-2.14
DW_AT_comp_dir : (indirect string, offset: 0x1020):
/home/users/misiek/rpm/BUILD/distcc-2.14
DW_AT_comp_dir : (indirect string, offset: 0x1020):
/home/users/misiek/rpm/BUILD/distcc-2.14
DW_AT_comp_dir : (indirect string, offset: 0x1020):
/home/users/misiek/rpm/BUILD/distcc-2.14
DW_AT_comp_dir : (indirect string, offset: 0x1020):
/home/users/misiek/rpm/BUILD/distcc-2.14
DW_AT_comp_dir : (indirect string, offset: 0x1020):
/home/users/misiek/rpm/BUILD/distcc-2.14
DW_AT_comp_dir : (indirect string, offset: 0x1020):
/home/users/misiek/rpm/BUILD/distcc-2.14
DW_AT_comp_dir DW_FORM_string
DW_AT_comp_dir DW_FORM_string
DW_AT_comp_dir DW_FORM_string
DW_AT_comp_dir DW_FORM_string
as you can see distcc compiled using distcc misses proper DW_AT_comp_dir entry.
This breaks tool used in PLD Linux and in Fedora Core. It's called debugedit and it's
part
of rpm package.
It's task is to find out paths, get list of source files so these can be placed in
debug
files included in debugedit subpackages like this:
/usr/lib/debug/usr/bin/distcc.debug
/usr/lib/debug/usr/bin/distccd.debug
/usr/lib/debug/usr/bin/distccmon-gnome.debug
/usr/lib/debug/usr/bin/distccmon-text.debug
/usr/src/debug/distcc-2.14
/usr/src/debug/distcc-2.14/lzo
/usr/src/debug/distcc-2.14/lzo/lzoconf.h
/usr/src/debug/distcc-2.14/lzo/minilzo.c
/usr/src/debug/distcc-2.14/src
/usr/src/debug/distcc-2.14/src/access.c
/usr/src/debug/distcc-2.14/src/access.h
/usr/src/debug/distcc-2.14/src/arg.c
[...]
and then you can have /usr/bin/distcc stripped + load symbols in gdb via
add-symbol-file.
Bad DW_AT_comp_dir causes that it can't find correct sources.
My setup is described in previous email (,,distcc 2.14 bugs in lzo code(?)'').
--
Arkadiusz Miśkiewicz CS at FoE, Wroclaw University of Technology
arekm.pld-linux.org, 1024/3DB19BBD, JID: arekm.jabber.org, PLD/Linux
__
distcc mailing list http://distcc.samba.org/
To unsubscribe or change options:
http://lists.samba.org/mailman/listinfo/distcc