Build failure w/ GCC 7.3.1

Yasumasa Suenaga yasuenag at gmail.com
Wed Mar 14 01:33:46 UTC 2018


Hi all.

I encountered build failure with GCC 7.3.1 on Fedora 27 x86_64 as below:
-------------------
Building target 'images' in configuration 'linux-x86_64-normal-server-fastdebug'
In file included from
/home/ysuenaga/OpenJDK/jdk-hs/src/hotspot/share/oops/access.inline.hpp:35:0,
                 from
/home/ysuenaga/OpenJDK/jdk-hs/src/hotspot/share/oops/oop.inline.hpp:32,
                 from
/home/ysuenaga/OpenJDK/jdk-hs/src/hotspot/share/oops/markOop.inline.hpp:30,
                 from
/home/ysuenaga/OpenJDK/jdk-hs/src/hotspot/share/precompiled/precompiled.hpp:153:
/home/ysuenaga/OpenJDK/jdk-hs/src/hotspot/share/oops/accessBackend.inline.hpp:
In static member function 'static bool
RawAccessBarrier<decorators>::oop_arraycopy(arrayOop, arrayOop,
HeapWord*, HeapWord*, size_t)':
/home/ysuenaga/OpenJDK/jdk-hs/src/hotspot/share/oops/accessBackend.inline.hpp:129:98:
error: no matching function for call to
'RawAccessBarrier<decorators>::arraycopy(narrowOop*, narrowOop*,
size_t&)'
     return arraycopy(reinterpret_cast<narrowOop*>(src),
reinterpret_cast<narrowOop*>(dst), length);

                           ^
In file included from
/home/ysuenaga/OpenJDK/jdk-hs/src/hotspot/share/gc/shared/barrierSet.hpp:31:0,
                 from
/home/ysuenaga/OpenJDK/jdk-hs/src/hotspot/share/gc/shared/collectorPolicy.hpp:28,
                 from
/home/ysuenaga/OpenJDK/jdk-hs/src/hotspot/share/gc/shared/genCollectedHeap.hpp:29,
                 from
/home/ysuenaga/OpenJDK/jdk-hs/src/hotspot/share/gc/shared/gcLocker.hpp:29,
                 from
/home/ysuenaga/OpenJDK/jdk-hs/src/hotspot/share/runtime/interfaceSupport.hpp:28,
                 from
/home/ysuenaga/OpenJDK/jdk-hs/src/hotspot/share/prims/methodHandles.hpp:32,
                 from
/home/ysuenaga/OpenJDK/jdk-hs/src/hotspot/share/ci/ciMethod.hpp:33,
                 from
/home/ysuenaga/OpenJDK/jdk-hs/src/hotspot/share/code/debugInfoRec.hpp:30,
                 from
/home/ysuenaga/OpenJDK/jdk-hs/src/hotspot/share/ci/ciEnv.hpp:31,
                 from
/home/ysuenaga/OpenJDK/jdk-hs/src/hotspot/share/ci/ciUtilities.hpp:28,
                 from
/home/ysuenaga/OpenJDK/jdk-hs/src/hotspot/share/ci/ciNullObject.hpp:30,
                 from
/home/ysuenaga/OpenJDK/jdk-hs/src/hotspot/share/ci/ciConstant.hpp:29,
                 from
/home/ysuenaga/OpenJDK/jdk-hs/src/hotspot/share/ci/ciArray.hpp:29,
                 from
/home/ysuenaga/OpenJDK/jdk-hs/src/hotspot/share/precompiled/precompiled.hpp:35:
/home/ysuenaga/OpenJDK/jdk-hs/src/hotspot/share/oops/accessBackend.hpp:343:15:
note: candidate: template<long unsigned int decorators> template<class
T> static bool RawAccessBarrier<decorators>::arraycopy(arrayOop,
arrayOop, T*, T*, size_t)
   static bool arraycopy(arrayOop src_obj, arrayOop dst_obj, T* src,
T* dst, size_t length);
               ^~~~~~~~~
