What does SPARC_WORK define mean?

Magnus Ihse Bursie magnus.ihse.bursie at oracle.com
Tue Sep 12 11:53:30 UTC 2017


On 2017-09-11 23:19, David Holmes wrote:
> On 12/09/2017 5:48 AM, Vladimir Kozlov wrote:
>> SPARC_WORKS is defined by Sun/Oracle Studio native compilers. Changes 
>> were added with this:
>>
>> http://hg.openjdk.java.net/jdk10/hs/hotspot/rev/485d403e94e1
>
> That's a blast from the past! - and something I had forgotten about. 
> When was the last time somebody actually tried to build linux-x86 with 
> Studio compiler? Who is supposed to keep this working?
I tried it last year when converting the hotspot makefiles, to assess 
the amount of damage I'd create if I didn't support it. Not 
surprisingly, it did not work, not even after some quick and ugly fixes 
to try to get it accepted by the compiler.

It's worth noting that there have never been any support for building 
the JDK native libraries with sunstudio on linux.

I would assume that such code can safely be removed, but perhaps some 
formal decision to do that is required.

/Magnus

>
> It may be time to strip this back out.
>
> David
> -----
>
>> Vladimir
>>
>> On 9/11/17 11:58 AM, Dmitry Samersoff wrote:
>>> Everybody,
>>>
>>> Actually %subj%:
>>>
>>> What does SPARC_WORKS define mean and why we have it in 
>>> os_linux_x86.cpp ?
>>>
>>> Could we narrow function below[1] to just
>>>
>>>    intptr_t **ebp;
>>>    __asm__ __volatile__ ("mov %%"SPELL_REG_FP", %0":"=r"(ebp):);
>>>
>>> that works for both gcc and clang?
>>>
>>>
>>> 1.
>>> static intptr_t* _get_previous_fp() {
>>> #ifdef SPARC_WORKS
>>>    register intptr_t **ebp;
>>>    __asm__("mov %%"SPELL_REG_FP", %0":"=r"(ebp));
>>> #elif defined(__clang__)
>>>    intptr_t **ebp;
>>>    __asm__ __volatile__ ("mov %%"SPELL_REG_FP", %0":"=r"(ebp):);
>>> #else
>>>    register intptr_t **ebp __asm__ (SPELL_REG_FP);
>>> #endif
>>>
>>>    return *ebp;
>>> }
>>>
>>> -Dmitry
>>>
>>>



More information about the hotspot-runtime-dev mailing list