[libpng16] Fixed configurations where floating point is completely disabled.

Because of the changes to support symbol prefixing PNG_INTERNAL_FUNCTION
declares floating point APIs during libpng builds even if they are completely
disabled. This requires the png floating point types (png_double*) to be
declared even though the functions are never actually defined.  This
change provides a dummy definition so that the declarations work, yet any
implementation will fail to compile because of an incomplete type.
diff --git a/ANNOUNCE b/ANNOUNCE
index a16b106..5e837e0 100644
--- a/ANNOUNCE
+++ b/ANNOUNCE
@@ -1,5 +1,5 @@
 
-Libpng 1.6.0beta27 - August 3, 2012
+Libpng 1.6.0beta27 - August 9, 2012
 
 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.
@@ -399,10 +399,17 @@
   Moved scripts/chkfmt to contrib/tools.
   Changed "a+w" to "u+w" in Makefile.in to fix CVE-2012-3386.
 
-Version 1.6.0beta27 [August 3, 2012]
+Version 1.6.0beta27 [August 9, 2012]
   Do not compile PNG_DEPRECATED, PNG_ALLOC and PNG_PRIVATE when __GNUC__ < 3.
   Do not use __restrict when GNUC is <= 3.1
   Removed references to png_zalloc() and png_zfree() from the manual.
+  Fixed configurations where floating point is completely disabled.  Because
+    of the changes to support symbol prefixing PNG_INTERNAL_FUNCTION declares
+    floating point APIs during libpng builds even if they are completely
+    disabled. This requires the png floating point types (png_double*) to be
+    declared even though the functions are never actually defined.  This
+    change provides a dummy definition so that the declarations work, yet any
+    implementation will fail to compile because of an incomplete type.
 
 Send comments/corrections/commendations to png-mng-implement at lists.sf.net
 (subscription required; visit
diff --git a/CHANGES b/CHANGES
index 9bc6271..967c389 100644
--- a/CHANGES
+++ b/CHANGES
@@ -4150,10 +4150,17 @@
   Moved scripts/chkfmt to contrib/tools.
   Changed "a+w" to "u+w" in Makefile.in to fix CVE-2012-3386.
 
-Version 1.6.0beta27 [August 3, 2012]
+Version 1.6.0beta27 [August 9, 2012]
   Do not compile PNG_DEPRECATED, PNG_ALLOC and PNG_PRIVATE when __GNUC__ < 3.
   Do not use __restrict when GNUC is <= 3.1
   Removed references to png_zalloc() and png_zfree() from the manual.
+  Fixed configurations where floating point is completely disabled.  Because
+    of the changes to support symbol prefixing PNG_INTERNAL_FUNCTION declares
+    floating point APIs during libpng builds even if they are completely
+    disabled. This requires the png floating point types (png_double*) to be
+    declared even though the functions are never actually defined.  This
+    change provides a dummy definition so that the declarations work, yet any
+    implementation will fail to compile because of an incomplete type.
 
 Send comments/corrections/commendations to png-mng-implement at lists.sf.net
 (subscription required; visit
diff --git a/pngpriv.h b/pngpriv.h
index e09a10e..1bcb057 100644
--- a/pngpriv.h
+++ b/pngpriv.h
@@ -170,12 +170,17 @@
  * the functions will be used without definitions.)
  *
  * NOTE: although all the API functions are declared here they are not all
- * actually built!
+ * actually built!  Because the declarations are still made it is necessary to
+ * fake out types that they depend on.
  */
 #ifndef PNG_FP_EXPORT
 #  ifndef PNG_FLOATING_POINT_SUPPORTED
 #     define PNG_FP_EXPORT(ordinal, type, name, args)\
          PNG_INTERNAL_FUNCTION(type, name, args, PNG_EMPTY);
+      typedef struct png_incomplete png_double;
+      typedef png_double*           png_doublep;
+      typedef const png_double*     png_const_doublep;
+      typedef png_double**          png_doublepp;
 #  endif
 #endif
 #ifndef PNG_FIXED_EXPORT