Ethereal-dev: [Ethereal-dev] Re: Ethereal 0.9.16 Compile time problems in PA & IPF And IPF RUN

Note: This archive is from the project's previous web site, ethereal.com. This list is no longer active.

From: Guy Harris <guy@xxxxxxxxxxxx>
Date: Fri, 14 Nov 2003 00:17:18 -0800
On Fri, Nov 14, 2003 at 12:59:13PM +0530, Durai wrote:
>   In HPUX PA & IPF I have the some problems while build the Ethereal 0.9.16. After I resolve these problems, Ethereal 0.9.16 works fine in PA. But I have "core dumped" in IPF. I have attached the "PROBLEMS" in IPF.
> 
> Note: Ethereal 0.9.16 works fine in HPUX PA.   
> 
> Build steps:
> 
> $ ./configure --prefix=/usr/local/ethereal --with-zlib --with-pcap --with-adns --enable-static --enable-shared --enable-ethereal  --with-libiconv --with-ssl --without-net-snmp --without-ucd-snmp --enable-ipv6 
> $ gmake
> $ gmake install
> 
> 
> Edit Makefile, correct the ethereal_LDFLAGS and tethereal_LDFLAGS flags
> as shown in below.
> 
> #ethereal_LDFLAGS = -Wl,-static -all-static
> ethereal_LDFLAGS = -export-dynamic
> 
> #tethereal_LDFLAGS = -Wl,-static -all-static
> tethereal_LDFLAGS = -export-dynamic
> 
> Because "-static" flag are not linked in PA & IPF.
> Eg:
> 
> # cat >test.c
> main()
> {
> }
> # gcc -Wl,-static test.c
> ld: Unrecognized argument: -static
> Fatal error.
> collect2: ld returned 1 exit status
> # gcc -all-static  test.c
> cc1: unrecognized option `-all-static'

The "-Wl,-static" comes from libtool.  Perhaps the Ethereal tarballs
need to be built with a newer version of libtool.

> Problem 1:
> ----------
> 
> gcc -b +h acn.sl -o .libs/acn.sl  packet-acn.lo  -L/usr/local/lib -L/opt/iexpress/libpcap/lib -L/usr/lib -lc  +nodefaultrpath
> gcc: acn.sl: No such file or directory
> gcc: +nodefaultrpath: No such file or directory
> 
> Solution: 
> --------
> 
> #############################################################
> Edit libtool -> //Replace the gcc with ld flag. line number 522

Another libtool problem.

> Problem 2:
> ---------
> 
> gcc -DHAVE_CONFIG_H -I. -I. -I.  -I. -I./wiretap -I/usr/local/include -I/opt/iexpress/libpcap/include  -D_U_="__attribute__((unused))" -Wall -W -g -O2 -I/usr/local/include -I/usr/local/include/gtk-1.2 -I/usr/local/include/glib-1.2 -I/usr/local/lib/hpux32/glib/include -I/opt/iexpress/libpcap/include -c `test -f 'packet-ansi_a.c' || echo './'`packet-ansi_a.c
> cc1: warning: changing search order for system directory "/usr/local/include"
> cc1: warning:   as it has already been specified as a non-system directory
> packet-ansi_a.c:5959: conflicting types for `P_SID'
> /usr/include/sys/wait.h:175: previous declaration of `P_SID'
> gmake[2]: *** [packet-ansi_a.o] Error 1
> gmake[2]: Leaving directory `/disk1/release2/ethereal/0.9.16/Source/ethereal-0.9.16'
> 
> Solution: 
> --------
> 
> #############################################################
> vi packet-ansi_a.c, line 5959 comment the following variable.
> //P_SID,    /* SID */
> #############################################################

That doesn't work - the P_ values in that array are expected to have
particular values, as they're array indices.  Try, instead, the patch
I've attached.

