This is a static archive of our old Q&A Site. Please post any new questions and answers at ask.wireshark.org.

wireshark-1.12.0: make is failing even after resolving dependencies(wireshark-iface_monitor.o)

0
1

Build output:

make[2]: Leaving directory `/home/user/Sharan/Softwares/wireshark-1.12.0/ui/cli'
Making all in .
make[2]: Entering directory `/home/user/Sharan/Softwares/wireshark-1.12.0'
  CC       wireshark-capture-pcap-util-unix.o
  CC       wireshark-capture-pcap-util.o
  CC       wireshark-cfile.o
  CC       wireshark-cfutils.o
  CC       wireshark-clopts_common.o
  CC       wireshark-frame_tvbuff.o
  CC       wireshark-sync_pipe_write.o
  PERL     version.h
Version configuration file version.conf not found.  Using defaults.
version.h unchanged.
  CC       wireshark-version_info.o
  CC       wireshark-capture_ifinfo.o
  CC       wireshark-capture_sync.o
  CC       wireshark-capture_ui_utils.o
  CC       wireshark-airpcap_loader.o
  CC       wireshark-capture.o
  CC       wireshark-capture_info.o
  CC       wireshark-capture_opts.o
  CC       wireshark-color_filters.o
  CC       wireshark-file.o
  CC       wireshark-fileset.o
  CC       wireshark-filters.o
  CC       wireshark-iface_monitor.o
  CC       wireshark-proto_hier_stats.o
  CC       wireshark-summary.o
  CC       wireshark-ws80211_utils.o
  CCLD     wireshark
