United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
Bug ID: JDK-7037250 cscope.make database generation is silently broken
JDK-7037250 : cscope.make database generation is silently broken

Details
Type:
Bug
Submit Date:
2011-04-16
Status:
Resolved
Updated Date:
2011-07-29
Project Name:
JDK
Resolved Date:
2011-05-09
Component:
hotspot
OS:
generic
Sub-Component:
build
CPU:
generic
Priority:
P4
Resolution:
Fixed
Affected Versions:
hs21
Fixed Versions:
hs21 (b11)

Related Reports
Backport:

Sub Tasks

Description
cscope.make, which automates building a cscope database from a hotspot source tree, generates an incomplete database.  The intended default behavior was to include files only for the o/s and processor on which the database is being generated, but in many cases the opposite occurs.

                                    

Comments
SUGGESTED FIX

Move make/solaris/cscope.make to make/cscope.make and delete the nearly identical make/linux/cscope.make.

Use GAMMADIR when searching for files, so the cscope database can be built from any directory (e.g., gmake -f <repo>/make/cscope.make cscope GAMMADIR=<repo>).  This changes the file paths from relative to absolute, which means the resulting cscope.out file is usable from any directory (not just the one in which it was built), but also means it cannot be used with a different source tree.

Change the filename filtering to include files for all operating systems and processors by default (overridable from the command line). Use ${OSNAME} instead of ${OS} and update the O/S and CPU identifiers to match the current source.

Add var CS_PRUNE_EX for user-defined exclude patterns; add var CSCOPE_OUT for the output file; add target cscope.scratch to do a rebuild from scratch; remove the "raw" temp file.

Remove the .nametable* targets, which originated with teamware to reduce filesystem traversals. The hg fstatus that was being done to update them did the opposite and incurred an extra traversal.
                                     
2011-04-16
EVALUATION

cscope.make uses ${OS} for the operating system name, but should instead use ${OSNAME), and the cpu identifiers it uses no longer match the source.  There are also nearly identical copies of the file for linux and solaris that could be combined.
                                     
2011-04-16
EVALUATION

http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/d6cdc6c77582
                                     
2011-04-23
EVALUATION

http://hg.openjdk.java.net/jdk7/hotspot-rt/hotspot/rev/d6cdc6c77582
                                     
2011-05-05



Hardware and Software, Engineered to Work Together