RFR: 8175567: Build of hotspot for arm-vfp-sflt fails

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

RFR: 8175567: Build of hotspot for arm-vfp-sflt fails

Bob Vandette
BUG:

https://bugs.openjdk.java.net/browse/JDK-8175567

DESCRIPTION:

The changes that were done under  (JDK-8160245 Clean up platform #defines in c1_LIR.hpp),
broke the arm-vfp-sflt build.

Here’s a link to that original bug:

     https://bugs.openjdk.java.net/browse/JDK-8160245

This change below corrects the issue.

diff --git a/src/share/vm/c1/c1_LIR.hpp b/src/share/vm/c1/c1_LIR.hpp
--- a/src/share/vm/c1/c1_LIR.hpp
+++ b/src/share/vm/c1/c1_LIR.hpp
@@ -613,7 +613,7 @@
   // Platform dependant.
   static LIR_Opr double_fpu(int reg1, int reg2 = -1 /*fnoreg*/);
 
-#ifdef __SOFTFP__
+#ifdef ARM32
   static LIR_Opr single_softfp(int reg) {
     return (LIR_Opr)(intptr_t)((reg  << LIR_OprDesc::reg1_shift) |
                                LIR_OprDesc::float_type           |

Bob.

Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: RFR: 8175567: Build of hotspot for arm-vfp-sflt fails

Vladimir Kozlov
That change was done explicitly but that was not tested as I see it:

"It guards single_softfp() and double_softfp() by __SOFTFP__.
This is not used in any openJdk platform. I can not test this
on the closed platforms ARM32 and PPC32."

May be it should check both? Please, explain if not:

#if defined(__SOFTFP__) || defined(ARM32)

You need also update:

#endif // __SOFTFP__

Thanks,
Vladimir

On 2/27/17 8:15 AM, Bob Vandette wrote:

> BUG:
>
> https://bugs.openjdk.java.net/browse/JDK-8175567
>
> DESCRIPTION:
>
> The changes that were done under  (JDK-8160245 Clean up platform #defines in c1_LIR.hpp),
> broke the arm-vfp-sflt build.
>
> Here’s a link to that original bug:
>
>      https://bugs.openjdk.java.net/browse/JDK-8160245
>
> This change below corrects the issue.
>
> diff --git a/src/share/vm/c1/c1_LIR.hpp b/src/share/vm/c1/c1_LIR.hpp
> --- a/src/share/vm/c1/c1_LIR.hpp
> +++ b/src/share/vm/c1/c1_LIR.hpp
> @@ -613,7 +613,7 @@
>    // Platform dependant.
>    static LIR_Opr double_fpu(int reg1, int reg2 = -1 /*fnoreg*/);
>
> -#ifdef __SOFTFP__
> +#ifdef ARM32
>    static LIR_Opr single_softfp(int reg) {
>      return (LIR_Opr)(intptr_t)((reg  << LIR_OprDesc::reg1_shift) |
>                                 LIR_OprDesc::float_type           |
>
> Bob.
>
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: RFR: 8175567: Build of hotspot for arm-vfp-sflt fails

Bob Vandette

> On Feb 27, 2017, at 1:05 PM, Vladimir Kozlov <[hidden email]> wrote:
>
> That change was done explicitly but that was not tested as I see it:
>
> "It guards single_softfp() and double_softfp() by __SOFTFP__.
> This is not used in any openJdk platform. I can not test this
> on the closed platforms ARM32 and PPC32."
>
> May be it should check both? Please, explain if not:
>
> #if defined(__SOFTFP__) || defined(ARM32)
>
> You need also update:
>
> #endif // __SOFTFP__

__SOFTFP__ is only use for ARM32 ports so I simplified the ifdef.

In reality, I should have used:

#if defined(ARM32) && !defined(__ABI_HARD__)

but the only downside is that we end up defining these two functions ARM32 platforms
but they are not used in the __ABI_HARD__ case.  

Bob.


>
> Thanks,
> Vladimir
>
> On 2/27/17 8:15 AM, Bob Vandette wrote:
>> BUG:
>>
>> https://bugs.openjdk.java.net/browse/JDK-8175567
>>
>> DESCRIPTION:
>>
>> The changes that were done under  (JDK-8160245 Clean up platform #defines in c1_LIR.hpp),
>> broke the arm-vfp-sflt build.
>>
>> Here’s a link to that original bug:
>>
>>     https://bugs.openjdk.java.net/browse/JDK-8160245
>>
>> This change below corrects the issue.
>>
>> diff --git a/src/share/vm/c1/c1_LIR.hpp b/src/share/vm/c1/c1_LIR.hpp
>> --- a/src/share/vm/c1/c1_LIR.hpp
>> +++ b/src/share/vm/c1/c1_LIR.hpp
>> @@ -613,7 +613,7 @@
>>   // Platform dependant.
>>   static LIR_Opr double_fpu(int reg1, int reg2 = -1 /*fnoreg*/);
>>
>> -#ifdef __SOFTFP__
>> +#ifdef ARM32
>>   static LIR_Opr single_softfp(int reg) {
>>     return (LIR_Opr)(intptr_t)((reg  << LIR_OprDesc::reg1_shift) |
>>                                LIR_OprDesc::float_type           |
>>
>> Bob.
>>

Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: RFR: 8175567: Build of hotspot for arm-vfp-sflt fails

Vladimir Kozlov
Thank you, Bob, for explanation. Reviewed.

Vladimir

On 2/27/17 10:15 AM, Bob Vandette wrote:

>
>> On Feb 27, 2017, at 1:05 PM, Vladimir Kozlov <[hidden email]> wrote:
>>
>> That change was done explicitly but that was not tested as I see it:
>>
>> "It guards single_softfp() and double_softfp() by __SOFTFP__.
>> This is not used in any openJdk platform. I can not test this
>> on the closed platforms ARM32 and PPC32."
>>
>> May be it should check both? Please, explain if not:
>>
>> #if defined(__SOFTFP__) || defined(ARM32)
>>
>> You need also update:
>>
>> #endif // __SOFTFP__
>
> __SOFTFP__ is only use for ARM32 ports so I simplified the ifdef.
>
> In reality, I should have used:
>
> #if defined(ARM32) && !defined(__ABI_HARD__)
>
> but the only downside is that we end up defining these two functions ARM32 platforms
> but they are not used in the __ABI_HARD__ case.
>
> Bob.
>
>
>>
>> Thanks,
>> Vladimir
>>
>> On 2/27/17 8:15 AM, Bob Vandette wrote:
>>> BUG:
>>>
>>> https://bugs.openjdk.java.net/browse/JDK-8175567
>>>
>>> DESCRIPTION:
>>>
>>> The changes that were done under  (JDK-8160245 Clean up platform #defines in c1_LIR.hpp),
>>> broke the arm-vfp-sflt build.
>>>
>>> Here’s a link to that original bug:
>>>
>>>     https://bugs.openjdk.java.net/browse/JDK-8160245
>>>
>>> This change below corrects the issue.
>>>
>>> diff --git a/src/share/vm/c1/c1_LIR.hpp b/src/share/vm/c1/c1_LIR.hpp
>>> --- a/src/share/vm/c1/c1_LIR.hpp
>>> +++ b/src/share/vm/c1/c1_LIR.hpp
>>> @@ -613,7 +613,7 @@
>>>   // Platform dependant.
>>>   static LIR_Opr double_fpu(int reg1, int reg2 = -1 /*fnoreg*/);
>>>
>>> -#ifdef __SOFTFP__
>>> +#ifdef ARM32
>>>   static LIR_Opr single_softfp(int reg) {
>>>     return (LIR_Opr)(intptr_t)((reg  << LIR_OprDesc::reg1_shift) |
>>>                                LIR_OprDesc::float_type           |
>>>
>>> Bob.
>>>
>
Loading...