1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
|
From 821c7949d79ad8e06b20cb1238316fce56778607 Mon Sep 17 00:00:00 2001
From: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Upstream-URL: https://github.com/vmware/open-vm-tools/pull/383
Date: Thu, 31 Oct 2019 17:06:10 +0100
Subject: [PATCH] Rename poll.h into vm_poll.h to fix build failure on musl
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
musl libc redirects include of sys/poll.h to poll.h. But since poll.h is
also a local header file, the musl libc header is never included. This
leads to the following build failure:
In file included from asyncsocket.c:73:0:
.../host/i586-buildroot-linux-musl/sysroot/usr/include/sys/poll.h:1:2: warning: #warning redirecting incorrect #include <sys/poll.h> to <poll.h> [-Wcpp]
#warning redirecting incorrect #include <sys/poll.h> to <poll.h>
asyncsocket.c: In function ‘AsyncTCPSocketPollWork’:
asyncsocket.c:2537:13: error: invalid use of undefined type ‘struct pollfd’
pfd[i].fd = asock[i]->fd;
^
asyncsocket.c:2537:13: error: dereferencing pointer to incomplete type ‘struct pollfd’
asyncsocket.c:2538:13: error: invalid use of undefined type ‘struct pollfd’
pfd[i].events = read ? POLLIN : POLLOUT;
^
asyncsocket.c:2538:33: error: ‘POLLIN’ undeclared (first use in this function); did you mean ‘POLL_IN’?
pfd[i].events = read ? POLLIN : POLLOUT;
So rename poll.h into vm_poll.h as suggested by srowe in
https://github.com/vmware/open-vm-tools/issues/359#issuecomment-533529956
Fixes:
- http://autobuild.buildroot.org/results/4f575ef42bbc4387a07e396205052b2da081c64d
Fix #359
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
---
lib/asyncsocket/asyncsocket.c | 4 ++--
lib/hgfsServer/hgfsServer.c | 2 +-
lib/include/asyncsocket.h | 2 +-
lib/include/pollImpl.h | 2 +-
lib/include/{poll.h => vm_poll.h} | 0
lib/rpcIn/rpcin.c | 2 +-
6 files changed, 6 insertions(+), 6 deletions(-)
rename lib/include/{poll.h => vm_poll.h} (100%)
diff --git a/lib/asyncsocket/asyncsocket.c b/lib/asyncsocket/asyncsocket.c
index 102638cc9..01181a957 100644
--- a/lib/asyncsocket/asyncsocket.c
+++ b/lib/asyncsocket/asyncsocket.c
@@ -70,8 +70,8 @@
#else
#include <stddef.h>
#include <ctype.h>
+#include <poll.h>
#include <sys/types.h>
-#include <sys/poll.h>
#include <sys/socket.h>
#include <sys/un.h>
#include <netdb.h>
@@ -87,7 +87,7 @@
#include "random.h"
#include "asyncsocket.h"
#include "asyncSocketBase.h"
-#include "poll.h"
+#include "vm_poll.h"
#include "log.h"
#include "err.h"
#include "hostinfo.h"
diff --git a/lib/hgfsServer/hgfsServer.c b/lib/hgfsServer/hgfsServer.c
index 462245511..fc6912860 100644
--- a/lib/hgfsServer/hgfsServer.c
+++ b/lib/hgfsServer/hgfsServer.c
@@ -48,7 +48,7 @@
#include "hgfsServerOplock.h"
#include "hgfsDirNotify.h"
#include "userlock.h"
-#include "poll.h"
+#include "vm_poll.h"
#include "mutexRankLib.h"
#include "vm_basic_asm.h"
#include "unicodeOperations.h"
diff --git a/lib/include/asyncsocket.h b/lib/include/asyncsocket.h
index 95a5e4643..a4b4e5aae 100644
--- a/lib/include/asyncsocket.h
+++ b/lib/include/asyncsocket.h
@@ -177,7 +177,7 @@ typedef struct AsyncSocket AsyncSocket;
* Or the client can specify its favorite poll class and locking behavior.
* Use of IVmdbPoll is only supported for regular sockets and for Attach.
*/
-#include "poll.h"
+#include "vm_poll.h"
struct IVmdbPoll;
typedef struct AsyncSocketPollParams {
int flags; /* Default 0, only POLL_FLAG_NO_BULL is valid */
diff --git a/lib/include/pollImpl.h b/lib/include/pollImpl.h
index 46442e556..8bc669970 100644
--- a/lib/include/pollImpl.h
+++ b/lib/include/pollImpl.h
@@ -44,7 +44,7 @@
#define INCLUDE_ALLOW_USERLEVEL
#include "includeCheck.h"
-#include "poll.h"
+#include "vm_poll.h"
#include "vm_basic_asm.h"
#if defined(__cplusplus)
diff --git a/lib/include/poll.h b/lib/include/vm_poll.h
similarity index 100%
rename from lib/include/poll.h
rename to lib/include/vm_poll.h
diff --git a/lib/rpcIn/rpcin.c b/lib/rpcIn/rpcin.c
index 47a3380e4..660382c62 100644
--- a/lib/rpcIn/rpcin.c
+++ b/lib/rpcIn/rpcin.c
@@ -57,7 +57,7 @@
#if defined(VMTOOLS_USE_VSOCKET)
# include <glib.h>
-# include "poll.h"
+# include "vm_poll.h"
# include "asyncsocket.h"
# include "vmci_defs.h"
#include "dataMap.h"
|