From 2f90f8463423cfbb7e83fcef42f1071018c3b56e Mon Sep 17 00:00:00 2001
From: Scott Murray <scott.murray@konsulko.com>
Date: Fri, 13 Sep 2019 19:26:27 -0400
Subject: [PATCH 13/22] Handle __cpu_mask usage

Fixes errors:

src/test/test-cpu-set-util.c:18:54: error: '__cpu_mask' undeclared (first use in this function)
src/test/test-sizeof.c:73:14: error: '__cpu_mask' undeclared (first use in this function)

__cpu_mask is an internal type of glibc's cpu_set implementation, not
part of the POSIX definition, which is problematic when building with
musl, which does not define a matching type.  From inspection of musl's
sched.h, however, it is clear that the corresponding type would be
unsigned long, which does match glibc's actual __CPU_MASK_TYPE.  So,
add a typedef to cpu-set-util.h defining __cpu_mask appropriately.

Upstream-Status: Inappropriate [musl specific]

Signed-off-by: Scott Murray <scott.murray@konsulko.com>
---
 src/shared/cpu-set-util.h | 2 ++
 src/test/test-sizeof.c    | 2 +-
 2 files changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/shared/cpu-set-util.h b/src/shared/cpu-set-util.h
index 3c63a58826..4c2d4347fc 100644
--- a/src/shared/cpu-set-util.h
+++ b/src/shared/cpu-set-util.h
@@ -6,6 +6,8 @@
 #include "macro.h"
 #include "missing_syscall.h"
 
+typedef unsigned long __cpu_mask;
+
 /* This wraps the libc interface with a variable to keep the allocated size. */
 typedef struct CPUSet {
         cpu_set_t *set;
diff --git a/src/test/test-sizeof.c b/src/test/test-sizeof.c
index ea0c58770e..b65c0bd370 100644
--- a/src/test/test-sizeof.c
+++ b/src/test/test-sizeof.c
@@ -1,6 +1,5 @@
 /* SPDX-License-Identifier: LGPL-2.1-or-later */
 
-#include <sched.h>
 #include <stdio.h>
 #include <string.h>
 #include <sys/resource.h>
@@ -12,6 +11,7 @@
 #include <float.h>
 
 #include "time-util.h"
+#include "cpu-set-util.h"
 
 /* Print information about various types. Useful when diagnosing
  * gcc diagnostics on an unfamiliar architecture. */
-- 
2.34.1

