Bug 181116 - CURRENT build always uses bmake, even though WITHOUT_BMAKE is specified
Summary: CURRENT build always uses bmake, even though WITHOUT_BMAKE is specified
Status: Closed Overcome By Events
Alias: None
Product: Base System
Classification: Unclassified
Component: conf (show other bugs)
Version: Unspecified
Hardware: Any Any
: Normal Affects Only Me
Assignee: freebsd-bugs (Nobody)
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2013-08-07 17:50 UTC by Enji Cooper
Modified: 2014-10-17 11:17 UTC (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Enji Cooper freebsd_committer freebsd_triage 2013-08-07 17:50:00 UTC
/etc/src.conf has WITHOUT_BMAKE specified, but the build isn't honoring it:

root@fuji-current:/usr/src # make -VWANT_MAKE
bmake
root@fuji-current:/usr/src # grep BMAKE /etc/src.conf 
WITHOUT_BMAKE=
root@fuji-current:/usr/src # make -VWANT_MAKE -DWITHOUT_BMAKE
fmake

commit 234508f586dc6e64c1ecee945d0fee8ce138ee66
Merge: 58b160f 3a26c75
Author: Garrett Cooper <yanegomi@gmail.com>
Date:   Wed Aug 7 09:15:20 2013 -0700

    Merge branch 'master' of github.com:yaneurabeya/freebsd

This logic needs to be fixed so it honors /etc/src.conf properly.

How-To-Repeat: cd /usr/src
echo WITHOUT_BMAKE= >> /etc/src.conf
[ "$(make -VWANT_MAKE)" != bmake ]
Comment 1 Enji Cooper freebsd_committer freebsd_triage 2013-08-07 18:39:59 UTC
FYI

On Aug 7, 2013, at 4:50 PM, FreeBSD-gnats-submit@FreeBSD.org wrote:

> Thank you very much for your problem report.
> It has the internal identification `conf/181116'.
> The individual assigned to look at your
> report is: freebsd-bugs.=20
>=20
> You can access the state of your problem report at any time
> via this link:
>=20
> http://www.freebsd.org/cgi/query-pr.cgi?pr=3D181116
>=20
>> Category:       conf
>> Responsible:    freebsd-bugs
>> Synopsis:       CURRENT build always uses bmake, even though WITHOUT_BMAK=
E is specified
>> Arrival-Date:   Wed Aug 07 16:50:00 UTC 2013
Comment 2 Simon J. Gerraty 2013-08-07 18:51:33 UTC
src/Makefile does not read bsd.own.mk so does not see src.conf
it does however see make.conf

More importantly, is this a "test" or is there a percieved need to
continue building with fmake?  If so why?

I was aiming to get rid of WITH[OUT]_BMAKE soon - in time for 10.0
Comment 3 Simon J. Gerraty 2013-08-07 18:54:51 UTC
Also the synopsis is somewhat missleading.

It only doesn't work when WITHOUT_BMAKE is specified in src.conf which 
src/Makefile does not honor - so would apply to any WITH[OUT]_ knob.

But the larger question is why you are wanting to use fmake 

Thanks
--sjg
Comment 4 Enji Cooper freebsd_committer freebsd_triage 2013-08-07 19:24:15 UTC
On Aug 7, 2013, at 10:51 AM, "Simon J. Gerraty" <sjg@juniper.net> wrote:

>=20
> src/Makefile does not read bsd.own.mk so does not see src.conf
> it does however see make.conf

Ah, but src.conf controls WITH* (and the option is documented in the manage,=
 along with all the others). You accidentally broke POLA :(.

> More importantly, is this a "test" or is there a percieved need to
> continue building with fmake?  If so why?

I gave up waiting for bmake and all the associated infrastructure to be back=
ported to stable/9 (and I know there's a snowball's chance in hades that it'=
ll be backported to stable/8), so I figured out how to make the test infrast=
ructure work independent of bmake.

> I was aiming to get rid of WITH[OUT]_BMAKE soon - in time for 10.0

This is a really bad idea. The fact that bmake causes conf/179111 without a m=
itigation strategy is reason alone to leave this knob in because I don't tru=
st all makefiles that exist outside of FreeBSD to work sanely without set -e=
. Heck, a lot of the Makefile snippets in FreeBSD don't behave sanely withou=
t set -e, as noted in the bug (and those are just a handful).

Management at $work would agree that it makes no sense wasting engineering h=
ours chasing down build faults.=
Comment 5 Simon J. Gerraty 2013-08-07 21:32:17 UTC
On Wed, 7 Aug 2013 11:24:15 -0700, Garrett Cooper writes:
>Ah, but src.conf controls WITH* (and the option is documented in the manage,=
> along with all the others). You accidentally broke POLA :(.

The real issue is that the option handling needs an overhaul.

The processing of options should be extracted from bsd.own.mk to its own
mk file which is always safe to include - bsd.own.mk is not.
Then makefiles like src/Makefile could include it with the list of
options it cares about - and bsd.own.mk could do the same.

>> More importantly, is this a "test" or is there a percieved need to
>> continue building with fmake?  If so why?
>
>I gave up waiting for bmake and all the associated infrastructure to be back=
>ported to stable/9 (and I know there's a snowball's chance in hades that it'=
>ll be backported to stable/8), so I figured out how to make the test infrast=
>ructure work independent of bmake.

Why should that force you to use fmake for head?

>> I was aiming to get rid of WITH[OUT]_BMAKE soon - in time for 10.0
>
>This is a really bad idea. The fact that bmake causes conf/179111 without a m=
>itigation strategy is reason alone to leave this knob in because I don't tru=
>st all makefiles that exist outside of FreeBSD to work sanely without set -e=
>. Heck, a lot of the Makefile snippets in FreeBSD don't behave sanely withou=
>t set -e, as noted in the bug (and those are just a handful).

You have the option of using .SHELL:  to configure shell description that will 
set -e, though that will just perpetuate bad habbits.
You said in 179111 that PR you have a patch?
Comment 6 Enji Cooper freebsd_committer freebsd_triage 2013-08-07 22:40:25 UTC
On Wed, Aug 7, 2013 at 1:32 PM, Simon J. Gerraty <sjg@juniper.net> wrote:
>
> On Wed, 7 Aug 2013 11:24:15 -0700, Garrett Cooper writes:
>>Ah, but src.conf controls WITH* (and the option is documented in the manage,=
>> along with all the others). You accidentally broke POLA :(.
>
> The real issue is that the option handling needs an overhaul.

I'm not arguing that it could be done better, but the problem is that
bsd.own.mk is very tied to the source tree and is conditional on a
number of factors (architecture, knobs tuned, etc).

> The processing of options should be extracted from bsd.own.mk to its own
> mk file which is always safe to include - bsd.own.mk is not.
> Then makefiles like src/Makefile could include it with the list of
> options it cares about - and bsd.own.mk could do the same.

I don't think it's as possible as you would hope, but I wish you the
best of luck.

>>> More importantly, is this a "test" or is there a percieved need to
>>> continue building with fmake?  If so why?
>>
>>I gave up waiting for bmake and all the associated infrastructure to be back=
>>ported to stable/9 (and I know there's a snowball's chance in hades that it'=
>>ll be backported to stable/8), so I figured out how to make the test infrast=
>>ructure work independent of bmake.
>
> Why should that force you to use fmake for head?

I'm verifying that my changes will continue to work with head because
our port to CURRENT effort at $work is now being done in an iterative
manner.

We also aren't going to switch to bmake in 10. We're 4 months behind
CURRENT right now (I know it's changed a lot in the last couple
months), but $product images produced in fmake work (they actually
boot) whereas images produced with bmake don't (files a missing,
stuff's miscompiled, etc). And don't even get me started on our
ancient Frankenstenian ports tree.

Similarly, we're not going to switch to the new shiny toolchain bits
(clang, libc++, etc), because of time and delivery dates. Too much
stuff is going on in 10 that we need to stage things better for later
releases.

>>> I was aiming to get rid of WITH[OUT]_BMAKE soon - in time for 10.0
>>
>>This is a really bad idea. The fact that bmake causes conf/179111 without a m=
>>itigation strategy is reason alone to leave this knob in because I don't tru=
>>st all makefiles that exist outside of FreeBSD to work sanely without set -e=
>>. Heck, a lot of the Makefile snippets in FreeBSD don't behave sanely withou=
>>t set -e, as noted in the bug (and those are just a handful).
>
> You have the option of using .SHELL:  to configure shell description that will
> set -e, though that will just perpetuate bad habbits.

What bad habits do you think it's perpetuating?

> You said in 179111 that PR you have a patch?

There are a couple, yes.
Comment 7 John Marino freebsd_committer freebsd_triage 2014-10-17 11:17:25 UTC
It seems that WITHOUT_BMAKE isn't implemented anymore.  In fact, the old make isn't an option anymore, so this PR is obsolete.  I'm closing it.