On Thu, May 26, 2011 at 5:39 PM, Iain Hibbert <plu...@rya-online.net> wrote: > On Thu, 26 May 2011, Masao Uebayashi wrote: > >> > I wonder if that can be worked around by stripping or ignoring the thing >> > you want to ignore (non-global symbols), rather than potentially >> > introducing type inconsistency bugs? ("objcopy -x" will discard all >> > non-global symbols, I don't know if that is too much) >> >> - I want to keep reproducibility even in intermediate files for better >> traceability. > > how do you detect different signatures? diff -I '__func__\.[0-9]*' may > also suffice, if you were using objdump -D for that..
I did cmp(1), then objdump -D to see the real diff. >> - I can't think of how cfdriver decls can lead to type inconsistency bugs. > > Ok, somebody makes a mistake and writes > > extern struct cfdata foo_cd; > > and it works by chance because the address was zero anyway, then later > something else is changed around and all of a sudden, an innocent code > causes a kernel panic.. cfdriver must exist for either embedded/module forms. If not, it should cause link error (if I'm not missing anything). >> > you might note that the bthub.o file (at least, I didn't check the others) >> > does not actually use __func__ (unless DEBUG) and in fact the objdump does >> > not change with the removal of "ioconf.h" >> >> Right, bthub.o is not affected. fwmem.o is. > > ok but why change files not affected? You did not actually remove all > inclusions of "ioconf.h" in any case.. (grep ioconf.h *.d finds two more > in i386/GENERIC, I didn't look at any other arch) Hopefully I'll remove all ioconf.h references in sys/ soon.