From 64e4ffb226f560eaaf965d98eb9edcaa343deb9c Mon Sep 17 00:00:00 2001
From: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
Date: Wed, 19 Mar 2025 10:15:15 +0100
Subject: [PATCH] avutil/libm: Only include intfloat.h when needed

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
---
 libavcodec/exrenc.c              | 1 +
 libavcodec/fastaudio.c           | 1 +
 libavcodec/jpeg2000.c            | 1 +
 libavcodec/mips/h264pred_mmi.c   | 1 +
 libavcodec/mips/hevcdsp_mmi.c    | 1 +
 libavcodec/mips/vp8dsp_mmi.c     | 1 +
 libavcodec/pnmdec.c              | 1 +
 libavcodec/pnmenc.c              | 1 +
 libavcodec/speexdec.c            | 1 +
 libavfilter/vf_tonemap.c         | 1 +
 libavfilter/vf_zscale.c          | 1 +
 libavformat/ircamdec.c           | 1 +
 libavformat/lafdec.c             | 1 +
 libavformat/pdvdec.c             | 1 +
 libavformat/usmdec.c             | 1 +
 libavutil/libm.h                 | 2 ++
 libavutil/tests/rational.c       | 1 +
 libswscale/input.c               | 3 ++-
 libswscale/output.c              | 3 ++-
 libswscale/ppc/swscale_altivec.c | 1 +
 20 files changed, 23 insertions(+), 2 deletions(-)

diff --git a/libavcodec/exrenc.c b/libavcodec/exrenc.c
index e6424092a5..c9685890ea 100644
--- a/libavcodec/exrenc.c
+++ b/libavcodec/exrenc.c
@@ -27,6 +27,7 @@
 #include <zlib.h>
 
 #include "libavutil/avassert.h"
+#include "libavutil/intfloat.h"
 #include "libavutil/mem.h"
 #include "libavutil/opt.h"
 #include "libavutil/imgutils.h"
diff --git a/libavcodec/fastaudio.c b/libavcodec/fastaudio.c
index b9d7a30b11..ee31a06f18 100644
--- a/libavcodec/fastaudio.c
+++ b/libavcodec/fastaudio.c
@@ -21,6 +21,7 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "libavutil/intfloat.h"
 #include "libavutil/mem.h"
 #include "avcodec.h"
 #include "bytestream.h"
diff --git a/libavcodec/jpeg2000.c b/libavcodec/jpeg2000.c
index 7911500901..6433e13892 100644
--- a/libavcodec/jpeg2000.c
+++ b/libavcodec/jpeg2000.c
@@ -29,6 +29,7 @@
 #include "libavutil/avassert.h"
 #include "libavutil/common.h"
 #include "libavutil/imgutils.h"
+#include "libavutil/intfloat.h"
 #include "libavutil/mem.h"
 #include "libavutil/thread.h"
 #include "avcodec.h"
diff --git a/libavcodec/mips/h264pred_mmi.c b/libavcodec/mips/h264pred_mmi.c
index 480411f5b5..09d4ac1693 100644
--- a/libavcodec/mips/h264pred_mmi.c
+++ b/libavcodec/mips/h264pred_mmi.c
@@ -24,6 +24,7 @@
 
 #include "h264pred_mips.h"
 #include "libavcodec/bit_depth_template.c"
+#include "libavutil/intfloat.h"
 #include "libavutil/mips/mmiutils.h"
 #include "constants.h"
 
diff --git a/libavcodec/mips/hevcdsp_mmi.c b/libavcodec/mips/hevcdsp_mmi.c
index 6ff52187e5..30a3030d00 100644
--- a/libavcodec/mips/hevcdsp_mmi.c
+++ b/libavcodec/mips/hevcdsp_mmi.c
@@ -21,6 +21,7 @@
 #include "libavcodec/hevc/hevcdec.h"
 #include "libavcodec/bit_depth_template.c"
 #include "libavcodec/mips/hevcdsp_mips.h"
