tree-wide: make use of new DLSYM_ARG() macro everywhere

This commit is contained in:
Lennart Poettering 2020-12-03 20:21:11 +01:00
parent e2f03674bc
commit 5517e214c8
5 changed files with 49 additions and 41 deletions

View File

@ -27,16 +27,24 @@ int dlopen_pcre2(void) {
return log_error_errno(SYNTHETIC_ERRNO(EOPNOTSUPP), return log_error_errno(SYNTHETIC_ERRNO(EOPNOTSUPP),
"PCRE2 support is not installed: %s", dlerror()); "PCRE2 support is not installed: %s", dlerror());
/* So here's something weird: PCRE2 actually renames the symbols exported by the library via C
* macros, so that the exported symbols carry a suffix "_8" but when used from C the suffix is
* gone. In the argument list below we ignore this mangling. Surprisingly (at least to me), we
* actually get away with that. That's because DLSYM_ARG() useses STRINGIFY() to generate a string
* version of the symbol name, and that resolves the macro mapping implicitly already, so that the
* string actually contains the "_8" suffix already due to that and we don't have to append it
* manually anymore. C is weird. 🤯 */
r = dlsym_many_and_warn( r = dlsym_many_and_warn(
dl, dl,
LOG_ERR, LOG_ERR,
&sym_pcre2_match_data_create, "pcre2_match_data_create_8", DLSYM_ARG(pcre2_match_data_create),
&sym_pcre2_match_data_free, "pcre2_match_data_free_8", DLSYM_ARG(pcre2_match_data_free),
&sym_pcre2_code_free, "pcre2_code_free_8", DLSYM_ARG(pcre2_code_free),
&sym_pcre2_compile, "pcre2_compile_8", DLSYM_ARG(pcre2_compile),
&sym_pcre2_get_error_message, "pcre2_get_error_message_8", DLSYM_ARG(pcre2_get_error_message),
&sym_pcre2_match, "pcre2_match_8", DLSYM_ARG(pcre2_match),
&sym_pcre2_get_ovector_pointer, "pcre2_get_ovector_pointer_8", DLSYM_ARG(pcre2_get_ovector_pointer),
NULL); NULL);
if (r < 0) if (r < 0)
return r; return r;

View File

@ -43,25 +43,25 @@ int dlopen_cryptsetup(void) {
r = dlsym_many_and_warn( r = dlsym_many_and_warn(
dl, dl,
LOG_DEBUG, LOG_DEBUG,
&sym_crypt_activate_by_passphrase, "crypt_activate_by_passphrase", DLSYM_ARG(crypt_activate_by_passphrase),
#if HAVE_CRYPT_ACTIVATE_BY_SIGNED_KEY #if HAVE_CRYPT_ACTIVATE_BY_SIGNED_KEY
&sym_crypt_activate_by_signed_key, "crypt_activate_by_signed_key", DLSYM_ARG(crypt_activate_by_signed_key),
#endif #endif
&sym_crypt_activate_by_volume_key, "crypt_activate_by_volume_key", DLSYM_ARG(crypt_activate_by_volume_key),
&sym_crypt_deactivate_by_name, "crypt_deactivate_by_name", DLSYM_ARG(crypt_deactivate_by_name),
&sym_crypt_format, "crypt_format", DLSYM_ARG(crypt_format),
&sym_crypt_free, "crypt_free", DLSYM_ARG(crypt_free),
&sym_crypt_get_dir, "crypt_get_dir", DLSYM_ARG(crypt_get_dir),
&sym_crypt_get_verity_info, "crypt_get_verity_info", DLSYM_ARG(crypt_get_verity_info),
&sym_crypt_init, "crypt_init", DLSYM_ARG(crypt_init),
&sym_crypt_init_by_name, "crypt_init_by_name", DLSYM_ARG(crypt_init_by_name),
&sym_crypt_keyslot_add_by_volume_key, "crypt_keyslot_add_by_volume_key", DLSYM_ARG(crypt_keyslot_add_by_volume_key),
&sym_crypt_load, "crypt_load", DLSYM_ARG(crypt_load),
&sym_crypt_resize, "crypt_resize", DLSYM_ARG(crypt_resize),
&sym_crypt_set_data_device, "crypt_set_data_device", DLSYM_ARG(crypt_set_data_device),
&sym_crypt_set_debug_level, "crypt_set_debug_level", DLSYM_ARG(crypt_set_debug_level),
&sym_crypt_set_log_callback, "crypt_set_log_callback", DLSYM_ARG(crypt_set_log_callback),
&sym_crypt_volume_key_get, "crypt_volume_key_get", DLSYM_ARG(crypt_volume_key_get),
NULL); NULL);
if (r < 0) if (r < 0)
return r; return r;

View File

@ -35,9 +35,9 @@ int dlopen_idn(void) {
r = dlsym_many_and_warn( r = dlsym_many_and_warn(
dl, dl,
LOG_DEBUG, LOG_DEBUG,
&sym_idn2_lookup_u8, "idn2_lookup_u8", DLSYM_ARG(idn2_lookup_u8),
&sym_idn2_strerror, "idn2_strerror", DLSYM_ARG(idn2_strerror),
&sym_idn2_to_unicode_8z8z, "idn2_to_unicode_8z8z", DLSYM_ARG(idn2_to_unicode_8z8z),
NULL); NULL);
if (r < 0) if (r < 0)
return r; return r;
@ -76,10 +76,10 @@ int dlopen_idn(void) {
r = dlsym_many_and_warn( r = dlsym_many_and_warn(
dl, dl,
LOG_DEBUG, LOG_DEBUG,
&sym_idna_to_ascii_4i, "idna_to_ascii_4i", DLSYM_ARG(idna_to_ascii_4i),
&sym_idna_to_unicode_44i, "idna_to_unicode_44i", DLSYM_ARG(idna_to_unicode_44i),
&sym_stringprep_ucs4_to_utf8, "stringprep_ucs4_to_utf8", DLSYM_ARG(stringprep_ucs4_to_utf8),
&sym_stringprep_utf8_to_ucs4, "stringprep_utf8_to_ucs4", DLSYM_ARG(stringprep_utf8_to_ucs4),
NULL); NULL);
if (r < 0) if (r < 0)
return r; return r;

View File

@ -38,14 +38,14 @@ int dlopen_pwquality(void) {
r = dlsym_many_and_warn( r = dlsym_many_and_warn(
dl, dl,
LOG_DEBUG, LOG_DEBUG,
&sym_pwquality_check, "pwquality_check", DLSYM_ARG(pwquality_check),
&sym_pwquality_default_settings, "pwquality_default_settings", DLSYM_ARG(pwquality_default_settings),
&sym_pwquality_free_settings, "pwquality_free_settings", DLSYM_ARG(pwquality_free_settings),
&sym_pwquality_generate, "pwquality_generate", DLSYM_ARG(pwquality_generate),
&sym_pwquality_get_str_value, "pwquality_get_str_value", DLSYM_ARG(pwquality_get_str_value),
&sym_pwquality_read_config, "pwquality_read_config", DLSYM_ARG(pwquality_read_config),
&sym_pwquality_set_int_value, "pwquality_set_int_value", DLSYM_ARG(pwquality_set_int_value),
&sym_pwquality_strerror, "pwquality_strerror", DLSYM_ARG(pwquality_strerror),
NULL); NULL);
if (r < 0) if (r < 0)
return r; return r;

View File

@ -84,8 +84,8 @@ int print_qrcode(FILE *out, const char *header, const char *string) {
r = dlsym_many_and_warn( r = dlsym_many_and_warn(
dl, dl,
LOG_DEBUG, LOG_DEBUG,
&sym_QRcode_encodeString, "QRcode_encodeString", DLSYM_ARG(QRcode_encodeString),
&sym_QRcode_free, "QRcode_free", DLSYM_ARG(QRcode_free),
NULL); NULL);
if (r < 0) if (r < 0)
return r; return r;