<html><body><div style="font-family: times new roman, new york, times, serif; font-size: 12pt; color: #000000"><div>In order to understand what is happening here, can we have a copy<br></div><div>of config.log of both userspace RCU and ltt-control, as well as the output<br></div><div>of invocation of configure, and output of make V=1 ?<br></div><div><br></div><div>Thanks,<br></div><div><br></div><div>Mathieu<br></div><div><br></div><div><br></div><hr id="zwchr"><blockquote style="border-left:2px solid #1010FF;margin-left:5px;padding-left:5px;color:#000;font-weight:normal;font-style:normal;text-decoration:none;font-family:Helvetica,Arial,sans-serif;font-size:12pt;"><b>From: </b>"Ondřej Surý" <ondrej@sury.org><br><b>To: </b>"Jon Bernard" <jbernard@debian.org><br><b>Cc: </b>"Mathieu Desnoyers" <mathieu.desnoyers@efficios.com>, "Ondřej Surý" <ondrej@debian.org>, "Michael Jeanson" <mjeanson@efficios.com>, "lttng-dev" <lttng-dev@lists.lttng.org><br><b>Sent: </b>Friday, May 23, 2014 7:10:50 PM<br><b>Subject: </b>Re: Debian specific userspace RCU configure override<br><div><br></div><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: ; font-size: 13pt;">-- </span></div><div><span style="background-color: ;">Ondřej Surý <<a href="mailto:ondrej@sury.org" target="_blank">ondrej@sury.org</a>></span></div><div><span style="background-color: ;">Knot DNS (<a href="https://www.knot-dns.cz/" target="_blank">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" target="_blank">jbernard@debian.org</a>> wrote:<br><div><br></div></div><blockquote><div><span>* Mathieu Desnoyers <<a href="mailto:mathieu.desnoyers@efficios.com" target="_blank">mathieu.desnoyers@efficios.com</a>> wrote:</span><br><blockquote><span>Hi,</span><br></blockquote><blockquote><span></span><br></blockquote><blockquote><span>I recently stumbled on this patch:</span><br></blockquote><blockquote><span></span><br></blockquote><blockquote><span><a href="http://sprunge.us/jYcJ" target="_blank">http://sprunge.us/jYcJ</a></span><br></blockquote><blockquote><span></span><br></blockquote><blockquote><span>It overrides the generated config.h to ensure the</span><br></blockquote><blockquote><span>"dmb" instruction is not used.</span><br></blockquote><blockquote><span></span><br></blockquote><blockquote><span>However, the proper checks seems to be in place within</span><br></blockquote><blockquote><span>configure.ac to automatically detect whether to use dmb</span><br></blockquote><blockquote><span>or not:</span><br></blockquote><blockquote><span></span><br></blockquote><blockquote><span># ARM-specific checks</span><br></blockquote><blockquote><span>AS_IF([test "x$ARCHTYPE" = "xarm"],[</span><br></blockquote><blockquote><span>        AC_MSG_CHECKING([for dmb instruction])</span><br></blockquote><blockquote><span>        AC_COMPILE_IFELSE([AC_LANG_SOURCE([[</span><br></blockquote><blockquote><span>                                int main()</span><br></blockquote><blockquote><span>                                {</span><br></blockquote><blockquote><span>                                        asm volatile("dmb":::"memory");</span><br></blockquote><blockquote><span>                                        return 0;</span><br></blockquote><blockquote><span>                                }</span><br></blockquote><blockquote><span>                ]])</span><br></blockquote><blockquote><span>        ],[</span><br></blockquote><blockquote><span>                AC_MSG_RESULT([yes])</span><br></blockquote><blockquote><span>                AC_DEFINE([CONFIG_RCU_ARM_HAVE_DMB], [1])</span><br></blockquote><blockquote><span>        ],[</span><br></blockquote><blockquote><span>                AC_MSG_RESULT([no])</span><br></blockquote><blockquote><span>        ])</span><br></blockquote><blockquote><span>])</span><br></blockquote><blockquote><span></span><br></blockquote><blockquote><span>My thinking here is that perhaps inappropriate compiler flags</span><br></blockquote><blockquote><span>are used when the compiler is invoked from within "configure",</span><br></blockquote><blockquote><span>which leads it to think that it targets an ARMv7+ with dmb.</span><br></blockquote><blockquote><span>The Debian "armel" architecture AFAIU needs to target older</span><br></blockquote><blockquote><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><span>It would be much better to fix the compiler flags passed to</span><br></blockquote><blockquote><span>configure and let urcu autodetection do what it is intended</span><br></blockquote><blockquote><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></blockquote><div><br><br></div><div><br></div><div>-- <br></div><div><span name="x"></span>Mathieu Desnoyers<br>EfficiOS Inc.<br>http://www.efficios.com<span name="x"></span><br></div></div></body></html>