Dr. David Kirkby wrote:
2) I just installed libpcap from the file libpcap-0.9.8.tar.gz, but the
wireshark configure script complains that the pcap library is more
recent than the pcap header.
checking whether pcap_breakloop is present and usable... broken
configure: WARNING: Your pcap library is more recent than your pcap header.
configure: WARNING: Wireshark won't be able to use functions not declared
configure: WARNING: in that header. You should install a newer version of
configure: WARNING: the header file.
checking whether pcap_findalldevs is present and usable... yes
checking for pcap_datalink_val_to_name... yes
I've no idea why this should be so.
Well, one way that should be so would be if, for example, a hypothetical
maker of UN*X boxes, whose version of UN*X includes libpcap, were to put
out an online OS update that upgrades its version of libpcap as part of
a tcpdump/libpcap upgrade to plug some security holes, with the upgrade
to libpcap being an upgrade from a version without pcap_breakloop() to a
version with pcap_breakloop(), and if that vendor were to treat header
files as part of its development tools, and not to update them with that
online OS update, so that you have a library with pcap_breakloop() and a
header file that doesn't declare it.
As you built and installed libpcap yourself, that wouldn't be it, so
we'd have to look elsewhere. What are the contents of your config.log file?
6) NOW THIS IS THE SERIOUS PROBLEM - it stops me building wireshark and
I have not yet found a solution.
./configure CC=/opt/SUNWspro/bin/cc CXX=/opt/SUNWspro/bin/CC
This configures OK - see above for what is configured.
gmake
After quite a bit of time compiling OK, the compilation process aborts
with:
source='packet-ecatmb.c' object='packet-ecatmb.lo' libtool=yes \
DEPDIR=.deps depmode=none /bin/bash ../../depcomp \
/bin/bash ../../libtool --tag=CC --mode=compile /opt/SUNWspro/bin/cc
-DHAVE_CONFIG_H -I. -I../.. -I../.. -I/usr/local/include
-I/usr/local/include
'-DPLUGIN_DIR="/usr/local/lib/wireshark/plugins/0.99.7"' -D_U_="" -g
-I/usr/local/include -mt -I/usr/include/gtk-2.0
-I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0
-I/usr/include/pango-1.0 -I/usr/openwin/include -I/usr/sfw/include
-I/usr/sfw/include/freetype2 -I/usr/include/glib-2.0
-I/usr/lib/glib-2.0/include -c -o packet-ecatmb.lo packet-ecatmb.c
/opt/SUNWspro/bin/cc -DHAVE_CONFIG_H -I. -I../.. -I../..
-I/usr/local/include -I/usr/local/include
-DPLUGIN_DIR=\"/usr/local/lib/wireshark/plugins/0.99.7\" -D_U_= -g
-I/usr/local/include -mt -I/usr/include/gtk-2.0
-I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0
-I/usr/include/pango-1.0 -I/usr/openwin/include -I/usr/sfw/include
-I/usr/sfw/include/freetype2 -I/usr/include/glib-2.0
-I/usr/lib/glib-2.0/include -c packet-ecatmb.c -KPIC -DPIC -o
.libs/packet-ecatmb.o
"packet-ecatmb.c", line 291: improper member use: Control
Are you compiling with the latest version of plugins/ethercat/ecatmb.h?
What, for example, are the definitions of SoeHeaderControlUnion and
PETHERCAT_SOE_HEADER in that header? They should be
typedef union tSoeHeaderControlUnion
{
struct
{
guint8 OpCode : 3; /* 0 = unused, 1 = readReq, 2 = readRes, 3
= writeReq, 4 = writeRes
5 = notification (command changed
notification)*/
guint8 InComplete : 1; /* more follows*/
guint8 Error : 1; /* an error word follows */
guint8 DriveNo : 3; /* drive number */
guint8 DataState : 1; /* follows or requested */
guint8 Name : 1; /* follows or requested */
guint8 Attribute : 1; /* follows or requested */
guint8 Unit : 1; /* follows or requested */
guint8 Min : 1; /* follows or requested */
guint8 Max : 1; /* follows or requested */
guint8 Value : 1; /* follows or requested */
guint8 Reserved : 1;
} v;
struct
{
guint8 Control;
guint8 Element;
} v2;
} SoeHeaderControlUnion;
and
typedef struct TETHERCAT_SOE_HEADER
{
SoeHeaderControlUnion anSoeHeaderControlUnion;
SoeHeaderDataUnion anSoeHeaderDataUnion;
/* typedef union tMailBoxDataUnion
{
guint8 Data[] rest of mailbox data if (Error==0)
guint16 ErrorCode if (Error==1)
} MailBoxDataUnion;*/
} ETHERCAT_SOE_HEADER, *PETHERCAT_SOE_HEADER;