Bug 107533 - Please restore --with-{gl, osmesa}-lib-name options
Summary: Please restore --with-{gl, osmesa}-lib-name options
Status: RESOLVED WONTFIX
Alias: None
Product: Mesa
Classification: Unclassified
Component: Other (show other bugs)
Version: git
Hardware: Other All
: medium normal
Assignee: mesa-dev
QA Contact: mesa-dev
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2018-08-09 11:08 UTC by Brad King
Modified: 2018-08-09 14:33 UTC (History)
0 users

See Also:
i915 platform:
i915 features:


Attachments

Description Brad King 2018-08-09 11:08:40 UTC
Commit d5ac23647110fd530f9bf5002762587be446866d removed these options claiming that they were broken and used only in association with mangling symbols.  This is incorrect.  I added the options in commit f3cdcb839f534a3062864b06ec6689717ed102a1 with a commit message explaining they are not associated with symbol mangling.  I've been using the options for years and they work well.

The suggested alternative of renaming libraries manually is not as easy as claimed.  The reason for mangling the library name is so that the SONAME field is not just 'libGL.so.1'.  The goal is to ensure that the mesa library is used at runtime and not some other libGL by accident.  A simple file rename does not change the soname.
Comment 1 Brad King 2018-08-09 11:12:21 UTC
See also commit 27382c0f7ba2ae826531ba4c254741b2a9df1882.
Comment 2 Emil Velikov 2018-08-09 12:59:38 UTC
You're correct - the SONAME does stay intact. One could trivially change that with patchelf.

Let's take a look at the following combinations:
 1) standard vs GLVND
names: GL
symbols: standard

 2) GLVND
names: GLX_mesa
symbols: (should be) limited set != standard

 3) mangling
name: Mangled + (GL, GLX_mesa?)
symbols: standard prefixed with m

 4) arbitrary name
name: ?? does it it interact with mangled and/or GLVND?
symbols: standard - how do we ensure no symbol collision?

That said, an arbitrary name many have worked in a particular combination, but the rest were broken :-(

Attempting to have all the cases working is O(N), while 4) is a rm && patchelf, post-install.

Can see that being slightly annoying, but I hope you'll agreed on the goal.
Comment 3 Brad King 2018-08-09 14:33:39 UTC
> an arbitrary name many have worked in a particular combination

Yes, I use:

    ./autogen.sh \
      --prefix="$prefix" \
      --disable-dri \
      --disable-egl \
      --disable-gbm \
      --disable-gles1 \
      --disable-gles2 \
      --disable-shared-glapi \
      --with-platforms=x11 \
      --enable-glx=gallium-xlib \
      --enable-gallium-osmesa \
      --with-gallium-drivers=swrast \
      --enable-gallium-llvm=yes \
        LLVM_CONFIG=$llvm_config \
      --enable-llvm-shared-libs \
      --with-gl-lib-name=$gl_name \
      --with-osmesa-lib-name=$osmesa_name

> but the rest were broken

Ah, okay.

> is a rm && patchelf, post-install.

In principle 'lib/pkgconfig/*.pc' and 'lib/*.la' need to be updated
too but I don't need those for my use case.  I've updated my scripts
to rename post-install, patchelf, and revise symlinks.


Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.