Skip to content

Arch and msys2/mingw compilation fixes

  • iem16: Add missing config.* files to make autoconf 2.71 happy. This is needed to make builds on Arch work again. Also fixed an issue with AC_LINK_IFELSE in externals/iem16/src/acinclude.m4 which autoconf 2.71 doesn't like either.

  • pd-lua mingw: use a glob pattern lua*.dll in the inno Makefiles rather than the previous hard-wired lua53.dll which will fail with latest msys2 which updated Lua to 5.4.

  • Gem mingw32: a recent upgrade of the mingw-w64-i686-dlfcn package in msys2 removed the libdl.dll library which we included in the inno package. This was fixed by removing that file from the package. But this breaks Gem -- it just refuses to load at startup, and subsequently loading any Gem patch just causes an abundance of "couldn't create" errors (as can be seen in the console, see the excerpts from the console log below). So commit 7948080d reverts that change.

I consider a broken Gem on Windows a major regression. Yes, Gem is still a bit flaky on Windows, but at least we finally got it to work there, and now it doesn't anymore.

Unfortunately, the only fix that I could find is to downgrade the latest mingw-w64-i686-dlfcn-1.2.0-2 package to the previous mingw-w64-i686-dlfcn-1.2.0-1 version and include libdl.dll in the inno package again. I'm not sure why Gem would need that dll in the first place, but the fact is that it just breaks if it's not there.

Gem refuses to load at startup:

libdir loader 1.10
	compiled on Mar 30 2021 at 17:09:27 
	compiled against Pd version 0.48.0.
libdir_loader: added 'Gem' to the global objectclass path

Subsequent "couldn't create" errors while loading any Pd patch (09.yelloTeapot.pd in this example):

error: couldn't create "gemreceive __gem_render $1"
... click the link above to track it down, or click the 'Find Last Error' item in the Edit menu.
error: couldn't create "gemreceive __gem_render_osd $1"
error: couldn't create "gemlist"
error: couldn't create "GEMglColor4f 1 1 1 1"
(lots and lots of such messages follow...)

IMPORTANT: @jwilkes: mingw-w64-i686-dlfcn-1.2.0-2 must be downgraded in the mingw32 runner to mingw-w64-i686-dlfcn-1.2.0-1 to make the last commit (rev. 7948080d) work! Probably you can still find the older package in /var/cache/pacman/pkg, but I'm also attaching it below in case it's missing.

I've tested all this locally (on Arch, Mac, and Windows) with make check and by actually running the resulting binaries, and also ran it through the OBS. Works for me.

Edited by Albert Gräf

Merge request reports