sys-fs/btrfs-progs: fix libbtrfs library, bug #613890

Two fixes are here:
- fixed undefined symbols in libbtrfs.so.0 (__error symbol)
- added missing 'sizes.h' kernel compatibility header.

Reported-by: Denis Descheneaux
Bug: https://bugs.gentoo.org/613890
Package-Manager: Portage-2.3.5, Repoman-2.3.2
This commit is contained in:
Sergei Trofimovich
2017-03-27 21:44:55 +01:00
parent 63b1c6ff5d
commit a061e9c010
3 changed files with 71 additions and 0 deletions

View File

@@ -53,6 +53,11 @@ DEPEND="${RDEPEND}
)
"
PATCHES=(
"${FILESDIR}"/${P}-messages.patch
"${FILESDIR}"/${P}-fix-headers.patch
)
if [[ ${PV} == 9999 ]]; then
DEPEND+=" sys-devel/gnuconfig"
fi

View File

@@ -0,0 +1,32 @@
Add missing 'sizes.h' header install.
Noticed on snapper build failure:
In file included from btrfs/send-utils.h:28:0,
from BtrfsUtils.cc:36:
btrfs/ctree.h:37:25: fatal error: linux/sizes.h: No such file or directory
diff --git a/Makefile b/Makefile
index 05a5d06..fb1cfd6 100644
--- a/Makefile
+++ b/Makefile
@@ -108,7 +108,7 @@ libbtrfs_objects = send-stream.o send-utils.o kernel-lib/rbtree.o btrfs-list.o \
uuid-tree.o utils-lib.o rbtree-utils.o
libbtrfs_headers = send-stream.h send-utils.h send.h kernel-lib/rbtree.h btrfs-list.h \
kernel-lib/crc32c.h kernel-lib/list.h kerncompat.h \
- kernel-lib/radix-tree.h extent-cache.h \
+ kernel-lib/radix-tree.h kernel-lib/sizes.h extent-cache.h \
extent_io.h ioctl.h ctree.h btrfsck.h version.h
convert_objects = convert/main.o convert/common.o convert/source-fs.o \
convert/source-ext2.o
diff --git a/ctree.h b/ctree.h
index 1d0622d..c8f771b 100644
--- a/ctree.h
+++ b/ctree.h
@@ -34,7 +34,7 @@
#include <btrfs/extent-cache.h>
#include <btrfs/extent_io.h>
#include <btrfs/ioctl.h>
-#include <linux/sizes.h>
+#include <btrfs/sizes.h>
#endif /* BTRFS_FLAT_INCLUDES */
struct btrfs_root;

View File

@@ -0,0 +1,34 @@
Fix missing __error symbol in libbtrfs.so.0.
The easiest way to reproduce it is to try to build
btrfs-progs with LDFLAGS=-Wl,--no-undefined :
btrfs-list.o: In function `lookup_ino_path':
btrfs-list.c:(.text+0x7d2): undefined reference to `__error'
Reported-by: Denis Descheneaux
Bug: https://bugs.gentoo.org/show_bug.cgi?id=613890
diff --git a/Makefile b/Makefile
index 67fbc48..05a5d06 100644
--- a/Makefile
+++ b/Makefile
@@ -97,3 +97,3 @@ objects = ctree.o disk-io.o kernel-lib/radix-tree.o extent-tree.o print-tree.o \
inode.o file.o find-root.o free-space-tree.o help.o send-dump.o \
- fsfeatures.o messages.o
+ fsfeatures.o
cmds_objects = cmds-subvolume.o cmds-filesystem.o cmds-device.o cmds-scrub.o \
@@ -106,3 +106,3 @@ cmds_objects = cmds-subvolume.o cmds-filesystem.o cmds-device.o cmds-scrub.o \
libbtrfs_objects = send-stream.o send-utils.o kernel-lib/rbtree.o btrfs-list.o \
- kernel-lib/crc32c.o \
+ kernel-lib/crc32c.o messages.o \
uuid-tree.o utils-lib.o rbtree-utils.o
@@ -448,3 +448,3 @@ test-ioctl: ioctl-test ioctl-test-32 ioctl-test-64
-library-test: library-test.o messages.o $(libs_shared)
+library-test: library-test.o $(libs_shared)
@echo " [LD] $@"
@@ -454,3 +454,3 @@ library-test: library-test.o messages.o $(libs_shared)
-library-test.static: library-test.static.o messages.static.o $(libs_static)
+library-test.static: library-test.static.o $(libs_static)
@echo " [LD] $@"