Skip to content

add support for targeting glibc 2.34 #10308

@andrewrk

Description

@andrewrk

Previous release issue: #4459

glibc 2.34 was released. Time to follow the update procedure.

This bit is particularly interesting:

Major new features:

  • In order to support smoother in-place-upgrades and to simplify
    the implementation of the runtime all functionality formerly
    implemented in the libraries libpthread, libdl, libutil, libanl has
    been integrated into libc. New applications do not need to link with
    -lpthread, -ldl, -lutil, -lanl anymore. For backwards compatibility,
    empty static archives libpthread.a, libdl.a, libutil.a, libanl.a are
    provided, so that the linker options keep working. Applications which
    have been linked against glibc 2.33 or earlier continue to load the
    corresponding shared objects (which are now empty). The integration
    of those libraries into libc means that additional symbols become
    available by default. This can cause applications that contain weak
    references to take unexpected code paths that would only have been
    used in previous glibc versions when e.g. preloading libpthread.so.0,
    potentially exposing application bugs.

This one might affect our logic for detecting glibc version:

  • Previously, glibc installed its various shared objects under versioned
    file names such as libc-2.33.so. The ABI sonames (e.g., libc.so.6)
    were provided as symbolic links. Starting with glibc 2.34, the shared
    objects are installed under their ABI sonames directly, without
    symbolic links. This increases compatibility with distribution
    package managers that delete removed files late during the package
    upgrade or downgrade process.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementSolving this issue will likely involve adding new logic or components to the codebase.frontendTokenization, parsing, AstGen, Sema, and Liveness.os-linuxLinux

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions