On Mon, Nov 13, 2017 at 11:47:41AM +0100, Jakub Jelinek wrote:
> On Mon, Nov 13, 2017 at 11:44:38AM +0100, Richard Biener wrote:
> > > Unfortunately, it's not what I see.  I ran two bootstraps, with and 
> > > without the
> > > patch.  Then I stripped all the .o files and ran cmp on them, but many of 
> > > them
> > > differ.  objdump -dr reveals why -- I see changes like
> > > 
> > >   mov    $0xe02,%ecx
> > > vs
> > >   mov    $0xdf6,%ecx
> > > 
> > > That's probably some sizeof changes?  Any other ideas? :/  Somehow ignore
> > > these and only look if there are new pushes or similar?
> > 
> > sizeof an empty type shouldn't change, no?  Possibly the new target
> > hook "shifts" target hook offsets.  Maybe you can arrange the new one
> > to be last... (just for testing).  OTOH for example in target library
> > objects all the changes of this kind should have no effect.  So, do
> > objects in target libraries differ similarly?
> 
> If the changes are because of the patch changing stuff in bootstrapped
> compiler, the easiest way is to revert the patch and rebuild stage3 inside
> of the stage3 directory and then compare what you get with the unpatched
> bootstrapped compiler (or, if you first bootstrap patched tree and then
> unpatched, similarly, re-apply the patch and rebuild stage3 of the
> originally vanilla tree).
In the end I did two bootstraps with the patch, but modifed one of them
to always return false for ix86_is_empty_record.  Then I compared all the
*.o in both dirs.  The result is attached.  Then I looked at DW_AT_producer
for all these .o that differ; all of them are C++.  Is this enough to
clear our concerns?

And I also ran a bootstrap with --enable-cxx-flags=-Wabi=11, and didn't
see any warnings.

        Marek
trunk/./stage1-x86_64-pc-linux-gnu/libstdc++-v3/src/c++98/bitmap_allocator.o.strip
 
trunk2/./stage1-x86_64-pc-linux-gnu/libstdc++-v3/src/c++98/bitmap_allocator.o.strip
 differ: byte 41, line 1
trunk/./stage1-x86_64-pc-linux-gnu/libstdc++-v3/src/c++98/messages_members.o.strip
 
trunk2/./stage1-x86_64-pc-linux-gnu/libstdc++-v3/src/c++98/messages_members.o.strip
 differ: byte 41, line 1
trunk/./stage1-x86_64-pc-linux-gnu/libstdc++-v3/src/c++11/cow-shim_facets.o.strip
 
trunk2/./stage1-x86_64-pc-linux-gnu/libstdc++-v3/src/c++11/cow-shim_facets.o.strip
 differ: byte 41, line 1
trunk/./stage1-x86_64-pc-linux-gnu/libstdc++-v3/src/c++11/string-inst.o.strip 
trunk2/./stage1-x86_64-pc-linux-gnu/libstdc++-v3/src/c++11/string-inst.o.strip 
differ: byte 41, line 1
trunk/./stage1-x86_64-pc-linux-gnu/libstdc++-v3/src/c++11/cxx11-shim_facets.o.strip
 
trunk2/./stage1-x86_64-pc-linux-gnu/libstdc++-v3/src/c++11/cxx11-shim_facets.o.strip
 differ: byte 41, line 1
trunk/./stage1-x86_64-pc-linux-gnu/libstdc++-v3/src/c++11/wlocale-inst.o.strip 
trunk2/./stage1-x86_64-pc-linux-gnu/libstdc++-v3/src/c++11/wlocale-inst.o.strip 
differ: byte 41, line 1
trunk/./stage1-x86_64-pc-linux-gnu/libstdc++-v3/src/c++11/cow-string-inst.o.strip
 
trunk2/./stage1-x86_64-pc-linux-gnu/libstdc++-v3/src/c++11/cow-string-inst.o.strip
 differ: byte 41, line 1
