Where does 'make sanity' look for the ANT version?
Mike Duigou
mike.duigou at oracle.com
Wed Mar 28 21:18:47 UTC 2012
On Tue, 27 Mar 2012 17:22:02 -0700, Stuart Marks <stuart.marks at oracle.com> wrote:
> Hi Martijn!
>
> One of my colleagues ran into this the other day. I don't know all the details
> and the solution but I have a clue that might help you move forward.
>
> In make/common/shared/Sanity.gmk there are the lines,
>
>> _ANT_VER:=$(shell $(ANT) -version 2>&1 )
>> ANT_VER:=$(call GetVersion,"$(_ANT_VER)")
>
> The GetVersion function (defined in Defs.gmk) extracts the version number from
> the shell output using a regexp. Unfortunately there seem to be circumstances
> -- not sure exactly what they are though -- when the shell output includes a
> *java* version number, either in the output or in a path. Clearly you're using
> Java 7 -- that is, JDK 1.7.0 -- and the GetVersion regexp is happily picking
> this up thinking it's the ant version number.
>
> One path forward would be to investigate why "shell $(ANT) -version" is
> returning some unexpected output and is possibly not even running ant at all
I ran into this and found that the problem was with my ALT_BOOTDIR -- it was pointing at the wrong directory.
I had
ALT_BOOTDIR=/Library/Java/JavaVirtualMachines/1.7.0.jdk/
whereas I should have had
ALT_BOOTDIR=/Library/Java/JavaVirtualMachines/1.7.0.jdk/Contents/Home
And this produced an error message indicating that no java executable could be found at
/Library/Java/JavaVirtualMachines/1.7.0.jdk/bin/java
(because it's not there).
I found the problem by changing the sanity script to print the full response $(_ANT_VER) in the error message.
HTH,
Mike
> I'll forward this to my colleague to see whether he has anything to add.
>
> s'marks
>
>
> On 3/26/12 3:55 AM, Martijn Verburg wrote:
>> Hi all,
>>
>> So I'm building new VMs to try the various OpenJDK builds and have run
>> across a pretty consistent problem using Lubuntu 11.10 (32-bit) with
>> the detection of ANT.
>>
>> I have ANT 1.8.2 installed (Ant 1.7 is clearly removed) but 'make
>> sanity' insists that the ANT version I have is 1.7.0.
>>
>> * My DEVTOOLS_PATH is pointing at /usr/bin which has the correct version of ANT
>> * When I set ANT_HOME (export ANT_HOME=/usr/share/ant) before running
>> 'make sanity' it doesn't appear to take hold (the output from make
>> sanity shows ANT_HOME to be blank)
>>
>> I'm not sure where else it might be reading this from, does anyone
>> where I should go spelunking to see where it makes this check?
>>
>> Cheers,
>> Martijn
>
>
> ------------------------------
>
> Message: 2
> Date: Wed, 28 Mar 2012 08:06:51 +0200
> From: Martijn Verburg <martijnverburg at gmail.com>
> Subject: Re: Where does 'make sanity' look for the ANT version?
> To: Stuart Marks <stuart.marks at oracle.com>
> Cc: build-dev at openjdk.java.net
> Message-ID:
> <CAP7YuASNqDU8zy+XeNgo=-P2N7VkJDHB0eP=rLgdA4gOwrwtzQ at mail.gmail.com>
> Content-Type: text/plain; charset=UTF-8
>
> Hi Stuart,
>
> Thanks for looking into that for me, I'll keep a note of the location
> of Sanity.gmk going
> forwards. I have managed to resolve the issue, it was a curious case where my
> 1.8.2 ANT install couldn't find $ALT_BOOTDIR//lib/tools.jar and
> therefore 'failed', the
> build then defaulted back to an ant under the langtools folder.
>
> I corrected a permissions problem on the tools.jar file and make
> sanity ran smoothly
> after that. Now having fun trying to find the exact Ubnutu package
> that contains the
> X11 headers the build needs, but that's a different story :-)
>
> Cheers,
> Martijn
>
> On 28 March 2012 02:22, Stuart Marks <stuart.marks at oracle.com> wrote:
>
>
>> Hi Martijn!
>>
>> One of my colleagues ran into this the other day. I don't know all the
>> details and the solution but I have a clue that might help you move forward.
>>
>> In make/common/shared/Sanity.gmk there are the lines,
>>
>>> _ANT_VER:=$(shell $(ANT) -version 2>&1 )
>>> ANT_VER:=$(call GetVersion,"$(_ANT_VER)")
>>
>>
>> The GetVersion function (defined in Defs.gmk) extracts the version number
>> from the shell output using a regexp. Unfortunately there seem to be
>> circumstances -- not sure exactly what they are though -- when the shell
>> output includes a *java* version number, either in the output or in a path.
>> Clearly you're using Java 7 -- that is, JDK 1.7.0 -- and the GetVersion
>> regexp is happily picking this up thinking it's the ant version number.
>>
>> One path forward would be to investigate why "shell $(ANT) -version" is
>> returning some unexpected output and is possibly not even running ant at
>> all.
>>
>> I'll forward this to my colleague to see whether he has anything to add.
>>
>> s'marks
>>
>>
>>
>> On 3/26/12 3:55 AM, Martijn Verburg wrote:
>>>
>>> Hi all,
>>>
>>> So I'm building new VMs to try the various OpenJDK builds and have run
>>> across a pretty consistent problem using Lubuntu 11.10 (32-bit) with
>>> the detection of ANT.
>>>
>>> I have ANT 1.8.2 installed (Ant 1.7 is clearly removed) but 'make
>>> sanity' insists that the ANT version I have is 1.7.0.
>>>
>>> * My DEVTOOLS_PATH is pointing at /usr/bin which has the correct version
>>> of ANT
>>> * When I set ANT_HOME (export ANT_HOME=/usr/share/ant) before running
>>> 'make sanity' it doesn't appear to take hold (the output from make
>>> sanity shows ANT_HOME to be blank)
>>>
>>> I'm not sure where else it might be reading this from, does anyone
>>> where I should go spelunking to see where it makes this check?
>>>
>>> Cheers,
>>> Martijn
>
>
> End of build-dev Digest, Vol 59, Issue 53
> *****************************************
More information about the build-dev
mailing list