DragonFly BSD
DragonFly bugs List (threaded) for 2009-11
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

collision for 'struct pmap' when using RPC and <sys/user.h>


From: Carlo Marcelo Arenas Belon <carenas@xxxxxxxxxxxxxx>
Date: Mon, 30 Nov 2009 06:22:21 +0000

resulting on the following FTBS for ganglia monitoring on recent versions of
DragonFlyBSD (confirmed with 2.4.1 and also 2.5.1.302.gc4e67-DEVELOPMENT)

  libtool: compile:  gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I.. -I.. -I../../include -g -O2 -Wall -MT metrics.lo -MD -MP -MF .deps/metrics.Tpo -c metrics.c  -fPIC -D PIC -o .libs/metrics.o                                                         In file included from /usr/include/rpc/rpc.h:73,
                   from ../libmetrics.h:14,
                   from metrics.c:36:
  /usr/include/rpc/pmap_prot.h:89: error: redefinition of 'struct pmap'

the problem isn't specific to ganglia though as it comes from a conflict
from the system headers :

  /usr/include/machine/pmap.h  (pulled from sys/user.h)
  /usr/include/rpc/pmap_prot.h (pulled from rpc/rpc.h)

FreeBSD has also a similar problem which is worked around by removing that
header and their dependents from the include before including <sys/user.h>

  #define _MACHINE_PMAP_H_
  #define _VM_MAP_
  #include <sys/user.h>

and as a similar workaround the following has been implemented for DFBSD

  /*
   * XXX: HACK HACK HACK - avoid including machine/pmap.h and things that
   * depend on it to avoid collision with struct pmap in rpc/pmap_prot.h
   */
  #define _MACHINE_PMAP_H_
  #define _VM_VM_MAP_H_
  #include <sys/user.h>

this problem was introduced around release of 2.4.0 as previous releases
didn't have any conflicts.

Carlo



[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]