trunk/./stage1-x86_64-pc-linux-gnu/libstdc++-v3/src/c++11/locale-inst.o.strip 
trunk2/./stage1-x86_64-pc-linux-gnu/libstdc++-v3/src/c++11/locale-inst.o.strip 
differ: byte 41, line 1
trunk/./stage1-x86_64-pc-linux-gnu/libstdc++-v3/src/c++11/wstring-inst.o.strip 
trunk2/./stage1-x86_64-pc-linux-gnu/libstdc++-v3/src/c++11/wstring-inst.o.strip 
differ: byte 41, line 1
trunk/./stage1-x86_64-pc-linux-gnu/libstdc++-v3/src/c++11/sstream-inst.o.strip 
trunk2/./stage1-x86_64-pc-linux-gnu/libstdc++-v3/src/c++11/sstream-inst.o.strip 
differ: byte 41, line 1
trunk/./stage1-x86_64-pc-linux-gnu/libstdc++-v3/src/c++11/cow-wstring-inst.o.strip
 
trunk2/./stage1-x86_64-pc-linux-gnu/libstdc++-v3/src/c++11/cow-wstring-inst.o.strip
 differ: byte 41, line 1
trunk/./stage1-x86_64-pc-linux-gnu/libstdc++-v3/src/c++11/cxx11-wlocale-inst.o.strip
 
trunk2/./stage1-x86_64-pc-linux-gnu/libstdc++-v3/src/c++11/cxx11-wlocale-inst.o.strip
 differ: byte 41, line 1
trunk/./stage1-x86_64-pc-linux-gnu/libstdc++-v3/src/filesystem/ops.o.strip 
trunk2/./stage1-x86_64-pc-linux-gnu/libstdc++-v3/src/filesystem/ops.o.strip 
differ: byte 41, line 1
trunk/./stage1-x86_64-pc-linux-gnu/libstdc++-v3/src/filesystem/cow-path.o.strip 
trunk2/./stage1-x86_64-pc-linux-gnu/libstdc++-v3/src/filesystem/cow-path.o.strip
 differ: byte 41, line 1
trunk/./stage1-x86_64-pc-linux-gnu/libstdc++-v3/src/filesystem/cow-std-ops.o.strip
 
trunk2/./stage1-x86_64-pc-linux-gnu/libstdc++-v3/src/filesystem/cow-std-ops.o.strip
 differ: byte 49677, line 21
trunk/./stage1-x86_64-pc-linux-gnu/libstdc++-v3/src/filesystem/std-ops.o.strip 
trunk2/./stage1-x86_64-pc-linux-gnu/libstdc++-v3/src/filesystem/std-ops.o.strip 
differ: byte 49021, line 19
trunk/./stage1-x86_64-pc-linux-gnu/libstdc++-v3/src/filesystem/cow-std-path.o.strip
 
trunk2/./stage1-x86_64-pc-linux-gnu/libstdc++-v3/src/filesystem/cow-std-path.o.strip
 differ: byte 41, line 1
