Ethereal-dev: Re: [Ethereal-dev] win32 compilation?

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

From: Matthijs Melchior <mmelchior@xxxxxxxxx>
Date: Thu, 01 May 2003 21:10:57 +0200
Guy Harris wrote:

On Thu, May 01, 2003 at 09:58:22AM -0400, Jason House wrote:
That seems to work much better, thanks for the quick fix. I still get the following set of warnings several times in a row:

../..\epan/except.h(98) : warning C4005: 'except_code' : macro
redefinition
       ../..\plugins/plugin_api.h(281) : see previous definition of
'except_code'
../..\epan/except.h(99) : warning C4005: 'except_group' : macro
redefinition
       ../..\plugins/plugin_api.h(282) : see previous definition of
'except_group'
../..\epan/except.h(100) : warning C4005: 'except_message' : macro
redefinition
       ../..\plugins/plugin_api.h(283) : see previous definition of
'except_message'
../..\epan/except.h(101) : warning C4005: 'except_data' : macro
redefinition
       ../..\plugins/plugin_api.h(284) : see previous definition of
'except_data'

That's bizarre.  except.h first declares "except_code()" as a function,
and then defines it as a macro.

I don't have time to look at that right now; if somebody else can figure
out whether it should be treated by its callers as a function or a
macro, and fix the plugin table stuff appropriately (if it should be
treated as a function, nuke the macro in except.h; if it should be
treated as a macro, nuke the entry for it in the plugin table), that'd
be appreciated.

The same might apply to except_group, except_message, and except_data.

Otherwise, I'll look at it later today; we should perhaps not release
0.9.12 until it's cleaned up.

_______________________________________________
Ethereal-dev mailing list
Ethereal-dev@xxxxxxxxxxxx
http://www.ethereal.com/mailman/listinfo/ethereal-dev
Yes, that's what I have thought this morning. Since the macro's define
a data access, not a function call, and they are undefined in except.c,
where there is a definition to go with the declaration in except.h,
I think we should leave this alone. In my win32 environment, WinNT with
VC++ 6 and nmake from the command line, the result after my 2 patches
works OK. This effectively does not touch the symbols in these macros.

I suspect this has something to do with portability and the possibility
that except.c may want another definition than its users get fron the .h
files.

My plugin that uses TRY, CATCH, RETHROW and ENDTRY now works OK on
both Linux and Win32.

--
Regards,
----------------------------------------------------------------  -o)
Matthijs Melchior                                       Maarssen  /\\
mmelchior@xxxxxxxxx          +31 346 570616          Netherlands _\_v
---------------------------------------------------------------- ----