From 03423e0583057cbe5a16f8439183e2dbc0e8dd7c Mon Sep 17 00:00:00 2001 From: Cem Keylan Date: Mon, 9 Dec 2019 19:17:24 +0300 Subject: secondary commit --- extra/lvm2/patches/disable-symver.patch | 136 +++++++++++++++++++++++++++++++ extra/lvm2/patches/fix-stdio-usage.patch | 58 +++++++++++++ 2 files changed, 194 insertions(+) create mode 100644 extra/lvm2/patches/disable-symver.patch create mode 100644 extra/lvm2/patches/fix-stdio-usage.patch (limited to 'extra/lvm2/patches') diff --git a/extra/lvm2/patches/disable-symver.patch b/extra/lvm2/patches/disable-symver.patch new file mode 100644 index 00000000..6216c061 --- /dev/null +++ b/extra/lvm2/patches/disable-symver.patch @@ -0,0 +1,136 @@ +diff --git a/configure b/configure +index 6dd7eda..ef6a416 100755 +--- a/configure ++++ b/configure +@@ -959,6 +959,7 @@ enable_fsadm + enable_blkdeactivate + enable_dmeventd + enable_selinux ++enable_symvers + enable_nls + with_localedir + with_confdir +@@ -1677,6 +1678,9 @@ Optional Features: + --disable-blkdeactivate disable blkdeactivate + --enable-dmeventd enable the device-mapper event daemon + --disable-selinux disable selinux support ++ --enable-symvers[=STYLE] ++ enables symbol versioning of the shared library ++ [default=gnu] + --enable-nls enable Native Language Support + + Optional Packages: +@@ -3077,7 +3081,6 @@ if test -z "$CFLAGS"; then : + fi + case "$host_os" in + linux*) +- CLDFLAGS="${CLDFLAGS-"$LDFLAGS"} -Wl,--version-script,.export.sym" + # equivalent to -rdynamic + ELDFLAGS="-Wl,--export-dynamic" + # FIXME Generate list and use --dynamic-list=.dlopen.sym +@@ -12969,6 +12972,33 @@ done + LIBS=$lvm_saved_libs + fi + ++################################################################################ ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable symbol versioning" >&5 ++$as_echo_n "checking whether to enable symbol versioning... " >&6; } ++# Check whether --enable-symvers was given. ++if test "${enable_symvers+set}" = set; then : ++ enableval=$enable_symvers; ++ case "$enableval" in ++ gnu|no) ;; ++ *) as_fn_error $? "Unknown argument to enable/disable symvers" "$LINENO" 5 ;; ++ esac ++else ++ enable_symvers=gnu ++fi ++ ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_symvers" >&5 ++$as_echo "$enable_symvers" >&6; } ++ ++if test x$GCC = xyes && test x$enable_symvers = xgnu ; then ++ ++$as_echo "#define GNU_SYMVER 1" >>confdefs.h ++ ++ case "$host_os" in ++ linux*) CLDFLAGS="$CLDFLAGS -Wl,--version-script,.export.sym" ;; ++ esac ++fi ++ ++ + ################################################################################ + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable internationalisation" >&5 + $as_echo_n "checking whether to enable internationalisation... " >&6; } +diff --git a/lib/misc/lib.h b/lib/misc/lib.h +index c14f437..79b36a3 100644 +--- a/lib/misc/lib.h ++++ b/lib/misc/lib.h +@@ -62,7 +62,7 @@ + * versions of library symbols prior to the introduction of symbol + * versioning: it must never be used for new symbols. + */ +-#if defined(__GNUC__) ++#if defined(GNU_SYMVER) + #define DM_EXPORT_SYMBOL(func, ver) \ + __asm__(".symver " #func "_v" #ver ", " #func "@DM_" #ver ) + #define DM_EXPORT_SYMBOL_BASE(func) \ +diff --git a/libdm/datastruct/bitset.c b/libdm/datastruct/bitset.c +index 06bd31a..8f36ec7 100644 +--- a/libdm/datastruct/bitset.c ++++ b/libdm/datastruct/bitset.c +@@ -242,7 +242,7 @@ bad: + return NULL; + } + +-#if defined(__GNUC__) ++#if defined(GNU_SYMVER) + /* + * Maintain backward compatibility with older versions that did not + * accept a 'min_num_bits' argument to dm_bitset_parse_list(). +@@ -254,6 +254,4 @@ dm_bitset_t dm_bitset_parse_list_v1_02_129(const char *str, struct dm_pool *mem) + } + DM_EXPORT_SYMBOL(dm_bitset_parse_list, 1_02_129); + +-#else /* if defined(__GNUC__) */ +- + #endif +diff --git a/libdm/ioctl/libdm-iface.c b/libdm/ioctl/libdm-iface.c +index dd46b67..b09abdc 100644 +--- a/libdm/ioctl/libdm-iface.c ++++ b/libdm/ioctl/libdm-iface.c +@@ -2176,7 +2176,7 @@ void dm_lib_exit(void) + _version_checked = 0; + } + +-#if defined(__GNUC__) ++#if defined(GNU_SYMVER) + /* + * Maintain binary backward compatibility. + * Version script mechanism works with 'gcc' compatible compilers only. +diff --git a/libdm/libdm-deptree.c b/libdm/libdm-deptree.c +index ee12da2..08829c5 100644 +--- a/libdm/libdm-deptree.c ++++ b/libdm/libdm-deptree.c +@@ -3811,7 +3811,7 @@ void dm_tree_node_set_callback(struct dm_tree_node *dnode, + dnode->callback_data = data; + } + +-#if defined(__GNUC__) ++#if defined(GNU_SYMVER) + /* + * Backward compatible implementations. + * +diff --git a/libdm/libdm-stats.c b/libdm/libdm-stats.c +index 420e3e1..066bcdf 100644 +--- a/libdm/libdm-stats.c ++++ b/libdm/libdm-stats.c +@@ -5067,7 +5067,7 @@ int dm_stats_start_filemapd(int fd, uint64_t group_id, const char *path, + * current dm_stats_create_region() version. + */ + +-#if defined(__GNUC__) ++#if defined(GNU_SYMVER) + int dm_stats_create_region_v1_02_106(struct dm_stats *dms, uint64_t *region_id, + uint64_t start, uint64_t len, int64_t step, + int precise, const char *program_id, diff --git a/extra/lvm2/patches/fix-stdio-usage.patch b/extra/lvm2/patches/fix-stdio-usage.patch new file mode 100644 index 00000000..3fd80f64 --- /dev/null +++ b/extra/lvm2/patches/fix-stdio-usage.patch @@ -0,0 +1,58 @@ +diff --git a/lib/commands/toolcontext.c b/lib/commands/toolcontext.c +index 479d499..7681a5b 100644 +--- a/lib/commands/toolcontext.c ++++ b/lib/commands/toolcontext.c +@@ -1599,7 +1599,7 @@ struct cmd_context *create_toolcontext(unsigned is_clvmd, + /* FIXME Make this configurable? */ + reset_lvm_errno(1); + +-#ifndef VALGRIND_POOL ++#if defined(__GLIBC__) && !defined(VALGRIND_POOL) + /* Set in/out stream buffering before glibc */ + if (set_buffering + #ifdef SYS_gettid +@@ -1980,7 +1980,7 @@ void destroy_toolcontext(struct cmd_context *cmd) + + if (cmd->pending_delete_mem) + dm_pool_destroy(cmd->pending_delete_mem); +-#ifndef VALGRIND_POOL ++#if defined(__GLIBC__) && !defined(VALGRIND_POOL) + if (cmd->linebuffer) { + /* Reset stream buffering to defaults */ + if (is_valid_fd(STDIN_FILENO) && +diff --git a/tools/lvmcmdline.c b/tools/lvmcmdline.c +index 860e6de..c7539bd 100644 +--- a/tools/lvmcmdline.c ++++ b/tools/lvmcmdline.c +@@ -3209,6 +3209,7 @@ int lvm_split(char *str, int *argc, char **argv, int max) + /* Make sure we have always valid filedescriptors 0,1,2 */ + static int _check_standard_fds(void) + { ++#ifdef __GLIBC__ + int err = is_valid_fd(STDERR_FILENO); + + if (!is_valid_fd(STDIN_FILENO) && +@@ -3236,6 +3237,12 @@ static int _check_standard_fds(void) + return 0; + } + ++#else ++ if (!is_valid_fd(STDERR_FILENO) || ++ !is_valid_fd(STDOUT_FILENO) || ++ !is_valid_fd(STDIN_FILENO)) ++ return 0; ++#endif + return 1; + } + +--- ./lib/mm/memlock.c.orig 2015-03-09 11:18:41.560028850 -0100 ++++ ./lib/mm/memlock.c 2015-03-09 11:19:54.504373309 -0100 +@@ -137,7 +137,7 @@ + + static void _allocate_memory(void) + { +-#ifndef VALGRIND_POOL ++#if !defined(VALGRIND_POOL) && defined(__GLIBC__) + void *stack_mem; + struct rlimit limit; + int i, area = 0, missing = _size_malloc_tmp, max_areas = 32, hblks; -- cgit v1.2.3