All of lore.kernel.org
 help / color / mirror / Atom feed
* [meta-networking][PATCH 1/1] yp-tools: fix compile errors
@ 2016-08-17 20:22 Joe Slater
  2016-08-17 23:19 ` Khem Raj
  0 siblings, 1 reply; 5+ messages in thread
From: Joe Slater @ 2016-08-17 20:22 UTC (permalink / raw)
  To: openembedded-devel

Fix two fatal warnings.  The cast error only
occurs for some architectures.

Signed-off-by: Joe Slater <jslater@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@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



^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [meta-networking][PATCH 1/1] yp-tools: fix compile errors
  2016-08-17 20:22 [meta-networking][PATCH 1/1] yp-tools: fix compile errors Joe Slater
@ 2016-08-17 23:19 ` Khem Raj
  2016-08-18 16:52   ` Slater, Joseph
  0 siblings, 1 reply; 5+ messages in thread
From: Khem Raj @ 2016-08-17 23:19 UTC (permalink / raw)
  To: openembedded-devel

[-- Attachment #1: Type: text/plain, Size: 4445 bytes --]


> On Aug 17, 2016, at 1:22 PM, Joe Slater <jslater@windriver.com> wrote:
> 
> Fix two fatal warnings.  The cast error only
> occurs for some architectures.
> 
> Signed-off-by: Joe Slater <jslater@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.
> +

These changes look fine, however you should run it by the upstream.

> +We also eliminate an unused constant which causes a fatal warning.
> +
> +Upstream-status: Pending
> +
> +Signed-off-by: Joe Slater <jslater@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

perhaps its better to remove the unused code instead of making preprocessor
work even more.

> + 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 ?

> +   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


[-- Attachment #2: Message signed with OpenPGP using GPGMail --]
[-- Type: application/pgp-signature, Size: 211 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [meta-networking][PATCH 1/1] yp-tools: fix compile errors
  2016-08-17 23:19 ` Khem Raj
@ 2016-08-18 16:52   ` Slater, Joseph
  2016-08-18 17:47     ` Khem Raj
  2016-08-18 18:20     ` Joe MacDonald
  0 siblings, 2 replies; 5+ messages in thread
From: Slater, Joseph @ 2016-08-18 16:52 UTC (permalink / raw)
  To: openembedded-devel



> -----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 <jslater@windriver.com> wrote:
> >
> > Fix two fatal warnings.  The cast error only
> > occurs for some architectures.
> >
> > Signed-off-by: Joe Slater <jslater@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.
> > +
> 
> 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.

> 
> > +We also eliminate an unused constant which causes a fatal warning.
> > +
> > +Upstream-status: Pending
> > +
> > +Signed-off-by: Joe Slater <jslater@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
> 
> 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.

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



^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [meta-networking][PATCH 1/1] yp-tools: fix compile errors
  2016-08-18 16:52   ` Slater, Joseph
@ 2016-08-18 17:47     ` Khem Raj
  2016-08-18 18:20     ` Joe MacDonald
  1 sibling, 0 replies; 5+ messages in thread
From: Khem Raj @ 2016-08-18 17:47 UTC (permalink / raw)
  To: OpenEmbedded Devel List

[-- Attachment #1: Type: text/plain, Size: 5807 bytes --]


> On Aug 18, 2016, at 9:52 AM, Slater, Joseph <joe.slater@windriver.com> 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 <jslater@windriver.com> wrote:
>>> 
>>> Fix two fatal warnings.  The cast error only
>>> occurs for some architectures.
>>> 
>>> Signed-off-by: Joe Slater <jslater@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.
>>> +
>> 
>> 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 <jslater@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
>> 
>> 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


[-- Attachment #2: Message signed with OpenPGP using GPGMail --]
[-- Type: application/pgp-signature, Size: 211 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [meta-networking][PATCH 1/1] yp-tools: fix compile errors
  2016-08-18 16:52   ` Slater, Joseph
  2016-08-18 17:47     ` Khem Raj
@ 2016-08-18 18:20     ` Joe MacDonald
  1 sibling, 0 replies; 5+ messages in thread
From: Joe MacDonald @ 2016-08-18 18:20 UTC (permalink / raw)
  To: Slater, Joseph; +Cc: openembedded-devel

[-- Attachment #1: Type: text/plain, Size: 6463 bytes --]

[Re: [oe] [meta-networking][PATCH 1/1] yp-tools: fix compile errors] On 16.08.18 (Thu 16:52) 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 <jslater@windriver.com> wrote:
> > >
> > > Fix two fatal warnings.  The cast error only
> > > occurs for some architectures.
> > >
> > > Signed-off-by: Joe Slater <jslater@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.
> > > +
> > 
> > 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.

Hmm, in that case, I wonder why we wouldn't just do the uprev to 3.5
(the end of the line for the 3.x series) or 4.2.  More thinking out loud
than anything, I suppose, but if you know of a good reason to not push
3.3 off a cliff entirely, let me know.

> > > +We also eliminate an unused constant which causes a fatal warning.
> > > +
> > > +Upstream-status: Pending
> > > +
> > > +Signed-off-by: Joe Slater <jslater@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
> > 
> > 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.

So please make this change in your v2, then.  It's a personal bias
thing, probably, but it seems to me there's almost never any value to
leaving a "#if 0" block in code these days.  Particularly not when
we're talking about a patch that gets applied by quilt in the build
system which is then trivial to restore the deleted code if, for some
reason, you need it.

-J.

> > > + 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.
> 
> 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
> 
-- 
-Joe MacDonald.
:wq

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 484 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2016-08-18 18:20 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-08-17 20:22 [meta-networking][PATCH 1/1] yp-tools: fix compile errors Joe Slater
2016-08-17 23:19 ` Khem Raj
2016-08-18 16:52   ` Slater, Joseph
2016-08-18 17:47     ` Khem Raj
2016-08-18 18:20     ` Joe MacDonald

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.