Re: buildworld error

From: Dimitry Andric <dim_at_FreeBSD.org>
Date: Sun, 12 Mar 2017 11:36:11 +0100
On 12 Mar 2017, at 02:46, Cy Schubert <Cy.Schubert_at_komquats.com> wrote:
> 
> In message <5CB065B0-5A7D-4A50-A722-8EA579A67188_at_FreeBSD.org>, Dimitry
> Andric w
> rites:
>> 
>> 
>> --Apple-Mail=_A0AD1F4B-1279-4DA7-85F9-FB9846A878D7
>> Content-Transfer-Encoding: quoted-printable
>> Content-Type: text/plain;
>> 	charset=us-ascii
>> 
>> On 12 Mar 2017, at 01:55, Roberto Rodriguez Jr <rob.rodz.jr9_at_gmail.com> =
>> wrote:
>>> =20
>>> Now...
>>> make buildworld
>> ...
>>> In file included from /usr/src/contrib/llvm/lib/Support/APInt.cpp:15:
>>> In file included from =
>> /usr/src/contrib/llvm/include/llvm/ADT/APInt.h:20:
>>> In file included from
>>> /usr/src/contrib/llvm/include/llvm/Support/MathExtras.h:19:
>>> In file included from /usr/include/c++/v1/algorithm:634:
>>> In file included from /usr/include/c++/v1/memory:604:
>>> /usr/include/c++/v1/new:73:10: fatal error: '__undef___deallocate' =
>> file not
>>> found
>>> #include <__undef___deallocate>
>>>        ^
>> 
>> Yes, this is because of the bad advice to run "make delete-old" before
>> you had run "make installworld".  You had an older version of libc++ in
>> /usr/include/c++, but that still required the __undef___deallocate
>> header, which has now been deleted by "make delete-old".
>> 
>> Your best chance is to build and install libc++ first, if possible, by
>> doing:
>> 
>> cd /usr/src/lib/libc++
>> make obj
>> make depend
>> make
>> make install
>> 
>> Then retry building world.
> 
> If this actually fixes it, it (the build) is wrong. You shouldn't have to
> build and install src in order to build another part of src.
> 
> The procedure has always been documented as make installworld first then
> make delete-old. Failing to do so will on rare occasions bite you when
> building a port.

Yes, but in this case Roberto ran "make delete-old" *before* installing
world, on your advice. That is definitely something that should be
avoided.

E.g., "make delete-old" should only ever be run with exactly the same
source tree that your current world was installed from.  And preferably
right after "make installworld" and updating /etc.

-Dimitry


Received on Sun Mar 12 2017 - 09:36:23 UTC

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