/home/ysuenaga/OpenJDK/jdk-hs/src/hotspot/share/oops/accessBackend.hpp:343:15:
note:   template argument deduction/substitution failed:
In file included from
/home/ysuenaga/OpenJDK/jdk-hs/src/hotspot/share/oops/access.inline.hpp:35:0,
                 from
/home/ysuenaga/OpenJDK/jdk-hs/src/hotspot/share/oops/oop.inline.hpp:32,
                 from
/home/ysuenaga/OpenJDK/jdk-hs/src/hotspot/share/oops/markOop.inline.hpp:30,
                 from
/home/ysuenaga/OpenJDK/jdk-hs/src/hotspot/share/precompiled/precompiled.hpp:153:
/home/ysuenaga/OpenJDK/jdk-hs/src/hotspot/share/oops/accessBackend.inline.hpp:129:98:
note:   mismatched types 'T*' and 'long unsigned int'
     return arraycopy(reinterpret_cast<narrowOop*>(src),
reinterpret_cast<narrowOop*>(dst), length);

                           ^
/home/ysuenaga/OpenJDK/jdk-hs/src/hotspot/share/oops/accessBackend.inline.hpp:131:86:
error: no matching function for call to
'RawAccessBarrier<decorators>::arraycopy(oop*, oop*, size_t&)'
     return arraycopy(reinterpret_cast<oop*>(src),
reinterpret_cast<oop*>(dst), length);

               ^
In file included from
/home/ysuenaga/OpenJDK/jdk-hs/src/hotspot/share/gc/shared/barrierSet.hpp:31:0,
                 from
/home/ysuenaga/OpenJDK/jdk-hs/src/hotspot/share/gc/shared/collectorPolicy.hpp:28,
                 from
/home/ysuenaga/OpenJDK/jdk-hs/src/hotspot/share/gc/shared/genCollectedHeap.hpp:29,
                 from
/home/ysuenaga/OpenJDK/jdk-hs/src/hotspot/share/gc/shared/gcLocker.hpp:29,
                 from
/home/ysuenaga/OpenJDK/jdk-hs/src/hotspot/share/runtime/interfaceSupport.hpp:28,
                 from
/home/ysuenaga/OpenJDK/jdk-hs/src/hotspot/share/prims/methodHandles.hpp:32,
                 from
/home/ysuenaga/OpenJDK/jdk-hs/src/hotspot/share/ci/ciMethod.hpp:33,
                 from
/home/ysuenaga/OpenJDK/jdk-hs/src/hotspot/share/code/debugInfoRec.hpp:30,
                 from
/home/ysuenaga/OpenJDK/jdk-hs/src/hotspot/share/ci/ciEnv.hpp:31,
                 from
/home/ysuenaga/OpenJDK/jdk-hs/src/hotspot/share/ci/ciUtilities.hpp:28,
                 from
/home/ysuenaga/OpenJDK/jdk-hs/src/hotspot/share/ci/ciNullObject.hpp:30,
                 from
/home/ysuenaga/OpenJDK/jdk-hs/src/hotspot/share/ci/ciConstant.hpp:29,
                 from
/home/ysuenaga/OpenJDK/jdk-hs/src/hotspot/share/ci/ciArray.hpp:29,
                 from
/home/ysuenaga/OpenJDK/jdk-hs/src/hotspot/share/precompiled/precompiled.hpp:35:
/home/ysuenaga/OpenJDK/jdk-hs/src/hotspot/share/oops/accessBackend.hpp:343:15:
note: candidate: template<long unsigned int decorators> template<class
T> static bool RawAccessBarrier<decorators>::arraycopy(arrayOop,
arrayOop, T*, T*, size_t)
   static bool arraycopy(arrayOop src_obj, arrayOop dst_obj, T* src,
T* dst, size_t length);
               ^~~~~~~~~
/home/ysuenaga/OpenJDK/jdk-hs/src/hotspot/share/oops/accessBackend.hpp:343:15:
note:   template argument deduction/substitution failed:
In file included from
/home/ysuenaga/OpenJDK/jdk-hs/src/hotspot/share/oops/access.inline.hpp:35:0,
                 from
