<div dir="ltr">Correction: this is not because of GCC, but because of Ubuntu 16.10. The same happens with GCC 5<br></div><div class="gmail_extra"><br><div class="gmail_quote">2017-02-21 0:35 GMT-03:00 Ronie Salgado <span dir="ltr"><<a href="mailto:roniesalg@gmail.com" target="_blank">roniesalg@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div><div><div>Hello,<br><br></div>I was debugging a strange crash when calling sqrt via a Lowcode instruction in the interpreter, which I tracked to currentBytecode stored in register(EBX), having a very large value. When debugging the generated assembly code with GDB, I noticed that GCC was generating position independent code and using EBX for doing a call without spilling/unspilling its value.<br><br></div>By googling, it seems that position independent executable generation was turned on GCC 6 by default ( <a href="https://www.open-mesh.org/issues/304" target="_blank">https://www.open-mesh.org/<wbr>issues/304</a> ). To disable PIE, we have to compile the sources with -fno-pie and link with the -no-pie options.<br><br></div>Best regards,<br></div>Ronie<br></div>
</blockquote></div><br></div>