| Summary: | Library lacks symbol versions | ||
|---|---|---|---|
| Product: | SDL | Reporter: | Jan Engelhardt <ej+bko> |
| Component: | build | Assignee: | Sam Lantinga <slouken> |
| Status: | NEW --- | QA Contact: | Sam Lantinga <slouken> |
| Severity: | normal | ||
| Priority: | P2 | ||
| Version: | 2.0.6 | ||
| Hardware: | x86_64 | ||
| OS: | Linux | ||
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.