RFR XXS (8185826) HotSpot build failure with GCC 7.1.1

Ioi Lam ioi.lam at oracle.com
Fri Aug 4 04:50:15 UTC 2017


On 8/3/17 7:00 PM, David Holmes wrote:

> Hi Yasumasa,
>
> On 4/08/2017 10:49 AM, Yasumasa Suenaga wrote:
>> Thanks Kim, David,
>>
>> I filed this issue to JBS and uploaded webrev. Could you review it?
>>
>> http://cr.openjdk.java.net/~ysuenaga/JDK-8185826/webrev.00/
>
> I'm still at a loss to understand how the current code even 
> compiles/links at all with any version of the compiler. ??
>
Hi Yasumasa, thanks for noticing this.

Sorry, it was my bug. I checked this in as part of JDK-8072061 on Tuesday.

Apparently older C++ compilers are quite lenient when compiling template 
declarations that aren't instantiated. Here's a test case:

template <typename T> class X {
   static int size() {
     return align_size_up(byte_sizeof());
   }
   static int byte_sizeof() {
     return sizeof(T);
   }
};

# from gcc 5.4:
$ gcc -c ~/t.cpp && echo $?
0

In our case, presumably, gcc will detect the error when an instantiated 
Array<T> type access the size(int, int) method.

However, I added this function during my development, but didn't need it 
after all. So this function was never referenced, so all of our existing 
compilers never had a chance to generate an error for

I removed this function and HotSpot built with no error.

$ hg diff
diff -r 731370f39fcd src/share/vm/oops/array.hpp
--- a/src/share/vm/oops/array.hpp    Wed Aug 02 18:06:38 2017 -0700
+++ b/src/share/vm/oops/array.hpp    Thu Aug 03 21:47:41 2017 -0700
@@ -134,10 +134,6 @@

      return (int)words;
    }
-  static int size(int length, int elm_byte_size) {
-    return align_size_up(byte_sizeof(length, elm_byte_size), 
BytesPerWord) / BytesPerWord; // FIXME
-  }
-
    int size() {
      return size(_length);
    }


So I think proper fix is to just remove this function.

Thanks
- Ioi




> You removed a "// FIXME" comment - what was that referring to ??
>
> Thanks,
> David
>
>> I cannot access JPRT. So I need a sponsor.
>>
>>
>> Yasumasa
>>
>>
>>
>> 2017-08-04 9:08 GMT+09:00 Kim Barrett <kim.barrett at oracle.com>:
>>>> On Aug 3, 2017, at 7:12 PM, David Holmes <david.holmes at oracle.com> 
>>>> wrote:
>>>> I can't even see a definition of align_size_up - where is it coming 
>>>> from ???
>>>
>>> It was recently removed.
>>>
>>> 8178499: Remove _ptr_ and _size_ infixes from align functions
>>>



More information about the hotspot-dev mailing list