> Problem 3:
> ----------
> 
> gcc "-D_U_=__attribute__((unused))" -Wall -W -g -O2 -I/usr/local/include -I/usr/local/include/gtk-1.2 -I/usr/local/include/glib-1.2 -I/usr/local/lib/glib/include -I/opt/iexpress/libpcap/include -Wl,+nodefaultrpath -o ethereal packet-aarp.o packet-acap.o packet-afp.o packet-afs.o packet-aim.o packet-ajp13.o packet-alcap.o packet-ans.o packet-ansi_a.o packet-ansi_637.o packet-ansi_683.o packet-ansi_map.o packet-aodv.o packet-arcnet.o packet-arp.o packet-asap.o packet-ascend.o packet-asf.o packet-atalk.o packet-atm.o packet-auto_rp.o packet-bacapp.o packet-bacnet.o packet-beep.o packet-bgp.o packet-bofl.o packet-bootp.o packet-bootparams.o packet-bpdu.o packet-brdwlk.o packet-bssap.o packet-bssgp.o packet-bvlc.o packet-cdp.o packet-cgmp.o packet-chdlc.o packet-cisco-oui.o packet-clearcase.o packet-clip.o packet-clnp.o packet-cops.o packet-cosine.o packet-cpha.o packet-cups.o packet-data.o packet-dccp.o packet-dcerpc.o packet-dcerpc-afs4int.o packet-dcerpc-atsvc.o packet-dcerpc-bossvr.o packet-dcerpc-browser.o packet-dcerpc-butc.o packet-dcerpc-cds_clerkserver.o packet-dcerpc-cds_solicit.o packet-dcerpc-conv.o packet-dcerpc-cprpc_server.o packet-dcerpc-dce122.o packet-dcerpc-dfs.o packet-dcerpc-dnsserver.o packet-dcerpc-drsuapi.o packet-dcerpc-dtsprovider.o packet-dcerpc-dtsstime_req.o packet-dcerpc-epm.o packet-dcerpc-fldb.o packet-dcerpc-ftserver.o packet-dcerpc-initshutdown.o packet-dcerpc-krb5rpc.o packet-dcerpc-lsa.o packet-dcerpc-lsa-ds.o packet-dcerpc-mapi.o packet-dcerpc-messenger.o packet-dcerpc-mgmt.o packet-dcerpc-ndr.o packet-dcerpc-netlogon.o packet-dcerpc-nspi.o packet-dcerpc-oxid.o packet-dcerpc-reg.o packet-dcerpc-remact.o packet-dcerpc-rep_proc.o packet-dcerpc-roverride.o packet-dcerpc-rpriv.o packet-dcerpc-rs_acct.o packet-dcerpc-rs_attr.o packet-dcerpc-rs_bind.o packet-dcerpc-rs_misc.o packet-dcerpc-rs_pgo.o packet-dcerpc-rs_repadm.o packet-dcerpc-rs_replist.o packet-dcerpc-rs_unix.o packet-dcerpc-rsec_login.o packet-dcerpc-samr.o packet-dcerpc-secidmap.o packet-dcerpc-spoolss.o packet-dcerpc-srvsvc.o packet-dcerpc-svcctl.o packet-dcerpc-tapi.o packet-dcerpc-tkn4int.o packet-dcerpc-ubikdisk.o packet-dcerpc-ubikvote.o packet-dcerpc-update.o packet-dcerpc-wkssvc.o packet-ddtp.o packet-dec-bpdu.o packet-dhcpv6.o packet-diameter.o packet-diffserv-mpls-common.o packet-distcc.o packet-dlsw.o packet-dns.o packet-dsi.o packet-dvmrp.o packet-eap.o packet-eapol.o packet-echo.o packet-edonkey.o packet-eigrp.o packet-enc.o packet-enip.o packet-esis.o packet-eth.o packet-etherip.o packet-ethertype.o packet-fc.o packet-fcct.o packet-fcdns.o packet-fcels.o packet-fcfcs.o packet-fcfzs.o packet-fcip.o packet-fclctl.o packet-fcp.o packet-fcsb3.o packet-fcsp.o packet-fcswils.o packet-fddi.o packet-fix.o packet-fr.o packet-frame.o packet-ftp.o packet-fw1.o packet-giop.o packet-gmrp.o packet-gnutella.o packet-gprs-ns.o packet-gre.o packet-gsm_a.o packet-gsm_sms.o packet-gssapi.o packet-gtp.o packet-gvrp.o packet-h1.o packet-h225.o packet-h245.o packet-h261.o packet-h263.o packet-h450.o packet-hclnfsd.o packet-hpext.o packet-hsrp.o packet-http.o packet-hyperscsi.o packet-iapp.o packet-ib.o packet-icap.o packet-icmpv6.o packet-icp.o packet-icq.o packet-ieee80211.o packet-ieee8023.o packet-igmp.o packet-igrp.o packet-imap.o packet-ip.o packet-ipfc.o packet-ipmi.o packet-ipp.o packet-ipsec.o packet-ipsec-udp.o packet-ipv6.o packet-ipx.o packet-ipxwan.o packet-irc.o packet-isakmp.o packet-iscsi.o packet-isdn.o packet-isis.o packet-isis-clv.o packet-isis-hello.o packet-isis-lsp.o packet-isis-snp.o packet-isl.o packet-isns.o packet-isup.o packet-iua.o packet-jabber.o packet-kadm5.o packet-kerberos.o packet-klm.o packet-l2tp.o packet-lapb.o packet-lapbether.o packet-lapd.o packet-laplink.o packet-ldap.o packet-ldp.o packet-llc.o packet-lmi.o packet-lmp.o packet-lpd.o packet-lwapp.o packet-m2pa.o packet-m2tp.o packet-m2ua.o packet-m3ua.o packet-mbtcp.o packet-mdshdr.o packet-mip.o packet-mip6.o packet-mmse.o packet-mount.o packet-mpeg1.o packet-mpls.o packet-mrdisc.o packet-msdp.o packet-msn-messenger.o packet-msnip.o packet-msproxy.o packet-mtp2.o packet-mtp3.o packet-mtp3mg.o packet-mysql.o packet-nbipx.o packet-nbns.o packet-ncp.o packet-ncp2222.o packet-ndmp.o packet-ndps.o packet-netbios.o packet-netflow.o packet-nfs.o packet-nfsacl.o packet-nfsauth.o packet-nisplus.o packet-nlm.o packet-nlsp.o packet-nntp.o packet-nt-oui.o packet-nt-sonmp.o packet-nt-tpcp.o packet-ntlmssp.o packet-ntp.o packet-null.o packet-osi.o packet-osi-options.o packet-ospf.o packet-pcnfsd.o packet-per.o packet-pflog.o packet-pgm.o packet-pim.o packet-pop.o packet-portmap.o packet-ppp.o packet-pppoe.o packet-pptp.o packet-prism.o packet-q2931.o packet-q931.o packet-q933.o packet-qllc.o packet-quake.o packet-quake2.o packet-quake3.o packet-quakeworld.o packet-radius.o packet-ranap.o packet-raw.o packet-rip.o packet-ripng.o packet-rlogin.o packet-rmcp.o packet-rmi.o packet-rmp.o packet-rpc.o packet-rpl.o packet-rquota.o packet-rsh.o packet-rstat.o packet-rsvp.o packet-rsync.o packet-rtcp.o packet-rtp.o packet-rtp-events.o packet-rtsp.o packet-rwall.o packet-rx.o packet-sadmind.o packet-sap.o packet-sccp.o packet-sccpmg.o packet-scsi.o packet-sctp.o packet-sdlc.o packet-sdp.o packet-sflow.o packet-sip.o packet-skinny.o packet-slimp3.o packet-sll.o packet-slowprotocols.o packet-smb.o packet-smb-browse.o packet-smb-common.o packet-smb-logon.o packet-smb-mailslot.o packet-smb-pipe.o packet-smb-sidsnooping.o packet-smpp.o packet-smtp.o packet-sna.o packet-snaeth.o packet-snmp.o packet-socks.o packet-spnego.o packet-spray.o packet-srvloc.o packet-sscop.o packet-ssh.o packet-ssl.o packet-stat.o packet-stat-notify.o packet-stun.o packet-sua.o packet-syslog.o packet-t38.o packet-tacacs.o packet-tcap.o packet-tcp.o packet-tds.o packet-telnet.o packet-teredo.o packet-tftp.o packet-time.o packet-tns.o packet-tpkt.o packet-tr.o packet-trmac.o packet-tsp.o packet-tzsp.o packet-ucp.o packet-udp.o packet-v120.o packet-vines.o packet-vj.o packet-vlan.o packet-vrrp.o packet-vtp.o packet-wap.o packet-wbxml.o packet-wccp.o packet-wcp.o packet-wfleet-hdlc.o packet-who.o packet-wlancap.o packet-wsp.o packet-wtls.o packet-wtp.o packet-x11.o packet-x25.o packet-x29.o packet-xdmcp.o packet-xot.o packet-xyplex.o packet-yhoo.o packet-ymsg.o packet-ypbind.o packet-yppasswd.o packet-ypserv.o packet-ypxfr.o packet-zebra.o adler32.o afn.o asn1.o capture_stop_conditions.o cfile.o column.o conditions.o crc32.o crypt-des.o crypt-md4.o crypt-md5.o crypt-rc4.o disabled_protos.o follow.o g711.o in_cksum.o ipproto.o packet-dcerpc-nt.o pcap-util.o pcap-util-unix.o prefs.o print.o ps.o ptvcursor.o reassemble.o ringbuffer.o t35.o tap.o timestats.o util.o xdlc.o xmlstub.o register.o capture.o file.o filters.o proto_hier_stats.o summary.o strptime.o plugins/acn/packet-acn.o plugins/artnet/packet-artnet.o plugins/asn1/packet-asn1.o plugins/docsis/packet-bpkmattr.o plugins/docsis/packet-bpkmreq.o plugins/docsis/packet-bpkmrsp.o plugins/docsis/packet-docsis.o plugins/docsis/packet-dsaack.o plugins/docsis/packet-dsareq.o plugins/docsis/packet-dsarsp.o plugins/docsis/packet-dscack.o plugins/docsis/packet-dscreq.o plugins/docsis/packet-dscrsp.o plugins/docsis/packet-dsdreq.o plugins/docsis/packet-dsdrsp.o plugins/docsis/packet-macmgmt.o plugins/docsis/packet-map.o plugins/docsis/packet-regack.o plugins/docsis/packet-regreq.o plugins/docsis/packet-regrsp.o plugins/docsis/packet-rngreq.o plugins/docsis/packet-rngrsp.o plugins/docsis/packet-tlv.o plugins/docsis/packet-uccreq.o plugins/docsis/packet-uccrsp.o plugins/docsis/packet-ucd.o plugins/giop/packet-cosnaming.o plugins/giop/packet-coseventcomm.o plugins/gryphon/packet-gryphon.o plugins/lwres/packet-lwres.o plugins/megaco/packet-megaco.o plugins/mgcp/packet-mgcp.o plugins/pcli/packet-pcli.o plugins/rtnet/packet-rtnet.o -Wl,-E  -L/usr/local/lib -L/opt/iexpress/libpcap/lib -L/usr/lib wiretap/libwiretap.a gtk/libui.a epan/libethereal.a epan/ftypes/libftypes.a epan/dfilter/libdfilter.a -lcrypto -lpcap /usr/local/lib/libgtk.a /usr/local/lib/libgdk.a /usr/local/lib/libgmodule.a /usr/local/lib/libglib.a /usr/local/lib/libintl.a /usr/local/lib/libiconv.a -lXext -lX11 -lm -ladns -lz
> /usr/ccs/bin/ld: Duplicate symbol "plugin_init" in files plugins/asn1/packet-asn1.o and plugins/gryphon/packet-gryphon.o
> /usr/ccs/bin/ld: Duplicate symbol "plugin_reg_handoff" in files plugins/asn1/packet-asn1.o and plugins/gryphon/packet-gryphon.o
> /usr/ccs/bin/ld: Found 2 duplicate symbol(s)
> collect2: ld returned 1 exit status
> gmake[2]: *** [ethereal] Error 1
> gmake[2]: Leaving directory `/disk1/release2/ethereal/0.9.16/Source/ethereal-0.9.16'
> gmake[1]: *** [all-recursive] Error 1
> gmake[1]: Leaving directory `/disk1/release2/ethereal/0.9.16/Source/ethereal-0.9.16'
> gmake: *** [all] Error 2

