That's the correct name. If you drop them from the targets list, then
the make subsystem won't detect that those expected targets aren't
being built... In any case, I'm curious why this is failing on Windows
since I didn't (intentionally) change Windows code here.
These OpenJDK changes along with the closed changes were run through
JPRT before I went on vacation and I didn't see any failures on any
platform. I'll check out the JPRT job if it is still around.
I suspect that you're having problems because the closed changes aren't
there, but I'm not sure. I still need to send out the closed side code
review request...
Dan
On 9/30/13 9:37 AM, Vadim Pakhnushev wrote:
No, I don't. I'm just excluding them from the targets list (not sure
what's the correct name for that).
Actual files are created using these lines:
ifeq ($(ENABLE_DEBUG_SYMBOLS), true)
ifeq ($(OPENJDK_TARGET_OS), windows)
$1_EXTRA_LDFLAGS+="-pdb:$$($1_OBJECT_DIR)/$$($1_LIBRARY).pdb" \
"-map:$$($1_OBJECT_DIR)/$$($1_LIBRARY).map"
endif
Thanks,
Vadim
On 30.09.2013 19:25, Daniel D. Daugherty wrote:
On 9/30/13 8:12 AM, Vadim Pakhnushev wrote:
BTW, I have the same issue on windows:
make[2]: *** No rule to make target
`/cygdrive/c/Vadim/jdk8_2d/build/windows-x86-normal-server-release/jdk/bin/verify.map',
needed by `all'. Stop.
I think it can be fixed by this:
diff -r d4762f463fe0 common/makefiles/NativeCompilation.gmk
--- a/common/makefiles/NativeCompilation.gmk Thu Sep 19 09:36:42
2013 -0700
+++ b/common/makefiles/NativeCompilation.gmk Mon Sep 30 18:08:57
2013 +0400
@@ -473,10 +473,7 @@
&& $(ZIP) -q $$@
$$(LIBRARY_PREFIX)$$($1_LIBRARY).debuginfo
endif
else
- ifeq ($(OPENJDK_TARGET_OS), windows)
- $1 += $$($1_OUTPUT_DIR)/$$($1_LIBRARY).map \
- $$($1_OUTPUT_DIR)/$$($1_LIBRARY).pdb
- else
+ ifneq ($(OPENJDK_TARGET_OS), windows)
$1 +=
$$($1_OUTPUT_DIR)/$$(LIBRARY_PREFIX)$$($1_LIBRARY).debuginfo
endif
endif
Does that look ok?
No, that's not right. You are dropping support for .map and .pdb
files with the above change.
Dan
Thanks,
Vadim
On 30.09.2013 17:44, Daniel D. Daugherty wrote:
On 9/30/13 7:13 AM, Staffan Larsen wrote:
First: thanks for doing this work - it will make debugging on os x
so much easier!
That's the plan...
I'm not done with the review, but here are a couple of comments so
far.
I tried running with:
$ sh ./configure --with-debug-level=slowdebug
--disable-zip-debug-info
$ make
which results in:
## Starting hotspot
...
make[5]: *** No rule to make target
`/Users/staffan/mercurial/hotspot-rt-jdk/build/macosx-x86_64-normal-server-slowdebug/hotspot/dist/jre/lib/amd64/libjsig.dylib.dSYM',
needed by `generic_export'. Stop.
make[4]: *** [export_debug] Error 2
make[3]: *** [all_debug_universal] Error 2
make[2]: *** [universal_debug] Error 2
...
I'm presuming that you're trying with a forest that includes
closed repos. If so, then you'll need the jdk/make/closed change
in order for the build to work.
Another comment: There are some makefile logic for BSD, non-darwin
platforms. Have you had a chance to test this logic?
(hotspot/make/bsd/makefiles/vm.make)
No, I don't have access to a BSD (non-darwin) platform. However, I'll
be pinging Dmitri Samersoff to ask a few questions...
Nit: hotspot/make/bsd/makefiles/vm.make: L345, L356: wrong
indentation.
These are make cmd lines:
344 else
345 $(QUIETLY) $(OBJCOPY) --only-keep-debug $@
$(LIBJVM_DEBUGINFO)
346 $(QUIETLY) $(OBJCOPY)
--add-gnu-debuglink=$(LIBJVM_DEBUGINFO) $@
347 ifeq ($(STRIP_POLICY),all_strip)
so they have to be indented by a tab. Very ugly, but necessary.
Dan
/Staffan
On 21 sep 2013, at 05:36, Daniel D. Daugherty
<daniel.daughe...@oracle.com> wrote:
Greetings,
I have the initial support for Full Debug Symbols (FDS) on MacOS
X done
and ready for review:
7165611 implement Full Debug Symbols on MacOS X hotspot
https://bugs.openjdk.java.net/browse/JDK-7165611
Here is the JDK8/HSX-25 webrev URL:
OpenJDK:
http://cr.openjdk.java.net/~dcubed/fds_revamp/7165611-webrev/0-jdk8/
Internal:
http://javaweb.us.oracle.com/~ddaugher/fds_revamp/7165611-webrev/0-jdk8/
This webrev includes changes for the follow repos:
jdk8
jdk8/hotspot
jdk8/jdk
jdk8/jdk/make/closed
Once these changes are approved, I'm planning to push them to
RT_Baseline. From there, they can follow the normal path to
Main_Baseline and eventually JDK8.
This work enables FDS on MacOS X for the 'hotspot' repo; the
changes in
the other repos are necessary to support importing the .diz files
from
the MacOS X 'hotspot' build into the forest build. I also fixed a
few
FDS related errors in the magic incantations for the new build.
This is
mostly a port from Linux -> MacOS X/BSD with the dtrace changes
ported
from Solaris. In other words, this is Frankenstein's monster...
Thanks to Staffan Larsen for providing an initial set of changes
which I morphed into what you see here.
Testing:
- JPRT HSX build and test on all platforms; verification of .diz
files in the MacOS X JPRT bundles
- JPRT JDK8 forest build and test on all platforms; verification of
.diz files in the MacOS X JPRT bundles
Note: In previous FDS changesets, I also did a standalone 'jdk'
repo build and test, but that no longer seems to work.
As always, comments, questions and suggestions are welcome.
Dan