summaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/autoconf/autoconf/backports/0025-Fix-AC_SYS_LARGEFILE-on-GNU-Linux-alpha-s390x.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-devtools/autoconf/autoconf/backports/0025-Fix-AC_SYS_LARGEFILE-on-GNU-Linux-alpha-s390x.patch')
-rw-r--r--meta/recipes-devtools/autoconf/autoconf/backports/0025-Fix-AC_SYS_LARGEFILE-on-GNU-Linux-alpha-s390x.patch62
1 files changed, 62 insertions, 0 deletions
diff --git a/meta/recipes-devtools/autoconf/autoconf/backports/0025-Fix-AC_SYS_LARGEFILE-on-GNU-Linux-alpha-s390x.patch b/meta/recipes-devtools/autoconf/autoconf/backports/0025-Fix-AC_SYS_LARGEFILE-on-GNU-Linux-alpha-s390x.patch
new file mode 100644
index 0000000000..b7affed40d
--- /dev/null
+++ b/meta/recipes-devtools/autoconf/autoconf/backports/0025-Fix-AC_SYS_LARGEFILE-on-GNU-Linux-alpha-s390x.patch
@@ -0,0 +1,62 @@
1From 103514e40da5f20aebf83a3446452ccebe5172bb Mon Sep 17 00:00:00 2001
2From: Paul Eggert <eggert@cs.ucla.edu>
3Date: Mon, 19 Jun 2023 14:04:29 -0700
4Subject: [PATCH 25/29] Fix AC_SYS_LARGEFILE on GNU/Linux alpha, s390x
5
6Problem reported by Matoro <https://bugs.gnu.org/64123>.
7* lib/autoconf/specific.m4 (_AC_SYS_LARGEFILE_TEST_CODE):
8New overridable macro FTYPE, to test types other than off_t.
9(_AC_SYS_LARGEFILE_TEST_CODE): Test ino_t for
10-D_FILE_OFFSETBITS=64 too, if no flags are needed for off_t.
11Needed for GNU/Linux on alpha and s390x.
12
13Upstream-Status: Backport
14Signed-off-by: Khem Raj <raj.khem@gmail.com>
15---
16 lib/autoconf/specific.m4 | 21 +++++++++++++++------
17 1 file changed, 15 insertions(+), 6 deletions(-)
18
19diff --git a/lib/autoconf/specific.m4 b/lib/autoconf/specific.m4
20index 91f20bf0d..9d5974548 100644
21--- a/lib/autoconf/specific.m4
22+++ b/lib/autoconf/specific.m4
23@@ -238,13 +238,16 @@ AS_IF([test "$enable_year2038,$ac_have_year2038" = yes,no],
24 # C code used to probe for large file support.
25 m4_define([_AC_SYS_LARGEFILE_TEST_CODE],
26 [@%:@include <sys/types.h>
27- /* Check that off_t can represent 2**63 - 1 correctly.
28- We can't simply define LARGE_OFF_T to be 9223372036854775807,
29+@%:@ifndef FTYPE
30+@%:@ define FTYPE off_t
31+@%:@endif
32+ /* Check that FTYPE can represent 2**63 - 1 correctly.
33+ We can't simply define LARGE_FTYPE to be 9223372036854775807,
34 since some C++ compilers masquerading as C compilers
35 incorrectly reject 9223372036854775807. */
36-@%:@define LARGE_OFF_T (((off_t) 1 << 31 << 31) - 1 + ((off_t) 1 << 31 << 31))
37- int off_t_is_large[[(LARGE_OFF_T % 2147483629 == 721
38- && LARGE_OFF_T % 2147483647 == 1)
39+@%:@define LARGE_FTYPE (((FTYPE) 1 << 31 << 31) - 1 + ((FTYPE) 1 << 31 << 31))
40+ int FTYPE_is_large[[(LARGE_FTYPE % 2147483629 == 721
41+ && LARGE_FTYPE % 2147483647 == 1)
42 ? 1 : -1]];[]dnl
43 ])
44 # Defined by Autoconf 2.71 and circa 2022 Gnulib unwisely depended on it.
45@@ -284,7 +287,13 @@ AC_DEFUN([_AC_SYS_LARGEFILE_PROBE],
46 AS_IF([test x"$ac_opt" != x"none needed"],
47 [CC="$ac_save_CC $ac_opt"])
48 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([_AC_SYS_LARGEFILE_TEST_CODE])],
49- [ac_cv_sys_largefile_opts="$ac_opt"
50+ [AS_IF([test x"$ac_opt" = x"none needed"],
51+ [# GNU/Linux s390x and alpha need _FILE_OFFSET_BITS=64 for wide ino_t.
52+ CC="$CC -DFTYPE=ino_t"
53+ AC_COMPILE_IFELSE([], [],
54+ [CC="$CC -D_FILE_OFFSET_BITS=64"
55+ AC_COMPILE_IFELSE([], [ac_opt='-D_FILE_OFFSET_BITS=64'])])])
56+ ac_cv_sys_largefile_opts=$ac_opt
57 ac_opt_found=yes])
58 test $ac_opt_found = no || break
59 done
60--
612.41.0
62