From 000321bab7bea3530408b960095a6ea241451175 Mon Sep 17 00:00:00 2001 From: Reid Linnemann Date: Tue, 17 May 2022 13:49:41 -0600 Subject: namespace nv names, version libnv and libnvpair library symbols libnv and libnvpair have aliased symbols, and as a result a single process which dlopens a shared object that is dynamically linked to libnv and another to libnvpair will wind up with a single set of resolved symbols for those in conflict. A source file also cannot include both libnv and libnvpair headers because of aliased identifiers. To resolve the situation, libnv types and functions are namespaced via nv_namespace.h, and libnv symbols are versioned. The msgio functions are not namespaced or exported as they are not part of the external API. Reviewed by: kevans Sponsored by: Rubicon Communications, LLC ("Netgate") Differential Revision: https://reviews.freebsd.org/D35261 --- lib/libnv/Makefile | 3 + lib/libnv/Version.map | 256 ++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 259 insertions(+) create mode 100644 lib/libnv/Version.map (limited to 'lib') diff --git a/lib/libnv/Makefile b/lib/libnv/Makefile index b13758931c4e..933dacb3eac6 100644 --- a/lib/libnv/Makefile +++ b/lib/libnv/Makefile @@ -8,6 +8,9 @@ PACKAGE= runtime LIB= nv SHLIB_MAJOR= 0 +VERSION_DEF= ${SRCTOP}/lib/libc/Versions.def +VERSION_MAP= ${.CURDIR}/Version.map + .PATH: ${SRCTOP}/sys/contrib/libnv ${SRCTOP}/sys/sys CFLAGS+=-I${.CURDIR} diff --git a/lib/libnv/Version.map b/lib/libnv/Version.map new file mode 100644 index 000000000000..98349c2356d3 --- /dev/null +++ b/lib/libnv/Version.map @@ -0,0 +1,256 @@ +# $FreeBSD$ + +FBSD_1.0 { + global: + FreeBSD_cnvlist_free_binary; + FreeBSD_cnvlist_free_bool; + FreeBSD_cnvlist_free_bool_array; + FreeBSD_cnvlist_free_descriptor; + FreeBSD_cnvlist_free_descriptor_array; + FreeBSD_cnvlist_free_number; + FreeBSD_cnvlist_free_number_array; + FreeBSD_cnvlist_free_nvlist; + FreeBSD_cnvlist_free_nvlist_array; + FreeBSD_cnvlist_free_string; + FreeBSD_cnvlist_free_string_array; + FreeBSD_cnvlist_get_binary; + FreeBSD_cnvlist_get_bool; + FreeBSD_cnvlist_get_bool_array; + FreeBSD_cnvlist_get_descriptor; + FreeBSD_cnvlist_get_descriptor_array; + FreeBSD_cnvlist_get_number; + FreeBSD_cnvlist_get_number_array; + FreeBSD_cnvlist_get_nvlist; + FreeBSD_cnvlist_get_nvlist_array; + FreeBSD_cnvlist_get_string; + FreeBSD_cnvlist_get_string_array; + FreeBSD_cnvlist_name; + FreeBSD_cnvlist_take_binary; + FreeBSD_cnvlist_take_bool; + FreeBSD_cnvlist_take_bool_array; + FreeBSD_cnvlist_take_descriptor; + FreeBSD_cnvlist_take_descriptor_array; + FreeBSD_cnvlist_take_number; + FreeBSD_cnvlist_take_number_array; + FreeBSD_cnvlist_take_nvlist; + FreeBSD_cnvlist_take_nvlist_array; + FreeBSD_cnvlist_take_string; + FreeBSD_cnvlist_take_string_array; + FreeBSD_cnvlist_type; + FreeBSD_dnvlist_get_binary; + FreeBSD_dnvlist_get_bool; + FreeBSD_dnvlist_get_descriptor; + FreeBSD_dnvlist_get_number; + FreeBSD_dnvlist_get_nvlist; + FreeBSD_dnvlist_get_string; + FreeBSD_dnvlist_take_binary; + FreeBSD_dnvlist_take_bool; + FreeBSD_dnvlist_take_descriptor; + FreeBSD_dnvlist_take_number; + FreeBSD_dnvlist_take_nvlist; + FreeBSD_dnvlist_take_string; + FreeBSD_nvlist_add_binary; + FreeBSD_nvlist_add_bool; + FreeBSD_nvlist_add_bool_array; + FreeBSD_nvlist_add_descriptor; + FreeBSD_nvlist_add_descriptor_array; + FreeBSD_nvlist_add_null; + FreeBSD_nvlist_add_number; + FreeBSD_nvlist_add_number_array; + FreeBSD_nvlist_add_nvlist; + FreeBSD_nvlist_add_nvlist_array; + FreeBSD_nvlist_add_nvpair; + FreeBSD_nvlist_add_string; + FreeBSD_nvlist_add_string_array; + FreeBSD_nvlist_add_stringf; + FreeBSD_nvlist_add_stringv; + FreeBSD_nvlist_append_bool_array; + FreeBSD_nvlist_append_descriptor_array; + FreeBSD_nvlist_append_number_array; + FreeBSD_nvlist_append_nvlist_array; + FreeBSD_nvlist_append_string_array; + FreeBSD_nvlist_clone; + FreeBSD_nvlist_create; + FreeBSD_nvlist_descriptors; + FreeBSD_nvlist_destroy; + FreeBSD_nvlist_dump; + FreeBSD_nvlist_empty; + FreeBSD_nvlist_error; + FreeBSD_nvlist_exists; + FreeBSD_nvlist_exists_binary; + FreeBSD_nvlist_exists_bool; + FreeBSD_nvlist_exists_bool_array; + FreeBSD_nvlist_exists_descriptor; + FreeBSD_nvlist_exists_descriptor_array; + FreeBSD_nvlist_exists_null; + FreeBSD_nvlist_exists_number; + FreeBSD_nvlist_exists_number_array; + FreeBSD_nvlist_exists_nvlist; + FreeBSD_nvlist_exists_nvlist_array; + FreeBSD_nvlist_exists_string; + FreeBSD_nvlist_exists_string_array; + FreeBSD_nvlist_exists_type; + FreeBSD_nvlist_fdump; + FreeBSD_nvlist_first_nvpair; + FreeBSD_nvlist_flags; + FreeBSD_nvlist_free; + FreeBSD_nvlist_free_binary; + FreeBSD_nvlist_free_bool; + FreeBSD_nvlist_free_bool_array; + FreeBSD_nvlist_free_descriptor; + FreeBSD_nvlist_free_descriptor_array; + FreeBSD_nvlist_free_null; + FreeBSD_nvlist_free_number; + FreeBSD_nvlist_free_number_array; + FreeBSD_nvlist_free_nvlist; + FreeBSD_nvlist_free_nvlist_array; + FreeBSD_nvlist_free_nvpair; + FreeBSD_nvlist_free_string; + FreeBSD_nvlist_free_string_array; + FreeBSD_nvlist_free_type; + FreeBSD_nvlist_get_array_next; + FreeBSD_nvlist_get_array_next_nvpair; + FreeBSD_nvlist_get_binary; + FreeBSD_nvlist_get_bool; + FreeBSD_nvlist_get_bool_array; + FreeBSD_nvlist_get_descriptor; + FreeBSD_nvlist_get_descriptor_array; + FreeBSD_nvlist_get_number; + FreeBSD_nvlist_get_number_array; + FreeBSD_nvlist_get_nvlist; + FreeBSD_nvlist_get_nvlist_array; + FreeBSD_nvlist_get_nvpair; + FreeBSD_nvlist_get_nvpair_parent; + FreeBSD_nvlist_get_pararr; + FreeBSD_nvlist_get_parent; + FreeBSD_nvlist_get_string; + FreeBSD_nvlist_get_string_array; + FreeBSD_nvlist_in_array; + FreeBSD_nvlist_move_binary; + FreeBSD_nvlist_move_bool_array; + FreeBSD_nvlist_move_descriptor; + FreeBSD_nvlist_move_descriptor_array; + FreeBSD_nvlist_move_number_array; + FreeBSD_nvlist_move_nvlist; + FreeBSD_nvlist_move_nvlist_array; + FreeBSD_nvlist_move_nvpair; + FreeBSD_nvlist_move_string; + FreeBSD_nvlist_move_string_array; + FreeBSD_nvlist_ndescriptors; + FreeBSD_nvlist_next; + FreeBSD_nvlist_next_nvpair; + FreeBSD_nvlist_pack; + FreeBSD_nvlist_prev_nvpair; + FreeBSD_nvlist_recv; + FreeBSD_nvlist_remove_nvpair; + FreeBSD_nvlist_report_missing; + FreeBSD_nvlist_send; + FreeBSD_nvlist_set_array_next; + FreeBSD_nvlist_set_error; + FreeBSD_nvlist_set_flags; + FreeBSD_nvlist_set_parent; + FreeBSD_nvlist_size; + FreeBSD_nvlist_take_binary; + FreeBSD_nvlist_take_bool; + FreeBSD_nvlist_take_bool_array; + FreeBSD_nvlist_take_descriptor; + FreeBSD_nvlist_take_descriptor_array; + FreeBSD_nvlist_take_number; + FreeBSD_nvlist_take_number_array; + FreeBSD_nvlist_take_nvlist; + FreeBSD_nvlist_take_nvlist_array; + FreeBSD_nvlist_take_string; + FreeBSD_nvlist_take_string_array; + FreeBSD_nvlist_unpack; + FreeBSD_nvlist_unpack_header; + FreeBSD_nvlist_xfer; + FreeBSD_nvpair_append_bool_array; + FreeBSD_nvpair_append_descriptor_array; + FreeBSD_nvpair_append_number_array; + FreeBSD_nvpair_append_nvlist_array; + FreeBSD_nvpair_append_string_array; + FreeBSD_nvpair_assert; + FreeBSD_nvpair_clone; + FreeBSD_nvpair_create_binary; + FreeBSD_nvpair_create_bool; + FreeBSD_nvpair_create_bool_array; + FreeBSD_nvpair_create_descriptor; + FreeBSD_nvpair_create_descriptor_array; + FreeBSD_nvpair_create_null; + FreeBSD_nvpair_create_number; + FreeBSD_nvpair_create_number_array; + FreeBSD_nvpair_create_nvlist; + FreeBSD_nvpair_create_nvlist_array; + FreeBSD_nvpair_create_string; + FreeBSD_nvpair_create_string_array; + FreeBSD_nvpair_create_stringf; + FreeBSD_nvpair_create_stringv; + FreeBSD_nvpair_free; + FreeBSD_nvpair_free_structure; + FreeBSD_nvpair_get_binary; + FreeBSD_nvpair_get_bool; + FreeBSD_nvpair_get_bool_array; + FreeBSD_nvpair_get_descriptor; + FreeBSD_nvpair_get_descriptor_array; + FreeBSD_nvpair_get_number; + FreeBSD_nvpair_get_number_array; + FreeBSD_nvpair_get_nvlist; + FreeBSD_nvpair_get_nvlist_array; + FreeBSD_nvpair_get_string; + FreeBSD_nvpair_get_string_array; + FreeBSD_nvpair_header_size; + FreeBSD_nvpair_init_datasize; + FreeBSD_nvpair_insert; + FreeBSD_nvpair_move_binary; + FreeBSD_nvpair_move_bool_array; + FreeBSD_nvpair_move_descriptor; + FreeBSD_nvpair_move_descriptor_array; + FreeBSD_nvpair_move_number_array; + FreeBSD_nvpair_move_nvlist; + FreeBSD_nvpair_move_nvlist_array; + FreeBSD_nvpair_move_string; + FreeBSD_nvpair_move_string_array; + FreeBSD_nvpair_name; + FreeBSD_nvpair_next; + FreeBSD_nvpair_nvlist; + FreeBSD_nvpair_pack_binary; + FreeBSD_nvpair_pack_bool; + FreeBSD_nvpair_pack_bool_array; + FreeBSD_nvpair_pack_descriptor; + FreeBSD_nvpair_pack_descriptor_array; + FreeBSD_nvpair_pack_header; + FreeBSD_nvpair_pack_null; + FreeBSD_nvpair_pack_number; + FreeBSD_nvpair_pack_number_array; + FreeBSD_nvpair_pack_nvlist_array_next; + FreeBSD_nvpair_pack_nvlist_up; + FreeBSD_nvpair_pack_string; + FreeBSD_nvpair_pack_string_array; + FreeBSD_nvpair_prev; + FreeBSD_nvpair_remove; + FreeBSD_nvpair_size; + FreeBSD_nvpair_type; + FreeBSD_nvpair_type_string; + FreeBSD_nvpair_unpack; + FreeBSD_nvpair_unpack_binary; + FreeBSD_nvpair_unpack_bool; + FreeBSD_nvpair_unpack_bool_array; + FreeBSD_nvpair_unpack_descriptor; + FreeBSD_nvpair_unpack_descriptor_array; + FreeBSD_nvpair_unpack_header; + FreeBSD_nvpair_unpack_null; + FreeBSD_nvpair_unpack_number; + FreeBSD_nvpair_unpack_number_array; + FreeBSD_nvpair_unpack_nvlist; + FreeBSD_nvpair_unpack_nvlist_array; + FreeBSD_nvpair_unpack_string; + FreeBSD_nvpair_unpack_string_array; + + local: + buf_recv; + buf_send; + cred_recv; + cred_send; + fd_recv; + fd_send; +}; -- cgit v1.2.3