Re: [NFS] nfs-utils 0.1.3 is released.

H . J . Lu (hjl@valinux.com)
Mon, 29 Nov 1999 15:42:26 -0800


On Mon, Nov 29, 1999 at 03:21:13PM -0800, Thomas Davis wrote:
> "H . J . Lu" wrote:
> >
> > I fixed a bug in rquotad. Please double check it doesn't break
> > anything.
> >
> > Thanks.
> >
>
> Trying to use it on rh5.1; it won't compile, gives the following:
>
> gcc -L../../support/lib -o mountd mountd.o mount_dispatch.o auth.o
> rmtab.o -lexport -lnfs
> ../../support/lib/libexport.a(mount_xdr.o): In function `xdr_ppathcnf':
> /usr/src/redhat/BUILD/nfs-utils-0.1.3/support/export/mount_xdr.c:240:
> undefined reference to `IXDR_PUT_INT32'
> /usr/src/redhat/BUILD/nfs-utils-0.1.3/support/export/mount_xdr.c:294:
> undefined reference to `IXDR_GET_INT32'
> make[2]: *** [mountd] Error 1
> make[1]: *** [all] Error 2
> make: *** [all] Error 2
>
> I checked; IXDR_GET_INT32 and IXDR_PUT_INT32 are not defined in
> /usr/include/rpc/xdr.h
>
> The version of glibc is:
>
> [root nfs-utils-0.1.3]# rpm -qf /usr/include/rpc/xdr.h
> glibc-devel-2.0.7-19
>
> I got it to compile by transplanting the following lines into
> /usr/include/rpc/xdr.h:
>
> #define IXDR_GET_INT32(buf)
> ((int32_t)ntohl((u_int32_t)*(buf)++))
> #define IXDR_PUT_INT32(buf, v) (*(buf)++ =
> (int32_t)htonl((u_int32_t)(v)))
> #define IXDR_GET_U_INT32(buf) ((u_int32_t)IXDR_GET_INT32(buf))
> #define IXDR_PUT_U_INT32(buf, v) IXDR_PUT_INT32(buf, (int32_t)(v))

Could you please back out your change to /usr/include/rpc/xdr.h and
try this patch instead?

Thanks.

-- 
H.J. Lu (hjl@gnu.org)
--
? tools/rpcgen/rpcgen
Index: tools/rpcgen/rpc_main.c
===================================================================
RCS file: /cvsroot/nfs/nfs-utils/tools/rpcgen/rpc_main.c,v
retrieving revision 1.2
diff -u -p -r1.2 rpc_main.c
--- tools/rpcgen/rpc_main.c	1999/10/28 19:58:00	1.2
+++ tools/rpcgen/rpc_main.c	1999/11/29 23:40:56
@@ -488,6 +488,19 @@ h_output(char *infile, char *define, int
 
 	f_print(fout, "#include <rpc/rpc.h>\n\n");
 
+	f_print(fout, "#ifndef IXDR_GET_INT32\n");
+	f_print(fout, "#define IXDR_GET_INT32(buf) ((int32_t)ntohl((uint32_t)*(buf)++))\n");
+	f_print(fout, "#endif\n");
+	f_print(fout, "#ifndef IXDR_PUT_INT32\n");
+	f_print(fout, "#define IXDR_PUT_INT32(buf, v) (*(buf)++ = (int32_t)htonl((uint32_t)(v)))\n");
+	f_print(fout, "#endif\n");
+	f_print(fout, "#ifndef IXDR_GET_U_INT32\n");
+	f_print(fout, "#define IXDR_GET_U_INT32(buf) ((uint32_t)IXDR_GET_INT32(buf))\n");
+	f_print(fout, "#endif\n");
+	f_print(fout, "#ifndef IXDR_GET_U_INT32\n");
+	f_print(fout, "#define IXDR_PUT_U_INT32(buf, v) IXDR_PUT_INT32(buf, (int32_t)(v))\n");
+	f_print(fout, "#endif\n");
+
 	tell = ftell(fout);
 	/* print data definitions */
 	while ((def = get_definition()) != NULL) {

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/