Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 12 Mar 2017 12:32:42 -0700
From:      Cy Schubert <Cy.Schubert@komquats.com>
To:        Dimitry Andric <dim@FreeBSD.org>
Cc:        Cy Schubert <Cy.Schubert@komquats.com>, Roberto Rodriguez Jr <rob.rodz.jr9@gmail.com>, FreeBSD Current <freebsd-current@freebsd.org>
Subject:   Re: buildworld error
Message-ID:  <201703121932.v2CJWglX044258@slippy.cwsent.com>
In-Reply-To: Message from Dimitry Andric <dim@FreeBSD.org> of "Sun, 12 Mar 2017 11:36:11 %2B0100." <1C4E6A09-86AD-4DC7-AA65-336A1643E070@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
In message <1C4E6A09-86AD-4DC7-AA65-336A1643E070@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@komquats.com> wrote:
> > 
> > In message <5CB065B0-5A7D-4A50-A722-8EA579A67188@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@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@cschubert.com>
FreeBSD UNIX:  <cy@FreeBSD.org>   Web:  http://www.FreeBSD.org

	The need of the many outweighs the greed of the few.





Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201703121932.v2CJWglX044258>