A fix has been checked in for that.  It's in the attached patch, along
with the other fix.

> # ./ethereal
> 
> ** WARNING **: The plugin acn.so has no version symbol
> 
> ** ERROR **: file proto.c: line 2095 (proto_register_protocol): assertion failed: (g_list_find_custom(protocols, name, proto_match_name) == NULL)
> aborting...
> Abort(coredump)

What's the stack trace for that core dump?
Index: packet-ansi_a.c
===================================================================
RCS file: /usr/local/cvsroot/ethereal/packet-ansi_a.c,v
retrieving revision 1.7
retrieving revision 1.8
diff -c -r1.7 -r1.8
*** packet-ansi_a.c	10 Nov 2003 20:15:28 -0000	1.7
--- packet-ansi_a.c	10 Nov 2003 22:31:06 -0000	1.8
***************
*** 5939,5945 ****
      P_SO_LIST,	/* Service Option List */
      P_S_RED_INFO,	/* Service Redirection Info */
      P_SR_ID,	/* Session Reference Identifier (SR_ID) */
!     P_SID,	/* SID */
      P_SIGNAL,	/* Signal */
      P_SCI,	/* Slot Cycle Index */
      P_SW_VER,	/* Software Version */
--- 5939,5945 ----
      P_SO_LIST,	/* Service Option List */
      P_S_RED_INFO,	/* Service Redirection Info */
      P_SR_ID,	/* Session Reference Identifier (SR_ID) */
!     P_MY_SID,	/* SID (P_SID collides with something you get when you include <stdlib.h> on HP-UX and Tru64 UNIX) */
      P_SIGNAL,	/* Signal */
      P_SCI,	/* Slot Cycle Index */
      P_SW_VER,	/* Software Version */
***************
*** 7469,7475 ****
  
      ELEM_OPT_TLV(P_HO_POW_LEV, "");
  
!     ELEM_OPT_TV(P_SID, "");
  
      ELEM_OPT_TLV(P_EXT_HO_DIR_PARAMS, "");
  
--- 7469,7475 ----
  
      ELEM_OPT_TLV(P_HO_POW_LEV, "");
  
!     ELEM_OPT_TV(P_MY_SID, "");
  
      ELEM_OPT_TLV(P_EXT_HO_DIR_PARAMS, "");
  

Index: plugins/asn1/packet-asn1.c
===================================================================
RCS file: /usr/local/cvsroot/ethereal/plugins/asn1/packet-asn1.c,v
retrieving revision 1.8
retrieving revision 1.9
diff -c -r1.8 -r1.9
*** plugins/asn1/packet-asn1.c	4 Nov 2003 16:44:25 -0000	1.8
--- plugins/asn1/packet-asn1.c	4 Nov 2003 18:37:30 -0000	1.9
***************
*** 4771,4777 ****
  
  /* Start the functions we need for the plugin stuff */
  
