Skip to content

ABI differences with no soname bump #2834

Description

@opoplawski

Updating prrte from 3.0.14 to 4.1.0 there is no soname bump, but abidiff reports differences:

Command: abidiff --d1 /var/ARTIFACTS/work-rpminspectlq2p5gnl/rpminspect/tree/workdir/scratch-150777450.AwUzwy/root/before/x86_64/usr/lib/debug/ --hd1 /var/ARTIFACTS/work-rpminspectlq2p5gnl/rpminspect/tree/workdir/scratch-150777450.AwUzwy/root/before/x86_64/usr/include --d2 /var/ARTIFACTS/work-rpminspectlq2p5gnl/rpminspect/tree/workdir/scratch-150777450.AwUzwy/root/after/x86_64/usr/lib/debug/ --hd2 /var/ARTIFACTS/work-rpminspectlq2p5gnl/rpminspect/tree/workdir/scratch-150777450.AwUzwy/root/after/x86_64/usr/include /var/ARTIFACTS/work-rpminspectlq2p5gnl/rpminspect/tree/workdir/scratch-150777450.AwUzwy/root/before/x86_64/usr/lib64/libprrte.so.3.0.14 /var/ARTIFACTS/work-rpminspectlq2p5gnl/rpminspect/tree/workdir/scratch-150777450.AwUzwy/root/after/x86_64/usr/lib64/libprrte.so.3.1.0

Functions changes summary: 26 Removed, 8 Changed (78 filtered out), 34 Added functions
Variables changes summary: 25 Removed, 31 Changed (41 filtered out), 49 Added variables
Function symbols changes summary: 1 Removed, 0 Added function symbol not referenced by debug info
Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referenced by debug info

26 Removed functions:

  [D] 'function int prte_bp_graph_add_edge(prte_bp_graph_t*, int, int, int64_t, int, void*)'    {prte_bp_graph_add_edge}
  [D] 'function int prte_bp_graph_add_vertex(prte_bp_graph_t*, void*, int*)'    {prte_bp_graph_add_vertex}
  [D] 'function bool prte_bp_graph_bellman_ford(prte_bp_graph_t*, int, int, int*)'    {prte_bp_graph_bellman_ford}
  [D] 'function int prte_bp_graph_bipartite_to_flow(prte_bp_graph_t*)'    {prte_bp_graph_bipartite_to_flow}
  [D] 'function int prte_bp_graph_clone(const prte_bp_graph_t*, bool, prte_bp_graph_t**)'    {prte_bp_graph_clone}
  [D] 'function int prte_bp_graph_create(prte_bp_graph_cleanup_fn_t, prte_bp_graph_cleanup_fn_t, prte_bp_graph_t**)'    {prte_bp_graph_create}
  [D] 'function int prte_bp_graph_free(prte_bp_graph_t*)'    {prte_bp_graph_free}
  [D] 'function int prte_bp_graph_indegree(const prte_bp_graph_t*, int)'    {prte_bp_graph_indegree}
  [D] 'function int prte_bp_graph_order(const prte_bp_graph_t*)'    {prte_bp_graph_order}
  [D] 'function int prte_bp_graph_outdegree(const prte_bp_graph_t*, int)'    {prte_bp_graph_outdegree}
  [D] 'function int prte_bp_graph_solve_bipartite_assignment(const prte_bp_graph_t*, int*, int**)'    {prte_bp_graph_solve_bipartite_assignment}
  [D] 'function int prte_grpcomm_API_allgather(prte_pmix_mdx_caddy_t*)'    {prte_grpcomm_API_allgather}
  [D] 'function int prte_grpcomm_API_xcast(prte_grpcomm_signature_t*, prte_rml_tag_t, pmix_data_buffer_t*)'    {prte_grpcomm_API_xcast}
  [D] 'function prte_grpcomm_coll_t* prte_grpcomm_base_get_tracker(prte_grpcomm_signature_t*, bool)'    {prte_grpcomm_base_get_tracker}
  [D] 'function int prte_mca_odls_default_component_open(void)'    {prte_mca_odls_default_component_open}
  [D] 'function int prte_mca_odls_default_component_query(pmix_mca_base_module_t**, int*)'    {prte_mca_odls_default_component_query}
  [D] 'function void prte_mca_oob_tcp_component_set_module(int, short int, void*)'    {prte_mca_oob_tcp_component_set_module}
  [D] 'function prte_oob_base_peer_t* prte_oob_base_get_peer(const pmix_proc_t*)'    {prte_oob_base_get_peer}
  [D] 'function int prte_oob_base_select(void)'    {prte_oob_base_select}
  [D] 'function int prte_pack_ctrl_options(pmix_byte_object_t*, const pmix_info_t*, size_t)'    {prte_pack_ctrl_options}
  [D] 'function void prte_rtc_base_assign(prte_job_t*)'    {prte_rtc_base_assign}
  [D] 'function void prte_rtc_base_get_avail_vals(pmix_list_t*)'    {prte_rtc_base_get_avail_vals}
  [D] 'function int prte_rtc_base_select(void)'    {prte_rtc_base_select}
  [D] 'function void prte_rtc_base_send_error_show_help(int, int, const char*, const char*, ...)'    {prte_rtc_base_send_error_show_help}
  [D] 'function int prte_rtc_base_send_warn_show_help(int, const char*, const char*, ...)'    {prte_rtc_base_send_warn_show_help}
  [D] 'function void prte_rtc_base_set(prte_odls_spawn_caddy_t*, int)'    {prte_rtc_base_set}

