diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | FAQ.in | 21 | ||||
-rw-r--r-- | sunrpc/rpc/xdr.h | 32 |
3 files changed, 42 insertions, 16 deletions
diff --git a/ChangeLog b/ChangeLog index 916f081e8f..fd10d2807e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +1998-12-16 Thorsten Kukuk <kukuk@vt.uni-paderborn.de> + + * sunrpc/rpc/xdr.h: Revert patch from 1998-12-14, partly revert + patch from 1998-12-01. + 1998-12-16 Roland McGrath <roland@baalperazim.frob.com> * sysdeps/mach/hurd/bits/local_lim.h (SYMLOOP_MAX): Define this #ifdef diff --git a/FAQ.in b/FAQ.in index d68d2dc321..3635e7e95e 100644 --- a/FAQ.in +++ b/FAQ.in @@ -75,7 +75,7 @@ program has the needed functionality. We recommend version GNU make version 3.75 or 3.77. Versions before 3.75 have bugs and/or are missing features. Version 3.76 has bugs which appear when building big projects like GNU libc. 3.76.1 appears to work but -some people have reported problems. If you build GNU make 3.77 from source, +some people have reported problems. If you build GNU make 3.77 from source, please read ?make first. ?? Do I need a special linker or assembler? @@ -813,6 +813,25 @@ allowed to have open at any time using This will work even if the kernel limits change. +?? How do I get the same behavior on parsing /etc/passwd and + /etc/group as I have with libc5 ? + +{TK} The name switch setup in /etc/nsswitch.conf selected by most Linux +distributions does not support +/- and netgroup entries in the files like +/etc/passwd. Though this is the preferred setup some people might have +setups coming over from the libc5 days where it was the default to recognize +lines like this. To get back to the old behaviour one simply has to change +the rules for passwd, group, and shadow in the nsswitch.conf file as +follows: + +passwd: compat +group: compat +shadow: compat + +passwd_compat: nis +group_compat: nis +shadow_compat: nis + ? Source and binary incompatibilities, and what to do about them diff --git a/sunrpc/rpc/xdr.h b/sunrpc/rpc/xdr.h index 192a9a8712..e1657c73e3 100644 --- a/sunrpc/rpc/xdr.h +++ b/sunrpc/rpc/xdr.h @@ -249,29 +249,31 @@ struct xdr_discrim * of external representation. */ -#define IXDR_GET_INT32(buf) ((int32_t)ntohl(*((uint32_t *) buf)++)) -#define IXDR_PUT_INT32(buf, v) (*((int32_t *) buf)++ \ - = (int32_t)htonl((uint32_t)v)) +#define IXDR_GET_INT32(buf) ((int32_t)ntohl((uint32_t)*(buf)++)) +#define IXDR_PUT_INT32(buf, v) (*(buf)++ = (int32_t)htonl((uint32_t)v)) #define IXDR_GET_U_INT32(buf) ((uint32_t)IXDR_GET_INT32(buf)) #define IXDR_PUT_U_INT32(buf, v) IXDR_PUT_INT32((buf), ((int32_t)(v))) -#define IXDR_GET_BOOL(buf) ((bool_t)IXDR_GET_INT32(buf)) -#define IXDR_GET_ENUM(buf, t) ((t)IXDR_GET_INT32(buf)) -#define IXDR_GET_SHORT(buf) ((short)IXDR_GET_INT32(buf)) -#define IXDR_GET_U_SHORT(buf) ((u_short)IXDR_GET_INT32(buf)) - -#define IXDR_PUT_BOOL(buf, v) IXDR_PUT_INT32((buf), ((int)(v))) -#define IXDR_PUT_ENUM(buf, v) IXDR_PUT_INT32((buf), ((int)(v))) -#define IXDR_PUT_SHORT(buf, v) IXDR_PUT_INT32((buf), ((int)(v))) -#define IXDR_PUT_U_SHORT(buf, v) IXDR_PUT_INT32((buf), ((int)(v))) - -/* This defines are removed from Sun for new platforms and shouldn't - be used any longer. */ +/* WARNING: The IXDR_*_LONG defines are removed by Sun for new platforms + * and shouldn't be used any longer. Code which use this defines or longs + * in the RPC code will not work on 64bit Solaris platforms ! + */ #define IXDR_GET_LONG(buf) ((long)ntohl((u_long)*((u_int32_t*)buf)++)) #define IXDR_PUT_LONG(buf, v) (*((u_int32_t*)(buf))++ = (long)htonl((u_long)v)) #define IXDR_GET_U_LONG(buf) ((u_long)IXDR_GET_LONG(buf)) #define IXDR_PUT_U_LONG(buf, v) IXDR_PUT_LONG((buf), ((long)(v))) + +#define IXDR_GET_BOOL(buf) ((bool_t)IXDR_GET_LONG(buf)) +#define IXDR_GET_ENUM(buf, t) ((t)IXDR_GET_LONG(buf)) +#define IXDR_GET_SHORT(buf) ((short)IXDR_GET_LONG(buf)) +#define IXDR_GET_U_SHORT(buf) ((u_short)IXDR_GET_LONG(buf)) + +#define IXDR_PUT_BOOL(buf, v) IXDR_PUT_LONG((buf), ((long)(v))) +#define IXDR_PUT_ENUM(buf, v) IXDR_PUT_LONG((buf), ((long)(v))) +#define IXDR_PUT_SHORT(buf, v) IXDR_PUT_LONG((buf), ((long)(v))) +#define IXDR_PUT_U_SHORT(buf, v) IXDR_PUT_LONG((buf), ((long)(v))) + /* * These are the "generic" xdr routines. * None of these can have const applied because it's not possible to |