trunk/./stage1-x86_64-pc-linux-gnu/libstdc++-v3/src/filesystem/cow-ops.o.strip 
trunk2/./stage1-x86_64-pc-linux-gnu/libstdc++-v3/src/filesystem/cow-ops.o.strip 
differ: byte 56433, line 33
trunk/./prev-gcc/gcov.o.strip trunk2/./prev-gcc/gcov.o.strip differ: byte 41, 
line 1
trunk/./prev-gcc/cc1plus-checksum.o.strip 
trunk2/./prev-gcc/cc1plus-checksum.o.strip differ: byte 65, line 1
trunk/./prev-gcc/cc1objplus-checksum.o.strip 
trunk2/./prev-gcc/cc1objplus-checksum.o.strip differ: byte 65, line 1
trunk/./prev-gcc/go/gogo.o.strip trunk2/./prev-gcc/go/gogo.o.strip differ: byte 
41, line 1
trunk/./prev-gcc/go/expressions.o.strip 
trunk2/./prev-gcc/go/expressions.o.strip differ: byte 41, line 1
trunk/./prev-gcc/go/types.o.strip trunk2/./prev-gcc/go/types.o.strip differ: 
byte 41, line 1
trunk/./prev-gcc/go/export.o.strip trunk2/./prev-gcc/go/export.o.strip differ: 
byte 41, line 1
trunk/./prev-gcc/go/statements.o.strip trunk2/./prev-gcc/go/statements.o.strip 
differ: byte 41, line 1
trunk/./prev-gcc/bb-reorder.o.strip trunk2/./prev-gcc/bb-reorder.o.strip 
differ: byte 41, line 1
trunk/./prev-gcc/cc1-checksum.o.strip trunk2/./prev-gcc/cc1-checksum.o.strip 
differ: byte 65, line 1
trunk/./prev-gcc/cc1obj-checksum.o.strip 
trunk2/./prev-gcc/cc1obj-checksum.o.strip differ: byte 65, line 1
trunk/./prev-gcc/build/genrecog.o.strip 
trunk2/./prev-gcc/build/genrecog.o.strip differ: byte 41, line 1
trunk/./prev-gcc/i386.o.strip trunk2/./prev-gcc/i386.o.strip differ: byte 41, 
line 1
trunk/./prev-gcc/tree-loop-distribution.o.strip 
trunk2/./prev-gcc/tree-loop-distribution.o.strip differ: byte 41, line 1
trunk/./stage1-gcc/cc1plus-checksum.o.strip 
trunk2/./stage1-gcc/cc1plus-checksum.o.strip differ: byte 65, line 1
trunk/./stage1-gcc/cc1-checksum.o.strip 
trunk2/./stage1-gcc/cc1-checksum.o.strip differ: byte 65, line 1
trunk/./stage1-gcc/i386.o.strip trunk2/./stage1-gcc/i386.o.strip differ: byte 
41, line 1
trunk/./prev-x86_64-pc-linux-gnu/libstdc++-v3/src/c++98/bitmap_allocator.o.strip
 
trunk2/./prev-x86_64-pc-linux-gnu/libstdc++-v3/src/c++98/bitmap_allocator.o.strip
 differ: byte 41, line 1
trunk/./prev-x86_64-pc-linux-gnu/libstdc++-v3/src/c++98/messages_members.o.strip
 
trunk2/./prev-x86_64-pc-linux-gnu/libstdc++-v3/src/c++98/messages_members.o.strip
 differ: byte 41, line 1
trunk/./prev-x86_64-pc-linux-gnu/libstdc++-v3/src/c++11/cow-shim_facets.o.strip 
trunk2/./prev-x86_64-pc-linux-gnu/libstdc++-v3/src/c++11/cow-shim_facets.o.strip
 differ: byte 41, line 1
trunk/./prev-x86_64-pc-linux-gnu/libstdc++-v3/src/c++11/string-inst.o.strip 
trunk2/./prev-x86_64-pc-linux-gnu/libstdc++-v3/src/c++11/string-inst.o.strip 
differ: byte 41, line 1
trunk/./prev-x86_64-pc-linux-gnu/libstdc++-v3/src/c++11/cxx11-shim_facets.o.strip
 
trunk2/./prev-x86_64-pc-linux-gnu/libstdc++-v3/src/c++11/cxx11-shim_facets.o.strip
 differ: byte 41, line 1
trunk/./prev-x86_64-pc-linux-gnu/libstdc++-v3/src/c++11/wlocale-inst.o.strip 
trunk2/./prev-x86_64-pc-linux-gnu/libstdc++-v3/src/c++11/wlocale-inst.o.strip 
differ: byte 41, line 1
trunk/./prev-x86_64-pc-linux-gnu/libstdc++-v3/src/c++11/cow-string-inst.o.strip 
trunk2/./prev-x86_64-pc-linux-gnu/libstdc++-v3/src/c++11/cow-string-inst.o.strip
 differ: byte 41, line 1
