Hi,
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 ports-mgmt/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
Does anybody know why
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
Here is how to reproduce:
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 ports-mgmt/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:
- 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.
- Install the devel/git package with
pkg
.
- Clone the github repository to /usr/src.
- Try to build everything:
# cd /usr/src/
# make buildworld buildkernel - The build stops immediately because
make
cannot find llvm39:
You need to install devel/llvm39 to build or set XCC
That error is new to me: I never saw it when I ranmake buildworld
in previous releases. As a workaround, install devel/llvm39, or runmake
with explicit environment variables:
# make XCC=clang XCXX=clang++ XCPP=clang-cpp buildworld buildkernel
llvm39 will not be built whatever workaround you chose. - After the build finishes, make a release:
# cd /usr/src/release
# make XCC=clang XCXX=clang++ XCPP=clang-cpp release WITH_DVD=1 - Install the release to another computer, or install the new world and kernel on the current machine as you would normally do, with
mergemaster
andmake remove-old
/make remove-old-libs
.
- Boot the new install or the new kernel, then run:
cc -v
- No compiler found.