First I should say that the following is occurring in a workspace which
is a zfs clone of a zfs snapshot of a workspace that has had a nightly
run in it.  My expectation is that if I run dmake in the
usr/src/cmd/krb5/kadmin/dbutil of the zfs clone workspace that nothing
will be rebuilt since I haven't changed any source.  That is not what
I'm seeing.  Here are the details.

I'm trying to understand why dmake is recreating iprop.h based on the
following rule:

iprop.h: $(SRC)/cmd/krb5/iprop/iprop.x
    $(RM)       $@
    $(RPCGEN) -h $(SRC)/cmd/krb5/iprop/iprop.x > $@

Now before I run dmake I see that:

$ ls -l iprop/iprop.x kadmin/dbutil/iprop.h 
-r--r--r--   1 willf    staff       4343 Feb  8 18:57 iprop/iprop.x
-rw-r--r--   1 willf    staff       4648 Feb 11 13:22 kadmin/dbutil/iprop.h

So the iprop.h file is newer than the iprop.x dependency.  When I cd to
the usr/src/cmd/krb5/kadmin/dbutil dir and run dmake, dmake recreates
iprop.h.  Here is the dmake -dd output:

@ =
    stat(iprop.h)
    doname(iprop.h)
@ =
     stat(/pool/willf/ws/i386/bld_bug_test/usr/src/cmd/krb5/iprop/iprop.x)
     doname(/pool/willf/ws/i386/bld_bug_test/usr/src/cmd/krb5/iprop/iprop.x)
      Looking for % rule for 
/pool/willf/ws/i386/bld_bug_test/usr/src/cmd/krb5/iprop/iprop.x
      
find_double_suffix_rule(/pool/willf/ws/i386/bld_bug_test/usr/src/cmd/krb5/iprop/iprop.x)
      
find_suffix_rule(/pool/willf/ws/i386/bld_bug_test/usr/src/cmd/krb5/iprop/iprop.x,/pool/willf/ws/i386/bld_bug_test/usr/src/cmd/krb5/iprop/iprop,.x)
      stat(/pool/willf/ws/i386/bld_bug_test/usr/src/cmd/krb5/iprop/SCCS)
      build_suffix_list(.x) 
      
find_suffix_rule(/pool/willf/ws/i386/bld_bug_test/usr/src/cmd/krb5/iprop/iprop.x,/pool/willf/ws/i386/bld_bug_test/usr/src/cmd/krb5/iprop/iprop.x,)
      
stat(/pool/willf/ws/i386/bld_bug_test/usr/src/cmd/krb5/iprop/SCCS/s.iprop.x)
@= /pool/willf/ws/i386/bld_bug_test/usr/src/cmd/krb5/iprop/iprop.x
* =
< =
% =
? =
^ =
@ =
* =
< =
% =
? =
^ =
     Date(/pool/willf/ws/i386/bld_bug_test/usr/src/cmd/krb5/iprop/iprop.x)=Fri 
Feb 08 18:57:57 2008 CST 
     find_double_suffix_rule(iprop.h)
     find_suffix_rule(iprop.h,iprop,.h)
     build_suffix_list(.h) .cps.h 
     Trying iprop.cps
@= iprop.h
*= iprop
< =
% =
? =
^ = /pool/willf/ws/i386/bld_bug_test/usr/src/cmd/krb5/iprop/iprop.x
     Building iprop.h because new command 
    /usr/bin/rpcgen -h 
/pool/willf/ws/i386/bld_bug_test/usr/src/cmd/krb5/iprop/iprop.x > iprop.h
     different from old
    /usr/bin/rpcgen -h 
/pool/willf/ws/i386/onnv_82-clone/usr/src/cmd/krb5/iprop/iprop.x > iprop.h
@ =
* =
< =
% =
? =
^ =
SUNPRO_DEPENDENCIES= 
/pool/willf/ws/i386/bld_bug_test/usr/src/cmd/krb5/kadmin/dbutil/.make.dependency.372eedef.3794.0
 iprop.h
/usr/bin/rm -f  iprop.h
     stat(.make.state)
     
stat(/pool/willf/ws/i386/bld_bug_test/usr/src/cmd/krb5/kadmin/dbutil/.make.dependency.372eedef.3794.0)
     stat(.make.state)
/usr/bin/rpcgen -h 
/pool/willf/ws/i386/bld_bug_test/usr/src/cmd/krb5/iprop/iprop.x > iprop.h

Can someone tell me why dmake is recreating iprop.h?  Note that if I run
dmake again in the same dir, nothing is remade.

-- 
Will Fiveash
Sun Microsystems Inc.
Austin, TX, USA (TZ=CST6CDT)

Reply via email to