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