The latest fix introduced a comparison of executables and this cannot
directly work on Windows because they are timestamped. Moreover nobody
sets $(exeext) at top level, at least on MinGW, so you get weird behavior
because some tools add the implicit .exe suffix and others do not.
contrib/
PR lto/85574
* compare-lto: Deal with PE-COFF executables specifically.
esac
if test $# != 2; then
- echo 'usage: compare-lto file1.o file2.o' >&2
+ echo 'usage: compare-lto file1 file2' >&2
exit 1
fi
else
status=1
fi
+
+ # PE-COFF executables are timestamped so skip leading bytes for them.
+ else
+ case "$1" in
+ *.exe)
+ if cmp -i 256 "$1" "$2"; then
+ status=0
+ else
+ status=1
+ fi
+ ;;
+ *)
+ if test -f "$1.exe" && cmp -i 256 "$1.exe" "$2.exe"; then
+ status=0
+ else
+ status=1
+ fi
+ ;;
+ esac
fi
fi