compilation failure using gcc 4.7.2
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
> - link_tail(prevFC);
> + this->link_tail(prevFC);
> }
> // Chunk is interior to the list
> prevFC->link_after(nextTC);
> @@ -296,7 +296,7 @@
>
> Chunk_t* fc = tail();
> fc->link_after(chunk);
> - link_tail(chunk);
> + this->link_tail(chunk);
>
> assert(!tail() || size() == tail()->size(), "Wrong sized chunk in list");
> FreeList_t<Chunk_t>::increment_count();
> @@ -323,7 +323,7 @@
> chunk->link_after(fc);
> } else {
> assert(tail() == NULL, "List is inconsistent");
> - link_tail(chunk);
> + this->link_tail(chunk);
> }
> head()->link_after(chunk);
> assert(!head() || size() == head()->size(), "Wrong sized chunk in list");
> @@ -940,7 +940,7 @@
> void do_tree(TreeList<Chunk_t, FreeList_t>* tl) {
> if (tl != NULL) {
> do_tree(tl->left());
> - do_list(tl);
> + this->do_list(tl);
> do_tree(tl->right());
> }
> }
> @@ -952,7 +952,7 @@
> void do_tree(TreeList<Chunk_t, FreeList_t>* tl) {
> if (tl != NULL) {
> do_tree(tl->right());
> - do_list(tl);
> + this->do_list(tl);
> do_tree(tl->left());
> }
> }
> @@ -1008,7 +1008,7 @@
> bool do_tree(TreeList<Chunk_t, FreeList_t>* tl) {
> if (tl != NULL) {
> if (do_tree(tl->left())) return true;
> - if (do_list(tl)) return true;
> + if (this->do_list(tl)) return true;
> if (do_tree(tl->right())) return true;
> }
> return false;
> @@ -1022,7 +1022,7 @@
> bool do_tree(TreeList<Chunk_t, FreeList_t>* tl) {
> if (tl != NULL) {
> if (do_tree(tl->right())) return true;
> - if (do_list(tl)) return true;
> + if (this->do_list(tl)) return true;
> if (do_tree(tl->left())) return true;
> }
> return false;
>
>
>
> Regards, Peter
>
More information about the hotspot-runtime-dev
mailing list