Time Nick Message 15:02 MTDiscord So I managed to get the engine to build, except it's failing at the last minute for some reason? 15:02 MTDiscord [ 98%] Building CXX object src/CMakeFiles/luanti.dir/remoteplayer.cpp.obj [ 98%] Building CXX object src/CMakeFiles/luanti.dir/rollback_interface.cpp.obj [ 98%] Building CXX object src/CMakeFiles/luanti.dir/server.cpp.obj [ 98%] Building CXX object src/CMakeFiles/luanti.dir/serverenvironment.cpp.obj [ 99%] Building CXX object src/CMakeFiles/luanti.dir/servermap.cpp.obj [ 99%] Building CXX object 15:02 MTDiscord src/CMakeFiles/luanti.dir/translation.cpp.obj [ 99%] Building CXX object src/CMakeFiles/luanti.dir/version.cpp.obj [ 99%] Building CXX object src/CMakeFiles/luanti.dir/voxel.cpp.obj [100%] Building CXX object src/CMakeFiles/luanti.dir/voxelalgorithms.cpp.obj [100%] Linking CXX executable ../bin/luanti.exe /usr/sbin/ld: CMakeFiles/luanti.dir/objects.a(client.cpp.obj):client.cpp:(.text+0xe75d): undefined reference to std::once_callable' 15:02 MTDiscord CMakeFiles/luanti.dir/objects.a(client.cpp.obj):client.cpp:(.text+0xe75d): relocation truncated to fit: IMAGE_REL_AMD64_SECREL against undefined symbol std::once_callable' /usr/sbin/ld: CMakeFiles/luanti.dir/objects.a(client.cpp.obj):client.cpp:(.text+0xe76c): undefined reference to std::once_callable' CMakeFiles/luanti.dir/objects.a(client.cpp.obj):client.cpp:(.text+0xe76c): relocation truncated to fit: ... 15:02 MTDiscord CMakeFiles/luanti.dir/objects.a(log.cpp.obj):log.cpp:(.text$_Z12getTimestampB5cxx11v[_Z12getTimestampB5cxx11v]+0x4d): relocation truncated to fit: IMAGE_REL_AMD64_SECREL against undefined symbol std::once_call' clang++: error: linker command failed with exit code 1 (use -v to see invocation) make[2]: [src/CMakeFiles/luanti.dir/build.make:3993: bin/luanti.exe] Error 1 make[1]: [CMakeFiles/Makefile2:1043: src/CMakeFiles/luanti.dir/all] Error 2 make: 15:02 MTDiscord *** [Makefile:156: all] Error 2 15:03 [MatrxMT] please PLEASE use a pastebin 15:03 MTDiscord Fair 15:04 [MatrxMT] ty 15:04 MTDiscord but like what am I doing wrong, why is it breaking? 15:05 [MatrxMT] is this stable or a dev version? 15:06 MTDiscord This version is downloaded directly from the version control github, and built from source. 15:06 [MatrxMT] if it's stable, something's probably wrong with your compiler setup. If it's a dev version, maybe they broke the build for your setup 15:07 [MatrxMT] if you went straight from https://github.com/luanti-org/luanti/ to the zip download, that's the latest master version of 5.13-dev 15:07 MTDiscord Uh, well I was using Fedora to cross compile for Windows? That does seem pretty niche, but it's compiled from the main/master Branch so I don't see it having any issues? 15:08 MTDiscord What compiler do you normally use to cross compile, I don't really care about what specific process I need to use I just want all the latest features in a Windows binary and would appreciate any guidance to that effect. 15:09 [MatrxMT] welp, I compiled 5.13-dev successfully just now, so it's probably your compiler. 15:09 [MatrxMT] I haven't cross-compiled Luanti before, but I have done it with a different program 15:11 MTDiscord So I just tested it, and it looks like it can compile natively just fine. But the cross compilation requires jpeg-turbo and all these other cross-compile specific libraries that I have to specify manually, maybe the air has something to do with that? 15:12 [MatrxMT] it's a linker error, so not a C++ source problem but a problem with not having the right libraries yeah 15:13 MTDiscord *error 15:14 MTDiscord Uh, maybe found this: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66146 15:14 [MatrxMT] for cross compiling on Debian I would use `g++-mingw-w64-x86-64` 15:15 [MatrxMT] status: new. Opened: 2025. lul 15:15 [MatrxMT] *opened: 2015 15:16 MTDiscord uh, oh no No match for argument: g++-mingw-w64-x86-64 You can try to add to command line: --skip-unavailable to skip unavailable packages 15:16 MTDiscord lol 15:17 MTDiscord I think I might have to compile using native mysys2, but the arch repositories was having it some weird issue where a bunch of people left and their keys haven't been updated. 15:17 MTDiscord I'll see if they work yet when I get home? 15:17 [MatrxMT] you're on fedora? I'm afraid I don't know what packages/names are on that distro for cross-compiling. But anyway you have some form of c++ compiler for a windows target already 15:18 MTDiscord Yeah hold on, I'll post you my full compile command in a second 15:20 MTDiscord I have no idea what is going on here but you'll need llvm-mingw to cross-compile luanti for windows, GCC-based mingw toolchains are not supported 15:21 MTDiscord the buildbot folder in util/buildbot/ contains scripts for cross-compiling for windows with pre-built dependencies 15:22 [MatrxMT] I tried the docs website, but didn't see anything like that. Would probably be helpful to have on there assuming it's not already (I may have just failed to find it) 15:22 MTDiscord full command I'm using:https://pastebin.com/5hawp6Xv 15:23 [MatrxMT] yeah that's using gcc, roller said to use llvm 15:23 MTDiscord Yeah I see that now 15:24 MTDiscord I'll take a look at the script and try to see if I can execute it in place, if not I'll just open a VM for a second and compile it in there. 15:25 MTDiscord So there's a tool chain.cmake and some sh files, I meant to point to the tool chain or execute the script file? 15:26 MTDiscord I'm still kind of confused how this works in practice... 15:30 MTDiscord you should be able to do something like this: 15:30 MTDiscord ./util/buildbot/download_toolchain.sh $PWD/llvm-mingw 15:30 MTDiscord export PATH=$PWD/bin:$PATH 15:30 MTDiscord EXISTING_MINETEST_DIR=$PWD ./util/buildbot/buildwin64.sh ../B 15:32 MTDiscord and it will compile and build everything and package it into a zip in buildwin64/build/ (then rerun the third line a second time and it should just incrementally compile after that) 15:33 MTDiscord Okay wow this is really useful, thanks for being so helpful I really appreciate it ROller. 15:35 MTDiscord I'm sorry about being so cranky all the time, I know you work hard too... 16:24 MTDiscord So I was doing a bit of mucking about, and I noticed that the newer version of the server sends my old client a packet which it doesn't understand. Do you have a list of packets or can you tell me what the packet ID 99 means? 16:26 sfan5 check the clientopcodes.h file 16:28 sfan5 however its normal that a server sends packets, clients ignore ones they don't know 16:34 MTDiscord found it thank you: https://github.com/luanti-org/luanti/blob/master/src/network/clientopcodes.cpp?plain=1#L113 16:35 MTDiscord Does this packet require a response, or is lighting just always being updated. Because I plan on messing with the way lighting works to fix a weird bug I have, but I don't want to send a malformed packet or accidentally disable the servers entire lighting engine. 16:38 MTDiscord Oh I should actually probably report that instead of poking around, so when you set air to have a light level it messes with the way did the Sky Box is rendered? I'll make a proper PR with a test mod later. 17:55 [MatrxMT] all I personally can say is that the protocol gets new features and then the protocol version gets incremented, and all of this would be visible in the git logs 17:56 [MatrxMT] that's forwards compatibility for old clients 17:56 [MatrxMT] how am i not skilled enough to use windows 18:01 [MatrxMT] some linux installers are easier than installing windows. certainly it's easier to avoid all the spying that comes with windows 18:01 [MatrxMT] where do i even get those drivers 18:05 MTDiscord Yeah mostly cuz windows really doesn't support command line integration pass like msdos. Which was before ME, Vista, and XP, which came before 7, which is depreciated. That being said it does have a lot of support for creating programs, it's just that Windows has a nasty habit of locking you into the ecosystem or developing specifically for Windows. 18:06 MTDiscord But that's nothing against Windows really OSX does the same thing with the Apple ecosystem