From patchwork Thu Jul 26 17:15:23 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Marcin Niestroj X-Patchwork-Id: 949835 Return-Path: X-Original-To: incoming-buildroot@patchwork.ozlabs.org Delivered-To: patchwork-incoming-buildroot@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=busybox.net (client-ip=140.211.166.137; helo=fraxinus.osuosl.org; envelope-from=buildroot-bounces@busybox.net; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=grinn-global.com Received: from fraxinus.osuosl.org (smtp4.osuosl.org [140.211.166.137]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 41bzJb1d2rz9ryn for ; Fri, 27 Jul 2018 03:15:59 +1000 (AEST) Received: from localhost (localhost [127.0.0.1]) by fraxinus.osuosl.org (Postfix) with ESMTP id 94F7186E8A; Thu, 26 Jul 2018 17:15:57 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from fraxinus.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id A5eRiwhdP3lC; Thu, 26 Jul 2018 17:15:53 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by fraxinus.osuosl.org (Postfix) with ESMTP id D575686E7A; Thu, 26 Jul 2018 17:15:53 +0000 (UTC) X-Original-To: buildroot@lists.busybox.net Delivered-To: buildroot@osuosl.org Received: from fraxinus.osuosl.org (smtp4.osuosl.org [140.211.166.137]) by ash.osuosl.org (Postfix) with ESMTP id C32051CF305 for ; Thu, 26 Jul 2018 17:15:52 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by fraxinus.osuosl.org (Postfix) with ESMTP id C060E86E76 for ; Thu, 26 Jul 2018 17:15:52 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from fraxinus.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id FLT8XQ9g8fNg for ; Thu, 26 Jul 2018 17:15:48 +0000 (UTC) X-Greylist: from auto-whitelisted by SQLgrey-1.7.6 Received: from smtp.megiteam.pl (smtp.megiteam.pl [31.186.83.105]) by fraxinus.osuosl.org (Postfix) with ESMTPS id 8319886E89 for ; Thu, 26 Jul 2018 17:15:48 +0000 (UTC) Received: from [95.143.241.142] (helo=localhost.localdomain) by smtp.megiteam.pl with esmtpsa (TLS1.2:DHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1fijrS-0007Aa-7P; Thu, 26 Jul 2018 19:15:45 +0200 From: Marcin Niestroj To: buildroot@buildroot.org Date: Thu, 26 Jul 2018 19:15:23 +0200 Message-Id: <20180726171524.479-1-m.niestroj@grinn-global.com> X-Mailer: git-send-email 2.18.0 Subject: [Buildroot] [PATCH v3 1/2] package/lvm2: Fix runtime crash when using uclibc X-BeenThere: buildroot@busybox.net X-Mailman-Version: 2.1.24 Precedence: list List-Id: Discussion and development of buildroot List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Marcin Niestroj MIME-Version: 1.0 Errors-To: buildroot-bounces@busybox.net Sender: "buildroot" When using uclibc libdevmapper.so was calling dm_task_get_info_base() function recursively, leading to segmentation fault. This was happening because uclibc linker loader just takes first existing 'dm_task_get_info' (which is 'dm_task_get_info_base') symbol in elf binary, instead of default version. Add upstreamable lvm2 patch [1], which introduces --enable-symvers[=STYLE] switch. Use that switch to disable symbol versions, as we do not plan to support binaries compiled against old libdevmapper library. [1] https://www.redhat.com/archives/dm-devel/2018-July/msg00187.html Signed-off-by: Marcin Niestroj --- Changes v2 -> v3: none Changes v1 -> v2: * Add SoB in patch itself (suggested by Thomas) * Make this patch first in series, so it can be applied for LTS branches (sugested by Thomas) * Rebase patch on current lvm2 Buildroot master version (2.02.173), so it can apply cleanly ...gure-Introduce-enable-symvers-option.patch | 277 ++++++++++++++++++ package/lvm2/lvm2.mk | 3 +- 2 files changed, 279 insertions(+), 1 deletion(-) create mode 100644 package/lvm2/0001-configure-Introduce-enable-symvers-option.patch diff --git a/package/lvm2/0001-configure-Introduce-enable-symvers-option.patch b/package/lvm2/0001-configure-Introduce-enable-symvers-option.patch new file mode 100644 index 0000000000..8ca39c2cab --- /dev/null +++ b/package/lvm2/0001-configure-Introduce-enable-symvers-option.patch @@ -0,0 +1,277 @@ +From f563334a76e31442f7b8693d2d350e6981c51c46 Mon Sep 17 00:00:00 2001 +From: Marcin Niestroj +Date: Fri, 20 Jul 2018 14:26:44 +0200 +Subject: [PATCH] configure: Introduce --enable-symvers option + +Only few libc (e.g. glibc) libraries support full symbol version +resolution in runtime. There are lot of standard libraries that do not +support that, such as dietlibc, musl and uclibc. Hence there is no +reason to generate symbol versions when compiling against them. + +Additionally libdevmapper.so was broken when compiled against +uclibc. Runtime linker loader caused calling dm_task_get_info_base() +function recursively, leading to segmentation fault. + +Introduce --enable-symvers[=STYLE] option, which allows to choose +between gnu and disabled symbol versioning. By default gnu symbol +versioning is used to provide backward compatibility. +__GNUC__ check is replaced now with GNU_SYMVER, which is generated by +configure script. Additionally ld version script is included only in +case of gnu option, which slightly reduces output size. + +Providing --disable-symvers to configure script when building against +uclibc library fixes segmentation fault error described above, due to +lack of several versions of the same symbol in libdevmapper.so +library. + +Signed-off-by: Marcin Niestroj +--- + configure | 32 ++++++++++++++++++++++++++++++-- + configure.in | 28 +++++++++++++++++++++++++--- + include/configure.h.in | 3 +++ + lib/misc/lib.h | 10 +++++----- + libdm/datastruct/bitset.c | 5 +---- + libdm/ioctl/libdm-iface.c | 2 +- + libdm/libdm-deptree.c | 2 +- + libdm/libdm-stats.c | 2 +- + 8 files changed, 67 insertions(+), 17 deletions(-) + +diff --git a/configure b/configure +index e1ae0e884..c5d11c1b6 100755 +--- a/configure ++++ b/configure +@@ -985,6 +985,7 @@ enable_fsadm + enable_blkdeactivate + enable_dmeventd + enable_selinux ++enable_symvers + enable_nls + with_localedir + with_confdir +@@ -1729,6 +1730,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: +@@ -3169,7 +3173,6 @@ if test -z "$CFLAGS"; then : + fi + case "$host_os" in + linux*) +- CLDFLAGS="$CLDFLAGS -Wl,--version-script,.export.sym" + ELDFLAGS="-Wl,--export-dynamic" + # FIXME Generate list and use --dynamic-list=.dlopen.sym + CLDWHOLEARCHIVE="-Wl,-whole-archive" +@@ -3190,7 +3193,6 @@ case "$host_os" in + ;; + darwin*) + CFLAGS="$CFLAGS -no-cpp-precomp -fno-common" +- CLDFLAGS="$CLDFLAGS" + ELDFLAGS= + CLDWHOLEARCHIVE="-all_load" + CLDNOWHOLEARCHIVE= +@@ -14609,6 +14611,32 @@ 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/configure.in b/configure.in +index 2e5e015c8..09c390850 100644 +--- a/configure.in ++++ b/configure.in +@@ -30,12 +30,10 @@ AC_CANONICAL_TARGET([]) + AS_IF([test -z "$CFLAGS"], [COPTIMISE_FLAG="-O2"]) + case "$host_os" in + linux*) +- CLDFLAGS="$CLDFLAGS -Wl,--version-script,.export.sym" + ELDFLAGS="-Wl,--export-dynamic" + # FIXME Generate list and use --dynamic-list=.dlopen.sym + CLDWHOLEARCHIVE="-Wl,-whole-archive" + CLDNOWHOLEARCHIVE="-Wl,-no-whole-archive" +- LDDEPS="$LDDEPS .export.sym" + LIB_SUFFIX=so + DEVMAPPER=yes + BUILD_LVMETAD=no +@@ -51,7 +49,6 @@ case "$host_os" in + ;; + darwin*) + CFLAGS="$CFLAGS -no-cpp-precomp -fno-common" +- CLDFLAGS="$CLDFLAGS" + ELDFLAGS= + CLDWHOLEARCHIVE="-all_load" + CLDNOWHOLEARCHIVE= +@@ -1742,6 +1739,31 @@ package as well (which may be called readline-devel or something similar).]) + LIBS=$lvm_saved_libs + fi + ++################################################################################ ++dnl -- Symbol versioning ++AC_MSG_CHECKING(whether to enable symbol versioning) ++AC_ARG_ENABLE(symvers, ++ AC_HELP_STRING([--enable-symvers[[[=STYLE]]]], ++ [enables symbol versioning of the shared library [default=gnu]]), ++ [ ++ case "$enableval" in ++ gnu|no) ;; ++ *) AC_MSG_ERROR(Unknown argument to enable/disable symvers) ;; ++ esac], ++ enable_symvers=gnu) ++AC_MSG_RESULT($enable_symvers) ++ ++if test x$GCC = xyes && test x$enable_symvers = xgnu ; then ++ AC_DEFINE(GNU_SYMVER, 1, ++ [Define to use GNU versioning in the shared library.]) ++ case "$host_os" in ++ linux*) ++ CLDFLAGS="$CLDFLAGS -Wl,--version-script,.export.sym" ++ LDDEPS="$LDDEPS .export.sym" ++ ;; ++ esac ++fi ++ + ################################################################################ + dnl -- Internationalisation stuff + AC_MSG_CHECKING(whether to enable internationalisation) +diff --git a/include/configure.h.in b/include/configure.h.in +index 51726506c..3fc181b1e 100644 +--- a/include/configure.h.in ++++ b/include/configure.h.in +@@ -151,6 +151,9 @@ + /* Path to fsadm binary. */ + #undef FSADM_PATH + ++/* Define to use GNU versioning in the shared library. */ ++#undef GNU_SYMVER ++ + /* Define to 1 if you have the `alarm' function. */ + #undef HAVE_ALARM + +diff --git a/lib/misc/lib.h b/lib/misc/lib.h +index 8ed06f81d..9b3ce8a03 100644 +--- a/lib/misc/lib.h ++++ b/lib/misc/lib.h +@@ -42,16 +42,16 @@ + * macro DM_EXPORT_SYMBOL to export the function and bind it to the + * specified version string. + * +- * Since versioning is only available when compiling with GCC the entire +- * compatibility version should be enclosed in '#if defined(__GNUC__)', +- * for example: ++ * Since versioning is only available when compiling with GCC ++ * and GLIBC the entire compatibility version should be enclosed ++ * in '#if defined(GNU_SYMVER)', for example: + * + * int dm_foo(int bar) + * { + * return bar; + * } + * +- * #if defined(__GNUC__) ++ * #if defined(GNU_SYMVER) + * // Backward compatible dm_foo() version 1.02.104 + * int dm_foo_v1_02_104(void); + * int dm_foo_v1_02_104(void) +@@ -68,7 +68,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 b0826e1eb..2ec3f8f84 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(). +@@ -253,7 +253,4 @@ dm_bitset_t dm_bitset_parse_list_v1_02_129(const char *str, struct dm_pool *mem) + return dm_bitset_parse_list(str, mem, 0); + } + 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 c47e08467..b98afb15d 100644 +--- a/libdm/ioctl/libdm-iface.c ++++ b/libdm/ioctl/libdm-iface.c +@@ -2137,7 +2137,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 cf4fd62e7..474871da5 100644 +--- a/libdm/libdm-deptree.c ++++ b/libdm/libdm-deptree.c +@@ -4110,7 +4110,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 bc498675f..d424928c7 100644 +--- a/libdm/libdm-stats.c ++++ b/libdm/libdm-stats.c +@@ -5064,7 +5064,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, +-- +2.18.0 + diff --git a/package/lvm2/lvm2.mk b/package/lvm2/lvm2.mk index 20e0dd0d5c..ccdc2c38e6 100644 --- a/package/lvm2/lvm2.mk +++ b/package/lvm2/lvm2.mk @@ -19,7 +19,8 @@ LVM2_CONF_OPTS += \ --enable-pkgconfig \ --enable-cmdlib \ --enable-dmeventd \ - --disable-nls + --disable-nls \ + --disable-symvers LVM2_DEPENDENCIES += host-pkgconf From patchwork Thu Jul 26 17:15:24 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Marcin Niestroj X-Patchwork-Id: 949837 Return-Path: X-Original-To: incoming-buildroot@patchwork.ozlabs.org Delivered-To: patchwork-incoming-buildroot@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=busybox.net (client-ip=140.211.166.138; helo=whitealder.osuosl.org; envelope-from=buildroot-bounces@busybox.net; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=grinn-global.com Received: from whitealder.osuosl.org (smtp1.osuosl.org [140.211.166.138]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 41bzJs4c7kz9ryn for ; Fri, 27 Jul 2018 03:16:13 +1000 (AEST) Received: from localhost (localhost [127.0.0.1]) by whitealder.osuosl.org (Postfix) with ESMTP id 8261187A9F; Thu, 26 Jul 2018 17:16:11 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from whitealder.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id ryp81opCXvki; Thu, 26 Jul 2018 17:16:07 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by whitealder.osuosl.org (Postfix) with ESMTP id 8A5F687A48; Thu, 26 Jul 2018 17:16:07 +0000 (UTC) X-Original-To: buildroot@lists.busybox.net Delivered-To: buildroot@osuosl.org Received: from fraxinus.osuosl.org (smtp4.osuosl.org [140.211.166.137]) by ash.osuosl.org (Postfix) with ESMTP id 66C681CF305 for ; Thu, 26 Jul 2018 17:16:06 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by fraxinus.osuosl.org (Postfix) with ESMTP id 642A186E76 for ; Thu, 26 Jul 2018 17:16:06 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from fraxinus.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id UWCVxfLmbqzy for ; Thu, 26 Jul 2018 17:16:02 +0000 (UTC) X-Greylist: from auto-whitelisted by SQLgrey-1.7.6 Received: from smtp.megiteam.pl (smtp.megiteam.pl [31.186.83.105]) by fraxinus.osuosl.org (Postfix) with ESMTPS id 5104C86E7A for ; Thu, 26 Jul 2018 17:16:02 +0000 (UTC) Received: from [95.143.241.142] (helo=localhost.localdomain) by smtp.megiteam.pl with esmtpsa (TLS1.2:DHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1fijre-0007Aa-Nz; Thu, 26 Jul 2018 19:15:59 +0200 From: Marcin Niestroj To: buildroot@buildroot.org Date: Thu, 26 Jul 2018 19:15:24 +0200 Message-Id: <20180726171524.479-2-m.niestroj@grinn-global.com> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20180726171524.479-1-m.niestroj@grinn-global.com> References: <20180726171524.479-1-m.niestroj@grinn-global.com> Subject: [Buildroot] [PATCH v3 2/2] package/lvm2: bump version to 2.02.180 X-BeenThere: buildroot@busybox.net X-Mailman-Version: 2.1.24 Precedence: list List-Id: Discussion and development of buildroot List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Marcin Niestroj MIME-Version: 1.0 Errors-To: buildroot-bounces@busybox.net Sender: "buildroot" lvm2 starting from version 2.02.178 depends on libaio library. Signed-off-by: Marcin Niestroj --- Changes v2 -> v3: * Add missing libaio dependency in luksmeta (suggested by Baruch) Changes v1 -> v2: * Add libaio dependencies for all packages that select lvm2 (suggested by Baruch) * Adjust lvm2 patch in 'PATCH 1/2' to new lvm2 version package/cryptsetup/Config.in | 2 + package/dmraid/Config.in | 2 + package/docker-engine/Config.in | 1 + package/luksmeta/Config.in | 2 + ...gure-Introduce-enable-symvers-option.patch | 55 ++++++++++--------- package/lvm2/Config.in | 3 + package/lvm2/lvm2.hash | 4 +- package/lvm2/lvm2.mk | 6 +- package/udisks/Config.in | 3 + 9 files changed, 46 insertions(+), 32 deletions(-) diff --git a/package/cryptsetup/Config.in b/package/cryptsetup/Config.in index 7322a4baf6..e4500b1cf2 100644 --- a/package/cryptsetup/Config.in +++ b/package/cryptsetup/Config.in @@ -1,5 +1,6 @@ config BR2_PACKAGE_CRYPTSETUP bool "cryptsetup" + depends on BR2_PACKAGE_LIBAIO_ARCH_SUPPORTS # lvm2 depends on BR2_TOOLCHAIN_HAS_THREADS # lvm2 depends on BR2_USE_MMU # lvm2 depends on !BR2_STATIC_LIBS # lvm2 @@ -17,5 +18,6 @@ config BR2_PACKAGE_CRYPTSETUP comment "cryptsetup needs a toolchain w/ threads, dynamic library" depends on BR2_USE_MMU + depends on BR2_PACKAGE_LIBAIO_ARCH_SUPPORTS depends on BR2_TOOLCHAIN_HAS_SYNC_4 depends on BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HAS_THREADS diff --git a/package/dmraid/Config.in b/package/dmraid/Config.in index aa98c853a1..ffa75a7084 100644 --- a/package/dmraid/Config.in +++ b/package/dmraid/Config.in @@ -1,5 +1,6 @@ config BR2_PACKAGE_DMRAID bool "dmraid" + depends on BR2_PACKAGE_LIBAIO_ARCH_SUPPORTS # lvm2 depends on BR2_TOOLCHAIN_HAS_THREADS # lvm2 depends on BR2_USE_MMU # lvm2 depends on !BR2_STATIC_LIBS # lvm2 @@ -14,4 +15,5 @@ config BR2_PACKAGE_DMRAID comment "dmraid needs a toolchain w/ threads, dynamic library" depends on BR2_USE_MMU + depends on BR2_PACKAGE_LIBAIO_ARCH_SUPPORTS depends on BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HAS_THREADS diff --git a/package/docker-engine/Config.in b/package/docker-engine/Config.in index 8feb11b48c..1f417d1c53 100644 --- a/package/docker-engine/Config.in +++ b/package/docker-engine/Config.in @@ -44,6 +44,7 @@ config BR2_PACKAGE_DOCKER_ENGINE_DRIVER_BTRFS config BR2_PACKAGE_DOCKER_ENGINE_DRIVER_DEVICEMAPPER bool "devicemapper filesystem driver" + depends on BR2_PACKAGE_LIBAIO_ARCH_SUPPORTS # lvm2 depends on BR2_TOOLCHAIN_HAS_THREADS # lvm2 depends on BR2_USE_MMU # lvm2 depends on !BR2_STATIC_LIBS # lvm2 diff --git a/package/luksmeta/Config.in b/package/luksmeta/Config.in index ddc9b6f3bf..373d5f7517 100644 --- a/package/luksmeta/Config.in +++ b/package/luksmeta/Config.in @@ -1,5 +1,6 @@ config BR2_PACKAGE_LUKSMETA bool "luksmeta" + depends on BR2_PACKAGE_LIBAIO_ARCH_SUPPORTS # cryptsetup -> lvm2 depends on BR2_TOOLCHAIN_HAS_THREADS # cryptsetup -> lvm2 depends on BR2_USE_MMU # cryptsetup -> lvm2 depends on !BR2_STATIC_LIBS # cryptsetup -> lvm2 @@ -13,5 +14,6 @@ config BR2_PACKAGE_LUKSMETA comment "luksmeta needs a toolchain w/ threads, dynamic library" depends on BR2_USE_MMU + depends on BR2_PACKAGE_LIBAIO_ARCH_SUPPORTS depends on BR2_TOOLCHAIN_HAS_SYNC_4 depends on BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HAS_THREADS diff --git a/package/lvm2/0001-configure-Introduce-enable-symvers-option.patch b/package/lvm2/0001-configure-Introduce-enable-symvers-option.patch index 8ca39c2cab..7ef153313c 100644 --- a/package/lvm2/0001-configure-Introduce-enable-symvers-option.patch +++ b/package/lvm2/0001-configure-Introduce-enable-symvers-option.patch @@ -1,4 +1,4 @@ -From f563334a76e31442f7b8693d2d350e6981c51c46 Mon Sep 17 00:00:00 2001 +From 94d71c49eb1682a73465eb162b0a059561168bb2 Mon Sep 17 00:00:00 2001 From: Marcin Niestroj Date: Fri, 20 Jul 2018 14:26:44 +0200 Subject: [PATCH] configure: Introduce --enable-symvers option @@ -27,7 +27,7 @@ library. Signed-off-by: Marcin Niestroj --- configure | 32 ++++++++++++++++++++++++++++++-- - configure.in | 28 +++++++++++++++++++++++++--- + configure.ac | 28 +++++++++++++++++++++++++--- include/configure.h.in | 3 +++ lib/misc/lib.h | 10 +++++----- libdm/datastruct/bitset.c | 5 +---- @@ -37,10 +37,10 @@ Signed-off-by: Marcin Niestroj 8 files changed, 67 insertions(+), 17 deletions(-) diff --git a/configure b/configure -index e1ae0e884..c5d11c1b6 100755 +index 7d945dfa8..94cd6b1ea 100755 --- a/configure +++ b/configure -@@ -985,6 +985,7 @@ enable_fsadm +@@ -975,6 +975,7 @@ enable_fsadm enable_blkdeactivate enable_dmeventd enable_selinux @@ -48,7 +48,7 @@ index e1ae0e884..c5d11c1b6 100755 enable_nls with_localedir with_confdir -@@ -1729,6 +1730,9 @@ Optional Features: +@@ -1725,6 +1726,9 @@ Optional Features: --disable-blkdeactivate disable blkdeactivate --enable-dmeventd enable the device-mapper event daemon --disable-selinux disable selinux support @@ -58,15 +58,15 @@ index e1ae0e884..c5d11c1b6 100755 --enable-nls enable Native Language Support Optional Packages: -@@ -3169,7 +3173,6 @@ if test -z "$CFLAGS"; then : +@@ -3156,7 +3160,6 @@ if test -z "$CFLAGS"; then : fi case "$host_os" in linux*) - CLDFLAGS="$CLDFLAGS -Wl,--version-script,.export.sym" + # equivalent to -rdynamic ELDFLAGS="-Wl,--export-dynamic" # FIXME Generate list and use --dynamic-list=.dlopen.sym - CLDWHOLEARCHIVE="-Wl,-whole-archive" -@@ -3190,7 +3193,6 @@ case "$host_os" in +@@ -3178,7 +3181,6 @@ case "$host_os" in ;; darwin*) CFLAGS="$CFLAGS -no-cpp-precomp -fno-common" @@ -74,7 +74,7 @@ index e1ae0e884..c5d11c1b6 100755 ELDFLAGS= CLDWHOLEARCHIVE="-all_load" CLDNOWHOLEARCHIVE= -@@ -14609,6 +14611,32 @@ done +@@ -14401,6 +14403,32 @@ done LIBS=$lvm_saved_libs fi @@ -107,15 +107,16 @@ index e1ae0e884..c5d11c1b6 100755 ################################################################################ { $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/configure.in b/configure.in -index 2e5e015c8..09c390850 100644 ---- a/configure.in -+++ b/configure.in -@@ -30,12 +30,10 @@ AC_CANONICAL_TARGET([]) +diff --git a/configure.ac b/configure.ac +index e427708cd..2e8712f92 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -30,13 +30,11 @@ AC_CANONICAL_TARGET([]) AS_IF([test -z "$CFLAGS"], [COPTIMISE_FLAG="-O2"]) case "$host_os" in linux*) - CLDFLAGS="$CLDFLAGS -Wl,--version-script,.export.sym" + # equivalent to -rdynamic ELDFLAGS="-Wl,--export-dynamic" # FIXME Generate list and use --dynamic-list=.dlopen.sym CLDWHOLEARCHIVE="-Wl,-whole-archive" @@ -124,7 +125,7 @@ index 2e5e015c8..09c390850 100644 LIB_SUFFIX=so DEVMAPPER=yes BUILD_LVMETAD=no -@@ -51,7 +49,6 @@ case "$host_os" in +@@ -52,7 +50,6 @@ case "$host_os" in ;; darwin*) CFLAGS="$CFLAGS -no-cpp-precomp -fno-common" @@ -132,7 +133,7 @@ index 2e5e015c8..09c390850 100644 ELDFLAGS= CLDWHOLEARCHIVE="-all_load" CLDNOWHOLEARCHIVE= -@@ -1742,6 +1739,31 @@ package as well (which may be called readline-devel or something similar).]) +@@ -1656,6 +1653,31 @@ package as well (which may be called readline-devel or something similar).]) LIBS=$lvm_saved_libs fi @@ -165,10 +166,10 @@ index 2e5e015c8..09c390850 100644 dnl -- Internationalisation stuff AC_MSG_CHECKING(whether to enable internationalisation) diff --git a/include/configure.h.in b/include/configure.h.in -index 51726506c..3fc181b1e 100644 +index 15fd150ed..7a07a10ef 100644 --- a/include/configure.h.in +++ b/include/configure.h.in -@@ -151,6 +151,9 @@ +@@ -147,6 +147,9 @@ /* Path to fsadm binary. */ #undef FSADM_PATH @@ -179,10 +180,10 @@ index 51726506c..3fc181b1e 100644 #undef HAVE_ALARM diff --git a/lib/misc/lib.h b/lib/misc/lib.h -index 8ed06f81d..9b3ce8a03 100644 +index d7fa5c721..7cf98f932 100644 --- a/lib/misc/lib.h +++ b/lib/misc/lib.h -@@ -42,16 +42,16 @@ +@@ -41,16 +41,16 @@ * macro DM_EXPORT_SYMBOL to export the function and bind it to the * specified version string. * @@ -203,7 +204,7 @@ index 8ed06f81d..9b3ce8a03 100644 * // Backward compatible dm_foo() version 1.02.104 * int dm_foo_v1_02_104(void); * int dm_foo_v1_02_104(void) -@@ -68,7 +68,7 @@ +@@ -67,7 +67,7 @@ * versions of library symbols prior to the introduction of symbol * versioning: it must never be used for new symbols. */ @@ -234,10 +235,10 @@ index b0826e1eb..2ec3f8f84 100644 - #endif diff --git a/libdm/ioctl/libdm-iface.c b/libdm/ioctl/libdm-iface.c -index c47e08467..b98afb15d 100644 +index 769b69c1b..28e2eadee 100644 --- a/libdm/ioctl/libdm-iface.c +++ b/libdm/ioctl/libdm-iface.c -@@ -2137,7 +2137,7 @@ void dm_lib_exit(void) +@@ -2145,7 +2145,7 @@ void dm_lib_exit(void) _version_checked = 0; } @@ -247,10 +248,10 @@ index c47e08467..b98afb15d 100644 * 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 cf4fd62e7..474871da5 100644 +index ab0545659..00651c0b2 100644 --- a/libdm/libdm-deptree.c +++ b/libdm/libdm-deptree.c -@@ -4110,7 +4110,7 @@ void dm_tree_node_set_callback(struct dm_tree_node *dnode, +@@ -3797,7 +3797,7 @@ void dm_tree_node_set_callback(struct dm_tree_node *dnode, dnode->callback_data = data; } @@ -260,10 +261,10 @@ index cf4fd62e7..474871da5 100644 * Backward compatible implementations. * diff --git a/libdm/libdm-stats.c b/libdm/libdm-stats.c -index bc498675f..d424928c7 100644 +index 94ad380e0..76efbbe35 100644 --- a/libdm/libdm-stats.c +++ b/libdm/libdm-stats.c -@@ -5064,7 +5064,7 @@ int dm_stats_start_filemapd(int fd, uint64_t group_id, const char *path, +@@ -5065,7 +5065,7 @@ int dm_stats_start_filemapd(int fd, uint64_t group_id, const char *path, * current dm_stats_create_region() version. */ diff --git a/package/lvm2/Config.in b/package/lvm2/Config.in index 0dd6d53b4a..5f706982cd 100644 --- a/package/lvm2/Config.in +++ b/package/lvm2/Config.in @@ -1,8 +1,10 @@ config BR2_PACKAGE_LVM2 bool "lvm2 & device mapper" + depends on BR2_PACKAGE_LIBAIO_ARCH_SUPPORTS depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_USE_MMU # needs fork() depends on !BR2_STATIC_LIBS # It fails to build statically + select BR2_PACKAGE_LIBAIO help This is LVM2, the rewrite of The Linux Logical Volume Manager. LVM supports enterprise level volume management of disk and @@ -50,4 +52,5 @@ endif comment "lvm2 needs a toolchain w/ threads, dynamic library" depends on BR2_USE_MMU + depends on BR2_PACKAGE_LIBAIO_ARCH_SUPPORTS depends on BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HAS_THREADS diff --git a/package/lvm2/lvm2.hash b/package/lvm2/lvm2.hash index b0dfcfcef3..697a413995 100644 --- a/package/lvm2/lvm2.hash +++ b/package/lvm2/lvm2.hash @@ -1,5 +1,5 @@ -# From ftp://sources.redhat.com/pub/lvm2/releases/sha512.sum -sha512 c2ea8beafe006abf9282f51ec98600fd0ebff816d53c10ecbb19bbf336ada4825135cf9c92ccd364afb18f8b1d7e163eff5bdec8dfdd70dfb9ba45db2f6bdd5e LVM2.2.02.173.tgz +# From ftp://sources.redhat.com/pub/lvm2/sha512.sum +sha512 6e0a10ab48be4f0c751447c6ab88b8f9fa1dcd1d703de77966e8507b173df70b1987fa0be252c31dfce9e0ee70e5f439db58c8f534e24144a70f254c091554ee LVM2.2.02.180.tgz # Locally computed sha256 checksums sha256 e76fbcd2fb97cf202da330301327754d2db5c58b5b4bebd3a8a749393e7603d1 COPYING sha256 5df07007198989c622f5d41de8d703e7bef3d0e79d62e24332ee739a452af62a COPYING.LIB diff --git a/package/lvm2/lvm2.mk b/package/lvm2/lvm2.mk index ccdc2c38e6..2352f17af0 100644 --- a/package/lvm2/lvm2.mk +++ b/package/lvm2/lvm2.mk @@ -4,9 +4,9 @@ # ################################################################################ -LVM2_VERSION = 2.02.173 +LVM2_VERSION = 2.02.180 LVM2_SOURCE = LVM2.$(LVM2_VERSION).tgz -LVM2_SITE = ftp://sources.redhat.com/pub/lvm2/releases +LVM2_SITE = ftp://sources.redhat.com/pub/lvm2 LVM2_INSTALL_STAGING = YES LVM2_LICENSE = GPL-2.0, LGPL-2.1 LVM2_LICENSE_FILES = COPYING COPYING.LIB @@ -22,7 +22,7 @@ LVM2_CONF_OPTS += \ --disable-nls \ --disable-symvers -LVM2_DEPENDENCIES += host-pkgconf +LVM2_DEPENDENCIES += host-pkgconf libaio # LVM2 uses autoconf, but not automake, and the build system does not # take into account the toolchain passed at configure time. diff --git a/package/udisks/Config.in b/package/udisks/Config.in index 6573cda221..e7782028d1 100644 --- a/package/udisks/Config.in +++ b/package/udisks/Config.in @@ -1,6 +1,7 @@ config BR2_PACKAGE_UDISKS bool "udisks" depends on BR2_PACKAGE_HAS_UDEV + depends on BR2_PACKAGE_LIBAIO_ARCH_SUPPORTS # lvm2 depends on BR2_TOOLCHAIN_HAS_THREADS # dbus-glib -> glib2 depends on BR2_USE_MMU # lvm2 depends on !BR2_STATIC_LIBS # lvm2 @@ -38,9 +39,11 @@ endif comment "udisks needs udev /dev management" depends on BR2_USE_MMU + depends on BR2_PACKAGE_LIBAIO_ARCH_SUPPORTS depends on !BR2_PACKAGE_HAS_UDEV comment "udisks needs a glibc or uClibc toolchain w/ wchar, threads, dynamic library" depends on BR2_USE_MMU + depends on BR2_PACKAGE_LIBAIO_ARCH_SUPPORTS depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || \ BR2_STATIC_LIBS || BR2_TOOLCHAIN_USES_MUSL