bakpakin / Fennel

Lua Lisp Language
https://fennel-lang.org
MIT License
2.45k stars 126 forks source link

Fennel binary for Windows fails to run, does not have `liblua.a` linked statically #417

Closed cpkio closed 2 years ago

cpkio commented 2 years ago

The title says it all.

html commented 2 years ago

Hi @cpkio , I had this bug. Installing cygwin64, packages for it and compiling Lua 5.3.6 helped to fix it.

technomancy commented 2 years ago

I don't have a Windows machine to test this on, but the command used for compiling is:

i686-w64-mingw32-gcc -Os src/launcher.fnl_binary.c  /home/phil/src/fennel/lua-5.4.4/src/liblua-mingw.a  -lm  -o fennel-bin.exe -I /home/phil/src/fennel/lua-5.4.4/src -static

Is it possible that it's not working because it's pointed at the filename liblua-mingw.a rather than liblua.a? The contents are the same, but it's renamed just in order to avoid cross-compilation conflict. When building for Linux, the file being renamed has no effect, but is it possible that this breaks Windows?

cpkio commented 2 years ago

@technomancy File naming should not affect linker's ability to find function signatures in a linked file IMO, but I really don't know the compiler's intrinsic details. Recompile and post the executable somewhere.

BTW are you sure the compiler should be i686*, not x86_64*?

technomancy commented 2 years ago

OK, I think I've traced this down to a change I made trying to cross-compile everything from arm64. The working build can only be done on linux x86_64 instead of being portable, but it seems to have the advantage of actually working, so there's that.

Here's a test build: https://p.hagelb.org/fennelexe-test

Fixed in 4a82a35