-
-
Notifications
You must be signed in to change notification settings - Fork 644
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
Build 3.3.1 on CentOS 7 #842
Comments
Hey @VVD, You can see the required Linux dependencies here: LWJGL-CI/lwjgl3. It should be possible to use a non-default GCC by passing |
Hello, @Spasi!
I'll check, thanks.
But how set path to it (like JAVA_HOME, but for GCC)? |
I don't have experience with CentOS, but this makes it sound simple. |
@Spasi But there are other errors:
https://manpages.debian.org/testing/manpages-dev/preadv2.2.en.html Is it possible to build lwjgl 3.3 with glibc 2.17?
Workaround "dirty hack":
So 3rd error "resolved". But 1st and 2nd are here. |
|
Found here: https://lore.kernel.org/all/20200717080840.GB32407@dell5510/T/
|
:-(
Tried replace all jars. Tried replace lwjgl-3.3.1-natives-linux.jar only - same result. For information error if run with default jars:
Build script:
lwjgl3.patch:
Found difference in
|
WHAT?! |
Do you use master branch of https://github.com/glfw/glfw for release?!
Added But application run with error window:
And messages in console:
Previous version of the same application run fine with bundled lwjgl 3.2.2. But current version require lwjgl 3.3+. |
Hey @VVD, I'm sorry about the troubles you're having. Unfortunately, it's become impossible to build LWJGL (and all its dependencies) on older Ubuntu systems. Github does not even offer a CI runner with Ubuntu 16 and even 18 is getting deprecated soon. That's why we basically require a newer glibc version (which is already 5 years old btw). On LWJGL's side, your best bet is simply disabling the liburing bindings and commenting out any functions that are not available on your system. I'm talking about the Kotlin template code that defines the bindings. Run the generator again and they'll be gone, you should then be able to build LWJGL on your system. For dependencies like GLFW, I can't help I'm afraid. They may be fixable with some simple patches. See this account, it includes all dependencies necessary for LWJGL. The latest commit in every project contains all the LWJGL-specific changes (or just the Github Actions workflow file). Btw, indeed, the Finally, a stupid question probably but, why don't you upgrade to CentOS 8? |
@VVD GLFW development is far too slow to not build from the master branch. It can take years between the releases. |
@Spasi, I'm run software on FreeBSD with Linux environment based on CentOS 7 - no other choice. |
Hey @VVD, LWJGL LWJGL binaries are now built inside a base CentOS 7 container, running on the Please let me know how testing goes. |
Btw, I've not been able to find a similar solution to cross-compile the arm32/arm64 artifacts. If anyone knows a way, please contact me. |
Ping @VVD, any luck with the latest snapshot? |
@Spasi, thanks a lot! |
@VVD Hey, you can get the latest snapshot (direct download or via Maven/Gradle) from https://www.lwjgl.org/customize, just click on the Early Access tab. |
Thanks. Part of start log:
|
Hey @VVD, Based on the above, the LWJGL core and GLFW native libraries seem to be loading and executing properly, so the GLIBC issue is fixed. There's nothing LWJGL can do about the error you're seeing, looks like there's no OpenGL driver available. Does |
Hello, @Spasi! Thanks for help! |
The LWJGL's method to load the OpenGL driver hasn't changed since 3.3.1. You can verify which library is being loaded by running the application with I do see a change in GLFW though, with this commit: glfw/glfw@c18851f. If |
I got:
Changed message in 2nd part.
|
Then maybe try building and running the |
Thanks a lot! HelloWorld.sh:
Add your patch:
And I see red window now!!! Maybe you have tips how to "fix" application? :-o |
OK, great, that verifies that the problem is GLFW loading From your sideYou first need to understand why that doesn't work. Maybe something is broken on your system? Have you tried reinstalling mesa and your GPU driver? Note that it doesn't matter that LWJGL doesn't try to load libGLX because the application crashes on GLFW window creation, before LWJGL's GL code runs. Btw, libGLX comes from https://github.com/NVIDIA/libglvnd. Assuming that is fixed, without changing LWJGL or the application, you could run the application with From LWJGL's sideIt's kind of late now that 3.3.2 has been released. In the first 3.3.3 snapshot, I could add a command line flag that makes LWJGL call |
Maybe My system is FreeBSD 13.1 amd64 with installed CentOS 7 environment (from ports) in Linuxulator. :-D Because (AFAIK) LWJGL no longer supports FreeBSD I run Linux application in Linuxulator. :-( |
Download lwjgl-nightly-2023-06-26-custom.zip from https://www.lwjgl.org/customize, replace bundled libs with downloaded and application run fine without additional command line arguments! |
@Spasi you might be interested in using a different method pioneered by chromium. Reversioning the libc6 symbols on the build system to make gcc link to lower versions of GLIBC. It is affective for building on many projects comprised of C code. I am not sure about C++. Here is an example implementation for an application built fully on GitHub actions focal amd64 and cross compiled for armhf, arm64, i386, and native amd64. The resulting binaries link to GLIBC 2.17 though in theory you can go even lower. |
Question
CentOS 7.9.2009 x86_64 with all updates installed. GLIBC 2.17.
Steps got from different places - can't find instruction:
Without erros:
BUILD SUCCESSFUL
But this one fails:
gcc 4.8, no
stdatomic.h
, no support for-std=gnu++14
…Installed
devtools-11
in/opt/rh/devtoolset-11/root/
, so full path to gcc 11 is/opt/rh/devtoolset-11/root/usr/bin/gcc
.How to say to ant where to search gcc?
And I see one more error:
Can't find glibconfig.h
, but:The text was updated successfully, but these errors were encountered: