devel/llvm38 & custom poudriere
Christian Schwarz
me at cschwarz.com
Mon Sep 26 16:11:22 UTC 2016
Hi all,
I have been testing the drm-next-4.* branches for the last months, with a
short break since end of August, when - apparently - the build was changed
to depend on devel/llvm38...
I just pulled the latest HEAD 2652d2a6e8c714932dc3331bb130b31b176c3bc9
It requires having devel/llvm38 installed, so I did that.
The base operating system builds fine, but poudriere builds fail because
of the missing C compiler:
Using `poudriere jail -c -m src=...` does not work (lack of C compiler).
...
/usr/bin/cc: /usr/local/llvm38/bin/cc: not found
make: "/usr/ports/Mk/Uses/compiler.mk" line 69: warning: "cc --version" returned non-zero status
make: "/usr/ports/Mk/Uses/compiler.mk" line 120: warning: "c++ -### /dev/null 2>&1" returned non-zero status
...
I figured I could set up the build jail manually:
zfs create zroot/poudriere/jails/12graphics
zfs set mountpoint=/usr/local/poudriere/jails/12graphics zroot/poudriere/jails/12graphics
# manually create the poudriere.d/jail/12graphics
# by copying & adjusting a regular build jail
cd path-to-drm-next-4.7
make buildworld
make installworld DESTDIR=/usr/local/poudriere/jails/12graphics
make distribution DESTDIR=/usr/local/poudriere/jails/12graphics
zfs snapshot zroot/poudriere/jails/12graphics at nollvm
cp /etc/resolv.conf /usr/local/poudriere/jails/12graphics/etc/resolv.conf
pkg --chroot /usr/local/poudriere/jails/12graphics install clang38
rm /etc/resolv.conf
echo 'CC=/usr/local/bin/clang38' >> /usr/local/poudriere/jails/12graphics/etc/make.conf
echo 'CXX=/usr/local/bin/clang++38' >> /usr/local/poudriere/jails/12graphics/etc/make.conf
echo 'CPP=/usr/local/bin/clang-cpp38' >> /usr/local/poudriere/jails/12graphics/etc/make.conf
# create the zfs snapshot @clean, it is used as source for build jail clones created by poudriere
zfs snapshot zroot/poudriere/jails/12graphics at clean
poudriere bulk -j 12graphics -p xserver-next -c -f /usr/local/etc/poudriere.d/myports.list
This seems to stop poudriere's complaints about missing C compiler
(it needs it for buildworld when specifying `-m src=`),
however, autoconf (./configure) still fails when compiling ports,
apparently because it cannot find a C compiler in the jail:
# truncated log from failing build
=======================<phase: configure >============================
===> Configuring for p5-XML-Parser-2.44
Couldn't find your C compiler
Compilation failed in require at ./Makefile.PL line 4.
BEGIN failed--compilation aborted at ./Makefile.PL line 4.
*** Error code 2
I tried fiddling around by symlinkng /usr/bin/cc to the clang binaries,
this was not successful however.
How should I setup the build jail correctly?
I guess this work must have been done by the 'official' repo [1] already.
Thanks,
Christian
[1] http://www.bsddesktop.com/images/120amd64-ports-graphics-xserver-mesa-next
More information about the freebsd-x11
mailing list