3 functions with incompatible sub-type changes:

  [C] 'function unsigned int prte_hwloc_base_get_nbobjs_by_type(hwloc_topology_t, hwloc_obj_type_t, unsigned int)' at hwloc_base_util.c:543:1 has some sub-type changes:
    parameter 3 of type 'unsigned int' was removed

  [C] 'function hwloc_obj_t prte_hwloc_base_get_obj_by_type(hwloc_topology_t, hwloc_obj_type_t, unsigned int, unsigned int)' at hwloc_base_util.c:596:1 has some sub-type changes:
    parameter 4 of type 'unsigned int' was removed

  [C] 'function hwloc_cpuset_t prte_hwloc_base_setup_summary(hwloc_topology_t)' at hwloc_base_util.c:187:1 has some sub-type changes:
    return type changed:
      entity changed from 'typedef hwloc_cpuset_t' to 'void'
      type size changed from 64 to 0 (in bits)
...
25 Removed variables:

  [D] 'pmix_class_t local_apptracker_t_class'    {local_apptracker_t_class}
  [D] 'pmix_class_t local_jobtracker_t_class'    {local_jobtracker_t_class}
  [D] 'pmix_class_t pmix_server_pset_t_class'    {pmix_server_pset_t_class}
  [D] 'pmix_class_t pmix_server_req_t_class'    {pmix_server_req_t_class}
  [D] 'pmix_class_t prte_bp_graph_edge_t_class'    {prte_bp_graph_edge_t_class}
  [D] 'char** prte_forwarded_envars'    {prte_forwarded_envars}
  [D] 'pmix_class_t prte_grpcomm_base_active_t_class'    {prte_grpcomm_base_active_t_class}
  [D] 'pmix_class_t prte_grpcomm_coll_t_class'    {prte_grpcomm_coll_t_class}
  [D] 'pmix_class_t prte_grpcomm_signature_t_class'    {prte_grpcomm_signature_t_class}
  [D] 'prte_odls_base_component_t prte_mca_odls_default_component'    {prte_mca_odls_default_component}
  [D] 'prte_mca_oob_tcp_component_t prte_mca_oob_tcp_component'    {prte_mca_oob_tcp_component}
  [D] 'prte_mca_rtc_hwloc_component_t prte_mca_rtc_hwloc_component'    {prte_mca_rtc_hwloc_component}
  [D] 'prte_odls_base_module_t prte_odls_default_module'    {prte_odls_default_module}
  [D] 'pmix_mca_base_framework_t prte_oob_base_framework'    {prte_oob_base_framework}
  [D] 'pmix_class_t prte_oob_base_peer_t_class'    {prte_oob_base_peer_t_class}
  [D] 'const pmix_mca_base_component_t* prte_oob_base_static_components[2]'    {prte_oob_base_static_components}
  [D] 'prte_oob_tcp_module_t prte_oob_tcp_module'    {prte_oob_tcp_module}
  [D] 'pmix_class_t prte_pmix_mdx_caddy_t_class'    {prte_pmix_mdx_caddy_t_class}
  [D] 'prte_rtc_API_module_t prte_rtc'    {prte_rtc}
  [D] 'prte_rtc_base_t prte_rtc_base'    {prte_rtc_base}
  [D] 'pmix_mca_base_framework_t prte_rtc_base_framework'    {prte_rtc_base_framework}
  [D] 'pmix_class_t prte_rtc_base_selected_module_t_class'    {prte_rtc_base_selected_module_t_class}
  [D] 'const pmix_mca_base_component_t* prte_rtc_base_static_components[2]'    {prte_rtc_base_static_components}
  [D] 'prte_rtc_base_module_t prte_rtc_hwloc_module'    {prte_rtc_hwloc_module}
  [D] 'pmix_class_t prte_rtc_resource_t_class'    {prte_rtc_resource_t_class}
...

It seems likely that this will lead to issues. Why no soname change?

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions