Ethereal-dev: Re: [ethereal-dev] Ethereal on SGI

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

From: Guy Harris <gharris@xxxxxxxxxxxx>
Date: Sat, 18 Sep 1999 11:25:42 -0700
>    Ethereal doesn't use RPATH (see ld(1) for shared library linking on all
>    platforms that support it (e.g. SGI IRIX, FreeBSD ELF, etc.), just
>    Solaris it appears.  Instead, ethereal recommends use of the
>    LD_LIBRARY_PATH hack which causes all sorts problems.
> 
>    On SGI IRIX this is -rpath to the linker, on Solaris -R, on FreeBSD ELF
>    --rpath, etc.

"--rpath" and LD_LIBRARY_PATH shouldn't be necessary on FreeBSD - the
run-time linker should be configured to search in the directory in which
libraries such as "-lgtk", "-lgdk", and "-lglib" live.  On my FreeBSD
3.2 box, it is; I don't have LD_LIBRARY_PATH set, but Ethereal manages
to find those libraries in "/usr/local/lib".

For IRIX, "autoconf" should be fixed to use "-rpath" (i.e., this isn't
specific to Ethereal).

>    __P not defined -- packet-snmp.c fails to build
>    (gcc version 2.95.1 19990816 (release), SGI IRIX 6.5.5f)
> 
>    SOLUTION:  Include gnuc.h -- it defines it

Does every system on which Ethereal can be built have "gnuc.h"?  (Note
that if Ethereal requires GCC, this is arguably a deficiency....)

If I try to compile

	% cat foo.c
	#include "gnuc.h"

on my FreeBSD system, I get:

	% gcc foo.c
	foo.c:1: gnuc.h: No such file or directory

so it appears that on at least one system on which Ethereal can be
built, there's no "gnuc.h".

> Problem #2:
> 
> 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
> In file included from packet-snmp.c:62:
> /usr/local/include/ucd-snmp/asn1.h:131: parse error before `__P'
> /usr/local/include/ucd-snmp/asn1.h:132: parse error before `__P'
> /usr/local/include/ucd-snmp/asn1.h:133: parse error before `__P'
> /usr/local/include/ucd-snmp/asn1.h:134: parse error before `__P'
> /usr/local/include/ucd-snmp/asn1.h:135: parse error before `__P'

That's a problem with the UCD SNMP library as installed on your system;
it shouldn't require that you include "gnuc.h" - either it should avoid
using "__P()" on systems that don't provide it, or it should declare
"__P()" itself.