Imported from libpng-1.2.19beta10.tar

This commit is contained in:
Glenn Randers-Pehrson 2007-05-24 06:06:08 -05:00
parent d0be8e27de
commit c1523ad16d
55 changed files with 352 additions and 286 deletions

View File

@ -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

View File

@ -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

20
INSTALL
View File

@ -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

View File

@ -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

View File

@ -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

14
README
View File

@ -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

View File

@ -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

22
configure vendored
View File

@ -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 <png-mng-implement@lists.sourceforge.net>.
#
@ -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 <bug-autoconf@gnu.org>."
_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'`\\"

View File

@ -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

View File

@ -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
<glennrp at users.sourceforge.net>
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

View File

@ -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 <png.h>\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
<glennrp at users.sourceforge.net>
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

View File

@ -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 <png.h>\fP

2
png.5
View File

@ -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

6
png.c
View File

@ -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");

20
png.h
View File

@ -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;

View File

@ -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)

View File

@ -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)

View File

@ -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 */

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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;

View File

@ -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

View File

@ -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)

View File

@ -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)

View File

@ -8,7 +8,7 @@
# Modeled after libxml-config.
version=1.2.19beta9
version=1.2.19beta10
prefix=""
libdir=""
libs=""

View File

@ -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@

View File

@ -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}

View File

@ -8,7 +8,7 @@
# Library name:
LIBNAME=libpng12
PNGMAJ = 0
PNGMIN = 1.2.19beta9
PNGMIN = 1.2.19beta10
PNGVER = $(PNGMAJ).$(PNGMIN)
# Shared library names:

View File

@ -8,7 +8,7 @@
# Library name:
LIBNAME=libpng12
PNGMAJ = 0
PNGMIN = 1.2.19beta9
PNGMIN = 1.2.19beta10
PNGVER = $(PNGMAJ).$(PNGMIN)
# Shared library names:

View File

@ -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

View File

@ -8,7 +8,7 @@
# Library name:
LIBNAME=libpng12
PNGMAJ = 0
PNGMIN = 1.2.19beta9
PNGMIN = 1.2.19beta10
PNGVER = $(PNGMAJ).$(PNGMIN)
# Shared library names:

View File

@ -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

View File

@ -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:

View File

@ -5,7 +5,7 @@
# Library name:
PNGMAJ = 0
PNGMIN = 1.2.19beta9
PNGMIN = 1.2.19beta10
PNGVER = $(PNGMAJ).$(PNGMIN)
LIBNAME = libpng12

View File

@ -12,7 +12,7 @@
# Library name:
LIBNAME = libpng12
PNGMAJ = 0
PNGMIN = 1.2.19beta9
PNGMIN = 1.2.19beta10
PNGVER = $(PNGMAJ).$(PNGMIN)
# Shared library names:

View File

@ -16,7 +16,7 @@
# Library name:
LIBNAME = libpng12
PNGMAJ = 0
PNGMIN = 1.2.19beta9
PNGMIN = 1.2.19beta10
PNGVER = $(PNGMAJ).$(PNGMIN)
# Shared library names:

View File

@ -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:

View File

@ -8,7 +8,7 @@
# Library name:
LIBNAME = libpng12
PNGMAJ = 0
PNGMIN = 1.2.19beta9
PNGMIN = 1.2.19beta10
PNGVER = $(PNGMAJ).$(PNGMIN)
# Shared library names:

View File

@ -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:

View File

@ -6,7 +6,7 @@
# Library name:
LIBNAME = libpng12
PNGMAJ = 0
PNGMIN = 1.2.19beta9
PNGMIN = 1.2.19beta10
PNGVER = $(PNGMAJ).$(PNGMIN)
# Shared library names:

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -7,7 +7,7 @@
# Library name:
LIBNAME = libpng12
PNGMAJ = 0
PNGMIN = 1.2.19beta9
PNGMIN = 1.2.19beta10
PNGVER = $(PNGMAJ).$(PNGMIN)
# Shared library names:

View File

@ -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 \

View File

@ -9,7 +9,7 @@
# Library name:
LIBNAME = libpng12
PNGMAJ = 0
PNGMIN = 1.2.19beta9
PNGMIN = 1.2.19beta10
PNGVER = $(PNGMAJ).$(PNGMIN)
# Shared library names:

View File

@ -6,7 +6,7 @@
# Library name:
LIBNAME=libpng12
PNGMAJ = 0
PNGMIN = 1.2.19beta9
PNGMIN = 1.2.19beta10
PNGVER = $(PNGMAJ).$(PNGMIN)
# Shared library names:

View File

@ -6,7 +6,7 @@
# Library name:
LIBNAME=libpng12
PNGMAJ = 0
PNGMIN = 1.2.19beta9
PNGMIN = 1.2.19beta10
PNGVER = $(PNGMAJ).$(PNGMIN)
# Shared library names:

View File

@ -8,7 +8,7 @@
# Library name:
PNGMAJ = 0
PNGMIN = 1.2.19beta9
PNGMIN = 1.2.19beta10
PNGVER = $(PNGMAJ).$(PNGMIN)
LIBNAME = libpng12

View File

@ -8,7 +8,7 @@
# Library name:
LIBNAME = libpng12
PNGMAJ = 0
PNGMIN = 1.2.19beta9
PNGMIN = 1.2.19beta10
PNGVER = $(PNGMAJ).$(PNGMIN)
# Shared library names:

View File

@ -8,7 +8,7 @@
# Library name:
LIBNAME = libpng12
PNGMAJ = 0
PNGMIN = 1.2.19beta9
PNGMIN = 1.2.19beta10
PNGVER = $(PNGMAJ).$(PNGMIN)
# Shared library names:

View File

@ -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"

View File

@ -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