From: Martin Wilck <mwilck@xxxxxxxx> The "weak" attribute was set to make sure that these symbols are overridden by symbols of the same name in the main executable. This is unnecessary, as the standard ELF symbol resolution algorithm ensures this even without the "weak" attribute. See ELF Specification, III.2 Dynamic Linking / Shared Object Dependencies: "The dynamic linker examines the symbol tables with a breadth-first search. That is, it first looks at the symbol table of the executable program itself, then at the symbol tables of the DT_NEEDED entries (in order), then at the second level DT_NEEDED entries, and so on". Signed-off-by: Martin Wilck <mwilck@xxxxxxxx> --- libmultipath/config.c | 4 ++-- libmultipath/config.h | 11 ----------- 2 files changed, 2 insertions(+), 13 deletions(-) diff --git a/libmultipath/config.c b/libmultipath/config.c index a2c79a4..5c5c072 100644 --- a/libmultipath/config.c +++ b/libmultipath/config.c @@ -82,7 +82,7 @@ struct config *libmp_get_multipath_config(void) } struct config *get_multipath_config(void) - __attribute__((weak, alias("libmp_get_multipath_config"))); + __attribute__((alias("libmp_get_multipath_config"))); void libmp_put_multipath_config(void *conf __attribute__((unused))) { @@ -90,7 +90,7 @@ void libmp_put_multipath_config(void *conf __attribute__((unused))) } void put_multipath_config(void *conf) - __attribute__((weak, alias("libmp_put_multipath_config"))); + __attribute__((alias("libmp_put_multipath_config"))); static int hwe_strmatch (const struct hwentry *hwe1, const struct hwentry *hwe2) diff --git a/libmultipath/config.h b/libmultipath/config.h index fdcdff0..2d00ad2 100644 --- a/libmultipath/config.h +++ b/libmultipath/config.h @@ -303,17 +303,6 @@ void free_config (struct config * conf); int init_config(const char *file); void uninit_config(void); -/* - * libmultipath provides default implementations of - * get_multipath_config() and put_multipath_config(). - * Applications using these should use init_config(file, NULL) - * to load the configuration, rather than load_config(file). - * Likewise, uninit_config() should be used for teardown, but - * using free_config() for that is supported, too. - * Applications can define their own {get,put}_multipath_config() - * functions, which override the library-internal ones, but - * could still call libmp_{get,put}_multipath_config(). - */ struct config *libmp_get_multipath_config(void); struct config *get_multipath_config(void); void libmp_put_multipath_config(void *); -- 2.37.1 -- dm-devel mailing list dm-devel@xxxxxxxxxx https://listman.redhat.com/mailman/listinfo/dm-devel