trunk/./prev-x86_64-pc-linux-gnu/libstdc++-v3/src/c++11/locale-inst.o.strip 
trunk2/./prev-x86_64-pc-linux-gnu/libstdc++-v3/src/c++11/locale-inst.o.strip 
differ: byte 41, line 1
trunk/./prev-x86_64-pc-linux-gnu/libstdc++-v3/src/c++11/wstring-inst.o.strip 
trunk2/./prev-x86_64-pc-linux-gnu/libstdc++-v3/src/c++11/wstring-inst.o.strip 
differ: byte 41, line 1
trunk/./prev-x86_64-pc-linux-gnu/libstdc++-v3/src/c++11/sstream-inst.o.strip 
trunk2/./prev-x86_64-pc-linux-gnu/libstdc++-v3/src/c++11/sstream-inst.o.strip 
differ: byte 41, line 1
trunk/./prev-x86_64-pc-linux-gnu/libstdc++-v3/src/c++11/cow-wstring-inst.o.strip
 
trunk2/./prev-x86_64-pc-linux-gnu/libstdc++-v3/src/c++11/cow-wstring-inst.o.strip
 differ: byte 41, line 1
trunk/./prev-x86_64-pc-linux-gnu/libstdc++-v3/src/c++11/cxx11-wlocale-inst.o.strip
 
trunk2/./prev-x86_64-pc-linux-gnu/libstdc++-v3/src/c++11/cxx11-wlocale-inst.o.strip
 differ: byte 41, line 1
trunk/./prev-x86_64-pc-linux-gnu/libstdc++-v3/src/filesystem/ops.o.strip 
trunk2/./prev-x86_64-pc-linux-gnu/libstdc++-v3/src/filesystem/ops.o.strip 
differ: byte 41, line 1
trunk/./prev-x86_64-pc-linux-gnu/libstdc++-v3/src/filesystem/cow-path.o.strip 
trunk2/./prev-x86_64-pc-linux-gnu/libstdc++-v3/src/filesystem/cow-path.o.strip 
differ: byte 41, line 1
trunk/./prev-x86_64-pc-linux-gnu/libstdc++-v3/src/filesystem/cow-std-ops.o.strip
 
trunk2/./prev-x86_64-pc-linux-gnu/libstdc++-v3/src/filesystem/cow-std-ops.o.strip
 differ: byte 49677, line 21
trunk/./prev-x86_64-pc-linux-gnu/libstdc++-v3/src/filesystem/std-ops.o.strip 
trunk2/./prev-x86_64-pc-linux-gnu/libstdc++-v3/src/filesystem/std-ops.o.strip 
differ: byte 49021, line 19
trunk/./prev-x86_64-pc-linux-gnu/libstdc++-v3/src/filesystem/cow-std-path.o.strip
 
trunk2/./prev-x86_64-pc-linux-gnu/libstdc++-v3/src/filesystem/cow-std-path.o.strip
 differ: byte 41, line 1