/home/ysuenaga/OpenJDK/jdk-hs/src/hotspot/share/oops/oop.inline.hpp:32,
                 from
/home/ysuenaga/OpenJDK/jdk-hs/src/hotspot/share/oops/markOop.inline.hpp:30,
                 from
/home/ysuenaga/OpenJDK/jdk-hs/src/hotspot/share/precompiled/precompiled.hpp:153:
/home/ysuenaga/OpenJDK/jdk-hs/src/hotspot/share/oops/accessBackend.inline.hpp:131:86:
note:   mismatched types 'T*' and 'long unsigned int'
     return arraycopy(reinterpret_cast<oop*>(src),
reinterpret_cast<oop*>(dst), length);

               ^
In file included from
/home/ysuenaga/OpenJDK/jdk-hs/src/hotspot/share/oops/access.inline.hpp:35:0,
                 from
/home/ysuenaga/OpenJDK/jdk-hs/src/hotspot/share/oops/oop.inline.hpp:32,
                 from
/home/ysuenaga/OpenJDK/jdk-hs/src/hotspot/share/oops/markOop.inline.hpp:30,
                 from
/home/ysuenaga/OpenJDK/jdk-hs/src/hotspot/share/precompiled/precompiled.hpp:153:
/home/ysuenaga/OpenJDK/jdk-hs/src/hotspot/share/oops/accessBackend.inline.hpp:
In static member function 'static bool
RawAccessBarrier<decorators>::oop_arraycopy(arrayOop, arrayOop,
HeapWord*, HeapWord*, size_t)':
/home/ysuenaga/OpenJDK/jdk-hs/src/hotspot/share/oops/accessBackend.inline.hpp:129:98:
error: no matching function for call to
'RawAccessBarrier<decorators>::arraycopy(narrowOop*, narrowOop*,
size_t&)'
     return arraycopy(reinterpret_cast<narrowOop*>(src),
reinterpret_cast<narrowOop*>(dst), length);

                           ^
In file included from
/home/ysuenaga/OpenJDK/jdk-hs/src/hotspot/share/gc/shared/barrierSet.hpp:31:0,
                 from
/home/ysuenaga/OpenJDK/jdk-hs/src/hotspot/share/gc/shared/collectorPolicy.hpp:28,
                 from
/home/ysuenaga/OpenJDK/jdk-hs/src/hotspot/share/gc/shared/genCollectedHeap.hpp:29,
                 from
/home/ysuenaga/OpenJDK/jdk-hs/src/hotspot/share/gc/shared/gcLocker.hpp:29,
                 from
/home/ysuenaga/OpenJDK/jdk-hs/src/hotspot/share/runtime/interfaceSupport.hpp:28,
                 from
/home/ysuenaga/OpenJDK/jdk-hs/src/hotspot/share/prims/methodHandles.hpp:32,
                 from
/home/ysuenaga/OpenJDK/jdk-hs/src/hotspot/share/ci/ciMethod.hpp:33,
                 from
/home/ysuenaga/OpenJDK/jdk-hs/src/hotspot/share/code/debugInfoRec.hpp:30,
                 from
/home/ysuenaga/OpenJDK/jdk-hs/src/hotspot/share/ci/ciEnv.hpp:31,
                 from
/home/ysuenaga/OpenJDK/jdk-hs/src/hotspot/share/ci/ciUtilities.hpp:28,
                 from
/home/ysuenaga/OpenJDK/jdk-hs/src/hotspot/share/ci/ciNullObject.hpp:30,
                 from
/home/ysuenaga/OpenJDK/jdk-hs/src/hotspot/share/ci/ciConstant.hpp:29,
                 from
/home/ysuenaga/OpenJDK/jdk-hs/src/hotspot/share/ci/ciArray.hpp:29,
                 from
/home/ysuenaga/OpenJDK/jdk-hs/src/hotspot/share/precompiled/precompiled.hpp:35:
/home/ysuenaga/OpenJDK/jdk-hs/src/hotspot/share/oops/accessBackend.hpp:343:15:
note: candidate: template<long unsigned int decorators> template<class
T> static bool RawAccessBarrier<decorators>::arraycopy(arrayOop,
arrayOop, T*, T*, size_t)
   static bool arraycopy(arrayOop src_obj, arrayOop dst_obj, T* src,
T* dst, size_t length);
               ^~~~~~~~~
