Discussion:
WITH_META_MODE vs. delete-old and delete-old-libs
(too old to reply)
Mark Millard
2016-06-13 21:13:16 UTC
Permalink
# more ~/sys_build_scripts.amd64-host/make_amd64_nodebug_clang_bootstrap-amd64-host.sh
kldload -n filemon && \
script ~/sys_typescripts/typescript_make_amd64_nodebug_clang_bootstrap-amd64-host-$(date +%Y-%m-%d:%H:%M:%S) \
env __MAKE_CONF="/root/src.configs/make.conf" SRC_ENV_CONF="/root/src.configs/src.conf.amd64-clang-bootstrap.amd64-host" \
WITH_META_MODE=yes \
MAKEOBJDIRPREFIX="/usr/obj/clang/amd64.amd64" \
make $*
When the WITH_META_MODE=yes is present (as shown) delete-old and delete-old-libs command line arguments to the script do not display the prompts but the process does wait for the y/n answers. I've actually used top in another window to see what it is waiting for an answer to. After I've answered all the questions then the list of prompts finally is shown all at once.

Without WITH_META_MODE= each prompt text is displayed before it waits for the answer to that prompt.


This sort of fits in with my earlier questions about make usage that is in the likes of, say, mergemaster and if/where care about WITH_META_MODE=yes use vs. disuse might be important for such. For example: Should "env WITH_META_MODE=yes" be used with mergemaster if it was used with buildworld, buildkernel, installkernel, and installworld?

===
Mark Millard
markmi at dsl-only.net
Bryan Drewery
2016-06-13 21:28:10 UTC
Permalink
Post by Mark Millard
# more ~/sys_build_scripts.amd64-host/make_amd64_nodebug_clang_bootstrap-amd64-host.sh
kldload -n filemon && \
script ~/sys_typescripts/typescript_make_amd64_nodebug_clang_bootstrap-amd64-host-$(date +%Y-%m-%d:%H:%M:%S) \
env __MAKE_CONF="/root/src.configs/make.conf" SRC_ENV_CONF="/root/src.configs/src.conf.amd64-clang-bootstrap.amd64-host" \
WITH_META_MODE=yes \
MAKEOBJDIRPREFIX="/usr/obj/clang/amd64.amd64" \
make $*
When the WITH_META_MODE=yes is present (as shown) delete-old and delete-old-libs command line arguments to the script do not display the prompts but the process does wait for the y/n answers. I've actually used top in another window to see what it is waiting for an answer to. After I've answered all the questions then the list of prompts finally is shown all at once.
Without WITH_META_MODE= each prompt text is displayed before it waits for the answer to that prompt.
This sort of fits in with my earlier questions about make usage that is in the likes of, say, mergemaster and if/where care about WITH_META_MODE=yes use vs. disuse might be important for such. For example: Should "env WITH_META_MODE=yes" be used with mergemaster if it was used with buildworld, buildkernel, installkernel, and installworld?
I thought I had fixed this but I see I did not. There's a few similar
bugs here to fix. WITH_META_MODE=yes is intended to be safe to always
set. Mergemaster is special since it is building private targets rather
than only public targets. So I'll likely have to patch it.
--
Regards,
Bryan Drewery
Ngie Cooper
2016-06-13 21:51:44 UTC
Permalink
Post by Mark Millard
# more ~/sys_build_scripts.amd64-host/make_amd64_nodebug_clang_bootstrap-amd64-host.sh
kldload -n filemon && \
script ~/sys_typescripts/typescript_make_amd64_nodebug_clang_bootstrap-amd64-host-$(date +%Y-%m-%d:%H:%M:%S) \
env __MAKE_CONF="/root/src.configs/make.conf" SRC_ENV_CONF="/root/src.configs/src.conf.amd64-clang-bootstrap.amd64-host" \
WITH_META_MODE=yes \
MAKEOBJDIRPREFIX="/usr/obj/clang/amd64.amd64" \
make $*
When the WITH_META_MODE=yes is present (as shown) delete-old and delete-old-libs command line arguments to the script do not display the prompts but the process does wait for the y/n answers. I've actually used top in another window to see what it is waiting for an answer to. After I've answered all the questions then the list of prompts finally is shown all at once.
Without WITH_META_MODE= each prompt text is displayed before it waits for the answer to that prompt.
This sort of fits in with my earlier questions about make usage that is in the likes of, say, mergemaster and if/where care about WITH_META_MODE=yes use vs. disuse might be important for such. For example: Should "env WITH_META_MODE=yes" be used with mergemaster if it was used with buildworld, buildkernel, installkernel, and installworld?
I generally do:

yes | sudo make delete-old

Cheers,
-Ngie
Bryan Drewery
2016-06-13 21:53:12 UTC
Permalink
Post by Ngie Cooper
Post by Mark Millard
# more ~/sys_build_scripts.amd64-host/make_amd64_nodebug_clang_bootstrap-amd64-host.sh
kldload -n filemon && \
script ~/sys_typescripts/typescript_make_amd64_nodebug_clang_bootstrap-amd64-host-$(date +%Y-%m-%d:%H:%M:%S) \
env __MAKE_CONF="/root/src.configs/make.conf" SRC_ENV_CONF="/root/src.configs/src.conf.amd64-clang-bootstrap.amd64-host" \
WITH_META_MODE=yes \
MAKEOBJDIRPREFIX="/usr/obj/clang/amd64.amd64" \
make $*
When the WITH_META_MODE=yes is present (as shown) delete-old and delete-old-libs command line arguments to the script do not display the prompts but the process does wait for the y/n answers. I've actually used top in another window to see what it is waiting for an answer to. After I've answered all the questions then the list of prompts finally is shown all at once.
Without WITH_META_MODE= each prompt text is displayed before it waits for the answer to that prompt.
This sort of fits in with my earlier questions about make usage that is in the likes of, say, mergemaster and if/where care about WITH_META_MODE=yes use vs. disuse might be important for such. For example: Should "env WITH_META_MODE=yes" be used with mergemaster if it was used with buildworld, buildkernel, installkernel, and installworld?
yes | sudo make delete-old
The problem is that the y/n prompt don't show at all.
--
Regards,
Bryan Drewery
Ngie Cooper
2016-06-13 21:54:34 UTC
Permalink
On Mon, Jun 13, 2016 at 2:52 PM, Bryan Drewery <***@freebsd.org> wrote:
..
Post by Bryan Drewery
The problem is that the y/n prompt don't show at all.
Ah, I missed that critical point...

