From owner-svn-src-all@freebsd.org Mon Nov 6 15:22:07 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id BFF85E6099E; Mon, 6 Nov 2017 15:22:07 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 84FDD730FD; Mon, 6 Nov 2017 15:22:07 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id vA6FM6qY036456; Mon, 6 Nov 2017 15:22:06 GMT (envelope-from imp@FreeBSD.org) Received: (from imp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id vA6FM4Hg036436; Mon, 6 Nov 2017 15:22:04 GMT (envelope-from imp@FreeBSD.org) Message-Id: <201711061522.vA6FM4Hg036436@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: imp set sender to imp@FreeBSD.org using -f From: Warner Losh Date: Mon, 6 Nov 2017 15:22:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r325482 - in head/sys/boot: . efi/boot1 efi/fdt efi/loader i386 i386/boot2 i386/gptboot i386/gptzfsboot i386/libfirewire i386/libi386 i386/loader i386/zfsboot libsa32 ofw/libofw uboot/f... X-SVN-Group: head X-SVN-Commit-Author: imp X-SVN-Commit-Paths: in head/sys/boot: . efi/boot1 efi/fdt efi/loader i386 i386/boot2 i386/gptboot i386/gptzfsboot i386/libfirewire i386/libi386 i386/loader i386/zfsboot libsa32 ofw/libofw uboot/fdt uboot/lib zfs X-SVN-Commit-Revision: 325482 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Nov 2017 15:22:07 -0000 Author: imp Date: Mon Nov 6 15:22:04 2017 New Revision: 325482 URL: https://svnweb.freebsd.org/changeset/base/325482 Log: Move machine and other link creation to defs.mk Steal the code from kmod.mk and use it to automatically create links. Modify it a little for the needs of the loader (no need to guess the OBJS dependency, and we have 32-on-64 cases to contend with). Remove 15 redundant implementations (which were mostly different, but kinda the same). A future commit should factor out this code and that of kmod.mk so we have only one copy of it in the tree. Sposnored by: Netflix Modified: head/sys/boot/defs.mk head/sys/boot/efi/boot1/Makefile head/sys/boot/efi/fdt/Makefile head/sys/boot/efi/loader/Makefile head/sys/boot/ficl.mk head/sys/boot/i386/Makefile.inc head/sys/boot/i386/boot2/Makefile head/sys/boot/i386/gptboot/Makefile head/sys/boot/i386/gptzfsboot/Makefile head/sys/boot/i386/libfirewire/Makefile head/sys/boot/i386/libi386/Makefile head/sys/boot/i386/loader/Makefile head/sys/boot/i386/zfsboot/Makefile head/sys/boot/libsa32/Makefile head/sys/boot/ofw/libofw/Makefile head/sys/boot/uboot/fdt/Makefile head/sys/boot/uboot/lib/Makefile head/sys/boot/zfs/Makefile Modified: head/sys/boot/defs.mk ============================================================================== --- head/sys/boot/defs.mk Mon Nov 6 15:21:56 2017 (r325481) +++ head/sys/boot/defs.mk Mon Nov 6 15:22:04 2017 (r325482) @@ -96,4 +96,43 @@ CFLAGS+= -DLOADER_GELI_SUPPORT CFLAGS+= -m32 -mcpu=powerpc .endif +_ILINKS=machine +.if ${MACHINE} != ${MACHINE_CPUARCH} && ${MACHINE} != "arm64" +_ILINKS+=${MACHINE_CPUARCH} +.endif +.if ${MACHINE_CPUARCH} == "i386" || ${MACHINE_CPUARCH} == "amd64" +_ILINKS+=x86 +.endif +CLEANFILES+=${_ILINKS} + +all: ${PROG} + +beforedepend: ${_ILINKS} +beforebuild: ${_ILINKS} + +# Ensure that the links exist without depending on it when it exists which +# causes all the modules to be rebuilt when the directory pointed to changes. +.for _link in ${_ILINKS} +.if !exists(${.OBJDIR}/${_link}) +${OBJS}: ${_link} +.endif +.endfor + +.NOPATH: ${_ILINKS} + +${_ILINKS}: + @case ${.TARGET} in \ + machine) \ + if [ ${DO32:U0} -eq 0 ]; then \ + path=${SYSDIR}/${MACHINE}/include ; \ + else \ + path=${SYSDIR}/${MACHINE:C/amd64/i386/}/include ; \ + fi ;; \ + *) \ + path=${SYSDIR}/${.TARGET:T}/include ;; \ + esac ; \ + path=`(cd $$path && /bin/pwd)` ; \ + ${ECHO} ${.TARGET:T} "->" $$path ; \ + ln -fhs $$path ${.TARGET:T} + .endif # __BOOT_DEFS_MK__ Modified: head/sys/boot/efi/boot1/Makefile ============================================================================== --- head/sys/boot/efi/boot1/Makefile Mon Nov 6 15:21:56 2017 (r325481) +++ head/sys/boot/efi/boot1/Makefile Mon Nov 6 15:22:04 2017 (r325482) @@ -129,18 +129,3 @@ boot1.efifat: boot1.efi CLEANFILES= boot1.efi boot1.efifat .include - -beforedepend ${OBJS}: machine - -CLEANFILES+= machine - -machine: .NOMETA - ln -sf ${SYSDIR}/${MACHINE}/include machine - -.if ${MACHINE_CPUARCH} == "amd64" || ${MACHINE_CPUARCH} == "i386" -beforedepend ${OBJS}: x86 -CLEANFILES+= x86 - -x86: .NOMETA - ln -sf ${SYSDIR}/x86/include x86 -.endif Modified: head/sys/boot/efi/fdt/Makefile ============================================================================== --- head/sys/boot/efi/fdt/Makefile Mon Nov 6 15:21:56 2017 (r325481) +++ head/sys/boot/efi/fdt/Makefile Mon Nov 6 15:22:04 2017 (r325482) @@ -27,11 +27,4 @@ CFLAGS+= -I${FDTSRC} # Pick up the bootstrap header for some interface items CFLAGS+= -I${LDRSRC} -I${SYSDIR} -I. -machine: .NOMETA - ln -sf ${SYSDIR}/${MACHINE}/include machine - -CLEANFILES+= machine - .include - -beforedepend ${OBJS}: machine Modified: head/sys/boot/efi/loader/Makefile ============================================================================== --- head/sys/boot/efi/loader/Makefile Mon Nov 6 15:21:56 2017 (r325481) +++ head/sys/boot/efi/loader/Makefile Mon Nov 6 15:22:04 2017 (r325482) @@ -133,18 +133,3 @@ DPADD= ${LIBFICL} ${LIBEFI} ${LIBFDT} ${LIBEFI_FDT} $ LDADD= ${LIBFICL} ${LIBEFI} ${LIBFDT} ${LIBEFI_FDT} ${LIBZFSBOOT} ${LIBSA} .include - -beforedepend ${OBJS}: machine - -CLEANFILES+= machine - -machine: .NOMETA - ln -sf ${SYSDIR}/${MACHINE}/include machine - -.if ${MACHINE_CPUARCH} == "amd64" || ${MACHINE_CPUARCH} == "i386" -beforedepend ${OBJS}: x86 -CLEANFILES+= x86 - -x86: .NOMETA - ln -sf ${SYSDIR}/x86/include x86 -.endif Modified: head/sys/boot/ficl.mk ============================================================================== --- head/sys/boot/ficl.mk Mon Nov 6 15:21:56 2017 (r325481) +++ head/sys/boot/ficl.mk Mon Nov 6 15:22:04 2017 (r325482) @@ -29,16 +29,3 @@ CFLAGS+= -m32 -mcpu=powerpc -I. CFLAGS+= -I${FICLSRC} -I${FICLSRC}/${FICL_CPUARCH} -I${LDRSRC} CFLAGS+= -DBOOT_FORTH CFLAGS+= -DBF_DICTSIZE=15000 - -.if ${MACHINE_CPUARCH} == "amd64" && ${DO32:U0} == 1 -.if !exists(machine) -${SRCS:M*.c:R:S/$/.o/g}: machine - -beforedepend ${OBJS}: machine -.endif - -machine: .NOMETA - ln -sf ${SYSDIR}/i386/include machine - -CLEANFILES+= machine -.endif Modified: head/sys/boot/i386/Makefile.inc ============================================================================== --- head/sys/boot/i386/Makefile.inc Mon Nov 6 15:21:56 2017 (r325481) +++ head/sys/boot/i386/Makefile.inc Mon Nov 6 15:22:04 2017 (r325482) @@ -30,6 +30,7 @@ ACFLAGS+= -m32 # LD_FLAGS is passed directly to ${LD}, not via ${CC}: LD_FLAGS+= -m elf_i386_fbsd AFLAGS+= --32 +DO32=1 .endif .include "../Makefile.inc" Modified: head/sys/boot/i386/boot2/Makefile ============================================================================== --- head/sys/boot/i386/boot2/Makefile Mon Nov 6 15:21:56 2017 (r325481) +++ head/sys/boot/i386/boot2/Makefile Mon Nov 6 15:22:04 2017 (r325482) @@ -93,13 +93,6 @@ boot2.h: boot1.out ORG1=`printf "%d" ${ORG1}` \ REL1=`printf "%d" ${REL1}` > ${.TARGET} -.if ${MACHINE_CPUARCH} == "amd64" -beforedepend boot2.s: machine -CLEANFILES+= machine -machine: ${SYSDIR}/i386/include .NOMETA - ln -sf ${.ALLSRC} ${.TARGET} -.endif - .include # XXX: clang integrated-as doesn't grok .codeNN directives yet Modified: head/sys/boot/i386/gptboot/Makefile ============================================================================== --- head/sys/boot/i386/gptboot/Makefile Mon Nov 6 15:21:56 2017 (r325481) +++ head/sys/boot/i386/gptboot/Makefile Mon Nov 6 15:22:04 2017 (r325482) @@ -76,13 +76,6 @@ gptboot.out: ${BTXCRT} gptboot.o sio.o crc32.o drv.o c gptboot.o: ${SASRC}/ufsread.c -.if ${MACHINE_CPUARCH} == "amd64" -beforedepend gptboot.o: machine -CLEANFILES+= machine -machine: .NOMETA - ln -sf ${SYSDIR}/i386/include machine -.endif - .include # XXX: clang integrated-as doesn't grok .codeNN directives yet Modified: head/sys/boot/i386/gptzfsboot/Makefile ============================================================================== --- head/sys/boot/i386/gptzfsboot/Makefile Mon Nov 6 15:21:56 2017 (r325481) +++ head/sys/boot/i386/gptzfsboot/Makefile Mon Nov 6 15:22:04 2017 (r325482) @@ -88,13 +88,6 @@ gptzfsboot.out: ${BTXCRT} zfsboot.o sio.o gpt.o drv.o zfsboot.o: ${ZFSSRC}/zfsimpl.c -.if ${MACHINE_CPUARCH} == "amd64" -beforedepend zfsboot.o: machine -CLEANFILES+= machine -machine: .NOMETA - ln -sf ${SYSDIR}/i386/include machine -.endif - .include # XXX: clang integrated-as doesn't grok .codeNN directives yet Modified: head/sys/boot/i386/libfirewire/Makefile ============================================================================== --- head/sys/boot/i386/libfirewire/Makefile Mon Nov 6 15:21:56 2017 (r325481) +++ head/sys/boot/i386/libfirewire/Makefile Mon Nov 6 15:22:04 2017 (r325482) @@ -17,15 +17,4 @@ CFLAGS+= -I${BOOTSRC}/i386/libi386 CFLAGS+= -Wformat -Wall -.if ${MACHINE_CPUARCH} == "amd64" -CLEANFILES+= machine -machine: .NOMETA - ln -sf ${SYSDIR}/i386/include machine -.endif - .include - -.if ${MACHINE_CPUARCH} == "amd64" -beforedepend ${OBJS}: machine -.endif - Modified: head/sys/boot/i386/libi386/Makefile ============================================================================== --- head/sys/boot/i386/libi386/Makefile Mon Nov 6 15:21:56 2017 (r325481) +++ head/sys/boot/i386/libi386/Makefile Mon Nov 6 15:22:04 2017 (r325482) @@ -58,18 +58,8 @@ CFLAGS+= -I${BOOTSRC}/ficl -I${BOOTSRC}/ficl/i386 \ # Handle FreeBSD specific %b and %D printf format specifiers CFLAGS+= ${FORMAT_EXTENSIONS} -.if ${MACHINE_CPUARCH} == "amd64" -CLEANFILES+= machine -machine: .NOMETA - ln -sf ${SYSDIR}/i386/include machine -.endif - .include # XXX: clang integrated-as doesn't grok .codeNN directives yet CFLAGS.amd64_tramp.S= ${CLANG_NO_IAS} CFLAGS.multiboot_tramp.S= ${CLANG_NO_IAS} - -.if ${MACHINE_CPUARCH} == "amd64" -beforedepend ${OBJS}: machine -.endif Modified: head/sys/boot/i386/loader/Makefile ============================================================================== --- head/sys/boot/i386/loader/Makefile Mon Nov 6 15:21:56 2017 (r325481) +++ head/sys/boot/i386/loader/Makefile Mon Nov 6 15:22:04 2017 (r325482) @@ -104,12 +104,8 @@ OBJS= ${BTXCRT} DPADD= ${LIBFICL32} ${LIBFIREWIRE} ${LIBZFSBOOT} ${LIBI386} ${LIBGELIBOOT} ${LIBSA32} LDADD= ${LIBFICL32} ${LIBFIREWIRE} ${LIBZFSBOOT} ${LIBI386} ${LIBGELIBOOT} ${LIBSA32} -.include - .if ${MACHINE_CPUARCH} == "amd64" -beforedepend ${OBJS}: machine -CLEANFILES+= machine CFLAGS+= -DLOADER_PREFER_AMD64 -machine: .NOMETA - ln -sf ${SYSDIR}/i386/include machine .endif + +.include Modified: head/sys/boot/i386/zfsboot/Makefile ============================================================================== --- head/sys/boot/i386/zfsboot/Makefile Mon Nov 6 15:21:56 2017 (r325481) +++ head/sys/boot/i386/zfsboot/Makefile Mon Nov 6 15:22:04 2017 (r325482) @@ -87,13 +87,6 @@ zfsboot.out: ${BTXCRT} zfsboot.o sio.o drv.o cons.o ut SRCS= zfsboot.c -.if ${MACHINE_CPUARCH} == "amd64" -beforedepend zfsboot.o: machine -CLEANFILES+= machine -machine: .NOMETA - ln -sf ${SYSDIR}/i386/include machine -.endif - .include # XXX: clang integrated-as doesn't grok .codeNN directives yet Modified: head/sys/boot/libsa32/Makefile ============================================================================== --- head/sys/boot/libsa32/Makefile Mon Nov 6 15:21:56 2017 (r325481) +++ head/sys/boot/libsa32/Makefile Mon Nov 6 15:22:04 2017 (r325482) @@ -17,10 +17,3 @@ CFLAGS+= -m32 -I. .PATH: ${SASRC} .include "${SASRC}/Makefile" - -.if ${MACHINE_CPUARCH} == "amd64" -CLEANFILES+= machine -beforedepend ${OBJS}: machine -machine: .NOMETA - ln -fs ${SYSDIR}/i386/include machine -.endif Modified: head/sys/boot/ofw/libofw/Makefile ============================================================================== --- head/sys/boot/ofw/libofw/Makefile Mon Nov 6 15:21:56 2017 (r325481) +++ head/sys/boot/ofw/libofw/Makefile Mon Nov 6 15:22:04 2017 (r325482) @@ -25,11 +25,4 @@ SRCS+= ppc64_elf_freebsd.c CFLAGS+= -DDISK_DEBUG .endif -machine: .NOMETA - ln -sf ${SYSDIR}/${MACHINE_CPUARCH}/include machine - -CLEANFILES+= machine - .include - -beforedepend ${OBJS}: machine Modified: head/sys/boot/uboot/fdt/Makefile ============================================================================== --- head/sys/boot/uboot/fdt/Makefile Mon Nov 6 15:21:56 2017 (r325481) +++ head/sys/boot/uboot/fdt/Makefile Mon Nov 6 15:22:04 2017 (r325482) @@ -21,12 +21,5 @@ CFLAGS+= -I${FDTSRC} # Pick up the bootstrap header for some interface items CFLAGS+= -I${LDRSRC} -I${SYSDIR} -I. -machine: .NOMETA - ln -sf ${SYSDIR}/${MACHINE_CPUARCH}/include machine - -CLEANFILES+= machine - .include .include - -beforedepend ${OBJS}: machine Modified: head/sys/boot/uboot/lib/Makefile ============================================================================== --- head/sys/boot/uboot/lib/Makefile Mon Nov 6 15:21:56 2017 (r325481) +++ head/sys/boot/uboot/lib/Makefile Mon Nov 6 15:22:04 2017 (r325482) @@ -38,12 +38,5 @@ CFLAGS+= -I${LDRSRC} -I${SYSDIR} -I. CFLAGS+= -DDISK_DEBUG .endif -machine: .NOMETA - ln -sf ${SYSDIR}/${MACHINE_CPUARCH}/include machine - -CLEANFILES+= machine - .include .include - -beforedepend ${OBJS}: machine Modified: head/sys/boot/zfs/Makefile ============================================================================== --- head/sys/boot/zfs/Makefile Mon Nov 6 15:21:56 2017 (r325481) +++ head/sys/boot/zfs/Makefile Mon Nov 6 15:22:04 2017 (r325482) @@ -26,17 +26,5 @@ CFLAGS+= -m32 CFLAGS+= -Wformat -Wall -.if ${MACHINE_CPUARCH} == "amd64" && defined(DO32) -CLEANFILES+= machine -machine: .NOMETA - ln -sf ${SYSDIR}/i386/include machine -.endif - .include .include - -.if ${MACHINE_CPUARCH} == "amd64" && defined(DO32) -.if !exists(machine) -beforedepend ${OBJS}: machine -.endif -.endif