Wireshark mailing list archives

Re: Simpifying exporting DLL symbols


From: Bálint Réczey <balint () balintreczey hu>
Date: Tue, 26 Feb 2013 23:08:04 +0100

Hi Guy,

2013/2/26 Guy Harris <guy () alum mit edu>:

On Feb 26, 2013, at 11:46 AM, Bálint Réczey <balint () balintreczey hu> wrote:

I have created the attached patch to control symbol visibility using
C defines instead of .def and .sym files.

You might want to use comments on #else and #endif to make it a bit easier to figure out what #else is the opposite 
of and what #endif terminates.
I have updated the patch with the suggested comments.


It is expected to work on every platform and every build system we support,

"Work" as in "not fail to compile", or "work" as in "keep symbols from being exported outside the library if not 
marked as being exported by the library"?
I would target compiling on every platform first, but in thecases
I have tested only the intended symbols got exported. :-)
I also had to add more symbols to the list, because tshark
did not compile without them.


At least some UN*X compilers might support GCC-style __attribute__(visibility(...)) options, but I don't know whether 
all the ones that would be used to compile Wireshark, on platforms where the linker can hide symbols, do.
I suggest hiding the symbols where we can hide them by improving
the WS_DLL_PUBLIC defines (i.e. where we can do it without relying on libtool).
Exporting all symbols when using more exotic compilers should not be and issue,
because plugins used on such exotic systems are probably compiled with
GCC >= 4.0, LLVM
or Visual Studio too, and this ensures using exported APIs.

Cheers,
Balint
___________________________________________________________________________
Sent via:    Wireshark-dev mailing list <wireshark-dev () wireshark org>
Archives:    http://www.wireshark.org/lists/wireshark-dev
Unsubscribe: https://wireshark.org/mailman/options/wireshark-dev
             mailto:wireshark-dev-request () wireshark org?subject=unsubscribe

Current thread: