PATCH: prevent mergemaster from doing a "make builldworld"

Aryeh M. Friedman aryeh.friedman at
Thu Nov 22 01:34:44 PST 2007

Hash: SHA1

Doug Barton wrote:
> I think you're going to need to describe the problem you're trying
> to solve in more detail. If you don't use make, how do you propose
> to create the temproot directory that contains the files that
> mergemaster is designed to compare? I've run mergemaster thousands
> of times both with and without a current /usr/obj, and it's never
> kicked off a buildworld for me. I just tested it a few minutes ago
> to confirm.

    * Source tree layed out as the one specified in development(7)

monster# df -k
Filesystem  1024-blocks     Used     Avail Capacity  Mounted on
/dev/ad6s2a      507630   116242    350778    25%    /
devfs                 1        1         0   100%    /dev
/dev/ad6s2f    20308398  6692020  11991708    36%    /FreeBSD
/dev/ad6s2e      507630     9822    457198     2%    /tmp
/dev/ad6s2h    60948072  6567756  49504472    12%    /usr
/dev/ad6s2g    10154158   230782   9111044     2%    /usr/obj
/dev/ad6s2d     5059630   176162   4478698     4%    /var
/dev/ad5s1    236508370 50964338 166623364    23%    /usr/home
procfs                4        4         0   100%    /proc
linprocfs             4        4         0   100% 
/dev/ad6s1    126975999 32877319  94098680    26%    /mnt/windows
/dev/ad4s1a   192879126 21441040 156007756    12%    /1

monster# ls -l /usr/src /usr/src2
lrwxr-xr-x  1 root  wheel  21 Nov  8 08:32 /usr/src ->
lrwxr-xr-x  1 root  wheel  28 Nov 21 21:08 /usr/src2 ->

Since the output is so long on the following I have truncated
everything except relivent sections

% cd /usr/src2
% make buildworld buildkernel installkernel;reboot

in single user mode:

% cd /usr/src2
% make installworld
    lots of output
% mergemaster
    lots of output (it does a *COMPLETE* buildworld before doing the
diffs against temproot)

Other info:

    * -DNO_CLEAN and NO_CLEAN= in /etc/make.conf ignored by the
buildworld invoked by mergemaster:

monster# cat /etc/make.conf
# added by use.perl 2007-11-19 15:05:31

    * Mergemaster buildworld uses /usr/src2 as it's default source path
    * -m and -t flags have no effect

What the patch does:

    If -M is specified skips the 4 make's in the empty case for
PRE_BUILD when determining the type of merge to perform.   See BUGS
section of
modified man page.

> And FYI, if you end up submitting another patch please avoid
> gratuitous whitespace changes.

As far I know I made no such changes... if your refering to extra
context lines in the diff I used cvs diff -Nau as per Kip Macy's
recommendation (this is my first time making a patch against a "live"
cvs repo instead of hand backed up files)

- --
Aryeh M. Friedman
Developer, not business, friendly
Version: GnuPG v2.0.4 (FreeBSD)
Comment: Using GnuPG with Mozilla -


More information about the freebsd-current mailing list