From e9d616321aa5bd8ac324572e58196bef768692b1 Mon Sep 17 00:00:00 2001 From: John Bowler Date: Thu, 20 Dec 2012 22:48:58 -0600 Subject: [PATCH] [libpng16] Fixed Windows build issues, enabled ARM compilation. Various warnings issued by earlier versions of GCC fixed for Cygwin and Min/GW (which both use old GCCs.) ARM support is enabled by default in zlib.props (unsupported by Microsoft) and ARM compilation is made possible by deleting the check for x86. The test programs cannot be run because they are not signed. --- ANNOUNCE | 5 ++++ CHANGES | 5 ++++ pngconf.h | 23 ++++++++++--------- pngwrite.c | 1 - projects/vstudio/libpng/libpng.vcxproj | 2 +- .../vstudio/pnglibconf/pnglibconf.vcxproj | 1 + projects/vstudio/pngstest/pngstest.vcxproj | 6 ++--- projects/vstudio/pngtest/pngtest.vcxproj | 2 +- .../vstudio/pngunknown/pngunknown.vcxproj | 6 ++--- projects/vstudio/pngvalid/pngvalid.vcxproj | 2 +- projects/vstudio/readme.txt | 2 +- projects/vstudio/zlib.props | 10 +++++++- projects/vstudio/zlib/zlib.vcxproj | 2 +- 13 files changed, 43 insertions(+), 24 deletions(-) diff --git a/ANNOUNCE b/ANNOUNCE index 9ae7ccb6a..7af8959c3 100644 --- a/ANNOUNCE +++ b/ANNOUNCE @@ -572,6 +572,11 @@ Version 1.6.0beta34 [December 19, 2012] Version 1.6.0beta35 [December 21, 2012] Made default Zlib compression settings be configurable. This adds #defines to pnglibconf.h to control the defaults. + Fixed Windows build issues, enabled ARM compilation. Various warnings issued by + earlier versions of GCC fixed for Cygwin and Min/GW (which both use old GCCs.) + ARM support is enabled by default in zlib.props (unsupported by Microsoft) and + ARM compilation is made possible by deleting the check for x86. The test programs + cannot be run because they are not signed. =========================================================================== NOTICE November 17, 2012: diff --git a/CHANGES b/CHANGES index 41fcc579d..f9613a94c 100644 --- a/CHANGES +++ b/CHANGES @@ -4324,6 +4324,11 @@ Version 1.6.0beta34 [December 19, 2012] Version 1.6.0beta35 [December 21, 2012] Made default Zlib compression settings be configurable. This adds #defines to pnglibconf.h to control the defaults. + Fixed Windows build issues, enabled ARM compilation. Various warnings issued by + earlier versions of GCC fixed for Cygwin and Min/GW (which both use old GCCs.) + ARM support is enabled by default in zlib.props (unsupported by Microsoft) and + ARM compilation is made possible by deleting the check for x86. The test programs + cannot be run because they are not signed. =========================================================================== NOTICE November 17, 2012: diff --git a/pngconf.h b/pngconf.h index 458e92b9b..8d7b75eb5 100644 --- a/pngconf.h +++ b/pngconf.h @@ -1,7 +1,7 @@ /* pngconf.h - machine configurable file for libpng * - * libpng version 1.6.0beta35 - December 19, 2012 + * libpng version 1.6.0beta35 - December 21, 2012 * * Copyright (c) 1998-2012 Glenn Randers-Pehrson * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) @@ -198,18 +198,16 @@ * ========================== * This code is used at build time to find PNG_IMPEXP, the API settings * and PNG_EXPORT_TYPE(), it may also set a macro to indicate the DLL - * import processing is possible. On Windows/x86 systems it also sets + * import processing is possible. On Windows systems it also sets * compiler-specific macros to the values required to change the calling * conventions of the various functions. */ -#if ( defined(_Windows) || defined(_WINDOWS) || defined(WIN32) ||\ - defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) ) &&\ - ( defined(_X86_) || defined(_X64_) || defined(_M_IX86) ||\ - defined(_M_X64) || defined(_M_IA64) ) - /* Windows system (DOS doesn't support DLLs) running on x86/x64. Includes - * builds under Cygwin or MinGW. Also includes Watcom builds but these need - * special treatment because they are not compatible with GCC or Visual C - * because of different calling conventions. +#if defined(_Windows) || defined(_WINDOWS) || defined(WIN32) ||\ + defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) + /* Windows system (DOS doesn't support DLLs). Includes builds under Cygwin or + * MinGW on any architecture currently supported by Windows. Also includes + * Watcom builds but these need special treatment because they are not + * compatible with GCC or Visual C because of different calling conventions. */ # if PNG_API_RULE == 2 /* If this line results in an error, either because __watcall is not @@ -223,6 +221,9 @@ # if defined(__GNUC__) || (defined (_MSC_VER) && (_MSC_VER >= 800)) # define PNGCAPI __cdecl # if PNG_API_RULE == 1 + /* If this line results in an error __stdcall is not understood and + * PNG_API_RULE should not have been set to '1'. + */ # define PNGAPI __stdcall # endif # else @@ -260,7 +261,7 @@ # endif # endif /* compiler */ -#else /* !Windows/x86 */ +#else /* !Windows */ # if (defined(__IBMC__) || defined(__IBMCPP__)) && defined(__OS2__) # define PNGAPI _System # else /* !Windows/x86 && !OS/2 */ diff --git a/pngwrite.c b/pngwrite.c index 6e333f58b..fb1d4e55b 100644 --- a/pngwrite.c +++ b/pngwrite.c @@ -447,7 +447,6 @@ png_write_end(png_structrp png_ptr, png_inforp info_ptr) } #ifdef PNG_CONVERT_tIME_SUPPORTED -/* "tm" structure is not supported on WindowsCE */ void PNGAPI png_convert_from_struct_tm(png_timep ptime, PNG_CONST struct tm * ttime) { diff --git a/projects/vstudio/libpng/libpng.vcxproj b/projects/vstudio/libpng/libpng.vcxproj index e66b9c673..de7fc3c41 100644 --- a/projects/vstudio/libpng/libpng.vcxproj +++ b/projects/vstudio/libpng/libpng.vcxproj @@ -23,8 +23,8 @@ Win32Proj libpng - + DynamicLibrary MultiByte diff --git a/projects/vstudio/pnglibconf/pnglibconf.vcxproj b/projects/vstudio/pnglibconf/pnglibconf.vcxproj index 7c691c32d..e2a232cb6 100644 --- a/projects/vstudio/pnglibconf/pnglibconf.vcxproj +++ b/projects/vstudio/pnglibconf/pnglibconf.vcxproj @@ -17,6 +17,7 @@ true MultiByte + diff --git a/projects/vstudio/pngstest/pngstest.vcxproj b/projects/vstudio/pngstest/pngstest.vcxproj index fc2e9d5d8..0d2980dd8 100644 --- a/projects/vstudio/pngstest/pngstest.vcxproj +++ b/projects/vstudio/pngstest/pngstest.vcxproj @@ -23,8 +23,8 @@ Win32Proj pngstest - + Application Unicode @@ -96,7 +96,7 @@ Console true - libpng16.lib;zlib.lib + libpng16.lib $(OutDir) @@ -163,7 +163,7 @@ true true true - libpng16.lib;zlib.lib + libpng16.lib $(OutDir) UseLinkTimeCodeGeneration diff --git a/projects/vstudio/pngtest/pngtest.vcxproj b/projects/vstudio/pngtest/pngtest.vcxproj index 3680b8ce5..bf9266f75 100644 --- a/projects/vstudio/pngtest/pngtest.vcxproj +++ b/projects/vstudio/pngtest/pngtest.vcxproj @@ -23,8 +23,8 @@ Win32Proj pngtest - + Application Unicode diff --git a/projects/vstudio/pngunknown/pngunknown.vcxproj b/projects/vstudio/pngunknown/pngunknown.vcxproj index 6f9059544..a30cc7a21 100644 --- a/projects/vstudio/pngunknown/pngunknown.vcxproj +++ b/projects/vstudio/pngunknown/pngunknown.vcxproj @@ -23,8 +23,8 @@ Win32Proj pngunknown - + Application Unicode @@ -96,7 +96,7 @@ Console true - libpng16.lib;zlib.lib + libpng16.lib $(OutDir) @@ -163,7 +163,7 @@ true true true - libpng16.lib;zlib.lib + libpng16.lib $(OutDir) UseLinkTimeCodeGeneration diff --git a/projects/vstudio/pngvalid/pngvalid.vcxproj b/projects/vstudio/pngvalid/pngvalid.vcxproj index 84efc4d81..07cf24119 100644 --- a/projects/vstudio/pngvalid/pngvalid.vcxproj +++ b/projects/vstudio/pngvalid/pngvalid.vcxproj @@ -23,8 +23,8 @@ Win32Proj pngvalid - + Application Unicode diff --git a/projects/vstudio/readme.txt b/projects/vstudio/readme.txt index 189e26cf5..b68bf9629 100644 --- a/projects/vstudio/readme.txt +++ b/projects/vstudio/readme.txt @@ -1,7 +1,7 @@ VisualStudio instructions -libpng version 1.6.0beta35 - December 19, 2012 +libpng version 1.6.0beta35 - December 21, 2012 Copyright (c) 1998-2010 Glenn Randers-Pehrson diff --git a/projects/vstudio/zlib.props b/projects/vstudio/zlib.props index 348d68663..8b7591c3d 100644 --- a/projects/vstudio/zlib.props +++ b/projects/vstudio/zlib.props @@ -2,7 +2,7 @@ ..\..\..\..\zlib-1.2.5 + + + true diff --git a/projects/vstudio/zlib/zlib.vcxproj b/projects/vstudio/zlib/zlib.vcxproj index 8e271988f..6e5b94a61 100644 --- a/projects/vstudio/zlib/zlib.vcxproj +++ b/projects/vstudio/zlib/zlib.vcxproj @@ -36,8 +36,8 @@ Win32Proj zlib - + StaticLibrary