On 6/18/2019 10:02 AM, Ian Lepore wrote: > On Tue, 2019-06-18 at 09:51 -0700, Bryan Drewery wrote: >> On 6/18/2019 3:56 AM, Kubilay Kocak wrote: >>> Have seen another report on Twitter yesterday. Didn't see a full >>> build >>> log, but theirs was had apparently without -j, apparently on June >>> 14 >>> sources: >>> >>> Error: >>> /usr/src/usr.bin/mkesdb/lex.1:46:10: fatal error: 'yacc.h' file not >>> found >>> >>> Have not heard back from them whether it continued after trying -j2 >>> but >>> I did ask them to hit up freebsd-current if it continued to be an >>> issue >> >> Even -j1 should avoid it. For some reason I am only seeing it without >> any -j flag at all. >> >> I should have a fix in soon. This patch fixes it and allows bin/sh to still build right. I need to test further before committing though. http://people.freebsd.org/~bdrewery/patches/dep-headers.diff That or -j1 is a simple workaround. >> > > There's a subtle difference between -j1 and no -j at all, having to do > with running in "compatibility mode". I forget the details, but I > remember being burned by the difference once. :) > > -- Ian > Yeah fundamentally this makes sense. There's no dependency defined to get yacc.h built before lex.o. So the oddness is actually that -j/job mode gets the order right by accident and that it has a different order than -B. Shrug. In bsd.prog.mk historically was this: .if defined(PROG) && !exists(${.OBJDIR}/${DEPENDFILE}) ${OBJS}: ${SRCS:M*.h} .endif I changed this mechanism to use OBJS_DEPEND_GUESS which allows a list of dependencies to apply by checking for the existence of the .depend.foo file in 1 place. I ended up removing the addition of the headers in r349061 though while targeting bin/sh build-tools cyclic dependency problem. -- Regards, Bryan Drewery
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:41:21 UTC