diff options
author | Cem Keylan <cem@ckyln.com> | 2019-12-09 19:17:24 +0300 |
---|---|---|
committer | Cem Keylan <cem@ckyln.com> | 2019-12-09 19:17:24 +0300 |
commit | 03423e0583057cbe5a16f8439183e2dbc0e8dd7c (patch) | |
tree | 81fe3ba69d94146f83fb5541d1fb2da0ac4eac08 /extra/lvm2 | |
download | repository-03423e0583057cbe5a16f8439183e2dbc0e8dd7c.tar.gz |
secondary commit
Diffstat (limited to 'extra/lvm2')
-rwxr-xr-x | extra/lvm2/build | 41 | ||||
-rw-r--r-- | extra/lvm2/checksums | 3 | ||||
-rw-r--r-- | extra/lvm2/depends | 3 | ||||
-rw-r--r-- | extra/lvm2/patches/disable-symver.patch | 136 | ||||
-rw-r--r-- | extra/lvm2/patches/fix-stdio-usage.patch | 58 | ||||
-rw-r--r-- | extra/lvm2/sources | 3 | ||||
-rw-r--r-- | extra/lvm2/version | 1 |
7 files changed, 245 insertions, 0 deletions
diff --git a/extra/lvm2/build b/extra/lvm2/build new file mode 100755 index 00000000..ffa71785 --- /dev/null +++ b/extra/lvm2/build @@ -0,0 +1,41 @@ +#!/bin/sh -e + +patch -p1 < fix-stdio-usage.patch +patch -p1 < disable-symver.patch + +# LVM2 calls 'fmt -1' throughout the build process. +# Busybox doesn't provide this command, however +# all it does is split words one per line and +# 'tr' can be used in its place. +sed -i 's/fmt -1/tr " " "\\n"/' \ + make.tmpl.in libdm/make.tmpl.in + +# The build fails when using busybox's 'mkdir'(?), +# swap to using 'install -d' instead which works. +export MKDIR_P="install -d" + +./configure \ + --prefix=/usr \ + --sbindir=/usr/bin \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --disable-selinux \ + --enable-pkgconfig \ + --enable-fsadm \ + --enable-dmeventd \ + --enable-cmdlib \ + --enable-udev_sync \ + --enable-udev_rules \ + --enable-symvers=no \ + --disable-symvers \ + --with-default-dm-run-dir=/run \ + --with-default-locking-dir=/run/lock/lvm \ + --with-default-pid-dir=/run \ + --with-default-run-dir=/run/lvm + +make DESTDIR="$1" install + +# Make all libraries and binaries writable. +chmod -v u+w "$1/usr/lib/"* \ + "$1/usr/include/"* \ + "$1/usr/bin/"* diff --git a/extra/lvm2/checksums b/extra/lvm2/checksums new file mode 100644 index 00000000..c5677346 --- /dev/null +++ b/extra/lvm2/checksums @@ -0,0 +1,3 @@ +91753976ea1b9d94475781680be667a61fe611e89050fc73e1edbebbdc87ed44 LVM2.2.03.06.tgz +36b598a65d24b18ae7b7657b37343788c96ae56cb9673a13a09423c031002b32 fix-stdio-usage.patch +0eafb3464043c81644c919e42c79f7fbd614ca27a4bf5665b658856008147e59 disable-symver.patch diff --git a/extra/lvm2/depends b/extra/lvm2/depends new file mode 100644 index 00000000..95359853 --- /dev/null +++ b/extra/lvm2/depends @@ -0,0 +1,3 @@ +eudev +libaio +util-linux 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; diff --git a/extra/lvm2/sources b/extra/lvm2/sources new file mode 100644 index 00000000..34dd5d35 --- /dev/null +++ b/extra/lvm2/sources @@ -0,0 +1,3 @@ +https://mirrors.kernel.org/sourceware/lvm2/releases/LVM2.2.03.06.tgz +patches/fix-stdio-usage.patch +patches/disable-symver.patch diff --git a/extra/lvm2/version b/extra/lvm2/version new file mode 100644 index 00000000..7ddcde45 --- /dev/null +++ b/extra/lvm2/version @@ -0,0 +1 @@ +2.03.06 1 |