RFR: 8186780: clang-4.0 fastdebug assertion failure in os_linux_x86:os::verify_stack_alignment() (original) (raw)

David Holmes david.holmes at oracle.com
Fri Jun 22 11:57:08 UTC 2018


On 21/06/2018 10:37 PM, Thomas Stüfe wrote:

On Thu, Jun 21, 2018 at 1:27 PM, David Holmes <david.holmes at oracle.com> wrote:

On 21/06/2018 10:05 AM, Martin Buchholz wrote:

On Wed, Jun 20, 2018 at 4:03 PM, Martin Buchholz <martinrb at google.com_ _<mailto:martinrb at google.com>> wrote: Hi David and build-dev folk, After way too much build/hotspot hacking, I have a better fix: clang inlined os::currentstackpointer into its caller in the same translation unit (that could be fixed in a separate change) so of course in this case it didn't have to follow the ABI. Fix is obvious in hindsight: -address os::currentstackpointer() { +NOINLINE address os::currentstackpointer() {

If y'all like the addition of NOINLINE, it should probably be added to all of the 14 variants of os::currentstackpointer. Gives me a chance to try out the submit repo. I can't help but think other platforms actually rely on it being inlined so that it really does return the stack pointer of the method calling os::currentstackpointer! But we only inline today if caller is in the same translation unit and builds with optimization, no?

Don't know, but Martin's encountering a case where it is being inlined - is that likely to be unique for some reason?

I never assume the compiler does the obvious these days :) or that there can't be clever link-time tricks as well.

Maybe the safest thing to do is to only make a change for the clang case and leave everything else alone.

David

..Thomas

David



More information about the build-dev mailing list