]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
Fix LTO bootstrap on Windows
authorEric Botcazou <ebotcazou@adacore.com>
Thu, 28 Jan 2021 10:31:35 +0000 (11:31 +0100)
committerEric Botcazou <ebotcazou@adacore.com>
Thu, 28 Jan 2021 10:33:53 +0000 (11:33 +0100)
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.

contrib/compare-lto

index 17379e196a7bd47a8eabd21f132cafe70a375073..c0bb71c07650e7132925c64f7ef4e094d462b1b9 100755 (executable)
@@ -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