CVS version compilation problem



Hi folks,

I was trying to compile the latest NetworkManager from CVS and got the error below (even using wireless-tools 29-pre10).

if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I../include -I../src/named-manager -I../src/vpn-manager -I../src/dhcp-manager -I../utils -I../libnm-util -I/usr/include/dbus- 1.0 -I/usr/lib/dbus-1.0/include -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include   -DDBUS_VERSION_MAJOR=0 -DDBUS_VERSION_MINOR=61 -DDBUS_VERSION_MICRO=0 -pthread -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include   -DDBUS_API_SUBJECT_TO_CHANGE -I/usr/include/hal -I/usr/include/dbus- 1.0 -I/usr/lib/dbus-1.0/include     -DWPA_SUPPLICANT_BIN=\"/sbin/wpa_supplicant\" -DDBUS_API_SUBJECT_TO_CHANGE -DG_DISABLE_DEPRECATED -DBINDIR=\"/usr/local/bin\" -DSBINDIR=\"/usr/local/sbin\" -DLIBEXECDIR=\"/usr/local/libexec\" -DDATADIR=\"/usr/local/share\" -DSYSCONFDIR=\"/usr/local/etc\" -DLOCALSTATEDIR=\"/usr/local/var\" -DNM_RUN_DIR=\"/usr/local/var/run/NetworkManager\" -DGNOMELOCALEDIR=\"/usr/local/share/locale\" -DARP_DEBUG   -g -O2 -MT NetworkManager-nm-device-802-3-ethernet.o -MD -MP -MF ".deps/NetworkManager-nm-device-802-3-ethernet.Tpo" -c -o NetworkManager-nm-device-802-3-ethernet.o `test -f 'nm-device-802-3-ethernet.c' || echo './'`nm-device-802-3-ethernet.c ; \
        then mv -f ".deps/NetworkManager-nm-device-802-3-ethernet.Tpo" ".deps/NetworkManager-nm-device-802-3-ethernet.Po"; else rm -f ".deps/NetworkManager-nm-device-802-3-ethernet.Tpo"; exit 1; fi
In file included from /usr/include/linux/mii.h:12,
                 from nm-device-802-3-ethernet.c:464:
/usr/include/linux/if.h:95: error: redefinition of 'struct ifmap'
/usr/include/linux/if.h:131: error: redefinition of 'struct ifreq'
/usr/include/linux/if.h:181: error: redefinition of 'struct ifconf'
make[3]: *** [NetworkManager-nm-device-802-3-ethernet.o] Error 1
make[3]: Leaving directory `/home/bauermann/pessoais/projetos/NetworkManager-leap/src'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/home/bauermann/pessoais/projetos/NetworkManager-leap/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/bauermann/pessoais/projetos/NetworkManager-leap'
make: *** [all] Error 2

The problem seems to be that you can't include <linux/mii.h> if you already include <net/if.h> (which is done by <iwlib.h>).

I just had to add the following line to src/NetworkManagerUtils.h (which includes < iwlib.h>) and the compilation succeeded:

#define HEADERS_KERNEL 1

Now <iwlib.h> includes <linux/if.h> instead of <net/if.h> and no redefinition arises.
--
[]'s
Thiago Jung Bauermann

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