diff options
-rw-r--r-- | sys-fs/zfs-kmod/files/2.1.5-build-issues.patch | 74 | ||||
-rw-r--r-- | sys-fs/zfs-kmod/zfs-kmod-2.1.5.ebuild | 5 |
2 files changed, 79 insertions, 0 deletions
diff --git a/sys-fs/zfs-kmod/files/2.1.5-build-issues.patch b/sys-fs/zfs-kmod/files/2.1.5-build-issues.patch new file mode 100644 index 000000000000..cca6561b16f7 --- /dev/null +++ b/sys-fs/zfs-kmod/files/2.1.5-build-issues.patch @@ -0,0 +1,74 @@ +https://github.com/openzfs/zfs/commit/a6e8113fed8a508ffda13cf1c4d8da99a4e8133a +https://github.com/openzfs/zfs/commit/60e389ca10085acfa7cd35f79ab4465d968a942f +Cherry-picked from https://github.com/openzfs/zfs/pull/13575 + +https://bugs.gentoo.org/855182 +--- a/config/always-compiler-options.m4 ++++ b/config/always-compiler-options.m4 +@@ -205,6 +205,29 @@ AC_DEFUN([ZFS_AC_CONFIG_ALWAYS_CC_NO_OMIT_FRAME_POINTER], [ + AC_SUBST([NO_OMIT_FRAME_POINTER]) + ]) + ++dnl # ++dnl # Check if cc supports -Winfinite-recursion option. ++dnl # ++AC_DEFUN([ZFS_AC_CONFIG_ALWAYS_CC_INFINITE_RECURSION], [ ++ AC_MSG_CHECKING([whether $CC supports -Winfinite-recursion]) ++ ++ saved_flags="$CFLAGS" ++ CFLAGS="$CFLAGS -Werror -Winfinite-recursion" ++ ++ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [])], [ ++ INFINITE_RECURSION=-Winfinite-recursion ++ AC_DEFINE([HAVE_INFINITE_RECURSION], 1, ++ [Define if compiler supports -Winfinite-recursion]) ++ AC_MSG_RESULT([yes]) ++ ], [ ++ INFINITE_RECURSION= ++ AC_MSG_RESULT([no]) ++ ]) ++ ++ CFLAGS="$saved_flags" ++ AC_SUBST([INFINITE_RECURSION]) ++]) ++ + dnl # + dnl # Check if cc supports -fno-ipa-sra option. + dnl # +--- a/config/zfs-build.m4 ++++ b/config/zfs-build.m4 +@@ -211,6 +211,7 @@ AC_DEFUN([ZFS_AC_CONFIG_ALWAYS], [ + + ZFS_AC_CONFIG_ALWAYS_CC_NO_UNUSED_BUT_SET_VARIABLE + ZFS_AC_CONFIG_ALWAYS_CC_NO_BOOL_COMPARE ++ ZFS_AC_CONFIG_ALWAYS_CC_INFINITE_RECURSION + ZFS_AC_CONFIG_ALWAYS_CC_IMPLICIT_FALLTHROUGH + ZFS_AC_CONFIG_ALWAYS_CC_FRAME_LARGER_THAN + ZFS_AC_CONFIG_ALWAYS_CC_NO_FORMAT_TRUNCATION +--- a/module/lua/ldo.c ++++ b/module/lua/ldo.c +@@ -168,6 +168,13 @@ static void seterrorobj (lua_State *L, int errcode, StkId oldtop) { + L->top = oldtop + 1; + } + ++/* ++ * Silence infinite recursion warning which was added to -Wall in gcc 12.1 ++ */ ++#if defined(HAVE_INFINITE_RECURSION) ++#pragma GCC diagnostic push ++#pragma GCC diagnostic ignored "-Winfinite-recursion" ++#endif + + l_noret luaD_throw (lua_State *L, int errcode) { + if (L->errorJmp) { /* thread has an error handler? */ +@@ -190,6 +197,10 @@ l_noret luaD_throw (lua_State *L, int errcode) { + } + } + ++#if defined(HAVE_INFINITE_RECURSION) ++#pragma GCC diagnostic pop ++#endif ++ + + int luaD_rawrunprotected (lua_State *L, Pfunc f, void *ud) { + unsigned short oldnCcalls = L->nCcalls; diff --git a/sys-fs/zfs-kmod/zfs-kmod-2.1.5.ebuild b/sys-fs/zfs-kmod/zfs-kmod-2.1.5.ebuild index 65567e49fef7..ac917091d0b4 100644 --- a/sys-fs/zfs-kmod/zfs-kmod-2.1.5.ebuild +++ b/sys-fs/zfs-kmod/zfs-kmod-2.1.5.ebuild @@ -62,6 +62,11 @@ RESTRICT="debug? ( strip ) test" DOCS=( AUTHORS COPYRIGHT META README.md ) +PATCHES=( + # bug #855182 + "${FILESDIR}"/${PV}-build-issues.patch +) + pkg_pretend() { use rootfs || return 0 |