diff -Naur libpng-1.2.22.orig/configure libpng-1.2.22/configure --- libpng-1.2.22.orig/configure 2007-10-13 13:07:47.000000000 -0400 +++ libpng-1.2.22/configure 2007-10-18 12:23:01.000000000 -0400 @@ -20721,6 +20721,7 @@ cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ +#define PNG_CONFIGURE_LIBPNG #include "$srcdir/pnggccrd.c" int main () diff -Naur libpng-1.2.22.orig/configure.ac libpng-1.2.22/configure.ac --- libpng-1.2.22.orig/configure.ac 2007-10-13 13:07:35.000000000 -0400 +++ libpng-1.2.22/configure.ac 2007-10-18 12:23:48.000000000 -0400 @@ -62,7 +62,8 @@ AC_MSG_CHECKING( [if assembler code in pnggccrd.c can be compiled without PNG_NO_MMX_CODE]) AC_TRY_COMPILE( - [#include "$srcdir/pnggccrd.c"], + [#define PNG_CONFIGURE_LIBPNG + #include "$srcdir/pnggccrd.c"], [return 0;], AC_MSG_RESULT(yes) LIBPNG_NO_MMX="", diff -Naur libpng-1.2.22.orig/pngconf.h libpng-1.2.22/pngconf.h --- libpng-1.2.22.orig/pngconf.h 2007-10-13 13:07:22.000000000 -0400 +++ libpng-1.2.22/pngconf.h 2007-10-18 12:21:24.000000000 -0400 @@ -35,6 +35,25 @@ #ifdef HAVE_CONFIG_H #include "config.h" #endif +#else +/* pngconf.h is part of the exported API. When a libpng-using application + includes us, PNG_CONFIGURE_LIBPNG is of course not defined as we do not have + libpng's config.h available in this case. This means that we do not have the + defines added to config.h and the commandline by libpng's ./configure . + + For all defines from config.h not having them set is not a problem, however + ./configure also adds -DPNG_NO_ASSEMBLER_CODE to the CFLAGS when compiling + on a platform on which the MMX and SSE asm code in libpng is not supported. + + We do need this define as this define is used to determine whether or not + to define PNG_ASSEMBLER_CODE_SUPPORTED and other assembler related defines + and prototypes. PNG_ASSEMBLER_CODE_SUPPORTED in turn is used by applications + (ImageMagick for example) to determine whether or not they can use the asm + functions. Thus we need to define PNG_NO_ASSEMBLER_CODE here on platforms + on which the MMX and SSE asm code in libpng is not supported: */ +#ifndef __i386__ /* change this if MMX/SSE become supported on x86_64! */ +#define PNG_NO_ASSEMBLER_CODE +#endif #endif /*