! #ifndef __ETHEREAL_STATIC__
  
  G_MODULE_EXPORT void
  plugin_reg_handoff(void){
--- 4771,4777 ----
  
  /* Start the functions we need for the plugin stuff */
  
! #ifndef ENABLE_STATIC
  
  G_MODULE_EXPORT void
  plugin_reg_handoff(void){

Index: plugins/gryphon/packet-gryphon.c
===================================================================
RCS file: /usr/local/cvsroot/ethereal/plugins/gryphon/packet-gryphon.c,v
retrieving revision 1.42
retrieving revision 1.43
diff -c -r1.42 -r1.43
*** plugins/gryphon/packet-gryphon.c	6 Oct 2003 15:41:53 -0000	1.42
--- plugins/gryphon/packet-gryphon.c	4 Nov 2003 18:37:32 -0000	1.43
***************
*** 2290,2295 ****
--- 2290,2298 ----
  }
  
  /* Start the functions we need for the plugin stuff */
+ 
+ #ifndef ENABLE_STATIC
+ 
  G_MODULE_EXPORT void
  plugin_reg_handoff(void){
    proto_reg_handoff_gryphon();
***************
*** 2308,2311 ****
--- 2311,2317 ----
      proto_register_gryphon();
    }
  }
+ 
+ #endif
+ 
  /* End the functions we need for plugin stuff */