Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 22 May 2011 16:35:05 -0600
From:      Warner Losh <imp@bsdimp.com>
To:        Benjamin Kaduk <kaduk@MIT.EDU>
Cc:        freebsd-hackers@FreeBSD.org
Subject:   Re: porting third-party build system to bsd.kmod.mk
Message-ID:  <8854CF36-7B6D-4918-ADF8-6A16CCB2F307@bsdimp.com>
In-Reply-To: <alpine.GSO.1.10.1105210148300.6818@multics.mit.edu>
References:  <alpine.GSO.1.10.1105210148300.6818@multics.mit.edu>

next in thread | previous in thread | raw e-mail | index | archive | help
The usual reason that vnode_if.h doesn't build for me when I'm doing =
in-tree hacking is because make depend hasn't run to generate it yet.  =
Or more precisely, the arc in the dependency graph from osi_crypto.c to =
vnode_if.h.  I didn't see that as part of the log, so you might try this =
first (and make setup dependent on depend somehow, as long as it is =
idempotent.

But many of the things that are being setup with the setup target =
shouldn't be necessary.  depend does that based on the setting of =
SYSDIR.  and the @ symlink should be enough to make the ufs and other =
symlinks unnecessary.

Warner


On May 21, 2011, at 12:14 AM, Benjamin Kaduk wrote:

> After getting a few pointers from jhb at BSDCan on what a =
bsd.kmod.mk-using Makefile should look like, I have been trying my hand =
at porting the OpenAFS kernel module build system to use it.  (The main =
thing this gets us is not having to manually track version- and =
architecture-dependent CFLAGS and the like.)  However, the path is not =
exactly smooth.
>=20
> A lot of the difficulty is in getting an autogenerated vnode_if.h =
while using a list of files to include in the module(from the common =
OpenAFS code) that's given as a list of object files.  If there's =
already a vnode_if.h sitting around, I can just use OBJS and things =
progress quite nicely; however, if I have to get back to SRCS for the =
use of sys/conf/kmod.mk's vnode_if.h logic, I get this sort of build =
failure (full log attached) with the attached Makefile:
> gcc -I. -I.. -I../nfs [more includes and defines] =
-I/usr/devel/openafs/git/openafs/include/afs -I@/sys -Imachine -I. -I@ =
-I@/contrib/altq -finline-limit=3D8000 --param inline-unit-growth=3D100 =
--param large-function-growth=3D1000 -fno-common -fno-omit-frame-pointer =
-mcmodel=3Dkernel -mno-red-zone -mfpmath=3D387 -mno-mmx -mno-3dnow =
-mno-sse -mno-sse2 -mno-sse3 -msoft-float =
-fno-asynchronous-unwind-tables -ffreestanding -fstack-protector =
-std=3Diso9899:1999 -fstack-protector -Wno-redundant-decls =
-Wsystem-headers -Werror -Wno-pointer-sign -o osi_crypto.o -c =
/usr/devel/openafs/git/openafs/src/afs/FBSD/osi_crypto.c =
/usr/devel/openafs/git/openafs/src/libafs/MODLOAD/../../afs/FBSD/osi_crypt=
o.c vnode_if.h
> gcc: cannot specify -o with -c or -S with multiple files
>=20
> That last bit, "-o osi_crypto.o -c /path/to/osi_crypto.c =
/path/to/osi_crypto.c vnode_if.h" is quite troublesome.  Any thoughts on =
what is causing those extra files to be listed would be greatly =
appreciated.  (Comments on other issues in the Makefile are welcome, too =
-- it's still in pretty rough shape.)
>=20
> I should note that though Makefile.common does define a osi_crypto.o =
target, "make -d A" reports:
>        using existing source =
/usr/devel/openafs/git/openafs/src/afs/FBSD/osi_crypto.c
>        applying .c -> .o to "osi_crypto.o"
>=20
>=20
> Thanks,
>=20
> Ben =
Kaduk<Makefile.txt><build.log>____________________________________________=
___
> freebsd-hackers@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
> To unsubscribe, send any mail to =
"freebsd-hackers-unsubscribe@freebsd.org"




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?8854CF36-7B6D-4918-ADF8-6A16CCB2F307>