Wireshark mailing list archives
Re: Simpifying exporting DLL symbols
From: Bálint Réczey <balint () balintreczey hu>
Date: Sun, 3 Mar 2013 12:33:24 +0100
Hi All, I have committed the changes and all buildbots seem to be happy with them. From now on exporting a symbol from the shared library needs only WS_DLL_PUBLIC to be prepended to the function declaration: WS_DLL_PUBLIC gint get_column_char_width(const gint format); Currently all symbols are exported in builds using cc and Solaris Studio. I tried to fix that using but did not succeed. If someone works with those tools please try to fix that properly. Cheers, Balint 2013/2/27 Bálint Réczey <balint () balintreczey hu>:
Hi Guy, 2013/2/27 Guy Harris <guy () alum mit edu>:On Feb 26, 2013, at 2:08 PM, Bálint Réczey <balint () balintreczey hu> wrote: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.Does it ensure that plugins use only exported APIs on, for example: HP-UX, if Wireshark itself is compiled with aCC (as would be the case if the user got Wireshark from the HP-UX Porting and Archive Centre); AIX, if Wireshark itself is compiled with XLC?I think plugin writers should care about proper API usage. We offer them a broad range of systems where only the supported API symbols are exported thus they can test their plugins if they care about API changes. With the Solaris Studio related changes we will hide obsolete symbols on every platform we run buildbot on.Sun Studio 8 through Sun^WOracle Solaris Studio 12 appear to support __hidden as a way of saying "not visible outside the library", __global as a way of saying "visible outside the library and references from within the library could bind to code in the application if the application defines it", and "-xldscope=hidden" to make __hidden the default, so that __global overrides it. That sounds as if it'd be what we'd want. It requires us to tweak compiler options when building libraries, but, well, any build-and-configuration tools that can't handle that are toys....I have just sent an updated patch which allows easy customization of such compiler parameters. I haven't added the one you mentioned because I don't build on Solaris, but adding it should now be really straightforward for anyone having access to {Sun|Oracle} Solaris Studio. 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:
- Re: Simpifying exporting DLL symbols Bálint Réczey (Mar 03)