Update.
authorUlrich Drepper <drepper@redhat.com>
Wed, 16 Dec 1998 11:10:36 +0000 (11:10 +0000)
committerUlrich Drepper <drepper@redhat.com>
Wed, 16 Dec 1998 11:10:36 +0000 (11:10 +0000)
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.

ChangeLog
FAQ.in
sunrpc/rpc/xdr.h

index 916f081..fd10d28 100644 (file)
--- 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 d68d2dc..3635e7e 100644 (file)
--- 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
 
index 192a9a8..e1657c7 100644 (file)
@@ -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