cvs commit: src/sys/conf kmod.mk

Ruslan Ermilov ru at FreeBSD.org
Fri Apr 22 13:09:43 PDT 2005


Hi,

On Fri, Apr 22, 2005 at 11:50:52PM +1000, Bruce Evans wrote:
> On Thu, 21 Apr 2005, Ruslan Ermilov wrote:
> 
> >On Thu, Apr 21, 2005 at 05:43:25PM +1000, Bruce Evans wrote:
> >>Another dependency bug that sometimes bites me: "make" doesn't work
> >>after "make clean", at least under the old version of -current that I
> >>use, because dependencies for lots of generated sources (like device_if.c
> >>(?)) are missing.  Dependencies for older generated files like
> >>vnode_if.c are handled correctly, and "make depend" doesn't have
> >>the problem because the necessary dependencies are in BEFORE_DEPEND.
> >>
> >Maybe this is only an old bug, as there are these lines in kern.post.mk:
> >
> >.if !exists(${.OBJDIR}/.depend)
> >${SYSTEM_OBJS}: assym.s vnode_if.h ${BEFORE_DEPEND:M*.h} 
> >${MFILES:T:S/.m$/.h/}
> >.endif
> 
> Note that this only works when .depend doesn't exist (it works using the
> usual hack of making all objects depend on all geaders in that case).
> 
> >At least "make -n kernel >/dev/null" after "make clean" doesn't
> >complain now.
> 
> I check that it doesn't work after "make depend; make; make clean".  The
> first error is for amd64's GENERIC is:
> 
> %%%
> In file included from ./../../../dev/aic7xxx/aic7xxx_osm.h:44,
>                  from aic7xxx_reg_print.c:9:
> ../../../sys/bus.h:461:23: device_if.h: No such file or directory
> %%%
> 
> This can be worked around using either "rm .depend" or "make cleandepend"
> so that the above hack works, or using "make depend" which creates all
> the generated sources as a side effect.
> 
Should be fixed now.  The problem was that aic*_reg_print.c's were not
in CFILES in a makefile produced by config(8), making the corresponding
.o files to *NOT* appear in .depend.  I expanded {}'s in sys/conf/files
and that did the trick (config(8) doesn't understand the {} syntax;
make(1) does, in dependency lines).

> I agree with the change in behaviour in your other mail (make
> "make depend" behave the same for kernels as for applications).  To
> be complete, the stupid message printed by config(8) should be expanded
> to give a reminder about not forgetting to run ``make cleandepend'' ;-).
> 
Done.  :-)


Cheers,
-- 
Ruslan Ermilov
ru at FreeBSD.org
FreeBSD committer
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 187 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/cvs-all/attachments/20050422/507de103/attachment.bin


More information about the cvs-all mailing list