-
Notifications
You must be signed in to change notification settings - Fork 4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Arch Linux: segfaults after displaying MCPE version (built from master) #12
Comments
0.5.0 produces a slightly different result:
, so something's definitely happening |
Done a GDB on ninecraft executable:
I've disabled the >0.6.0 check so the cursor mode is GLFW_CURSOR_NORMAL instead. That seemingly helps (also that's why 0.5.0 loads a bit further) because switching cursor mode to normal doesn't actually do anything when it's already normal, but the loading process still stops on:
, so it's not GLFW that is the problem. Everything boils down to
Possible libX11 bug? Changing between native X11 and XWayland has no effect. Downgrading X11 a couple minor versions back doesn't help either. EDIT: Downgrading lib32-libX11 to 1.7.0 pushes the loading process a bit further. Stack is corrupted, so can't provide a meaningful trace. |
Attempted to swap the custom glfw for AUR's
, line 1150 being just EDIT: Compiled bundled glfw with Wayland support and used |
Commented out buffer swapping completely, and the game loads slightly further. On 0.6.1, sometimes (like 50% of times) the game crashes there:
EDIT: This happened because lib32-systemd was installed which leads to to the gethostbyname segfault. This was only the case on 0.6.1 because this function is called almost immediately on start. On 0.8.1 it does happen, just later. |
You most likely don't have a 32bit video driver |
Not the case. 32-bit Wine stuff wouldn't work either then. |
Further observations.
can be fixed by compiling the master branch of libglvnd for x86 and
(can also be "Bad file descriptor" or something else). Sometimes you will be able to avoid the segfault altogether (or rather skip to the next segfault), either by pure luck or by doing Surprisingly, this problem disappears if you switch to Zink (can be done with
Unfortunately, Arch doesn't have What helped is screwing with CMakeLists.txt of the bundled glfw, specifically with lines 40 and 41:
This is 100% bad code, but it does the job of forcing glfw (and ninecraft) to use Wayland. Finally the binary starts, the world loads and the game works. P.S. On importance of
|
any chance you could provide your build? I tried getting it to compile following these instructions on my steam deck but ran into additional issues with linux headers and other stuff that I couldn't figure out. |
Hey guys, new crash just dropped:
Happens on first loadTexture call with assets/particles.png |
Forget it, I guess I was building incorrectly. Still not sure what to do with libnss_resolve.so incompatibility with gethostbyname. I tried building a minimal 32 bit executable which calls it but it works there. $ cat test.c
#include <netdb.h>
#include <stdio.h>
int main(int argc, char **argv) {
printf("%s", gethostbyname("arch")->h_name);
return 0;
}
$ gcc -m32 test.c
$ ./a.out
arch When it's called by mcpe it always segfaults. I even tried wrapping it in struct hostent * my_gethostbyname(const char *name) {
return gethostbyname(name);
} The only workaround I found is to return NULL in the above function. |
After installing all listed dependencies, compiling Ninecraft (with debug build type) and doing
extract.sh
on a x86 apk of 0.8.1, Ninecraft briefly shows a black window and segfaults:Fixing the audio (btw, I'd add
lib32-libpulse
to readme as OpenAL still uses it) didn't change much except for the first line not being present, and the window showing up for just a little longer.Same thing happens with 0.7.6 and 0.6.1.
Not familiar with MCPE internals atm, so can't figure out what might be wrong.
The text was updated successfully, but these errors were encountered: