Module Name:    src
Committed By:   pooka
Date:           Thu Jan 17 16:29:44 UTC 2013

Modified Files:
        src/lib/librumpclient: rumpclient.c

Log Message:
If the host doesn't support RTLD_NEXT, don't play the dynamic linking game.


To generate a diff of this commit:
cvs rdiff -u -r1.52 -r1.53 src/lib/librumpclient/rumpclient.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/lib/librumpclient/rumpclient.c
diff -u src/lib/librumpclient/rumpclient.c:1.52 src/lib/librumpclient/rumpclient.c:1.53
--- src/lib/librumpclient/rumpclient.c:1.52	Wed Sep 12 12:38:16 2012
+++ src/lib/librumpclient/rumpclient.c	Thu Jan 17 16:29:44 2013
@@ -1,4 +1,4 @@
-/*      $NetBSD: rumpclient.c,v 1.52 2012/09/12 12:38:16 pooka Exp $	*/
+/*      $NetBSD: rumpclient.c,v 1.53 2013/01/17 16:29:44 pooka Exp $	*/
 
 /*
  * Copyright (c) 2010, 2011 Antti Kantee.  All Rights Reserved.
@@ -49,7 +49,7 @@
 #endif
 
 #include <sys/cdefs.h>
-__RCSID("$NetBSD: rumpclient.c,v 1.52 2012/09/12 12:38:16 pooka Exp $");
+__RCSID("$NetBSD: rumpclient.c,v 1.53 2013/01/17 16:29:44 pooka Exp $");
 
 #include <sys/param.h>
 #include <sys/mman.h>
@@ -69,7 +69,6 @@ __RCSID("$NetBSD: rumpclient.c,v 1.52 20
 #include <err.h>
 #include <errno.h>
 #include <fcntl.h>
-#include <link.h>
 #include <poll.h>
 #include <pthread.h>
 #include <signal.h>
@@ -795,6 +794,7 @@ doinit(void)
 	return 0;
 }
 
+#ifdef RTLD_NEXT
 void *rumpclient__dlsym(void *, const char *);
 void *
 rumpclient__dlsym(void *handle, const char *symbol)
@@ -804,6 +804,7 @@ rumpclient__dlsym(void *handle, const ch
 }
 void *rumphijack_dlsym(void *, const char *)
     __attribute__((__weak__, alias("rumpclient__dlsym")));
+#endif
 
 static pid_t init_done = 0;
 
@@ -837,6 +838,7 @@ rumpclient_init(void)
 	 * sag mir, wo die symbols sind.  zogen fort, der krieg beginnt.
 	 * wann wird man je verstehen?  wann wird man je verstehen?
 	 */
+#ifdef RTLD_NEXT
 #define FINDSYM2(_name_,_syscall_)					\
 	if ((host_##_name_ = rumphijack_dlsym(RTLD_NEXT,		\
 	    #_syscall_)) == NULL) {					\
@@ -846,6 +848,10 @@ rumpclient_init(void)
 			errx(1, "cannot find %s: %s", #_syscall_,	\
 			    dlerror());					\
 	}
+#else
+#define FINDSYM2(_name_,_syscall)					\
+	host_##_name_ = _name_;
+#endif
 #define FINDSYM(_name_) FINDSYM2(_name_,_name_)
 #ifdef __NetBSD__
 	FINDSYM2(socket,__socket30)

Reply via email to