We are currently migrating Bugzilla to GitHub issues.
Any changes made to the bug tracker now will be lost, so please do not post new bugs or make changes to them.
When we're done, all bug URLs will redirect to their equivalent location on the new bug tracker.

Bug 4037 - Library lacks symbol versions
Summary: Library lacks symbol versions
Status: NEW
Alias: None
Product: SDL
Classification: Unclassified
Component: build (show other bugs)
Version: 2.0.6
Hardware: x86_64 Linux
: P2 normal
Assignee: Sam Lantinga
QA Contact: Sam Lantinga
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2018-01-10 15:43 UTC by Jan Engelhardt
Modified: 2018-01-10 15:43 UTC (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Jan Engelhardt 2018-01-10 15:43:41 UTC
In SDL 2.0.5, SDL_RenderSetIntegerScale was added, but neither the SONAME was changed, nor were symbol versions used to indicate that there is an ABI boundary. This means that package managers which scan ELF files for dependencies will not pick up the news, leading to a system where a program built with SDL-2.0.6 is installable on SDL 2.0.3 systems, but is unrunnable.

$ LD_BIND_NOW=1 chocolate-doom
chocolate-doom: symbol lookup error: chocolate-doom: undefined symbol: SDL_RenderSetIntegerScale

Please add symbol versions. Something like

/* sdl.sym */
SDL_2.0.0 {
global:
  SDL_xxx;
  SDL_yyy;
  ...;
local:
  *;
};
SDL_2.0.5 {
global:
  SDL_RenderSetIntegerScale;
} SDL_2.0.0;


and use with gcc -Wl,--version-script=sdl.sym during build.