Re: error building clang in HEAD

From: Bryan Drewery <bdrewery_at_FreeBSD.org>
Date: Tue, 26 Jun 2018 12:51:29 -0700
On 6/26/2018 12:40 PM, Kevin Oberman wrote:
> On Tue, Jun 26, 2018 at 11:00 AM, Gary Jennejohn <gljennjohn_at_gmail.com
> <mailto:gljennjohn_at_gmail.com>> wrote:
> 
>     On Tue, 26 Jun 2018 18:24:12 +0200
>     Gary Jennejohn <gljennjohn_at_gmail.com <mailto:gljennjohn_at_gmail.com>>
>     wrote:
> 
>     > On Mon, 25 Jun 2018 11:28:18 -0700
>     > Bryan Drewery <bdrewery_at_FreeBSD.org> wrote:
>     >
>     > > On 6/24/2018 12:57 AM, Gary Jennejohn wrote: 
>     > > > On Sat, 23 Jun 2018 17:05:16 +0200
>     > > > Dimitry Andric <dim_at_FreeBSD.org> wrote:
>     > > >     
>     > > >> On 23 Jun 2018, at 15:40, Gary Jennejohn
>     <gljennjohn_at_gmail.com <mailto:gljennjohn_at_gmail.com>> wrote:   
>     > > >>>
>     > > >>> There is a strange error building clang with this use case:
>     > > >>>
>     > > >>> cd /usr/src
>     > > >>> make -j10 makeworld     
>     > > >>
>     > > >> What's the "makeworld" target?  I've not heard of this.
>     > > >>   
>     > > >
>     > > > A typo.  I meant buildowrld.
>     > > >     
>     > > >>> which produces this error output:
>     > > >>>       
>     > > >>> ===> lib/clang/libclang (all)     
>     > > >>> error: unable to rename temporary
>     'Sema/SemaTemplate-12ad7e30.o.tmp' to output file
>     'Sema/SemaTemplate.o': 'No such file or directory'
>     > > >>> 1 error generated.
>     > > >>> --- Sema/SemaTemplate.o ---
>     > > >>> *** [Sema/SemaTemplate.o] Error code 1     
>     > > >>
>     > > >> This typically happens if "make obj" was not run before the
>     rest of the
>     > > >> make targets.  Normally, the order is: make obj, then make
>     depend, then
>     > > >> make (a.k.a. make all).
>     > > >>
>     > > >> Is there a directory /usr/obj/usr/src/lib/libclang/Sema ?
>     > > >>   
>     > > >
>     > > > Well, I would hope/expect that make buildworld does make obj.
>     > > >
>     > > > Yes, the directory was there.
>     > > >     
>     > >
>     > > Actually neither 'make obj' nor 'make depend' is done or needed
>     anymore
>     > > in buildworld.
>     > >
>     > > The directory above is incorrect, please check for
>     > >
>     > >     /usr/obj/usr/src/amd64.amd64/lib/clang/libclang/Sema
>     > >   
>     >
>     > Well, now everything is there because I ran a buildworld without -j.
>     >
>     > > Do you have another Makefile or script that is executing
>     > > buildworld for you?
>     > >   
>     >
>     > No, I use a bash alias named mw:
>     > mw is aliased to `pushd /usr/src;time make -s -j$NCPU buildworld;popd'
>     >
>     > NCPU is defined as 10.
>     >
>     > > What's in your src.conf and make.conf?
>     > >   
>     >
>     > The only changes I made recently were to /etc/src.conf when I added:
>     >
>     > WITHOUT_LLVM_TARGET_AARCH64=yes
>     > WITHOUT_LLVM_TARGET_ARM=ys
>     > WITHOUT_LLVM_TARGET_MIPS=yes
>     > WITHOUT_LLVM_TARGET_POWERPC=yes
>     > WITHOUT_LLVM_TARGET_SPARC=yes
>     > WITH_LLVM_TARGET_X86=yes
>     >
>     > Otherwise, I haven't touched src.conf or make.conf in  a long time.
>     >
> 
>     I removed some old cruft from src.conf and now make -j10 buildworld is
>     succeeding, even after rm -rf /usr/obj/usr.
> 
>     Thanks for pointing me in the right direction.
> 
>     -- 
>     Gary Jennejohn
> 
> 
> I'd like to hear what triggered this as removing unneeded LLVM targets
> seems like a good idea if you know that you won't need them. Building

I don't think the options are related to the build error.

> LLVM takes a long time on my 7+ year old, memory constrained (8G)
> system. Anything that reduces that time would be nice.

By the way, before these options get out of hand...

I am adding a new WITHOUT_LLVM_TARGET_ALL option to more easily disable
unneeded targets which will be simpler for user maintenance.

And I am going to make buildworld automatically disable unneeded targets
for the bootstrap compiler. For the installed compiler it will still
default to all targets. If targets are disabled then SYSTEM_COMPILER
logic will fail when cross-building and you will need to build another
bootstrap compiler. Something to keep in mind.


> --
> Kevin Oberman, Part time kid herder and retired Network Engineer
> E-mail: rkoberman_at_gmail.com <mailto:rkoberman_at_gmail.com>
> PGP Fingerprint: D03FB98AFA78E3B78C1694B318AB39EF1B055683
> 


-- 
Regards,
Bryan Drewery


Received on Tue Jun 26 2018 - 17:51:40 UTC

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