compilation failure using gcc 4.7.2 (original) (raw)

David Holmes david.holmes at oracle.com
Sun Nov 4 14:28:22 PST 2012


Hi Peter,

I think we have lost some changes through the NPG integration. This code was updated by Mikael Gerdin under:

7172226: HotSpot fails to build with GCC 4.7 because of stricter c++ argument dependent lookup

http://hg.openjdk.java.net/jdk8/jdk8/hotspot/diff/a297b0e14605/src/share/vm/memory/binaryTreeDictionary.cpp

but the NPG changes by Jon under

7045397: NPG: Add freelists to class loader arenas

http://hg.openjdk.java.net/jdk8/jdk8/hotspot/rev/685df3c6f84b

http://hg.openjdk.java.net/jdk8/jdk8/hotspot/diff/685df3c6f84b/src/share/vm/memory/binaryTreeDictionary.cpp

seems to have undone those changes in part.

The preferred fix was to add "using" directives rather than writing fully-qualified names.

David

On 5/11/2012 7:09 AM, Peter Levart wrote:

Hi,

Current head of jdk8/hotspot repository (3790:4d37eb50b9b1) can not be built with gcc 4.7.2. I had to make the following changes to compile with gcc 4.7.2 (on linux):

diff -r 4d37eb50b9b1 src/share/vm/memory/binaryTreeDictionary.cpp --- a/src/share/vm/memory/binaryTreeDictionary.cpp Thu Nov 01 14:11:16 2012 -0700 +++ b/src/share/vm/memory/binaryTreeDictionary.cpp Sun Nov 04 22:07:29 2012 +0100 @@ -239,7 +239,7 @@ } else { if (nextTC == NULL) { // Removing chunk at tail of list - linktail(prevFC); + this->linktail(prevFC); } // Chunk is interior to the list prevFC->linkafter(nextTC); @@ -296,7 +296,7 @@ Chunkt* fc = tail(); fc->linkafter(chunk); - linktail(chunk); + this->linktail(chunk); assert(!tail() || size() == tail()->size(), "Wrong sized chunk in list"); FreeListt::incrementcount(); @@ -323,7 +323,7 @@ chunk->linkafter(fc); } else { assert(tail() == NULL, "List is inconsistent"); - linktail(chunk); + this->linktail(chunk); } head()->linkafter(chunk); assert(!head() || size() == head()->size(), "Wrong sized chunk in list"); @@ -940,7 +940,7 @@ void dotree(TreeList<Chunkt, FreeListt>* tl) { if (tl != NULL) { dotree(tl->left()); - dolist(tl); + this->dolist(tl); dotree(tl->right()); } } @@ -952,7 +952,7 @@ void dotree(TreeList<Chunkt, FreeListt>* tl) { if (tl != NULL) { dotree(tl->right()); - dolist(tl); + this->dolist(tl); dotree(tl->left()); } } @@ -1008,7 +1008,7 @@ bool dotree(TreeList<Chunkt, FreeListt>* tl) { if (tl != NULL) { if (dotree(tl->left())) return true; - if (dolist(tl)) return true; + if (this->dolist(tl)) return true; if (dotree(tl->right())) return true; } return false; @@ -1022,7 +1022,7 @@ bool dotree(TreeList<Chunkt, FreeListt>* tl) { if (tl != NULL) { if (dotree(tl->right())) return true; - if (dolist(tl)) return true; + if (this->dolist(tl)) return true; if (dotree(tl->left())) return true; } return false;

Regards, Peter



More information about the hotspot-runtime-dev mailing list