-
Notifications
You must be signed in to change notification settings - Fork 960
Multiarch CI jobs fail #390
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
Thank you. It would be good to add the following targets:
make CONFIG_M32=y
make CONFIG_WIN32=y
|
Linux 32 bit and Cosmopolitan: #392 For 32bit linux it was easier to go with Ubuntu rather than Debian, as it's a directly supported OS for a Github Actions. Installing |
Cross compiling on Ubuntu with Tested on Ubuntu 24 host and
I can see winpthreads is installed but it may need either a linker flag to make it link staticly?
There is a windows runner for Github Actions, that could be an option if compiling with Msys2? |
I managed to compile with mingw64 with this patch: diff --git i/Makefile w/Makefile
index 8314cb7..dca0d70 100644
--- i/Makefile
+++ w/Makefile
@@ -233,7 +233,9 @@ QJS_OBJS=$(OBJDIR)/qjs.o $(OBJDIR)/repl.o $(QJS_LIB_OBJS)
HOST_LIBS=-lm -ldl -lpthread
LIBS=-lm
-ifndef CONFIG_WIN32
+ifdef CONFIG_WIN32
+LIBS+=-static-libgcc -Wl,-Bstatic -lpthread
+else
LIBS+=-ldl -lpthread
endif
LIBS+=$(EXTRA_LIBS) If static option is not provided then need to put Wine seems to run a few tests successfully. Others fail. $ wine qjs.exe tests/test_bigint.js
$ wine qjs.exe tests/test_builtin.js
$ wine qjs.exe tests/test_closure.js
$ wine qjs.exe tests/test_language.js
$ wine qjs.exe tests/test_loop.js
$ wine qjs.exe tests/test_bjson.js
ReferenceError: shared library modules are not supported yet
$ wine qjs.exe tests/test_std.js
Can't recognize 'cat tmp_file.txt' as an internal or external command, or batch script.
Error: assertion failed: got ||, expected |hello world|
at assert (tests/test_std.js:19)
at test_popen (tests/test_std.js:124)
at <anonymous> (tests/test_std.js:301)
$ wine qjs.exe tests/test_worker.js
TypeError: not a function
at test_worker (tests/test_worker.js:28)
at <anonymous> (tests/test_worker.js:62)
$ wine qjs.exe tests/test_worker_module.js
TypeError: cannot read property 'parent' of undefined
at <anonymous> (tests/test_worker_module.js:5) Microbenchmark segfaults
|
I wonder is the intent that workers/atomics or anything related to pthreads should work for windows? If not, perhaps we can exclude it with an A while back I created a PR to add such a mode #300, as we at Apache CouchDB don't use workers and didn't want to include the winpthreads.dll in the distribution, but now I wonder if perhaps pthreads were never intended to work on Windows all. |
Regarding -lpthread, your patch is not needed. You need instead to copy libwinpthread*.dll to the same directory as qjs.exe (see how the Windows binary packages are built in the win_binary target of the "release.sh" script). |
I confirm workers are not supported with Windows. #ifdef can be added in the Makefile. |
I added CONFIG_LTO=y, mingw cross-compile and a windows msys2 target |
I merged Windows support for os.Worker (no pthreads) in quickjs-ng/quickjs@62fb636 just now. It builds on previous work and won't cherry-pick cleanly but maybe you can use bits and pieces. |
Another option is to bring in (like mentioned above) the compiler switch |
Noticed recently most of the multi-arch CI jobs fail
It seems $platform/$image syntax is not support any longer by runner.
The text was updated successfully, but these errors were encountered: