Skip to content

Fix symbol conflict by hiding bundled TurboJPEG symbols - #737

Open
M3ML1NE wants to merge 1 commit into
LibVNC:masterfrom
M3ML1NE:fix/auto-bounty-729
Open

Fix symbol conflict by hiding bundled TurboJPEG symbols#737
M3ML1NE wants to merge 1 commit into
LibVNC:masterfrom
M3ML1NE:fix/auto-bounty-729

Conversation

@M3ML1NE

@M3ML1NE M3ML1NE commented Aug 9, 2026

Copy link
Copy Markdown

Fixes #729

Summary

When an application links to both libvncserver (or libvncclient) and external libjpeg-turbo, symbol collisions occur because libvncserver exports bundled tjCompress2, tjDecompress2, etc., without hidden visibility on GCC/Clang.

Fix

Defined DLLEXPORT as __attribute__ ((visibility ("hidden"))) on GCC/Clang (>=4) in src/common/turbojpeg.h so bundled TurboJPEG symbols remain internal to libvncserver and do not conflict with external libjpeg-turbo symbols linked by applications.

@M3ML1NE
M3ML1NE force-pushed the fix/auto-bounty-729 branch from a05fd6e to c511243 Compare August 12, 2026 10:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Exports conflicting turbojpeg functions

2 participants