Ethereal-dev: Re: [Ethereal-dev] Please test: shared libs

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: Sun, 8 Feb 2004 01:42:48 -0800
On Fri, Feb 06, 2004 at 03:42:23PM -0800, Guy Harris wrote:
> Let me (or somebody) test it on, at minimum, Mac OS X

It built, but when I tried to run Ethereal, I got

	dyld: /Users/guy/src/cmd/ethereal/.libs/lt-ethereal multiple
	    definitions of symbol _g_main_quit
	/usr/local/lib/ethereal/plugins/0.10.0a/asn1.so definition of
	    _g_main_quit
	/Users/guy/src/cmd/ethereal/wiretap/.libs/libwiretap.0.dylib(gmain.o)
	    definition of _g_main_quit
	Trace/BPT trap (core dumped)

where the stack trace is

	#0  0x8fe019e0 in __dyld_halt ()
	#1  0x8fe0aa8c in __dyld_multiply_defined_error ()
	#2  0x8fe0d3b8 in __dyld_link_library_module ()
	#3  0x8fe0c9b8 in __dyld_resolve_undefineds ()
	#4  0x8fe11760 in __dyld_link_in_need_modules ()
	#5  0x8fe113f4 in __dyld_bind_lazy_symbol_reference ()
	#6  0x8fe01620 in __dyld_stub_binding_helper_interface ()
	#7  0x002d6970 in main (argc=1, argv=0xbffffba4) at main.c:1964

probably crashing due to the multiple defines.

I don't have a shared version of -lgtk or -lglib - I don't know if this
is because the libtool that GLib and GTK+ 1.2.10 come with don't
understand Mac OS X or not.  This might mean that Ethereal, libwiretap,
and the asn.1 plugin are all statically linked with GTK+ and thus all
define their own versions of g_main_quit().

I'll have to see whether I can get GLib and GTK+ built as shared
libraries and see if it works.  (I can't guarantee that I will be able
to do that on Sunday; I *might* be able to do it during the week, but I
can't guarantee that either, so I can't guarantee that I'll be able to
show that this can be made to work by the end of the week.)

I *might* be able to try it with Solaris this week (although the same
risk might apply).