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)
@@ -186,12 +186,20 @@
${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.
@@ -219,12 +227,20 @@
.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
_______________________________________________
freebsd-current@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"