(Strip down To: address, maybe it's only -current problem so I send
this email to [EMAIL PROTECTED] also. Set appropriate Subject:. -- MAR)

marcel> Makoto-san mentioned there's a problem with 3dfx. Is this
marcel> still the case or has it been resolved?

Unfortunately, no. It seems that nobody use -j option already :-)

***

Most audiences doesn't understand what's the problem (it's my fault).
I've checked again, and here is "how to reproduce the problem easily":

(Prepare fresh kernel source code tree; this example uses /usr/src/sys.)
% cd /usr/src/sys/conf/GENERIC; config GENERIC
(... stuff deleted ...)
% cd ../../compile/GENERIC
% make -j 2 modules
cd ../../modules && env MAKEOBJDIRPREFIX=/usr/src/sys/compile/GENERIC/modules 
KMODDIR=/boot/kernel make obj all
===> 3dfx
===> 3dfx
Warning: Object directory not changed from original /usr/src/sys/modules/3dfx
(... ok, break it ...)

'3dfx' directory is kicked twice. Apparantly, the one assumes that
/usr/src/sys/modules/3dfx is an object directory, and yet another one
assumes maybe /usr/src/sys/compile/GENERIC/modules is an object
directory (this is correct). Note that make(1) uses only one directory
for module building (I dunno why), so if the former one is used, the
latter one is simply ignored (again, I dunno why).

It's O.K. if /usr/src/sys/compile/GENERIC/modules is used correctly;
however, what will happen if only /usr/src/sys/modules/3dfx is used as
an object directory? -- that's problem.

So... you cannot supply the make variable, KERNEL_FLAG='-j 2', to your
"make release" since you've hit this problem. Don't blame '3dfx'
module. It's simply the first module directory listed in SUBDIRS
variable; you can see the same problem even if you change the order of
SUBDIRS directories.

I tried to fix, but sorry I cannot find an answer. However, here is an
escape of this problem:

Index: Makefile
===================================================================
RCS file: /lab/FreeBSD/FreeBSD.cvs/src/release/Makefile,v
retrieving revision 1.585
diff -c -r1.585 Makefile
*** Makefile    2000/11/12 11:04:11     1.585
--- Makefile    2000/11/13 05:37:12
***************
*** 831,837 ****
        @rm -f ${RD}/kernels/*.ko
        @cd ${.CURDIR}/../sys/${MACHINE}/conf && config ${KERNEL}
        @cd ${.CURDIR}/../sys/compile/${KERNEL} && \
!                       make kernel-depend && \
                        make ${KERNEL_FLAGS} modules && \
                        make modules-reinstall DESTDIR=${RD}/kernels && \
  
--- 831,837 ----
        @rm -f ${RD}/kernels/*.ko
        @cd ${.CURDIR}/../sys/${MACHINE}/conf && config ${KERNEL}
        @cd ${.CURDIR}/../sys/compile/${KERNEL} && \
!                       make modules-depend && \
                        make ${KERNEL_FLAGS} modules && \
                        make modules-reinstall DESTDIR=${RD}/kernels && \
  
It does not fix this problem. However, if we separate the execution of
"make obj" and "make all", we can avoid (again, not *fix*) the problem.
Maybe this change is reasonable; there is few meaning doing "make
kernel-depend" in "doMODULES" target.

-- -
Makoto `MAR' MATSUSHITA


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message

Reply via email to