Date: Sat, 20 Oct 2012 03:02:12 GMT From: Richard Yao <ryao@gentoo.org> To: freebsd-gnats-submit@FreeBSD.org Subject: kern/172894: Out-of-tree kernel module compilation with GNU xargs in $PATH Message-ID: <201210200302.q9K32Clh084121@red.freebsd.org> Resent-Message-ID: <201210200310.q9K3A1GU086237@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 172894 >Category: kern >Synopsis: Out-of-tree kernel module compilation with GNU xargs in $PATH >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Sat Oct 20 03:10:01 UTC 2012 >Closed-Date: >Last-Modified: >Originator: Richard Yao >Release: FreeBSD 9.1-BETA1 >Organization: Gentoo BSD Team >Environment: FreeBSD freebsd 9.1-BETA1 FreeBSD 9.1-BETA1 #0: Fri Jul 20 21:39:23 EDT 2012 root@freebsd:/usr/obj/usr/src/sys/GENERIC amd64 >Description: I was working on a port of a Linux kernel module to FreeBSD. I decided to rebase on FreeBSD 9.1-BETA1. I installed Gentoo Prefix so that I would be able to work on this port in a more familiar development environment. Unfortunately, there was an issue where /usr/src/sys/conf/kmod.mk invokes xargs with -J, which Gentoo Prefix's GNU xargs does not support. I have written a patch for kmod.mk that will attempt shell substitution in place of xargs when the current command that relies on xargs fails. This report was originally submitted to hackers@FreeBSD.org three months ago. Eitan Adler requested that I file a problem report. >How-To-Repeat: 1. Install Gentoo Prefix 2. Start Prefix Shell (to put GNU xargs in $PATH) 3. Try building an out-of-tree kernel module. >Fix: --- /usr/src/sys/conf/kmod.mk.orig 2012-08-02 23:49:09.749192513 -0400 +++ /usr/src/sys/conf/kmod.mk 2012-08-04 08:57:25.719110508 -0400 @@ -217,7 +217,8 @@ ${FULLPROG}: ${OBJS} grep -v '^#' < ${EXPORT_SYMS} > export_syms .endif awk -f ${SYSDIR}/conf/kmod_syms.awk ${.TARGET} \ - export_syms | xargs -J% ${OBJCOPY} % ${.TARGET} + export_syms | xargs -J% ${OBJCOPY} % ${.TARGET} || \ + ${OBJCOPY} $(awk -f ${SYSDIR}/conf/kmod_syms.awk ${.TARGET} export_syms) ${.TARGET} .endif .endif .if !defined(DEBUG_FLAGS) && ${__KLD_SHARED} == no >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201210200302.q9K32Clh084121>