|
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 |
|