United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
Bug ID: JDK-7071907 JDK: Full Debug Symbols
JDK-7071907 : JDK: Full Debug Symbols

Details
Type:
Enhancement
Submit Date:
2011-07-27
Status:
Resolved
Updated Date:
2012-06-08
Project Name:
JDK
Resolved Date:
2012-04-24
Component:
infrastructure
OS:
generic
Sub-Component:
build
CPU:
generic
Priority:
P4
Resolution:
Fixed
Affected Versions:
7u2
Fixed Versions:

Related Reports
Backport:
Relates:
Relates:
Relates:
Relates:
Relates:
Relates:
Relates:
Relates:

Sub Tasks

Description
This is a placeholder bug for the Full Debug Symbols project.
Full Debug Symbols needs to be added to the 'jdk' repo with
the same features that were added to the 'hotspot' repo.

The feature is enabled with FULL_DEBUG_SYMBOLS build flag.
The default value will be FULL_DEBUG_SYMBOLS=1 and the
feature can be disabled by FULL_DEBUG_SYMBOLS=0 for OPT
builds.

The ZIPing of debug info files is enabled with the
ZIP_DEBUGINFO_FILES flag. The default value will be
ZIP_DEBUGINFO_FILES=1 and the sub feature can be
disabled by ZIP_DEBUGINFO_FILES=0 for all builds.

Because the 'jdk' contains technologies that are managed
and developed by different teams, FDS on Linux and Solaris
will only initially be supported by a subset of libraries
and programs. The LIBRARY_SUPPORTS_FULL_DEBUG_SYMBOLS and
PROGRAM_SUPPORTS_FULL_DEBUG_SYMBOLS make flags are used
in Makefiles to indicate which libraries and programs
support FDS on Linux and Solaris.

Windows has supported Full Debug Symbols since JDK1.4.1
so the LIBRARY_SUPPORTS_FULL_DEBUG_SYMBOLS and
PROGRAM_SUPPORTS_FULL_DEBUG_SYMBOLS build flags have
no effect on a Windows build.

                                    

Comments
EVALUATION

See description.
                                     
2012-04-09
SUGGESTED FIX

See the following attachments for the proposed fix:

7071907-webrev-jdk8-deploy-cr0.tgz
7071907-webrev-jdk8-jdk-cr0.tgz
                                     
2012-04-11
SUGGESTED FIX

One minor change was made during the code review cycle.
Here are the context diffs for the comment additions:

diff -c make/common/Release.gmk{.cr0,}
*** make/common/Release.gmk.cr0	Fri Apr  6 22:25:14 2012
--- make/common/Release.gmk	Tue Apr 10 12:15:21 2012
***************
*** 873,878 ****
--- 873,880 ----
  	   -o -name \*.dll | $(EGREP) -v -i "$(MSVCRNN_DLL)" > $@
  else
  	$(FIND) $(JRE_IMAGE_DIR)/lib -type f -name \*.$(LIB_SUFFIX) >> $@
+ # The FILE command reports .debuginfo files as "ELF", but we don't want
+ # those files in the JRE_BIN_LIST file. EXE_SUFFIX is empty on non-Windows.
  	$(FILE) `$(FIND) $(JRE_IMAGE_DIR)/bin -type f ! -name '*.debuginfo' -name \*$(EXE_SUFFIX)` \
  	    | $(EGREP) 'ELF' | $(CUT) -d':' -f1 >> $@
  endif
***************
*** 1140,1145 ****
--- 1142,1149 ----
  else
  	$(RM) $@
  	$(FIND) $(JDK_IMAGE_DIR)/jre/lib -type f -name \*.$(LIB_SUFFIX) >> $@
+ # The FILE command reports .debuginfo files as "ELF", but we don't want
+ # those files in the JDK_BIN_LIST file. EXE_SUFFIX is empty on non-Windows.
  	$(FILE) `$(FIND) $(JDK_IMAGE_DIR)/jre/bin -type f ! -name '*.debuginfo' -name \*$(EXE_SUFFIX)` \
  	    | $(EGREP) 'ELF' | $(CUT) -d':' -f1 >> $@
  	file `$(FIND) $(JDK_IMAGE_DIR)/bin -type f ! -name '*.debuginfo' -name \*$(EXE_SUFFIX)` \
                                     
2012-04-11
EVALUATION

Changeset: d922195b678d
Author:    dcubed
Date:      2012-04-11 07:26 -0700
URL:       http://hg.openjdk.java.net/jdk8/tl/jdk/rev/d922195b678d

7071907: JDK: Full Debug Symbols
Summary: Add initial FDS support to some libraries and programs.
Reviewed-by: kamg, fparain, sspitsyn, dsamersoff

! make/com/sun/tools/attach/Makefile
! make/common/Defs-linux.gmk
! make/common/Defs-solaris.gmk
! make/common/Library.gmk
! make/common/Program.gmk
! make/common/Release.gmk
! make/java/instrument/Makefile
! make/java/java_crw_demo/Makefile
! make/java/java_hprof_demo/Makefile
! make/java/main/java/Makefile
! make/java/management/Makefile
! make/java/npt/Makefile
! make/java/verify/Makefile
! make/jpda/jdwp/Makefile
! make/jpda/transport/socket/Makefile
! make/launchers/Makefile.launcher
! make/mkdemo/jvmti/compiledMethodLoad/Makefile
! make/mkdemo/jvmti/gctest/Makefile
! make/mkdemo/jvmti/heapTracker/Makefile
! make/mkdemo/jvmti/heapViewer/Makefile
! make/mkdemo/jvmti/hprof/Makefile
! make/mkdemo/jvmti/minst/Makefile
! make/mkdemo/jvmti/mtrace/Makefile
! make/mkdemo/jvmti/versionCheck/Makefile
! make/mkdemo/jvmti/waiters/Makefile
! make/sun/tracing/dtrace/Makefile
                                     
2012-04-11



Hardware and Software, Engineered to Work Together