openzfs / spl

A shim layer which adds the core interfaces required for OpenZFS.
https://zfsonlinux.org/
GNU General Public License v2.0
281 stars 180 forks source link

Build error on Fedora 26 alpha #621

Closed tonyhutter closed 7 years ago

tonyhutter commented 7 years ago

ZFS doesn't build on Fedora 26 alpha. Maybe it's the new compiler?

$ gcc -v
Using built-in specs.
COLLECT_GCC=/usr/bin/gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/7/lto-wrapper
OFFLOAD_TARGET_NAMES=nvptx-none
OFFLOAD_TARGET_DEFAULT=1
Target: x86_64-redhat-linux
Configured with: ../configure --enable-bootstrap --enable-languages=c,c++,objc,obj-c++,fortran,ada,go,lto --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-shared --enable-threads=posix --enable-checking=release --enable-multilib --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-gcc-major-version-only --with-linker-hash-style=gnu --enable-plugin --enable-initfini-array --with-isl --enable-libmpx --enable-offload-targets=nvptx-none --without-cuda-driver --enable-gnu-indirect-function --with-tune=generic --with-arch_32=i686 --build=x86_64-redhat-linux
Thread model: posix
gcc version 7.1.1 20170526 (Red Hat 7.1.1-2) (GCC) 

$ ./autogen.sh && ./configure --enable-debug --with-spl=`pwd`/../spl && make -j7
...
  CC       ddt.lo
  CC       ddt_zap.lo
  CC       dmu.lo
  CC       dmu_diff.lo
  CC       dmu_object.lo
  CC       dmu_objset.lo
In file included from ../../lib/libspl/include/synch.h:33:0,
                 from ../../include/sys/zfs_context.h:96,
                 from ../../module/zfs/ddt.c:27:
../../module/zfs/ddt.c: In function ‘ddt_key_fill’:
../../lib/libspl/include/assert.h:61:7: error: ‘%s’ directive output truncated writing 652 bytes into a region of size 256 [-Werror=format-truncation=]
       "%s %s %s (0x%llx %s 0x%llx)", #LEFT, #OP, #RIGHT, \
       ^
../../lib/libspl/include/assert.h:67:27: note: in expansion of macro ‘VERIFY3_IMPL’
 #define VERIFY3S(x, y, z) VERIFY3_IMPL(x, y, z, int64_t)
                           ^~~~~~~~~~~~
../../lib/libspl/include/assert.h:95:27: note: in expansion of macro ‘VERIFY3S’
 #define ASSERT3S(x, y, z) VERIFY3S(x, y, z)
                           ^~~~~~~~
../../include/sys/spa.h:99:2: note: in expansion of macro ‘ASSERT3S’
  ASSERT3S((val) >> (shift), >=, bias); \
  ^~~~~~~~
../../include/sys/ddt.h:81:2: note: in expansion of macro ‘BF64_SET_SB’
  BF64_SET_SB((ddk)->ddk_prop, 0, 16, SPA_MINBLOCKSHIFT, 1, x)
  ^~~~~~~~~~~
../../module/zfs/ddt.c:300:2: note: in expansion of macro ‘DDK_SET_LSIZE’
  DDK_SET_LSIZE(ddk, BP_GET_LSIZE(bp));
  ^~~~~~~~~~~~~
../../lib/libspl/include/assert.h:60:3: note: ‘snprintf’ output 671 bytes into a destination of size 256
   (void) snprintf(__buf, 256,    \
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
       "%s %s %s (0x%llx %s 0x%llx)", #LEFT, #OP, #RIGHT, \
       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
       (u_longlong_t)__left, #OP, (u_longlong_t)__right); \
       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../lib/libspl/include/assert.h:67:27: note: in expansion of macro ‘VERIFY3_IMPL’
 #define VERIFY3S(x, y, z) VERIFY3_IMPL(x, y, z, int64_t)
                           ^~~~~~~~~~~~
../../lib/libspl/include/assert.h:95:27: note: in expansion of macro ‘VERIFY3S’
 #define ASSERT3S(x, y, z) VERIFY3S(x, y, z)
                           ^~~~~~~~
../../include/sys/spa.h:99:2: note: in expansion of macro ‘ASSERT3S’
  ASSERT3S((val) >> (shift), >=, bias); \
  ^~~~~~~~
../../include/sys/ddt.h:81:2: note: in expansion of macro ‘BF64_SET_SB’
  BF64_SET_SB((ddk)->ddk_prop, 0, 16, SPA_MINBLOCKSHIFT, 1, x)
  ^~~~~~~~~~~
../../module/zfs/ddt.c:300:2: note: in expansion of macro ‘DDK_SET_LSIZE’
  DDK_SET_LSIZE(ddk, BP_GET_LSIZE(bp));
  ^~~~~~~~~~~~~
../../lib/libspl/include/assert.h:61:7: error: ‘%s’ directive output truncated writing 660 bytes into a region of size 256 [-Werror=format-truncation=]
       "%s %s %s (0x%llx %s 0x%llx)", #LEFT, #OP, #RIGHT, \
       ^
../../lib/libspl/include/assert.h:68:27: note: in expansion of macro ‘VERIFY3_IMPL’
 #define VERIFY3U(x, y, z) VERIFY3_IMPL(x, y, z, uint64_t)
                           ^~~~~~~~~~~~
../../lib/libspl/include/assert.h:96:27: note: in expansion of macro ‘VERIFY3U’
 #define ASSERT3U(x, y, z) VERIFY3U(x, y, z)
                           ^~~~~~~~
../../include/sys/spa.h:82:2: note: in expansion of macro ‘ASSERT3U’
  ASSERT3U(val, <, 1ULL << (len)); \
  ^~~~~~~~
../../include/sys/spa.h:100:2: note: in expansion of macro ‘BF64_SET’
  BF64_SET(x, low, len, ((val) >> (shift)) - (bias)); \
  ^~~~~~~~
../../include/sys/ddt.h:81:2: note: in expansion of macro ‘BF64_SET_SB’
  BF64_SET_SB((ddk)->ddk_prop, 0, 16, SPA_MINBLOCKSHIFT, 1, x)
  ^~~~~~~~~~~
../../module/zfs/ddt.c:300:2: note: in expansion of macro ‘DDK_SET_LSIZE’
  DDK_SET_LSIZE(ddk, BP_GET_LSIZE(bp));
  ^~~~~~~~~~~~~

(this goes on for awhile with the same types of errors)
tonyhutter commented 7 years ago

Oops, meant to open this under ZFS, not SPL. Closing