diff --git a/ANNOUNCE b/ANNOUNCE index c34d449ae..8ce75e580 100644 --- a/ANNOUNCE +++ b/ANNOUNCE @@ -1,4 +1,4 @@ -Libpng 1.6.31beta01 - June 28, 2017 +Libpng 1.6.31beta01 - July 1, 2017 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. @@ -60,7 +60,11 @@ Version 1.6.30rc02 [June 25, 2017] Version 1.6.30 [June 28, 2017] No changes. -Version 1.6.31beta01 [June 28, 2017] +Version 1.6.31beta01 [July 1, 2017] + Guard the definition of _POSIX_SOURCE in pngpriv.h (AIX already defines it; + bug report by Michael Felt). + Revised pngpriv.h to work around failure to compile arm/filter_neon.S + ("typedef" directive is unrecognized by the assembler). Send comments/corrections/commendations to png-mng-implement at lists.sf.net (subscription required; visit diff --git a/CHANGES b/CHANGES index 09898d79b..26302965d 100644 --- a/CHANGES +++ b/CHANGES @@ -5855,7 +5855,11 @@ Version 1.6.30rc02 [June 25, 2017] Version 1.6.30 [June 28, 2017] No changes. -Version 1.6.31beta01 [June 28, 2017] +Version 1.6.31beta01 [July 1, 2017] + Guard the definition of _POSIX_SOURCE in pngpriv.h (AIX already defines it; + bug report by Michael Felt). + Revised pngpriv.h to work around failure to compile arm/filter_neon.S + ("typedef" directive is unrecognized by the assembler). Send comments/corrections/commendations to png-mng-implement at lists.sf.net (subscription required; visit diff --git a/pngpriv.h b/pngpriv.h index 5b81af631..510bd0051 100644 --- a/pngpriv.h +++ b/pngpriv.h @@ -35,7 +35,9 @@ * Windows/Visual Studio) there is no effect; the OS specific tests below are * still required (as of 2011-05-02.) */ -#define _POSIX_SOURCE 1 /* Just the POSIX 1003.1 and C89 APIs */ +#ifndef _POSIX_SOURCE +# define _POSIX_SOURCE 1 /* Just the POSIX 1003.1 and C89 APIs */ +#endif #ifndef PNG_VERSION_INFO_ONLY /* Standard library headers not required by png.h: */ @@ -466,16 +468,21 @@ static_cast(static_cast(value)) #else # define png_voidcast(type, value) (value) -# ifdef _WIN64 +# if PNG_ARM_NEON_IMPLEMENTATION == 2 /* hand-coded assembler */ + /* does not recognize "typedef" */ +# define png_constcast(type, value) ((type)(value)) +# else +# ifdef _WIN64 # ifdef __GNUC__ typedef unsigned long long png_ptruint; # else typedef unsigned __int64 png_ptruint; # endif -# else +# else typedef unsigned long png_ptruint; +# endif +# define png_constcast(type, value) ((type)(png_ptruint)(const void*)(value)) # endif -# define png_constcast(type, value) ((type)(png_ptruint)(const void*)(value)) # define png_aligncast(type, value) ((void*)(value)) # define png_aligncastconst(type, value) ((const void*)(value)) #endif /* __cplusplus */