Package: libexplain Version: 1.4.D001-2+b1 Severity: serious Tags: sid + patch Justification: FTBFS User: debian-m...@lists.debian.org Usertags: mips-patch
Hi, Package libexplain FTBFS on mips and mipsel with following error: libexplain/buffer/file_inode_flags.c:47:27: error: 'FS_ECOMPR_FL' undeclared (first use in this function) { "FS_ECOMPR_FL", FS_ECOMPR_FL }, ^ libexplain/buffer/file_inode_flags.c:47:27: note: each undeclared identifier is reported only once for each function it appears in libexplain/buffer/file_inode_flags.c:47:9: warning: missing initializer for field 'value' of 'explain_parse_bits_table_t {aka const struct explain_parse_bits_table_t}' [-Wmissing-field-initializers] { "FS_ECOMPR_FL", FS_ECOMPR_FL }, ^ In file included from libexplain/buffer/file_inode_flags.c:25:0: ./libexplain/parse_bits.h:31:21: note: 'value' declared here int value; ^ libexplain/buffer/file_inode_flags.c:56:29: error: 'FS_DIRECTIO_FL' undeclared (first use in this function) { "FS_DIRECTIO_FL", FS_DIRECTIO_FL }, ^ libexplain/buffer/file_inode_flags.c:56:9: warning: missing initializer for field 'value' of 'explain_parse_bits_table_t {aka const struct explain_parse_bits_table_t}' [-Wmissing-field-initializers] { "FS_DIRECTIO_FL", FS_DIRECTIO_FL }, ^ In file included from libexplain/buffer/file_inode_flags.c:25:0: ./libexplain/parse_bits.h:31:21: note: 'value' declared here int value; ^ Makefile:10623: recipe for target 'libexplain/buffer/file_inode_flags.lo' failed make[1]: *** [libexplain/buffer/file_inode_flags.lo] Error 1 build logs: https://buildd.debian.org/status/fetch.php?pkg=libexplain&arch=mips&ver=1.4.D001-2%2Bb1&stamp=1465482111 https://buildd.debian.org/status/fetch.php?pkg=libexplain&arch=mipsel&ver=1.4.D001-2%2Bb1&stamp=1465051476 The code as it is doesn't compile against latest linux headers because FS_ECOMPR_FL and FS_DIRECTIO_FL defines are removed: https://github.com/torvalds/linux/commit/68ce7bfcd995a8a393b1b14fa67dbc16fa3dc784 On openSUSE this issue is resolved by defining the missing defines in libexplain package: https://build.opensuse.org/package/view_file/openSUSE:Factory/libexplain/libexplain-1.4-missing-defines.patch?expand=1 With attached patch I was able to build libexplain successfully for mips, mipsel, i386 and amd64. Regards, Daniel
--- libexplain-1.4.D001.orig/libexplain/buffer/file_inode_flags.c +++ libexplain-1.4.D001/libexplain/buffer/file_inode_flags.c @@ -28,6 +28,14 @@ #if defined(FS_IOC_GETFLAGS) || defined(FS_IOC32_GETFLAGS) +#ifndef FS_ECOMPR_FL +#define FS_ECOMPR_FL 0x00000800 /* Compression error */ +#endif + +#ifndef FS_DIRECTIO_FL +#define FS_DIRECTIO_FL 0x00100000 /* Use direct i/o */ +#endif + void explain_buffer_file_inode_flags(explain_string_buffer_t *sb, int value) {