Skip to content
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

Linux build no longer runs on Debian due to missing glibc versions #64210

Closed
RAldrich opened this issue Mar 12, 2023 · 7 comments · Fixed by #64264
Closed

Linux build no longer runs on Debian due to missing glibc versions #64210

RAldrich opened this issue Mar 12, 2023 · 7 comments · Fixed by #64264
Labels
OS: Linux Issues related to Linux operating system (S2 - Confirmed) Bug that's been confirmed to exist

Comments

@RAldrich
Copy link
Contributor

RAldrich commented Mar 12, 2023

Describe the bug

I suspect this is caused by #64011.

I run CDDA on a Debian machine - specifically Debian GNU/Linux 11 (bullseye) via crostini on ChromeOS. This has worked seamlessly until now (just untar the Linux build and you're good to go). Since the above commit, the game fails to launch with the error messages:

./cataclysm-tiles: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by ./cataclysm-tiles)
./cataclysm-tiles: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.32' not found (required by ./cataclysm-tiles)
./cataclysm-tiles: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.33' not found (required by ./cataclysm-tiles)
./cataclysm-tiles: /lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.29' not found (required by ./cataclysm-tiles)

This makes sense, as the most recent Debian stable release (11.5 in December 2022) only supports glibc 2.31-13 (you can find that information here: https://tracker.debian.org/pkg/glibc).

Just to be specific: my glibc version is as up-to-date as I'm able to make it and is:

libc6:
  Installed: 2.31-13+deb11u5
  Candidate: 2.31-13+deb11u5
  Version table:
 *** 2.31-13+deb11u5 500
        500 https://deb.debian.org/debian bullseye/main amd64 Packages
        500 https://deb.debian.org/debian bullseye-updates/main amd64 Packages
        100 /var/lib/dpkg/status

What are the dev team's thoughts on Debian support? Is there any way to estimate how many users might be impacted? While I don't want to stand in the way of modern compiler support, and can definitely resolve this on my end by changing my personal distro, rebuilding my machine is a pain. So I thought I'd raise the issue here.

Attach save file

N/A

Steps to reproduce

Download the most recent cdda-linux-tiles-x64 build and untar on a Debian machine. Attempt to run cataclysm-launcher.

Expected behavior

N/A the error is expected.

Screenshots

No response

Versions and configuration

Operating System: Debian GNU/Linux 11 (bullseye)
Kernel: Linux 5.10.159-20950-g3963226d9eb4
Architecture: x86-64

Any build after #64011 was merged.

Additional context

No response

@RAldrich RAldrich added the (S1 - Need confirmation) Report waiting on confirmation of reproducibility label Mar 12, 2023
@BrettDong
Copy link
Member

Change Linux release build environment to Ubuntu 20.04 and compile with a GCC version <=10 should fix this.

@BrettDong BrettDong added OS: Linux Issues related to Linux operating system (S2 - Confirmed) Bug that's been confirmed to exist and removed (S1 - Need confirmation) Report waiting on confirmation of reproducibility labels Mar 13, 2023
@kevingranade
Copy link
Member

I see now, yes that's my mistake, I should not have bumped the release builds all the way to -latest. In fact we need to double check if we can use a non default older gcc and glibc for release builds.

@jbytheway
Copy link
Contributor

GCC and glibc versions should be mostly independent (although maybe not entirely so). It would be nice if we could still use a newer GCC with the older glibc for release builds, because newer GCC will presumably have better optimisations.

@BrettDong
Copy link
Member

The GCC version we can use is limited by the version of libstdc++ available on the user's system. If we use a GCC later than that, there is a risk of getting undefined symbols in the C++ standard library.

@jbytheway
Copy link
Contributor

jbytheway commented Mar 13, 2023

Indeed, we certainly don't want to risk undefined symbols in libstdc++. Given that the OP didn't have that issue I failed to notice that OP had this issue, I thought perhaps we were statically linking libstdc++. But I double-checked and that's not true (except on MingW builds). So I agree; we should probably stick to an older gcc (whatever's the default on Ubuntu 20.04).

@BrettDong
Copy link
Member

OP has encountered the issue:

libstdc++.so.6: version GLIBCXX_3.4.29' not found (required by ./cataclysm-tiles `

@Alm999
Copy link
Contributor

Alm999 commented Mar 13, 2023

Oh, and I just updated from Fedora 30 to 37 in order to satisfy the "GLIBCXX_3.4.29" requirement.

Well, it should happen sooner or later…

RAldrich added a commit to RAldrich/Cataclysm-DDA that referenced this issue Mar 14, 2023
Fix CleverRaven#64210

Linux release builds had been set to target ubuntu-latest. This picked
up ubuntu 22.10, which requires glibc 2.34, resulting in missing symbols
which prevented the game from running on the current, stable release of
other Linux distributions such as Debian 11.

Targeting ubutnu 20.04 should avoid breaking compatibility, and also
matches the OS settings configured for the rest of the build matrix.
kevingranade pushed a commit that referenced this issue Mar 14, 2023
Fix #64210

Linux release builds had been set to target ubuntu-latest. This picked
up ubuntu 22.10, which requires glibc 2.34, resulting in missing symbols
which prevented the game from running on the current, stable release of
other Linux distributions such as Debian 11.

Targeting ubutnu 20.04 should avoid breaking compatibility, and also
matches the OS settings configured for the rest of the build matrix.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
OS: Linux Issues related to Linux operating system (S2 - Confirmed) Bug that's been confirmed to exist
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants