RFR: 8186780: clang-4.0 fastdebug assertion failure in os_linux_x86:os::verify_stack_alignment()
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::current_stack_pointer 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::current_stack_pointer() {
>>> +NOINLINE address os::current_stack_pointer() {
>>>
>>>
>>> If y'all like the addition of NOINLINE, it should probably be added to all
>>> of the 14 variants of os::current_stack_pointer.
>>> 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::current_stack_pointer!
>>
>
> 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