From 5d87a8c46171f572568db5a47c093423482e342f Mon Sep 17 00:00:00 2001 From: Guy Harris Date: Wed, 3 Jul 2013 01:43:39 +0000 Subject: WS_DLL_PUBLIC is now always WS_DLL_PUBLIC_NOEXTERN with "extern" added; just define WS_DLL_PUBLIC_NOEXTERN inside the ifdefs, and define WS_DLL_PUBLIC as WS_DLL_PUBLIC_NOEXTERN followed by "extern". Then rename WS_DLL_PUBLIC_NOEXTERN to WS_DLL_PUBLIC_DEF, to clarify that it's what should be used for definitions; at least on Windows, you *have* to use it when declaring arrays without a size, and, whilst you might be able to use WS_DLL_PUBLIC for definitions of functions and perhaps data definitions other than no-size arrays, it might be clearer to rename WS_DLL_PUBLIC to WS_DLL_PUBLIC_DECL and use it only for declarations. svn path=/trunk/; revision=50334 --- doc/README.plugins | 2 +- doc/README.stats_tree | 4 ++-- docbook/wsdg_src/WSDG_chapter_dissection.xml | 4 ++-- epan/follow.c | 2 +- plugins/easy_codec/easy_codec_plugin.c | 4 ++-- plugins/stats_tree/stats_tree_plugin.c | 4 ++-- plugins/tpg/packet-http.c | 6 ++--- tools/make-dissector-reg | 6 ++--- tools/make-dissector-reg.py | 8 +++---- tools/wireshark_gen.py | 4 ++-- ws_symbol_export.h | 34 ++++++++++++++-------------- 11 files changed, 39 insertions(+), 39 deletions(-) diff --git a/doc/README.plugins b/doc/README.plugins index e60179d9e8..3635629058 100644 --- a/doc/README.plugins +++ b/doc/README.plugins @@ -287,7 +287,7 @@ stips the parts outlined below: o Removed the definition: #ifndef ENABLE_STATIC - WS_DLL_PUBLIC_NOEXTERN gchar version[] = VERSION; + WS_DLL_PUBLIC_DEF gchar version[] = VERSION; #endif o Move relevant code from the blocks and delete these functions: diff --git a/doc/README.stats_tree b/doc/README.stats_tree index f20c642589..91090e0df2 100644 --- a/doc/README.stats_tree +++ b/doc/README.stats_tree @@ -110,9 +110,9 @@ extern int udp_term_stats_tree_packet(stats_tree *st, /* st as it was passed to } #ifndef ENABLE_STATIC -WS_DLL_PUBLIC_NOEXTERN const gchar version[] = "0.0"; +WS_DLL_PUBLIC_DEF const gchar version[] = "0.0"; -WS_DLL_PUBLIC_NOEXTERN void plugin_register_tap_listener(void) { +WS_DLL_PUBLIC_DEF void plugin_register_tap_listener(void) { stats_tree_register("udp", /* the proto we are going to "tap" */ "udp_terms", /* the abbreviation for this tree (to be used as -z udp_terms,tree) */ diff --git a/docbook/wsdg_src/WSDG_chapter_dissection.xml b/docbook/wsdg_src/WSDG_chapter_dissection.xml index efdda7829b..40b73bc537 100644 --- a/docbook/wsdg_src/WSDG_chapter_dissection.xml +++ b/docbook/wsdg_src/WSDG_chapter_dissection.xml @@ -1115,9 +1115,9 @@ static void register_foo_stat_trees(void) { foo_stats_tree_packet, foo_stats_tree_init, NULL); } -WS_DLL_PUBLIC_NOEXTERN const gchar version[] = "0.0"; +WS_DLL_PUBLIC_DEF const gchar version[] = "0.0"; -WS_DLL_PUBLIC_NOEXTERN void plugin_register_tap_listener(void) +WS_DLL_PUBLIC_DEF void plugin_register_tap_listener(void) { register_foo_stat_trees(); } diff --git a/epan/follow.c b/epan/follow.c index 0765201bb3..f4b156ce48 100644 --- a/epan/follow.c +++ b/epan/follow.c @@ -50,7 +50,7 @@ typedef struct _tcp_frag { struct _tcp_frag *next; } tcp_frag; -WS_DLL_PUBLIC_NOEXTERN +WS_DLL_PUBLIC_DEF FILE* data_out_file = NULL; gboolean empty_tcp_stream; diff --git a/plugins/easy_codec/easy_codec_plugin.c b/plugins/easy_codec/easy_codec_plugin.c index ac21f41da0..2e586787ce 100644 --- a/plugins/easy_codec/easy_codec_plugin.c +++ b/plugins/easy_codec/easy_codec_plugin.c @@ -37,9 +37,9 @@ #include "codec-g729a.h" #include "codec-g722.h" -WS_DLL_PUBLIC_NOEXTERN const gchar version[] = "0.0.1"; +WS_DLL_PUBLIC_DEF const gchar version[] = "0.0.1"; -WS_DLL_PUBLIC_NOEXTERN void register_codec_module(void) +WS_DLL_PUBLIC_DEF void register_codec_module(void) { register_codec("g723", codec_g7231_init, codec_g7231_release, codec_g7231_decode); register_codec("g729", codec_g729a_init, codec_g729a_release, codec_g729a_decode); diff --git a/plugins/stats_tree/stats_tree_plugin.c b/plugins/stats_tree/stats_tree_plugin.c index ff17819356..b25e8f91a9 100644 --- a/plugins/stats_tree/stats_tree_plugin.c +++ b/plugins/stats_tree/stats_tree_plugin.c @@ -36,9 +36,9 @@ #include "pinfo_stats_tree.h" -WS_DLL_PUBLIC_NOEXTERN const gchar version[] = "0.0.1"; +WS_DLL_PUBLIC_DEF const gchar version[] = "0.0.1"; -WS_DLL_PUBLIC_NOEXTERN void plugin_register_tap_listener(void) +WS_DLL_PUBLIC_DEF void plugin_register_tap_listener(void) { register_pinfo_stat_trees(); } diff --git a/plugins/tpg/packet-http.c b/plugins/tpg/packet-http.c index 841d453761..b15219892d 100644 --- a/plugins/tpg/packet-http.c +++ b/plugins/tpg/packet-http.c @@ -122,9 +122,9 @@ static void proto_reg_handoff_http(void) { #ifndef ENABLE_STATIC -WS_DLL_PUBLIC_NOEXTERN const gchar version[] = "0.0.0"; +WS_DLL_PUBLIC_DEF const gchar version[] = "0.0.0"; -WS_DLL_PUBLIC_NOEXTERN void +WS_DLL_PUBLIC_DEF void plugin_register(void) { /* register the new protocol, protocol fields, and subtrees */ @@ -133,7 +133,7 @@ plugin_register(void) } } -WS_DLL_PUBLIC_NOEXTERN void +WS_DLL_PUBLIC_DEF void plugin_reg_handoff(void){ proto_reg_handoff_http(); } diff --git a/tools/make-dissector-reg b/tools/make-dissector-reg index a4552884cf..6233561c4a 100755 --- a/tools/make-dissector-reg +++ b/tools/make-dissector-reg @@ -47,11 +47,11 @@ then #include "ws_symbol_export.h" #ifndef ENABLE_STATIC -WS_DLL_PUBLIC_NOEXTERN const gchar version[] = VERSION; +WS_DLL_PUBLIC_DEF const gchar version[] = VERSION; /* Start the functions we need for the plugin stuff */ -WS_DLL_PUBLIC_NOEXTERN void +WS_DLL_PUBLIC_DEF void plugin_register (void) { EOF @@ -119,7 +119,7 @@ echo '}' >>${outfile}-tmp if [ "$registertype" = plugin ] then cat <<"EOF" >>${outfile}-tmp -WS_DLL_PUBLIC_NOEXTERN void +WS_DLL_PUBLIC_DEF void plugin_reg_handoff(void) { EOF diff --git a/tools/make-dissector-reg.py b/tools/make-dissector-reg.py index 8e1134d19e..150097204a 100755 --- a/tools/make-dissector-reg.py +++ b/tools/make-dissector-reg.py @@ -195,11 +195,11 @@ if registertype == "plugin" or registertype == "plugin_wtap": #include "ws_symbol_export.h" #ifndef ENABLE_STATIC -WS_DLL_PUBLIC_NOEXTERN const gchar version[] = VERSION; +WS_DLL_PUBLIC_DEF const gchar version[] = VERSION; /* Start the functions we need for the plugin stuff */ -WS_DLL_PUBLIC_NOEXTERN void +WS_DLL_PUBLIC_DEF void plugin_register (void) { """ @@ -223,7 +223,7 @@ reg_code += "}\n" # Make the routine to register all protocol handoffs if registertype == "plugin" or registertype == "plugin_wtap": reg_code += """ -WS_DLL_PUBLIC_NOEXTERN void +WS_DLL_PUBLIC_DEF void plugin_reg_handoff(void) { """ @@ -246,7 +246,7 @@ if registertype == "plugin": reg_code += "#endif\n" elif registertype == "plugin_wtap": reg_code += """ -WS_DLL_PUBLIC_NOEXTERN void +WS_DLL_PUBLIC_DEF void register_wtap_module(void) { """ diff --git a/tools/wireshark_gen.py b/tools/wireshark_gen.py index def0b30214..41048415d8 100755 --- a/tools/wireshark_gen.py +++ b/tools/wireshark_gen.py @@ -1976,7 +1976,7 @@ static guint32 boundary = GIOP_HEADER_SIZE; /* initial value */""" template_plugin_register = """ #if 0 -WS_DLL_PUBLIC_NOEXTERN void +WS_DLL_PUBLIC_DEF void plugin_register(void) { if (proto_@dissector_name@ == -1) { @@ -1984,7 +1984,7 @@ plugin_register(void) } } -WS_DLL_PUBLIC_NOEXTERN void +WS_DLL_PUBLIC_DEF void plugin_reg_handoff(void){ proto_register_handoff_giop_@dissector_name@(); } diff --git a/ws_symbol_export.h b/ws_symbol_export.h index e2c0e6f2fa..5654ad1243 100644 --- a/ws_symbol_export.h +++ b/ws_symbol_export.h @@ -34,8 +34,8 @@ #undef WS_DLL_PUBLIC #endif -#ifdef WS_DLL_PUBLIC_NOEXTERN -#undef WS_DLL_PUBLIC_NOEXTERN +#ifdef WS_DLL_PUBLIC_DEF +#undef WS_DLL_PUBLIC_DEF #endif #ifdef WS_DLL_LOCAL @@ -52,7 +52,7 @@ /* Compiling for Windows, so we use the Windows DLL declarations. */ #ifdef WS_BUILD_DLL /* - * Building a library; for all definitions, we want dllexport, and + * Building a DLL; for all definitions, we want dllexport, and * (presumably so source from DLL and source from a program using the * DLL can both include a header that declares APIs and exported data * for the DLL), for declarations, either dllexport or dllimport will @@ -60,15 +60,13 @@ */ #ifdef __GNUC__ /* GCC */ -#define WS_DLL_PUBLIC __attribute__ ((dllexport)) extern -#define WS_DLL_PUBLIC_NOEXTERN __attribute__ ((dllexport)) +#define WS_DLL_PUBLIC_DEF __attribute__ ((dllexport)) #else /* ! __GNUC__ */ /* * Presumably MSVC. * Note: actually gcc seems to also support this syntax. */ -#define WS_DLL_PUBLIC __declspec(dllexport) extern -#define WS_DLL_PUBLIC_NOEXTERN __declspec(dllexport) +#define WS_DLL_PUBLIC_DEF __declspec(dllexport) #endif /* __GNUC__ */ #else /* WS_BUILD_DLL */ /* @@ -82,19 +80,16 @@ */ #ifdef __GNUC__ /* GCC */ -#define WS_DLL_PUBLIC __attribute__ ((dllimport)) extern -#define WS_DLL_PUBLIC_NOEXTERN __attribute__ ((dllimport)) +#define WS_DLL_PUBLIC_DEF __attribute__ ((dllimport)) #elif ! (defined ENABLE_STATIC) /* ! __GNUC__ */ /* * Presumably MSVC. * Note: actually gcc seems to also support this syntax. */ -#define WS_DLL_PUBLIC __declspec(dllimport) extern -#define WS_DLL_PUBLIC_NOEXTERN __declspec(dllimport) +#define WS_DLL_PUBLIC_DEF __declspec(dllimport) #else /* ! __GNUC__ && ENABLE_STATIC */ /* presumably MSVC */ -#define WS_DLL_PUBLIC extern -#define WS_DLL_PUBLIC_NOEXTERN +#define WS_DLL_PUBLIC_DEF #endif /* __GNUC__ */ #endif /* WS_BUILD_DLL */ #define WS_DLL_LOCAL @@ -106,14 +101,19 @@ * with GCC 4 or later. */ #if __GNUC__ >= 4 -#define WS_DLL_PUBLIC __attribute__ ((visibility ("default"))) extern -#define WS_DLL_PUBLIC_NOEXTERN __attribute__ ((visibility ("default"))) +#define WS_DLL_PUBLIC_DEF __attribute__ ((visibility ("default"))) #define WS_DLL_LOCAL __attribute__ ((visibility ("hidden"))) #else /* ! __GNUC__ >= 4 */ - #define WS_DLL_PUBLIC extern - #define WS_DLL_PUBLIC_NOEXTERN + #define WS_DLL_PUBLIC_DEF #define WS_DLL_LOCAL #endif /* __GNUC__ >= 4 */ #endif +/* + * Use this for declarations; it can also be used for exported + * *function* definitions, but must not be used for exported *data* + * definitions. + */ +#define WS_DLL_PUBLIC WS_DLL_PUBLIC_DEF extern + #endif /* SYMBOL_EXPORT_H */ -- cgit v1.2.3