yann@1
|
1 |
[Taken from ../glibc-2.3.2/glibc-2.3.2-allow-gcc-3.4-sunrpc.patch,
|
yann@1
|
2 |
rediffed, and with a fix for sunrpc/auth_none.c that was
|
yann@1
|
3 |
inexplicably not included in the original patch.]
|
yann@1
|
4 |
|
yann@1
|
5 |
Fixes
|
yann@1
|
6 |
|
yann@1
|
7 |
auth_none.c: In function 'authnone_create':
|
yann@1
|
8 |
auth_none.c:83: error: invalid lvalue in assignment
|
yann@1
|
9 |
clnt_perr.c: In function '_buf':
|
yann@1
|
10 |
clnt_perr.c:68: error: invalid lvalue in assignment
|
yann@1
|
11 |
clnt_raw.c: In function 'clntraw_create':
|
yann@1
|
12 |
clnt_raw.c:103: error: invalid lvalue in assignment
|
yann@1
|
13 |
clnt_simp.c: In function 'callrpc':
|
yann@1
|
14 |
clnt_simp.c:78: error: invalid lvalue in assignment
|
yann@1
|
15 |
etc.
|
yann@1
|
16 |
|
yann@1
|
17 |
building glibc-2.2.5 with gcc-4.0.
|
yann@1
|
18 |
|
yann@1
|
19 |
---
|
yann@1
|
20 |
|
yann@1
|
21 |
http://sources.redhat.com/ml/libc-hacker/2004-02/msg00005.html
|
yann@1
|
22 |
[Also in CVS, but the original patch is easier to get.]
|
yann@1
|
23 |
|
yann@1
|
24 |
Fixes errors like
|
yann@1
|
25 |
|
yann@1
|
26 |
clnt_perr.c: In function `_buf':
|
yann@1
|
27 |
clnt_perr.c:67: error: invalid lvalue in assignment
|
yann@1
|
28 |
|
yann@1
|
29 |
when building with gcc-3.5.
|
yann@1
|
30 |
|
yann@1
|
31 |
To: libc-hacker at sources dot redhat dot com
|
yann@1
|
32 |
Subject: Fix cast as lvalue in sunrpc
|
yann@1
|
33 |
From: Andreas Schwab <schwab at suse dot de>
|
yann@1
|
34 |
X-Yow: SHHHH!! I hear SIX TATTOOED TRUCK-DRIVERS tossing ENGINE BLOCKS
|
yann@1
|
35 |
into empty OIL DRUMS dot dot
|
yann@1
|
36 |
Date: Sun, 08 Feb 2004 17:38:31 +0100
|
yann@1
|
37 |
Message-ID: <je4qu1frw8.fsf@sykes.suse.de>
|
yann@1
|
38 |
|
yann@1
|
39 |
This fixes the uses of casts as lvalue in the sunrpc code.
|
yann@1
|
40 |
|
yann@1
|
41 |
Andreas.
|
yann@1
|
42 |
|
yann@1
|
43 |
2004-02-08 Andreas Schwab <schwab@suse.de>
|
yann@1
|
44 |
|
yann@1
|
45 |
* include/rpc/rpc.h: Declare thread variables with their correct
|
yann@1
|
46 |
type.
|
yann@1
|
47 |
* sunrpc/clnt_perr.c: Don't cast thread variables.
|
yann@1
|
48 |
* sunrpc/clnt_raw.c: Likewise.
|
yann@1
|
49 |
* sunrpc/clnt_simp.c: Likewise.
|
yann@1
|
50 |
* sunrpc/key_call.c: Likewise.
|
yann@1
|
51 |
* sunrpc/svcauth_des.c: Likewise.
|
yann@1
|
52 |
* sunrpc/svc.c: Likewise.
|
yann@1
|
53 |
* sunrpc/svc_raw.c: Likewise.
|
yann@1
|
54 |
* sunrpc/svc_simple.c: Likewise.
|
yann@1
|
55 |
|
yann@1
|
56 |
diff -ur glibc-2.2.5/include/rpc/rpc.h glibc-2.2.5-patched/include/rpc/rpc.h
|
yann@1
|
57 |
--- glibc-2.2.5/include/rpc/rpc.h 2001-03-25 21:11:32.000000000 -0800
|
yann@1
|
58 |
+++ glibc-2.2.5-patched/include/rpc/rpc.h 2005-03-11 13:18:29.810860624 -0800
|
yann@1
|
59 |
@@ -18,24 +18,24 @@
|
yann@1
|
60 |
|
yann@1
|
61 |
void *authnone_private_s; /* auth_none.c */
|
yann@1
|
62 |
|
yann@1
|
63 |
- void *clnt_perr_buf_s; /* clnt_perr.c */
|
yann@1
|
64 |
+ char *clnt_perr_buf_s; /* clnt_perr.c */
|
yann@1
|
65 |
|
yann@1
|
66 |
- void *clntraw_private_s; /* clnt_raw.c */
|
yann@1
|
67 |
+ struct clntraw_private_s *clntraw_private_s; /* clnt_raw.c */
|
yann@1
|
68 |
|
yann@1
|
69 |
- void *callrpc_private_s; /* clnt_simp.c */
|
yann@1
|
70 |
+ struct callrpc_private_s *callrpc_private_s; /* clnt_simp.c */
|
yann@1
|
71 |
|
yann@1
|
72 |
- void *key_call_private_s; /* key_call.c */
|
yann@1
|
73 |
+ struct key_call_private *key_call_private_s; /* key_call.c */
|
yann@1
|
74 |
|
yann@1
|
75 |
- void *authdes_cache_s; /* svcauth_des.c */
|
yann@1
|
76 |
- void *authdes_lru_s; /* svcauth_des.c */
|
yann@1
|
77 |
+ struct cache_entry *authdes_cache_s; /* svcauth_des.c */
|
yann@1
|
78 |
+ int *authdes_lru_s; /* svcauth_des.c */
|
yann@1
|
79 |
|
yann@1
|
80 |
- void *svc_xports_s; /* svc.c */
|
yann@1
|
81 |
- void *svc_head_s; /* svc.c */
|
yann@1
|
82 |
+ SVCXPRT **svc_xports_s; /* svc.c */
|
yann@1
|
83 |
+ struct svc_callout *svc_head_s; /* svc.c */
|
yann@1
|
84 |
|
yann@1
|
85 |
- void *svcraw_private_s; /* svc_raw.c */
|
yann@1
|
86 |
+ struct svcraw_private_s *svcraw_private_s; /* svc_raw.c */
|
yann@1
|
87 |
|
yann@1
|
88 |
- void *svcsimple_proglst_s; /* svc_simple.c */
|
yann@1
|
89 |
- void *svcsimple_transp_s; /* svc_simple.c */
|
yann@1
|
90 |
+ struct proglst_ *svcsimple_proglst_s; /* svc_simple.c */
|
yann@1
|
91 |
+ SVCXPRT *svcsimple_transp_s; /* svc_simple.c */
|
yann@1
|
92 |
};
|
yann@1
|
93 |
|
yann@1
|
94 |
extern struct rpc_thread_variables *__rpc_thread_variables(void)
|
yann@1
|
95 |
--- glibc-2.2.5/sunrpc/auth_none.c.old 2005-03-10 16:26:53.874178280 -0800
|
yann@1
|
96 |
+++ glibc-2.2.5/sunrpc/auth_none.c 2005-03-10 16:34:24.551664888 -0800
|
yann@1
|
97 |
@@ -62,7 +62,7 @@
|
yann@1
|
98 |
u_int mcnt;
|
yann@1
|
99 |
};
|
yann@1
|
100 |
#ifdef _RPC_THREAD_SAFE_
|
yann@1
|
101 |
-#define authnone_private ((struct authnone_private_s *)RPC_THREAD_VARIABLE(authnone_private_s))
|
yann@1
|
102 |
+#define authnone_private RPC_THREAD_VARIABLE(authnone_private_s)
|
yann@1
|
103 |
#else
|
yann@1
|
104 |
static struct authnone_private_s *authnone_private;
|
yann@1
|
105 |
#endif
|
yann@1
|
106 |
diff -ur glibc-2.2.5/sunrpc/clnt_perr.c glibc-2.2.5-patched/sunrpc/clnt_perr.c
|
yann@1
|
107 |
--- glibc-2.2.5/sunrpc/clnt_perr.c 2001-08-16 21:48:31.000000000 -0700
|
yann@1
|
108 |
+++ glibc-2.2.5-patched/sunrpc/clnt_perr.c 2005-03-11 13:18:29.812860320 -0800
|
yann@1
|
109 |
@@ -56,7 +56,7 @@
|
yann@1
|
110 |
* buf variable in a few functions. Overriding a global variable
|
yann@1
|
111 |
* with a local variable of the same name is a bad idea, anyway.
|
yann@1
|
112 |
*/
|
yann@1
|
113 |
-#define buf ((char *)RPC_THREAD_VARIABLE(clnt_perr_buf_s))
|
yann@1
|
114 |
+#define buf RPC_THREAD_VARIABLE(clnt_perr_buf_s)
|
yann@1
|
115 |
#else
|
yann@1
|
116 |
static char *buf;
|
yann@1
|
117 |
#endif
|
yann@1
|
118 |
diff -ur glibc-2.2.5/sunrpc/clnt_raw.c glibc-2.2.5-patched/sunrpc/clnt_raw.c
|
yann@1
|
119 |
--- glibc-2.2.5/sunrpc/clnt_raw.c 2001-03-20 10:34:22.000000000 -0800
|
yann@1
|
120 |
+++ glibc-2.2.5-patched/sunrpc/clnt_raw.c 2005-03-11 13:18:29.813860168 -0800
|
yann@1
|
121 |
@@ -61,7 +61,7 @@
|
yann@1
|
122 |
u_int mcnt;
|
yann@1
|
123 |
};
|
yann@1
|
124 |
#ifdef _RPC_THREAD_SAFE_
|
yann@1
|
125 |
-#define clntraw_private ((struct clntraw_private_s *)RPC_THREAD_VARIABLE(clntraw_private_s))
|
yann@1
|
126 |
+#define clntraw_private RPC_THREAD_VARIABLE(clntraw_private_s)
|
yann@1
|
127 |
#else
|
yann@1
|
128 |
static struct clntraw_private_s *clntraw_private;
|
yann@1
|
129 |
#endif
|
yann@1
|
130 |
diff -ur glibc-2.2.5/sunrpc/clnt_simp.c glibc-2.2.5-patched/sunrpc/clnt_simp.c
|
yann@1
|
131 |
--- glibc-2.2.5/sunrpc/clnt_simp.c 2001-08-19 23:28:21.000000000 -0700
|
yann@1
|
132 |
+++ glibc-2.2.5-patched/sunrpc/clnt_simp.c 2005-03-11 13:18:29.814860016 -0800
|
yann@1
|
133 |
@@ -55,7 +55,7 @@
|
yann@1
|
134 |
char *oldhost;
|
yann@1
|
135 |
};
|
yann@1
|
136 |
#ifdef _RPC_THREAD_SAFE_
|
yann@1
|
137 |
-#define callrpc_private ((struct callrpc_private_s *)RPC_THREAD_VARIABLE(callrpc_private_s))
|
yann@1
|
138 |
+#define callrpc_private RPC_THREAD_VARIABLE(callrpc_private_s)
|
yann@1
|
139 |
#else
|
yann@1
|
140 |
static struct callrpc_private_s *callrpc_private;
|
yann@1
|
141 |
#endif
|
yann@1
|
142 |
diff -ur glibc-2.2.5/sunrpc/key_call.c glibc-2.2.5-patched/sunrpc/key_call.c
|
yann@1
|
143 |
--- glibc-2.2.5/sunrpc/key_call.c 2001-03-20 10:34:22.000000000 -0800
|
yann@1
|
144 |
+++ glibc-2.2.5-patched/sunrpc/key_call.c 2005-03-11 13:18:29.816859712 -0800
|
yann@1
|
145 |
@@ -360,7 +360,7 @@
|
yann@1
|
146 |
uid_t uid; /* user-id at last authorization */
|
yann@1
|
147 |
};
|
yann@1
|
148 |
#ifdef _RPC_THREAD_SAFE_
|
yann@1
|
149 |
-#define key_call_private_main ((struct key_call_private *)RPC_THREAD_VARIABLE(key_call_private_s))
|
yann@1
|
150 |
+#define key_call_private_main RPC_THREAD_VARIABLE(key_call_private_s)
|
yann@1
|
151 |
#else
|
yann@1
|
152 |
static struct key_call_private *key_call_private_main;
|
yann@1
|
153 |
#endif
|
yann@1
|
154 |
diff -ur glibc-2.2.5/sunrpc/svcauth_des.c glibc-2.2.5-patched/sunrpc/svcauth_des.c
|
yann@1
|
155 |
--- glibc-2.2.5/sunrpc/svcauth_des.c 2001-08-19 23:37:09.000000000 -0700
|
yann@1
|
156 |
+++ glibc-2.2.5-patched/sunrpc/svcauth_des.c 2005-03-11 13:18:29.821858952 -0800
|
yann@1
|
157 |
@@ -72,8 +72,8 @@
|
yann@1
|
158 |
char *localcred; /* generic local credential */
|
yann@1
|
159 |
};
|
yann@1
|
160 |
#ifdef _RPC_THREAD_SAFE_
|
yann@1
|
161 |
-#define authdes_cache ((struct cache_entry *)RPC_THREAD_VARIABLE(authdes_cache_s))
|
yann@1
|
162 |
-#define authdes_lru ((int *)RPC_THREAD_VARIABLE(authdes_lru_s))
|
yann@1
|
163 |
+#define authdes_cache RPC_THREAD_VARIABLE(authdes_cache_s)
|
yann@1
|
164 |
+#define authdes_lru RPC_THREAD_VARIABLE(authdes_lru_s)
|
yann@1
|
165 |
#else
|
yann@1
|
166 |
static struct cache_entry *authdes_cache;
|
yann@1
|
167 |
static int *authdes_lru;
|
yann@1
|
168 |
diff -ur glibc-2.2.5/sunrpc/svc.c glibc-2.2.5-patched/sunrpc/svc.c
|
yann@1
|
169 |
--- glibc-2.2.5/sunrpc/svc.c 2001-03-20 10:34:22.000000000 -0800
|
yann@1
|
170 |
+++ glibc-2.2.5-patched/sunrpc/svc.c 2005-03-11 13:18:29.817859560 -0800
|
yann@1
|
171 |
@@ -44,7 +44,7 @@
|
yann@1
|
172 |
#include <sys/poll.h>
|
yann@1
|
173 |
|
yann@1
|
174 |
#ifdef _RPC_THREAD_SAFE_
|
yann@1
|
175 |
-#define xports ((SVCXPRT **)RPC_THREAD_VARIABLE(svc_xports_s))
|
yann@1
|
176 |
+#define xports RPC_THREAD_VARIABLE(svc_xports_s)
|
yann@1
|
177 |
#else
|
yann@1
|
178 |
static SVCXPRT **xports;
|
yann@1
|
179 |
#endif
|
yann@1
|
180 |
@@ -63,7 +63,7 @@
|
yann@1
|
181 |
void (*sc_dispatch) (struct svc_req *, SVCXPRT *);
|
yann@1
|
182 |
};
|
yann@1
|
183 |
#ifdef _RPC_THREAD_SAFE_
|
yann@1
|
184 |
-#define svc_head ((struct svc_callout *)RPC_THREAD_VARIABLE(svc_head_s))
|
yann@1
|
185 |
+#define svc_head RPC_THREAD_VARIABLE(svc_head_s)
|
yann@1
|
186 |
#else
|
yann@1
|
187 |
static struct svc_callout *svc_head;
|
yann@1
|
188 |
#endif
|
yann@1
|
189 |
diff -ur glibc-2.2.5/sunrpc/svc_raw.c glibc-2.2.5-patched/sunrpc/svc_raw.c
|
yann@1
|
190 |
--- glibc-2.2.5/sunrpc/svc_raw.c 2001-03-20 10:34:22.000000000 -0800
|
yann@1
|
191 |
+++ glibc-2.2.5-patched/sunrpc/svc_raw.c 2005-03-11 13:18:29.818859408 -0800
|
yann@1
|
192 |
@@ -54,7 +54,7 @@
|
yann@1
|
193 |
char verf_body[MAX_AUTH_BYTES];
|
yann@1
|
194 |
};
|
yann@1
|
195 |
#ifdef _RPC_THREAD_SAFE_
|
yann@1
|
196 |
-#define svcraw_private ((struct svcraw_private_s *)RPC_THREAD_VARIABLE(svcraw_private_s))
|
yann@1
|
197 |
+#define svcraw_private RPC_THREAD_VARIABLE(svcraw_private_s)
|
yann@1
|
198 |
#else
|
yann@1
|
199 |
static struct svcraw_private_s *svcraw_private;
|
yann@1
|
200 |
#endif
|
yann@1
|
201 |
diff -ur glibc-2.2.5/sunrpc/svc_simple.c glibc-2.2.5-patched/sunrpc/svc_simple.c
|
yann@1
|
202 |
--- glibc-2.2.5/sunrpc/svc_simple.c 2001-08-17 00:16:04.000000000 -0700
|
yann@1
|
203 |
+++ glibc-2.2.5-patched/sunrpc/svc_simple.c 2005-03-11 13:18:29.820859104 -0800
|
yann@1
|
204 |
@@ -62,7 +62,7 @@
|
yann@1
|
205 |
struct proglst_ *p_nxt;
|
yann@1
|
206 |
};
|
yann@1
|
207 |
#ifdef _RPC_THREAD_SAFE_
|
yann@1
|
208 |
-#define proglst ((struct proglst_ *)RPC_THREAD_VARIABLE(svcsimple_proglst_s))
|
yann@1
|
209 |
+#define proglst RPC_THREAD_VARIABLE(svcsimple_proglst_s)
|
yann@1
|
210 |
#else
|
yann@1
|
211 |
static struct proglst_ *proglst;
|
yann@1
|
212 |
#endif
|
yann@1
|
213 |
@@ -70,7 +70,7 @@
|
yann@1
|
214 |
|
yann@1
|
215 |
static void universal (struct svc_req *rqstp, SVCXPRT *transp_s);
|
yann@1
|
216 |
#ifdef _RPC_THREAD_SAFE_
|
yann@1
|
217 |
-#define transp ((SVCXPRT *)RPC_THREAD_VARIABLE(svcsimple_transp_s))
|
yann@1
|
218 |
+#define transp RPC_THREAD_VARIABLE(svcsimple_transp_s)
|
yann@1
|
219 |
#else
|
yann@1
|
220 |
static SVCXPRT *transp;
|
yann@1
|
221 |
#endif
|