Re: buildworld error

From: Cy Schubert <Cy.Schubert_at_komquats.com>
Date: Sun, 12 Mar 2017 12:32:42 -0700
In message <1C4E6A09-86AD-4DC7-AA65-336A1643E070_at_FreeBSD.org>, Dimitry 
Andric w
rites:
> 
> 
> --Apple-Mail=_41B95E0F-96E1-4E0A-A996-DE3C34E4B13B
> Content-Transfer-Encoding: 7bit
> Content-Type: text/plain;
> 	charset=us-ascii
> 
> 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.

That's not what I was talking about. I should have worded that better, as 
in for next time. People should run make delete-old after the previous 
installworld and prior to the next buildworld. Even so, the contents of the 
current /usr/include should not affect the current buildworld. In practice 
this is still the case. r307800 is a good example of this. I wouldn't be 
surprised there's more of this in src.

> 
> 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.

Exactly!


-- 
Cheers,
Cy Schubert <Cy.Schubert_at_cschubert.com>
FreeBSD UNIX:  <cy_at_FreeBSD.org>   Web:  http://www.FreeBSD.org

	The need of the many outweighs the greed of the few.
Received on Sun Mar 12 2017 - 18:35:28 UTC

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