[Bug 233265] 'make -V MAKEOBJDIRPREFIX' doesn't work if value of MAKEOBJDIRPREFIX is customized

bugzilla-noreply at freebsd.org bugzilla-noreply at freebsd.org
Sat Nov 17 00:39:05 UTC 2018


https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=233265

            Bug ID: 233265
           Summary: 'make -V MAKEOBJDIRPREFIX' doesn't work if value of
                    MAKEOBJDIRPREFIX is customized
           Product: Base System
           Version: CURRENT
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Some People
          Priority: ---
         Component: bin
          Assignee: bugs at FreeBSD.org
          Reporter: yasu at utahime.org
                CC: bdrewery at FreeBSD.org

I'm writing shell script to build and install base system from source and -V
option of make(1) is used in it to get value of MAKEOBJDIRPREFIX.

By default it works fine with all of head, releng/11.2, releng/12.0, stable/11
and stable/12.

----------------------------------------------------------------------
yasu at eastasia[2389]% svn info /usr0/freebsd/base/head
Path: /usr0/freebsd/base/head
Working Copy Root Path: /usr0/freebsd/base/head
URL: https://svn.freebsd.org/base/head
Relative URL: ^/head
Repository Root: https://svn.freebsd.org/base
Repository UUID: ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
Revision: 340474
Node Kind: directory
Schedule: normal
Last Changed Author: karels
Last Changed Rev: 340474
Last Changed Date: 2018-11-16 12:42:29 +0900 (Fri, 16 Nov 2018)

yasu at eastasia[2390]% make -V MAKEOBJDIRPREFIX -C /usr0/freebsd/base/head
/usr/obj
yasu at eastasia[2391]% svn info /usr0/freebsd/base/releng/11.2
Path: /usr0/freebsd/base/releng/11.2
Working Copy Root Path: /usr0/freebsd/base/releng/11.2
URL: https://svn.freebsd.org/base/releng/11.2
Relative URL: ^/releng/11.2
Repository Root: https://svn.freebsd.org/base
Repository UUID: ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
Revision: 338990
Node Kind: directory
Schedule: normal
Last Changed Author: gordon
Last Changed Rev: 338981
Last Changed Date: 2018-09-28 03:36:30 +0900 (Fri, 28 Sep 2018)

yasu at eastasia[2392]% make -V MAKEOBJDIRPREFIX -C /usr0/freebsd/base/releng/11.2
/usr/obj
yasu at eastasia[2393]% svn info /usr0/freebsd/base/releng/12.0
Path: /usr0/freebsd/base/releng/12.0
Working Copy Root Path: /usr0/freebsd/base/releng/12.0
URL: https://svn.freebsd.org/base/releng/12.0
Relative URL: ^/releng/12.0
Repository Root: https://svn.freebsd.org/base
Repository UUID: ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
Revision: 340471
Node Kind: directory
Schedule: normal
Last Changed Author: gjb
Last Changed Rev: 340470
Last Changed Date: 2018-11-16 09:00:59 +0900 (Fri, 16 Nov 2018)

yasu at eastasia[2394]% make -C /usr0/freebsd/base/releng/12.0 -V MAKEOBJDIRPREFIX
/usr/obj
yasu at eastasia[2395]% svn info /usr0/freebsd/base/stable/11
Path: /usr0/freebsd/base/stable/11
Working Copy Root Path: /usr0/freebsd/base/stable/11
URL: https://svn.freebsd.org/base/stable/11
Relative URL: ^/stable/11
Repository Root: https://svn.freebsd.org/base
Repository UUID: ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
Revision: 340473
Node Kind: directory
Schedule: normal
Last Changed Author: ygy
Last Changed Rev: 340449
Last Changed Date: 2018-11-15 17:43:17 +0900 (Thu, 15 Nov 2018)

yasu at eastasia[2396]% make -V MAKEOBJDIRPREFIX -C /usr0/freebsd/base/stable/11
/usr/obj
yasu at eastasia[2397]% svn info /usr0/freebsd/base/stable/12
Path: /usr0/freebsd/base/stable/12
Working Copy Root Path: /usr0/freebsd/base/stable/12
URL: https://svn.freebsd.org/base/stable/12
Relative URL: ^/stable/12
Repository Root: https://svn.freebsd.org/base
Repository UUID: ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
Revision: 340474
Node Kind: directory
Schedule: normal
Last Changed Author: gjb
Last Changed Rev: 340471
Last Changed Date: 2018-11-16 09:03:31 +0900 (Fri, 16 Nov 2018)

yasu at eastasia[2398]% make -V MAKEOBJDIRPREFIX -C /usr0/freebsd/base/stable/12
/usr/obj
----------------------------------------------------------------------

But if I customize value of MAKEOBJDIRPREFIX then it still works with
releng/11.2 and stable/11 but doesn't with head, releng/12.0 and stable/12.

----------------------------------------------------------------------
yasu at eastasia[2399]% env MAKEOBJDIRPREFIX=/usr0/freebsd/base/ogj make -V
MAKEOBJDIRPREFIX -C /usr0/freebsd/base/head

yasu at eastasia[2400]% env MAKEOBJDIRPREFIX=/usr0/freebsd/base/ogj make -V
MAKEOBJDIRPREFIX -C /usr0/freebsd/base/releng/11.2
/usr0/freebsd/base/ogj
yasu at eastasia[2401]% env MAKEOBJDIRPREFIX=/usr0/freebsd/base/ogj make -V
MAKEOBJDIRPREFIX -C /usr0/freebsd/base/releng/12.0

yasu at eastasia[2402]% env MAKEOBJDIRPREFIX=/usr0/freebsd/base/ogj make -V
MAKEOBJDIRPREFIX -C /usr0/freebsd/base/stable/11
/usr0/freebsd/base/ogj
yasu at eastasia[2403]% env MAKEOBJDIRPREFIX=/usr0/freebsd/base/ogj make -V
MAKEOBJDIRPREFIX -C /usr0/freebsd/base/stable/12

yasu at eastasia[2404]%
----------------------------------------------------------------------

I used env(1) to customize but I got same results when I use src-env.conf.

To find when behavior changed I bisected head from base r302408 (revision that
stable/11 is cleated) to base r340439 and got following result.

Order   Revision        Does 'make -V MAKEOBJDIRPREFIX` work?
----------------------------------------------------------------------
1       302408          Yes             
2       340439          No
3       323176          Yes
4       332305          No
5       327441          No
6       325415          No
7       324362          Yes
8       324940          Yes
9       325181          Yes
10      325295          No
11      325248          Yes
12      325271          Yes
13      325285          Yes
14      325290          No
15      325288          No
16      325287          Yes

That is, behavior changed at base r325288. And commit message says as
following.

----------------------------------------------------------------------
Add option UNIFIED_OBJDIR, on by default, which moves the default build OBJDIR.

This changes the build OBJDIR from the older style of /usr/obj/<srcdir> for
native builds, and /usr/obj/<target>.<target_arch>/<srcdir> for cross builds to
a new simpler format of /usr/obj/<srcdir>/<target>.<target_arch>.  This
new format is used regardless of cross or native build.  It allows
easier management of multiple source tree object directories.

The UNIFIED_OBJDIR option will be removed and its feature made permanent
for the 12.0 release.
----------------------------------------------------------------------

As far as I read this, behavior change of 'make -V MAKEOBJDIRPREFIX` doesn't
seem intentional. So I decided to submit this bug report.

Add committer of base r325288 to CC list.

-- 
You are receiving this mail because:
You are the assignee for the bug.


More information about the freebsd-bugs mailing list