Deterministic builds, part 2
Erik Cederstrand
erik at cederstrand.dk
Thu Nov 25 20:10:36 UTC 2010
Den 25/11/2010 kl. 20.17 skrev Mark Johnston:
> On Thu, Nov 25, 2010 at 01:08:58PM +0100, Erik Cederstrand wrote:
>> Kernel modules:
>> ----------------------
>> In the ELF section .gnu-debuglink, there is a link to the corresponding *.ko.symbols file. It seems to be an inode or such rather than a file path since nothing shows up in strings(1). I have commented out "makeoptions DEBUG=-g" in the GENERIC kernel conf file which I am testing now, but I'd like to know what is actually going on.
>
> The .gnu_debuglink segment contains the name of the debug symbols file
> (i.e. not a full path or an inode number). I'm not sure why it doesn't
> show up with strings(1), but you can see it with a hex editor.
>
> When gdb loads an object file with a gnu_debuglink segment, it looks in
> a few pre-defined locations for the corresponding symbols file. The gdb
> docs explain it pretty well:
>
> http://sourceware.org/gdb/onlinedocs/gdb/Separate-Debug-Files.html
Thanks. I was explained in private email that I should be using "strings -a" which indeed turns up the filename. The checksum mismatch actually occurs because the section also contains a CRC of the symbols file, which means the symbols files aren't identical. I'll investigate that separately.
Erik
More information about the freebsd-hackers
mailing list