"/sys/conf/kmod.mk",
line 111: Malformed conditional (${MK_CLANG_IS_CC}
Dimitry Andric
dim at FreeBSD.org
Sat Mar 3 14:19:02 UTC 2012
On 2012-03-03 12:48, O. Hartmann wrote:
> On one of my FreeBSD 10.0-CURRENT boxes I receive this morning this
> error message as shown below.
>
> I need to add, that I compiled the shown nvidia-driver hours ago on all
> FreeBSD 9.0-STABLE boxes with the same settings and I compiled the
> driver just two days before the same way I tried it this morning. What's
> wrong?
>
> Some unexpected breakage? Then this is my shout to the community.
>
> Message below.
>
> Regards and thanks in advance,
> Oliver
>
> ===> Vulnerability check disabled, database not found
> ===> License NVIDIA accepted by the user
> ===> Found saved configuration for nvidia-driver-295.20
> ===> Extracting for nvidia-driver-295.20
> => SHA256 Checksum OK for NVIDIA-FreeBSD-x86_64-295.20.tar.gz.
> ===> Patching for nvidia-driver-295.20
> ===> nvidia-driver-295.20 depends on file:
> /usr/local/libdata/pkgconfig/xorg-server.pc - found
> ===> nvidia-driver-295.20 depends on shared library: GL.1 - found
> ===> Configuring for nvidia-driver-295.20
> ===> Building for nvidia-driver-295.20
> ===> src (all)
> "/sys/conf/kmod.mk", line 111: Malformed conditional (${MK_CLANG_IS_CC}
> == "no" && ${CC:T:Mclang} != "clang")
> "/sys/conf/kmod.mk", line 115: if-less endif
> "/sys/conf/kern.mk", line 18: Malformed conditional (${MK_CLANG_IS_CC}
> != "no" || ${CC:T:Mclang} == "clang")
> "/sys/conf/kern.mk", line 31: if-less endif
> "/sys/conf/kern.mk", line 101: Malformed conditional (${MK_CLANG_IS_CC}
> == "no" && ${CC:T:Mclang} != "clang")
> "/sys/conf/kern.mk", line 109: if-less endif
> make: fatal errors encountered -- cannot continue
> *** [all] Error code 1
Sigh, it looks like a lot of module building scripts are broken. :(
The problem is that in r232322, bsd.own.mk and bsd.sys.mk were updated,
to support the new WITH_CLANG_IS_CC setting. This causes the macro
MK_CLANG_IS_CC to be defined.
However, this only works if Makefiles include the updated bsd.*.mk files
from your source directory, not if they include the old bsd.*.mk files
from /usr/share/mk. Or at least, if you didn't already run "make
installworld" to update those .mk files.
As I said to somebody else who reported a similar problem, I can put a
workaround in kmod.mk and kern.mk, so that this incorrect way of module
building seems to work. But it is still fundamentally broken.
Alternatively, I can put a message in there, which tells you to either
run make installworld, or use make buildenv before building the module(s).
More information about the freebsd-current
mailing list