<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body dir="auto"><div>JFTR I did build the urcu and ltt-control on same machine and urcu build went ok, but ltt-control failed. So there might be something broken.</div><div><br></div><div>Although yes, more generally there could be a problem with difference between build machines, so --disable flag might be helpful.</div><div><br></div><div>O.<br><div><span style="background-color: rgba(255, 255, 255, 0); font-size: 13pt;">-- </span></div><div><span style="background-color: rgba(255, 255, 255, 0);">Ondřej Surý <<a href="mailto:ondrej@sury.org">ondrej@sury.org</a>></span></div><div><span style="background-color: rgba(255, 255, 255, 0);">Knot DNS (<a href="https://www.knot-dns.cz/">https://www.knot-dns.cz/</a>) – a high-performance DNS server</span></div></div><div><br>On 24. 5. 2014, at 0:21, Jon Bernard <<a href="mailto:jbernard@debian.org">jbernard@debian.org</a>> wrote:<br><br></div><blockquote type="cite"><div><span>* Mathieu Desnoyers <<a href="mailto:mathieu.desnoyers@efficios.com">mathieu.desnoyers@efficios.com</a>> wrote:</span><br><blockquote type="cite"><span>Hi,</span><br></blockquote><blockquote type="cite"><span></span><br></blockquote><blockquote type="cite"><span>I recently stumbled on this patch:</span><br></blockquote><blockquote type="cite"><span></span><br></blockquote><blockquote type="cite"><span><a href="http://sprunge.us/jYcJ">http://sprunge.us/jYcJ</a></span><br></blockquote><blockquote type="cite"><span></span><br></blockquote><blockquote type="cite"><span>It overrides the generated config.h to ensure the</span><br></blockquote><blockquote type="cite"><span>"dmb" instruction is not used.</span><br></blockquote><blockquote type="cite"><span></span><br></blockquote><blockquote type="cite"><span>However, the proper checks seems to be in place within</span><br></blockquote><blockquote type="cite"><span>configure.ac to automatically detect whether to use dmb</span><br></blockquote><blockquote type="cite"><span>or not:</span><br></blockquote><blockquote type="cite"><span></span><br></blockquote><blockquote type="cite"><span># ARM-specific checks</span><br></blockquote><blockquote type="cite"><span>AS_IF([test "x$ARCHTYPE" = "xarm"],[</span><br></blockquote><blockquote type="cite"><span>        AC_MSG_CHECKING([for dmb instruction])</span><br></blockquote><blockquote type="cite"><span>        AC_COMPILE_IFELSE([AC_LANG_SOURCE([[</span><br></blockquote><blockquote type="cite"><span>                                int main()</span><br></blockquote><blockquote type="cite"><span>                                {</span><br></blockquote><blockquote type="cite"><span>                                        asm volatile("dmb":::"memory");</span><br></blockquote><blockquote type="cite"><span>                                        return 0;</span><br></blockquote><blockquote type="cite"><span>                                }</span><br></blockquote><blockquote type="cite"><span>                ]])</span><br></blockquote><blockquote type="cite"><span>        ],[</span><br></blockquote><blockquote type="cite"><span>                AC_MSG_RESULT([yes])</span><br></blockquote><blockquote type="cite"><span>                AC_DEFINE([CONFIG_RCU_ARM_HAVE_DMB], [1])</span><br></blockquote><blockquote type="cite"><span>        ],[</span><br></blockquote><blockquote type="cite"><span>                AC_MSG_RESULT([no])</span><br></blockquote><blockquote type="cite"><span>        ])</span><br></blockquote><blockquote type="cite"><span>])</span><br></blockquote><blockquote type="cite"><span></span><br></blockquote><blockquote type="cite"><span>My thinking here is that perhaps inappropriate compiler flags</span><br></blockquote><blockquote type="cite"><span>are used when the compiler is invoked from within "configure",</span><br></blockquote><blockquote type="cite"><span>which leads it to think that it targets an ARMv7+ with dmb.</span><br></blockquote><blockquote type="cite"><span>The Debian "armel" architecture AFAIU needs to target older</span><br></blockquote><blockquote type="cite"><span>ARM architectures.</span><br></blockquote><span></span><br><span>I also wonder if there are some differences between of the arm build</span><br><span>machines.  I don't have shell access to the machine on which urcu was</span><br><span>built so I cannot check, but perhaps that particular machine has dmb.</span><br><span></span><br><blockquote type="cite"><span>It would be much better to fix the compiler flags passed to</span><br></blockquote><blockquote type="cite"><span>configure and let urcu autodetection do what it is intended</span><br></blockquote><blockquote type="cite"><span>to do rather than override the generated file.</span><br></blockquote><span></span><br><span>I'll gather and post the compiler flags used for urcu and we'll see.</span><br><span></span><br><span>-- </span><br><span>Jon</span><br></div></blockquote></body></html>