patches/glibc/2.2.5/glibc-2.2.5-allow-gcc-4.0-sunrpc.patch
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Sat Jul 28 21:34:41 2007 +0000 (2007-07-28)
changeset 301 2be7232a73ac
permissions -rw-r--r--
Bump version to 0.2.2.
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