gnu: swig: Update to 4.0.1.
* gnu/packages/patches/swig-guile-gc.patch: Delete file. * gnu/local.mk (dist_patch_DATA): Adjust accordingly. * gnu/packages/swig.scm (swig): Update to 4.0.1. [source](patches): Remove. [arguments]: Remove 'set-env' phase. [inputs]: Change GUILE-2.0 to GUILE-2.2.master
parent
47c4c1fe23
commit
8b2c4eb502
|
@ -1370,7 +1370,6 @@ dist_patch_DATA = \
|
||||||
%D%/packages/patches/superlu-dist-fix-mpi-deprecations.patch \
|
%D%/packages/patches/superlu-dist-fix-mpi-deprecations.patch \
|
||||||
%D%/packages/patches/superlu-dist-scotchmetis.patch \
|
%D%/packages/patches/superlu-dist-scotchmetis.patch \
|
||||||
%D%/packages/patches/supertux-unbundle-squirrel.patch \
|
%D%/packages/patches/supertux-unbundle-squirrel.patch \
|
||||||
%D%/packages/patches/swig-guile-gc.patch \
|
|
||||||
%D%/packages/patches/swish-e-search.patch \
|
%D%/packages/patches/swish-e-search.patch \
|
||||||
%D%/packages/patches/swish-e-format-security.patch \
|
%D%/packages/patches/swish-e-format-security.patch \
|
||||||
%D%/packages/patches/symmetrica-bruch.patch \
|
%D%/packages/patches/symmetrica-bruch.patch \
|
||||||
|
|
|
@ -1,76 +0,0 @@
|
||||||
Fix garbage collection for Guile versions >= 2.0.12. This issue showed
|
|
||||||
up when running the tests on i686-linux.
|
|
||||||
|
|
||||||
Taken from this upstream commit:
|
|
||||||
https://github.com/swig/swig/commit/38f2ab0c30e369e63bbd0a6152108488d0de68e1
|
|
||||||
|
|
||||||
diff --git a/Lib/guile/guile_scm_run.swg b/Lib/guile/guile_scm_run.swg
|
|
||||||
index 274f197158..0d04cb7c62 100644
|
|
||||||
--- a/Lib/guile/guile_scm_run.swg
|
|
||||||
+++ b/Lib/guile/guile_scm_run.swg
|
|
||||||
@@ -99,6 +99,7 @@ SWIG_Guile_scm2newstr(SCM str, size_t *len) {
|
|
||||||
static int swig_initialized = 0;
|
|
||||||
static scm_t_bits swig_tag = 0;
|
|
||||||
static scm_t_bits swig_collectable_tag = 0;
|
|
||||||
+static scm_t_bits swig_finalized_tag = 0;
|
|
||||||
static scm_t_bits swig_destroyed_tag = 0;
|
|
||||||
static scm_t_bits swig_member_function_tag = 0;
|
|
||||||
static SCM swig_make_func = SCM_EOL;
|
|
||||||
@@ -163,7 +164,19 @@ SWIG_Guile_PointerType(SCM object)
|
|
||||||
}
|
|
||||||
else scm_wrong_type_arg("SWIG-Guile-PointerType", 1, object);
|
|
||||||
}
|
|
||||||
-
|
|
||||||
+
|
|
||||||
+SWIGINTERN int
|
|
||||||
+SWIG_Guile_IsValidSmob(SCM smob)
|
|
||||||
+{
|
|
||||||
+ /* We do not accept smobs representing destroyed pointers, but we have to
|
|
||||||
+ allow finalized smobs because Guile >= 2.0.12 sets all smob instances
|
|
||||||
+ to the 'finalized' type before calling their 'free' function. This change
|
|
||||||
+ was introduced to Guile in commit 8dff3af087c6eaa83ae0d72aa8b22aef5c65d65d */
|
|
||||||
+ return SCM_SMOB_PREDICATE(swig_tag, smob)
|
|
||||||
+ || SCM_SMOB_PREDICATE(swig_collectable_tag, smob)
|
|
||||||
+ || SCM_SMOB_PREDICATE(swig_finalized_tag, smob);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
SWIGINTERN int
|
|
||||||
SWIG_Guile_ConvertPtr(SCM s, void **result, swig_type_info *type, int flags)
|
|
||||||
{
|
|
||||||
@@ -179,8 +192,7 @@ SWIG_Guile_ConvertPtr(SCM s, void **result, swig_type_info *type, int flags)
|
|
||||||
*result = SCM_POINTER_VALUE(s);
|
|
||||||
return SWIG_OK;
|
|
||||||
#endif /* if SCM_MAJOR_VERSION >= 2 */
|
|
||||||
- } else if (SCM_SMOB_PREDICATE(swig_tag, smob) || SCM_SMOB_PREDICATE(swig_collectable_tag, smob)) {
|
|
||||||
- /* we do not accept smobs representing destroyed pointers */
|
|
||||||
+ } else if (SWIG_Guile_IsValidSmob(smob)) {
|
|
||||||
from = (swig_type_info *) SCM_CELL_WORD_2(smob);
|
|
||||||
if (!from) return SWIG_ERROR;
|
|
||||||
if (type) {
|
|
||||||
@@ -239,7 +251,7 @@ SWIG_Guile_MarkPointerNoncollectable(SCM s)
|
|
||||||
{
|
|
||||||
SCM smob = SWIG_Guile_GetSmob(s);
|
|
||||||
if (!SCM_NULLP(smob)) {
|
|
||||||
- if (SCM_SMOB_PREDICATE(swig_tag, smob) || SCM_SMOB_PREDICATE(swig_collectable_tag, smob)) {
|
|
||||||
+ if (SWIG_Guile_IsValidSmob(smob)) {
|
|
||||||
SCM_SET_CELL_TYPE(smob, swig_tag);
|
|
||||||
}
|
|
||||||
else scm_wrong_type_arg(NULL, 0, s);
|
|
||||||
@@ -252,7 +264,7 @@ SWIG_Guile_MarkPointerDestroyed(SCM s)
|
|
||||||
{
|
|
||||||
SCM smob = SWIG_Guile_GetSmob(s);
|
|
||||||
if (!SCM_NULLP(smob)) {
|
|
||||||
- if (SCM_SMOB_PREDICATE(swig_tag, smob) || SCM_SMOB_PREDICATE(swig_collectable_tag, smob)) {
|
|
||||||
+ if (SWIG_Guile_IsValidSmob(smob)) {
|
|
||||||
SCM_SET_CELL_TYPE(smob, swig_destroyed_tag);
|
|
||||||
}
|
|
||||||
else scm_wrong_type_arg(NULL, 0, s);
|
|
||||||
@@ -419,6 +431,8 @@ SWIG_Guile_Init ()
|
|
||||||
scm_set_smob_print(swig_collectable_tag, print_collectable_swig);
|
|
||||||
scm_set_smob_equalp(swig_collectable_tag, equalp_swig);
|
|
||||||
scm_set_smob_free(swig_collectable_tag, free_swig);
|
|
||||||
+ /* For Guile >= 2.0.12. See libguile/smob.c:clear_smobnum */
|
|
||||||
+ swig_finalized_tag = swig_collectable_tag & ~0xff00;
|
|
||||||
}
|
|
||||||
if (ensure_smob_tag(swig_module, &swig_destroyed_tag,
|
|
||||||
"destroyed-swig-pointer", "destroyed-swig-pointer-tag")) {
|
|
|
@ -34,25 +34,19 @@
|
||||||
(define-public swig
|
(define-public swig
|
||||||
(package
|
(package
|
||||||
(name "swig")
|
(name "swig")
|
||||||
(version "3.0.12")
|
(version "4.0.1")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "mirror://sourceforge/" name "/" name "/"
|
(uri (string-append "mirror://sourceforge/" name "/" name "/"
|
||||||
name "-" version "/"
|
name "-" version "/"
|
||||||
name "-" version ".tar.gz"))
|
name "-" version ".tar.gz"))
|
||||||
(patches (search-patches "swig-guile-gc.patch"))
|
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0kf99ygrjs5616gsqhz1l7bib3a12izmxi7g48bwblbymr3z9ybw"))))
|
"1ac7g0gd8ndwv3ybqn5vjgqxa7090bby4db164a7mn9ssp8b803s"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
'(#:phases
|
'(#:phases
|
||||||
(modify-phases %standard-phases
|
(modify-phases %standard-phases
|
||||||
(add-after 'unpack 'set-env
|
|
||||||
;; Required since Perl 5.26.0's removal of the current
|
|
||||||
;; working directory from @INC.
|
|
||||||
;; TODO Try removing this for later versions of SWIG.
|
|
||||||
(lambda _ (setenv "PERL_USE_UNSAFE_INC" "1") #t))
|
|
||||||
(add-before 'configure 'workaround-gcc-bug
|
(add-before 'configure 'workaround-gcc-bug
|
||||||
(lambda _
|
(lambda _
|
||||||
;; XXX: Don't add the -isystem flag, or GCCs #include_next
|
;; XXX: Don't add the -isystem flag, or GCCs #include_next
|
||||||
|
|
Reference in New Issue