aboutsummaryrefslogtreecommitdiff
path: root/contrib
diff options
context:
space:
mode:
authorEric Botcazou <ebotcazou@adacore.com>2021-01-28 11:31:35 +0100
committerEric Botcazou <ebotcazou@adacore.com>2021-01-28 11:33:53 +0100
commitf7a6d314e7f7eeb6240a4f62511c189c90ef300c (patch)
tree93f557899e5f2d535901a6b5f3ca540d5ff20e46 /contrib
parent33a7a93218b1393d0135e3c4a9ad9ced87808f5e (diff)
downloadgcc-f7a6d314e7f7eeb6240a4f62511c189c90ef300c.zip
gcc-f7a6d314e7f7eeb6240a4f62511c189c90ef300c.tar.gz
gcc-f7a6d314e7f7eeb6240a4f62511c189c90ef300c.tar.bz2
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.
Diffstat (limited to 'contrib')
-rwxr-xr-xcontrib/compare-lto21
1 files changed, 20 insertions, 1 deletions
diff --git a/contrib/compare-lto b/contrib/compare-lto
index 17379e1..c0bb71c 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