trunk/./prev-x86_64-pc-linux-gnu/libstdc++-v3/src/filesystem/cow-ops.o.strip 
trunk2/./prev-x86_64-pc-linux-gnu/libstdc++-v3/src/filesystem/cow-ops.o.strip 
differ: byte 56433, line 33
trunk/./gcc/gcov.o.strip trunk2/./gcc/gcov.o.strip differ: byte 41, line 1
trunk/./gcc/cc1plus-checksum.o.strip trunk2/./gcc/cc1plus-checksum.o.strip 
differ: byte 65, line 1
trunk/./gcc/cc1objplus-checksum.o.strip 
trunk2/./gcc/cc1objplus-checksum.o.strip differ: byte 65, line 1
trunk/./gcc/go/gogo.o.strip trunk2/./gcc/go/gogo.o.strip differ: byte 41, line 1
trunk/./gcc/go/expressions.o.strip trunk2/./gcc/go/expressions.o.strip differ: 
byte 41, line 1
trunk/./gcc/go/types.o.strip trunk2/./gcc/go/types.o.strip differ: byte 41, 
line 1
trunk/./gcc/go/export.o.strip trunk2/./gcc/go/export.o.strip differ: byte 41, 
line 1
trunk/./gcc/go/statements.o.strip trunk2/./gcc/go/statements.o.strip differ: 
byte 41, line 1
trunk/./gcc/bb-reorder.o.strip trunk2/./gcc/bb-reorder.o.strip differ: byte 41, 
line 1
trunk/./gcc/cc1-checksum.o.strip trunk2/./gcc/cc1-checksum.o.strip differ: byte 
65, line 1
trunk/./gcc/cc1obj-checksum.o.strip trunk2/./gcc/cc1obj-checksum.o.strip 
differ: byte 65, line 1
trunk/./gcc/build/genrecog.o.strip trunk2/./gcc/build/genrecog.o.strip differ: 
byte 41, line 1
trunk/./gcc/i386.o.strip trunk2/./gcc/i386.o.strip differ: byte 41, line 1
trunk/./gcc/tree-loop-distribution.o.strip 
trunk2/./gcc/tree-loop-distribution.o.strip differ: byte 41, line 1
trunk/./x86_64-pc-linux-gnu/libsanitizer/asan/asan_memory_profile.o.strip 
trunk2/./x86_64-pc-linux-gnu/libsanitizer/asan/asan_memory_profile.o.strip 
differ: byte 41, line 1
trunk/./x86_64-pc-linux-gnu/libsanitizer/asan/asan_interceptors.o.strip 
trunk2/./x86_64-pc-linux-gnu/libsanitizer/asan/asan_interceptors.o.strip 
differ: byte 41, line 1
trunk/./x86_64-pc-linux-gnu/libsanitizer/asan/.libs/asan_memory_profile.o.strip 
trunk2/./x86_64-pc-linux-gnu/libsanitizer/asan/.libs/asan_memory_profile.o.strip
 differ: byte 41, line 1
