1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
|
From dc2b55a7f83d6c505ba79b83089f365bb0c24bf1 Mon Sep 17 00:00:00 2001
From: Cyril Brulebois <kibi@debian.org>
Date: Fri, 3 Jul 2009 15:31:42 +0200
Subject: librpcsecgss: FTBFS on GNU/kFreeBSD
Fix FTBFS on GNU/kFreeBSD by using getpid() (rather than arc4random())
not only if __linux__ is defined, but also if __GLIBC__ is defined, in
both src/clnt_{tcp,udp}.c
Please find attached a trivial patch to fix the FTBFS on GNU/kFreeBSD:
| /bin/sh ../libtool --tag=CC --mode=link i486-kfreebsd-gnu-gcc -g -O2 -version-info 3:0:0 -Wl,-z,defs -o librpcsecgss.la -rpath /usr/lib librpcsecgss_la-auth_gss.lo librpcsecgss_la-authgss_prot.lo librpcsecgss_la-svc.lo librpcsecgss_la-svc_run.lo librpcsecgss_la-svc_auth.lo librpcsecgss_la-svc_auth_none.lo librpcsecgss_la-svc_auth_unix.lo librpcsecgss_la-svc_auth_gss.lo librpcsecgss_la-svc_raw.lo librpcsecgss_la-svc_simple.lo librpcsecgss_la-svc_tcp.lo librpcsecgss_la-svc_udp.lo librpcsecgss_la-rpc_commondata.lo librpcsecgss_la-clnt_generic.lo librpcsecgss_la-clnt_perror.lo librpcsecgss_la-clnt_raw.lo librpcsecgss_la-clnt_simple.lo librpcsecgss_la-clnt_tcp.lo librpcsecgss_la-clnt_udp.lo -lgssglue -ldl
| i486-kfreebsd-gnu-gcc -shared .libs/librpcsecgss_la-auth_gss.o .libs/librpcsecgss_la-authgss_prot.o .libs/librpcsecgss_la-svc.o .libs/librpcsecgss_la-svc_run.o .libs/librpcsecgss_la-svc_auth.o .libs/librpcsecgss_la-svc_auth_none.o .libs/librpcsecgss_la-svc_auth_unix.o .libs/librpcsecgss_la-svc_auth_gss.o .libs/librpcsecgss_la-svc_raw.o .libs/librpcsecgss_la-svc_simple.o .libs/librpcsecgss_la-svc_tcp.o .libs/librpcsecgss_la-svc_udp.o .libs/librpcsecgss_la-rpc_commondata.o .libs/librpcsecgss_la-clnt_generic.o .libs/librpcsecgss_la-clnt_perror.o .libs/librpcsecgss_la-clnt_raw.o .libs/librpcsecgss_la-clnt_simple.o .libs/librpcsecgss_la-clnt_tcp.o .libs/librpcsecgss_la-clnt_udp.o -lgssglue -ldl -Wl,-z -Wl,defs -Wl,-soname -Wl,librpcsecgss.so.3 -o .libs/librpcsecgss.so.3.0.0
| .libs/librpcsecgss_la-clnt_tcp.o: In function `rpcsecgss_clnttcp_create':
| /build/buildd-librpcsecgss_0.18-2-kfreebsd-i386-Una4UY/librpcsecgss-0.18/src/clnt_tcp.c:232: undefined reference to `arc4random'
| .libs/librpcsecgss_la-clnt_udp.o: In function `rpcsecgss_clntudp_bufcreate':
| /build/buildd-librpcsecgss_0.18-2-kfreebsd-i386-Una4UY/librpcsecgss-0.18/src/clnt_udp.c:160: undefined reference to `arc4random'
| collect2: ld returned 1 exit status
See e.g. https://buildd.debian.org/fetch.cgi?pkg=librpcsecgss&arch=kfreebsd-i386&ver=0.18-2&stamp=1246620313&file=log&as=raw
Signed-off-by: Anibal Monsalve Salazar <anibal@debian.org>
---
src/clnt_tcp.c | 2 +-
src/clnt_udp.c | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
Index: librpcsecgss-0.19/src/clnt_tcp.c
===================================================================
--- librpcsecgss-0.19.orig/src/clnt_tcp.c
+++ librpcsecgss-0.19/src/clnt_tcp.c
@@ -225,7 +225,7 @@ clnttcp_create(raddr, prog, vers, sockp,
* Initialize call message
*/
(void)gettimeofday(&now, (struct timezone *)0);
-#ifdef __linux__
+#if defined (__linux__) || defined(__GLIBC__)
call_msg.rm_xid = getpid() ^ now.tv_sec ^ now.tv_usec;
#else
call_msg.rm_xid = arc4random();
Index: librpcsecgss-0.19/src/clnt_udp.c
===================================================================
--- librpcsecgss-0.19.orig/src/clnt_udp.c
+++ librpcsecgss-0.19/src/clnt_udp.c
@@ -153,7 +153,7 @@ clntudp_bufcreate(raddr, program, versio
cu->cu_total.tv_usec = -1;
cu->cu_sendsz = sendsz;
cu->cu_recvsz = recvsz;
-#ifdef __linux__
+#if defined (__linux__) || defined(__GLIBC__)
call_msg.rm_xid = getpid() ^ now.tv_sec ^ now.tv_usec;
#else
call_msg.rm_xid = arc4random();
|