2015.06.16 14:39 "[Tiff] CMake support for building libtiff", by Roger Leigh

2015.06.23 10:03 "Re: [Tiff] 4.0.4beta: Symbol differences on Unix and Windows", by Ondřej Surý

A little experiment that took libtiff.def and put the content into libtiff.map revealed:

that's correct or not, since they are part of public API (according to headers)

I assume that TIFF* prefix is meant for public symbols and _TIFF* for internal, then

- There are couple of TIFF* symbols missing from .def file:
+#MISSING: 4.0.4-1# TIFFDefaultDirectory@LIBTIFF_4.0 4.0.3
+#MISSING: 4.0.4-1# TIFFFaxBlackCodes@LIBTIFF_4.0 4.0.3
+#MISSING: 4.0.4-1# TIFFFaxBlackTable@LIBTIFF_4.0 4.0.3
+#MISSING: 4.0.4-1# TIFFFaxMainTable@LIBTIFF_4.0 4.0.3
+#MISSING: 4.0.4-1# TIFFFaxWhiteCodes@LIBTIFF_4.0 4.0.3
+#MISSING: 4.0.4-1# TIFFFaxWhiteTable@LIBTIFF_4.0 4.0.3
+#MISSING: 4.0.4-1# TIFFFillStrip@LIBTIFF_4.0 4.0.3
+#MISSING: 4.0.4-1# TIFFFillTile@LIBTIFF_4.0 4.0.3
+#MISSING: 4.0.4-1# TIFFFlushData1@LIBTIFF_4.0 4.0.3
+#MISSING: 4.0.4-1# TIFFInitCCITTFax3@LIBTIFF_4.0 4.0.3
+#MISSING: 4.0.4-1# TIFFInitCCITTFax4@LIBTIFF_4.0 4.0.3
+#MISSING: 4.0.4-1# TIFFInitCCITTRLE@LIBTIFF_4.0 4.0.3
+#MISSING: 4.0.4-1# TIFFInitCCITTRLEW@LIBTIFF_4.0 4.0.3
+#MISSING: 4.0.4-1# TIFFInitDumpMode@LIBTIFF_4.0 4.0.3
+#MISSING: 4.0.4-1# TIFFInitJBIG@LIBTIFF_4.0 4.0.3
+#MISSING: 4.0.4-1# TIFFInitJPEG@LIBTIFF_4.0 4.0.3
+#MISSING: 4.0.4-1# TIFFInitLZMA@LIBTIFF_4.0 4.0.3
+#MISSING: 4.0.4-1# TIFFInitLZW@LIBTIFF_4.0 4.0.3
+#MISSING: 4.0.4-1# TIFFInitNeXT@LIBTIFF_4.0 4.0.3
+#MISSING: 4.0.4-1# TIFFInitOJPEG@LIBTIFF_4.0 4.0.3
+#MISSING: 4.0.4-1# TIFFInitPackBits@LIBTIFF_4.0 4.0.3
+#MISSING: 4.0.4-1# TIFFInitPixarLog@LIBTIFF_4.0 4.0.3
+#MISSING: 4.0.4-1# TIFFInitSGILog@LIBTIFF_4.0 4.0.3
+#MISSING: 4.0.4-1# TIFFInitThunderScan@LIBTIFF_4.0 4.0.3
+#MISSING: 4.0.4-1# TIFFInitZIP@LIBTIFF_4.0 4.0.3
+#MISSING: 4.0.4-1# TIFFPredictorCleanup@LIBTIFF_4.0 4.0.3
+#MISSING: 4.0.4-1# TIFFPredictorInit@LIBTIFF_4.0 4.0.3

Some of those are not part of the public API (not in public header files, so perhaps renaming them to _TIFF as a part of cleanup would be nice to have).

On the other hand there are still several internal _TIFF symbols exported, I wonder if this could be avoided in the future?

Couple more symbols from LogL API:

+#MISSING: 4.0.4-1# XYZtoRGB24@LIBTIFF_4.0 4.0.3
+#MISSING: 4.0.4-1# uv_decode@LIBTIFF_4.0 4.0.3
+#MISSING: 4.0.4-1# uv_encode@LIBTIFF_4.0 4.0.3

+#MISSING: 4.0.4-1# libport_dummy_function@LIBTIFF_4.0 4.0.3

I guess this should never be exported as it's pulled from libport.la noinst library...

I think that fixing this warant a SOVERSION bump, unless you can be absolutely sure that nothing uses those private symbols anywhere (so I would say that SOVERSION bump is needed).

Cheers,
Ondrej

On Tue, Jun 23, 2015, at 11:22, Ondřej Surý wrote: