Browse Source

Merge pull request #639 from smcv/symbol-versions

build: Add a symbol version to all exported symbols
tags/json-c-0.15-20200726
Eric Hawicz GitHub 5 years ago
parent
commit
b01d50b8dc
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 169 additions and 0 deletions
  1. +16
    -0
      CMakeLists.txt
  2. +153
    -0
      json-c.sym

+ 16
- 0
CMakeLists.txt View File

@@ -325,6 +325,22 @@ if (NOT ("${CMAKE_C_COMPILER_ID}" STREQUAL "MSVC"))
# XXX need cmake>=3.13 for this: # XXX need cmake>=3.13 for this:
#add_link_options("-Wl,-Bsymbolic-functions") #add_link_options("-Wl,-Bsymbolic-functions")
endif() endif()

file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/check-version-script.sym" "TEST { global: *; };")
list(APPEND CMAKE_REQUIRED_LIBRARIES "-Wl,--version-script,${CMAKE_CURRENT_BINARY_DIR}/check-version-script.sym")
check_c_source_compiles(
"
int main (void)
{
return 0;
}
"
VERSION_SCRIPT_WORKS
)
list(REMOVE_ITEM CMAKE_REQUIRED_LIBRARIES "-Wl,--version-script,${CMAKE_CURRENT_BINARY_DIR}/check-version-script.sym")
if (VERSION_SCRIPT_WORKS)
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--version-script,${CMAKE_CURRENT_SOURCE_DIR}/json-c.sym")
endif()
endif() endif()


if ($ENV{VALGRIND}) if ($ENV{VALGRIND})


+ 153
- 0
json-c.sym View File

@@ -0,0 +1,153 @@
JSONC_0.14 {
global:
_json_c_set_last_err;
_json_c_strerror;
_json_c_strerror_enable;
array_list_add;
array_list_bsearch;
array_list_del_idx;
array_list_free;
array_list_get_idx;
array_list_length;
array_list_new;
array_list_put_idx;
array_list_sort;
json_c_get_random_seed;
json_c_object_sizeof;
json_c_set_serialization_double_format;
json_c_shallow_copy_default;
json_c_version;
json_c_version_num;
json_c_visit;
json_global_set_string_hash;
json_hex_chars;
json_number_chars;
json_object_array_add;
json_object_array_bsearch;
json_object_array_del_idx;
json_object_array_get_idx;
json_object_array_length;
json_object_array_put_idx;
json_object_array_sort;
json_object_deep_copy;
json_object_double_to_json_string;
json_object_equal;
json_object_free_userdata;
json_object_from_fd;
json_object_from_fd_ex;
json_object_from_file;
json_object_get;
json_object_get_array;
json_object_get_boolean;
json_object_get_double;
json_object_get_int64;
json_object_get_int;
json_object_get_object;
json_object_get_string;
json_object_get_string_len;
json_object_get_type;
json_object_get_uint64;
json_object_get_userdata;
json_object_int_inc;
json_object_is_type;
json_object_iter_begin;
json_object_iter_end;
json_object_iter_equal;
json_object_iter_init_default;
json_object_iter_next;
json_object_iter_peek_name;
json_object_iter_peek_value;
json_object_new_array;
json_object_new_boolean;
json_object_new_double;
json_object_new_double_s;
json_object_new_int64;
json_object_new_int;
json_object_new_null;
json_object_new_object;
json_object_new_string;
json_object_new_string_len;
json_object_new_uint64;
json_object_object_add;
json_object_object_add_ex;
json_object_object_del;
json_object_object_get;
json_object_object_get_ex;
json_object_object_length;
json_object_put;
json_object_set_boolean;
json_object_set_double;
json_object_set_int64;
json_object_set_int;
json_object_set_serializer;
json_object_set_string;
json_object_set_string_len;
json_object_set_uint64;
json_object_set_userdata;
json_object_to_fd;
json_object_to_file;
json_object_to_file_ext;
json_object_to_json_string;
json_object_to_json_string_ext;
json_object_to_json_string_length;
json_object_userdata_to_json_string;
json_parse_double;
json_parse_int64;
json_parse_uint64;
json_pointer_get;
json_pointer_getf;
json_pointer_set;
json_pointer_setf;
json_tokener_error_desc;
json_tokener_free;
json_tokener_get_error;
json_tokener_get_parse_end;
json_tokener_new;
json_tokener_new_ex;
json_tokener_parse;
json_tokener_parse_ex;
json_tokener_parse_verbose;
json_tokener_reset;
json_tokener_set_flags;
json_type_to_name;
json_util_get_last_err;
lh_char_equal;
lh_kchar_table_new;
lh_kptr_table_new;
lh_ptr_equal;
lh_table_delete;
lh_table_delete_entry;
lh_table_free;
lh_table_insert;
lh_table_insert_w_hash;
lh_table_length;
lh_table_lookup;
lh_table_lookup_entry;
lh_table_lookup_entry_w_hash;
lh_table_lookup_ex;
lh_table_new;
lh_table_resize;
mc_debug;
mc_error;
mc_get_debug;
mc_info;
mc_set_debug;
mc_set_syslog;
printbuf_free;
printbuf_memappend;
printbuf_memset;
printbuf_new;
printbuf_reset;
sprintbuf;

local:
*;
};

JSONC_0.15 {
global:
array_list_new2;
array_list_shrink;
json_object_array_shrink;
json_object_new_array_ext;
} JSONC_0.14;

Loading…
Cancel
Save