/home/ysuenaga/OpenJDK/jdk-hs/src/hotspot/share/oops/accessBackend.hpp:343:15:
note:   template argument deduction/substitution failed:
In file included from
/home/ysuenaga/OpenJDK/jdk-hs/src/hotspot/share/oops/access.inline.hpp:35:0,
                 from
/home/ysuenaga/OpenJDK/jdk-hs/src/hotspot/share/oops/oop.inline.hpp:32,
                 from
/home/ysuenaga/OpenJDK/jdk-hs/src/hotspot/share/oops/markOop.inline.hpp:30,
                 from
/home/ysuenaga/OpenJDK/jdk-hs/src/hotspot/share/precompiled/precompiled.hpp:153:
/home/ysuenaga/OpenJDK/jdk-hs/src/hotspot/share/oops/accessBackend.inline.hpp:129:98:
note:   mismatched types 'T*' and 'long unsigned int'
     return arraycopy(reinterpret_cast<narrowOop*>(src),
reinterpret_cast<narrowOop*>(dst), length);

                           ^
/home/ysuenaga/OpenJDK/jdk-hs/src/hotspot/share/oops/accessBackend.inline.hpp:131:86:
error: no matching function for call to
'RawAccessBarrier<decorators>::arraycopy(oop*, oop*, size_t&)'
     return arraycopy(reinterpret_cast<oop*>(src),
reinterpret_cast<oop*>(dst), length);

               ^
In file included from
/home/ysuenaga/OpenJDK/jdk-hs/src/hotspot/share/gc/shared/barrierSet.hpp:31:0,
                 from
/home/ysuenaga/OpenJDK/jdk-hs/src/hotspot/share/gc/shared/collectorPolicy.hpp:28,
                 from
/home/ysuenaga/OpenJDK/jdk-hs/src/hotspot/share/gc/shared/genCollectedHeap.hpp:29,
                 from
/home/ysuenaga/OpenJDK/jdk-hs/src/hotspot/share/gc/shared/gcLocker.hpp:29,
                 from
/home/ysuenaga/OpenJDK/jdk-hs/src/hotspot/share/runtime/interfaceSupport.hpp:28,
                 from
/home/ysuenaga/OpenJDK/jdk-hs/src/hotspot/share/prims/methodHandles.hpp:32,
                 from
/home/ysuenaga/OpenJDK/jdk-hs/src/hotspot/share/ci/ciMethod.hpp:33,
                 from
/home/ysuenaga/OpenJDK/jdk-hs/src/hotspot/share/code/debugInfoRec.hpp:30,
                 from
/home/ysuenaga/OpenJDK/jdk-hs/src/hotspot/share/ci/ciEnv.hpp:31,
                 from
/home/ysuenaga/OpenJDK/jdk-hs/src/hotspot/share/ci/ciUtilities.hpp:28,
                 from
/home/ysuenaga/OpenJDK/jdk-hs/src/hotspot/share/ci/ciNullObject.hpp:30,
                 from
/home/ysuenaga/OpenJDK/jdk-hs/src/hotspot/share/ci/ciConstant.hpp:29,
                 from
/home/ysuenaga/OpenJDK/jdk-hs/src/hotspot/share/ci/ciArray.hpp:29,
                 from
/home/ysuenaga/OpenJDK/jdk-hs/src/hotspot/share/precompiled/precompiled.hpp:35:
/home/ysuenaga/OpenJDK/jdk-hs/src/hotspot/share/oops/accessBackend.hpp:343:15:
note: candidate: template<long unsigned int decorators> template<class
T> static bool RawAccessBarrier<decorators>::arraycopy(arrayOop,
arrayOop, T*, T*, size_t)
   static bool arraycopy(arrayOop src_obj, arrayOop dst_obj, T* src,
T* dst, size_t length);
               ^~~~~~~~~
