Skip to content

feat: add Ubuntu 24.04 support alongside 22.04#9596

Open
youtalk wants to merge 4 commits intocarla-simulator:ue5-devfrom
youtalk:feat/ubuntu-24.04-support
Open

feat: add Ubuntu 24.04 support alongside 22.04#9596
youtalk wants to merge 4 commits intocarla-simulator:ue5-devfrom
youtalk:feat/ubuntu-24.04-support

Conversation

@youtalk
Copy link

@youtalk youtalk commented Mar 20, 2026

Description

Add Ubuntu 24.04 support while keeping 22.04 fully working.

Changes:

  • glibc 2.38+ compat shim (GlibcCompat.c): Wraps __isoc23_strtol and friends so the UE5 sysroot (glibc 2.17) links correctly on 24.04. Cherry-picked from 046993b50.
  • InstallPrerequisites.sh: Detects Ubuntu version; uses libtiff-dev instead of libtiff5-dev on 24.04+; adds --break-system-packages to pip commands on 24.04+ (PEP 668).
  • Documentation: Updated README, build_linux_ue5.md, start_quickstart.md, and build_carla.md to list 24.04 as supported.
  • CHANGELOG: Added entry.

Not included (future work):

  • CI matrix for 24.04 (requires a new carlasim/carla-builder:ue5-24.04 Docker image)
  • NVIDIA driver/CUDA changes

Related #9597

Where has this been tested?

  • Platform(s): Ubuntu 24.04
  • Python version(s): 3.12
  • Unreal Engine version(s): 5.5

Possible Drawbacks

None expected. All changes are conditional on Ubuntu version detection, so 22.04 behavior is unchanged.


This change is Reviewable

youtalk added 3 commits March 20, 2026 11:01
UE5's clang with -std=gnu++20 implicitly defines _GNU_SOURCE, which
causes glibc 2.38+ (Ubuntu 24.04) to redirect strtol() to
__isoc23_strtol(). UE5's sysroot (Rocky Linux 8, glibc 2.17) lacks
this symbol, causing an undefined symbol error at link time.

Add GlibcCompat.c compiled as C11 (no _GNU_SOURCE, no redirect) that
provides __isoc23_strtol/strtoll/strtoul/strtoull as wrappers to the
standard glibc functions.
- Detect Ubuntu version in InstallPrerequisites.sh and use libtiff-dev
  (replacing libtiff5-dev) on 24.04+
- Add --break-system-packages to pip commands on 24.04+ (PEP 668)
- Update documentation to list 24.04 as supported
- Add CHANGELOG entry

Closes #1
@youtalk youtalk force-pushed the feat/ubuntu-24.04-support branch from b84c72f to 09e8ca8 Compare March 20, 2026 18:02
@youtalk youtalk marked this pull request as ready for review March 20, 2026 18:03
@youtalk youtalk requested a review from a team as a code owner March 20, 2026 18:03
Copilot AI review requested due to automatic review settings March 20, 2026 18:03
@youtalk youtalk mentioned this pull request Mar 20, 2026
4 tasks
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds Ubuntu 24.04 support while keeping Ubuntu 22.04 behavior intact, primarily by updating prerequisite installation logic and adding a glibc compatibility shim to allow linking against UE5’s older sysroot on newer hosts.

Changes:

  • Detect Ubuntu version in InstallPrerequisites.sh, switch libtiff package name for 24.04+, and add pip --break-system-packages for 24.04+.
  • Add a glibc 2.38+ compatibility shim (__isoc23_strtol/friends) and include it in the LibCarla server build.
  • Update top-level docs and changelog to list Ubuntu 24.04 as supported.

Reviewed changes

Copilot reviewed 5 out of 5 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
Util/SetupUtils/InstallPrerequisites.sh Adds Ubuntu version detection to select appropriate apt/pip behavior for 24.04+.
README.md Updates supported OS text to include Ubuntu 24.04.
LibCarla/source/carla/GlibcCompat.c Introduces shim symbols to avoid link failures with UE5’s older glibc sysroot.
LibCarla/CMakeLists.txt Ensures the shim C file is compiled/linked into the carla-server target.
CHANGELOG.md Notes Ubuntu 24.04 support in latest changes.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants