Ethereal-users: [Ethereal-users] Problem building static version of Ethereal-0.8.12

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

From: Don Langbein <langbein@xxxxxxxxxx>
Date: Thu, 09 Nov 2000 18:52:27 -0500
I 'cd' to my ethereal source directory, then do  'make clean,' then
'./configure --prefix=$HOME,' which ran to completion with no errors,
then 'make ethereral_static.'  (For now I have the libpcap, libgtk+ and
libg libraries in my personal directory, which is why I type
'--prefix=$HOME' to configure.) Compile happens with no apparent
problem, but at link time I get lots of undefined references to
'_IO_stderr' and a few also to '_IO_stdin" and _IO_stdout.'  The sources
of these messages are mostly C library 'fprintf' calls referencing
'stderr,' or 'stdout.'.  Using  the 'nm' program I learn that These are
defined in /usr/libc.a (in module stdfiles.o). (Could they also be
defined in some other library?)  Why libc (or maybe another library with
proper definitions) is not getting scanned I do not know.  I am trying
to uderstand how the Makefile works, but I'm finding it slow going.  (A
few attempts to hip-shoot Makefile changes without really understanding
what is going on have  failed.)

More: the dynamic version of ethereal-0.8.12 compiles and runs just
fine.  My build process is as above except that I do just 'make' (or
sometimes 'make ethereal') instead of 'make ethereal_static.)

In the interest  of full disclosure I will mention that I have added
some dissectors for some special packet types used internally in a
product here.  These dissectors seem to work fine in the dynamic
version.  The problem with ethereal_static seems totally unrelated to
the new dissectors.

Our environment here is Red Hat Linux  release 5.2, kernal 2.0.36.

A related question:  in the ethereal Makefile I see the definition,

        ethereal_LDADD = \
            $(ethereal_optional_objects)   \
            $(ethereal_additional-libs)  \
                                        \
            "-dlopen" self  \
            "-dlopen" plugins /gryphon/gryphon.la -lpcap
-L/users/langbein/lib -L/users/Xll . . .(some other stuff)

What exactly is '"-dlopen" self?'  For starters, which program reads it
and processes it?    I can't seem to find that syntax as either a loader
command line option or a Make command.  I'm obviously off in the weeds!

Any help will be appreciated.  Thanks in advance.

Don Langbein