<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html lang="en" style='--code-editor-font: var(--default-mono-font, "GitLab Mono"), JetBrains Mono, Menlo, DejaVu Sans Mono, Liberation Mono, Consolas, Ubuntu Mono, Courier New, andale mono, lucida console, monospace;'>
<head>
<meta content="text/html; charset=US-ASCII" http-equiv="Content-Type">
<title>
GitLab
</title>

<style data-premailer="ignore" type="text/css">
a { color: #1068bf; }
</style>

<style>img {
max-width: 100%; height: auto;
}
body {
font-size: .875rem;
}
body {
-webkit-text-shadow: rgba(255,255,255,.01) 0 0 1px;
}
body {
font-family: "GitLab Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Noto Sans",Ubuntu,Cantarell,"Helvetica Neue",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"; font-size: inherit;
}
</style>
</head>
<body style='font-size: inherit; -webkit-text-shadow: rgba(255,255,255,.01) 0 0 1px; font-family: "GitLab Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Noto Sans",Ubuntu,Cantarell,"Helvetica Neue",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";'>
<div class="content">

<p class="details" style="font-style: italic; color: #737278;">
<a href="https://gitlab.rtems.org/tracmigrate">Trac Migrate</a> created an issue: <a href="https://gitlab.rtems.org/rtems/pkg/rtems-net-legacy/-/issues/21">#21</a>
</p>
<p>
Assignee: Trac Migrate
</p>
<div class="md" style="position: relative; z-index: 1; color: #28272d; word-wrap: break-word;">
<p dir="auto" style="color: #28272d; margin: 0 0 16px;" align="initial">Original author: johill</p>
<p dir="auto" style="color: #28272d; margin: 0 0 16px;" align="initial">nios2-rtems4.11-gcc (GCC) 4.9.3 20150626 (RTEMS 4.11, RSB no-repo, Newlib 2.2.0.20150423)</p>
<p dir="auto" style="color: #28272d; margin: 0 0 16px;" align="initial">configure --target=nios2-rtems4.11 --prefix=/ade/rtems/install/rtems-4-11 --disable-itron --disable-tests --enable-posix --enable-cxx --enable-rtemsbsp=altera-sys-config-S43X-TDAQ-dev --enable-networking</p>
<p dir="auto" style="color: #28272d; margin: 0 0 16px;" align="initial">This is occurring in 4.11.1.99.</p>
<p dir="auto" style="color: #28272d; margin: 0 0 16px;" align="initial">I don't suggest that this fix is a great design, but its what we are currently using here to get our regression tests to pass w/o causing a misaligned pointer exception. This change probably requires at least gcc 4.6 to properly align a char buffer on the stack this way.</p>
<div class="gl-relative markdown-code-block js-markdown-code">
<pre class="code highlight js-syntax-highlight language-plaintext" v-pre="true" style='display: block; font-size: 14px; color: #28272d; line-height: 1.6em; overflow-x: auto; border-radius: .25rem; position: relative; font-family: "GitLab Mono","JetBrains Mono","Menlo","DejaVu Sans Mono","Liberation Mono","Consolas","Ubuntu Mono","Courier New","andale mono","lucida console",monospace; word-break: break-all; word-wrap: break-word; background-color: #fbfafd; margin: 0 0 16px; padding: 12px; border: 1px solid #dcdcde;'><code style='font-size: inherit; color: inherit; word-wrap: normal; word-break: keep-all; background-color: inherit; border-radius: .25rem; white-space: pre; margin-top: 0; font-family: "GitLab Mono","JetBrains Mono","Menlo","DejaVu Sans Mono","Liberation Mono","Consolas","Ubuntu Mono","Courier New","andale mono","lucida console",monospace; vertical-align: bottom; overflow-wrap: normal; padding: unset;'><span id="LC1" class="line" lang="plaintext" style="margin-top: 0;"> git diff /ade/rtems/release/rtems-4-11/c/src/../../cpukit/libnetworking/libc/res_query.c</span>
<span id="LC2" class="line" lang="plaintext">diff --git a/cpukit/libnetworking/libc/res_query.c b/cpukit/libnetworking/libc/res_query.c</span>
<span id="LC3" class="line" lang="plaintext">index b742c30..e06f70f 100644</span>
<span id="LC4" class="line" lang="plaintext">--- a/cpukit/libnetworking/libc/res_query.c</span>
<span id="LC5" class="line" lang="plaintext">+++ b/cpukit/libnetworking/libc/res_query.c</span>
<span id="LC6" class="line" lang="plaintext">@@ -113,7 +113,7 @@ res_query(</span>
<span id="LC7" class="line" lang="plaintext">        u_char *answer,         /* buffer to put answer */</span>
<span id="LC8" class="line" lang="plaintext">        int anslen)             /* size of answer buffer */</span>
<span id="LC9" class="line" lang="plaintext"> {</span>
<span id="LC10" class="line" lang="plaintext">-       u_char buf[MAXPACKET];</span>
<span id="LC11" class="line" lang="plaintext">+       u_char buf[MAXPACKET] __attribute ((aligned(4)));</span>
<span id="LC12" class="line" lang="plaintext">        HEADER *hp = (HEADER *) answer;</span>
<span id="LC13" class="line" lang="plaintext">        int n;</span></code></pre>
<copy-code></copy-code><insert-code-snippet></insert-code-snippet>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
<pre class="code highlight js-syntax-highlight language-plaintext" v-pre="true" style='display: block; font-size: 14px; color: #28272d; line-height: 1.6em; overflow-x: auto; border-radius: .25rem; position: relative; font-family: "GitLab Mono","JetBrains Mono","Menlo","DejaVu Sans Mono","Liberation Mono","Consolas","Ubuntu Mono","Courier New","andale mono","lucida console",monospace; word-break: break-all; word-wrap: break-word; background-color: #fbfafd; margin: 0 0 16px; padding: 12px; border: 1px solid #dcdcde;'><code style='font-size: inherit; color: inherit; word-wrap: normal; word-break: keep-all; background-color: inherit; border-radius: .25rem; white-space: pre; margin-top: 0; font-family: "GitLab Mono","JetBrains Mono","Menlo","DejaVu Sans Mono","Liberation Mono","Consolas","Ubuntu Mono","Courier New","andale mono","lucida console",monospace; vertical-align: bottom; overflow-wrap: normal; padding: unset;'><span id="LC1" class="line" lang="plaintext" style="margin-top: 0;">#0  _Thread_Do_dispatch (cpu_self=<optimized out>, level=<optimized out>, level@entry=1) at /ade/rtems/release/rtems-4-11/c/src/../../cpukit/score/src/threaddispatch.c:132</span>
<span id="LC2" class="line" lang="plaintext">#1  0x0807a6d4 in _Thread_Dispatch_enable (cpu_self=<optimized out>) at ../../cpukit/../../../altera-sys-config-llrf-fcm-diacrode/lib/include/rtems/score/threaddispatch.h:313</span>
<span id="LC3" class="line" lang="plaintext">#2  _Thread_Enable_dispatch_body () at ../../cpukit/../../../altera-sys-config-llrf-fcm-diacrode/lib/include/rtems/score/threaddispatch.h:343</span>
<span id="LC4" class="line" lang="plaintext">#3  _Thread_Enable_dispatch () at /ade/rtems/release/rtems-4-11/c/src/../../cpukit/score/src/threadenabledispatch.c:30</span>
<span id="LC5" class="line" lang="plaintext">#4  0x08075f3c in _Objects_Put (the_object=<optimized out>) at ../../cpukit/../../../altera-sys-config-llrf-fcm-diacrode/lib/include/rtems/score/objectimpl.h:975</span>
<span id="LC6" class="line" lang="plaintext">#5  rtems_task_suspend (id=id@entry=0) at /ade/rtems/release/rtems-4-11/c/src/../../cpukit/rtems/src/tasksuspend.c:37</span>
<span id="LC7" class="line" lang="plaintext">#6  0x0813d808 in _Nios2_CPU_exception_handler_last_resort (pefr=0x81d498c, ctx=<optimized out>) at /ade/rtems/release/rtems-4-11/c/src/lib/libcpu/nios2/shared/except/except-last-resort.c:64</span>
<span id="LC8" class="line" lang="plaintext">#7  0x0809d9ac in _Nios2_Exception_handler_high_level (pefr=0x81d498c) at /ade/rtems/release/rtems-4-11/c/src/../../cpukit/score/cpu/nios2/nios2-except.c:119</span>
<span id="LC9" class="line" lang="plaintext">#8  0x0809d86c in _Nios2_Exception_handler () at /ade/rtems/release/rtems-4-11/c/src/../../cpukit/score/cpu/nios2/nios2-except-low-level.S:96</span>
<span id="LC10" class="line" lang="plaintext">#9  0x08085980 in CPU_swap_u16 (value=10412) at ../../cpukit/../../../altera-sys-config-llrf-fcm-diacrode/lib/include/rtems/score/cpu.h:402</span>
<span id="LC11" class="line" lang="plaintext">#10 htons (_x=10412) at ../../cpukit/../../../altera-sys-config-llrf-fcm-diacrode/lib/include/rtems/endian.h:83</span>
<span id="LC12" class="line" lang="plaintext">#11 __res_mkquery (op=op@entry=0, dname=dname@entry=0x81d4aa8 "localhost.lcs.net", class=class@entry=1, type=type@entry=1, data=data@entry=0x0, datalen=datalen@entry=0, newrr_in=newrr_in@entry=0x0, buf=buf@entry-11/c/src/../../cpukit/libnetworking/libc/res_mkquery.c:122</span>
<span id="LC13" class="line" lang="plaintext">#12 0x08058bcc in __res_query (anslen=<optimized out>, answer=0x81d5318 "stupwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzpe=1, class=1, name=0x81d4aa8 "localhost.lcs.net") at /ade/rtems/release/rtems-4-11/c/src/../../cpukit/libnetworking/libc/res_query.c:131</span>
<span id="LC14" class="line" lang="plaintext">#13 __res_querydomain (name=name@entry=0x81d576c "localhost", domain=<optimized out>, class=class@entry=1, type=type@entry=1, answer=answer@entry=0x81d5318 "stupwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghij"..., anslen=anslen@entry=1024) at /ade/rtems/release/rtems-4-11/c/src/../../cpukit/libnetworking/libc/res_query.c:368</span>
<span id="LC15" class="line" lang="plaintext">#14 0x080590e0 in __res_search (name=0x81d576c "localhost", class=1, type=1, answer=0x81d5318 "stupwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdwxyzabcdefghij"..., anslen=1024) at /ade/rtems/release/rtems-4-11/c/src/../../cpukit/libnetworking/libc/res_query.c:242</span>
<span id="LC16" class="line" lang="plaintext">#15 0x080808b8 in _gethostbydnsname (name=name@entry=0x81d576c "localhost", af=af@entry=2) at /ade/rtems/release/rtems-4-11/c/src/../../cpukit/libnetworking/libc/gethostbydns.c:588</span>
<span id="LC17" class="line" lang="plaintext">#16 0x08056c58 in gethostbyname2 (type=2, name=0x81d576c "localhost") at /ade/rtems/release/rtems-4-11/c/src/../../cpukit/libnetworking/libc/gethostnamadr.c:153</span>
<span id="LC18" class="line" lang="plaintext">#17 gethostbyname (name=name@entry=0x81d576c "localhost") at /ade/rtems/release/rtems-4-11/c/src/../../cpukit/libnetworking/libc/gethostnamadr.c:133</span>
<span id="LC19" class="line" lang="plaintext">#18 0x08045198 in hostToIPAddr (pHostName=pHostName@entry=0x81d576c "localhost", pIPA=pIPA@entry=0x81d5984) at /ade/epics/supTop/base/DAR3.15.1.1/src/libCom/osi/os/posix/osdSock.c:170</span>
<span id="LC20" class="line" lang="plaintext">#19 0x0803990c in aToIPAddr (pAddrString=pAddrString@entry=0x81d59b0 "localhost", defaultPort=defaultPort@entry=0, pIP=pIP@entry=0x81d5a30) at /ade/epics/supTop/base/DAR3.15.1.1/src/libCom/misc/aToIPAddr.c:168</span>
<span id="LC21" class="line" lang="plaintext">#20 0x0804ed80 in envGetInetAddrConfigParam (pParam=pParam@entry=0x81a723c <EPICS_IOC_LOG_INET>, pAddr=pAddr@entry=0x81d5a50) at /ade/epics/supTop/base/DAR3.15.1.1/src/libCom/env/envSubr.c:258</span>
<span id="LC22" class="line" lang="plaintext">#21 0x08036b2c in getConfig (pserver_port=<synthetic pointer>, pserver_addr=0x81d5a50) at /ade/epics/supTop/base/DAR3.15.1.1/src/libCom/log/iocLog.c:57</span>
<span id="LC23" class="line" lang="plaintext">#22 iocLogClientInit () at /ade/epics/supTop/base/DAR3.15.1.1/src/libCom/log/iocLog.c:88</span>
<span id="LC24" class="line" lang="plaintext">#23 iocLogInit () at /ade/epics/supTop/base/DAR3.15.1.1/src/libCom/log/iocLog.c:116</span>
<span id="LC25" class="line" lang="plaintext">#24 0x08008d60 in testLogPrefix () at /ade/epics/supTop/base/DAR3.15.1.1/src/libCom/test/epicsErrlogTest.c:402</span>
<span id="LC26" class="line" lang="plaintext">#25 epicsErrlogTest () at /ade/epics/supTop/base/DAR3.15.1.1/src/libCom/test/epicsErrlogTest.c:324</span>
<span id="LC27" class="line" lang="plaintext">#26 0x0803c51c in runTestFunc (name=name@entry=0x8189cf4 "epicsErrlogTest", func=0x80085e4 <epicsErrlogTest>) at /ade/epics/supTop/base/DAR3.15.1.1/src/libCom/misc/epicsUnitTest.c:262</span>
<span id="LC28" class="line" lang="plaintext">#27 0x08018b74 in epicsRunLibComTests () at /ade/epics/supTop/base/DAR3.15.1.1/src/libCom/test/epicsRunLibComTests.c:66</span>
<span id="LC29" class="line" lang="plaintext">#28 0x0802854c in main (argc=<optimized out>, argv=<optimized out>) at /ade/epics/supTop/base/DAR3.15.1.1/src/libCom/test/rtemsTestHarness.c:16</span>
<span id="LC30" class="line" lang="plaintext">(</span></code></pre>
<copy-code></copy-code><insert-code-snippet></insert-code-snippet>
</div>
<div class="gl-relative markdown-code-block js-markdown-code">
<pre class="code highlight js-syntax-highlight language-plaintext" v-pre="true" style='display: block; font-size: 14px; color: #28272d; line-height: 1.6em; overflow-x: auto; border-radius: .25rem; position: relative; font-family: "GitLab Mono","JetBrains Mono","Menlo","DejaVu Sans Mono","Liberation Mono","Consolas","Ubuntu Mono","Courier New","andale mono","lucida console",monospace; word-break: break-all; word-wrap: break-word; background-color: #fbfafd; margin: 0 0 16px; padding: 12px; border: 1px solid #dcdcde;'><code style='font-size: inherit; color: inherit; word-wrap: normal; word-break: keep-all; background-color: inherit; border-radius: .25rem; white-space: pre; margin-top: 0; font-family: "GitLab Mono","JetBrains Mono","Menlo","DejaVu Sans Mono","Liberation Mono","Consolas","Ubuntu Mono","Courier New","andale mono","lucida console",monospace; vertical-align: bottom; overflow-wrap: normal; padding: unset;'><span id="LC1" class="line" lang="plaintext" style="margin-top: 0;">(gdb) print &buf</span>
<span id="LC2" class="line" lang="plaintext">$9 = (u_char (*)[1024]) 0x81d4ea9</span>
<span id="LC3" class="line" lang="plaintext">(gdb) list -</span>
<span id="LC4" class="line" lang="plaintext">116             u_char buf[MAXPACKET];</span>
<span id="LC5" class="line" lang="plaintext">117             HEADER *hp = (HEADER *) answer;</span>
<span id="LC6" class="line" lang="plaintext">118             int n;</span>
<span id="LC7" class="line" lang="plaintext">119</span>
<span id="LC8" class="line" lang="plaintext">120             hp->rcode = NOERROR;    /* default */</span>
<span id="LC9" class="line" lang="plaintext">121</span>
<span id="LC10" class="line" lang="plaintext">122             if ((_res.options & RES_INIT) == 0 && res_init() == -1) {</span>
<span id="LC11" class="line" lang="plaintext">123                     h_errno = NETDB_INTERNAL;</span>
<span id="LC12" class="line" lang="plaintext">124                     return (-1);</span>
<span id="LC13" class="line" lang="plaintext">125             }</span></code></pre>
<copy-code></copy-code><insert-code-snippet></insert-code-snippet>
</div>
<div class="gl-relative markdown-code-block js-markdown-code" style="margin-bottom: 0;">
<pre class="code highlight js-syntax-highlight language-plaintext" v-pre="true" style='display: block; font-size: 14px; color: #28272d; line-height: 1.6em; overflow-x: auto; border-radius: .25rem; position: relative; font-family: "GitLab Mono","JetBrains Mono","Menlo","DejaVu Sans Mono","Liberation Mono","Consolas","Ubuntu Mono","Courier New","andale mono","lucida console",monospace; word-break: break-all; word-wrap: break-word; background-color: #fbfafd; margin: 0 0 16px; padding: 12px; border: 1px solid #dcdcde;'><code style='font-size: inherit; color: inherit; word-wrap: normal; word-break: keep-all; background-color: inherit; border-radius: .25rem; white-space: pre; margin-top: 0; font-family: "GitLab Mono","JetBrains Mono","Menlo","DejaVu Sans Mono","Liberation Mono","Consolas","Ubuntu Mono","Courier New","andale mono","lucida console",monospace; vertical-align: bottom; overflow-wrap: normal; padding: unset;'><span id="LC1" class="line" lang="plaintext" style="margin-top: 0;">(gdb) print &hp->id</span>
<span id="LC2" class="line" lang="plaintext">$3 = (unsigned int *) 0x81d4ea9</span>
<span id="LC3" class="line" lang="plaintext">(gdb) print &hp</span>
<span id="LC4" class="line" lang="plaintext">$4 = (HEADER **) 0x81d4aa0</span>
<span id="LC5" class="line" lang="plaintext">(gdb) print *hp</span>
<span id="LC6" class="line" lang="plaintext">$5 = {id = 0, rd = 0, tc = 0, aa = 0, opcode = 0, qr = 0, rcode = 0, cd = 0, ad = 0, unused = 0, ra = 0, qdcount = 0, ancount = 0, nscount = 0, arcount = 0}</span>
<span id="LC7" class="line" lang="plaintext">(gdb) print &hp->id</span>
<span id="LC8" class="line" lang="plaintext">$6 = (unsigned int *) 0x81d4ea9</span>
<span id="LC9" class="line" lang="plaintext">(gdb) print hp</span>
<span id="LC10" class="line" lang="plaintext">$7 = (HEADER *) 0x81d4ea9</span>
<span id="LC11" class="line" lang="plaintext">(gdb) list</span>
<span id="LC12" class="line" lang="plaintext">117              */</span>
<span id="LC13" class="line" lang="plaintext">118             if ((buf == NULL) || (buflen < HFIXEDSZ))</span>
<span id="LC14" class="line" lang="plaintext">119                     return (-1);</span>
<span id="LC15" class="line" lang="plaintext">120             memset(buf, 0, HFIXEDSZ);</span>
<span id="LC16" class="line" lang="plaintext">121             hp = (HEADER *) buf;</span>
<span id="LC17" class="line" lang="plaintext">122             hp->id = htons(++_res.id);</span>
<span id="LC18" class="line" lang="plaintext">123             hp->opcode = op;</span>
<span id="LC19" class="line" lang="plaintext">124             hp->rd = (_res.options & RES_RECURSE) != 0;</span>
<span id="LC20" class="line" lang="plaintext">125             hp->rcode = NOERROR;</span></code></pre>
<copy-code></copy-code><insert-code-snippet></insert-code-snippet>
</div>
</div>

</div>
<div class="footer" style="margin-top: 10px;">
<p style="font-size: small; color: #737278;">

<br>
<a href="https://gitlab.rtems.org/rtems/pkg/rtems-net-legacy/-/issues/21">View it on GitLab</a>.
<br>
You're receiving this email because of your account on <a target="_blank" rel="noopener noreferrer" href="https://gitlab.rtems.org">gitlab.rtems.org</a>. <a href="https://gitlab.rtems.org/-/sent_notifications/d51171e9f95dfcc3769b93a0fb14a960/unsubscribe" target="_blank" rel="noopener noreferrer">Unsubscribe</a> from this thread · <a href="https://gitlab.rtems.org/-/profile/notifications" target="_blank" rel="noopener noreferrer" class="mng-notif-link">Manage all notifications</a> · <a href="https://gitlab.rtems.org/help" target="_blank" rel="noopener noreferrer" class="help-link">Help</a>
<script type="application/ld+json">{"@context":"http://schema.org","@type":"EmailMessage","action":{"@type":"ViewAction","name":"View Issue","url":"https://gitlab.rtems.org/rtems/pkg/rtems-net-legacy/-/issues/21"}}</script>


</p>
</div>
</body>
</html>