Can't Compile jtreg

Jonathan Gibbons jonathan.gibbons at oracle.com
Thu Oct 3 07:55:29 PDT 2013


Martin,

Thanks.  It is on my list to make it easier to build jtreg, and I will 
include your fix.

-- Jon

On 10/02/2013 03:53 PM, Martin Buchholz 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 <mailto: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
>                                         (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/20131003/f116b610/attachment-0001.html 


More information about the jtreg-use mailing list