Re: Undesirable bmake behavior
On Sat, 1 Jun 2013 21:40:57 -0700 "Simon J. Gerraty" wrote: > >today I got confronted with this little curiosity from bmake. I have > >built and installed the world, and after reboot I ran 'make > >delete-old' as root to get rid of accumulated stale files. This is > >what I got back: > > > Removing old files (only deletes safe to delete libs) > > > Old files removed > Removing old directories > Old directories removed > >To remove old libraries run '/usr/obj/usr/src/make.amd64/make > >delete-old-libs'. > > > >It turns out that somehow running make in src tree finds and tries to > >run a copy from .OBJDIR, if one is present, unconditionally now. I do > > This simply what src/Makefile says to do, and AFAIK it has been that > way for ages. > > Since delete-old is in TGTS it gets run via: > > # > # Handle the user-driven targets, using the source relative mk files. > # > > ${TGTS}: > ${_+_}@cd ${.CURDIR}; ${_MAKE} ${.TARGET} > > > and > > $ make -dV -V _MAKE > PATH=${PATH} ${BINMAKE} -f Makefile.inc1 TARGET=${_TARGET} > TARGET_ARCH=${_TARGET_ARCH} $ make -dV -V BINMAKE > `if [ -x ${MAKEPATH}/make ]; then echo ${MAKEPATH}/make; else echo > ${MAKE}; fi` -m ${.CURDIR}/share/mk > $ make -V _MAKE > PATH=/sbin:/bin:/usr/sbin:/usr/bin `if [ -x > /var/obj/current/b/sjg/work/FreeBSD/current/src/make.amd64/make ]; > then > echo /var/obj/current/b/sjg/work/FreeBSD/current/src/make.amd64/make; > else echo make; fi` -m /b/sjg/work/FreeBSD/current/src/share/mk -f > Makefile.inc1 TARGET=amd64 TARGET_ARCH=amd64 $ > > Now you may be right that that's a bad idea, but it isn't anything > new. > > --sjg Indeed, it seems this is an issue that rears it head every time we resort to building the bootstrap make, which happens not often. bmake just made me notice the issue, and it wasn't the cause. -- Alexander Kabaev signature.asc Description: PGP signature
Re: Undesirable bmake behavior
>today I got confronted with this little curiosity from bmake. I have >built and installed the world, and after reboot I ran 'make delete-old' >as root to get rid of accumulated stale files. This is what I got back: > Removing old files (only deletes safe to delete libs) > Old files removed Removing old directories Old directories removed >To remove old libraries run '/usr/obj/usr/src/make.amd64/make >delete-old-libs'. > >It turns out that somehow running make in src tree finds and tries to >run a copy from .OBJDIR, if one is present, unconditionally now. I do This simply what src/Makefile says to do, and AFAIK it has been that way for ages. Since delete-old is in TGTS it gets run via: # # Handle the user-driven targets, using the source relative mk files. # ${TGTS}: ${_+_}@cd ${.CURDIR}; ${_MAKE} ${.TARGET} and $ make -dV -V _MAKE PATH=${PATH} ${BINMAKE} -f Makefile.inc1 TARGET=${_TARGET} TARGET_ARCH=${_TARGET_ARCH} $ make -dV -V BINMAKE `if [ -x ${MAKEPATH}/make ]; then echo ${MAKEPATH}/make; else echo ${MAKE}; fi` -m ${.CURDIR}/share/mk $ make -V _MAKE PATH=/sbin:/bin:/usr/sbin:/usr/bin `if [ -x /var/obj/current/b/sjg/work/FreeBSD/current/src/make.amd64/make ]; then echo /var/obj/current/b/sjg/work/FreeBSD/current/src/make.amd64/make; else echo make; fi` -m /b/sjg/work/FreeBSD/current/src/share/mk -f Makefile.inc1 TARGET=amd64 TARGET_ARCH=amd64 $ Now you may be right that that's a bad idea, but it isn't anything new. --sjg ___ freebsd-current@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-current To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"
Undesirable bmake behavior
Hi, today I got confronted with this little curiosity from bmake. I have built and installed the world, and after reboot I ran 'make delete-old' as root to get rid of accumulated stale files. This is what I got back: >>> Removing old files (only deletes safe to delete libs) >>> Old files removed >>> Removing old directories >>> Old directories removed To remove old libraries run '/usr/obj/usr/src/make.amd64/make delete-old-libs'. It turns out that somehow running make in src tree finds and tries to run a copy from .OBJDIR, if one is present, unconditionally now. I do not think this that is a particularly desirable and even sane behaviour - once buildworld has finished, no tool should ever try to run _anything_ from what is essentially a scratch space. Bootstrap and cross tools should only be used during corresponding stages of buildworld and by default. -- Alexander Kabaev signature.asc Description: PGP signature