Can't build latest openjdk6

Jonathan Gibbons Jonathan.Gibbons at Sun.COM
Mon Aug 17 15:33:44 UTC 2009


Martin,

Thanks for the update.   Since the previous langtools change was just  
intended to be an internal cleanup, I'll fix the langtools build so  
that this change is not necessary.

-- Jon


On Aug 13, 2009, at 11:53 PM, Martin Buchholz wrote:

> As an experiment, I tried the obvious
>
> diff --git a/make/Defs-internal.gmk b/make/Defs-internal.gmk
> --- a/make/Defs-internal.gmk
> +++ b/make/Defs-internal.gmk
> @@ -205,6 +205,7 @@
>     JDK_MAKE_SHARED_DIR=$(ABS_JDK_TOPDIR)/make/common/shared \
>     EXTERNALSANITYCONTROL=true \
>     TARGET_CLASS_VERSION=$(TARGET_CLASS_VERSION) \
> +    SOURCE_LANGUAGE_VERSION=$(TARGET_CLASS_VERSION) \
>     MILESTONE=$(MILESTONE) \
>     BUILD_NUMBER=$(BUILD_NUMBER) \
>     JDK_BUILD_NUMBER=$(JDK_BUILD_NUMBER) \
>
> and to my surprise, that caused the build to succeed.
> Note: This message still in bug-reporting, not bug-fixing, mode!
>
> Martin
>
> On Thu, Aug 13, 2009 at 21:27, Joseph D. Darcy<Joe.Darcy at sun.com>  
> wrote:
>> I'll do some test builds myself on Friday.
>>
>> -Joe
>>
>> Jonathan Gibbons wrote:
>>>
>>> Martin,
>>>
>>> Comment noted.   I'm now on vacation, so I'll look at this next  
>>> week.
>>>
>>> -- Jon
>>>
>>> On Aug 13, 2009, at 6:10 PM, Martin Buchholz wrote:
>>>
>>>> It appears that ant is being invoked with "-Djavac.target=5", but  
>>>> not
>>>> with -Djavac.source
>>>>
>>>> execve("/usr/bin/ant", ["ant", "-Djdk.version=1.6.0",
>>>> "-Dfull.version=1.6.0-internal-ma"..., "-Dmilestone=internal",
>>>> "-Dbuild.number=b00", "-Djavac.target=5", "-Dboot.java.home=/ .....
>>>>
>>>> In turn, this may be due to COMMON_BUILD_ARGUMENTS
>>>> including TARGET_CLASS_VERSION but not SOURCE_LANGUAGE_VERSION
>>>>
>>>> # Common make arguments (supplied to all component builds)
>>>> COMMON_BUILD_ARGUMENTS = \
>>>>   JDK_TOPDIR=$(ABS_JDK_TOPDIR) \
>>>>   JDK_MAKE_SHARED_DIR=$(ABS_JDK_TOPDIR)/make/common/shared \
>>>>   EXTERNALSANITYCONTROL=true \
>>>>   TARGET_CLASS_VERSION=$(TARGET_CLASS_VERSION) \
>>>>   MILESTONE=$(MILESTONE) \
>>>>   BUILD_NUMBER=$(BUILD_NUMBER) \
>>>>   JDK_BUILD_NUMBER=$(JDK_BUILD_NUMBER) \
>>>>   FULL_VERSION=$(FULL_VERSION) \
>>>>   PREVIOUS_JDK_VERSION=$(PREVIOUS_JDK_VERSION) \
>>>>   JDK_VERSION=$(JDK_VERSION) \
>>>>   JDK_MKTG_VERSION=$(JDK_MKTG_VERSION) \
>>>>   JDK_MAJOR_VERSION=$(JDK_MAJOR_VERSION) \
>>>>   JDK_MINOR_VERSION=$(JDK_MINOR_VERSION) \
>>>>   JDK_MICRO_VERSION=$(JDK_MICRO_VERSION)
>>>>
>>>> which would explain why invoking ant directly in the langtools  
>>>> directory
>>>> without -Djavac.target=5 would work fine (I haven't tried it).
>>>>
>>>> langtools build.xml could try to check javac.target and ensure that
>>>> javac.source <= javac.target
>>>> but I don't know how to do that (I hack make, not ant).
>>>>
>>>> Martin
>>>>
>>>> On Thu, Aug 13, 2009 at 17:35, Jonathan Gibbons<Jonathan.Gibbons at sun.com 
>>>> >
>>>> wrote:
>>>>>
>>>>> The primary goal of changeset:   49:608910eef036 is to bring the
>>>>> langtools
>>>>> build into line between jdk6 and jdk7, so that we can rely on
>>>>> eseentially
>>>>>  the same behavior (subject to version differences) across the two
>>>>> repositoiries.
>>>>>
>>>>> The override mechanism is unused and harmless since javac.source  
>>>>> is
>>>>> correctly defaulted in build.properties.  It is included in 6 to
>>>>> minimize
>>>>> the differences between 6 and 7.
>>>>>
>>>>> Generally, the langtools build tries to isolate the user as much  
>>>>> as
>>>>> possible
>>>>> from the version of Java used to run Ant.
>>>>> To build langtools, you should just need to set boot.java.home;  
>>>>> to run
>>>>> the
>>>>> regression tests, you will also need to
>>>>> set target.java.home.
>>>>>
>>>>> -- Jon
>>>>>
>>>>>
>>>>> On Aug 13, 2009, at 5:00 PM, Mark Wielaard wrote:
>>>>>
>>>>>> Hi Martin,
>>>>>>
>>>>>> On Thu, 2009-08-13 at 15:25 -0700, Martin Buchholz wrote:
>>>>>>>
>>>>>>> /home/martinrb/ws/openjdk6/build/linux-amd64/langtools/build/ 
>>>>>>> classes
>>>>>>>  [javac] javac: source release 6 requires target release 1.6
>>>>>>>
>>>>>>> BUILD FAILED
>>>>>>>
>>>>>>> /usr/local/google/home/martin/ws/openjdk6/langtools/make/ 
>>>>>>> build.xml:196:
>>>>>>> The following error occurred while executing this line:
>>>>>>>
>>>>>>> /usr/local/google/home/martin/ws/openjdk6/langtools/make/ 
>>>>>>> build.xml:525:
>>>>>>> Compile failed; see the compiler error output for details.
>>>>>>>
>>>>>>> whether or not I use a vanilla jdk6 (or even jdk7) as  
>>>>>>> bootstrap jdk
>>>>>>>
>>>>>>> Can anyone else successfully build openjdk6?
>>>>>>> If so, what is the secret?
>>>>>>> Did I miss something in my inbox?
>>>>>>
>>>>>> I haven't tried upgrading oj6 yet. And one of the reasons for not
>>>>>> upgrading icedtea6 atm is to make sure the recent changes  
>>>>>> (which as far
>>>>>> as I could tell were not discussed on the list) to the source and
>>>>>> target
>>>>>> defaults don't break the bootstrap. The commit you probably  
>>>>>> want to
>>>>>> inspect is:
>>>>>>
>>>>>> changeset:   49:608910eef036
>>>>>> user:        jjg
>>>>>> date:        Tue Aug 11 16:40:03 2009 -0700
>>>>>> files:       make/Makefile make/build.properties make/build.xml
>>>>>> description:
>>>>>> 6870641: [langtools] update make/build.* for jdk6
>>>>>> Reviewed-by: darcy
>>>>>>
>>>>>> Unfortunately the bug associated with that commit is also not  
>>>>>> public.
>>>>>>
>>>>>> The idea behind the commit seems to be to make the -source and - 
>>>>>> target
>>>>>> explicit in more places (which is a good thing). There is now  
>>>>>> also an
>>>>>> override mechanism, that I admit to not fully understand  
>>>>>> because it
>>>>>> seems to be never used, through setting SOURCE_LANGUAGE_VERSION  
>>>>>> and/or
>>>>>> JAVAC_SOURCE_ARG.
>>>>>>
>>>>>> Also note that with ant the default source and target depends  
>>>>>> on the VM
>>>>>> that runs the ant process (which might be different from the  
>>>>>> bootstrap
>>>>>> VM you are using, it probably depends on your ant installation).
>>>>>>
>>>>>> Cheers,
>>>>>>
>>>>>> Mark
>>>>>>
>>>>>
>>>>>
>>>
>>
>>




More information about the build-dev mailing list