trunk/./x86_64-pc-linux-gnu/libsanitizer/asan/.libs/asan_interceptors.o.strip 
trunk2/./x86_64-pc-linux-gnu/libsanitizer/asan/.libs/asan_interceptors.o.strip 
differ: byte 41, line 1
trunk/./x86_64-pc-linux-gnu/libsanitizer/tsan/tsan_interceptors.o.strip 
trunk2/./x86_64-pc-linux-gnu/libsanitizer/tsan/tsan_interceptors.o.strip 
differ: byte 41, line 1
trunk/./x86_64-pc-linux-gnu/libsanitizer/tsan/.libs/tsan_interceptors.o.strip 
trunk2/./x86_64-pc-linux-gnu/libsanitizer/tsan/.libs/tsan_interceptors.o.strip 
differ: byte 41, line 1
trunk/./x86_64-pc-linux-gnu/libstdc++-v3/src/c++98/bitmap_allocator.o.strip 
trunk2/./x86_64-pc-linux-gnu/libstdc++-v3/src/c++98/bitmap_allocator.o.strip 
differ: byte 41, line 1
trunk/./x86_64-pc-linux-gnu/libstdc++-v3/src/c++98/messages_members.o.strip 
trunk2/./x86_64-pc-linux-gnu/libstdc++-v3/src/c++98/messages_members.o.strip 
differ: byte 41, line 1
trunk/./x86_64-pc-linux-gnu/libstdc++-v3/src/c++11/cow-shim_facets.o.strip 
trunk2/./x86_64-pc-linux-gnu/libstdc++-v3/src/c++11/cow-shim_facets.o.strip 
differ: byte 41, line 1
trunk/./x86_64-pc-linux-gnu/libstdc++-v3/src/c++11/string-inst.o.strip 
trunk2/./x86_64-pc-linux-gnu/libstdc++-v3/src/c++11/string-inst.o.strip differ: 
byte 41, line 1
trunk/./x86_64-pc-linux-gnu/libstdc++-v3/src/c++11/cxx11-shim_facets.o.strip 
trunk2/./x86_64-pc-linux-gnu/libstdc++-v3/src/c++11/cxx11-shim_facets.o.strip 
differ: byte 41, line 1
trunk/./x86_64-pc-linux-gnu/libstdc++-v3/src/c++11/wlocale-inst.o.strip 
trunk2/./x86_64-pc-linux-gnu/libstdc++-v3/src/c++11/wlocale-inst.o.strip 
differ: byte 41, line 1
trunk/./x86_64-pc-linux-gnu/libstdc++-v3/src/c++11/cow-string-inst.o.strip 
trunk2/./x86_64-pc-linux-gnu/libstdc++-v3/src/c++11/cow-string-inst.o.strip 
differ: byte 41, line 1
trunk/./x86_64-pc-linux-gnu/libstdc++-v3/src/c++11/locale-inst.o.strip 
trunk2/./x86_64-pc-linux-gnu/libstdc++-v3/src/c++11/locale-inst.o.strip differ: 
byte 41, line 1
trunk/./x86_64-pc-linux-gnu/libstdc++-v3/src/c++11/wstring-inst.o.strip 
trunk2/./x86_64-pc-linux-gnu/libstdc++-v3/src/c++11/wstring-inst.o.strip 
differ: byte 41, line 1
trunk/./x86_64-pc-linux-gnu/libstdc++-v3/src/c++11/sstream-inst.o.strip 
trunk2/./x86_64-pc-linux-gnu/libstdc++-v3/src/c++11/sstream-inst.o.strip 
differ: byte 41, line 1
trunk/./x86_64-pc-linux-gnu/libstdc++-v3/src/c++11/cow-wstring-inst.o.strip 
trunk2/./x86_64-pc-linux-gnu/libstdc++-v3/src/c++11/cow-wstring-inst.o.strip 
differ: byte 41, line 1
trunk/./x86_64-pc-linux-gnu/libstdc++-v3/src/c++11/cxx11-wlocale-inst.o.strip 
trunk2/./x86_64-pc-linux-gnu/libstdc++-v3/src/c++11/cxx11-wlocale-inst.o.strip 
differ: byte 41, line 1
trunk/./x86_64-pc-linux-gnu/libstdc++-v3/src/filesystem/ops.o.strip 
trunk2/./x86_64-pc-linux-gnu/libstdc++-v3/src/filesystem/ops.o.strip differ: 
byte 41, line 1
trunk/./x86_64-pc-linux-gnu/libstdc++-v3/src/filesystem/cow-path.o.strip 
trunk2/./x86_64-pc-linux-gnu/libstdc++-v3/src/filesystem/cow-path.o.strip 
differ: byte 41, line 1
trunk/./x86_64-pc-linux-gnu/libstdc++-v3/src/filesystem/cow-std-ops.o.strip 
trunk2/./x86_64-pc-linux-gnu/libstdc++-v3/src/filesystem/cow-std-ops.o.strip 
differ: byte 49677, line 21
trunk/./x86_64-pc-linux-gnu/libstdc++-v3/src/filesystem/std-ops.o.strip 
trunk2/./x86_64-pc-linux-gnu/libstdc++-v3/src/filesystem/std-ops.o.strip 
differ: byte 49021, line 19
trunk/./x86_64-pc-linux-gnu/libstdc++-v3/src/filesystem/cow-std-path.o.strip 
trunk2/./x86_64-pc-linux-gnu/libstdc++-v3/src/filesystem/cow-std-path.o.strip 
differ: byte 41, line 1
trunk/./x86_64-pc-linux-gnu/libstdc++-v3/src/filesystem/cow-ops.o.strip 
trunk2/./x86_64-pc-linux-gnu/libstdc++-v3/src/filesystem/cow-ops.o.strip 
differ: byte 56433, line 33

Reply via email to