mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager
synced 2024-09-30 05:15:33 +00:00
build: explicitly whitelist symbols in NetworkManager binary
- this allows the linker to drop unused symbols via link-time optimization or with --gc-sections: git clean -fdx ./autogen.sh --enable-ld-gc --enable-ifcfg-rh --enable-ifupdown \ --enable-ifnet --enable-ibft --enable-teamdctl --enable-wifi \ --with-modem-manager-1 --with-ofono --with-more-asserts \ --with-more-logging make -j20 strip ./src/NetworkManager gives 2822840 vs. 2625960 bytes (-7%). - this also gives more control over the symbols that are used by the plugins. Yes, it means if you modify a plugin to use a new symbols, you have to extend NetworkManager.ver file. You can run the script to create the version file: $ ./tools/create-exports-NetworkManager.sh update but be sure that your current configuration enables all plugins and debugging options to actually use all symbols that are in use. - If you compile with certain plugins enabled, you could theoretically re-compile NetworkManager to expose less symbols. Try: $ ./tools/create-exports-NetworkManager.sh build - note that we have `make check` tests to ensure that all used symbols of the plugins can be found. So, it should not be possible to accidentally forget to expose a symbol.
This commit is contained in:
parent
76a057b4ec
commit
b171fbc9ca
|
@ -1,15 +1,559 @@
|
|||
# this file is generated by ./tools/create-exports-NetworkManager.sh
|
||||
{
|
||||
global:
|
||||
nm_*;
|
||||
nmp_*;
|
||||
_nm*;
|
||||
NM*;
|
||||
_NM*;
|
||||
NM_ASSERT_VALID_PATH_COMPONENT;
|
||||
_nm_dbus_error_has_name;
|
||||
_nm_dbus_proxy_call_finish;
|
||||
_nm_dbus_signal_connect_data;
|
||||
_nm_device_factory_no_default_links;
|
||||
_nm_exported_object_clear_and_unexport;
|
||||
_nm_log_impl;
|
||||
_nm_logging_enabled_state;
|
||||
_nm_platform_error_to_string;
|
||||
_nm_singleton_instance_register_destruction;
|
||||
_nm_utils_ascii_str_to_int64;
|
||||
_nm_utils_dns_option_find_idx;
|
||||
_nm_utils_hash_values_to_slist;
|
||||
_nm_utils_strsplit_set;
|
||||
_nm_utils_uuid_generate_from_strings;
|
||||
nm_act_request_cancel_secrets;
|
||||
nm_act_request_clear_secrets;
|
||||
nm_act_request_get_applied_connection;
|
||||
nm_act_request_get_secrets;
|
||||
nm_act_request_get_settings_connection;
|
||||
nm_act_request_get_type;
|
||||
nm_active_connection_get_specific_object;
|
||||
nm_active_connection_get_type;
|
||||
nm_active_connection_set_specific_object;
|
||||
nm_config_data_get_connection_default;
|
||||
nm_config_data_get_device_config;
|
||||
nm_config_data_get_device_config_boolean;
|
||||
nm_config_data_get_value_boolean;
|
||||
nm_config_get;
|
||||
nm_config_get_data;
|
||||
nm_config_get_data_orig;
|
||||
nm_config_get_dhcp_client;
|
||||
nm_config_get_monitor_connection_files;
|
||||
nm_connection_add_setting;
|
||||
nm_connection_compare;
|
||||
nm_connection_error_quark;
|
||||
nm_connection_for_each_setting_value;
|
||||
nm_connection_get_id;
|
||||
nm_connection_get_interface_name;
|
||||
nm_connection_get_path;
|
||||
nm_connection_get_setting_802_1x;
|
||||
nm_connection_get_setting_adsl;
|
||||
nm_connection_get_setting_bluetooth;
|
||||
nm_connection_get_setting_bond;
|
||||
nm_connection_get_setting_bridge;
|
||||
nm_connection_get_setting_bridge_port;
|
||||
nm_connection_get_setting_cdma;
|
||||
nm_connection_get_setting_connection;
|
||||
nm_connection_get_setting_dcb;
|
||||
nm_connection_get_setting_gsm;
|
||||
nm_connection_get_setting_infiniband;
|
||||
nm_connection_get_setting_ip4_config;
|
||||
nm_connection_get_setting_ip6_config;
|
||||
nm_connection_get_setting_olpc_mesh;
|
||||
nm_connection_get_setting_ppp;
|
||||
nm_connection_get_setting_pppoe;
|
||||
nm_connection_get_setting_proxy;
|
||||
nm_connection_get_setting_serial;
|
||||
nm_connection_get_setting_team;
|
||||
nm_connection_get_setting_team_port;
|
||||
nm_connection_get_setting_vlan;
|
||||
nm_connection_get_setting_wired;
|
||||
nm_connection_get_setting_wireless;
|
||||
nm_connection_get_setting_wireless_security;
|
||||
nm_connection_get_type;
|
||||
nm_connection_get_uuid;
|
||||
nm_connection_is_type;
|
||||
nm_connection_need_secrets;
|
||||
nm_connection_normalize;
|
||||
nm_connection_set_path;
|
||||
nm_connection_verify;
|
||||
nm_device_activate_ip4_state_done;
|
||||
nm_device_activate_ip4_state_in_conf;
|
||||
nm_device_activate_ip6_state_done;
|
||||
nm_device_activate_ip6_state_in_conf;
|
||||
nm_device_activate_schedule_ip4_config_result;
|
||||
nm_device_activate_schedule_ip4_config_timeout;
|
||||
nm_device_activate_schedule_ip6_config_result;
|
||||
nm_device_activate_schedule_ip6_config_timeout;
|
||||
nm_device_activate_schedule_stage1_device_prepare;
|
||||
nm_device_activate_schedule_stage2_device_config;
|
||||
nm_device_activate_schedule_stage3_ip_config_start;
|
||||
nm_device_add_pending_action;
|
||||
nm_device_bring_up;
|
||||
nm_device_emit_recheck_auto_activate;
|
||||
nm_device_error_quark;
|
||||
nm_device_factory_emit_component_added;
|
||||
nm_device_factory_get_type;
|
||||
nm_device_get_act_request;
|
||||
nm_device_get_applied_connection;
|
||||
nm_device_get_applied_setting;
|
||||
nm_device_get_firmware_missing;
|
||||
nm_device_get_hw_address;
|
||||
nm_device_get_iface;
|
||||
nm_device_get_ifindex;
|
||||
nm_device_get_initial_hw_address;
|
||||
nm_device_get_ip_iface;
|
||||
nm_device_get_ip_ifindex;
|
||||
nm_device_get_permanent_hw_address;
|
||||
nm_device_get_settings;
|
||||
nm_device_get_settings_connection;
|
||||
nm_device_get_state;
|
||||
nm_device_get_type;
|
||||
nm_device_has_unmodified_applied_connection;
|
||||
nm_device_hw_addr_reset;
|
||||
nm_device_hw_addr_set;
|
||||
nm_device_hw_addr_set_cloned;
|
||||
nm_device_ip_method_failed;
|
||||
nm_device_ipv6_sysctl_set;
|
||||
nm_device_is_activating;
|
||||
nm_device_master_check_slave_physical_port;
|
||||
nm_device_queue_recheck_assume;
|
||||
nm_device_queue_recheck_available;
|
||||
nm_device_queue_state;
|
||||
nm_device_recheck_available_connections;
|
||||
nm_device_remove_pending_action;
|
||||
nm_device_set_autoconnect;
|
||||
nm_device_set_carrier;
|
||||
nm_device_set_dhcp_anycast_address;
|
||||
nm_device_set_dhcp_timeout;
|
||||
nm_device_set_firmware_missing;
|
||||
nm_device_set_ip_iface;
|
||||
nm_device_set_wwan_ip4_config;
|
||||
nm_device_set_wwan_ip6_config;
|
||||
nm_device_state_changed;
|
||||
nm_device_take_down;
|
||||
nm_device_uses_assumed_connection;
|
||||
nm_ethernet_address_is_valid;
|
||||
nm_exported_object_class_add_interface;
|
||||
nm_exported_object_export;
|
||||
nm_exported_object_get_path;
|
||||
nm_exported_object_get_type;
|
||||
nm_exported_object_is_exported;
|
||||
nm_exported_object_skeleton_create;
|
||||
nm_exported_object_skeleton_release;
|
||||
nm_exported_object_skeletonify_method_name;
|
||||
nm_exported_object_unexport;
|
||||
nm_inotify_helper_add_watch;
|
||||
nm_inotify_helper_get;
|
||||
nm_inotify_helper_remove_watch;
|
||||
nm_ip4_config_add_address;
|
||||
nm_ip4_config_add_nameserver;
|
||||
nm_ip4_config_add_route;
|
||||
nm_ip4_config_get_address;
|
||||
nm_ip4_config_get_nameserver;
|
||||
nm_ip4_config_get_num_nameservers;
|
||||
nm_ip4_config_new;
|
||||
nm_ip4_config_reset_nameservers;
|
||||
nm_ip4_config_set_gateway;
|
||||
nm_ip4_config_set_mtu;
|
||||
nm_ip6_config_add_address;
|
||||
nm_ip6_config_add_nameserver;
|
||||
nm_ip6_config_get_address;
|
||||
nm_ip6_config_get_num_addresses;
|
||||
nm_ip6_config_new;
|
||||
nm_ip6_config_set_gateway;
|
||||
nm_ip_address_get_address;
|
||||
nm_ip_address_get_attribute;
|
||||
nm_ip_address_get_prefix;
|
||||
nm_ip_address_new;
|
||||
nm_ip_address_set_attribute;
|
||||
nm_ip_address_unref;
|
||||
nm_ip_route_get_dest;
|
||||
nm_ip_route_get_metric;
|
||||
nm_ip_route_get_next_hop;
|
||||
nm_ip_route_get_prefix;
|
||||
nm_ip_route_new;
|
||||
nm_ip_route_unref;
|
||||
nm_manager_get;
|
||||
nm_manager_get_devices;
|
||||
nm_manager_set_capability;
|
||||
nm_platform_address_flush;
|
||||
nm_platform_get;
|
||||
nm_platform_link_enslave;
|
||||
nm_platform_link_get_by_ifname;
|
||||
nm_platform_link_get_ifindex;
|
||||
nm_platform_link_get_mtu;
|
||||
nm_platform_link_get_type;
|
||||
nm_platform_link_release;
|
||||
nm_platform_link_set_down;
|
||||
nm_platform_link_set_noarp;
|
||||
nm_platform_link_set_up;
|
||||
nm_platform_link_team_add;
|
||||
nm_platform_mesh_get_channel;
|
||||
nm_platform_mesh_set_channel;
|
||||
nm_platform_mesh_set_ssid;
|
||||
nm_platform_sysctl_get_int_checked;
|
||||
nm_platform_wifi_find_frequency;
|
||||
nm_platform_wifi_get_bssid;
|
||||
nm_platform_wifi_get_capabilities;
|
||||
nm_platform_wifi_get_frequency;
|
||||
nm_platform_wifi_get_mode;
|
||||
nm_platform_wifi_get_quality;
|
||||
nm_platform_wifi_get_rate;
|
||||
nm_platform_wifi_indicate_addressing_running;
|
||||
nm_platform_wifi_set_mode;
|
||||
nm_platform_wifi_set_powersave;
|
||||
nm_ppp_manager_new;
|
||||
nm_ppp_manager_start;
|
||||
nm_ppp_manager_stop;
|
||||
nm_ppp_manager_stop_finish;
|
||||
nm_route_manager_get;
|
||||
nm_route_manager_route_flush;
|
||||
nm_setting_802_1x_add_eap_method;
|
||||
nm_setting_802_1x_get_altsubject_match;
|
||||
nm_setting_802_1x_get_anonymous_identity;
|
||||
nm_setting_802_1x_get_ca_cert_blob;
|
||||
nm_setting_802_1x_get_ca_cert_path;
|
||||
nm_setting_802_1x_get_ca_cert_scheme;
|
||||
nm_setting_802_1x_get_client_cert_blob;
|
||||
nm_setting_802_1x_get_client_cert_path;
|
||||
nm_setting_802_1x_get_client_cert_scheme;
|
||||
nm_setting_802_1x_get_domain_suffix_match;
|
||||
nm_setting_802_1x_get_eap_method;
|
||||
nm_setting_802_1x_get_identity;
|
||||
nm_setting_802_1x_get_num_altsubject_matches;
|
||||
nm_setting_802_1x_get_num_eap_methods;
|
||||
nm_setting_802_1x_get_num_phase2_altsubject_matches;
|
||||
nm_setting_802_1x_get_pac_file;
|
||||
nm_setting_802_1x_get_password;
|
||||
nm_setting_802_1x_get_password_flags;
|
||||
nm_setting_802_1x_get_phase1_fast_provisioning;
|
||||
nm_setting_802_1x_get_phase1_peaplabel;
|
||||
nm_setting_802_1x_get_phase1_peapver;
|
||||
nm_setting_802_1x_get_phase2_altsubject_match;
|
||||
nm_setting_802_1x_get_phase2_auth;
|
||||
nm_setting_802_1x_get_phase2_autheap;
|
||||
nm_setting_802_1x_get_phase2_ca_cert_blob;
|
||||
nm_setting_802_1x_get_phase2_ca_cert_path;
|
||||
nm_setting_802_1x_get_phase2_ca_cert_scheme;
|
||||
nm_setting_802_1x_get_phase2_client_cert_blob;
|
||||
nm_setting_802_1x_get_phase2_client_cert_path;
|
||||
nm_setting_802_1x_get_phase2_client_cert_scheme;
|
||||
nm_setting_802_1x_get_phase2_domain_suffix_match;
|
||||
nm_setting_802_1x_get_phase2_private_key_blob;
|
||||
nm_setting_802_1x_get_phase2_private_key_format;
|
||||
nm_setting_802_1x_get_phase2_private_key_password;
|
||||
nm_setting_802_1x_get_phase2_private_key_password_flags;
|
||||
nm_setting_802_1x_get_phase2_private_key_path;
|
||||
nm_setting_802_1x_get_phase2_private_key_scheme;
|
||||
nm_setting_802_1x_get_phase2_subject_match;
|
||||
nm_setting_802_1x_get_private_key_blob;
|
||||
nm_setting_802_1x_get_private_key_format;
|
||||
nm_setting_802_1x_get_private_key_password;
|
||||
nm_setting_802_1x_get_private_key_password_flags;
|
||||
nm_setting_802_1x_get_private_key_path;
|
||||
nm_setting_802_1x_get_private_key_scheme;
|
||||
nm_setting_802_1x_get_subject_match;
|
||||
nm_setting_802_1x_new;
|
||||
nm_setting_802_1x_set_ca_cert;
|
||||
nm_setting_802_1x_set_client_cert;
|
||||
nm_setting_802_1x_set_phase2_ca_cert;
|
||||
nm_setting_802_1x_set_phase2_client_cert;
|
||||
nm_setting_802_1x_set_phase2_private_key;
|
||||
nm_setting_802_1x_set_private_key;
|
||||
nm_setting_adsl_get_encapsulation;
|
||||
nm_setting_adsl_get_protocol;
|
||||
nm_setting_adsl_get_type;
|
||||
nm_setting_adsl_get_username;
|
||||
nm_setting_adsl_get_vci;
|
||||
nm_setting_adsl_get_vpi;
|
||||
nm_setting_bluetooth_get_bdaddr;
|
||||
nm_setting_bluetooth_get_connection_type;
|
||||
nm_setting_bluetooth_new;
|
||||
nm_setting_bond_add_option;
|
||||
nm_setting_bond_get_num_options;
|
||||
nm_setting_bond_get_option;
|
||||
nm_setting_bond_get_type;
|
||||
nm_setting_bond_new;
|
||||
nm_setting_bridge_get_ageing_time;
|
||||
nm_setting_bridge_get_forward_delay;
|
||||
nm_setting_bridge_get_hello_time;
|
||||
nm_setting_bridge_get_mac_address;
|
||||
nm_setting_bridge_get_max_age;
|
||||
nm_setting_bridge_get_multicast_snooping;
|
||||
nm_setting_bridge_get_priority;
|
||||
nm_setting_bridge_get_stp;
|
||||
nm_setting_bridge_get_type;
|
||||
nm_setting_bridge_new;
|
||||
nm_setting_bridge_port_get_hairpin_mode;
|
||||
nm_setting_bridge_port_get_path_cost;
|
||||
nm_setting_bridge_port_get_priority;
|
||||
nm_setting_bridge_port_new;
|
||||
nm_setting_cdma_get_number;
|
||||
nm_setting_cdma_get_password;
|
||||
nm_setting_cdma_get_username;
|
||||
nm_setting_cdma_new;
|
||||
nm_setting_connection_add_permission;
|
||||
nm_setting_connection_add_secondary;
|
||||
nm_setting_connection_get_autoconnect;
|
||||
nm_setting_connection_get_autoconnect_priority;
|
||||
nm_setting_connection_get_autoconnect_slaves;
|
||||
nm_setting_connection_get_connection_type;
|
||||
nm_setting_connection_get_gateway_ping_timeout;
|
||||
nm_setting_connection_get_id;
|
||||
nm_setting_connection_get_interface_name;
|
||||
nm_setting_connection_get_lldp;
|
||||
nm_setting_connection_get_master;
|
||||
nm_setting_connection_get_metered;
|
||||
nm_setting_connection_get_num_permissions;
|
||||
nm_setting_connection_get_num_secondaries;
|
||||
nm_setting_connection_get_permission;
|
||||
nm_setting_connection_get_secondary;
|
||||
nm_setting_connection_get_stable_id;
|
||||
nm_setting_connection_get_type;
|
||||
nm_setting_connection_get_uuid;
|
||||
nm_setting_connection_get_zone;
|
||||
nm_setting_connection_is_slave_type;
|
||||
nm_setting_connection_new;
|
||||
nm_setting_dcb_get_app_fcoe_flags;
|
||||
nm_setting_dcb_get_app_fcoe_mode;
|
||||
nm_setting_dcb_get_app_fcoe_priority;
|
||||
nm_setting_dcb_get_app_fip_flags;
|
||||
nm_setting_dcb_get_app_fip_priority;
|
||||
nm_setting_dcb_get_app_iscsi_flags;
|
||||
nm_setting_dcb_get_app_iscsi_priority;
|
||||
nm_setting_dcb_get_priority_bandwidth;
|
||||
nm_setting_dcb_get_priority_flow_control;
|
||||
nm_setting_dcb_get_priority_flow_control_flags;
|
||||
nm_setting_dcb_get_priority_group_bandwidth;
|
||||
nm_setting_dcb_get_priority_group_flags;
|
||||
nm_setting_dcb_get_priority_group_id;
|
||||
nm_setting_dcb_get_priority_strict_bandwidth;
|
||||
nm_setting_dcb_get_priority_traffic_class;
|
||||
nm_setting_dcb_new;
|
||||
nm_setting_dcb_set_priority_bandwidth;
|
||||
nm_setting_dcb_set_priority_flow_control;
|
||||
nm_setting_dcb_set_priority_group_bandwidth;
|
||||
nm_setting_dcb_set_priority_group_id;
|
||||
nm_setting_dcb_set_priority_strict_bandwidth;
|
||||
nm_setting_dcb_set_priority_traffic_class;
|
||||
nm_setting_generic_new;
|
||||
nm_setting_get_secret_flags;
|
||||
nm_setting_get_type;
|
||||
nm_setting_gsm_get_apn;
|
||||
nm_setting_gsm_get_device_id;
|
||||
nm_setting_gsm_get_home_only;
|
||||
nm_setting_gsm_get_network_id;
|
||||
nm_setting_gsm_get_number;
|
||||
nm_setting_gsm_get_password;
|
||||
nm_setting_gsm_get_pin;
|
||||
nm_setting_gsm_get_sim_id;
|
||||
nm_setting_gsm_get_sim_operator_id;
|
||||
nm_setting_gsm_get_username;
|
||||
nm_setting_infiniband_get_mac_address;
|
||||
nm_setting_infiniband_get_mtu;
|
||||
nm_setting_infiniband_get_p_key;
|
||||
nm_setting_infiniband_get_parent;
|
||||
nm_setting_infiniband_get_transport_mode;
|
||||
nm_setting_infiniband_get_type;
|
||||
nm_setting_infiniband_new;
|
||||
nm_setting_ip4_config_get_dhcp_client_id;
|
||||
nm_setting_ip4_config_get_dhcp_fqdn;
|
||||
nm_setting_ip4_config_get_type;
|
||||
nm_setting_ip4_config_new;
|
||||
nm_setting_ip6_config_addr_gen_mode_get_type;
|
||||
nm_setting_ip6_config_get_addr_gen_mode;
|
||||
nm_setting_ip6_config_get_ip6_privacy;
|
||||
nm_setting_ip6_config_get_token;
|
||||
nm_setting_ip6_config_get_type;
|
||||
nm_setting_ip6_config_new;
|
||||
nm_setting_ip_config_add_address;
|
||||
nm_setting_ip_config_add_dns;
|
||||
nm_setting_ip_config_add_dns_option;
|
||||
nm_setting_ip_config_add_dns_search;
|
||||
nm_setting_ip_config_add_route;
|
||||
nm_setting_ip_config_clear_dns_options;
|
||||
nm_setting_ip_config_get_address;
|
||||
nm_setting_ip_config_get_dad_timeout;
|
||||
nm_setting_ip_config_get_dhcp_hostname;
|
||||
nm_setting_ip_config_get_dhcp_send_hostname;
|
||||
nm_setting_ip_config_get_dhcp_timeout;
|
||||
nm_setting_ip_config_get_dns;
|
||||
nm_setting_ip_config_get_dns_option;
|
||||
nm_setting_ip_config_get_dns_priority;
|
||||
nm_setting_ip_config_get_dns_search;
|
||||
nm_setting_ip_config_get_gateway;
|
||||
nm_setting_ip_config_get_ignore_auto_dns;
|
||||
nm_setting_ip_config_get_ignore_auto_routes;
|
||||
nm_setting_ip_config_get_may_fail;
|
||||
nm_setting_ip_config_get_method;
|
||||
nm_setting_ip_config_get_never_default;
|
||||
nm_setting_ip_config_get_num_addresses;
|
||||
nm_setting_ip_config_get_num_dns;
|
||||
nm_setting_ip_config_get_num_dns_options;
|
||||
nm_setting_ip_config_get_num_dns_searches;
|
||||
nm_setting_ip_config_get_num_routes;
|
||||
nm_setting_ip_config_get_route;
|
||||
nm_setting_ip_config_get_route_metric;
|
||||
nm_setting_ip_config_get_type;
|
||||
nm_setting_ip_config_has_dns_options;
|
||||
nm_setting_olpc_mesh_get_channel;
|
||||
nm_setting_olpc_mesh_get_dhcp_anycast_address;
|
||||
nm_setting_olpc_mesh_get_ssid;
|
||||
nm_setting_olpc_mesh_new;
|
||||
nm_setting_ppp_get_noauth;
|
||||
nm_setting_ppp_get_refuse_chap;
|
||||
nm_setting_ppp_get_refuse_eap;
|
||||
nm_setting_ppp_get_refuse_mschap;
|
||||
nm_setting_ppp_get_refuse_mschapv2;
|
||||
nm_setting_ppp_get_refuse_pap;
|
||||
nm_setting_ppp_new;
|
||||
nm_setting_pppoe_get_password;
|
||||
nm_setting_pppoe_get_type;
|
||||
nm_setting_pppoe_get_username;
|
||||
nm_setting_pppoe_new;
|
||||
nm_setting_proxy_get_browser_only;
|
||||
nm_setting_proxy_get_method;
|
||||
nm_setting_proxy_get_pac_script;
|
||||
nm_setting_proxy_get_pac_url;
|
||||
nm_setting_proxy_new;
|
||||
nm_setting_team_get_config;
|
||||
nm_setting_team_get_type;
|
||||
nm_setting_team_new;
|
||||
nm_setting_team_port_get_config;
|
||||
nm_setting_team_port_new;
|
||||
nm_setting_verify;
|
||||
nm_setting_vlan_add_priority_str;
|
||||
nm_setting_vlan_get_flags;
|
||||
nm_setting_vlan_get_id;
|
||||
nm_setting_vlan_get_parent;
|
||||
nm_setting_vlan_get_type;
|
||||
nm_setting_vlan_new;
|
||||
nm_setting_wired_add_s390_option;
|
||||
nm_setting_wired_get_cloned_mac_address;
|
||||
nm_setting_wired_get_generate_mac_address_mask;
|
||||
nm_setting_wired_get_mac_address;
|
||||
nm_setting_wired_get_mac_address_blacklist;
|
||||
nm_setting_wired_get_mtu;
|
||||
nm_setting_wired_get_num_s390_options;
|
||||
nm_setting_wired_get_s390_nettype;
|
||||
nm_setting_wired_get_s390_option;
|
||||
nm_setting_wired_get_s390_option_by_key;
|
||||
nm_setting_wired_get_s390_subchannels;
|
||||
nm_setting_wired_get_type;
|
||||
nm_setting_wired_get_wake_on_lan;
|
||||
nm_setting_wired_get_wake_on_lan_password;
|
||||
nm_setting_wired_new;
|
||||
nm_setting_wireless_ap_security_compatible;
|
||||
nm_setting_wireless_get_band;
|
||||
nm_setting_wireless_get_bssid;
|
||||
nm_setting_wireless_get_channel;
|
||||
nm_setting_wireless_get_cloned_mac_address;
|
||||
nm_setting_wireless_get_generate_mac_address_mask;
|
||||
nm_setting_wireless_get_hidden;
|
||||
nm_setting_wireless_get_mac_address;
|
||||
nm_setting_wireless_get_mac_address_blacklist;
|
||||
nm_setting_wireless_get_mac_address_randomization;
|
||||
nm_setting_wireless_get_mode;
|
||||
nm_setting_wireless_get_mtu;
|
||||
nm_setting_wireless_get_powersave;
|
||||
nm_setting_wireless_get_ssid;
|
||||
nm_setting_wireless_get_type;
|
||||
nm_setting_wireless_new;
|
||||
nm_setting_wireless_security_add_group;
|
||||
nm_setting_wireless_security_add_pairwise;
|
||||
nm_setting_wireless_security_add_proto;
|
||||
nm_setting_wireless_security_get_auth_alg;
|
||||
nm_setting_wireless_security_get_group;
|
||||
nm_setting_wireless_security_get_key_mgmt;
|
||||
nm_setting_wireless_security_get_leap_password;
|
||||
nm_setting_wireless_security_get_leap_password_flags;
|
||||
nm_setting_wireless_security_get_leap_username;
|
||||
nm_setting_wireless_security_get_num_groups;
|
||||
nm_setting_wireless_security_get_num_pairwise;
|
||||
nm_setting_wireless_security_get_num_protos;
|
||||
nm_setting_wireless_security_get_pairwise;
|
||||
nm_setting_wireless_security_get_proto;
|
||||
nm_setting_wireless_security_get_psk;
|
||||
nm_setting_wireless_security_get_psk_flags;
|
||||
nm_setting_wireless_security_get_type;
|
||||
nm_setting_wireless_security_get_wep_key;
|
||||
nm_setting_wireless_security_get_wep_key_flags;
|
||||
nm_setting_wireless_security_get_wep_key_type;
|
||||
nm_setting_wireless_security_get_wep_tx_keyidx;
|
||||
nm_setting_wireless_security_new;
|
||||
nm_setting_wireless_security_set_wep_key;
|
||||
nm_settings_add_connection;
|
||||
nm_settings_connection_add_seen_bssid;
|
||||
nm_settings_connection_commit_changes;
|
||||
nm_settings_connection_delete;
|
||||
nm_settings_connection_get_filename;
|
||||
nm_settings_connection_get_nm_generated;
|
||||
nm_settings_connection_get_timestamp;
|
||||
nm_settings_connection_get_type;
|
||||
nm_settings_connection_has_seen_bssid;
|
||||
nm_settings_connection_replace_settings;
|
||||
nm_settings_connection_set_autoconnect_blocked_reason;
|
||||
nm_settings_connection_set_filename;
|
||||
nm_settings_connection_set_flags;
|
||||
nm_settings_connection_set_ready;
|
||||
nm_settings_connection_signal_remove;
|
||||
nm_settings_error_quark;
|
||||
nm_settings_get;
|
||||
nm_settings_get_best_connections;
|
||||
nm_settings_get_connections;
|
||||
nm_settings_get_type;
|
||||
nm_settings_plugin_get_type;
|
||||
nm_simple_connection_new;
|
||||
nm_supplicant_config_add_no_security;
|
||||
nm_supplicant_config_add_setting_wireless;
|
||||
nm_supplicant_config_add_setting_wireless_security;
|
||||
nm_supplicant_config_new;
|
||||
nm_supplicant_interface_disconnect;
|
||||
nm_supplicant_interface_get_ap_support;
|
||||
nm_supplicant_interface_get_current_bss;
|
||||
nm_supplicant_interface_get_last_scan_time;
|
||||
nm_supplicant_interface_get_max_scan_ssids;
|
||||
nm_supplicant_interface_get_scanning;
|
||||
nm_supplicant_interface_get_state;
|
||||
nm_supplicant_interface_request_scan;
|
||||
nm_supplicant_interface_set_config;
|
||||
nm_supplicant_interface_state_to_string;
|
||||
nm_supplicant_manager_create_interface;
|
||||
nm_supplicant_manager_get;
|
||||
nm_utils_bin2hexstr;
|
||||
nm_utils_complete_generic;
|
||||
nm_utils_enum_from_str;
|
||||
nm_utils_enum_to_str;
|
||||
nm_utils_escape_ssid;
|
||||
nm_utils_file_set_contents;
|
||||
nm_utils_find_helper;
|
||||
nm_utils_g_value_set_object_path;
|
||||
nm_utils_get_ip_config_method;
|
||||
nm_utils_get_monotonic_timestamp_s;
|
||||
nm_utils_hexstr2bin;
|
||||
nm_utils_hw_addr_gen_random_eth;
|
||||
nm_utils_hwaddr_aton;
|
||||
nm_utils_hwaddr_matches;
|
||||
nm_utils_hwaddr_ntoa;
|
||||
nm_utils_hwaddr_valid;
|
||||
nm_utils_iface_valid_name;
|
||||
nm_utils_inet4_ntop;
|
||||
nm_utils_ip4_get_default_prefix;
|
||||
nm_utils_ip4_netmask_to_prefix;
|
||||
nm_utils_ip4_prefix_to_netmask;
|
||||
nm_utils_ipaddr_valid;
|
||||
nm_utils_is_empty_ssid;
|
||||
nm_utils_is_json_object;
|
||||
nm_utils_kill_child_async;
|
||||
nm_utils_monotonic_timestamp_as_boottime;
|
||||
nm_utils_rsa_key_encrypt;
|
||||
nm_utils_same_ssid;
|
||||
nm_utils_setpgid;
|
||||
nm_utils_ssid_to_utf8;
|
||||
nm_utils_strbuf_append;
|
||||
nm_utils_strbuf_append_str;
|
||||
nm_utils_uuid_generate;
|
||||
nm_utils_uuid_generate_from_string;
|
||||
nm_utils_wep_key_valid;
|
||||
nm_utils_wifi_channel_to_freq;
|
||||
nm_utils_wifi_freq_to_channel;
|
||||
|
||||
/* The _IO_stdin_used symbol is used by the GNU libc to determine
|
||||
which version of the I/O function should be used. Not
|
||||
exporting it means that the "old" version is used, causing
|
||||
crashes or other issues on some architectures. */
|
||||
_IO_stdin_used;
|
||||
local:
|
||||
*;
|
||||
|
|
104
tools/create-exports-NetworkManager.sh
Executable file
104
tools/create-exports-NetworkManager.sh
Executable file
|
@ -0,0 +1,104 @@
|
|||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
# generates the linker version script src/NetworkManager.ver
|
||||
# by looking at the symbols needed by the device and settings
|
||||
# plugins. Note that this depends on how NetworkManager and
|
||||
# the plugins are build. For example, compiling without
|
||||
# --with-more-asserts will yield less symbols.
|
||||
#
|
||||
# _build re-builds NetworkManager with relevant compile time
|
||||
# options to yield the most symbols.
|
||||
_build() {
|
||||
git clean -fdx
|
||||
./autogen.sh --enable-ld-gc --enable-ifcfg-rh --enable-ifupdown \
|
||||
--enable-ifnet --enable-ibft --enable-teamdctl --enable-wifi \
|
||||
--with-modem-manager-1 --with-ofono --with-more-asserts \
|
||||
--with-more-logging
|
||||
make -j20
|
||||
}
|
||||
|
||||
_sort() {
|
||||
LANG=C sort -u
|
||||
}
|
||||
|
||||
call_nm() {
|
||||
nm "$1" |
|
||||
sed -n 's/^................ \(.\) \(.*\)$/\1 \2/p'
|
||||
}
|
||||
|
||||
get_symbols_nm () {
|
||||
call_nm ./src/NetworkManager |
|
||||
sed -n 's/^[tTDR] //p' |
|
||||
_sort
|
||||
}
|
||||
|
||||
get_symbols_explict() {
|
||||
cat <<EOF | _sort
|
||||
_IO_stdin_used
|
||||
EOF
|
||||
}
|
||||
|
||||
get_symbols_missing() {
|
||||
(for f in ./src/settings/plugins/*/.libs/*.so ./src/devices/*/.libs/*.so; do
|
||||
call_nm "$f" |
|
||||
sed -n 's/^\([U]\) \(\(nm_\|nmp_\|_nm\|NM\|_NM\).*\)$/\2/p'
|
||||
done) |
|
||||
_sort |
|
||||
grep -Fx -f <(get_symbols_explict) -v |
|
||||
grep -Fx -f <(get_symbols_nm)
|
||||
}
|
||||
|
||||
pretty() {
|
||||
sed 's/.*/\t\0;/'
|
||||
}
|
||||
|
||||
do_build() {
|
||||
do_update
|
||||
touch src/main.c
|
||||
make
|
||||
}
|
||||
|
||||
do_rebuild() {
|
||||
_build
|
||||
do_build
|
||||
}
|
||||
|
||||
do_update() {
|
||||
do_generate > ./src/NetworkManager.ver
|
||||
}
|
||||
|
||||
do_generate() {
|
||||
cd "$(realpath $(dirname "$0"))/.."
|
||||
test -f ./src/NetworkManager
|
||||
|
||||
cat <<EOF
|
||||
# this file is generated by $0
|
||||
{
|
||||
global:
|
||||
$(get_symbols_missing | pretty)
|
||||
|
||||
$(get_symbols_explict | pretty)
|
||||
local:
|
||||
*;
|
||||
};
|
||||
EOF
|
||||
}
|
||||
|
||||
|
||||
case "$1" in
|
||||
rebuild)
|
||||
do_rebuild
|
||||
;;
|
||||
build)
|
||||
do_build
|
||||
;;
|
||||
update)
|
||||
do_update
|
||||
;;
|
||||
*)
|
||||
do_generate
|
||||
;;
|
||||
esac
|
||||
|
Loading…
Reference in a new issue