[PATCH] shlib: Create a default symbol version on Linux-like ELF

Michel Dänzer michel at daenzer.net
Fri May 30 03:23:59 PDT 2014


On 30.05.2014 00:00, Adam Jackson wrote:
> When apps or other libraries link against a library with symbol
> versions, the version string is recorded in the import table, and used
> at runtime to resolve the symbol back to a library that provides that
> version (vaguely like how two-level namespaces work in Mach-O).  ld's
> --default-symver flag tags every exported symbol with a symbol version
> string equal to the library's soname.  Using --default-symver means
> multiple versions of libLLVM can coexist within the same process, at
> least to the extent that they don't try to pass data between each
> other's llvms.
> 
> As an example, imagine a language like Rust using llvm for CPU codegen,
> binding to OpenGL, with Mesa as the OpenGL implementation using llvm for
> R600 codegen.  With --default-symver Rust and Mesa will resolve their
> llvm usage to the version each was linked against, which need not match.

This fixes a similar problem I was able to reproduce with a gambas
OpenGL example.

Tested-by: Michel Dänzer <michel.daenzer at amd.com>


-- 
Earthling Michel Dänzer            |                  http://www.amd.com
Libre software enthusiast          |                Mesa and X developer



More information about the llvm-commits mailing list