Mark VLC_PUBLIC_API as extern "C" when using C++.
[vlc.git] / include / vlc_common.h
index bc179a0..79d6dd7 100644 (file)
@@ -468,12 +468,12 @@ typedef int ( * vlc_callback_t ) ( vlc_object_t *,      /* variable's object */
 #else
 #  ifdef __cplusplus
 #    ifdef HAVE_ATTRIBUTE_VISIBILITY
 #else
 #  ifdef __cplusplus
 #    ifdef HAVE_ATTRIBUTE_VISIBILITY
-#      define VLC_PUBLIC_API __attribute__((visibility("default")))
-#      define VLC_PRIVATE_API __attribute__((visibility("default")))
+#      define VLC_PUBLIC_API extern "C" __attribute__((visibility("default")))
+#      define VLC_PRIVATE_API extern "C" __attribute__((visibility("default")))
 #      define   VLC_EXPORT( type, name, args ) extern "C" __attribute__((visibility("default"))) type name args
 #      define VLC_INTERNAL( type, name, args ) extern "C" __attribute__((visibility("hidden"))) type name args
 #    else
 #      define   VLC_EXPORT( type, name, args ) extern "C" __attribute__((visibility("default"))) type name args
 #      define VLC_INTERNAL( type, name, args ) extern "C" __attribute__((visibility("hidden"))) type name args
 #    else
-#      define VLC_PUBLIC_API
+#      define VLC_PUBLIC_API extern "C"
 #      define   VLC_EXPORT( type, name, args ) extern "C" type name args
 #      define VLC_INTERNAL( type, name, args ) extern "C" type name args
 #    endif
 #      define   VLC_EXPORT( type, name, args ) extern "C" type name args
 #      define VLC_INTERNAL( type, name, args ) extern "C" type name args
 #    endif