st3w / neo

Simulates the digital rain from "The Matrix" (CMatrix clone with 32-bit color and Unicode support)
Other
667 stars 25 forks source link

Compiler errros on FreeBSD #8

Closed driesmp closed 2 years ago

driesmp commented 2 years ago

When trying to build neo in a clean environment (poudriere). I get the errors in the log attached, could you take a look?

neo-0.6.log

st3w commented 2 years ago

Thanks for being the FreeBSD guinea pig for this one!

Would you be willing to build it from source after I push a potential fix? I ask because it might take me a while to spin up a FreeBSD VM to verify any fixes from my end.

Also, what is the compiler name and version? It's actually catching things I didn't see with g++ and clang++.

driesmp commented 2 years ago

Sure, if you create a pull request I can pull in patches to test before you commit to main :) (I'm using the release tarball).

driesmp commented 2 years ago

FreeBSD's native compiler is CLANG. But I think our default compiler flags and optimizations are very "strong" as in that it typically catches more errors because of them.

FreeBSD 13-RELEASE uses 11.0.1 (errors in log) FreeBSD 14-CURRENT uses 13.0.0 (no errors)

st3w commented 2 years ago

I had a bug where I assigned the output of strtoul() to an unsigned int (strtoul return an unsigned long). Somehow "-Wall -Wextra -Wpedantic -Werror" was not enough to catch that on my setup, but FreeBSD+Clang caught it!

The thing that was actually causing the FreeBSD compilation to fail had to do with how some of the RNG fields were constructed.

I just pushed a fix to the main branch. Hopefully, this will work now. I'm fairly confident the fixes are good and that Clang was flagging legitimate issues.

I g2g sleep. It' like 2:30am over here. Lmk if it's working now. I'll check back tomorrow.

Edit: It was commit 4dd64a0bc31bdd1cc4f5401a7a2d37076329923e. The commit message should make it pretty obvious

driesmp commented 2 years ago

Works great, thanks for the quick fix!