Blame src/libnm-gtk/check-exports.sh

Packit fabffb
#!/bin/sh
Packit fabffb
Packit fabffb
LC_ALL=C
Packit fabffb
export LC_ALL
Packit fabffb
Packit fabffb
stat=0
Packit fabffb
so="$1"
Packit fabffb
def="$2"
Packit fabffb
PATTERN="_ANCHOR_"
Packit fabffb
Packit fabffb
TMPFILE="$(mktemp .nm-check-exports.XXXXXX)"
Packit fabffb
Packit fabffb
Packit fabffb
get_syms() {
Packit fabffb
    ${NM:-nm} "$1" |
Packit fabffb
    sed -n 's/^[[:xdigit:]]\+ [DT] //p' |
Packit fabffb
    sort
Packit fabffb
}
Packit fabffb
Packit fabffb
get_1_0_0_syms() {
Packit fabffb
	cat <
Packit fabffb
nma_country_info_get_country_code
Packit fabffb
nma_country_info_get_country_name
Packit fabffb
nma_country_info_get_providers
Packit fabffb
nma_country_info_get_type
Packit fabffb
nma_country_info_ref
Packit fabffb
nma_country_info_unref
Packit fabffb
nma_mobile_access_method_get_3gpp_apn
Packit fabffb
nma_mobile_access_method_get_dns
Packit fabffb
nma_mobile_access_method_get_family
Packit fabffb
nma_mobile_access_method_get_gateway
Packit fabffb
nma_mobile_access_method_get_name
Packit fabffb
nma_mobile_access_method_get_password
Packit fabffb
nma_mobile_access_method_get_type
Packit fabffb
nma_mobile_access_method_get_username
Packit fabffb
nma_mobile_access_method_ref
Packit fabffb
nma_mobile_access_method_unref
Packit fabffb
nma_mobile_provider_get_3gpp_mcc_mnc
Packit fabffb
nma_mobile_provider_get_cdma_sid
Packit fabffb
nma_mobile_provider_get_methods
Packit fabffb
nma_mobile_provider_get_name
Packit fabffb
nma_mobile_provider_get_type
Packit fabffb
nma_mobile_provider_ref
Packit fabffb
nma_mobile_providers_database_dump
Packit fabffb
nma_mobile_providers_database_get_countries
Packit fabffb
nma_mobile_providers_database_get_type
Packit fabffb
nma_mobile_providers_database_lookup_3gpp_mcc_mnc
Packit fabffb
nma_mobile_providers_database_lookup_cdma_sid
Packit fabffb
nma_mobile_providers_database_lookup_country
Packit fabffb
nma_mobile_providers_database_new
Packit fabffb
nma_mobile_providers_database_new_finish
Packit fabffb
nma_mobile_providers_database_new_sync
Packit fabffb
nma_mobile_providers_split_3gpp_mcc_mnc
Packit fabffb
nma_mobile_provider_unref
Packit fabffb
nma_mobile_wizard_destroy
Packit fabffb
nma_mobile_wizard_new
Packit fabffb
nma_mobile_wizard_present
Packit fabffb
nma_utils_disambiguate_device_names
Packit fabffb
nma_utils_get_connection_device_name
Packit fabffb
nma_utils_get_device_description
Packit fabffb
nma_utils_get_device_generic_type_name
Packit fabffb
nma_utils_get_device_product
Packit fabffb
nma_utils_get_device_type_name
Packit fabffb
nma_utils_get_device_vendor
Packit fabffb
nma_vpn_password_dialog_focus_password
Packit fabffb
nma_vpn_password_dialog_focus_password_secondary
Packit fabffb
nma_vpn_password_dialog_get_password
Packit fabffb
nma_vpn_password_dialog_get_password_secondary
Packit fabffb
nma_vpn_password_dialog_get_type
Packit fabffb
nma_vpn_password_dialog_new
Packit fabffb
nma_vpn_password_dialog_run_and_block
Packit fabffb
nma_vpn_password_dialog_set_password
Packit fabffb
nma_vpn_password_dialog_set_password_label
Packit fabffb
nma_vpn_password_dialog_set_password_secondary
Packit fabffb
nma_vpn_password_dialog_set_password_secondary_label
Packit fabffb
nma_vpn_password_dialog_set_show_password
Packit fabffb
nma_vpn_password_dialog_set_show_password_secondary
Packit fabffb
nma_wifi_dialog_get_connection
Packit fabffb
nma_wifi_dialog_get_nag_ignored
Packit fabffb
nma_wifi_dialog_get_type
Packit fabffb
nma_wifi_dialog_nag_user
Packit fabffb
nma_wifi_dialog_new
Packit fabffb
nma_wifi_dialog_new_for_create
Packit fabffb
nma_wifi_dialog_new_for_hidden
Packit fabffb
nma_wifi_dialog_new_for_other
Packit fabffb
nma_wifi_dialog_set_nag_ignored
Packit fabffb
nma_wireless_dialog_get_connection
Packit fabffb
nma_wireless_dialog_get_type
Packit fabffb
nma_wireless_dialog_new
Packit fabffb
nma_wireless_dialog_new_for_create
Packit fabffb
nma_wireless_dialog_new_for_other
Packit fabffb
SYMBOLS
Packit fabffb
	}
Packit fabffb
Packit fabffb
get_syms_from_def() {
Packit fabffb
    (sed -n 's/^\t\(\([_a-zA-Z0-9]\+\)\|#\s*\([_a-zA-Z0-9]\+@@\?[_a-zA-Z0-9]\+\)\);$/\2\3/p' "$1";
Packit fabffb
    get_1_0_0_syms)  |
Packit fabffb
    sort
Packit fabffb
}
Packit fabffb
Packit fabffb
anchor() {
Packit fabffb
    sed "s/.*/$PATTERN\0$PATTERN/"
Packit fabffb
}
Packit fabffb
Packit fabffb
unanchor() {
Packit fabffb
    sed "s/^$PATTERN\(.*\)$PATTERN\$/\1/"
Packit fabffb
}
Packit fabffb
Packit fabffb
Packit fabffb
get_syms "$so" | anchor > "$TMPFILE"
Packit fabffb
WRONG="$(get_syms_from_def "$def" | anchor | grep -F -f - "$TMPFILE" -v)"
Packit fabffb
RESULT=$?
Packit fabffb
if [ $RESULT -eq 0 ]; then
Packit fabffb
    stat=1
Packit fabffb
    echo ">>library \"$so\" exports symbols that are not in linker script \"$def\":"
Packit fabffb
    echo "$WRONG" | unanchor | nl
Packit fabffb
fi
Packit fabffb
Packit fabffb
get_syms_from_def "$def" | anchor > "$TMPFILE"
Packit fabffb
WRONG="$(get_syms "$so" | anchor | grep -F -f - "$TMPFILE" -v)"
Packit fabffb
RESULT=$?
Packit fabffb
if [ $RESULT -eq 0 ]; then
Packit fabffb
    stat=1
Packit fabffb
    echo ">>linker script \"$def\" contains symbols that are not exported by library \"$so\":"
Packit fabffb
    echo "$WRONG" | unanchor | nl
Packit fabffb
fi
Packit fabffb
Packit fabffb
rm -rf "$TMPFILE"
Packit fabffb
exit $stat
Packit fabffb