#32511: openjpeg @1.4-r697 openjpeg/ffmpeg/libjasper symbol collision -----------------------------------+---------------------------------------- Reporter: marin.saric@… | Owner: macports-tickets@… Type: defect | Status: new Priority: Normal | Milestone: Component: ports | Version: 2.0.3 Keywords: | Port: openjpeg libjasper -----------------------------------+---------------------------------------- The purpose of this ticket is to point out a serious issue with OpenJPEG that can lead to unpredictable crashes and seek feedback and advice. I volunteer to cherry-pick the simple symbol-mangling patch from the OpenJPEG trunk and apply it to the stable version of OpenJPEG currently in MacPorts. This issue has been discussed and addressed in the OpenJPEG trunk: http://code.google.com/p/openjpeg/issues/detail?id=30 Background information: {{{OpenJPEG}}} was designed as an alternative to {{{libjasper}}}, a library providing the JPEG2000 format functionality. Ideally, a project will use either {{{OpenJPEG}}} or {{{libjasper}}}. Some private symbols in OpenJPEG (such as {{{jp2_decode}}}), which are never called by the library user's code end up colliding with the public library API symbols of {{{libjasper}}}. {{{ffmpeg}}} is a popular library that is compiled with {{{OpenJPEG}}} support in MacPorts. A program (or, even worse, a {{{dylib}}} plugin) relying on {{{libjasper}}} can also depend on {{{ffmpeg}}}. Even worse, a program loading a {{{dylib}}} plugin can have {{{OpenJPEG}}} already loaded, tripping up a segmentation fault once the plugin loads and the code to open a JPEG2000 file executes. A simple fix is to change the name of the offending private functions in the OpenJPEG code and recompile openjpeg. -- Ticket URL: <https://trac.macports.org/ticket/32511> MacPorts <http://www.macports.org/> Ports system for Mac OS