/home/ysuenaga/OpenJDK/jdk-hs/src/hotspot/share/oops/accessBackend.hpp:343:15:
note:   template argument deduction/substitution failed:
In file included from
/home/ysuenaga/OpenJDK/jdk-hs/src/hotspot/share/oops/access.inline.hpp:35:0,
                 from
/home/ysuenaga/OpenJDK/jdk-hs/src/hotspot/share/oops/oop.inline.hpp:32,
                 from
/home/ysuenaga/OpenJDK/jdk-hs/src/hotspot/share/oops/markOop.inline.hpp:30,
                 from
/home/ysuenaga/OpenJDK/jdk-hs/src/hotspot/share/precompiled/precompiled.hpp:153:
/home/ysuenaga/OpenJDK/jdk-hs/src/hotspot/share/oops/accessBackend.inline.hpp:131:86:
note:   mismatched types 'T*' and 'long unsigned int'
     return arraycopy(reinterpret_cast<oop*>(src),
reinterpret_cast<oop*>(dst), length);

               ^
gmake[3]: *** [lib/CompileJvm.gmk:214:
/home/ysuenaga/OpenJDK/jdk-hs/build/linux-x86_64-normal-server-fastdebug/hotspot/variant-server/libjvm/objs/precompiled/precompiled.hpp.gch]
Error 1
gmake[3]: *** Waiting for unfinished jobs....
gmake[3]: *** [lib/CompileGtest.gmk:67:
/home/ysuenaga/OpenJDK/jdk-hs/build/linux-x86_64-normal-server-fastdebug/hotspot/variant-server/libjvm/gtest/objs/precompiled/precompiled.hpp.gch]
Error 1
gmake[2]: *** [make/Main.gmk:267: hotspot-server-libs] Error 2

ERROR: Build failed for target 'images' in configuration
'linux-x86_64-normal-server-fastdebug' (exit code 2)
-------------------

Do someone work for this issue?
IMHO we can avoid this with following patch:
-------------------
diff -r 98e7a2c315a9 src/hotspot/share/oops/accessBackend.hpp
--- a/src/hotspot/share/oops/accessBackend.hpp    Tue Mar 13 15:29:55 2018 -0700
+++ b/src/hotspot/share/oops/accessBackend.hpp    Wed Mar 14 10:28:27 2018 +0900
@@ -384,7 +384,6 @@

   template <typename T>
   static bool oop_arraycopy(arrayOop src_obj, arrayOop dst_obj, T*
src, T* dst, size_t length);
-  static bool oop_arraycopy(arrayOop src_obj, arrayOop dst_obj,
HeapWord* src, HeapWord* dst, size_t length);

   static void clone(oop src, oop dst, size_t size);

diff -r 98e7a2c315a9 src/hotspot/share/oops/accessBackend.inline.hpp
--- a/src/hotspot/share/oops/accessBackend.inline.hpp    Tue Mar 13
15:29:55 2018 -0700
+++ b/src/hotspot/share/oops/accessBackend.inline.hpp    Wed Mar 14
10:28:27 2018 +0900
@@ -122,17 +122,6 @@
 }

 template <DecoratorSet decorators>
-inline bool RawAccessBarrier<decorators>::oop_arraycopy(arrayOop
src_obj, arrayOop dst_obj, HeapWord* src, HeapWord* dst, size_t
length) {
-  bool needs_oop_compress = HasDecorator<decorators,
INTERNAL_CONVERT_COMPRESSED_OOP>::value &&
-                            HasDecorator<decorators,
INTERNAL_RT_USE_COMPRESSED_OOPS>::value;
-  if (needs_oop_compress) {
-    return arraycopy(reinterpret_cast<narrowOop*>(src),
reinterpret_cast<narrowOop*>(dst), length);
-  } else {
-    return arraycopy(reinterpret_cast<oop*>(src),
reinterpret_cast<oop*>(dst), length);
-  }
-}
-
-template <DecoratorSet decorators>
 template <DecoratorSet ds, typename T>
 inline typename EnableIf<
   HasDecorator<ds, MO_SEQ_CST>::value, T>::type
-------------------


Thanks,

Yasumasa


More information about the hotspot-dev mailing list