updated msys and rack, now can't build

All of a sudden I’m getting the following error. I doubt that it’s rack code, but what is it?

dep/nanovg/src/nanovg.c:593:1: internal compiler error: in dwarf2out_frame_debug_expr, at dwarf2cfi.cc:2130
  593 | }

This is in windows 11, btw.

Very strange. Doesn’t “dwarf” refer to something in Mac build ecosystem? I’d start from clean and do a complete rebuild.

Is this in the MINGW64 console, or using the docker toolchain?

This in from the command line, and I did make clean and then make build. I haven’t tried in Linux or the build toolchain in Linux. I’m assuming it will work fine.

Dwarf is an object file format. I don’t know if it’s used by gcc on windows or not. But for sure this isn’t some folder where I had a mac build and tried to incrementally build windows on top of it.

Sheer off-the-wall speculation: I seem to recall in one of the recent Rack change logs a mention of changing how the platform targeting and macros work. Maybe there’s a side-effect of that change in there somewhere.

yeah, probably blowing away everything, including deps and stuff would be a good idea.

1 Like

Are you by any chance compiling with debug information on?

I think the normal build for rack is with debug on?

Thing is, the dwarf stuff is related to GDB, I think it stores the symbol table. Try turning debug off, see if it works. I updated MSYS yesterday and have been compiling plugins with no issues.

I have been building rack (any my own plugins) from many years, and always follow the instructions. I don’t think there is a way to enable/disable debug without editing the make file.

I’m building rack right now and looking at the commands (and the makefile) it does NOT include debug info by default (you can include it by calling “make debug” if you want to). However… I just got the same error you did.

ah, tx. I just blew away my dep stuff to see if these is something there. don’t know…

My guess is they did something wrong to the compiler, I’ve seen it before. We get the error in different files: src/Quantity.cpp:204:1: internal compiler error: in dwarf2out_frame_debug_expr, at dwarf2cfi.cc:2112 204 | } // namespace rack

Yes, that’s my guess, too.

started from scratch - can’t make the deps.

The solution is to downgrade GCC and its libs, I just managed to build Rack doing that and nothing seems broken.

As with most things MSYS, it’s not straightforward or friendly.

  1. You need to download by hand, as MSYS doesn’t support downgrading
  • mingw-w64-x86_64-gcc-13.2.0-6-any.pkg.tar.zst
  • mingw-w64-x86_64-gcc-libs-13.2.0-6-any.pkg.tar.zst

from Index of /mingw/mingw64/

Take heed! There are .sig files with the same long filename… you don’t want or need those.

  1. Place the downloaded files in some folder you can access via MSYS.

  2. Using msys go to that folder and run

pacman -U -d mingw-w64-x86_64-gcc-libs-13.2.0-6-any.pkg.tar.zst
pacman -U -d mingw-w64-x86_64-gcc-13.2.0-6-any.pkg.tar.zst

Rack and its deps should build.

4 Likes

What version of gcc did MSYS upgrade to that broke the build?

mingw-w64-x86_64-gcc-14.1.0-2 and its libs.

1 Like

MSYS have updated their GCC, version is 14.1.0-3. Rack builds and works fine using that one.

1 Like

I have that version (now), but I still can’t build the deps. what a bore.

make -C curl-7.79.1
make[2]: Entering directory '/e/Rack/dep/curl-7.79.1'
Making all in lib
make[3]: Entering directory '/e/Rack/dep/curl-7.79.1/lib'
make  all-am
make[4]: Entering directory '/e/Rack/dep/curl-7.79.1/lib'
  CC       libcurl_la-nonblock.lo
nonblock.c: In function 'curlx_nonblock':
nonblock.c:83:4: error: #error "no non-blocking method was found/used/set"
   83 | #  error "no non-blocking method was found/used/set"
      |    ^~~~~
make[4]: *** [Makefile:2531: libcurl_la-nonblock.lo] Error 1

that might be unrelated. Will try screwing around with anti-virus.