Re: sys/modules/sdio broken in .svn_revision 348842 'opt_cam.h' not found

From: Bryan Drewery <bdrewery_at_FreeBSD.org>
Date: Wed, 19 Jun 2019 12:53:56 -0700
On 6/17/19 6:46 PM, Julian H. Stacey wrote:
> Hi, Reference:
>> From:		Ian Lepore <ian_at_freebsd.org>
>> Date:		Mon, 17 Jun 2019 18:56:35 -0600
> 
> Ian Lepore wrote:
>> On Tue, 2019-06-18 at 02:21 +0200, Julian H. Stacey wrote:
>>> "Julian H. Stacey" wrote:
>>>> "Bjoern A. Zeeb" wrote:
>>>>> On 17 Jun 2019, at 10:37, Mark Linimon wrote:
>>>>>
>>>>>> On Mon, Jun 17, 2019 at 11:41:03AM +0200, Julian H. Stacey
>>>>>> wrote:
>>>>>>> svn_revision 348842
>>>>>>
>>>>>> [ ...]
>>>>>>> /usr/src/sys/modules/sdio/../../dev/sdio/sdiob.c:68:10: fatal
>>>>>>> error:
>>>>>>>       'opt_cam.h' file not found
>>>>>>> #include "opt_cam.h"
>>>>>>>          ^~~~~~~~~~~
>>>>>>> 1 error generated.
>>>>>>
>>>>>> This is extremely unlikely to be r348842.  I would investigate
>>>>>> r349025
>>>>>> instead.  (Committer Cc:ed.)
>>>>>
>>>>> Almost, more likely me.  I just had a look.  I am not exactly
>>>>> sure how 
>>>>> to reproduce this?
>>>>>
>>>>> /bz
>>>>
>>>> If I can help let me know.
>>>> My buildworld broke with 13.0-CURRENT 
>>>> /usr/src .ctm_status src-cur 14077 .svn_revision 348842
>>>> I'm now running make install, 
>>>> & can then compare my root include & libs with with a set
>>>> installed 
>>>> using DESTDIR=
>>>
>>> I compiled, installed, compared.  
>>>   BTW cd /usr/src; make delete  - only cleans libs & bins but does
>>> not
>>>   clean other junk listed in ObsoleteFiles.inc not even with
>>>   -DBATCH_DELETE_OLD_FILES or -DBATCH_DELETE_OLD_FILES=YES so
>>> manually purged,
>>> I believe I have a clean system built from .ctm_status src-cur 14077
>>> .svn_revision 348842 but /usr/src/sys/modules/sdio still fails,
>>> so there was a commit of unbuildable code.
>>>
>>> cd /usr/src ; find . -name opt_cam.h	# tools/tools/vhba/opt_cam.h
>>> cd /usr/include ; find . -name opt_cam.h	# nothing
>>>
>>>
>>>> I have a 2nd slower current box also building to 14077, I will then
>>>> take that on up to latest .ctm_status src-cur 14087 .svn_revision
>>>> 349129 to see if problem clears.
>>>
>>> make buildworld blew on newer current, with a different bug:
>>>
>>> cc  -O2 -pipe -I/usr/src/usr.bin/mkesdb_static
>>> -I/usr/src/usr.bin/mkesdb_static/../mkesdb  -
>>> I/usr/src/usr.bin/mkesdb_static/../../lib/libc/iconv  -g -MD  -
>>> MF.depend.lex.o -MTlex.o -std=gnu99  -Qunused-arguments   -
>>> I/usr/obj/usr/src/amd64.amd64/tmp/legacy/usr/include -c lex.c -o
>>> lex.o
>>> /usr/src/usr.bin/mkesdb/lex.l:46:10: fatal error: 'yacc.h' file not
>>> found
>>> #include "yacc.h"
>>>          ^~~~~~~~
>>> 1 error generated.
>>> *** Error code 1
>>>
>>> Stop.
>>> make[3]: stopped in /usr/src/usr.bin/mkesdb_static
>>>
>>> A double waste of CPU & human time & power in a hot office.
>>> Commit bits used to be suspended for un-buildable code. I'll boot
>>> stable.
>>
>> Since you seem to be so focused on mean-spirited criticism of others,
>> I'm sure you'll understand when I ask...
>>
>> Have you *seriosly* been using and building freebsd this long and you
>> don't know that an opt_*.h file is generated as part of the build and
>> exists only in the object directory, so that searching for it under
>> /usr/src or /usr/include would be... let's see, how did you put it?...
>> Oh yeah: A double waste of CPU & human time.
> 
> Personal noise is irrelevant.
> 
> Facts: 
> Unchecked commits broken make buildworld twice, 
> Time was wasted by bad commits.  
> My time ran out. 
> Current does not benefit from commits that break buildworld.
> I (like a friend before) must switch to stable to avoid breakage. 
> 
> Time was, ~25 years back, when FreeBSD commiters who screwed
> the build were awarded a conical hat & took a one week holiday. A
> mild rebuke for wasting people's time, & a short refreshing
> break to go smell fresh air. No not coffee, but fresh air.
> 
> Cheers,
> Julian
> 

As the committer who broke yacc.h I'm sorry. I understand the
frustration. I too get frustrated by build breakage from others and even
myself. I appreciate the cc's here. I did test this particular change
with 1. clean build 2. -DNO_CLEAN 3. CLEANDIR=clean + -DNO_CLEAN (to
really rebuild everything but reuse the .depend files). And similar
pattern with META_MODE. And a cross-build of powerpc.powerpc64 to
capture some gcc deps and ensure cross-build was running the right
binaries. I missed not using -j though, that's a really odd case I'll
never test frankly.
Worse my build environment had MK_TESTS=no in it so I missed some other
bugs.
What I didn't test: buildkernel, install*, universe, ports (the last 2
will likely bite me still).
It's pretty common for all of us to forget to test installworld and ports.
Again this brings up the need for a real build test suite that can be
used pre-commit.


-- 
Regards,
Bryan Drewery


Received on Wed Jun 19 2019 - 17:54:06 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:41:21 UTC