https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98145
--- Comment #2 from Brecht Sanders <brechtsanders at users dot sourceforge.net>
---
Did a bit more digging...
Seems COMPILER_PATH uses ';' as separator on Windows, not ':'.
So besides the .exe issue parse_env_var() also needs to separate the list by a
different separator.
Something like this:
# fix gcc/lto-wrapper.c (version >= 10.2.0)
patch -ulbf gcc/lto-wrapper.c << EOF
@@ -548,4 +548,10 @@
/* Parse STR, saving found tokens into PVALUES and return their number.
- Tokens are assumed to be delimited by ':'. If APPEND is non-null,
- append it to every token we find. */
+ Tokens are assumed to be delimited by ':' (or ';' on Windows).
+ If APPEND is non-null, append it to every token we find. */
+
+#ifdef _WIN32
+#define PATH_LIST_SEPARATOR ';'
+#else
+#define PATH_LIST_SEPARATOR ':'
+#endif
@@ -558,3 +564,3 @@
- curval = strchr (str, ':');
+ curval = strchr (str, PATH_LIST_SEPARATOR);
while (curval)
@@ -562,3 +568,3 @@
num++;
- curval = strchr (curval + 1, ':');
+ curval = strchr (curval + 1, PATH_LIST_SEPARATOR);
}
@@ -567,3 +573,3 @@
curval = str;
- nextval = strchr (curval, ':');
+ nextval = strchr (curval, PATH_LIST_SEPARATOR);
if (nextval == NULL)
@@ -581,3 +587,3 @@
curval = nextval + 1;
- nextval = strchr (curval, ':');
+ nextval = strchr (curval, PATH_LIST_SEPARATOR);
if (nextval == NULL)
@@ -827,6 +833,6 @@
char *suffix
- = XALLOCAVEC (char, sizeof ("/accel//mkoffload") + strlen (target));
+ = XALLOCAVEC (char, sizeof ("/accel//mkoffload.exe") + strlen (target));
strcpy (suffix, "/accel/");
strcat (suffix, target);
- strcat (suffix, "/mkoffload");
+ strcat (suffix, "/mkoffload.exe");
EOF
But still not there yet. Now my test results in:
mkoffload: fatal error: offload compiler
x86_64-w64-mingw32-accel-nvptx-none-gcc not found (consider using '-B')
compilation terminated.
lto-wrapper.exe: fatal error:
d:/prog/winlibs64-10.2.0-8.0.0/mingw64/bin/../libexec/gcc/x86_64-w64-mingw32/10.2.0//accel/nvptx-none/mkoffload.exe
returned 1 exit status
compilation terminated.
d:/prog/winlibs64-10.2.0-8.0.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
error: lto-wrapper failed
collect2.exe: error: ld returned 1 exit status
So probably mkoffload needs similar fixes...