Hi,
This is not on Qemu, and I'm not cross-building. This is on an amd64 on 
11.1-RELEASE-p2. Base was built without clang or gcc, and clang40 was installed 
from ports.

The base and kernel compile using lang/llvm40 with XCC, XCXX, and XCPP set. I'm 
a little confused, as how earlier, it seemed that ports that didn't need c++ 
were building without CC, CXX, and CPP options set.  If I made a mistake here, 
I apologize for this. It seems CC, CXX, and CPP are made for ports. Then the 
problem is with Rust locating c++ that is in /usr/local/bin/ and not contained 
within FreeBSD 11.1's base, in /usr/bin/.

Nearly all programs requiring c++, needed for my desktop (xorg, rxvt-unicode, 
leafpad, sox) compiled when all 6 variables were set (CC,CPP, etc). Only Rust, 
and programs depending on it failed. Now I think the problem is, that Rust and 
programs depending on it look in absolute locations for c++.

> Sent: Sunday, October 29, 2017 at 12:11 AM
> From: "Mark Millard" <mar...@dsl-only.net>
> To: Sid <s...@bsdmail.com>
> Cc: freebsd-toolchain@freebsd.org
> Subject: Re: External LLVM toolchain not consistently locating c++ when 
> compiling ports
>
> 
> On 2017-Oct-28, at 9:40 PM, Sid <sid at bsdmail.com> wrote:
> 
> > In /etc/make.conf, when I use,
> > XCC=        /usr/local/bin/clang40
> > XCXX=       /usr/local/bin/clang++40
> > XCPP=       /usr/local/bin/clang-cpp40
> > for ports that require c++ without clang in the base system, I get the 
> > error code 
> >   make: "/usr/ports/Mk/Uses/compiler.mk" line 112:warning: "c++ -### 
> > /dev/null 2>&1" returned non-zero status
> 
> Quoting https://wiki.freebsd.org/ExternalToolchain:
> 
> XCC
> 
> The XCC approach works with top level build targets (buildworld, buildkernel, 
> etc) and overrides common make variables such as CC, CXX, and AS during the 
> cross building portions of the build with values specified by the XCC, XCPP, 
> XAS, etc variables. This method touches few files and is relatively easy to 
> understand, but has drawbacks including the inability to build individual 
> programs easily. 
> 
> END QUOTE.
> 
> Does ports support "cross building" that would be expected to use
> XCC, XCXX, XCPP, and the like?
> 
> To my knowledge there is no cross build environment for ports
> that can avoid qemu (or an equivalent): cross builds of parts
> are based on qemu, which use CC, CXX, CPP and the like as far
> as I know.
> 
> > Base and the kernel builds well with this setting. Compiles that don't need 
> > c++ also work with this setting.
> 
> Unlike for ports builds. (That is my understanding.)
> 
> > I've compensated by adding
> > CC= /usr/local/bin/clang40
> > CXX=        /usr/local/bin/clang++40
> > CPP=        /usr/local/bin/clang-cpp40
> > to the above. While this works for many ports requiring c++, it doesn't 
> > work for Rust, and programs that depend on it (Firefox, Thunderbird).
> 
> This is what I'd expect for "self hosted" (target=build)
> types of contexts and for being in a qemu context that looks
> like the target.
> 
> I'm not aware of another form of cross build for
> FreeBSD ports. (I'd like to be able to do powerpc64
> and powerpc without a system qemu. User qemu does
> not work for targeting powerpc64 or for powerpc.)
> 
> > It seems that XCXX is supposed to replace CXX fully, considering that XCC 
> > replaces CC, and XCPP replaces CPP when compiling other ports.
> 
> Can you provide evidence of this? Does the evidence
> involve cross building where the X prefix is involved?
> 
> > The error message for compiling rust with all of the above (XCC, XCXX, 
> > XCPP, CC, CXX, CPP) set is
> >   couldn't find required command: "c++"
> 
> Does the environment not have a c++ command in a place
> listed in path? Otherwise it should be found.
> 
> > This error happens whether the port option for lang/rust is set to compile 
> > with llvm40 or the bundled version.
> > This is affected by /usr/ports/Mk/Uses/compiler.mk and I think this problem 
> > affects ports compiled with c++ in the base system as well.
> 
> 
> ===
> Mark Millard
> markmi at dsl-only.net
> 
> 
_______________________________________________
freebsd-toolchain@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-toolchain
To unsubscribe, send any mail to "freebsd-toolchain-unsubscr...@freebsd.org"

Reply via email to