Re: CUURENT: make buildworld fails: install: libegacy.a: No such file or directory

From: Julian Elischer <julian_at_freebsd.org>
Date: Thu, 01 Aug 2013 23:52:59 +0800
On 8/1/13 11:36 PM, O. Hartmann wrote:
> On Thu, 1 Aug 2013 17:26:18 +0200
> "O. Hartmann" <ohartman_at_zedat.fu-berlin.de> wrote:
>
>> This is strange:
>>
>> Accidentally I started from two different terminals on the same box
>> "rm -rf /usr/obj/usr && make -j2 buildworld"
>>
>> While the first proceess had a headstart, the second killed
>> the /usr/obj entries and so both jobs died immediately.
>>
>> But after that, I tried simply again
>>
>> "make buildworld"
>>
>> and I get the message/error shown below. How is it possible that the
>> sources or the /usr/obj get that way corrupted, that I'm unable to
>> restart a "make buildworld"?
>>
>> This smells like a "logical bug".
>>
>> I'm stuck now. I remember that I had this situation once, but I do not
>> know the solution. Can this be fixed in a more general way? Why can
>> concurrent make buildworlds corrupt the base system/base sources that
>> way, that an subsequent make buildworld will fail as shown?
>>
>> Please do not let me die stupid!
>>
>> Regards,
>>
>> Oliver
>>
>>
>> --------------------------------------------------------------
>>>>> stage 1.1: legacy release compatibility shims
>> --------------------------------------------------------------
>> cd /usr/src; MAKEOBJDIRPREFIX=/usr/obj/usr/src/tmp
>> INSTALL="sh /usr/src/tools/install.sh"
>> PATH=/usr/obj/usr/src/tmp/legacy/usr/sbin:/usr/obj/usr/src/tmp/legacy/usr/bin:/usr/obj/usr/src/tmp/legacy/usr/games:/usr/obj/usr/src/tmp/legacy/bin:/sbin:/bin:/usr/sbin:/usr/bin
>> WORLDTMP=/usr/obj/usr/src/tmp  VERSION="FreeBSD 10.0-CURRENT amd64
>> 1000040"  MAKEFLAGS="-m /usr/src/tools/build/mk  -m /usr/src/share/mk"
>> COMPILER_TYPE=clang make  -f Makefile.inc1  DESTDIR=
>> BOOTSTRAPPING=1000040  SSP_CFLAGS=  -DWITHOUT_HTML -DWITHOUT_INFO
>> -DNO_LINT -DWITHOUT_MAN  -DNO_PIC -DNO_PROFILE -DNO_SHARED
>> -DNO_CPU_CFLAGS -DNO_WARNS -DNO_CTF -DEARLY_BUILD legacy ===>
>> tools/build
>> (obj,includes,depend,all,install) /usr/obj/usr/src/tmp/usr/src/tools/build
>> created for /usr/src/tools/build set -e; cd /usr/src/tools/build; make
>> buildincludes; make installincludes rm -f .depend mkdep -f .depend
>> -a    -I/usr/src/tools/build/../../contrib/libc-pwcache
>> -I/usr/src/tools/build/../../lib/libc/include
>> -I/usr/obj/usr/src/tmp/legacy/usr/include
>> -std=gnu99   /usr/src/tools/build/../../contrib/libc-pwcache/pwcache.c
>> sh /usr/src/tools/install.sh -C -o root -g wheel -m 444
>> libegacy.a /usr/obj/usr/src/tmp/legacy/usr/lib install: libegacy.a: No
>> such file or directory *** Error code 71
>>
>> Stop.
>> make: stopped in /usr/src/tools/build
>> *** Error code 1
>
> Solving the problem is via deleting
>
> /usr/src/tools/build/libegacy.a
>
> This is strange, I wouldn't expect a "on demand created" file
> in /usr/src. What happens on boxes were /usr/src is a NFS mount and
> read only for building clienst?
because the OBJDIR did not exist (all of a sudden), a makefile decided 
to create the file in the source directory instead.
This is the default behaviour.

        "Don't do that..."   :-)


>
>
Received on Thu Aug 01 2013 - 13:53:16 UTC

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