<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Mar 17, 2016 at 1:18 AM, Khem Raj <span dir="ltr">&lt;<a href="mailto:raj.khem@gmail.com" target="_blank">raj.khem@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">make it more portable across libc implementations<br>
<br>
Signed-off-by: Khem Raj &lt;<a href="mailto:raj.khem@gmail.com">raj.khem@gmail.com</a>&gt;<br>
---<br>
 ...001-Access-c_ispeed-and-c_ospeed-via-APIs.patch | 39 ++++++++++++++++++++++<br>
 meta/recipes-connectivity/socat/<a href="http://socat_1.7.3.1.bb" rel="noreferrer" target="_blank">socat_1.7.3.1.bb</a>   |  1 +<br>
 2 files changed, 40 insertions(+)<br>
 create mode 100644 meta/recipes-connectivity/socat/socat/0001-Access-c_ispeed-and-c_ospeed-via-APIs.patch<br>
<br>
diff --git a/meta/recipes-connectivity/socat/socat/0001-Access-c_ispeed-and-c_ospeed-via-APIs.patch b/meta/recipes-connectivity/socat/socat/0001-Access-c_ispeed-and-c_ospeed-via-APIs.patch<br>
new file mode 100644<br>
index 0000000..367b48f<br>
--- /dev/null<br>
+++ b/meta/recipes-connectivity/socat/socat/0001-Access-c_ispeed-and-c_ospeed-via-APIs.patch<br>
@@ -0,0 +1,39 @@<br>
+From 545d3dec8c91d6074516ffcfa79323ddf9d83839 Mon Sep 17 00:00:00 2001<br>
+From: Khem Raj &lt;<a href="mailto:raj.khem@gmail.com">raj.khem@gmail.com</a>&gt;<br>
+Date: Tue, 15 Mar 2016 21:36:02 +0000<br>
+Subject: [PATCH] Access c_ispeed and c_ospeed via APIs<br>
+<br>
+Use cfsetispeed(), cfsetospeed(), cfgetispeed, and cfgetospeed()<br>
+instead of operating on c_ispeed and c_ospeed termios structure<br>
+members directly because they are not guaranteed to exist on all<br>
+libc implementations<br></blockquote><div><br></div><div>I finally bisected a runtime failure on my container platform to this change. I&#39;m now</div><div>failing the new assertion, where I wasn&#39;t failing before this was added:</div><div><br></div><div>socat-1.7.3.1/xioinitialize.c:70: xioinitialize: Assertion `cfgetispeed(&amp;tdata.termarg) == tdata.speeds[ISPEED_OFFSET]&#39; failed.</div><div><br></div><div>I can revert this in my own layers, but what&#39;s the best way forward to get this</div><div>fixed in core ?</div><div><br></div><div>khem: This says it is submitted upstream, did it get accepted ? I can follow up on the socat</div><div>list if it merged there as well.</div><div><br></div><div>Bruce</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
+<br>
+Signed-off-by: Khem Raj &lt;<a href="mailto:raj.khem@gmail.com">raj.khem@gmail.com</a>&gt;<br>
+---<br>
+Upstream-Status: Submitted<br>
+<br>
+ xioinitialize.c | 8 ++++----<br>
+ 1 file changed, 4 insertions(+), 4 deletions(-)<br>
+<br>
+diff --git a/xioinitialize.c b/xioinitialize.c<br>
+index 9f50155..632ca4c 100644<br>
+--- a/xioinitialize.c<br>
++++ b/xioinitialize.c<br>
+@@ -65,10 +65,10 @@ int xioinitialize(void) {<br>
+ #if HAVE_TERMIOS_ISPEED &amp;&amp; (ISPEED_OFFSET != -1) &amp;&amp; (OSPEED_OFFSET != -1)<br>
+ #if defined(ISPEED_OFFSET) &amp;&amp; (ISPEED_OFFSET != -1)<br>
+ #if defined(OSPEED_OFFSET) &amp;&amp; (OSPEED_OFFSET != -1)<br>
+-      tdata.termarg.c_ispeed = 0x56789abc;<br>
+-      tdata.termarg.c_ospeed = 0x6789abcd;<br>
+-      assert(tdata.termarg.c_ispeed == tdata.speeds[ISPEED_OFFSET]);<br>
+-      assert(tdata.termarg.c_ospeed == tdata.speeds[OSPEED_OFFSET]);<br>
++      cfsetispeed(&amp;tdata.termarg, 0x56789abc);<br>
++      cfsetospeed(&amp;tdata.termarg, 0x6789abcd);<br>
++      assert(cfgetispeed(&amp;tdata.termarg) == tdata.speeds[ISPEED_OFFSET]);<br>
++      assert(cfgetospeed(&amp;tdata.termarg) == tdata.speeds[OSPEED_OFFSET]);<br>
+ #endif<br>
+ #endif<br>
+ #endif<br>
+--<br>
+1.9.1<br>
+<br>
diff --git a/meta/recipes-connectivity/socat/<a href="http://socat_1.7.3.1.bb" rel="noreferrer" target="_blank">socat_1.7.3.1.bb</a> b/meta/recipes-connectivity/socat/<a href="http://socat_1.7.3.1.bb" rel="noreferrer" target="_blank">socat_1.7.3.1.bb</a><br>
index b9a8a2f..6da9a17 100644<br>
--- a/meta/recipes-connectivity/socat/<a href="http://socat_1.7.3.1.bb" rel="noreferrer" target="_blank">socat_1.7.3.1.bb</a><br>
+++ b/meta/recipes-connectivity/socat/<a href="http://socat_1.7.3.1.bb" rel="noreferrer" target="_blank">socat_1.7.3.1.bb</a><br>
@@ -15,6 +15,7 @@ LIC_FILES_CHKSUM = &quot;file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \<br>
 SRC_URI = &quot;<a href="http://www.dest-unreach.org/socat/download/socat-${PV}.tar.bz2" rel="noreferrer" target="_blank">http://www.dest-unreach.org/socat/download/socat-${PV}.tar.bz2</a> \<br>
            file://Makefile.in-fix-for-parallel-build.patch \<br>
            file://0001-define-NETDB_INTERNAL-to-1-if-not-available.patch \<br>
+           file://0001-Access-c_ispeed-and-c_ospeed-via-APIs.patch \<br>
 &quot;<br>
<br>
 SRC_URI[md5sum] = &quot;334e46924f2b386299c9db2ac22bcd36&quot;<br>
<span class="HOEnZb"><font color="#888888">--<br>
1.9.1<br>
<br>
--<br>
_______________________________________________<br>
Openembedded-core mailing list<br>
<a href="mailto:Openembedded-core@lists.openembedded.org">Openembedded-core@lists.openembedded.org</a><br>
<a href="http://lists.openembedded.org/mailman/listinfo/openembedded-core" rel="noreferrer" target="_blank">http://lists.openembedded.org/mailman/listinfo/openembedded-core</a><br>
</font></span></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature">&quot;Thou shalt not follow the NULL pointer, for chaos and madness await thee at its end&quot;</div>
</div></div>