Can't Compile jtreg
Martin Buchholz
martinrb at google.com
Wed Oct 2 16:15:37 PDT 2013
Sigh.... I mean
diff --git a/make/jtreg.gmk b/make/jtreg.gmk
--- a/make/jtreg.gmk
+++ b/make/jtreg.gmk
@@ -350,7 +350,7 @@
#
# import JCov
-#ifdef JCOV_HOME
+ifdef JCOV_HOME
$(JTREG_IMAGEDIR)/lib/jcov.jar: $(JCOV_HOME)/lib/jcov.jar
$(RM) -f $@
@@ -366,7 +366,7 @@
$(JTREG_IMAGEDIR)/lib/jcov.jar \
$(JTREG_IMAGEDIR)/lib/jcov_implant.jar
-#endif JCOV_HOME
+endif # JCOV_HOME
#----------------------------------------------------------------------
#
On Wed, Oct 2, 2013 at 3:53 PM, Martin Buchholz <martinrb at google.com> wrote:
> Hi Jonathan,
>
> Your fixes to only use JCOV in an Oracle environment didn't quite work for
> me. Here's a small patch to fix an obvious little bug, after which I can
> build jtreg successfully (it's still not actually easy, with all the
> dependencies).
>
> diff --git a/make/jtreg.gmk b/make/jtreg.gmk
> --- a/make/jtreg.gmk
> +++ b/make/jtreg.gmk
> @@ -350,7 +350,7 @@
> #
> # import JCov
>
> -#ifdef JCOV_HOME
> +ifdef JCOV_HOME
>
> $(JTREG_IMAGEDIR)/lib/jcov.jar: $(JCOV_HOME)/lib/jcov.jar
> $(RM) -f $@
> @@ -366,7 +366,7 @@
> $(JTREG_IMAGEDIR)/lib/jcov.jar \
> $(JTREG_IMAGEDIR)/lib/jcov_implant.jar
>
> -#endif JCOV_HOME
> +endif JCOV_HOME
>
> #----------------------------------------------------------------------
> #
>
>
>
> On Tue, Jul 30, 2013 at 10:58 AM, Jonathan Gibbons <
> jonathan.gibbons at oracle.com> wrote:
>
>> On 07/30/2013 10:51 AM, Nick Williams wrote:
>>
>>> On Jul 30, 2013, at 12:40 PM, Jonathan Gibbons wrote:
>>>
>>> On 07/30/2013 10:33 AM, Nick Williams wrote:
>>>>
>>>>> On Jul 30, 2013, at 12:29 PM, Jonathan Gibbons wrote:
>>>>>
>>>>> On 07/30/2013 10:25 AM, Nick Williams wrote:
>>>>>>
>>>>>>> On Jul 30, 2013, at 12:11 PM, Jonathan Gibbons wrote:
>>>>>>>
>>>>>>> On 07/30/2013 10:04 AM, Nick Williams wrote:
>>>>>>>>
>>>>>>>>> On Jul 30, 2013, at 11:58 AM, Jonathan Gibbons wrote:
>>>>>>>>>
>>>>>>>>> On 07/30/2013 09:19 AM, Nick Williams wrote:
>>>>>>>>>>
>>>>>>>>>>> First, please let me say that the build readme at
>>>>>>>>>>> http://openjdk.java.net/jtreg/**build.html<http://openjdk.java.net/jtreg/build.html>(and in HG) is sorely lacking. Here's what I've learned on my own so far,
>>>>>>>>>>> from analyzing error messages and reading Defs.gmk:
>>>>>>>>>>>
>>>>>>>>>>> - JAVAHELP_HOME, which usually points to the JavaHelp home
>>>>>>>>>>> directory (we'll call this $JavaHelp) and contains demos, doc, src,
>>>>>>>>>>> license, etc., actually must point to $JavaHelp/javahelp (which contains
>>>>>>>>>>> bin and lib). This is not clear on the readme.
>>>>>>>>>>> - JUnit is NOT optional. jtreg won't "make" without it.
>>>>>>>>>>> Furthermore, JUNIT_JAR must point to junit.jar (which the readme does not
>>>>>>>>>>> say).
>>>>>>>>>>> - TestNG is NOT optional. jtreg won't "make" without it.
>>>>>>>>>>> Furthermore, TESTNG_HOME must point to a directory containing LICENSE.txt
>>>>>>>>>>> (which does not exist for TestNG, so I had to invent one) and TESTNG_JAR
>>>>>>>>>>> must point to testng.jar. The readme doesn't indicate any of this.
>>>>>>>>>>> - Ant is NOT optional. Unlike usual systems where ANT_HOME
>>>>>>>>>>> indicates where Ant lives, jtreg requires ANTHOME (which the readme does
>>>>>>>>>>> not say).
>>>>>>>>>>>
>>>>>>>>>>> After this is where I hit the roadblock I cannot overcome:
>>>>>>>>>>>
>>>>>>>>>>> There's some thing called "jcov" that is NOT optional. Worse,
>>>>>>>>>>> jcov, what it is, and where you can find/download it isn't indicated
>>>>>>>>>>> anywhere on the readme. I spent the last hour scouring Google for jcov.
>>>>>>>>>>> I've found plenty of references to jcov.jar in JDK source repositories and
>>>>>>>>>>> mirrors (and apparently it's supposed to contain classes in the
>>>>>>>>>>> com.sun.tdk.jcov package), but as far as I can tell jcov doesn't exist. I
>>>>>>>>>>> can't find it anywhere, and jtreg won't "make" without it. If JCOV_HOME
>>>>>>>>>>> doesn't exist, "make" looks in /java/re/jcov/2.0/promoted/**latest/binaries/jcov_2.0/,
>>>>>>>>>>> but that certainly doesn't exist, and there's nothing anything like that
>>>>>>>>>>> underneath the home directories for my JDKs or JREs.
>>>>>>>>>>>
>>>>>>>>>>> Can someone help me sort this out and point me to where I can
>>>>>>>>>>> download jcov?
>>>>>>>>>>>
>>>>>>>>>>> And can someone update the readmes?
>>>>>>>>>>>
>>>>>>>>>>> Thanks,
>>>>>>>>>>>
>>>>>>>>>>> Nick
>>>>>>>>>>>
>>>>>>>>>> Nick,
>>>>>>>>>>
>>>>>>>>>> I am sorry for your frustration.
>>>>>>>>>>
>>>>>>>>>> jcov is a Java Code Coverage tool. As of now, it is not open
>>>>>>>>>> source, so I will have to update the README and Makefile to ensure that you
>>>>>>>>>> can build without it.
>>>>>>>>>>
>>>>>>>>>> -- Jon
>>>>>>>>>>
>>>>>>>>> Okay. How soon do you think you can get that done? I'm on a time
>>>>>>>>> crunch here and I can't submit this patch without running tests. If there's
>>>>>>>>> a simple change I can make locally to disable the need for jcov, feel free
>>>>>>>>> to instruct me.
>>>>>>>>>
>>>>>>>>> Thanks,
>>>>>>>>>
>>>>>>>>> Nick
>>>>>>>>>
>>>>>>>>> The code is written so that you don't need the jcov libraries to
>>>>>>>> compile jtreg. You just need to fix the Makefiles to comment out where it
>>>>>>>> is trying to copy the jcov jar file into the final image.
>>>>>>>>
>>>>>>>> -- Jon
>>>>>>>>
>>>>>>> Indeed. I commented out this in make/Defs.gmk:
>>>>>>>
>>>>>>> #ifndef JCOV_HOME
>>>>>>> # JCOV_HOME = /java/re/jcov/2.0/promoted/**
>>>>>>> latest/binaries/jcov_2.0/
>>>>>>> #endif
>>>>>>>
>>>>>>> And this in make/jtreg.gmk:
>>>>>>>
>>>>>>> #ifdef JCOV_HOME
>>>>>>> #
>>>>>>> #$(JTREG_IMAGEDIR)/lib/jcov.**jar: $(JCOV_HOME)/lib/jcov.jar
>>>>>>> # $(RM) -f $@
>>>>>>> # $(MKDIR) -p $(@D)
>>>>>>> # $(CP) $< $@
>>>>>>> #
>>>>>>> #$(JTREG_IMAGEDIR)/lib/jcov_**implant.jar:
>>>>>>> $(JCOV_HOME)/lib/jcov_implant.**jar
>>>>>>> # $(RM) -f $@
>>>>>>> # $(MKDIR) -p $(@D)
>>>>>>> # $(CP) $< $@
>>>>>>> #
>>>>>>> #TARGETS.ZIP.jtreg += \
>>>>>>> # $(JTREG_IMAGEDIR)/lib/jcov.jar \
>>>>>>> # $(JTREG_IMAGEDIR)/lib/jcov_**implant.jar
>>>>>>> #
>>>>>>> #endif JCOV_HOME
>>>>>>>
>>>>>>> And now it builds. Thanks.
>>>>>>>
>>>>>>> Nick
>>>>>>>
>>>>>> Thanks for the update. So the "broken" part that needs fixing is
>>>>>> just the first 3 lines you commented out, right? If you just comment those
>>>>>> lines out, the ifdef in the second block will take care of the rest.
>>>>>>
>>>>>> -- Jon
>>>>>>
>>>>> You'd think, but just commenting out the first three lines (from
>>>>> Defs.gmk) didn't work. I had to comment out the second block (jtreg.gmk),
>>>>> too. Doesn't make any sense to me, but that's what worked.
>>>>>
>>>>> Nick
>>>>>
>>>>
>>>> Hmm. OK. Thanks for the info.
>>>>
>>>> -- Jon
>>>>
>>> If it helps any, originally the error message was something like
>>> "Required file /java/re/jcov/2.0/promoted/**
>>> latest/binaries/jcov_2.0/lib/**jcov.jar not found." When I commented
>>> out the three lines the error changed to something like "Failed to copy
>>> file lib/jcov.jar to build/images/jtreg/lib/jcov.**jar." Commenting out
>>> the second block got rid of the second error. It's almost like JCOV_HOME
>>> was getting set to blank somehow.
>>>
>>> Nick
>>>
>>>
>> Yeah, I'll play around with it, and make sure all the messages make sense
>> when the various variables are unset. I'll also update the README files.
>>
>> -- jon
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.openjdk.java.net/pipermail/jtreg-use/attachments/20131002/3e0feb85/attachment-0001.html
More information about the jtreg-use
mailing list