diff --git a/ANNOUNCE b/ANNOUNCE index e8804c209..213467751 100644 --- a/ANNOUNCE +++ b/ANNOUNCE @@ -1,5 +1,5 @@ -Libpng 1.5.15beta01 - January 24, 2013 +Libpng 1.5.15beta01 - February 4, 2013 This is not intended to be a public release. It will be replaced within a few weeks by a public version or by another test version. @@ -26,7 +26,10 @@ Other information: Changes since the last public release (1.5.14): -Version 1.5.15beta01 [January 24, 2013] +Version 1.5.15beta01 [February 4, 2013] + Enabled renaming of the extern (but not DLL exported) ARM filter functions. + Also enabled inclusion of pngpriv.h in non-C files by preventing C/C++ + specific definitions if PNG_VERSION_INFO_ONLY is defined. Send comments/corrections/commendations to png-mng-implement at lists.sf.net (subscription required; visit diff --git a/CHANGES b/CHANGES index bcc1d471c..7984f9154 100644 --- a/CHANGES +++ b/CHANGES @@ -3983,7 +3983,10 @@ Version 1.5.14rc03 [January 18, 2013] Version 1.5.14 [January 24, 2013] Removed an obsolete line from the manual. -Version 1.5.15beta01 [January 24, 2013] +Version 1.5.15beta01 [February 4, 2013] + Enabled renaming of the extern (but not DLL exported) ARM filter functions. + Also enabled inclusion of pngpriv.h in non-C files by preventing C/C++ + specific definitions if PNG_VERSION_INFO_ONLY is defined. =========================================================================== NOTICE November 17, 2012: diff --git a/arm/filter_neon.S b/arm/filter_neon.S index 4aa500cd7..55ca3f292 100644 --- a/arm/filter_neon.S +++ b/arm/filter_neon.S @@ -10,6 +10,10 @@ * and license in png.h */ +/* This is required to get the symbol renames, which are #defines */ +#define PNG_VERSION_INFO_ONLY +#include "../pngpriv.h" + #ifdef __arm__ #if defined(__linux__) && defined(__ELF__) .section .note.GNU-stack,"",%progbits /* mark stack as non-executable */ diff --git a/pngpriv.h b/pngpriv.h index b961bd3b2..d1e3056db 100644 --- a/pngpriv.h +++ b/pngpriv.h @@ -39,6 +39,7 @@ */ #define _POSIX_SOURCE 1 /* Just the POSIX 1003.1 and C89 APIs */ +#ifndef PNG_VERSION_INFO_ONLY /* This is required for the definition of abort(), used as a last ditch * error handler when all else fails. */ @@ -46,6 +47,7 @@ /* This is used to find 'offsetof', used below for alignment tests. */ #include +#endif /* !PNG_VERSION_INFO_ONLY */ #define PNGLIB_BUILD /*libpng is being built, not used*/ @@ -125,8 +127,6 @@ #endif #include "png.h" -#include "pnginfo.h" -#include "pngstruct.h" /* pngconf.h does not set PNG_DLL_EXPORT unless it is required, so: */ #ifndef PNG_DLL_EXPORT @@ -173,14 +173,6 @@ # endif #endif -/* This is used for 16 bit gamma tables - only the top level pointers are const, - * this could be changed: - */ -typedef PNG_CONST png_uint_16p FAR * png_const_uint_16pp; - -/* Added at libpng-1.2.9 */ -/* Moved to pngpriv.h at libpng-1.5.0 */ - /* config.h is created by and PNG_CONFIGURE_LIBPNG is set by the "configure" * script. We may need it here to get the correct configuration on things * like limits. @@ -308,6 +300,7 @@ typedef PNG_CONST png_uint_16p FAR * png_const_uint_16pp; # define PNGFAPI /* PRIVATE */ #endif +#ifndef PNG_VERSION_INFO_ONLY /* Other defines specific to compilers can go here. Try to keep * them inside an appropriate ifdef/endif pair for portability. */ @@ -352,6 +345,7 @@ typedef PNG_CONST png_uint_16p FAR * png_const_uint_16pp; defined(_WIN32) || defined(__WIN32__) # include /* defines _WINDOWS_ macro */ #endif +#endif /* !PNG_VERSION_INFO_ONLY */ /* Moved here around 1.5.0beta36 from pngconf.h */ /* Users may want to use these so they are not private. Any library @@ -617,8 +611,10 @@ typedef PNG_CONST png_uint_16p FAR * png_const_uint_16pp; #define png_fixed(png_ptr, fp, s) ((fp) <= 21474 && (fp) >= -21474 ?\ ((png_fixed_point)(100000 * (fp))) : (png_fixed_error(png_ptr, s),0)) #else +#ifndef PNG_VERSION_INFO_ONLY PNG_EXTERN png_fixed_point png_fixed PNGARG((png_structp png_ptr, double fp, png_const_charp text)); +#endif /* !PNG_VERSION_INFO_ONLY */ #endif #endif @@ -692,6 +688,18 @@ PNG_EXTERN png_fixed_point png_fixed PNGARG((png_structp png_ptr, double fp, #define PNG_GAMMA_MAC_INVERSE 65909 #define PNG_GAMMA_sRGB_INVERSE 45455 +/* Almost everything below is C specific; the #defines above can be used in + * non-C code (so long as it is C-preprocessed) the rest of this stuff cannot. + */ +#ifndef PNG_VERSION_INFO_ONLY + +#include "pngstruct.h" +#include "pnginfo.h" + +/* This is used for 16 bit gamma tables -- only the top level pointers are + * const; this could be changed: + */ +typedef const png_uint_16p * png_const_uint_16pp; /* Inhibit C++ name-mangling for libpng functions but not for system calls. */ #ifdef __cplusplus @@ -1737,4 +1745,5 @@ PNG_EXTERN void PNG_FILTER_OPTIMIZATIONS(png_structp png_ptr, unsigned int bpp); } #endif +#endif /* PNG_VERSION_INFO_ONLY */ #endif /* PNGPRIV_H */