Maybe MK_META_MODE=no should be forced for those targets?
Thanks,
-Ngie
Bryan Drewery
2016-06-13 21:56:09 UTC
Permalink
Post by Ngie Cooper
...
Post by Bryan Drewery
The problem is that the y/n prompt don't show at all.
Ah, I missed that critical point...
Maybe MK_META_MODE=no should be forced for those targets?
I'm trying to decide between whitelist and blacklist on this. Both have
problems for downstream vendors who have custom targets. However, only
buildworld and SUBDIR_OVERRIDE/all really needs meta mode.
--
Regards,
Bryan Drewery
Bryan Drewery
2016-06-14 16:23:00 UTC
Permalink
Post by Bryan Drewery
Post by Ngie Cooper
Post by Mark Millard
# more ~/sys_build_scripts.amd64-host/make_amd64_nodebug_clang_bootstrap-amd64-host.sh
kldload -n filemon && \
script ~/sys_typescripts/typescript_make_amd64_nodebug_clang_bootstrap-amd64-host-$(date +%Y-%m-%d:%H:%M:%S) \
env __MAKE_CONF="/root/src.configs/make.conf" SRC_ENV_CONF="/root/src.configs/src.conf.amd64-clang-bootstrap.amd64-host" \
WITH_META_MODE=yes \
MAKEOBJDIRPREFIX="/usr/obj/clang/amd64.amd64" \
make $*
When the WITH_META_MODE=yes is present (as shown) delete-old and delete-old-libs command line arguments to the script do not display the prompts but the process does wait for the y/n answers. I've actually used top in another window to see what it is waiting for an answer to. After I've answered all the questions then the list of prompts finally is shown all at once.
Without WITH_META_MODE= each prompt text is displayed before it waits for the answer to that prompt.
This sort of fits in with my earlier questions about make usage that is in the likes of, say, mergemaster and if/where care about WITH_META_MODE=yes use vs. disuse might be important for such. For example: Should "env WITH_META_MODE=yes" be used with mergemaster if it was used with buildworld, buildkernel, installkernel, and installworld?
yes | sudo make delete-old
The problem is that the y/n prompt don't show at all.
This is fixed after r301887.
--
Regards,
Bryan Drewery
Mark Millard
2016-06-13 22:22:16 UTC
Permalink
Post by Ngie Cooper
Post by Mark Millard
# more ~/sys_build_scripts.amd64-host/make_amd64_nodebug_clang_bootstrap-amd64-host.sh
kldload -n filemon && \
script ~/sys_typescripts/typescript_make_amd64_nodebug_clang_bootstrap-amd64-host-$(date +%Y-%m-%d:%H:%M:%S) \
env __MAKE_CONF="/root/src.configs/make.conf" SRC_ENV_CONF="/root/src.configs/src.conf.amd64-clang-bootstrap.amd64-host" \
WITH_META_MODE=yes \
MAKEOBJDIRPREFIX="/usr/obj/clang/amd64.amd64" \
make $*
When the WITH_META_MODE=yes is present (as shown) delete-old and delete-old-libs command line arguments to the script do not display the prompts but the process does wait for the y/n answers. I've actually used top in another window to see what it is waiting for an answer to. After I've answered all the questions then the list of prompts finally is shown all at once.
Without WITH_META_MODE= each prompt text is displayed before it waits for the answer to that prompt.
This sort of fits in with my earlier questions about make usage that is in the likes of, say, mergemaster and if/where care about WITH_META_MODE=yes use vs. disuse might be important for such. For example: Should "env WITH_META_MODE=yes" be used with mergemaster if it was used with buildworld, buildkernel, installkernel, and installworld?
yes | sudo make delete-old
Cheers,
-Ngie
For my amd64, rpi2, and powerpc (non-64) activities I can do such things rather than answer prompts individually --and have sometimes.

But for my libc++/xtoolchain based powerpc64 environment I've got a couple of things it lists for delete-old that I do not want deleted because I've got special things in place. If the check-old list is fairly short I answer delete-old individually. If the check-old list is really long I delete all and run a script that puts back my couple of oddities (which happen to be symbolic links).

Thus I tend to expect and use the individual delete-old prompts at least for one of my contexts.

I do have a tendency to work similarly across contexts even when local optimizations could be made. So I tend to treat amd64, armv6, powerpc similar to powerpc64 for check-old/delete-old use. [Another example: I'm unlikely to use ports-mgmt/synth on amd64 because I can not use it on armv6, powerpc, or powerpc64.]

And that explains why I noticed the issue even though I currently do not have access to the powerpc64 or powerpc machines.

===
Mark Millard
markmi at dsl-only.net
Loading...