Hi,

The attached patch eliminates a recursive dependency for
locore.o in the resultant kernel Makefile.

Without the patch you get this in the Makefile:

        locore.o: $S/arch/macppc/macppc/locore.o

and these dependencies:

# make -p | egrep '^locore.o' | sed 's/.*://' | tr ' ' '\n'

/usr/src/sys/arch/macppc/macppc/locore.S
assym.h
/usr/src/sys/arch/macppc/compile/GENERIC.MP/obj/assym.h
/usr/src/sys/sys/syscall.h
/usr/src/sys/arch/macppc/compile/GENERIC.MP/obj/machine/asm.h
/usr/src/sys/arch/macppc/compile/GENERIC.MP/obj/powerpc/asm.h
/usr/src/sys/arch/macppc/compile/GENERIC.MP/obj/machine/param.h
/usr/src/sys/arch/macppc/compile/GENERIC.MP/obj/powerpc/param.h
/usr/src/sys/arch/macppc/compile/GENERIC.MP/obj/machine/pmap.h
/usr/src/sys/arch/macppc/compile/GENERIC.MP/obj/powerpc/pmap.h
/usr/src/sys/arch/macppc/compile/GENERIC.MP/obj/machine/pte.h
/usr/src/sys/arch/macppc/compile/GENERIC.MP/obj/powerpc/pte.h
/usr/src/sys/arch/macppc/compile/GENERIC.MP/obj/machine/psl.h
/usr/src/sys/arch/macppc/compile/GENERIC.MP/obj/powerpc/psl.h
/usr/src/sys/arch/macppc/compile/GENERIC.MP/obj/machine/intr.h
/usr/src/sys/arch/macppc/compile/GENERIC.MP/obj/powerpc/intr.h
/usr/src/sys/arch/macppc/compile/GENERIC.MP/obj/machine/trap.h
/usr/src/sys/arch/macppc/compile/GENERIC.MP/obj/powerpc/trap.h
/usr/src/sys/arch/macppc/macppc/locore.o

With the patch you get this in the Makefile:

        locore.o: $S/arch/macppc/macppc/locore.S

and the recursive dependency goes away:

# make -p | egrep '^locore.o' | sed 's/.*://' | tr ' ' '\n'

/usr/src/sys/arch/macppc/macppc/locore.S
assym.h
/usr/src/sys/arch/macppc/compile/GENERIC.MP/obj/assym.h
/usr/src/sys/sys/syscall.h
/usr/src/sys/arch/macppc/compile/GENERIC.MP/obj/machine/asm.h
/usr/src/sys/arch/macppc/compile/GENERIC.MP/obj/powerpc/asm.h
/usr/src/sys/arch/macppc/compile/GENERIC.MP/obj/machine/param.h
/usr/src/sys/arch/macppc/compile/GENERIC.MP/obj/powerpc/param.h
/usr/src/sys/arch/macppc/compile/GENERIC.MP/obj/machine/pmap.h
/usr/src/sys/arch/macppc/compile/GENERIC.MP/obj/powerpc/pmap.h
/usr/src/sys/arch/macppc/compile/GENERIC.MP/obj/machine/pte.h
/usr/src/sys/arch/macppc/compile/GENERIC.MP/obj/powerpc/pte.h
/usr/src/sys/arch/macppc/compile/GENERIC.MP/obj/machine/psl.h
/usr/src/sys/arch/macppc/compile/GENERIC.MP/obj/powerpc/psl.h
/usr/src/sys/arch/macppc/compile/GENERIC.MP/obj/machine/intr.h
/usr/src/sys/arch/macppc/compile/GENERIC.MP/obj/powerpc/intr.h
/usr/src/sys/arch/macppc/compile/GENERIC.MP/obj/machine/trap.h
/usr/src/sys/arch/macppc/compile/GENERIC.MP/obj/powerpc/trap.h

The recursive dependency also explains the error I've been
getting sporadically when building the kernel in parallel on
macppc for the last few months:

/usr/src/sys/arch/macppc/macppc/locore.S:35:19: error: assym.h: No such file or 
directory
*** Error 1 in target '/usr/src/sys/arch/macppc/macppc/locore.o'
*** Error 1 in /usr/src/sys/arch/macppc/compile/GENERIC.MP (Makefile:820 
'/usr/src/sys/arch/macppc/macppc/locore.o')

Thoughts/Feedback?

--
Scott Cheloha

Index: sys/arch/macppc/conf/files.macppc
===================================================================
RCS file: /cvs/src/sys/arch/macppc/conf/files.macppc,v
retrieving revision 1.88
diff -u -p -r1.88 files.macppc
--- sys/arch/macppc/conf/files.macppc   13 Jun 2017 01:44:27 -0000      1.88
+++ sys/arch/macppc/conf/files.macppc   11 Oct 2017 01:41:27 -0000
@@ -17,7 +17,7 @@ file  arch/macppc/macppc/mem.c
 file   arch/macppc/macppc/ofw_machdep.c
 file   arch/macppc/macppc/openfirm.c
 file   arch/macppc/macppc/openprom.c
-file   arch/macppc/macppc/locore.o
+file   arch/macppc/macppc/locore.S
 file   dev/cninit.c
 file   arch/macppc/macppc/ofwreal.S
 

Reply via email to