> On Aug 18, 2016, at 9:52 AM, Slater, Joseph wrote: > > > >> -----Original Message----- >> From: openembedded-devel-bounces@lists.openembedded.org [mailto:openembedded-devel- >> bounces@lists.openembedded.org] On Behalf Of Khem Raj >> Sent: Wednesday, August 17, 2016 4:20 PM >> To: openembedded-devel@lists.openembedded.org >> Subject: Re: [oe] [meta-networking][PATCH 1/1] yp-tools: fix compile errors >> >> >>> On Aug 17, 2016, at 1:22 PM, Joe Slater wrote: >>> >>> Fix two fatal warnings. The cast error only >>> occurs for some architectures. >>> >>> Signed-off-by: Joe Slater >>> --- >>> .../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. >>> + >> >> These changes look fine, however you should run it by the upstream. > > Version 4.2 of the tools seems to bear little resemblance to 3.3. The code and > structures patched here no longer exist. OK > >> >>> +We also eliminate an unused constant which causes a fatal warning. >>> + >>> +Upstream-status: Pending >>> + >>> +Signed-off-by: Joe Slater >>> + >>> + >>> +--- 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 >> >> perhaps its better to remove the unused code instead of making preprocessor >> work even more. > > Probably. I think RPCTIMEOUT made it to 4.2, but UDPTIMEOUT did not. > >> >>> + 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); >> >> resp is already a void pointer why is this typecast needed ? > > I put it in someplace along the line in trying to fix the problem and forgot > to take it out. > > V2 or leave it? This code does not look like it's going anywhere beyond here. > v2 just for this. > Joe > > >> >>> + 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 >>> >>> -- >>> _______________________________________________ >>> Openembedded-devel mailing list >>> Openembedded-devel@lists.openembedded.org >>> http://lists.openembedded.org/mailman/listinfo/openembedded-devel > > -- > _______________________________________________ > Openembedded-devel mailing list > Openembedded-devel@lists.openembedded.org > http://lists.openembedded.org/mailman/listinfo/openembedded-devel