GNOME Bugzilla – Bug 499140
Add check to ensure .def files are kept up-to-date
Last modified: 2007-12-12 23:22:37 UTC
In gstconfig.h, GST_EXPORT macro is defined. On Windows, GST_EXPORT exports the variable from the DLL. On other platforms, it is definde a s a no-op "extern" However, it is not used to declare functions in header files. Some functions are missing in Windows binareis of gstreamer. After I put GST_EXPORT to those missing functions and recompile the gstreamer, I could see them.
what functions are you refering to? can you make a patch with the changes you did?
The problem was in gstreamer-10.14. For example, gst_type_register_static_full, gst_element_class_set_details_simple, gst_data_queue_is_full, gst_data_queue_get_level and gst_data_queue_limits_changed were missing in gstreamer-0.10.14 built by MSVC because they are not exported in def file. Fortunatley, all symbols missing in gstreamer-0.10.14 are added to in CVS HEAD. However, why don't you use GST_EXPORT macro for function declaration instead of using a separate def file? I think it is error prone to add every new function to the corresponding def file. For example, gst_type_register_static_full was new in gstreamer-0.10.14 and the developer forgot to update libgstreamer.def.
Myself, I'd prefer not to use GST_EXPORT in the header files. I like the header files clean and readable, and dislike messy header files like jpglib.h. I've added this now: 2007-12-12 Tim-Philipp Müller <tim at centricular dot net> * Makefile.am: Add check-exports target and run it as part of 'make check' (see #499140 and #493983). (also needs similar setup in -base).