From: Eric Botcazou Date: Thu, 28 Jan 2021 10:31:35 +0000 (+0100) Subject: Fix LTO bootstrap on Windows X-Git-Tag: basepoints/gcc-12~1306 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=f7a6d314e7f7eeb6240a4f62511c189c90ef300c;p=thirdparty%2Fgcc.git 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. --- diff --git a/contrib/compare-lto b/contrib/compare-lto index 17379e196a7b..c0bb71c07650 100755 --- a/contrib/compare-lto +++ b/contrib/compare-lto @@ -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