[FFmpeg-devel] [PATCH] libavutil/cpu: Fix definition of _GNU_SOURCE so it occurs before other includes

kevin.j.wheatley at gmail.com kevin.j.wheatley at gmail.com
Mon Apr 12 14:22:09 EEST 2021


From: Kevin Wheatley <kevin.j.wheatley at gmail.com>

This fix moves the potential definition of _GNU_SOURCE prior to
any includes of system header files as required by the documentation
https://www.gnu.org/software/libc/manual/html_node/Feature-Test-Macros.html

This corrects the CPU_COUNT macro availability, resulting in
sched_getaffinity() being called on Linux systems. This then correctly
returns the number of CPUs when run under containers and other cases
where processor affinity has been setup prior to running FFmpeg

Signed-off-by: Kevin J Wheatley <kevin.j.wheatley at gmail.com>
---
 libavutil/cpu.c | 16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)

diff --git a/libavutil/cpu.c b/libavutil/cpu.c
index 8e3576a..1496c5d 100644
--- a/libavutil/cpu.c
+++ b/libavutil/cpu.c
@@ -16,6 +16,15 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config.h"
+
+#if HAVE_SCHED_GETAFFINITY
+#ifndef _GNU_SOURCE
+# define _GNU_SOURCE
+#endif
+#include <sched.h>
+#endif
+
 #include <stddef.h>
 #include <stdint.h>
 #include <stdatomic.h>
@@ -23,16 +32,9 @@
 #include "attributes.h"
 #include "cpu.h"
 #include "cpu_internal.h"
-#include "config.h"
 #include "opt.h"
 #include "common.h"
 
-#if HAVE_SCHED_GETAFFINITY
-#ifndef _GNU_SOURCE
-# define _GNU_SOURCE
-#endif
-#include <sched.h>
-#endif
 #if HAVE_GETPROCESSAFFINITYMASK || HAVE_WINRT
 #include <windows.h>
 #endif
-- 
1.8.5.6



More information about the ffmpeg-devel mailing list