wireshark-iface_monitor.o: In function `iface_mon_handler2':
/home/user/Sharan/Softwares/wireshark-1.12.0/iface_monitor.c:80: undefined reference to `rtnl_link_alloc'
/home/user/Sharan/Softwares/wireshark-1.12.0/iface_monitor.c:92: undefined reference to `rtnl_link_get_flags'
/home/user/Sharan/Softwares/wireshark-1.12.0/iface_monitor.c:93: undefined reference to `rtnl_link_get_name'
/home/user/Sharan/Softwares/wireshark-1.12.0/iface_monitor.c:110: undefined reference to `rtnl_link_put'
wireshark-ws80211_utils.o: In function `get_iface_info_handler':
/home/user/Sharan/Softwares/wireshark-1.12.0/ws80211_utils.c:350: undefined reference to `genlmsg_attrlen'
/home/user/Sharan/Softwares/wireshark-1.12.0/ws80211_utils.c:350: undefined reference to `genlmsg_attrdata'
wireshark-ws80211_utils.o: In function `__ws80211_get_iface_info':
/home/user/Sharan/Softwares/wireshark-1.12.0/ws80211_utils.c:405: undefined reference to `genlmsg_put'
wireshark-ws80211_utils.o: In function `get_phys_handler':
/home/user/Sharan/Softwares/wireshark-1.12.0/ws80211_utils.c:206: undefined reference to `genlmsg_attrlen'
/home/user/Sharan/Softwares/wireshark-1.12.0/ws80211_utils.c:206: undefined reference to `genlmsg_attrdata'
wireshark-ws80211_utils.o: In function `ws80211_init':
/home/user/Sharan/Softwares/wireshark-1.12.0/ws80211_utils.c:83: undefined reference to `genl_connect'
/home/user/Sharan/Softwares/wireshark-1.12.0/ws80211_utils.c:89: undefined reference to `genl_ctrl_resolve'
wireshark-ws80211_utils.o: In function `ws80211_create_on_demand_interface':
/home/user/Sharan/Softwares/wireshark-1.12.0/ws80211_utils.c:549: undefined reference to `genlmsg_put'
wireshark-ws80211_utils.o: In function `ws80211_set_freq':
/home/user/Sharan/Softwares/wireshark-1.12.0/ws80211_utils.c:587: undefined reference to `genlmsg_put'
wireshark-ws80211_utils.o: In function `ws80211_get_phys':
/home/user/Sharan/Softwares/wireshark-1.12.0/ws80211_utils.c:301: undefined reference to `genlmsg_put'
collect2: error: ld returned 1 exit status
make[2]: *** [wireshark] Error 1
make[2]: Leaving directory `/home/user/Sharan/Softwares/wireshark-1.12.0'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/user/Sharan/Softwares/wireshark-1.12.0'
make: *** [all] Error 2
[email protected]:/home/user/Sharan/Softwares/wireshark-1.12.0 #

asked 02 Sep '14, 03:55

Sharan's gravatar image

Sharan
11123
accept rate: 0%

edited 04 Sep '14, 01:28

Guy%20Harris's gravatar image

Guy Harris ♦♦
17.4k335196

1

I would guess that it's related to libnl. Try to build without it.

(02 Sep '14, 08:32) Anders ♦

2 Answers:

0

Goggelse says: libnl - Netlink Protocol Library Suite - Infradead.org www.infradead.org/~tgr/libnl/

It got something to do with capturing Wlan traffic, the particular code failing to build creates a toolbar to fill in channel info etc I think. For some reason configure isn't picking up the right headers I suspect or perhaps you have more than one version of libnl installed. If you don't need to do wireless captures you can do without it. if you do need it you need to install the right development package for libnl I suspect.

answered 03 Sep '14, 03:56

Anders's gravatar image

Anders ♦
4.6k952
accept rate: 17%

Thanks Anders. Without libnl, make is working. I got few more queries on the same line,

  • What would be the side effects for compiling wireshark without libnl? (./configure --without-libnl).
  • What actually libn do?

I got following warnings after compiling:

(process:550): WARNING : Preference "column.hidden" has been converted to "gui.column.hidden" Save your preferences to make this change permanent.

(process:550): WARNING : Preference "column.format" has been converted to "gui.column.format" Save your preferences to make this change permanent.

(03 Sep '14, 03:04) Sharan

Oh and process:550): WARNING : Preference "column.hidden" has been converted to "gui.column.hidden" Save your preferences to make this change permanent

As the Warning says the preference has been changed and the "old" and "new" preference file foramt does not match. Resaving the preferences will update to the new format.

(03 Sep '14, 04:57) Anders ♦

If you build without libnl, the wireless toolbar will be missing, and Wireshark won't automatically detect the addition of or removal of interfaces.

Libnl is, as the page Anders mentioned, "a collection of libraries providing APIs to netlink protocol based Linux kernel interfaces", and netlink is "a IPC mechanism primarly between the kernel and user space processes. It was designed to be a more flexible successor to ioctl to provide mainly networking related kernel configuration and monitoring interfaces."

Among other things, netlink can be used to get notifications about changes to network interfaces (so, without libnl, Wireshark can't get those notifications and can't automatically update its list of interfaces) and get information about and control wireless interfaces (so, without libnl, Wireshark can't get that information and control those interfaces, so it can't implement the wireless toolbar).

(04 Sep '14, 01:37) Guy Harris ♦♦

(process:550): WARNING : Preference "column.hidden" has been converted to "gui.column.hidden" Save your preferences to make this change permanent.

That's a change between whatever version of Wireshark you were using and 1.12.0. Some GUI preferences were given new names beginning with "gui."; Wireshark converts them internally, but warns about it - if you save your preferences, they will be written out with the new name

(04 Sep '14, 01:39) Guy Harris ♦♦

0

There's probably a bug somewhere in the configure script, so that it configured support in for the parts that use libnl but either didn't link with libnl or linked with the wrong version of libnl.

Could you do a make distclean, re-run the configure script with the same arguments that you used the last time, run make V=1, and file a bug on the Wireshark bugzilla, and attach both the complete config.log file produced by the configure script and the output of make V=1?

answered 04 Sep '14, 01:52

Guy%20Harris's gravatar image

Guy Harris ♦♦
17.4k335196
accept rate: 19%

Harris, I've raised a bug as you suggested. https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=10444

(04 Sep '14, 05:57) Sharan