+#include "libavutil/intfloat.h"
 #include "libavutil/mips/mmiutils.h"
 
 #define PUT_HEVC_QPEL_H(w, x_step, src_step, dst_step)                   \
diff --git a/libavcodec/mips/vp8dsp_mmi.c b/libavcodec/mips/vp8dsp_mmi.c
index bc774aa365..8b518e9c49 100644
--- a/libavcodec/mips/vp8dsp_mmi.c
+++ b/libavcodec/mips/vp8dsp_mmi.c
@@ -24,6 +24,7 @@
 #include "vp8dsp_mips.h"
 #include "constants.h"
 #include "libavutil/attributes.h"
+#include "libavutil/intfloat.h"
 #include "libavutil/mips/mmiutils.h"
 #include "libavutil/mem_internal.h"
 
diff --git a/libavcodec/pnmdec.c b/libavcodec/pnmdec.c
index 59013ada49..68bb7a41ec 100644
--- a/libavcodec/pnmdec.c
+++ b/libavcodec/pnmdec.c
@@ -22,6 +22,7 @@
 #include "config_components.h"
 
 #include "libavutil/half2float.h"
+#include "libavutil/intfloat.h"
 
 #include "avcodec.h"
 #include "codec_internal.h"
diff --git a/libavcodec/pnmenc.c b/libavcodec/pnmenc.c
index 91ed5e2b19..8f67fe0a3b 100644
--- a/libavcodec/pnmenc.c
+++ b/libavcodec/pnmenc.c
@@ -25,6 +25,7 @@
 #include "libavutil/imgutils.h"
 #include "libavutil/pixdesc.h"
 #include "libavutil/float2half.h"
+#include "libavutil/intfloat.h"
 #include "avcodec.h"
 #include "codec_internal.h"
 #include "encode.h"
diff --git a/libavcodec/speexdec.c b/libavcodec/speexdec.c
index b335e2fbe8..90a1b50bd6 100644
--- a/libavcodec/speexdec.c
+++ b/libavcodec/speexdec.c
@@ -54,6 +54,7 @@
 #include "libavutil/avassert.h"
 #include "libavutil/avstring.h"
 #include "libavutil/float_dsp.h"
+#include "libavutil/intfloat.h"
 #include "libavutil/mem.h"
 #include "avcodec.h"
 #include "bytestream.h"
diff --git a/libavfilter/vf_tonemap.c b/libavfilter/vf_tonemap.c
index e0be8181c9..2f09487d3f 100644
--- a/libavfilter/vf_tonemap.c
+++ b/libavfilter/vf_tonemap.c
@@ -29,6 +29,7 @@
 #include "libavutil/csp.h"
 #include "libavutil/imgutils.h"
 #include "libavutil/internal.h"
+#include "libavutil/intfloat.h"
 #include "libavutil/intreadwrite.h"
 #include "libavutil/opt.h"
 #include "libavutil/pixdesc.h"
diff --git a/libavfilter/vf_zscale.c b/libavfilter/vf_zscale.c
index 7e66c3d6e2..ba431cc67d 100644
--- a/libavfilter/vf_zscale.c
+++ b/libavfilter/vf_zscale.c
@@ -36,6 +36,7 @@
 #include "video.h"
 #include "libavutil/eval.h"
 #include "libavutil/internal.h"
+#include "libavutil/intfloat.h"
 #include "libavutil/intreadwrite.h"
 #include "libavutil/mathematics.h"
 #include "libavutil/mem.h"
diff --git a/libavformat/ircamdec.c b/libavformat/ircamdec.c
index 03a61e9f13..017d03b183 100644
--- a/libavformat/ircamdec.c
+++ b/libavformat/ircamdec.c
@@ -19,6 +19,7 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "libavutil/intfloat.h"
 #include "libavutil/intreadwrite.h"
 #include "libavcodec/internal.h"
 #include "avformat.h"
