I'm in the process of testing the drm-next-4.7 branch from the FreeBSDDesktop
github repository on several computers. As I want to avoid building world on
every machine, I decided to set up a dedicated build machine running FreeBSD
11.0-STABLE. The plan was to build world, kernel and some parts of the ports
tree with poudriere, and then generate FreeBSD release images and a pkgng
repository for binary packages.
I was able to build both the world and the kernel successfully. I was also able
to generate working install images with the make release command. However, it
seems that the whole build process skips building the base versions of llvm39
and clang: as a consequence, all systems installed from the release images lack
a compiler. Installing the new world and kernel on the build machine does not
install llvm39: instead, llvm38 is left untouched, until flagged obsolete by
the make remove-old-libs command, and deleted.
Does anybody know why make avoids building base llvm39 as a bootstrap compiler
even while the current base version is llvm38 ? Is there a way to force the
build of base llvm and clang ?
I do not use any src.conf or make.conf file. I read the src.conf(5) man page
and tried to pass custom flags to make (like WITH_CLANG,
WITH_CLANG_BOOTSTRAP, WITH_CLANG_FULL), without any success.
Here is how to reproduce:
1. Install FreeBSD 11.0-RELEASE or a snapshot of 12.0-CURRENT with default
options. I tried the following with both versions and base llvm was not built
in both case.
2. Install the devel/git package with pkg.
3. Clone the github repository to /usr/src.
4. Try to build everything:
# cd /usr/src/
# make buildworld buildkernel
5. The build stops immediately because make cannot find llvm39. Here is the
"You need to install devel/llvm39 to build or set XCC"
That error is new to me: I never saw it when I ran make buildworld in previous
releases. As a workaround, install devel/llvm39, or run make with explicit
# make XCC=clang XCXX=clang++ XCPP=clang-cpp buildworld buildkernel
llvm39 will not be built whatever workaround you chose.
5. After the build finishes, make a release:
# cd /usr/src/release
# make XCC=clang XCXX=clang++ XCPP=clang-cpp release WITH_DVD=1
6. Install the release to another computer, or install the new world and kernel
on the current machine as you would normally do, with mergemaster and make
remove-old / make remove-old-libs.
7. Boot the new install or the new kernel, then run:
# cc -v
No compiler found.
Thanks a lot for your help!
firstname.lastname@example.org mailing list
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"