IJG libjpeg vs libjpeg-turbo

Jakub Bogusz qboosh at pld-linux.org
Fri Jan 18 15:55:55 CET 2013

Looking for information about libjpeg-turbo API update wrt. libjpeg 9
I found this:

It looks that libjpeg-turbo fully implements libjpeg features up to 6b,
with partial API/ABI emulation (not full implementation) up to 8b (not
even 8c as stated by Provides in libjpeg-turbo), unlikely to really
support API 9 or fully support libjpeg 7+ additions.

What to do now?

One solution could be to ship libjpeg-turbo as libjpeg.so.6 (or even
libjpeg.so.8, doesn't matter much) with development libjpeg.so symlink
(so by default we get SIMD-accelerated basic JPEG support) and ship
libjpeg 9 (as libjpeg.so.9) with different development symlink
(libjpeg9.so or maybe libjpeg-ijg.so).
- it needs identification of packages relying on libjpeg 7+
  functionality and patching them to link with -ljpeg9
- symbol clashes when libraries using libjpeg-turbo and libjpeg9 meet
  in common code space

Second solution: use IJG libjpeg 9 by default and libjpeg-turbo only
where needed (mostly mozilla products).
Disadvantage: no SIMD accelaration outside few applications

Other ideas?

Jakub Bogusz    http://qboosh.pl/

More information about the pld-devel-en mailing list