66 lines
1.9 KiB
Diff
66 lines
1.9 KiB
Diff
|
From 8cea0778f0fb838a7bd764be08f15e1494e5a0b2 Mon Sep 17 00:00:00 2001
|
||
|
From: Mike Frysinger <vapier@gentoo.org>
|
||
|
Date: Fri, 19 Nov 2010 23:50:27 -0500
|
||
|
Subject: [PATCH 4/4] NO_PERROR: control overriding of perror() symbol
|
||
|
|
||
|
Doing static builds of portmap might fail when the C library's perror()
|
||
|
function is pulled in and collides with portmap's definition. So add a
|
||
|
flag to control the local override.
|
||
|
|
||
|
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
|
||
|
---
|
||
|
Makefile | 5 +++++
|
||
|
README | 1 +
|
||
|
2 files changed, 6 insertions(+), 0 deletions(-)
|
||
|
|
||
|
diff --git a/Makefile b/Makefile
|
||
|
index 9df5574..1635107 100644
|
||
|
--- a/Makefile
|
||
|
+++ b/Makefile
|
||
|
@@ -32,6 +32,11 @@ ifneq ($(NO_FORK),)
|
||
|
CPPFLAGS += -DNO_FORK
|
||
|
endif
|
||
|
|
||
|
+# For static builds, we might hit perror() symbol clashes
|
||
|
+ifneq ($(NO_PERROR),)
|
||
|
+CPPFLAGS += -DNO_PERROR
|
||
|
+endif
|
||
|
+
|
||
|
# Comment out if your RPC library does not allocate privileged ports for
|
||
|
# requests from processes with root privilege, or the new portmap will
|
||
|
# always reject requests to register/unregister services on privileged
|
||
|
diff --git a/README b/README
|
||
|
index bda1707..05861a8 100644
|
||
|
--- a/README
|
||
|
+++ b/README
|
||
|
@@ -19,6 +19,7 @@ There is no "./configure", just use "make".
|
||
|
Some make variable can be used to control compilation.
|
||
|
|
||
|
NO_FORK= if non-empty, don't use fork (good for nommu systems)
|
||
|
+ NO_PERROR= if non-empty, don't override the perror() func
|
||
|
NO_PIE= if non-empty, don't build portmap as a PIE
|
||
|
NO_TCP_WRAPPER= if non-empty, don't use tcp_wrappers
|
||
|
USE_DNS= if set, tcp_wrappers can check peers based on hostname
|
||
|
diff --git a/portmap.c b/portmap.c
|
||
|
index 2a98881..94abc64 100644
|
||
|
--- a/portmap.c
|
||
|
+++ b/portmap.c
|
||
|
@@ -391,12 +391,14 @@ main(int argc, char **argv)
|
||
|
abort();
|
||
|
}
|
||
|
|
||
|
+#ifndef NO_PERROR
|
||
|
/* need to override perror calls in rpc library */
|
||
|
void perror(const char *what)
|
||
|
{
|
||
|
|
||
|
syslog(LOG_ERR, "%s: %m", what);
|
||
|
}
|
||
|
+#endif
|
||
|
|
||
|
static struct pmaplist *
|
||
|
find_service(u_long prog, u_long vers, u_long prot)
|
||
|
--
|
||
|
1.7.3.1
|
||
|
|