Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 26 Sep 2016 18:04:31 +0200
From:      Christian Schwarz <me@cschwarz.com>
To:        freebsd-x11@freebsd.org
Subject:   devel/llvm38 & custom poudriere
Message-ID:  <20160926160431.GA19646@csarch.speedport.ip>

next in thread | raw e-mail | index | archive | help
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@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@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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20160926160431.GA19646>