[PATCH] Provide a sample object file for each ODR-violating location

Jeffrey Yasskin jyasskin@google.com
Mon Jun 21 02:05:00 GMT 2010


Right now, gold produces errors like

warning: while linking my_exe: symbol 'ns::Tpl<Arg>::~Tpl()' defined
in multiple places (possible ODR violation):
 ./path/to/some_header.h:38
 ./path/to/other_header.h:490

While trying to figure out why this is happening, I wanted to know
which object files those definitions came from. The attached patch
changes the output to:

warning: while linking my_exe: symbol 'ns::Tpl<Arg>::~Tpl()' defined
in multiple places (possible ODR violation):
 ./path/to/some_header.h:38 from libfoo.a(obj1.o)
 ./path/to/other_header.h:490 from libfoo.a(obj2.o)

where the object file after "from" is an arbitrary object file
including that location. This may be spammy in ordinary use, but it
should be useful while we iron out the false positives.

Jeffrey Yasskin
-------------- next part --------------
A non-text attachment was scrubbed...
Name: sample_object_for_odr.patch
Type: application/octet-stream
Size: 2162 bytes
Desc: not available
URL: <https://sourceware.org/pipermail/binutils/attachments/20100621/bd0353e3/attachment.obj>


More information about the Binutils mailing list