Re: How to add custom C-flags to kernel depend?

From: Hans Petter Selasky <hps_at_selasky.org>
Date: Tue, 26 Jan 2016 16:41:08 +0100
On 01/26/16 12:13, Hans Petter Selasky wrote:
> Hi,
>
> I would like to remove the no-depend keyword from drivers using the
> LINUXKPI_C in the kernel. Currently it fails like this:
>
>> sys/ofed/drivers/infiniband/core/mad.c:36:10: fatal error:
>> 'linux/dma-mapping.h' file not found
>> #include <linux/dma-mapping.h>
>>          ^
>> 1 error generated.
>
> That's very easy to fix, by simply adding the correct include path to
> the C-flags of depend, though then all kernel files will have that
> include path added. What is the best way to fix this?
>
> I see ZFS has made a solution and can we extend this scheme?
>
>> # We have "special" -I include paths for zfs/dtrace files in 'depend'.
>> CFILES_NOCDDL=  ${CFILES:N*/cddl/*:N*fs/nfsclient/nfs_clkdtrace*}
>> SFILES_NOCDDL=  ${SFILES:N*/cddl/*}
>> CFILES_CDDL=    ${CFILES:M*/cddl/*}
>> SFILES_CDDL=    ${SFILES:M*/cddl/*}
>

Does the following look OK?


> Index: kern.post.mk
> ===================================================================
> --- kern.post.mk	(revision 294311)
> +++ kern.post.mk	(working copy)
> _at__at_ -186,12 +186,20 _at__at_
>
>  ${SYSTEM_OBJS} genassym.o vers.o: opt_global.h
>
> +# Normal files first
> +CFILES_NORMAL=	${CFILES:N*/cddl/*:N*fs/nfsclient/nfs_clkdtrace*:N*/compat/linuxkpi/*:N*/ofed/*:N*/mlx5/mlx5*}
> +SFILES_NORMAL=	${SFILES:N*/cddl/*}
> +
>  # We have "special" -I include paths for zfs/dtrace files in 'depend'.
> -CFILES_NOCDDL=	${CFILES:N*/cddl/*:N*fs/nfsclient/nfs_clkdtrace*}
> -SFILES_NOCDDL=	${SFILES:N*/cddl/*}
>  CFILES_CDDL=	${CFILES:M*/cddl/*}
>  SFILES_CDDL=	${SFILES:M*/cddl/*}
>
> +# We have "special" -I include paths for LinuxKPI.
> +CFILES_LINUXKPI=${CFILES:M*/compat/linuxkpi/*}
> +
> +# We have "special" -I include paths for OFED.
> +CFILES_OFED=${CFILES:M*/ofed/*:M*/mlx5/mlx5*}
> +
>  kernel-depend: .depend
>  # The argument list can be very long, so use make -V and xargs to
>  # pass it to mkdep.
> _at__at_ -219,12 +227,20 _at__at_
>  .depend: .PRECIOUS ${SRCS}
>  .if ${MK_FAST_DEPEND} == "no"
>  	rm -f ${.TARGET}.tmp
> -	${MAKE} -V CFILES_NOCDDL -V SYSTEM_CFILES -V GEN_CFILES | \
> +# C files
> +	${MAKE} -V CFILES_NORMAL -V SYSTEM_CFILES -V GEN_CFILES | \
>  	    CC="${_MKDEPCC}" xargs mkdep -a -f ${.TARGET}.tmp ${CFLAGS}
>  	${MAKE} -V CFILES_CDDL | \
>  	    CC="${_MKDEPCC}" xargs mkdep -a -f ${.TARGET}.tmp ${ZFS_CFLAGS} \
>  	    ${FBT_CFLAGS} ${DTRACE_CFLAGS}
> -	${MAKE} -V SFILES_NOCDDL | \
> +	${MAKE} -V CFILES_LINUXKPI | \
> +	    CC="${_MKDEPCC}" xargs mkdep -a -f ${.TARGET}.tmp \
> +		${CFLAGS} ${LINUXKPI_INCLUDES}
> +	${MAKE} -V CFILES_OFED | \
> +	    CC="${_MKDEPCC}" xargs mkdep -a -f ${.TARGET}.tmp \
> +		${CFLAGS} ${OFEDINCLUDES}
> +# Assembly files
> +	${MAKE} -V SFILES_NORMAL | \
>  	    CC="${_MKDEPCC}" xargs mkdep -a -f ${.TARGET}.tmp ${ASM_CFLAGS}
>  	${MAKE} -V SFILES_CDDL | \
>  	    CC="${_MKDEPCC}" xargs mkdep -a -f ${.TARGET}.tmp ${ZFS_ASM_CFLAGS}

--HPS
Received on Tue Jan 26 2016 - 14:38:53 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:41:02 UTC