United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
JDK-6685160 : fix cscope build with hg

Details
Type:
Bug
Submit Date:
2008-04-07
Status:
Closed
Updated Date:
2012-10-08
Project Name:
JDK
Resolved Date:
2008-05-21
Component:
hotspot
OS:
generic
Sub-Component:
runtime
CPU:
generic
Priority:
P4
Resolution:
Fixed
Affected Versions:
hs12
Fixed Versions:
hs13 (b01)

Related Reports
Backport:
Backport:

Sub Tasks

Description
Since the transition to hg, cscope has stopped building because it
used teamware's nametable. This change makes it work with hg.

                                    

Comments
SUGGESTED FIX

repo:       /net/jano2/export2/hotspot/hg/hotspot-gc.clean
changeset:  86:7747916a0945
user:       ysr
date:       Tue Apr 08 12:10:35 2008 -0700
description:
6685160: fix cscope build with hg
Summary: Use hg's fstatus instead of teamware's nametable to trigger cscope database rebuild
Reviewed-by: jcoomes, kamg

files:
build/linux/makefiles/cscope.make build/solaris/makefiles/cscope.make
                                     
2008-04-11
EVALUATION

See suggested fix section.
                                     
2008-04-07
SUGGESTED FIX

Identical changes to the solaris and linux cscope.make files;
here are the git-style diffs:


diff --git a/build/linux/makefiles/cscope.make b/build/linux/makefiles/cscope.make
--- a/build/linux/makefiles/cscope.make
+++ b/build/linux/makefiles/cscope.make
@@ -38,6 +38,7 @@ include $(GAMMADIR)/make/scm.make
 
 NAWK   = awk
 RM     = rm -f
+HG     = hg
 CS_TOP = ../..
 
 CSDIRS = $(CS_TOP)/src $(CS_TOP)/build
@@ -140,13 +141,17 @@ TAGS.clean:  nametable.clean
 
 # .nametable.files and .nametable.files.tmp are used to determine if any files
 # were added to/deleted from/renamed in the workspace.  If not, then there's
-# normally no need to run find.  To force a 'find':  gmake nametable.clean.
+# normally no need to rebuild the cscope database. To force a rebuild of
+# the cscope database: gmake nametable.clean.
 .nametable.files:  .nametable.files.tmp
-       cmp -s $@ $< || cp $< $@
+       ( cmp -s $@ $< ) || ( cp $< $@ )
+       -$(RM) $<
 
-.nametable.files.tmp:  $(CS_TOP)/Codemgr_wsdata/nametable
-       $(NAWK) \
-       '{ if (sub("( [a-z0-9]{2,8}){4}$$", "")) print $$0; }' $< > $@
+# `hg status' is slightly faster than `hg fstatus'. Both are
+# quite a bit slower on an NFS mounted file system, so this is
+# really geared towards repos on local file systems.
+.nametable.files.tmp:
+       -$(HG) fstatus -acmn > $@
 
 nametable.clean:
        -$(RM) .nametable.files .nametable.files.tmp
diff --git a/build/solaris/makefiles/cscope.make b/build/solaris/makefiles/cscope.make
--- a/build/solaris/makefiles/cscope.make
+++ b/build/solaris/makefiles/cscope.make
@@ -38,6 +38,7 @@ include $(GAMMADIR)/make/scm.make
 
 NAWK   = /usr/xpg4/bin/awk
 RM     = rm -f
+HG     = hg
 CS_TOP = ../..
 
 CSDIRS = $(CS_TOP)/src $(CS_TOP)/build
@@ -141,13 +142,17 @@ TAGS.clean:  nametable.clean
 
 # .nametable.files and .nametable.files.tmp are used to determine if any files
 # were added to/deleted from/renamed in the workspace.  If not, then there's
-# normally no need to run find.  To force a 'find':  gmake nametable.clean.
+# normally no need to rebuild the cscope database. To force a rebuild of
+# the cscope database: gmake nametable.clean.
 .nametable.files:  .nametable.files.tmp
-       cmp -s $@ $< || cp $< $@
+       ( cmp -s $@ $< ) || ( cp $< $@ )
+       -$(RM) $<
 
-.nametable.files.tmp:  $(CS_TOP)/Codemgr_wsdata/nametable
-       $(NAWK) \
-       '{ if (sub("( [a-z0-9]{2,8}){4}$$", "")) print $$0; }' $< > $@
+# `hg status' is slightly faster than `hg fstatus'. Both are
+# quite a bit slower on an NFS mounted file system, so this is
+# really geared towards repos on local file systems.
+.nametable.files.tmp:
+       -$(HG) fstatus -acmn > $@
 
 nametable.clean:
        -$(RM) .nametable.files .nametable.files.tmp
                                     
2008-04-07



Hardware and Software, Engineered to Work Together