diff --git a/libavformat/lafdec.c b/libavformat/lafdec.c
index 7cd109a55a..e641d4b6ee 100644
--- a/libavformat/lafdec.c
+++ b/libavformat/lafdec.c
@@ -19,6 +19,7 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "libavutil/intfloat.h"
 #include "libavutil/intreadwrite.h"
 #include "libavutil/mem.h"
 #include "avformat.h"
diff --git a/libavformat/pdvdec.c b/libavformat/pdvdec.c
index 76b67dfcf2..cd118f0e37 100644
--- a/libavformat/pdvdec.c
+++ b/libavformat/pdvdec.c
@@ -19,6 +19,7 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "libavutil/intfloat.h"
 #include "libavutil/mem.h"
 #include "avformat.h"
 #include "demux.h"
diff --git a/libavformat/usmdec.c b/libavformat/usmdec.c
index 6de2a73edf..fd28e935ce 100644
--- a/libavformat/usmdec.c
+++ b/libavformat/usmdec.c
@@ -19,6 +19,7 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "libavutil/intfloat.h"
 #include "libavutil/intreadwrite.h"
 #include "libavutil/mem.h"
 #include "libavcodec/bytestream.h"
diff --git a/libavutil/libm.h b/libavutil/libm.h
index 185e486022..5eb7edf1ad 100644
--- a/libavutil/libm.h
+++ b/libavutil/libm.h
@@ -28,7 +28,9 @@
 #include <math.h>
 #include "config.h"
 #include "attributes.h"
+#if !HAVE_COPYSIGN || !HAVE_HYPOT || !HAVE_ISFINITE || !HAVE_ISINF || !HAVE_ISNAN
 #include "intfloat.h"
+#endif
 #include "mathematics.h"
 
 #if HAVE_MIPSFPU && HAVE_INLINE_ASM
diff --git a/libavutil/tests/rational.c b/libavutil/tests/rational.c
index caec07d7cb..ff75896de2 100644
--- a/libavutil/tests/rational.c
+++ b/libavutil/tests/rational.c
@@ -21,6 +21,7 @@
 
 #include "libavutil/rational.c"
 #include "libavutil/integer.h"
+#include "libavutil/intfloat.h"
 
 int main(void)
 {
diff --git a/libswscale/input.c b/libswscale/input.c
index cab8de6d3f..c8293a3256 100644
--- a/libswscale/input.c
+++ b/libswscale/input.c
@@ -19,12 +19,13 @@
  */
 
 #include <math.h>
+#include <stddef.h>
 #include <stdint.h>
-#include <stdio.h>
 
 #include "libavutil/bswap.h"
 #include "libavutil/intreadwrite.h"
 #include "libavutil/avassert.h"
+#include "libavutil/intfloat.h"
 #include "config.h"
 #include "swscale_internal.h"
 
diff --git a/libswscale/output.c b/libswscale/output.c
index 21c3bdc307..eb454b8aab 100644
--- a/libswscale/output.c
+++ b/libswscale/output.c
@@ -19,14 +19,15 @@
  */
 
 #include <math.h>
+#include <stddef.h>
 #include <stdint.h>
-#include <stdio.h>
 #include <string.h>
 
 #include "libavutil/attributes.h"
 #include "libavutil/avutil.h"
 #include "libavutil/avassert.h"
 #include "libavutil/bswap.h"
+#include "libavutil/intfloat.h"
 #include "libavutil/intreadwrite.h"
 #include "libavutil/mathematics.h"
 #include "libavutil/mem_internal.h"
diff --git a/libswscale/ppc/swscale_altivec.c b/libswscale/ppc/swscale_altivec.c
index c76c0b6d78..a74c0a4b3f 100644
--- a/libswscale/ppc/swscale_altivec.c
+++ b/libswscale/ppc/swscale_altivec.c
@@ -28,6 +28,7 @@
 #include "libswscale/swscale_internal.h"
 #include "libavutil/attributes.h"
 #include "libavutil/cpu.h"
+#include "libavutil/intfloat.h"
 #include "yuv2rgb_altivec.h"
 #include "libavutil/ppc/util_altivec.h"
 
-- 
2.45.2