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

Load libEGL.so.1 and fallback to unversioned soname #277

Merged
merged 1 commit into from
Feb 27, 2024

Commits on Feb 26, 2024

  1. load libEGL.so.1 and fallback to unversioned soname

    After the GStreamer update in Servo, the nightly binaries
    have been failing to launch on linux distros unless
    `libegl1-mesa-dev` or the equivalent package is installed
    in the runtime environment.
    
    The binaries were loading before the GStreamer update was
    because the binary had a compile-time link to libEGL.so.1
    due to gstreamer-sys crate. Because of this compile-time
    link, the dlsym calls are able to succesfully load the
    functions pointers even though the previous dlopen('libEGL.so')
    call returned a NULL handle indicating failure.
    
    This patch makes surfman load `libEGL.so.1` first and
    fallback to `libEGL.so`. If neither are available, then
    the initialization panics, unlike the previous behavior
    where we silently succeed if the binary has a link to
    the libEGL shared object with the symbols for functions
    that are used at the runtime.
    
    Fixes #276.
    
    Signed-off-by: Mukilan Thiyagarajan <[email protected]>
    mukilan committed Feb 26, 2024
    Configuration menu
    Copy the full SHA
    610f3b9 View commit details
    Browse the repository at this point in the history