From c1523ad16d03676d32271f5c07de4612c2b043cf Mon Sep 17 00:00:00 2001 From: Glenn Randers-Pehrson Date: Thu, 24 May 2007 06:06:08 -0500 Subject: [PATCH] Imported from libpng-1.2.19beta10.tar --- ANNOUNCE | 29 +- CHANGES | 5 +- INSTALL | 20 +- KNOWNBUG | 2 +- LICENSE | 4 +- README | 14 +- Y2KINFO | 4 +- configure | 22 +- configure.ac | 4 +- ...1.2.19beta9.txt => libpng-1.2.19beta10.txt | 6 +- libpng.3 | 18 +- libpngpf.3 | 4 +- png.5 | 2 +- png.c | 6 +- png.h | 20 +- pngconf.h | 2 +- pngerror.c | 2 +- pnggccrd.c | 400 ++++++++++-------- pngpread.c | 2 +- pngread.c | 2 +- pngrtran.c | 2 +- pngrutil.c | 2 +- pngtest.c | 2 +- pngvcrd.c | 2 +- pngwutil.c | 2 +- scripts/CMakeLists.txt | 2 +- scripts/libpng-config-head.in | 2 +- scripts/libpng.pc-configure.in | 2 +- scripts/libpng.pc.in | 2 +- scripts/makefile.32sunu | 2 +- scripts/makefile.64sunu | 2 +- scripts/makefile.aix | 2 +- scripts/makefile.beos | 2 +- scripts/makefile.cygwin | 2 +- scripts/makefile.darwin | 2 +- scripts/makefile.dec | 2 +- scripts/makefile.elf | 2 +- scripts/makefile.gcmmx | 2 +- scripts/makefile.hp64 | 2 +- scripts/makefile.hpgcc | 2 +- scripts/makefile.hpux | 2 +- scripts/makefile.linux | 2 +- scripts/makefile.mingw | 2 +- scripts/makefile.ne12bsd | 2 +- scripts/makefile.netbsd | 2 +- scripts/makefile.nommx | 2 +- scripts/makefile.openbsd | 2 +- scripts/makefile.sco | 2 +- scripts/makefile.sggcc | 2 +- scripts/makefile.sgi | 2 +- scripts/makefile.so9 | 2 +- scripts/makefile.solaris | 2 +- scripts/makefile.solaris-x86 | 2 +- scripts/pngos2.def | 2 +- scripts/pngw32.def | 2 +- 55 files changed, 352 insertions(+), 286 deletions(-) rename libpng-1.2.19beta9.txt => libpng-1.2.19beta10.txt (99%) diff --git a/ANNOUNCE b/ANNOUNCE index 56a55610..b564ea3c 100644 --- a/ANNOUNCE +++ b/ANNOUNCE @@ -1,5 +1,5 @@ -Libpng 1.2.19beta9 - May 23, 2007 +Libpng 1.2.19beta10 - May 24, 2007 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. @@ -9,32 +9,32 @@ Files available for download: Source files with LF line endings (for Unix/Linux) and with a "configure" script - libpng-1.2.19beta9.tar.gz - libpng-1.2.19beta9.tar.bz2 + libpng-1.2.19beta10.tar.gz + libpng-1.2.19beta10.tar.bz2 Source files with LF line endings (for Unix/Linux) without the "configure" script - libpng-1.2.19beta9-no-config.tar.gz - libpng-1.2.19beta9-no-config.tar.bz2 + libpng-1.2.19beta10-no-config.tar.gz + libpng-1.2.19beta10-no-config.tar.bz2 Source files with CRLF line endings (for Windows), without the "configure" script - lp1219b09.zip - lp1219b09.tar.bz2 + lp1219b10.zip + lp1219b10.tar.bz2 Project files - libpng-1.2.19beta9-project-netware.zip - libpng-1.2.19beta9-project-wince.zip + libpng-1.2.19beta10-project-netware.zip + libpng-1.2.19beta10-project-wince.zip Other information: - libpng-1.2.19beta9-README.txt - libpng-1.2.19beta9-KNOWNBUGS.txt - libpng-1.2.19beta9-LICENSE.txt - libpng-1.2.19beta9-Y2K-compliance.txt + libpng-1.2.19beta10-README.txt + libpng-1.2.19beta10-KNOWNBUGS.txt + libpng-1.2.19beta10-LICENSE.txt + libpng-1.2.19beta10-Y2K-compliance.txt Changes since the last public release (1.2.18): @@ -75,6 +75,9 @@ version 1.2.19beta9 [May 23, 2007] Revised png_squelch_warnings() so it might work. Updated makefile.sgcc and makefile.solaris; added makefile.solaris-x86. +version 1.2.19beta10 [May 24, 2007] + Resquelched png_squelch_warnings(), use "__attribute__((used))" instead. + Send comments/corrections/commendations to png-mng-implement at lists.sf.net (subscription required; visit diff --git a/CHANGES b/CHANGES index 915925f8..9ab1693d 100644 --- a/CHANGES +++ b/CHANGES @@ -1763,11 +1763,14 @@ version 1.2.19beta7 [May 22, 2007] version 1.2.19beta8 [May 22, 2007] Removed __MMX__ from test in pngconf.h. -version 1.2.19beta9 [May 23, 2007] +version 1.2.19beta9 [May 24, 2007] Made png_squelch_warnings() available via PNG_SQUELCH_WARNINGS macro. Revised png_squelch_warnings() so it might work. Updated makefile.sgcc and makefile.solaris; added makefile.solaris-x86. +version 1.2.19beta10 [May 24, 2007] + Resquelched png_squelch_warnings(), use "__attribute__((used))" instead. + Send comments/corrections/commendations to png-mng-implement at lists.sf.net (subscription required; visit https://lists.sourceforge.net/lists/listinfo/png-mng-implement diff --git a/INSTALL b/INSTALL index 9ee9f2ea..6a1ed019 100644 --- a/INSTALL +++ b/INSTALL @@ -1,5 +1,5 @@ -Installing libpng version 1.2.19beta9 - May 23, 2007 +Installing libpng version 1.2.19beta10 - May 24, 2007 On Unix/Linux and similar systems, you can simply type @@ -44,7 +44,7 @@ to have access to the zlib.h and zconf.h include files that correspond to the version of zlib that's installed. You can rename the directories that you downloaded (they -might be called "libpng-1.2.19beta9" or "lpng109" and "zlib-1.2.1" +might be called "libpng-1.2.19beta10" or "lpng109" and "zlib-1.2.1" or "zlib121") so that you have directories called "zlib" and "libpng". Your directory structure should look like this: @@ -101,14 +101,14 @@ include CMakeLists.txt => "cmake" script makefile.std => Generic UNIX makefile (cc, creates static libpng.a) makefile.elf => Linux/ELF makefile symbol versioning, - gcc, creates libpng12.so.0.1.2.19beta9) + gcc, creates libpng12.so.0.1.2.19beta10) makefile.linux => Linux/ELF makefile - (gcc, creates libpng12.so.0.1.2.19beta9) + (gcc, creates libpng12.so.0.1.2.19beta10) makefile.gcmmx => Linux/ELF makefile - (gcc, creates libpng12.so.0.1.2.19beta9, + (gcc, creates libpng12.so.0.1.2.19beta10, uses assembler code tuned for Intel MMX platform) makefile.nommx => Linux/ELF makefile - (gcc, creates libpng12.so.0.1.2.19beta9 + (gcc, creates libpng12.so.0.1.2.19beta10 does not use Intel MMX assembler code) makefile.gcc => Generic makefile (gcc, creates static libpng.a) makefile.knr => Archaic UNIX Makefile that converts files with @@ -131,14 +131,14 @@ include makefile.openbsd => OpenBSD makefile makefile.sgi => Silicon Graphics IRIX makefile (cc, creates static lib) makefile.sggcc => Silicon Graphics (gcc, - creates libpng12.so.0.1.2.19beta9) + creates libpng12.so.0.1.2.19beta10) makefile.sunos => Sun makefile makefile.solaris => Solaris 2.X makefile (gcc, - creates libpng12.so.0.1.2.19beta9) + creates libpng12.so.0.1.2.19beta10) makefile.solaris-x86 => Solaris/intelMMX 2.X makefile (gcc, - creates libpng12.so.0.1.2.19beta9) + creates libpng12.so.0.1.2.19beta10) makefile.so9 => Solaris 9 makefile (gcc, - creates libpng12.so.0.1.2.19beta9) + creates libpng12.so.0.1.2.19beta10) makefile.32sunu => Sun Ultra 32-bit makefile makefile.64sunu => Sun Ultra 64-bit makefile makefile.sco => For SCO OSr5 ELF and Unixware 7 with Native cc diff --git a/KNOWNBUG b/KNOWNBUG index 64dfb980..714c1724 100644 --- a/KNOWNBUG +++ b/KNOWNBUG @@ -1,5 +1,5 @@ -Known bugs in libpng version 1.2.19beta9 +Known bugs in libpng version 1.2.19beta10 1. April 22, 2001: pnggccrd.c has been reported to crash on NetBSD when reading interlaced PNG files, when assembler code is enabled but running diff --git a/LICENSE b/LICENSE index cd3101e5..1175842b 100644 --- a/LICENSE +++ b/LICENSE @@ -8,7 +8,7 @@ COPYRIGHT NOTICE, DISCLAIMER, and LICENSE: If you modify libpng you may insert additional notices immediately following this sentence. -libpng versions 1.2.6, August 15, 2004, through 1.2.19beta9, May 23, 2007, are +libpng versions 1.2.6, August 15, 2004, through 1.2.19beta10, May 24, 2007, are Copyright (c) 2004, 2006-2007 Glenn Randers-Pehrson, and are distributed according to the same disclaimer and license as libpng-1.2.5 with the following individual added to the list of Contributing Authors @@ -106,4 +106,4 @@ certification mark of the Open Source Initiative. Glenn Randers-Pehrson glennrp at users.sourceforge.net -May 23, 2007 +May 24, 2007 diff --git a/README b/README index d8c08e19..ce80662c 100644 --- a/README +++ b/README @@ -1,4 +1,4 @@ -README for libpng version 1.2.19beta9 - May 23, 2007 (shared library 12.0) +README for libpng version 1.2.19beta10 - May 24, 2007 (shared library 12.0) See the note about version numbers near the top of png.h See INSTALL for instructions on how to install libpng. @@ -190,11 +190,11 @@ Files in this distribution: descrip.mms => VMS makefile for MMS or MMK makefile.std => Generic UNIX makefile (cc, creates static libpng.a) makefile.elf => Linux/ELF makefile symbol versioning, - gcc, creates libpng12.so.0.1.2.19beta9) + gcc, creates libpng12.so.0.1.2.19beta10) makefile.linux => Linux/ELF makefile - (gcc, creates libpng12.so.0.1.2.19beta9) + (gcc, creates libpng12.so.0.1.2.19beta10) makefile.gcmmx => Linux/ELF makefile - (gcc, creates libpng12.so.0.1.2.19beta9, + (gcc, creates libpng12.so.0.1.2.19beta10, uses assembler code tuned for Intel MMX platform) makefile.gcc => Generic makefile (gcc, creates static libpng.a) makefile.knr => Archaic UNIX Makefile that converts files with @@ -216,12 +216,12 @@ Files in this distribution: makefile.openbsd => OpenBSD makefile makefile.sgi => Silicon Graphics IRIX (cc, creates static lib) makefile.sggcc => Silicon Graphics - (gcc, creates libpng12.so.0.1.2.19beta9) + (gcc, creates libpng12.so.0.1.2.19beta10) makefile.sunos => Sun makefile makefile.solaris => Solaris 2.X makefile - (gcc, creates libpng12.so.0.1.2.19beta9) + (gcc, creates libpng12.so.0.1.2.19beta10) makefile.so9 => Solaris 9 makefile - (gcc, creates libpng12.so.0.1.2.19beta9) + (gcc, creates libpng12.so.0.1.2.19beta10) makefile.32sunu => Sun Ultra 32-bit makefile makefile.64sunu => Sun Ultra 64-bit makefile makefile.sco => For SCO OSr5 ELF and Unixware 7 with Native cc diff --git a/Y2KINFO b/Y2KINFO index eea9000a..44fff2de 100644 --- a/Y2KINFO +++ b/Y2KINFO @@ -1,13 +1,13 @@ Y2K compliance in libpng: ========================= - May 23, 2007 + May 24, 2007 Since the PNG Development group is an ad-hoc body, we can't make an official declaration. This is your unofficial assurance that libpng from version 0.71 and - upward through 1.2.19beta9 are Y2K compliant. It is my belief that earlier + upward through 1.2.19beta10 are Y2K compliant. It is my belief that earlier versions were also Y2K compliant. Libpng only has three year fields. One is a 2-byte unsigned integer diff --git a/configure b/configure index a3d006ac..e3a7e654 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.61 for libpng 1.2.19beta9. +# Generated by GNU Autoconf 2.61 for libpng 1.2.19beta10. # # Report bugs to . # @@ -728,8 +728,8 @@ SHELL=${CONFIG_SHELL-/bin/sh} # Identity of this package. PACKAGE_NAME='libpng' PACKAGE_TARNAME='libpng' -PACKAGE_VERSION='1.2.19beta9' -PACKAGE_STRING='libpng 1.2.19beta9' +PACKAGE_VERSION='1.2.19beta10' +PACKAGE_STRING='libpng 1.2.19beta10' PACKAGE_BUGREPORT='png-mng-implement@lists.sourceforge.net' ac_unique_file="pngget.c" @@ -1405,7 +1405,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures libpng 1.2.19beta9 to adapt to many kinds of systems. +\`configure' configures libpng 1.2.19beta10 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1475,7 +1475,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of libpng 1.2.19beta9:";; + short | recursive ) echo "Configuration of libpng 1.2.19beta10:";; esac cat <<\_ACEOF @@ -1585,7 +1585,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -libpng configure 1.2.19beta9 +libpng configure 1.2.19beta10 generated by GNU Autoconf 2.61 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, @@ -1599,7 +1599,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by libpng $as_me 1.2.19beta9, which was +It was created by libpng $as_me 1.2.19beta10, which was generated by GNU Autoconf 2.61. Invocation command line was $ $0 $@ @@ -2269,7 +2269,7 @@ fi # Define the identity of the package. PACKAGE='libpng' - VERSION='1.2.19beta9' + VERSION='1.2.19beta10' cat >>confdefs.h <<_ACEOF @@ -2440,7 +2440,7 @@ fi -PNGLIB_VERSION=1.2.19beta9 +PNGLIB_VERSION=1.2.19beta10 PNGLIB_MAJOR=1 PNGLIB_MINOR=2 PNGLIB_RELEASE=19 @@ -21119,7 +21119,7 @@ exec 6>&1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by libpng $as_me 1.2.19beta9, which was +This file was extended by libpng $as_me 1.2.19beta10, which was generated by GNU Autoconf 2.61. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -21172,7 +21172,7 @@ Report bugs to ." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF ac_cs_version="\\ -libpng config.status 1.2.19beta9 +libpng config.status 1.2.19beta10 configured by $0, generated by GNU Autoconf 2.61, with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" diff --git a/configure.ac b/configure.ac index adfc8a64..bb09f2a2 100644 --- a/configure.ac +++ b/configure.ac @@ -18,12 +18,12 @@ AC_PREREQ(2.59) dnl Version number stuff here: -AC_INIT([libpng], [1.2.19beta9], [png-mng-implement@lists.sourceforge.net]) +AC_INIT([libpng], [1.2.19beta10], [png-mng-implement@lists.sourceforge.net]) AM_INIT_AUTOMAKE dnl stop configure from automagically running automake AM_MAINTAINER_MODE -PNGLIB_VERSION=1.2.19beta9 +PNGLIB_VERSION=1.2.19beta10 PNGLIB_MAJOR=1 PNGLIB_MINOR=2 PNGLIB_RELEASE=19 diff --git a/libpng-1.2.19beta9.txt b/libpng-1.2.19beta10.txt similarity index 99% rename from libpng-1.2.19beta9.txt rename to libpng-1.2.19beta10.txt index 80d45fa2..e94816f8 100644 --- a/libpng-1.2.19beta9.txt +++ b/libpng-1.2.19beta10.txt @@ -1,6 +1,6 @@ libpng.txt - A description on how to use and modify libpng - libpng version 1.2.19beta9 - May 23, 2007 + libpng version 1.2.19beta10 - May 24, 2007 Updated and distributed by Glenn Randers-Pehrson Copyright (c) 1998-2007 Glenn Randers-Pehrson @@ -2921,13 +2921,13 @@ application: IX. Y2K Compliance in libpng -May 23, 2007 +May 24, 2007 Since the PNG Development group is an ad-hoc body, we can't make an official declaration. This is your unofficial assurance that libpng from version 0.71 and -upward through 1.2.19beta9 are Y2K compliant. It is my belief that earlier +upward through 1.2.19beta10 are Y2K compliant. It is my belief that earlier versions were also Y2K compliant. Libpng only has three year fields. One is a 2-byte unsigned integer that diff --git a/libpng.3 b/libpng.3 index a74c6bc8..11a7a4ca 100644 --- a/libpng.3 +++ b/libpng.3 @@ -1,6 +1,6 @@ -.TH LIBPNG 3 "May 23, 2007" +.TH LIBPNG 3 "May 24, 2007" .SH NAME -libpng \- Portable Network Graphics (PNG) Reference Library 1.2.19beta9 +libpng \- Portable Network Graphics (PNG) Reference Library 1.2.19beta10 .SH SYNOPSIS \fB #include \fP @@ -410,7 +410,7 @@ Following is a copy of the libpng.txt file that accompanies libpng. .SH LIBPNG.TXT libpng.txt - A description on how to use and modify libpng - libpng version 1.2.19beta9 - May 23, 2007 + libpng version 1.2.19beta10 - May 24, 2007 Updated and distributed by Glenn Randers-Pehrson Copyright (c) 1998-2007 Glenn Randers-Pehrson @@ -3331,13 +3331,13 @@ application: .SH IX. Y2K Compliance in libpng -May 23, 2007 +May 24, 2007 Since the PNG Development group is an ad-hoc body, we can't make an official declaration. This is your unofficial assurance that libpng from version 0.71 and -upward through 1.2.19beta9 are Y2K compliant. It is my belief that earlier +upward through 1.2.19beta10 are Y2K compliant. It is my belief that earlier versions were also Y2K compliant. Libpng only has three year fields. One is a 2-byte unsigned integer that @@ -3526,7 +3526,7 @@ the first widely used release: 1.2.17 13 10217 12.so.0.17[.0] 1.0.26 10 10026 10.so.0.26[.0] 1.2.18 13 10218 12.so.0.18[.0] - 1.2.19beta1-9 13 10219 12.so.0.19[.0] + 1.2.19beta1-10 13 10219 12.so.0.19[.0] Henceforth the source version will match the shared-library minor and patch numbers; the shared-library major version number will be @@ -3582,7 +3582,7 @@ possible without all of you. Thanks to Frank J. T. Wojcik for helping with the documentation. -Libpng version 1.2.19beta9 - May 23, 2007: +Libpng version 1.2.19beta10 - May 24, 2007: Initially created in 1995 by Guy Eric Schalnat, then of Group 42, Inc. Currently maintained by Glenn Randers-Pehrson (glennrp at users.sourceforge.net). @@ -3603,7 +3603,7 @@ included in the libpng distribution, the latter shall prevail.) If you modify libpng you may insert additional notices immediately following this sentence. -libpng versions 1.2.6, August 15, 2004, through 1.2.19beta9, May 23, 2007, are +libpng versions 1.2.6, August 15, 2004, through 1.2.19beta10, May 24, 2007, are Copyright (c) 2004,2006-2007 Glenn Randers-Pehrson, and are distributed according to the same disclaimer and license as libpng-1.2.5 with the following individual added to the list of Contributing Authors @@ -3702,7 +3702,7 @@ certification mark of the Open Source Initiative. Glenn Randers-Pehrson glennrp at users.sourceforge.net -May 23, 2007 +May 24, 2007 .\" end of man page diff --git a/libpngpf.3 b/libpngpf.3 index 5abe43b8..a61b73cf 100644 --- a/libpngpf.3 +++ b/libpngpf.3 @@ -1,6 +1,6 @@ -.TH LIBPNGPF 3 "May 23, 2007" +.TH LIBPNGPF 3 "May 24, 2007" .SH NAME -libpng \- Portable Network Graphics (PNG) Reference Library 1.2.19beta9 +libpng \- Portable Network Graphics (PNG) Reference Library 1.2.19beta10 (private functions) .SH SYNOPSIS \fB#include \fP diff --git a/png.5 b/png.5 index feaabae0..fef90b2a 100644 --- a/png.5 +++ b/png.5 @@ -1,4 +1,4 @@ -.TH PNG 5 "May 23, 2007" +.TH PNG 5 "May 24, 2007" .SH NAME png \- Portable Network Graphics (PNG) format .SH DESCRIPTION diff --git a/png.c b/png.c index 7994e7b8..b27c8c6e 100644 --- a/png.c +++ b/png.c @@ -1,7 +1,7 @@ /* png.c - location for general purpose libpng functions * - * Last changed in libpng 1.2.19 May 23, 2007 + * Last changed in libpng 1.2.19 May 24, 2007 * For conditions of distribution and use, see copyright notice in png.h * Copyright (c) 1998-2007 Glenn Randers-Pehrson * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) @@ -13,7 +13,7 @@ #include "png.h" /* Generate a compiler error if there is an old png.h in the search path. */ -typedef version_1_2_19beta9 Your_png_h_is_not_version_1_2_19beta9; +typedef version_1_2_19beta10 Your_png_h_is_not_version_1_2_19beta10; /* Version information for C files. This had better match the version * string defined in png.h. */ @@ -706,7 +706,7 @@ png_charp PNGAPI png_get_copyright(png_structp png_ptr) { png_ptr = png_ptr; /* silence compiler warning about unused png_ptr */ - return ((png_charp) "\n libpng version 1.2.19beta9 - May 23, 2007\n\ + return ((png_charp) "\n libpng version 1.2.19beta10 - May 24, 2007\n\ Copyright (c) 1998-2007 Glenn Randers-Pehrson\n\ Copyright (c) 1996-1997 Andreas Dilger\n\ Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc.\n"); diff --git a/png.h b/png.h index c0f63412..ee8c1d0a 100644 --- a/png.h +++ b/png.h @@ -1,7 +1,7 @@ /* png.h - header file for PNG reference library * - * libpng version 1.2.19beta9 - May 23, 2007 + * libpng version 1.2.19beta10 - May 24, 2007 * Copyright (c) 1998-2007 Glenn Randers-Pehrson * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.) @@ -9,7 +9,7 @@ * Authors and maintainers: * libpng versions 0.71, May 1995, through 0.88, January 1996: Guy Schalnat * libpng versions 0.89c, June 1996, through 0.96, May 1997: Andreas Dilger - * libpng versions 0.97, January 1998, through 1.2.19beta9 - May 23, 2007: Glenn + * libpng versions 0.97, January 1998, through 1.2.19beta10 - May 24, 2007: Glenn * See also "Contributing Authors", below. * * Note about libpng version numbers: @@ -150,7 +150,7 @@ * 1.2.17 13 10217 12.so.0.17[.0] * 1.0.26 10 10026 10.so.0.26[.0] * 1.2.18 13 10218 12.so.0.18[.0] - * 1.2.19beta1-9 13 10219 12.so.0.19[.0] + * 1.2.19beta1-10 13 10219 12.so.0.19[.0] * * Henceforth the source version will match the shared-library major * and minor numbers; the shared-library major version number will be @@ -180,7 +180,7 @@ * If you modify libpng you may insert additional notices immediately following * this sentence. * - * libpng versions 1.2.6, August 15, 2004, through 1.2.19beta9, May 23, 2007, are + * libpng versions 1.2.6, August 15, 2004, through 1.2.19beta10, May 24, 2007, are * Copyright (c) 2004, 2006-2007 Glenn Randers-Pehrson, and are * distributed according to the same disclaimer and license as libpng-1.2.5 * with the following individual added to the list of Contributing Authors: @@ -292,13 +292,13 @@ * Y2K compliance in libpng: * ========================= * - * May 23, 2007 + * May 24, 2007 * * Since the PNG Development group is an ad-hoc body, we can't make * an official declaration. * * This is your unofficial assurance that libpng from version 0.71 and - * upward through 1.2.19beta9 are Y2K compliant. It is my belief that earlier + * upward through 1.2.19beta10 are Y2K compliant. It is my belief that earlier * versions were also Y2K compliant. * * Libpng only has three year fields. One is a 2-byte unsigned integer @@ -354,9 +354,9 @@ */ /* Version information for png.h - this should match the version in png.c */ -#define PNG_LIBPNG_VER_STRING "1.2.19beta9" +#define PNG_LIBPNG_VER_STRING "1.2.19beta10" #define PNG_HEADER_VERSION_STRING \ - " libpng version 1.2.19beta9 - May 23, 2007 (header)\n" + " libpng version 1.2.19beta10 - May 24, 2007 (header)\n" #define PNG_LIBPNG_VER_SONUM 0 #define PNG_LIBPNG_VER_DLLNUM 13 @@ -368,7 +368,7 @@ /* This should match the numeric part of the final component of * PNG_LIBPNG_VER_STRING, omitting any leading zero: */ -#define PNG_LIBPNG_VER_BUILD 9 +#define PNG_LIBPNG_VER_BUILD 10 /* Release Status */ #define PNG_LIBPNG_BUILD_ALPHA 1 @@ -1407,7 +1407,7 @@ struct png_struct_def /* This triggers a compiler error in png.c, if png.c and png.h * do not agree upon the version number. */ -typedef png_structp version_1_2_19beta9; +typedef png_structp version_1_2_19beta10; typedef png_struct FAR * FAR * png_structpp; diff --git a/pngconf.h b/pngconf.h index 743a54ae..e57df022 100644 --- a/pngconf.h +++ b/pngconf.h @@ -1,7 +1,7 @@ /* pngconf.h - machine configurable file for libpng * - * libpng version 1.2.19beta9 - May 23, 2007 + * libpng version 1.2.19beta10 - May 24, 2007 * For conditions of distribution and use, see copyright notice in png.h * Copyright (c) 1998-2007 Glenn Randers-Pehrson * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) diff --git a/pngerror.c b/pngerror.c index a631aff6..4b2aed3e 100644 --- a/pngerror.c +++ b/pngerror.c @@ -1,7 +1,7 @@ /* pngerror.c - stub functions for i/o and memory allocation * - * Last changed in libpng 1.2.19 May 23, 2007 + * Last changed in libpng 1.2.19 May 24, 2007 * For conditions of distribution and use, see copyright notice in png.h * Copyright (c) 1998-2006 Glenn Randers-Pehrson * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) diff --git a/pnggccrd.c b/pnggccrd.c index 56230cd9..f36e69a9 100644 --- a/pnggccrd.c +++ b/pnggccrd.c @@ -7,7 +7,7 @@ * and http://www.intel.com/drg/pentiumII/appnotes/923/923.htm * for Intel's performance analysis of the MMX vs. non-MMX code. * - * Last changed in libpng 1.2.19 May 23, 2007 + * Last changed in libpng 1.2.19 May 22, 2007 * For conditions of distribution and use, see copyright notice in png.h * Copyright (c) 1998-2007 Glenn Randers-Pehrson * Copyright (c) 1998, Intel Corporation @@ -225,8 +225,20 @@ * - eliminated incorrect use of width_mmx in pixel_bytes == 8 case * * 20040724: - * - more tinkering with clobber list at lines 4529 and 5033, to get - * it to compile on gcc-3.4. + * - more tinkering with clobber list at lines 4529 and 5033 to get it to + * compile with gcc 3.4 + * + * 20070313: + * - finally applied Giuseppe Ghibò's 64-bit patch of 20060803 (completely + * overlooked Dylan Alex Simon's similar patch of 20060414, oops...) + * + * 20070524: + * - fixed link failure caused by asm-only variables being optimized out + * (identified by Dimitri of TrollTech) with __attribute__((used)), which + * also gets rid of warnings => nuked ugly png_squelch_warnings() hack + * - dropped redundant ifdef + * - moved png_mmx_support() back up where originally intended (as in + * pngvcrd.c), using __attribute__((noinline)) in extra prototype * * STILL TO DO: * - test png_do_read_interlace() 64-bit case (pixel_bytes == 8) @@ -256,6 +268,7 @@ static PNG_CONST int FARDATA png_pass_width[7] = {8, 4, 4, 2, 2, 1, 1}; #endif #if defined(PNG_MMX_CODE_SUPPORTED) + /* djgpp, Win32, Cygwin, and OS2 add their own underscores to global variables, * so define them without: */ #if defined(__DJGPP__) || defined(WIN32) || defined(__CYGWIN__) || \ @@ -295,101 +308,178 @@ static PNG_CONST int FARDATA png_pass_width[7] = {8, 4, 4, 2, 2, 1, 1}; # define _pbtemp pbtemp # define _pctemp pctemp #endif -#endif +#endif // djgpp, Win32, Cygwin, OS2 -/* These constants are used in the inlined MMX assembly code. - Ignore gcc's "At top level: defined but not used" warnings. */ +/* These constants are used in the inlined MMX assembly code. */ -/* GRR 20000706: originally _unmask was needed only when compiling with -fPIC, - * since that case uses the %ebx register for indexing the Global Offset Table - * and there were no other registers available. But gcc 2.95 and later emit - * "more than 10 operands in `asm'" errors when %ebx is used to preload unmask - * in the non-PIC case, so we'll just use the global unconditionally now. - */ -#ifdef PNG_THREAD_UNSAFE_OK -static int _unmask; -#endif +typedef unsigned long long ull; -#if defined(PNG_MMX_CODE_SUPPORTED) -static PNG_CONST unsigned long long _mask8_0 = 0x0102040810204080LL; +static PNG_CONST ull _mask8_0 __attribute__((used)) = 0x0102040810204080LL; -static PNG_CONST unsigned long long _mask16_1 = 0x0101020204040808LL; -static PNG_CONST unsigned long long _mask16_0 = 0x1010202040408080LL; +static PNG_CONST ull _mask16_1 __attribute__((used)) = 0x0101020204040808LL; +static PNG_CONST ull _mask16_0 __attribute__((used)) = 0x1010202040408080LL; -static PNG_CONST unsigned long long _mask24_2 = 0x0101010202020404LL; -static PNG_CONST unsigned long long _mask24_1 = 0x0408080810101020LL; -static PNG_CONST unsigned long long _mask24_0 = 0x2020404040808080LL; +static PNG_CONST ull _mask24_2 __attribute__((used)) = 0x0101010202020404LL; +static PNG_CONST ull _mask24_1 __attribute__((used)) = 0x0408080810101020LL; +static PNG_CONST ull _mask24_0 __attribute__((used)) = 0x2020404040808080LL; -static PNG_CONST unsigned long long _mask32_3 = 0x0101010102020202LL; -static PNG_CONST unsigned long long _mask32_2 = 0x0404040408080808LL; -static PNG_CONST unsigned long long _mask32_1 = 0x1010101020202020LL; -static PNG_CONST unsigned long long _mask32_0 = 0x4040404080808080LL; +static PNG_CONST ull _mask32_3 __attribute__((used)) = 0x0101010102020202LL; +static PNG_CONST ull _mask32_2 __attribute__((used)) = 0x0404040408080808LL; +static PNG_CONST ull _mask32_1 __attribute__((used)) = 0x1010101020202020LL; +static PNG_CONST ull _mask32_0 __attribute__((used)) = 0x4040404080808080LL; -static PNG_CONST unsigned long long _mask48_5 = 0x0101010101010202LL; -static PNG_CONST unsigned long long _mask48_4 = 0x0202020204040404LL; -static PNG_CONST unsigned long long _mask48_3 = 0x0404080808080808LL; -static PNG_CONST unsigned long long _mask48_2 = 0x1010101010102020LL; -static PNG_CONST unsigned long long _mask48_1 = 0x2020202040404040LL; -static PNG_CONST unsigned long long _mask48_0 = 0x4040808080808080LL; +static PNG_CONST ull _mask48_5 __attribute__((used)) = 0x0101010101010202LL; +static PNG_CONST ull _mask48_4 __attribute__((used)) = 0x0202020204040404LL; +static PNG_CONST ull _mask48_3 __attribute__((used)) = 0x0404080808080808LL; +static PNG_CONST ull _mask48_2 __attribute__((used)) = 0x1010101010102020LL; +static PNG_CONST ull _mask48_1 __attribute__((used)) = 0x2020202040404040LL; +static PNG_CONST ull _mask48_0 __attribute__((used)) = 0x4040808080808080LL; -static PNG_CONST unsigned long long _const4 = 0x0000000000FFFFFFLL; -//static PNG_CONST unsigned long long _const5 = 0x000000FFFFFF0000LL; // NOT USED -static PNG_CONST unsigned long long _const6 = 0x00000000000000FFLL; +static PNG_CONST ull _const4 = 0x0000000000FFFFFFLL; +//static PNG_CONST ull _const5 = 0x000000FFFFFF0000LL; // NOT USED +static PNG_CONST ull _const6 = 0x00000000000000FFLL; // These are used in the row-filter routines and should/would be local -// variables if not for gcc addressing limitations. +// variables if not for gcc addressing limitations (apparently lifted +// in either 3.x or 4.x). // WARNING: Their presence probably defeats the thread safety of libpng. #ifdef PNG_THREAD_UNSAFE_OK -static png_uint_32 _FullLength; -static png_uint_32 _MMXLength; -static int _dif; -static int _patemp; // temp variables for Paeth routine -static int _pbtemp; -static int _pctemp; -#endif -#endif +// GRR 20000706: originally _unmask was needed only when compiling with -fPIC, +// since that case uses the %ebx register to index the Global Offset Table, +// and there were no other registers available. But gcc 2.95 and later emit +// "more than 10 operands in `asm'" errors when %ebx is used to preload +// unmask in non-PIC case, so we'll just use the global unconditionally now. +static int _unmask; -#ifdef PNG_SQUELCH_WARNINGS -void /* PRIVATE */ -png_squelch_warnings(void) -{ - unsigned long long junk_ll; -#ifdef PNG_THREAD_UNSAFE_OK - _dif = _dif; - _patemp = _patemp; - _pbtemp = _pbtemp; - _pctemp = _pctemp; - _MMXLength= _MMXLength; -#endif - junk_ll = _const4; - junk_ll = _const6; - junk_ll = _mask8_0; - junk_ll = _mask16_1; - junk_ll = _mask16_0; - junk_ll = _mask24_2; - junk_ll = _mask24_1; - junk_ll = _mask24_0; - junk_ll = _mask32_3; - junk_ll = _mask32_2; - junk_ll = _mask32_1; - junk_ll = _mask32_0; - junk_ll = _mask48_5; - junk_ll = _mask48_4; - junk_ll = _mask48_3; - junk_ll = _mask48_2; - junk_ll = _mask48_1; - junk_ll = _mask48_0; - junk_ll = junk_ll; -} -#endif /* PNG_SQUELCH_WARNINGS */ -#endif /* PNG_MMX_CODE_SUPPORTED */ +static png_uint_32 _FullLength; +static png_uint_32 _MMXLength __attribute__((used)); +static int _dif __attribute__((used)); +static int _patemp __attribute__((used)); // temp variables for +static int _pbtemp __attribute__((used)); // Paeth routine +static int _pctemp __attribute__((used)); +#endif // PNG_THREAD_UNSAFE_OK + +#endif // PNG_MMX_CODE_SUPPORTED static int _mmx_supported = 2; +/*===========================================================================*/ +/* */ +/* P N G _ M M X _ S U P P O R T */ +/* */ +/*===========================================================================*/ + +/* GRR NOTES: (1) the following code assumes 386 or better (pushfl/popfl) + * (2) all instructions compile with gcc 2.7.2.3 and later + * x (3) the function is moved down here to prevent gcc from + * x inlining it in multiple places and then barfing be- + * x cause the ".NOT_SUPPORTED" label is multiply defined + */ + +// GRR 20070524: This declaration apparently is compatible with but supersedes +// the one in png.h; in any case, the generated object file is slightly +// smaller. It is unnecessary with gcc 4.1.2, but gcc 2.x apparently +// replicated the ".NOT_SUPPORTED" label in each location the function was +// inlined, leading to compilation errors due to the "multiply defined" +// label. Old workaround was to leave the function at the end of this +// file; new one (still testing) is to use a gcc-specific function attribute +// to prevent inlining. +int PNGAPI +png_mmx_support(void) __attribute__((noinline)); + +int PNGAPI +png_mmx_support(void) +{ +#if defined(PNG_MMX_CODE_SUPPORTED) + int result; + __asm__ __volatile__ ( +#ifdef __x86_64__ + "pushq %%rbx \n\t" // rbx gets clobbered by CPUID instruction + "pushq %%rcx \n\t" // so does rcx... + "pushq %%rdx \n\t" // ...and rdx (but rcx & rdx safe on Linux) + "pushfq \n\t" // save Eflag to stack + "popq %%rax \n\t" // get Eflag from stack into rax + "movq %%rax, %%rcx \n\t" // make another copy of Eflag in rcx + "xorl $0x200000, %%eax \n\t" // toggle ID bit in Eflag (i.e., bit 21) + "pushq %%rax \n\t" // save modified Eflag back to stack + "popfq \n\t" // restore modified value to Eflag reg + "pushfq \n\t" // save Eflag to stack + "popq %%rax \n\t" // get Eflag from stack + "pushq %%rcx \n\t" // save original Eflag to stack + "popfq \n\t" // restore original Eflag +#else + "pushl %%ebx \n\t" // ebx gets clobbered by CPUID instruction + "pushl %%ecx \n\t" // so does ecx... + "pushl %%edx \n\t" // ...and edx (but ecx & edx safe on Linux) + "pushfl \n\t" // save Eflag to stack + "popl %%eax \n\t" // get Eflag from stack into eax + "movl %%eax, %%ecx \n\t" // make another copy of Eflag in ecx + "xorl $0x200000, %%eax \n\t" // toggle ID bit in Eflag (i.e., bit 21) + "pushl %%eax \n\t" // save modified Eflag back to stack + "popfl \n\t" // restore modified value to Eflag reg + "pushfl \n\t" // save Eflag to stack + "popl %%eax \n\t" // get Eflag from stack + "pushl %%ecx \n\t" // save original Eflag to stack + "popfl \n\t" // restore original Eflag +#endif + "xorl %%ecx, %%eax \n\t" // compare new Eflag with original Eflag + "jz 0f \n\t" // if same, CPUID instr. is not supported + + "xorl %%eax, %%eax \n\t" // set eax to zero +// ".byte 0x0f, 0xa2 \n\t" // CPUID instruction (two-byte opcode) + "cpuid \n\t" // get the CPU identification info + "cmpl $1, %%eax \n\t" // make sure eax return non-zero value + "jl 0f \n\t" // if eax is zero, MMX is not supported + + "xorl %%eax, %%eax \n\t" // set eax to zero and... + "incl %%eax \n\t" // ...increment eax to 1. This pair is + // faster than the instruction "mov eax, 1" + "cpuid \n\t" // get the CPU identification info again + "andl $0x800000, %%edx \n\t" // mask out all bits but MMX bit (23) + "cmpl $0, %%edx \n\t" // 0 = MMX not supported + "jz 0f \n\t" // non-zero = yes, MMX IS supported + + "movl $1, %%eax \n\t" // set return value to 1 + "jmp 1f \n\t" // DONE: have MMX support + + "0: \n\t" // .NOT_SUPPORTED: target label for jump instructions + "movl $0, %%eax \n\t" // set return value to 0 + "1: \n\t" // .RETURN: target label for jump instructions +#ifdef __x86_64__ + "popq %%rdx \n\t" // restore rdx + "popq %%rcx \n\t" // restore rcx + "popq %%rbx \n\t" // restore rbx +#else + "popl %%edx \n\t" // restore edx + "popl %%ecx \n\t" // restore ecx + "popl %%ebx \n\t" // restore ebx +#endif + +// "ret \n\t" // DONE: no MMX support + // (fall through to standard C "ret") + + : "=a" (result) // output list + + : // any variables used on input (none) + + // no clobber list +// , "%ebx", "%ecx", "%edx" // GRR: we handle these manually +// , "memory" // if write to a variable gcc thought was in a reg +// , "cc" // "condition codes" (flag bits) + ); + _mmx_supported = result; +#else + _mmx_supported = 0; +#endif /* PNG_MMX_CODE_SUPPORTED */ + + return _mmx_supported; +} + + /*===========================================================================*/ /* */ /* P N G _ C O M B I N E _ R O W */ @@ -1746,7 +1836,7 @@ png_do_read_interlace(png_structp png_ptr) int dummy_value_c; // fix 'forbidden register spilled' int dummy_value_S; int dummy_value_D; - int dummy_value_a; + long dummy_value_a; __asm__ __volatile__ ( "subl $21, %%edi \n\t" @@ -1799,7 +1889,7 @@ png_do_read_interlace(png_structp png_ptr) int dummy_value_c; // fix 'forbidden register spilled' int dummy_value_S; int dummy_value_D; - int dummy_value_a; + long dummy_value_a; __asm__ __volatile__ ( "subl $9, %%edi \n\t" @@ -1853,8 +1943,8 @@ png_do_read_interlace(png_structp png_ptr) int dummy_value_c; // fix 'forbidden register spilled' int dummy_value_S; int dummy_value_D; - int dummy_value_a; - int dummy_value_d; + long dummy_value_a; + long dummy_value_d; __asm__ __volatile__ ( "subl $3, %%esi \n\t" @@ -2802,8 +2892,12 @@ png_read_filter_row_mmx_avg(png_row_infop row_info, png_bytep row, __asm__ __volatile__ ( // initialize address pointers and offset #ifdef __PIC__ +#ifdef __x86_64__ + "pushq %%rbx \n\t" // save index to Global Offset Table +#else "pushl %%ebx \n\t" // save index to Global Offset Table #endif +#endif //pre "movl row, %%edi \n\t" // edi: Avg(x) "xorl %%ebx, %%ebx \n\t" // ebx: x "movl %%edi, %%edx \n\t" @@ -2858,7 +2952,11 @@ png_read_filter_row_mmx_avg(png_row_infop row_info, png_bytep row, "subl %%eax, %%ecx \n\t" // drop over bytes from original length "movl %%ecx, _MMXLength \n\t" #ifdef __PIC__ +#ifdef __x86_64__ + "popq %%rbx \n\t" // restore index to Global Offset Table +#else "popl %%ebx \n\t" // restore index to Global Offset Table +#endif #endif : "=c" (dummy_value_c), // output regs (dummy) @@ -3234,7 +3332,11 @@ png_read_filter_row_mmx_avg(png_row_infop row_info, png_bytep row, __asm__ __volatile__ ( // re-init address pointers and offset #ifdef __PIC__ +#ifdef __x86_64__ + "pushq %%rbx \n\t" // save Global Offset Table index +#else "pushl %%ebx \n\t" // save Global Offset Table index +#endif #endif "movl _dif, %%ebx \n\t" // ebx: x = offset to alignment // boundary @@ -3265,7 +3367,11 @@ png_read_filter_row_mmx_avg(png_row_infop row_info, png_bytep row, "avg_1end: \n\t" #ifdef __PIC__ +#ifdef __x86_64 + "popq %%rbx \n\t" // Global Offset Table index +#else "popl %%ebx \n\t" // Global Offset Table index +#endif #endif : "=c" (dummy_value_c), // output regs (dummy) @@ -3394,7 +3500,11 @@ png_read_filter_row_mmx_avg(png_row_infop row_info, png_bytep row, // MMX acceleration complete; now do clean-up // check if any remaining bytes left to decode #ifdef __PIC__ +#ifdef __x86_64__ + "pushq %%rbx \n\t" // save index to Global Offset Table +#else "pushl %%ebx \n\t" // save index to Global Offset Table +#endif #endif "movl _MMXLength, %%ebx \n\t" // ebx: x == offset bytes after MMX //pre "movl row, %%edi \n\t" // edi: Avg(x) @@ -3424,7 +3534,11 @@ png_read_filter_row_mmx_avg(png_row_infop row_info, png_bytep row, "avg_end: \n\t" "EMMS \n\t" // end MMX; prep for poss. FP instrs. #ifdef __PIC__ +#ifdef __x86_64__ + "popq %%rbx \n\t" // restore index to Global Offset Table +#else "popl %%ebx \n\t" // restore index to Global Offset Table +#endif #endif : "=c" (dummy_value_c), // output regs (dummy) @@ -3469,7 +3583,11 @@ png_read_filter_row_mmx_paeth(png_row_infop row_info, png_bytep row, __asm__ __volatile__ ( #ifdef __PIC__ +#ifdef __x86_64__ + "pushq %%rbx \n\t" // save index to Global Offset Table +#else "pushl %%ebx \n\t" // save index to Global Offset Table +#endif #endif "xorl %%ebx, %%ebx \n\t" // ebx: x offset //pre "movl row, %%edi \n\t" @@ -3579,7 +3697,11 @@ png_read_filter_row_mmx_paeth(png_row_infop row_info, png_bytep row, "subl %%eax, %%ecx \n\t" // drop over bytes from original length "movl %%ecx, _MMXLength \n\t" #ifdef __PIC__ +#ifdef __x86_64__ + "popq %%rbx \n\t" // restore index to Global Offset Table +#else "popl %%ebx \n\t" // restore index to Global Offset Table +#endif #endif : "=c" (dummy_value_c), // output regs (dummy) @@ -4279,7 +4401,11 @@ png_read_filter_row_mmx_paeth(png_row_infop row_info, png_bytep row, { __asm__ __volatile__ ( #ifdef __PIC__ +#ifdef __x86_64__ + "pushq %%rbx \n\t" // save Global Offset Table index +#else "pushl %%ebx \n\t" // save Global Offset Table index +#endif #endif "movl _dif, %%ebx \n\t" "cmpl _FullLength, %%ebx \n\t" @@ -4366,7 +4492,11 @@ png_read_filter_row_mmx_paeth(png_row_infop row_info, png_bytep row, "paeth_dend: \n\t" #ifdef __PIC__ +#ifdef __x86_64__ + "popq %%rbx \n\t" // index to Global Offset Table +#else "popl %%ebx \n\t" // index to Global Offset Table +#endif #endif : "=c" (dummy_value_c), // output regs (dummy) @@ -4391,7 +4521,11 @@ png_read_filter_row_mmx_paeth(png_row_infop row_info, png_bytep row, // MMX acceleration complete; now do clean-up // check if any remaining bytes left to decode #ifdef __PIC__ +#ifdef __x86_64__ + "pushq %%rbx \n\t" // save index to Global Offset Table +#else "pushl %%ebx \n\t" // save index to Global Offset Table +#endif #endif "movl _MMXLength, %%ebx \n\t" "cmpl _FullLength, %%ebx \n\t" @@ -4478,7 +4612,11 @@ png_read_filter_row_mmx_paeth(png_row_infop row_info, png_bytep row, "paeth_end: \n\t" "EMMS \n\t" // end MMX; prep for poss. FP instrs. #ifdef __PIC__ +#ifdef __x86_64__ + "popq %%rbx \n\t" // restore index to Global Offset Table +#else "popl %%ebx \n\t" // restore index to Global Offset Table +#endif #endif : "=c" (dummy_value_c), // output regs (dummy) @@ -4947,7 +5085,11 @@ png_read_filter_row_mmx_up(png_row_infop row_info, png_bytep row, //pre "movl row, %%edi \n\t" // get # of bytes to alignment #ifdef __PIC__ +#ifdef __x86_64__ + "pushq %%rbx \n\t" +#else "pushl %%ebx \n\t" +#endif #endif "movl %%edi, %%ecx \n\t" "xorl %%ebx, %%ebx \n\t" @@ -5049,7 +5191,11 @@ png_read_filter_row_mmx_up(png_row_infop row_info, png_bytep row, "up_end: \n\t" "EMMS \n\t" // conversion of filtered row complete #ifdef __PIC__ +#ifdef __x86_64__ + "popq %%rbx \n\t" +#else "popl %%ebx \n\t" +#endif #endif : "=d" (dummy_value_d), // 0 // output regs (dummy) @@ -5336,92 +5482,6 @@ png_read_filter_row(png_structp png_ptr, png_row_infop row_info, png_bytep #endif /* PNG_HAVE_MMX_READ_FILTER_ROW */ -/*===========================================================================*/ -/* */ -/* P N G _ M M X _ S U P P O R T */ -/* */ -/*===========================================================================*/ - -/* GRR NOTES: (1) the following code assumes 386 or better (pushfl/popfl) - * (2) all instructions compile with gcc 2.7.2.3 and later - * (3) the function is moved down here to prevent gcc from - * inlining it in multiple places and then barfing be- - * cause the ".NOT_SUPPORTED" label is multiply defined - * [is there a way to signal that a *single* function should - * not be inlined? is there a way to modify the label for - * each inlined instance, e.g., by appending _1, _2, etc.? - * maybe if don't use leading "." in label name? (nope...sigh)] - */ - -int PNGAPI -png_mmx_support(void) -{ -#if defined(PNG_MMX_CODE_SUPPORTED) - int result; - __asm__ __volatile__ ( - "pushl %%ebx \n\t" // ebx gets clobbered by CPUID instruction - "pushl %%ecx \n\t" // so does ecx... - "pushl %%edx \n\t" // ...and edx (but ecx & edx safe on Linux) -// ".byte 0x66 \n\t" // convert 16-bit pushf to 32-bit pushfd -// "pushf \n\t" // 16-bit pushf - "pushfl \n\t" // save Eflag to stack - "popl %%eax \n\t" // get Eflag from stack into eax - "movl %%eax, %%ecx \n\t" // make another copy of Eflag in ecx - "xorl $0x200000, %%eax \n\t" // toggle ID bit in Eflag (i.e., bit 21) - "pushl %%eax \n\t" // save modified Eflag back to stack -// ".byte 0x66 \n\t" // convert 16-bit popf to 32-bit popfd -// "popf \n\t" // 16-bit popf - "popfl \n\t" // restore modified value to Eflag reg - "pushfl \n\t" // save Eflag to stack - "popl %%eax \n\t" // get Eflag from stack - "pushl %%ecx \n\t" // save original Eflag to stack - "popfl \n\t" // restore original Eflag - "xorl %%ecx, %%eax \n\t" // compare new Eflag with original Eflag - "jz 0f \n\t" // if same, CPUID instr. is not supported - - "xorl %%eax, %%eax \n\t" // set eax to zero -// ".byte 0x0f, 0xa2 \n\t" // CPUID instruction (two-byte opcode) - "cpuid \n\t" // get the CPU identification info - "cmpl $1, %%eax \n\t" // make sure eax return non-zero value - "jl 0f \n\t" // if eax is zero, MMX is not supported - - "xorl %%eax, %%eax \n\t" // set eax to zero and... - "incl %%eax \n\t" // ...increment eax to 1. This pair is - // faster than the instruction "mov eax, 1" - "cpuid \n\t" // get the CPU identification info again - "andl $0x800000, %%edx \n\t" // mask out all bits but MMX bit (23) - "cmpl $0, %%edx \n\t" // 0 = MMX not supported - "jz 0f \n\t" // non-zero = yes, MMX IS supported - - "movl $1, %%eax \n\t" // set return value to 1 - "jmp 1f \n\t" // DONE: have MMX support - - "0: \n\t" // .NOT_SUPPORTED: target label for jump instructions - "movl $0, %%eax \n\t" // set return value to 0 - "1: \n\t" // .RETURN: target label for jump instructions - "popl %%edx \n\t" // restore edx - "popl %%ecx \n\t" // restore ecx - "popl %%ebx \n\t" // restore ebx - -// "ret \n\t" // DONE: no MMX support - // (fall through to standard C "ret") - - : "=a" (result) // output list - - : // any variables used on input (none) - - // no clobber list -// , "%ebx", "%ecx", "%edx" // GRR: we handle these manually -// , "memory" // if write to a variable gcc thought was in a reg -// , "cc" // "condition codes" (flag bits) - ); - _mmx_supported = result; -#else - _mmx_supported = 0; -#endif /* PNG_MMX_CODE_SUPPORTED */ - - return _mmx_supported; -} - - #endif /* PNG_USE_PNGGCCRD */ + + diff --git a/pngpread.c b/pngpread.c index 0637118a..5bb0d69b 100644 --- a/pngpread.c +++ b/pngpread.c @@ -1,7 +1,7 @@ /* pngpread.c - read a png file in push mode * - * Last changed in libpng 1.2.19 May 23, 2007 + * Last changed in libpng 1.2.19 May 24, 2007 * For conditions of distribution and use, see copyright notice in png.h * Copyright (c) 1998-2007 Glenn Randers-Pehrson * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) diff --git a/pngread.c b/pngread.c index 21ad84a3..408d270f 100644 --- a/pngread.c +++ b/pngread.c @@ -1,7 +1,7 @@ /* pngread.c - read a PNG file * - * Last changed in libpng 1.2.19 May 23, 2007 + * Last changed in libpng 1.2.19 May 24, 2007 * For conditions of distribution and use, see copyright notice in png.h * Copyright (c) 1998-2007 Glenn Randers-Pehrson * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) diff --git a/pngrtran.c b/pngrtran.c index 86ad5cca..82608d77 100644 --- a/pngrtran.c +++ b/pngrtran.c @@ -1,7 +1,7 @@ /* pngrtran.c - transforms the data in a row for PNG readers * - * Last changed in libpng 1.2.19 May 23, 2007 + * Last changed in libpng 1.2.19 May 24, 2007 * For conditions of distribution and use, see copyright notice in png.h * Copyright (c) 1998-2007 Glenn Randers-Pehrson * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) diff --git a/pngrutil.c b/pngrutil.c index 7e68068e..3353f250 100644 --- a/pngrutil.c +++ b/pngrutil.c @@ -1,7 +1,7 @@ /* pngrutil.c - utilities to read a PNG file * - * Last changed in libpng 1.2.19 May 23, 2007 + * Last changed in libpng 1.2.19 May 24, 2007 * For conditions of distribution and use, see copyright notice in png.h * Copyright (c) 1998-2007 Glenn Randers-Pehrson * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) diff --git a/pngtest.c b/pngtest.c index 3cf642d4..7859e8bb 100644 --- a/pngtest.c +++ b/pngtest.c @@ -1551,4 +1551,4 @@ main(int argc, char *argv[]) } /* Generate a compiler error if there is an old png.h in the search path. */ -typedef version_1_2_19beta9 your_png_h_is_not_version_1_2_19beta9; +typedef version_1_2_19beta10 your_png_h_is_not_version_1_2_19beta10; diff --git a/pngvcrd.c b/pngvcrd.c index d55e2f54..811cd0dd 100644 --- a/pngvcrd.c +++ b/pngvcrd.c @@ -3,7 +3,7 @@ * * For Intel x86 CPU and Microsoft Visual C++ compiler * - * Last changed in libpng 1.2.19 May 23, 2007 + * Last changed in libpng 1.2.19 May 24, 2007 * For conditions of distribution and use, see copyright notice in png.h * Copyright (c) 1998-2007 Glenn Randers-Pehrson * Copyright (c) 1998, Intel Corporation diff --git a/pngwutil.c b/pngwutil.c index 2120672a..990fe4f4 100644 --- a/pngwutil.c +++ b/pngwutil.c @@ -1,7 +1,7 @@ /* pngwutil.c - utilities to write a PNG file * - * Last changed in libpng 1.2.19 May 23, 2007 + * Last changed in libpng 1.2.19 May 24, 2007 * For conditions of distribution and use, see copyright notice in png.h * Copyright (c) 1998-2007 Glenn Randers-Pehrson * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) diff --git a/scripts/CMakeLists.txt b/scripts/CMakeLists.txt index e777dd04..66697f89 100644 --- a/scripts/CMakeLists.txt +++ b/scripts/CMakeLists.txt @@ -179,7 +179,7 @@ configure_file(${PNG_SOURCE_DIR}/scripts/libpng-config.in # SET UP LINKS set_target_properties(${PNG_LIB_NAME} PROPERTIES -# VERSION 0.${PNGLIB_RELEASE}.1.2.19beta9 +# VERSION 0.${PNGLIB_RELEASE}.1.2.19beta10 VERSION 0.${PNGLIB_RELEASE}.0 SOVERSION 0 CLEAN_DIRECT_OUTPUT 1) diff --git a/scripts/libpng-config-head.in b/scripts/libpng-config-head.in index 1c28c32c..2bb67d8a 100755 --- a/scripts/libpng-config-head.in +++ b/scripts/libpng-config-head.in @@ -8,7 +8,7 @@ # Modeled after libxml-config. -version=1.2.19beta9 +version=1.2.19beta10 prefix="" libdir="" libs="" diff --git a/scripts/libpng.pc-configure.in b/scripts/libpng.pc-configure.in index 17b00645..84ba2b58 100644 --- a/scripts/libpng.pc-configure.in +++ b/scripts/libpng.pc-configure.in @@ -5,6 +5,6 @@ includedir=@includedir@/libpng12 Name: libpng Description: Loads and saves PNG files -Version: 1.2.19beta9 +Version: 1.2.19beta10 Libs: -L${libdir} -lpng12 Cflags: -I${includedir} @LIBPNG_NO_MMX@ diff --git a/scripts/libpng.pc.in b/scripts/libpng.pc.in index afb84efe..40aa4261 100644 --- a/scripts/libpng.pc.in +++ b/scripts/libpng.pc.in @@ -5,6 +5,6 @@ includedir=@includedir@/libpng12 Name: libpng Description: Loads and saves PNG files -Version: 1.2.19beta9 +Version: 1.2.19beta10 Libs: -L${libdir} -lpng12 Cflags: -I${includedir} diff --git a/scripts/makefile.32sunu b/scripts/makefile.32sunu index f5866daa..62585d93 100644 --- a/scripts/makefile.32sunu +++ b/scripts/makefile.32sunu @@ -8,7 +8,7 @@ # Library name: LIBNAME=libpng12 PNGMAJ = 0 -PNGMIN = 1.2.19beta9 +PNGMIN = 1.2.19beta10 PNGVER = $(PNGMAJ).$(PNGMIN) # Shared library names: diff --git a/scripts/makefile.64sunu b/scripts/makefile.64sunu index 9bc070d2..68f6a19a 100644 --- a/scripts/makefile.64sunu +++ b/scripts/makefile.64sunu @@ -8,7 +8,7 @@ # Library name: LIBNAME=libpng12 PNGMAJ = 0 -PNGMIN = 1.2.19beta9 +PNGMIN = 1.2.19beta10 PNGVER = $(PNGMAJ).$(PNGMIN) # Shared library names: diff --git a/scripts/makefile.aix b/scripts/makefile.aix index ad1e193d..6fbefab5 100644 --- a/scripts/makefile.aix +++ b/scripts/makefile.aix @@ -20,7 +20,7 @@ LN_SF = ln -f -s LIBNAME=libpng12 PNGMAJ = 0 -PNGMIN = 1.2.19beta9 +PNGMIN = 1.2.19beta10 PNGVER = $(PNGMAJ).$(PNGMIN) prefix=/usr/local diff --git a/scripts/makefile.beos b/scripts/makefile.beos index 550fe371..f3c04471 100644 --- a/scripts/makefile.beos +++ b/scripts/makefile.beos @@ -8,7 +8,7 @@ # Library name: LIBNAME=libpng12 PNGMAJ = 0 -PNGMIN = 1.2.19beta9 +PNGMIN = 1.2.19beta10 PNGVER = $(PNGMAJ).$(PNGMIN) # Shared library names: diff --git a/scripts/makefile.cygwin b/scripts/makefile.cygwin index b2f7d822..6a7f32e6 100644 --- a/scripts/makefile.cygwin +++ b/scripts/makefile.cygwin @@ -80,7 +80,7 @@ CFLAGS= $(strip $(MINGW_CCFLAGS) $(addprefix -I,$(ZLIBINC)) \ LIBNAME = libpng12 PNGMAJ = 0 CYGDLL = 12 -PNGMIN = 1.2.19beta9 +PNGMIN = 1.2.19beta10 PNGVER = $(PNGMAJ).$(PNGMIN) SHAREDLIB=cygpng$(CYGDLL).dll diff --git a/scripts/makefile.darwin b/scripts/makefile.darwin index 62c27bd7..b42cdd93 100644 --- a/scripts/makefile.darwin +++ b/scripts/makefile.darwin @@ -19,7 +19,7 @@ ZLIBINC=../zlib # Library name: LIBNAME = libpng12 PNGMAJ = 0 -PNGMIN = 1.2.19beta9 +PNGMIN = 1.2.19beta10 PNGVER = $(PNGMAJ).$(PNGMIN) # Shared library names: diff --git a/scripts/makefile.dec b/scripts/makefile.dec index a92ac9ec..25afa557 100644 --- a/scripts/makefile.dec +++ b/scripts/makefile.dec @@ -5,7 +5,7 @@ # Library name: PNGMAJ = 0 -PNGMIN = 1.2.19beta9 +PNGMIN = 1.2.19beta10 PNGVER = $(PNGMAJ).$(PNGMIN) LIBNAME = libpng12 diff --git a/scripts/makefile.elf b/scripts/makefile.elf index fe61c142..1a30ff8c 100644 --- a/scripts/makefile.elf +++ b/scripts/makefile.elf @@ -12,7 +12,7 @@ # Library name: LIBNAME = libpng12 PNGMAJ = 0 -PNGMIN = 1.2.19beta9 +PNGMIN = 1.2.19beta10 PNGVER = $(PNGMAJ).$(PNGMIN) # Shared library names: diff --git a/scripts/makefile.gcmmx b/scripts/makefile.gcmmx index 05522528..52cb6c31 100644 --- a/scripts/makefile.gcmmx +++ b/scripts/makefile.gcmmx @@ -16,7 +16,7 @@ # Library name: LIBNAME = libpng12 PNGMAJ = 0 -PNGMIN = 1.2.19beta9 +PNGMIN = 1.2.19beta10 PNGVER = $(PNGMAJ).$(PNGMIN) # Shared library names: diff --git a/scripts/makefile.hp64 b/scripts/makefile.hp64 index 9c1b42bc..9ac04df7 100644 --- a/scripts/makefile.hp64 +++ b/scripts/makefile.hp64 @@ -18,7 +18,7 @@ ZLIBINC=/opt/zlib/include # Library name: LIBNAME = libpng12 PNGMAJ = 0 -PNGMIN = 1.2.19beta9 +PNGMIN = 1.2.19beta10 PNGVER = $(PNGMAJ).$(PNGMIN) # Shared library names: diff --git a/scripts/makefile.hpgcc b/scripts/makefile.hpgcc index 8d681d2e..15a0d732 100644 --- a/scripts/makefile.hpgcc +++ b/scripts/makefile.hpgcc @@ -8,7 +8,7 @@ # Library name: LIBNAME = libpng12 PNGMAJ = 0 -PNGMIN = 1.2.19beta9 +PNGMIN = 1.2.19beta10 PNGVER = $(PNGMAJ).$(PNGMIN) # Shared library names: diff --git a/scripts/makefile.hpux b/scripts/makefile.hpux index cd2a414c..7664ce2f 100644 --- a/scripts/makefile.hpux +++ b/scripts/makefile.hpux @@ -18,7 +18,7 @@ ZLIBINC=/opt/zlib/include # Library name: LIBNAME = libpng12 PNGMAJ = 0 -PNGMIN = 1.2.19beta9 +PNGMIN = 1.2.19beta10 PNGVER = $(PNGMAJ).$(PNGMIN) # Shared library names: diff --git a/scripts/makefile.linux b/scripts/makefile.linux index ecc24828..c84fb3d6 100644 --- a/scripts/makefile.linux +++ b/scripts/makefile.linux @@ -6,7 +6,7 @@ # Library name: LIBNAME = libpng12 PNGMAJ = 0 -PNGMIN = 1.2.19beta9 +PNGMIN = 1.2.19beta10 PNGVER = $(PNGMAJ).$(PNGMIN) # Shared library names: diff --git a/scripts/makefile.mingw b/scripts/makefile.mingw index f8b2e2e5..30af8bcb 100644 --- a/scripts/makefile.mingw +++ b/scripts/makefile.mingw @@ -76,7 +76,7 @@ CFLAGS= $(strip $(MINGW_CCFLAGS) $(addprefix -I,$(ZLIBINC)) \ LIBNAME = libpng12 PNGMAJ = 0 MINGDLL = 12 -PNGMIN = 1.2.19beta9 +PNGMIN = 1.2.19beta10 PNGVER = $(PNGMAJ).$(PNGMIN) SHAREDLIB=libpng$(MINGDLL).dll diff --git a/scripts/makefile.ne12bsd b/scripts/makefile.ne12bsd index afb635d7..0d017e5b 100644 --- a/scripts/makefile.ne12bsd +++ b/scripts/makefile.ne12bsd @@ -14,7 +14,7 @@ INCSDIR=${LOCALBASE}/include/libpng12 LIB= png12 SHLIB_MAJOR= 0 -SHLIB_MINOR= 1.2.19beta9 +SHLIB_MINOR= 1.2.19beta10 SRCS= pnggccrd.c png.c pngset.c pngget.c pngrutil.c pngtrans.c pngwutil.c \ pngread.c pngrio.c pngwio.c pngwrite.c pngrtran.c \ pngwtran.c pngmem.c pngerror.c pngpread.c diff --git a/scripts/makefile.netbsd b/scripts/makefile.netbsd index 842465cf..74052380 100644 --- a/scripts/makefile.netbsd +++ b/scripts/makefile.netbsd @@ -14,7 +14,7 @@ INCSDIR=${LOCALBASE}/include/libpng LIB= png SHLIB_MAJOR= 3 -SHLIB_MINOR= 1.2.19beta9 +SHLIB_MINOR= 1.2.19beta10 SRCS= pnggccrd.c png.c pngset.c pngget.c pngrutil.c pngtrans.c pngwutil.c \ pngread.c pngrio.c pngwio.c pngwrite.c pngrtran.c \ pngwtran.c pngmem.c pngerror.c pngpread.c diff --git a/scripts/makefile.nommx b/scripts/makefile.nommx index ecb7ce40..ac9c9662 100644 --- a/scripts/makefile.nommx +++ b/scripts/makefile.nommx @@ -7,7 +7,7 @@ # Library name: LIBNAME = libpng12 PNGMAJ = 0 -PNGMIN = 1.2.19beta9 +PNGMIN = 1.2.19beta10 PNGVER = $(PNGMAJ).$(PNGMIN) # Shared library names: diff --git a/scripts/makefile.openbsd b/scripts/makefile.openbsd index 4a4065fa..1ee7e942 100644 --- a/scripts/makefile.openbsd +++ b/scripts/makefile.openbsd @@ -8,7 +8,7 @@ LIBDIR= ${PREFIX}/lib MANDIR= ${PREFIX}/man/cat SHLIB_MAJOR= 0 -SHLIB_MINOR= 1.2.19beta9 +SHLIB_MINOR= 1.2.19beta10 LIB= png SRCS= png.c pngerror.c pnggccrd.c pngget.c pngmem.c pngpread.c \ diff --git a/scripts/makefile.sco b/scripts/makefile.sco index 4065b385..a6e37a23 100644 --- a/scripts/makefile.sco +++ b/scripts/makefile.sco @@ -9,7 +9,7 @@ # Library name: LIBNAME = libpng12 PNGMAJ = 0 -PNGMIN = 1.2.19beta9 +PNGMIN = 1.2.19beta10 PNGVER = $(PNGMAJ).$(PNGMIN) # Shared library names: diff --git a/scripts/makefile.sggcc b/scripts/makefile.sggcc index 1ab49008..d98dee8b 100644 --- a/scripts/makefile.sggcc +++ b/scripts/makefile.sggcc @@ -6,7 +6,7 @@ # Library name: LIBNAME=libpng12 PNGMAJ = 0 -PNGMIN = 1.2.19beta9 +PNGMIN = 1.2.19beta10 PNGVER = $(PNGMAJ).$(PNGMIN) # Shared library names: diff --git a/scripts/makefile.sgi b/scripts/makefile.sgi index 5a884724..cd574d14 100644 --- a/scripts/makefile.sgi +++ b/scripts/makefile.sgi @@ -6,7 +6,7 @@ # Library name: LIBNAME=libpng12 PNGMAJ = 0 -PNGMIN = 1.2.19beta9 +PNGMIN = 1.2.19beta10 PNGVER = $(PNGMAJ).$(PNGMIN) # Shared library names: diff --git a/scripts/makefile.so9 b/scripts/makefile.so9 index 77915509..933eca11 100644 --- a/scripts/makefile.so9 +++ b/scripts/makefile.so9 @@ -8,7 +8,7 @@ # Library name: PNGMAJ = 0 -PNGMIN = 1.2.19beta9 +PNGMIN = 1.2.19beta10 PNGVER = $(PNGMAJ).$(PNGMIN) LIBNAME = libpng12 diff --git a/scripts/makefile.solaris b/scripts/makefile.solaris index 9e95abcd..b89beecf 100644 --- a/scripts/makefile.solaris +++ b/scripts/makefile.solaris @@ -8,7 +8,7 @@ # Library name: LIBNAME = libpng12 PNGMAJ = 0 -PNGMIN = 1.2.19beta9 +PNGMIN = 1.2.19beta10 PNGVER = $(PNGMAJ).$(PNGMIN) # Shared library names: diff --git a/scripts/makefile.solaris-x86 b/scripts/makefile.solaris-x86 index d5560aeb..8bd77320 100644 --- a/scripts/makefile.solaris-x86 +++ b/scripts/makefile.solaris-x86 @@ -8,7 +8,7 @@ # Library name: LIBNAME = libpng12 PNGMAJ = 0 -PNGMIN = 1.2.19beta9 +PNGMIN = 1.2.19beta10 PNGVER = $(PNGMAJ).$(PNGMIN) # Shared library names: diff --git a/scripts/pngos2.def b/scripts/pngos2.def index af092f4d..1a3795c1 100644 --- a/scripts/pngos2.def +++ b/scripts/pngos2.def @@ -2,7 +2,7 @@ ; PNG.LIB module definition file for OS/2 ;---------------------------------------- -; Version 1.2.19beta9 +; Version 1.2.19beta10 LIBRARY PNG DESCRIPTION "PNG image compression library for OS/2" diff --git a/scripts/pngw32.def b/scripts/pngw32.def index 2f2631c9..243bf313 100644 --- a/scripts/pngw32.def +++ b/scripts/pngw32.def @@ -5,7 +5,7 @@ LIBRARY EXPORTS -;Version 1.2.19beta9 +;Version 1.2.19beta10 png_build_grayscale_palette @1 png_check_sig @2 png_chunk_error @3