HotSpot 16 on OpenJDK6 build failure (was hg: jdk6/jdk6/hotspot: 3 new changesets)
Daniel D. Daugherty
Daniel.Daugherty at Sun.COM
Wed Feb 24 16:36:47 PST 2010
Andrew John Hughes wrote:
> On 20 February 2010 16:17, Daniel D. Daugherty <Daniel.Daugherty at sun.com> wrote:
>
>> Andrew John Hughes wrote:
>>
>>> 2010/2/17 Andrew John Hughes <gnu_andrew at member.fsf.org>:
>>>
>>> Can we please have a solution for this?
>>>
>> Actually, I've been working on getting this fix into HSX-16
>> even though I'm on a road trip (and on vacation).
>>
>>
>
> Ok. I can't really tell this from my end when there is no response to
> my e-mail.
>
Sorry, I forgot to set vacation mail when I left.
>>> This changeset is NOT in the
>>> hs16 master and is causing the OpenJDK6 build to fail once the hs16
>>> master is imported, thus blocking our progress on preparing b19.
>>>
>>>
>> I previously said that I pushed this fix to HSX-16.1 which is not
>> the same as HSX-16. I never said that this fix is in the HSX-16
>> master.
>>
>>
>
> Right, now that makes more sense. I have no idea what HSX-16.1 is, so
> I'd assumed that it was shorthand for b01 of hs16 rather than some
> other repository we can't see. The only repositories I'm aware of, in
> addition to the OpenJDK6 and 7 ones, are the hsx16 base and master
> ones.
>
When I fixed this bug in OpenJDK6/HSX-14, I should have also
pushed the fix to HSX-16 (in addition to that HSX-16.1 thing :-)).
I forgot that OpenJDK6 was moving to HSX-16 and not HSX-16.1.
I tend not to pay attention to specific release trains. I just
fix stuff where I think it needs to be fixed.
>>> Using hs16 directly with OpenJDK6 works -- we have been doing this for
>>> sometime. As shown by the diff I posted, this conflicting changeset
>>> is local to OpenJDK6.
>>>
>>>
>> Yup. I thought I was doing the "right thing" by fixing this bug
>> in OpenJDK6 also in addition to HSX-16.1 and HSX-17. Now I'm
>> starting to wonder why I bother doing things for OpenJDK6 at all.
>>
>>
>
> I didn't say it was wrong to put it into OpenJDK6. I merely wanted to
> know how to fix the breakage that occurred when we updated OpenJDK6,
> and was confused by what appeared to be a claim from you that the
> patch was in the hs16 master when it clearly wasn't.
>
I think we're on the same page now. Erik will take care
of getting the bits into the right public repos from here.
>>> Is there a suitable default value for version so that we can
>>> reintroduce the JvmtiEnv() constructor that was removed by your
>>> changeset?
>>>
>>>
>> When I ported the changeset to HSX-16, there was no need for a
>> no-args constructor. I previously asked why you needed one and
>> I don't see that answer in this e-mail thread. Perhaps I missed
>> your reasons.
>>
>
> I don't _need _ one. I would have thought it was clear from the build
> failure I posted in both the initial and last response.that another
> part of the code is looking for the old no-args constructor i.e.
>
>
>>> /home/andrew/projects/openjdk/upstream/jdk6/hotspot/src/share/vm/prims/jvmtiEnvThreadState.cpp
>>> /home/andrew/projects/openjdk/upstream/jdk6/hotspot/src/share/vm/prims/jvmtiEnvBase.cpp:126:
>>> error: prototype for 'JvmtiEnvBase::JvmtiEnvBase()' does not match any
>>> in class 'JvmtiEnvBase'
>>> /home/andrew/projects/openjdk/upstream/jdk6/hotspot/src/share/vm/prims/jvmtiEnvBase.hpp:44:
>>> error: candidates are: JvmtiEnvBase::JvmtiEnvBase(const JvmtiEnvBase&)
>>> /home/andrew/projects/openjdk/upstream/jdk6/hotspot/src/share/vm/prims/jvmtiEnvBase.hpp:95:
>>> error: JvmtiEnvBase::JvmtiEnvBase(jint)
>>>
I did see what you posted and I couldn't figure it out from the
error messages. It didn't make any sense to me when I looked at
the specific lines in the code (in my copy).
> Maybe this call was added after the version of hs16 you ported to...
> it's still unclear what that version is and whether we actually have
> access to it.
>
I suspect that the problem had to do with how "you" merged the
changesets into your repo. "you" in quotes because I think that
automerge caused this problem. More below.
>> I'll be pushing the ported changeset to HSX-16 baseline once I
>> get back to Colorado. Right now I'm in New Mexico and expect to
>> get home in 9-10 hours depending on the snow...
>>
>
> Ok, I'll be surprised if that builds as that's effectively how it's
> being applied to cause this failure -- the patch you made for OpenJDK6
> is already there and the repository has been updated to the level of
> hs16 master.
>
But it did build and now I'm troubled about why this merge didn't
work for you. Here's the merge that I did:
# the '-r ...' is just to create the merge_test repo at the
# previous tip:
% hg clone -r b9408ac1b596 \
http://hg.openjdk.java.net/hsx/hsx16/baseline merge_test
requesting all changes
adding changesets
adding manifests
adding file changes
added 999 changesets with 9169 changes to 3765 files
updating working directory
3568 files updated, 0 files merged, 0 files removed, 0 files unresolved
# make sure I'm getting the two changesets I expect:
% hg inc -r 98cd9901c161 http://hg.openjdk.java.net/jdk6/jdk6/hotspot
comparing with http://hg.openjdk.java.net/jdk6/jdk6/hotspot
searching for changes
changeset: 999:9127aa69352e
parent: 921:9601152ccfc1
user: dcubed
date: Mon Dec 14 09:51:09 2009 -0700
summary: 6648438: 4/4 src/share/vm/prims/jvmtiEnv.cpp:457
assert(phase == JVMTI_PHASE_LIVE,"sanity check")
changeset: 1000:98cd9901c161
tag: tip
user: dcubed
date: Mon Dec 14 10:05:36 2009 -0700
summary: 6849968: 3/2 JVMTI tests fails on jdk5.0 with hs14
# get the changesets:
% hg pull -u -r 98cd9901c161 http://hg.openjdk.java.net/jdk6/jdk6/hotspot
pulling from http://hg.openjdk.java.net/jdk6/jdk6/hotspot
searching for changes
adding changesets
adding manifests
adding file changes
added 2 changesets with 7 changes to 6 files (+1 heads)
abort: crosses branches (use 'hg merge' or 'hg update -C')
# merge the conflicts:
hg merge
merging src/share/vm/prims/jvmtiEnv.cpp
merging src/share/vm/prims/jvmtiEnvBase.cpp
attempting automatic merge:
merge: warning: conflicts during merge
There are conflicts. attempting manual merge.
calling filemerge for src/share/vm/prims/jvmtiEnvBase.cpp...
# At this point, I had to manually merge two of the changes in
# jvmtiEnvBase.cpp. The Mercurial auto merge couldn't handle it
# and the automerge in the "filemerge" program couldn't handle
# it either. Since one of the conflicted merges had to do with
# the JvmtiEnvBase constructor, I'm guessing that might be what
# happened in your situation. I don't know what merge tool you
# use when Mercurial's automerge doesn't work, but that might
# be what messed things up.
# Make sure that all expected files are "modified" as part of
# the hg merge:
% hg status
M src/share/vm/prims/jvmtiEnv.cpp
M src/share/vm/prims/jvmtiEnvBase.cpp
M src/share/vm/prims/jvmtiEnvBase.hpp
M src/share/vm/prims/jvmtiExport.cpp
M src/share/vm/prims/jvmtiExport.hpp
M src/share/vm/prims/jvmtiHpp.xsl
# Compare with the bits that I sent through JPRT for the
# push last weekend:
% diff {../../../../../bug_hunt/hsx16/exp/,}src/share/vm/prims/jvmtiEnv.cpp
% diff
{../../../../../bug_hunt/hsx16/exp/,}src/share/vm/prims/jvmtiEnvBase.cpp
% diff
{../../../../../bug_hunt/hsx16/exp/,}src/share/vm/prims/jvmtiEnvBase.hpp
% diff
{../../../../../bug_hunt/hsx16/exp/,}src/share/vm/prims/jvmtiExport.cpp
% diff
{../../../../../bug_hunt/hsx16/exp/,}src/share/vm/prims/jvmtiExport.hpp
% diff {../../../../../bug_hunt/hsx16/exp/,}src/share/vm/prims/jvmtiHpp.xsl
# At this point, all that is left is the "hg commit".
Please let me know if you concur that "automerge" is what caused
this problem.
Dan
More information about the jdk6-dev
mailing list