diff options
Diffstat (limited to 'sys-fs/zfs/files/2.1.5-build-issues.patch')
-rw-r--r-- | sys-fs/zfs/files/2.1.5-build-issues.patch | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/sys-fs/zfs/files/2.1.5-build-issues.patch b/sys-fs/zfs/files/2.1.5-build-issues.patch new file mode 100644 index 000000000000..cca6561b16f7 --- /dev/null +++ b/sys-fs/zfs/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; |