From Xiao Xiangquan:
[obnox/wireshark/wip.git] / README.irix
1 $Id$
2
3 1. Some problems seen by one person who tried to build Ethereal on IRIX;
4 your mileage may vary.  Some comments have been added.
5
6 To: ethereal-dev@zing.org
7 Subject: Re: [ethereal-dev] Ethereal on SGI
8 From: Randall Hopper <aa8vb@yahoo.com>
9 Date: Sat, 18 Sep 1999 12:19:31 -0400
10
11  |>      Just tried to build ethereal on SGI IRIX.  configure failed because
12  |> there is no net/bpf.h.
13
14 Thanks for all the help.  I pulled the latest today (0.7.3), and after a
15 few fix-ups, I got it built.  Here are the tweaks I needed to build it for
16 SGI IRIX 6.5 using gcc.
17
18 ==========
19 PROBLEM #1
20 ==========
21
22    Ethereal doesn't use RPATH (see ld(1) for shared library linking on all
23    platforms that support it (e.g. SGI IRIX, FreeBSD ELF, etc.), just
24    Solaris it appears.  Instead, ethereal recommends use of the
25    LD_LIBRARY_PATH hack which causes all sorts problems.
26
27    On SGI IRIX this is -rpath to the linker, on Solaris -R, on FreeBSD ELF
28    --rpath, etc.
29
30    SOLUTION: Slip in my linker flags when configuring ethereal so it can
31              find libgtk, libgmodule, libsnmp, etc. at run-time without
32              LD_LIBRARY_PATH:
33
34    env LDFLAGS="-rpath $HOME/software/gtk+-1.2.3/lib:$HOME/software/glib-1.2.3/lib:/usr/local/lib" configure --prefix=$HOME/software/ethereal-0.7.3 --with-gtk-prefix=$HOME/software/gtk+-1.2.3
35
36    BETTER SOLUTION:  Modify configure to support RPATH for more platforms
37                      than Solaris.
38
39 [NOTE: configure is generated from configure.in and acinclude.m4, and
40 all the linking stuff is done by libtool.  We don't recommend the
41 LD_LIBRARY_PATH hack - perhaps we did so in the past, but we don't do so
42 now.]
43
44 ==========
45 PROBLEM #2
46 ==========
47
48    __P not defined -- packet-snmp.c fails to build
49    (gcc version 2.95.1 19990816 (release), SGI IRIX 6.5.5f)
50
51    SOLUTION:  Include gnuc.h -- it defines it
52
53    --- ORIG/packet-snmp.c  Mon Aug 30 11:10:17 1999
54    +++ packet-snmp.c       Sat Sep 18 11:35:45 1999
55    @@ -25,4 +25,6 @@
56      */
57
58    +#include "gnuc.h"
59    +
60     #ifdef HAVE_CONFIG_H
61     # include "config.h"
62
63 Randall
64
65 [NOTE: we don't use the __P macro ourselves; some of the SNMP libraries
66 might, but that's a bug in the libraries if they require you to define
67 __P in order to use them.]
68
69 ===============================================================================
70
71 Problem #1:
72
73 checking for GTK - version >= 1.2.0... 186062:./conftest: rld: Fatal Error: Cannot Successfully map soname 'libgtk-1.2.so.1' under any of the filenames /usr/lib32/libgtk-1.2.so.1:/usr/lib32/internal/libgtk-1.2.so.1:/lib32/libgtk-1.2.so.1:/opt/lib32/libgtk
74 no
75 *** Could not run GTK test program, checking why...
76 *** The test program compiled, but did not run. This usually means
77 *** that the run-time linker is not finding GTK or finding the wrong
78 *** version of GTK. If it is not finding GTK, you'll need to set your
79 *** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point
80 *** to the installed location  Also, make sure you have run ldconfig if that
81 *** is required on your system
82 ***
83 *** If you have an old version installed, it is best to remove it, although
84 *** you may also be able to get things to work by modifying LD_LIBRARY_PATH
85 ***
86 *** If you have a RedHat 5.0 system, you should remove the GTK package that
87 *** came with the system with the command
88 ***
89 ***    rpm --erase --nodeps gtk gtk-devel
90 configure: error: GTK+ distribution not found.
91
92 ==============================================================================
93
94 Problem #2:
95
96 gcc -DHAVE_CONFIG_H -I. -I. -I.     -Wall -g -O2 -Iwiretap -I/home/rhh/software/gtk+-1.2.3/include -I/home/rhh/software/glib-1.2.3/lib/glib/include -I/home/rhh/software/glib-1.2.3/include -c packet-snmp.c
97 In file included from packet-snmp.c:62:
98 /usr/local/include/ucd-snmp/asn1.h:131: parse error before `__P'
99 /usr/local/include/ucd-snmp/asn1.h:132: parse error before `__P'
100 /usr/local/include/ucd-snmp/asn1.h:133: parse error before `__P'
101 /usr/local/include/ucd-snmp/asn1.h:134: parse error before `__P'
102 /usr/local/include/ucd-snmp/asn1.h:135: parse error before `__P'
103 ...
104 packet-snmp.c: In function `dissect_snmp':
105 packet-snmp.c:344: warning: implicit declaration of function `asn_parse_header'
106 packet-snmp.c:358: warning: implicit declaration of function `snmp_comstr_parse'
107 packet-snmp.c:358: warning: assignment makes pointer from integer without a cast
108 packet-snmp.c:407: warning: assignment makes pointer from integer without a cast
109 ...
110 packet-snmp.c: In function `proto_register_snmp':
111 packet-snmp.c:869: warning: implicit declaration of function `init_mib'
112 gmake[2]: *** [packet-snmp.o] Error 1
113 gmake[2]: Leaving directory `/home/rhh/software/PKGS/t/ethereal-0.7.3'
114 gmake[1]: *** [all-recursive] Error 1
115 gmake[1]: Leaving directory `/home/rhh/software/PKGS/t/ethereal-0.7.3'
116 gmake: *** [all-recursive-am] Error 2
117
118 -------------------------------------------------------------------------------
119
120 Problem #3 (same as Problem #1):
121
122 > ./ethereal 
123 189684:./ethereal: rld: Fatal Error: Cannot Successfully map soname 'libsnmp.so' under any of the filenames /home/rhh/software/gtk+-1.2.3/lib/libsnmp.so:/home/rhh/software/glib-1.2.3/lib/libsnmp.so:/usr/lib32/libsnmp.so:/usr/lib32/internal/libsnmp.so:/lib32/libsnmp.so:/opt/lib32/libsnmp.so: 
124
125 2. Patches to libpcap that may be necessary
126
127 On IRIX, older versions of the libpcap library use, in
128 "pcap_open_live()", the snapshot length passed in, without reducing it
129 to be less than or equal to the MTU of the interface.  If the snapshot
130 length is larger than the interface MTU, IRIX will return an error; this
131 means that, for example, the Wireshark default snapshot length of 65535,
132 chosen so that all of the packet is captured, will not work.
133
134 Current versions of libpcap, from tcpdump.org, do not do so.