-nostdinc, <bsd.kmod.mk>, and <std{arg,def}.h>

Juergen Lock nox at jelal.kn-bremen.de
Tue Jul 27 17:00:38 UTC 2010


On Mon, Jul 26, 2010 at 06:44:29AM +0400, Anonymous wrote:
> Juergen Lock <nox at jelal.kn-bremen.de> writes:
> 
> > On Sun, Jul 25, 2010 at 12:59:00AM +0200, Juergen Lock wrote:
> >> On Sat, Jul 24, 2010 at 05:17:51PM -0400, Ryan Stone wrote:
> >> > I believe that you should be using <sys/stddef.h> and <machine/stdarg.h>
> >> 
> >> Aaah thank you! :)  I shall make a patch tomorrow.
> >
> > Anyone want to test this patch on head?  It can go in
> > /usr/ports/emulators/kqemu-kmod-devel/files/patch-common-kqemu_int.h:
> >
> >  Thanx, :)
> > 	Juergen
> >
> > --- common/kqemu_int.h.orig
> > +++ common/kqemu_int.h
> > @@ -17,8 +17,14 @@
> >   * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
> >   */
> >  #ifndef __ASSEMBLY__
> > +#ifdef __FreeBSD__
> > +#include <sys/types.h>
> > +#include <sys/stddef.h>
> > +#include <machine/stdarg.h>
> 
> You're not gonna make @ and machine symlinks and include them using `-I@'?
> I think typedefs need to be hidden, too.
> 
>   gcc -Wall -O2 -fomit-frame-pointer -fno-strict-aliasing -Werror  -mno-red-zone -fno-stack-protector    -fpic  -D__KERNEL__ -nostdinc -iwithprefix include -I. -I.. -c -o monitor.o monitor.c -I@
>   In file included from monitor.c:20:
>   kqemu_int.h:31: error: redefinition of typedef 'uint8_t'
>   @/sys/types.h:84: error: previous declaration of 'uint8_t' was here
>   kqemu_int.h:32: error: redefinition of typedef 'uint16_t'
>   @/sys/types.h:89: error: previous declaration of 'uint16_t' was here
>   kqemu_int.h:33: error: redefinition of typedef 'uint32_t'
>   @/sys/types.h:94: error: previous declaration of 'uint32_t' was here
>   kqemu_int.h:35: error: redefinition of typedef 'uint64_t'
>   @/sys/types.h:99: error: previous declaration of 'uint64_t' was here
>   kqemu_int.h:40: error: redefinition of typedef 'int8_t'
>   @/sys/types.h:64: error: previous declaration of 'int8_t' was here
>   kqemu_int.h:41: error: redefinition of typedef 'int16_t'
>   @/sys/types.h:69: error: previous declaration of 'int16_t' was here
>   kqemu_int.h:42: error: redefinition of typedef 'int32_t'
>   @/sys/types.h:74: error: previous declaration of 'int32_t' was here
>   kqemu_int.h:44: error: redefinition of typedef 'int64_t'
>   @/sys/types.h:79: error: previous declaration of 'int64_t' was here
> 
Yeah I meanwhile got reminded of ref9-* and got something on ref9-i386
that at least builds again, which I just committed.

> BTW, the port doesn't respect CC and CFLAGS.

 Well in this case there's probably not much point, and also most ppl
use vbox now anyway. :)

 Thanx,
	Juergen


More information about the freebsd-current mailing list