Ethereal-dev: RE: [Ethereal-dev] Missing p_report_failure

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

From: Biot Olivier <Olivier.Biot@xxxxxxxxxxx>
Date: Mon, 26 Apr 2004 13:13:44 +0200
|From: Lars Roland
|
|Olivier Biot wrote:
|> From: Guy Harris
|> 
|> | Speaking of Windows builds:
|> |
|> | 1) For MSVC++ builds, can we get rid of the plugin API table by
|> |    just having libethereal export the functions in question and
|> |    linking the plugins against libethereal (or a .lib for
|> |    libethereal)?
|> 
|
|The plugins export functions, too. If we make libethereal just 
|exporting 
|the necessary functions and make the plugins link with libethereal via 
|an import library, we will have to find a way to make formerly 
|exported 
|functions of the plugins available to libethereal.
|
|Because MSVC doesn't allow to build a non self contained dll 
|you cannot 
|easily create two libraries with each of them having 
|dependencies on the 
|other. :(
|
|> That was the way it has been done in order to make Ethereal build
|> *with plugins* in a cygwin environment (with all the required
|> autotools).
|> 
|Are you sure that cygwin builds without the plugin api table?

I had to add libethereal to the plugin libraries in order to generate the
plugin dissectors on cygwin. I interpret this as: cygwin *doesn't* need the
plugin API table (as all missing symbols are contained within libethereal
which is explicitly required in the linkage in order to build on cygwin!).

See the PLUGIN_LIBS macro in the plugin dissector's Makefile.am files, and
the top-level configure.in with the defintion of the PLUGIN_DIR macro:

	PLUGIN_LIBS="-L../../epan -lethereal $GLIB_LIBS"
	AC_SUBST(PLUGIN_LIBS)

As I didn't hear of broken builds since I changed the plugin LIBADD value, I
even suppose we *no longer* need the plugin API table *at all*.

Maybe I am wrong in my interpretation, but I must admit that all the linking
magic is not really my specialty. For instance, I have no clue on how to
disable the generation and usage of the plugin API table in the generation
of the plugin dissectors (neither in *NIX with autotools, nor in native
MSWin with MSVC++ 6).

I think it would be valuable to modify the MSVC++ Makefile.nmake files so
the plugin dissector are linked with libethereal and not anymore with the
plugin API. As I am not a MSVC++ connoisseur (I only run the nmake from the
command-line and am happy when everything runs smoothly) I invite anyone who
knows how to perform the mentioned changes to give them a try and send
feed-back on ethereal-dev.

I wish you Good Luck and hope to hear Good News soon!

Regards,

Olivier