Fredrik Fornwall
6 years ago
2 changed files with 108 additions and 4 deletions
@ -0,0 +1,101 @@ |
|||
From d67979e61f8659af05fd4d0384a2db33645df83d Mon Sep 17 00:00:00 2001 |
|||
From: Stefan Sperling <stsp@apache.org> |
|||
Date: Fri, 12 Apr 2019 09:27:33 +0000 |
|||
Subject: [PATCH] Get rid of apr_int64_t format string check in swig py |
|||
configure. |
|||
|
|||
This check relied on APR implementation details and broke with APR 1.7.0. |
|||
Rather than trying to guess a perfect format string to use, just use the |
|||
largest possible format and cast the argument accordingly. |
|||
|
|||
Should fix build against APR 1.7.0 and later. |
|||
|
|||
Suggested by: brane |
|||
|
|||
* build/ac-macros/swig.m4: Remove code related to SVN_APR_INT64_T_PYCFMT. |
|||
|
|||
* subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c |
|||
(svn_swig_py_client_blame_receiver_func): Stop relying on the |
|||
SVN_APR_INT64_T_PYCFMT constant from configure. Use "L" and |
|||
acast to PY_LONG_LONG instead. |
|||
|
|||
|
|||
git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1857391 13f79535-47bb-0310-9956-ffa450edef68 |
|||
---
|
|||
build/ac-macros/swig.m4 | 35 ------------------- |
|||
.../swig/python/libsvn_swig_py/swigutil_py.c | 9 +++-- |
|||
2 files changed, 4 insertions(+), 40 deletions(-) |
|||
|
|||
diff --git a/build/ac-macros/swig.m4 b/build/ac-macros/swig.m4
|
|||
index 55501fb882f..29638727363 100644
|
|||
--- a/build/ac-macros/swig.m4
|
|||
+++ b/build/ac-macros/swig.m4
|
|||
@@ -128,41 +128,6 @@ AC_DEFUN(SVN_FIND_SWIG,
|
|||
ac_cv_python_libs="`$PYTHON ${abs_srcdir}/build/get-py-info.py --libs`" |
|||
]) |
|||
SWIG_PY_LIBS="`SVN_REMOVE_STANDARD_LIB_DIRS($ac_cv_python_libs)`" |
|||
-
|
|||
- dnl Sun Forte adds an extra space before substituting APR_INT64_T_FMT
|
|||
- dnl gcc-2.95 adds an extra space after substituting APR_INT64_T_FMT
|
|||
- dnl thus the egrep patterns have a + in them.
|
|||
- SVN_PYCFMT_SAVE_CPPFLAGS="$CPPFLAGS"
|
|||
- CPPFLAGS="$CPPFLAGS $SVN_APR_INCLUDES"
|
|||
- AC_CACHE_CHECK([for apr_int64_t Python/C API format string],
|
|||
- [svn_cv_pycfmt_apr_int64_t], [
|
|||
- if test "x$svn_cv_pycfmt_apr_int64_t" = "x"; then
|
|||
- AC_EGREP_CPP([MaTcHtHiS +\"lld\" +EnDeNd],
|
|||
- [#include <apr.h>
|
|||
- MaTcHtHiS APR_INT64_T_FMT EnDeNd],
|
|||
- [svn_cv_pycfmt_apr_int64_t="L"])
|
|||
- fi
|
|||
- if test "x$svn_cv_pycfmt_apr_int64_t" = "x"; then
|
|||
- AC_EGREP_CPP([MaTcHtHiS +\"ld\" +EnDeNd],r
|
|||
- [#include <apr.h>
|
|||
- MaTcHtHiS APR_INT64_T_FMT EnDeNd],
|
|||
- [svn_cv_pycfmt_apr_int64_t="l"])
|
|||
- fi
|
|||
- if test "x$svn_cv_pycfmt_apr_int64_t" = "x"; then
|
|||
- AC_EGREP_CPP([MaTcHtHiS +\"d\" +EnDeNd],
|
|||
- [#include <apr.h>
|
|||
- MaTcHtHiS APR_INT64_T_FMT EnDeNd],
|
|||
- [svn_cv_pycfmt_apr_int64_t="i"])
|
|||
- fi
|
|||
- ])
|
|||
- CPPFLAGS="$SVN_PYCFMT_SAVE_CPPFLAGS"
|
|||
- if test "x$svn_cv_pycfmt_apr_int64_t" = "x"; then
|
|||
- AC_MSG_ERROR([failed to recognize APR_INT64_T_FMT on this platform])
|
|||
- fi
|
|||
- AC_DEFINE_UNQUOTED([SVN_APR_INT64_T_PYCFMT],
|
|||
- ["$svn_cv_pycfmt_apr_int64_t"],
|
|||
- [Define to the Python/C API format character suitable]
|
|||
- [ for apr_int64_t])
|
|||
fi |
|||
|
|||
if test "$PERL" != "none"; then |
|||
diff --git a/subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c b/subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c
|
|||
index 2c90a6a464d..abe5a2ab64c 100644
|
|||
--- a/subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c
|
|||
+++ b/subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c
|
|||
@@ -46,7 +46,7 @@
|
|||
#include "svn_mergeinfo.h" |
|||
#include "svn_types.h" |
|||
|
|||
-#include "svn_private_config.h" /* for SVN_APR_INT64_T_PYCFMT */
|
|||
+#include "svn_private_config.h"
|
|||
|
|||
#include "swig_python_external_runtime.swg" |
|||
#include "swigutil_py.h" |
|||
@@ -3394,10 +3394,9 @@ svn_error_t *svn_swig_py_client_blame_receiver_func(void *baton,
|
|||
svn_swig_py_acquire_py_lock(); |
|||
|
|||
if ((result = PyObject_CallFunction(receiver, |
|||
- (char *)
|
|||
- (SVN_APR_INT64_T_PYCFMT "lsssO&"),
|
|||
- line_no, revision, author, date, line,
|
|||
- make_ob_pool, pool)) == NULL)
|
|||
+ (char *)"LlsssO&",
|
|||
+ (PY_LONG_LONG)line_no, revision, author,
|
|||
+ date, line, make_ob_pool, pool)) == NULL)
|
|||
{ |
|||
err = callback_exception_error(); |
|||
} |
Loading…
Reference in new issue