Fix LTO bootstrap on Windows

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.
This commit is contained in:
Eric Botcazou 2021-01-28 11:31:35 +01:00
parent 33a7a93218
commit f7a6d314e7
1 changed files with 20 additions and 1 deletions

View File

@ -32,7 +32,7 @@ case $1 in
esac
if test $# != 2; then
echo 'usage: compare-lto file1.o file2.o' >&2
echo 'usage: compare-lto file1 file2' >&2
exit 1
fi
@ -101,6 +101,25 @@ else
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