why does buildworld fail on stable/11 ?

tech-lists tech-lists at zyxst.net
Thu Jan 25 12:40:11 UTC 2018


On 25/01/2018 06:22, Scott Bennett wrote:
> tech-lists <tech-lists at zyxst.net> wrote:
> 
>> On 24/01/2018 08:51, Scott Bennett wrote:
>>> hellas#	mv /etc/make.conf{,.save}
>>> hellas#	mv /etc/src.conf{,.save}
>>> hellas#	cd /usr/src
>>> hellas#	make cleandir
>>> "/usr/src/share/mk/local.sys.mk", line 51: Malformed conditional (${.MAKE.MODE:Mmeta*} != "")
>>> "/usr/src/share/mk/local.sys.mk", line 58: Malformed conditional (${.MAKE.MODE:Mnofilemon} == "")
>>> "/usr/src/share/mk/local.sys.mk", line 76: if-less else
>>> "/usr/src/share/mk/local.sys.mk", line 79: if-less endif
>>> "/usr/src/share/mk/sys.mk", line 476: if-less endif
>>> bmake: fatal errors encountered -- cannot continue
>>> *** Error code 1
>>
>> Move the /usr/src somewhere else, make a new /usr/src dir and then
>>
>> svnlite co https://svn.FreeBSD.org/base/stable/11 /usr/src
>>
>> make sure it completes normally
>>
>> then cd into it and make cleandir. What happens?
> 
>      Before I do that, please answer my earlier question regarding svnlite
> vs. svn.  The make is failing on a clean checkout of /usr/src, as I stated

*Was* it a *clean* checkout? Clearly, something is broken in at least
/usr/local/share/mk if you're just running tools in base.

> before.  The only difference is that I used svn to do the checkout, not
> svnlite.  If they give identical checkout output, 

*If*.

> then repeating that rather
> lengthy download would give an identical result and thus would serve no
> purpose.

All I know is this:

1. You should be able to make buildworld et al with base tools, i.e.
without any ports installed. You should be able to use ccache (I do) but
for the purposes of debugging this, that's another uncontrolled variable.

2. I don't know the difference between svnlite and svn. All I know is
that svnlite is in base and it will be in base for reasons and one of
those reasons will be that it works reliably. I think svn in ports might
be more featureful, but maybe it's more buggy because of it, maybe it
does more - I don't know. In your position I'd like fewer unknowns. I
mean, even make cleandir fails. In circumstances like that, the first
thing I'd do is get fresh sources.

I just ran a full checkout on 11.1-stable src which took about 9 minutes
on a 19Mbit DSL:

$ pwd
/tmp/test

$ date >>time.txt && svnlite co https://svn.FreeBSD.org/base/stable/11
/tmp/test && date >>time.txt

[loads of output]

A    rescue/rescue/Makefile.depend
A    rescue/README
A    LOCKS
 U   .
Checked out revision 328393.

$ cat time.txt
Thu 25 Jan 2018 11:51:04 GMT
Thu 25 Jan 2018 12:01:07 GMT

$ make cleandir

===> lib (cleandir)
===> lib/csu (cleandir)
===> lib/csu/amd64 (cleandir)
rm -f crt1.o crti.o crtn.o Scrt1.o gcrt1.o crt1.s gcrt1.s Scrt1.s
rm -f .depend .depend.* GPATH GRTAGS GSYMS GTAGS
===> lib/libc (cleandir)
rm -f tags gdtoa_strtorx.c gdtoa_dmisc.c gdtoa_dtoa.c gdtoa_gdtoa.c
gdtoa_gethex.c gdtoa_gmisc.c gdtoa_hd_init.c gdtoa_hexnan.c gdtoa_misc.c
gdtoa_smisc.c gdtoa_strtod.c gdtoa_strtodg.c gdtoa_strtof.c
gdtoa_strtord.c gdtoa_sum.c gdtoa_ulp.c cancelpoints_sem.c
cancelpoints_sem_new.c subr_acl_nfs4.c C99_Exit.c jemalloc

[loads of output]

$ which make
/usr/bin/make

$ file /usr/bin/make
/usr/bin/make: ELF 64-bit LSB executable, x86-64, version 1 (FreeBSD),
statically linked, for FreeBSD 11.1 (1101506), FreeBSD-style, stripped

-- 
J.


More information about the freebsd-stable mailing list