Daniel, Erik

thanks for the reviews and sorry taking so long to respond.

About the indentation: I understand the convention used in the new build system and I think it makes a lot of sense, but the file hotspot/make/Makefile clearly does not use this convention :)

I would prefer to use the same kind of indentation as the rest of the file, even though as Dan noted, the file is not consistent with itself. It seems like most of the file is using 2 spaces for ifeq (something) and then just <tab> or <tab+2 spaces> for recipes depending on logical level.

Dan and Erik, are you fine with keeping the indentation as it is or do you prefer that I update the change to use the convention of the new build system?

Thanks,
Erik

On 02/17/2014 09:09 AM, Erik Joelsson wrote:
Hello,

The change looks good to me too.

Regarding indentation, for the rest of the JDK, we indent rules with
make ifeqs like this:

target: sources
<8 spaces>ifeq (something)
<tab+2 spaces>recipe line
<8 spaces>endif

Our reasoning is that it should still look like a recipe when glancing
over it quickly (so 8 characters base indentation). After that we apply
our standard 2 chars per logical level. Since make regards tab
characters as special, we have to use space for non recipe lines.

The rest of our guidelines can be found here:
http://openjdk.java.net/groups/build/doc/code-conventions.html

/Erik

On 2014-02-14 17:45, Daniel D. Daugherty wrote:
> http://cr.openjdk.java.net/~ehelin/8033580/webrev.03/

make/Makefile
    No comments.

Makefile style question:
    Since all this ifeq(...) logic is around Makefile rules,
    should the rules themselves be indented by one tab or by
    one tab and some number of spaces.

    I scrolled around the Makefile and I don't really see
    consistent indenting of the rule lines themselves...

    If you change the indenting, I don't see a reason for
    another round of review.

Dan


On 2/14/14 6:21 AM, Erik Helin wrote:
Dan,

On 2014-02-14 00:29, Daniel D. Daugherty wrote:
 > http://cr.openjdk.java.net/~ehelin/8033580/webrev.01/

make/Makefile

+      ifeq ($(OSNAME), bsd)
+            $(RM) -rf $(EXPORT_SERVER_DIR)/libjvm.dylib.dSYM

The above needs to be:

        ifeq ($(OS_VENDOR), Darwin)
              $(RM) -rf $(EXPORT_SERVER_DIR)/libjvm.dylib.dSYM

I don't think that BSD uses .dylib stuff; that's MacOS X specific.

You are right, thanks for the correction. Please see new webrev at:
http://cr.openjdk.java.net/~ehelin/8033580/webrev.03/

Again, same testing as for prior patches were run.

Thanks,
Erik

Dan


On 2/13/14 1:59 PM, Erik Helin wrote:
Hi Dan,

thanks for reviewing! See my replies inline.

On 02/13/2014 12:40 AM, Daniel D. Daugherty wrote:
 > http://cr.openjdk.java.net/~ehelin/8033580/webrev.00/

make/Makefile
     277   ifeq ($(ZIP_DEBUGINFO_FILES),1)
     278     ifeq ($(OSNAME), windows)
     279           $(RM) -f $(EXPORT_SERVER_DIR)/jvm.map
$(EXPORT_SERVER_DIR)/jvm.pdb
     280     else
     281           $(RM) -f $(EXPORT_SERVER_DIR)/libjvm.debuginfo
     282     endif

     On MacOS X, the debuginfo will be in libjvm.dylib.dSYM so
     you'll need a MacOS X specific rule. You don't need an
     update for the JVM_VARIANT_CLIENT version because MacOS X
     doesn't support the Client VM, but if it did...

Thanks for catching this! I've uploaded a new webrev at:
http://cr.openjdk.java.net/~ehelin/8033580/webrev.01/

The same testing was done as for the first patch.

On 02/13/2014 12:40 AM, Daniel D. Daugherty wrote:
So the above change handles libjvm, but what about the
other libraries exported by HotSpot? libjsig, libjvm_db,
and libjvm_dtrace come to mind...

As we discussed, I would like to implement this for libjvm first and
then take care of the other libraries in a separate patch.

Thanks,
Erik

Dan


On 2/12/14 8:03 AM, Erik Helin wrote:
Hi all,

this patch changes how old debug information copied from
IMPORT_JDK is
treated.

When running the copy_*_jdk target, HotSpot's makefiles copies the
entire IMPORT_JDK folder, including additional files (such as
unzipped
debug information). The export_*_jdk targets will then, via the
generic_export target, copy the build artifacts via implicit
rules to
the correct destination in hotspot/build/JDK_IMAGE_DIR.

The bug arises when IMPORT_JDK contains unzipped debug info
(libjvm.debuginfo) and the make target produces zipped debug info
(libjvm.diz), or vice versa. hotspot/build/JDK_IMAGE_DIR will then
contain both libjvm.debuginfo and libjvm.diz, but only one of them
will match libjvm.so.

Finally, the JPRT make targets jprt_build_* just zips
hotspot/build/$(JDK_IMAGE_DIR). The zipped JPRT bundle will end up
having different zipped and unzipped debug info, since the
IMPORT_JDK
in JPRT contains libjvm.debuginfo and we build libjvm.diz by
default.

This patch removes the debug info that we did *not* build. If we
build
libjvm.diz, then libjvm.debuginfo will be removed (if it exists).
Correspondingly, if we build libjvm.debuginfo, then libjvm.diz
will be
removed (if it exists).

Patch:
http://cr.openjdk.java.net/~ehelin/8033580/webrev.00/

Bug:
https://bugs.openjdk.java.net/browse/JDK-8033580

Testing:
- Building in JPRT
- Building Linux 32-bit locally on a Linux 64-bit machine
- Building Linux 64-bit locally on a Linux 64-bit machine

For all of the above, verify that only the correct debug info is
present in the output.

Thanks,
Erik




Reply via email to