Build breakage

Andrew Hughes ahughes at redhat.com
Mon May 28 06:34:47 PDT 2012



----- Original Message -----
> Hi Andrew,
> 
> On 2012-05-28 14:57, Andrew Hughes wrote:
> > I'm trying to build a patch against the build forest
> > (http://hg.openjdk.java.net/jdk8/build/) and the HotSpot build
> > is broken in the current checkout:
> >
> > /home/andrew/projects/openjdk/upstream/build/hotspot/src/share/vm/memory/binaryTreeDictionary.cpp:
> > In instantiation of 'TreeList<Chunk>*
> > TreeList<Chunk>::remove_chunk_replace_if_needed(TreeChunk<Chunk>*)
> > [with Chunk = FreeChunk]':
> > /home/andrew/projects/openjdk/upstream/build/hotspot/src/share/vm/memory/binaryTreeDictionary.cpp:1342:16:
> >   required from here
> > /home/andrew/projects/openjdk/upstream/build/hotspot/src/share/vm/memory/binaryTreeDictionary.cpp:173:7:
> > error: 'link_tail' was not declared in this scope, and no
> > declarations were found by argument-dependent lookup at the point
> > of instantiation [-fpermissive]
> > /home/andrew/projects/openjdk/upstream/build/hotspot/src/share/vm/memory/binaryTreeDictionary.cpp:173:7:
> > note: declarations in dependent base 'FreeList<FreeChunk>' are not
> > found by unqualified lookup
> > /home/andrew/projects/openjdk/upstream/build/hotspot/src/share/vm/memory/binaryTreeDictionary.cpp:173:7:
> > note: use 'this->link_tail' instead
> > /home/andrew/projects/openjdk/upstream/build/hotspot/src/share/vm/memory/binaryTreeDictionary.cpp:
> > In instantiation of 'void
> > TreeList<Chunk>::return_chunk_at_head(TreeChunk<Chunk>*) [with
> > Chunk = FreeChunk]':
> > /home/andrew/projects/openjdk/upstream/build/hotspot/src/share/vm/memory/binaryTreeDictionary.cpp:1342:16:
> >   required from here
> > /home/andrew/projects/openjdk/upstream/build/hotspot/src/share/vm/memory/binaryTreeDictionary.cpp:257:5:
> > error: 'link_tail' was not declared in this scope, and no
> > declarations were found by argument-dependent lookup at the point
> > of instantiation [-fpermissive]
> > /home/andrew/projects/openjdk/upstream/build/hotspot/src/share/vm/memory/binaryTreeDictionary.cpp:257:5:
> > note: declarations in dependent base 'FreeList<FreeChunk>' are not
> > found by unqualified lookup
> > /home/andrew/projects/openjdk/upstream/build/hotspot/src/share/vm/memory/binaryTreeDictionary.cpp:257:5:
> > note: use 'this->link_tail' instead
> > /home/andrew/projects/openjdk/upstream/build/hotspot/src/share/vm/memory/binaryTreeDictionary.cpp:
> > In instantiation of 'void
> > TreeList<Chunk>::return_chunk_at_tail(TreeChunk<Chunk>*) [with
> > Chunk = FreeChunk]':
> > /home/andrew/projects/openjdk/upstream/build/hotspot/src/share/vm/memory/binaryTreeDictionary.cpp:1342:16:
> >   required from here
> > /home/andrew/projects/openjdk/upstream/build/hotspot/src/share/vm/memory/binaryTreeDictionary.cpp:230:3:
> > error: 'link_tail' was not declared in this scope, and no
> > declarations were found by argument-dependent lookup at the point
> > of instantiation [-fpermissive]
> > /home/andrew/projects/openjdk/upstream/build/hotspot/src/share/vm/memory/binaryTreeDictionary.cpp:230:3:
> > note: declarations in dependent base 'FreeList<FreeChunk>' are not
> > found by unqualified lookup
> > /home/andrew/projects/openjdk/upstream/build/hotspot/src/share/vm/memory/binaryTreeDictionary.cpp:230:3:
> > note: use 'this->link_tail' instead
> > /home/andrew/projects/openjdk/upstream/build/hotspot/src/share/vm/memory/binaryTreeDictionary.cpp:
> > In instantiation of 'bool
> > DescendTreeSearchClosure<Chunk>::do_tree(TreeList<Chunk>*) [with
> > Chunk = FreeChunk]':
> > /home/andrew/projects/openjdk/upstream/build/hotspot/src/share/vm/memory/binaryTreeDictionary.cpp:1027:42:
> >   required from 'Chunk*
> > BinaryTreeDictionary<Chunk>::find_chunk_ends_at(HeapWord*) const
> > [with Chunk = FreeChunk]'
> > /home/andrew/projects/openjdk/upstream/build/hotspot/src/share/vm/memory/binaryTreeDictionary.cpp:1340:16:
> >   required from here
> > /home/andrew/projects/openjdk/upstream/build/hotspot/src/share/vm/memory/binaryTreeDictionary.cpp:994:7:
> > error: 'do_list' was not declared in this scope, and no
> > declarations were found by argument-dependent lookup at the point
> > of instantiation [-fpermissive]
> > /home/andrew/projects/openjdk/upstream/build/hotspot/src/share/vm/memory/binaryTreeDictionary.cpp:994:7:
> > note: declarations in dependent base
> > 'TreeSearchClosure<FreeChunk>' are not found by unqualified lookup
> > /home/andrew/projects/openjdk/upstream/build/hotspot/src/share/vm/memory/binaryTreeDictionary.cpp:994:7:
> > note: use 'this->do_list' instead
> > /home/andrew/projects/openjdk/upstream/build/hotspot/src/share/vm/memory/binaryTreeDictionary.cpp:
> > In instantiation of 'void
> > AscendTreeCensusClosure<Chunk>::do_tree(TreeList<Chunk>*) [with
> > Chunk = FreeChunk]':
> > /home/andrew/projects/openjdk/upstream/build/hotspot/src/share/vm/memory/binaryTreeDictionary.cpp:1039:3:
> >   required from 'void
> > BinaryTreeDictionary<Chunk>::begin_sweep_dict_census(double,
> > float, float, float) [with Chunk = FreeChunk]'
> > /home/andrew/projects/openjdk/upstream/build/hotspot/src/share/vm/memory/binaryTreeDictionary.cpp:1340:16:
> >   required from here
> > /home/andrew/projects/openjdk/upstream/build/hotspot/src/share/vm/memory/binaryTreeDictionary.cpp:916:7:
> > error: 'do_list' was not declared in this scope, and no
> > declarations were found by argument-dependent lookup at the point
> > of instantiation [-fpermissive]
> > /home/andrew/projects/openjdk/upstream/build/hotspot/src/share/vm/memory/binaryTreeDictionary.cpp:916:7:
> > note: declarations in dependent base
> > 'TreeCensusClosure<FreeChunk>' are not found by unqualified lookup
> > /home/andrew/projects/openjdk/upstream/build/hotspot/src/share/vm/memory/binaryTreeDictionary.cpp:916:7:
> > note: use 'this->do_list' instead
> > /home/andrew/projects/openjdk/upstream/build/hotspot/src/share/vm/memory/binaryTreeDictionary.cpp:
> > In instantiation of 'void
> > DescendTreeCensusClosure<Chunk>::do_tree(TreeList<Chunk>*) [with
> > Chunk = FreeChunk]':
> > /home/andrew/projects/openjdk/upstream/build/hotspot/src/share/vm/memory/binaryTreeDictionary.cpp:1135:3:
> >   required from 'void
> >  BinaryTreeDictionary<Chunk>::set_tree_hints() [with Chunk =
> > FreeChunk]'
> > /home/andrew/projects/openjdk/upstream/build/hotspot/src/share/vm/memory/binaryTreeDictionary.cpp:1340:16:
> >   required from here
> > /home/andrew/projects/openjdk/upstream/build/hotspot/src/share/vm/memory/binaryTreeDictionary.cpp:928:7:
> > error: 'do_list' was not declared in this scope, and no
> > declarations were found by argument-dependent lookup at the point
> > of instantiation [-fpermissive]
> > /home/andrew/projects/openjdk/upstream/build/hotspot/src/share/vm/memory/binaryTreeDictionary.cpp:928:7:
> > note: declarations in dependent base
> > 'TreeCensusClosure<FreeChunk>' are not found by unqualified lookup
> > /home/andrew/projects/openjdk/upstream/build/hotspot/src/share/vm/memory/binaryTreeDictionary.cpp:928:7:
> > note: use 'this->do_list' instead
> >
> > This is with GCC 4.7, exact same build as I do for 7u which works
> > fine.
> >
> > ALT_BOOTDIR points to:
> >
> > java version "1.7.0_03-icedtea"
> > OpenJDK Runtime Environment (IcedTea7 2.1) (Gentoo build
> > 1.7.0_03-icedtea-b147)
> > OpenJDK 64-Bit Server VM (build 22.0-b10, mixed mode)
> >
> > Settings:
> >
> > ANT_RESPECT_JAVA_HOME=true LANG=C make
> > ALT_BOOTDIR=${SYSTEM_ICEDTEA7} \
> >      ALT_OUTPUTDIR=${WORKING_DIR}/${BUILD_DIR} \
> >      ALT_PARALLEL_COMPILE_JOBS=$PARALLEL_JOBS \
> >      ALT_DROPS_DIR=${DROPS_DIR} \
> >      HOTSPOT_BUILD_JOBS=$PARALLEL_JOBS \
> >      ANT=/usr/bin/ant \
> >      QUIETLY="" \
> >      DEBUG_BINARIES="true" \
> >      DEBUG_CLASSFILES="true" \
> >      NO_DOCS="true" \
> >      OTHER_JAVACFLAGS="-Xmaxwarns 10000" \
> >      ${WARNINGS} STATIC_CXX=false \
> >      STRIP_POLICY=no_strip
> >
> > I think this may be related to:
> >
> > $ hg log -R hotspot -k 7164144
> > changeset:   3297:f69a5d43dc19
> > parent:      3295:9f059abe8cf2
> > user:        jmasa
> > date:        Wed Apr 25 09:55:55 2012 -0700
> > summary:     7164144: Fix variable naming style in
> > freeBlockDictionary.* and binaryTreeDictionary*
> >
> > which is in hotspot-comp, hotspot-rt&  build, but not 7u.
> >
> > Any ideas?
> 
> I've seen this when I tried building with GCC 4.7 as well.
> This problem comes from 9f059abe8cf2, "Generalize the CMS free list
> code" which introduced some templates.
> It appears that GCC 4.7 is more strict when doing argument dependent
> lookup than 4.6.
> The fix is to do just what gcc suggests and use this->* or use the
> qualified name of the function, for example
> TreeList<Chunk>::link_tail
> in the first failure. As you can see there are already some places in
> that code which use the fully qualified name.
> 
> I just discovered that I had a patch that fixes most of these issues
> in
> binaryTreeDictionary so I'll go ahead and file a CR for this.
> 
> Regards
> /mg
> 

Thanks Mikael.  If you could post the patch, it would be much appreciated.
I can't build OpenJDK8 at present.

> --
> Mikael Gerdin
> Java SE VM SQE Stockholm
> 

-- 
Andrew :)

Free Java Software Engineer
Red Hat, Inc. (http://www.redhat.com)

PGP Key: 248BDC07 (https://keys.indymedia.org/)
Fingerprint = EC5A 1F5E C0AD 1D15 8F1F  8F91 3B96 A578 248B DC07



More information about the hotspot-dev mailing list