Huge thanks to our Platinum Members Endace and LiveAction,
and our Silver Member Veeam, for supporting the Wireshark Foundation and project.

Wireshark-dev: [Wireshark-dev] Problems compiling on cygwin

From: "Graeme Lunt" <graeme.lunt@xxxxxxxxx>
Date: Sat, 17 Jun 2006 14:37:53 +0200
Hi,

I've just "svn swicth"ed from the ethereal to the wireshark trunk and am
having problems building wireshark under cygwin. (I re-ran autogen.sh and
configure with the same flags as before.)

But now I get the following error when compiling the plugins:

/bin/sh ../../libtool --tag=CC --mode=link gcc
-D_U_="__attribute__((unused))" -Wall -Wpointer-arith -W  -g -O2
-I/usr/local/include -DXTHREADS -DXUSE_MTSAFE_API -D_REENTRANT
-I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/X11R6/include
-I/usr/include/atk-1.0 -I/usr/include/pango-1.0 -I/usr/include/freetype2
-I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include    -no-undefined
-L/usr/local/lib -L/usr/local/lib -o acn.la -rpath
/usr/local/lib/wireshark/plugins/1.1.0 -module -avoid-version plugin.lo
packet-acn.lo  -L../../epan -lwireshark -Wl,--export-dynamic -lgmodule-2.0
-lglib-2.0 -lintl -liconv   
rm -fr  .libs/acn.dll.a
gcc -shared  .libs/plugin.o .libs/packet-acn.o  -L/usr/local/lib
/cygdrive/c/ethereal/epan/.libs/libwireshark.dll.a -L/usr/lib
/usr/lib/libgmodule-2.0.dll.a /usr/lib/libglib-2.0.dll.a
/usr/lib/libintl.dll.a /usr/lib/libiconv.dll.a  -Wl,--export-dynamic -o
.libs/acn.dll -Wl,--enable-auto-image-base -Xlinker --out-implib -Xlinker
.libs/acn.dll.a
Creating library file: .libs/acn.dll.a
.libs/packet-acn.o: In function `dissect_pdu':
/cygdrive/c/ethereal/plugins/acn/packet-acn.c:667: undefined reference to
`_proto_tree_add_item'
/cygdrive/c/ethereal/plugins/acn/packet-acn.c:674: undefined reference to
`_proto_item_add_subtree'
/cygdrive/c/ethereal/plugins/acn/packet-acn.c:676: undefined reference to
`_tvb_get_guint8'
/cygdrive/c/ethereal/plugins/acn/packet-acn.c:677: undefined reference to
`_proto_tree_add_uint'
/cygdrive/c/ethereal/plugins/acn/packet-acn.c:680: undefined reference to
`_proto_item_add_subtree'
/cygdrive/c/ethereal/plugins/acn/packet-acn.c:682: undefined reference to
`_proto_tree_add_item'
/cygdrive/c/ethereal/plugins/acn/packet-acn.c:683: undefined reference to
`_proto_tree_add_item'
/cygdrive/c/ethereal/plugins/acn/packet-acn.c:684: undefined reference to
`_proto_tree_add_item'
/cygdrive/c/ethereal/plugins/acn/packet-acn.c:685: undefined reference to
`_proto_tree_add_item'
/cygdrive/c/ethereal/plugins/acn/packet-acn.c:686: undefined reference to
`_proto_tree_add_item'
...

Looking a little deeper I see that epan/.libs/libwireshark.dll.a is much
smaller than the ethereal equivalent (2K vs 2.5M). The cyg*.dll files are
equivalent size though.

This is how libwireshark.dll.a was built with libtool:

/bin/sh ../libtool --tag=CC --mode=link gcc  -D_U_="__attribute__((unused))"
-Wall -Wpointer-arith -W  -g -O2 -I/usr/local/include -DXTHREADS
-DXUSE_MTSAFE_API -D_REENTRANT -I/usr/include/gtk-2.0
-I/usr/lib/gtk-2.0/include -I/usr/X11R6/include -I/usr/include/atk-1.0
-I/usr/include/pango-1.0 -I/usr/include/freetype2 -I/usr/include/glib-2.0
-I/usr/lib/glib-2.0/include    -no-undefined -L/usr/local/lib
-L/usr/local/lib -o libwireshark.la -rpath /usr/local/lib -version-info
0:1:0 addr_and_mask.lo addr_resolv.lo adler32.lo afn.lo asn1.lo
atalk-utils.lo base64.lo bitswap.lo charsets.lo circuit.lo column.lo
column-utils.lo conversation.lo crc16.lo crc32.lo crypt-des.lo crypt-md4.lo
crypt-md5.lo crypt-rc4.lo dtd_grammar.lo dtd_parse.lo dtd_preparse.lo
emem.lo epan.lo ex-opt.lo except.lo expert.lo filesystem.lo follow.lo
frame_data.lo funnel.lo h225-persistentdata.lo in_cksum.lo ipproto.lo
ipv4.lo next_tvb.lo nstime.lo oid_resolv.lo osi-utils.lo packet.lo
plugins.lo prefs.lo privileges.lo proto.lo radius_dict.lo range.lo
reassemble.lo req_resp_hdrs.lo sha1.lo sigcomp_state_hdlr.lo sigcomp-udvm.lo
sminmpec.lo sna-utils.lo stat_cmd_args.lo stats_tree.lo strutil.lo stream.lo
t35.lo tap.lo timestamp.lo to_str.lo tvbparse.lo tvbuff.lo value_string.lo
xdlc.lo xmlstub.lo  inet_pton.lo  dfilter/libdfilter.la ftypes/libftypes.la
dissectors/libdissectors.la      -lm -lz 
rm -fr  .libs/libwireshark.dll.a .libs/libwireshark.la
.libs/libwireshark.lai
gcc -shared  .libs/addr_and_mask.o .libs/addr_resolv.o .libs/adler32.o
.libs/afn.o .libs/asn1.o .libs/atalk-utils.o .libs/base64.o .libs/bitswap.o
.libs/charsets.o .libs/circuit.o .libs/column.o .libs/column-utils.o
.libs/conversation.o .libs/crc16.o .libs/crc32.o .libs/crypt-des.o
.libs/crypt-md4.o .libs/crypt-md5.o .libs/crypt-rc4.o .libs/dtd_grammar.o
.libs/dtd_parse.o .libs/dtd_preparse.o .libs/emem.o .libs/epan.o
.libs/ex-opt.o .libs/except.o .libs/expert.o .libs/filesystem.o
.libs/follow.o .libs/frame_data.o .libs/funnel.o .libs/h225-persistentdata.o
.libs/in_cksum.o .libs/ipproto.o .libs/ipv4.o .libs/next_tvb.o
.libs/nstime.o .libs/oid_resolv.o .libs/osi-utils.o .libs/packet.o
.libs/plugins.o .libs/prefs.o .libs/privileges.o .libs/proto.o
.libs/radius_dict.o .libs/range.o .libs/reassemble.o .libs/req_resp_hdrs.o
.libs/sha1.o .libs/sigcomp_state_hdlr.o .libs/sigcomp-udvm.o
.libs/sminmpec.o .libs/sna-utils.o .libs/stat_cmd_args.o .libs/stats_tree.o
.libs/strutil.o .libs/stream.o .libs/t35.o .libs/tap.o .libs/timestamp.o
.libs/to_str.o .libs/tvbparse.o .libs/tvbuff.o .libs/value_string.o
.libs/xdlc.o .libs/xmlstub.o .libs/inet_pton.o -Wl,--whole-archive
dfilter/.libs/libdfilter.a ftypes/.libs/libftypes.a
dissectors/.libs/libdissectors.a -Wl,--no-whole-archive  -L/usr/local/lib
/usr/lib/libgmodule-2.0.dll.a -L/usr/lib /usr/lib/libglib-2.0.dll.a
/usr/lib/libintl.dll.a /usr/lib/libiconv.dll.a /usr/lib/libpcre.dll.a -lz
-o .libs/cygwireshark-0.dll -Wl,--enable-auto-image-base -Xlinker
--out-implib -Xlinker .libs/libwireshark.dll.a

Can anybody give me any pointers?

Thanks,

Graeme