After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 510740 - Missing symbols from core libraries
Missing symbols from core libraries
Status: RESOLVED NOTABUG
Product: GStreamer
Classification: Platform
Component: gstreamer (core)
git master
Other Linux
: Normal major
: NONE
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2008-01-20 06:22 UTC by Sebastian Dröge (slomo)
Modified: 2008-01-21 19:48 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Sebastian Dröge (slomo) 2008-01-20 06:22:20 UTC
Hi,
after running a tool to list all exported symbols of libraries over all releases since 0.10.0 it seems that quite many symbols got lost over time. Some of them between 0.10.15 and the current pre-release.

Below is the list of symbols, the first version number being the one where it disappeared and the one at the end of the line being the version number where it was introduced.

All versions were compiled with the default configure parameters and the same installed software.

libgstreamer-0.10:
#MISSING: 0.10.13# _gst_parse__yydebug@Base 0.10.0
#MISSING: 0.10.13# _gst_parse__yyparse@Base 0.10.0
#MISSING: 0.10.13# _gst_parse_yy_flex_debug@Base 0.10.0
#MISSING: 0.10.13# _gst_parse_yyin@Base 0.10.0
#MISSING: 0.10.13# _gst_parse_yyleng@Base 0.10.0
#MISSING: 0.10.13# _gst_parse_yylineno@Base 0.10.0
#MISSING: 0.10.13# _gst_parse_yyout@Base 0.10.0
#MISSING: 0.10.13# _gst_parse_yytext@Base 0.10.0
#MISSING: 0.10.13# gst_registry_binary_read_cache@Base 0.10.12
#MISSING: 0.10.13# gst_registry_binary_write_cache@Base 0.10.12
#MISSING: 0.10.15# _gst_disable_segtrap@Base 0.10.0
#MISSING: 0.10.15# _gst_trace_default@Base 0.10.0
#MISSING: 0.10.15# gst_plugin_loading_mutex@Base 0.10.0
#MISSING: 0.10.15# gst_type_array@Base 0.10.0
#MISSING: 0.10.15# gst_type_date@Base 0.10.0
#MISSING: 0.10.15# gst_type_double_range@Base 0.10.0
#MISSING: 0.10.15# gst_type_fraction@Base 0.10.0
#MISSING: 0.10.15# gst_type_fraction_range@Base 0.10.0
#MISSING: 0.10.15# gst_type_list@Base 0.10.0
#MISSING: 0.10.15.1# __gst_in_valgrind@Base 0.10.0
#MISSING: 0.10.15.1# gst_proxy_pad_do_query_type@Base 0.10.0
#MISSING: 0.10.15.1# gst_proxy_pad_get_type@Base 0.10.0
#MISSING: 0.10.15.1# gst_type_find_debug@Base 0.10.0

libgstcontroller-0.10:
#MISSING: 0.10.11# interpolation_methods@Base 0.10.0
#MISSING: 0.10.11# on_object_controlled_property_changed@Base 0.10.0
#MISSING: 0.10.13# gst_controlled_property_find_timed_value_node@Base 0.10.0
#MISSING: 0.10.14# gst_controlled_property_find_control_point_node@Base 0.10.13
#MISSING: 0.10.15.1# __gst_controller_key@Base 0.10.0
#MISSING: 0.10.15.1# gst_controller_debug@Base 0.10.0

libgstdataprotocol-0.10:
#MISSING: 0.10.10# data_protocol_debug@Base 0.10.0
#MISSING: 0.10.10# gst_dp_packet_from_caps_1_0@Base 0.10.7

libgstnet-0.10:
#MISSING: 0.10.9# ncc_debug@Base 0.10.0
#MISSING: 0.10.9# ntp_debug@Base 0.10.0

If I didn't miss anything all of them were never in a public header so it shouldn't be a problem. Would still be nice if someone could have a second look before we close this.
Comment 1 Tim-Philipp Müller 2008-01-20 10:58:21 UTC
Most, if not all, of these disappearances are probably my doing and were intentional. I discovered them when I did the win32 exported symbols check script. 

At the time I made sure to only un-export those that were never in a public header. Where symbols were in a public header, I either added a FIXME 0.11 (if it is conceivable that someone actually ever used those functions), or moved them to gst_private.h with a FIXME.

Some double-checking would be good of course.

Comment 2 Tim-Philipp Müller 2008-01-21 19:48:15 UTC
Rah, so here goes:

 $ for v in 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0; do cvs -z9 -d`cat /home/tpm/uninstalled/head/gstreamer/CVS/Root` co -rRELEASE-0_10_$v gstreamer; mv gstreamer gstreamer-0.10.$v; done


libgstreamer-0.10:
#MISSING: 0.10.13# _gst_parse_*@Base 0.10.0
These were never in a public header (gst/parse/types.h).

#MISSING: 0.10.13# gst_registry_binary_read_cache@Base 0.10.12
#MISSING: 0.10.13# gst_registry_binary_write_cache@Base 0.10.12
These should never have been included in the default build, but only if the experimental configure option --enable-binary-registry is passed to configure. Besides, the declarations in gstregistry.h are guarded by a (completely bogus) #ifdef USE_BINARY_REGISTRY, which is bound to evaluate to FALSE unless the user specifically defines this preprocessor symbol to get the declarations. And even if someone did that, they'd still be using an experimental feature for which ABI or API guarantees do not apply. In other words: the removal of these symbols should be fine.

#MISSING: 0.10.15# _gst_disable_segtrap@Base 0.10.0
#MISSING: 0.10.15# _gst_trace_default@Base 0.10.0
#MISSING: 0.10.15# gst_plugin_loading_mutex@Base 0.10.0
Never in any header, installed or private.

#MISSING: 0.10.15# gst_type_array@Base 0.10.0
#MISSING: 0.10.15# gst_type_date@Base 0.10.0
#MISSING: 0.10.15# gst_type_double_range@Base 0.10.0
#MISSING: 0.10.15# gst_type_fraction@Base 0.10.0
#MISSING: 0.10.15# gst_type_fraction_range@Base 0.10.0
#MISSING: 0.10.15# gst_type_list@Base 0.10.0
Never in any header, installed or private. Not even used/functional.

#MISSING: 0.10.15.1# __gst_in_valgrind@Base 0.10.0
Has always been declared in gst_private.h.

#MISSING: 0.10.15.1# gst_proxy_pad_do_query_type@Base 0.10.0
#MISSING: 0.10.15.1# gst_proxy_pad_get_type@Base 0.10.0
#MISSING: 0.10.15.1# gst_type_find_debug@Base 0.10.0
Never been in any header file, installed or private.


libgstcontroller-0.10:
#MISSING: 0.10.11# interpolation_methods@Base 0.10.0
#MISSING: 0.10.11# on_object_controlled_property_changed@Base 0.10.0
#MISSING: 0.10.13# gst_controlled_property_find_timed_value_node@Base 0.10.0
#MISSING: 0.10.14# gst_controlled_property_find_control_point_node@Base 0.10.13
#MISSING: 0.10.15.1# __gst_controller_key@Base 0.10.0
#MISSING: 0.10.15.1# gst_controller_debug@Base 0.10.0
Never been in any header file, installed or private.


libgstdataprotocol-0.10:
#MISSING: 0.10.10# data_protocol_debug@Base 0.10.0
#MISSING: 0.10.10# gst_dp_packet_from_caps_1_0@Base 0.10.7
Never been in any header file, installed or private.


libgstnet-0.10:
#MISSING: 0.10.9# ncc_debug@Base 0.10.0
#MISSING: 0.10.9# ntp_debug@Base 0.10.0
Never been in any header file, installed or private.