summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGuy Harris <guy@alum.mit.edu>2013-07-03 01:43:39 +0000
committerGuy Harris <guy@alum.mit.edu>2013-07-03 01:43:39 +0000
commit5d87a8c46171f572568db5a47c093423482e342f (patch)
tree07a700792f034ede91c707b927cd94f4887d5394
parenta3543e605022d4385d536cd4f916d9a29051e637 (diff)
downloadwireshark-5d87a8c46171f572568db5a47c093423482e342f.tar.gz
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
-rw-r--r--doc/README.plugins2
-rw-r--r--doc/README.stats_tree4
-rw-r--r--docbook/wsdg_src/WSDG_chapter_dissection.xml4
-rw-r--r--epan/follow.c2
-rw-r--r--plugins/easy_codec/easy_codec_plugin.c4
-rw-r--r--plugins/stats_tree/stats_tree_plugin.c4
-rw-r--r--plugins/tpg/packet-http.c6
-rwxr-xr-xtools/make-dissector-reg6
-rwxr-xr-xtools/make-dissector-reg.py8
-rwxr-xr-xtools/wireshark_gen.py4
-rw-r--r--ws_symbol_export.h34
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 */