I've been going around with Jorge for a couple of days with this. He doesn't see the error but I do using make 4.0. I have spoken with Vishal and he sees this error with make 3.81, and tells me Fathi sees this error in local builds. Is anyone else seeing the following?
When I build this branch locally, I get the following error:
/media/scottb/linaro/hikey/source/linux/drivers/gpu/arm/utgard/Kbuild:37: *** DMA-BUF is incompatible with non-GPL license. Stop. /media/scottb/linaro/hikey/source/linux/scripts/Makefile.build:416: recipe for target 'drivers/gpu/arm/utgard' failed make[4]: *** [drivers/gpu/arm/utgard] Error 2 /media/scottb/linaro/hikey/source/linux/scripts/Makefile.build:416: recipe for target 'drivers/gpu/arm' failed make[3]: *** [drivers/gpu/arm] Error 2 /media/scottb/linaro/hikey/source/linux/scripts/Makefile.build:416: recipe for target 'drivers/gpu' failed make[2]: *** [drivers/gpu] Error 2 /media/scottb/linaro/hikey/source/linux/Makefile:957: recipe for target 'drivers' failed make[1]: *** [drivers] Error 2 make[1]: Leaving directory '/media/scottb/linaro/kernel/output/kernel-hikey-mali' Makefile:145: recipe for target 'sub-make' failed make: *** [sub-make] Error 2
This error is from: drivers/gpu/arm/utgard/Kbuild
The above makefile has the following script in it:
# For customer releases the Linux Device Drivers will be provided as ARM proprietary and GPL releases: # The ARM proprietary product will only include the license/proprietary directory # The GPL product will only include the license/gpl directory ifeq ($(wildcard $(src)/linux/license/gpl/*),) ccflags-y += -I$(src)/linux/license/proprietary ifeq ($(CONFIG_MALI400_PROFILING),y) $(error Profiling is incompatible with non-GPL license) endif ifeq ($(CONFIG_PM_RUNTIME),y) $(error Runtime PM is incompatible with non-GPL license) endif ifeq ($(CONFIG_DMA_SHARED_BUFFER),y) $(error DMA-BUF is incompatible with non-GPL license) endif $(error Linux Device integration is incompatible with non-GPL license) else ccflags-y += -I$(src)/linux/license/gpl endif
The condition is failing: ifeq ($(wildcard $(src)/linux/license/gpl/*),)
$(src) is "drivers/gpu/arm/utgard" drivers/gpu/arm/utgard/linux/license/gpl contains file mali_kernel_license.h wildcard $(src)/linux/license/gpl/* should return "mali_kernel_license.h" but actually returns "" hence the code assumes we are using a proprietary license, and dies because we are using DMA_BUF.
Anyone have any thoughts?
Since we know we are using GPL code, an easy workaround is to comment out all the code, except for:
ccflags-y += -I$(src)/linux/license/gpl
Scott