[oe] [meta-networking][PATCH 1/1] yp-tools: fix compile errors
Joe Slater
jslater at windriver.com
Wed Aug 17 20:22:14 UTC 2016
Fix two fatal warnings. The cast error only
occurs for some architectures.
Signed-off-by: Joe Slater <jslater at windriver.com>
---
.../nis/yp-tools/alignment-cheat.patch | 58 ++++++++++++++++++++
.../recipes-support/nis/yp-tools_3.3.bb | 3 +-
2 files changed, 59 insertions(+), 2 deletions(-)
create mode 100644 meta-networking/recipes-support/nis/yp-tools/alignment-cheat.patch
diff --git a/meta-networking/recipes-support/nis/yp-tools/alignment-cheat.patch b/meta-networking/recipes-support/nis/yp-tools/alignment-cheat.patch
new file mode 100644
index 0000000..856e42e
--- /dev/null
+++ b/meta-networking/recipes-support/nis/yp-tools/alignment-cheat.patch
@@ -0,0 +1,58 @@
+yp-tools: avoid fatal cast warning
+
+The way casting is done, we will get a fatal alignment warning on some
+architectures. This patch cheats our way around this.
+
+We also eliminate an unused constant which causes a fatal warning.
+
+Upstream-status: Pending
+
+Signed-off-by: Joe Slater <jslater at windriver.com>
+
+
+--- a/lib/do_ypcall.c
++++ b/lib/do_ypcall.c
+@@ -44,7 +44,9 @@ struct dom_binding
+ typedef struct dom_binding dom_binding;
+
+ static const struct timeval RPCTIMEOUT = {25, 0};
++#if 0
+ static const struct timeval UDPTIMEOUT = {5, 0};
++#endif
+ static int const MAXTRIES = 2;
+ static pthread_mutex_t ypbindlist_lock = PTHREAD_MUTEX_INITIALIZER;
+ static dom_binding *ypbindlist = NULL;
+@@ -381,7 +383,7 @@ __ypclnt_call (u_long prog, xdrproc_t xa
+
+ int
+ do_ypcall (const char *domain, u_long prog, xdrproc_t xargs,
+- caddr_t req, xdrproc_t xres, caddr_t resp)
++ caddr_t req, xdrproc_t xres, void *resp)
+ {
+ dom_binding *ydb;
+ int status;
+@@ -450,9 +452,9 @@ do_ypcall (const char *domain, u_long pr
+ /* Like do_ypcall, but translate the status value if necessary. */
+ int
+ do_ypcall_tr (const char *domain, u_long prog, xdrproc_t xargs,
+- caddr_t req, xdrproc_t xres, caddr_t resp)
++ caddr_t req, xdrproc_t xres, void *resp)
+ {
+- int status = do_ypcall (domain, prog, xargs, req, xres, resp);
++ int status = do_ypcall (domain, prog, xargs, req, xres, (void *) resp);
+ if (status == YPERR_SUCCESS)
+ /* We cast to ypresp_val although the pointer could also be of
+ type ypresp_key_val or ypresp_master or ypresp_order or
+--- a/lib/internal.h
++++ b/lib/internal.h
+@@ -17,8 +17,8 @@
+ #define _INTERNAL_H_
+
+ extern int do_ypcall (const char *domain, u_long prog, xdrproc_t xargs,
+- caddr_t req, xdrproc_t xres, caddr_t resp);
++ caddr_t req, xdrproc_t xres, void *resp);
+ extern int do_ypcall_tr (const char *domain, u_long prog, xdrproc_t xargs,
+- caddr_t req, xdrproc_t xres, caddr_t resp);
++ caddr_t req, xdrproc_t xres, void *resp);
+ extern int yp_maplist (const char *, struct ypmaplist **);
+ #endif
diff --git a/meta-networking/recipes-support/nis/yp-tools_3.3.bb b/meta-networking/recipes-support/nis/yp-tools_3.3.bb
index b89f0b8..69217fa 100644
--- a/meta-networking/recipes-support/nis/yp-tools_3.3.bb
+++ b/meta-networking/recipes-support/nis/yp-tools_3.3.bb
@@ -11,11 +11,10 @@ ypwhich, yppasswd, domainname, nisdomainname \
and ypdomainname. \
"
-PNBLACKLIST[yp-tools] ?= "BROKEN: fails to build for qemuarm."
-
SRC_URI = "http://www.linux-nis.org/download/yp-tools/${BP}.tar.bz2 \
file://domainname.service \
file://yp-tools-ipv4-ipv6-Provide-an-in-place-version-of-mapv4v6addr.patch \
+ file://alignment-cheat.patch \
"
SRC_URI[md5sum] = "acebeecc11a73fb8097503670344834c"
SRC_URI[sha256sum] = "812be817df3d4c25813552be336c6c6ad5aedaf65611b81af3ad9f98fb3c2e50"
--
1.7.9.5
More information about the Openembedded-devel
mailing list