The package rpms/polyml.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/polyml.git/commit/?id=8ff3f45240e....
Change:
+%ifarch x86_64
Thanks.
Full change:
============
commit 8ff3f45240ef29585fb9f568eb24a83529ff6ef2
Author: Jerry James <loganjerry(a)gmail.com>
Date: Wed Jul 22 12:08:58 2020 -0600
The --enable-compact32bit option can only be used on x86_64.
diff --git a/polyml.spec b/polyml.spec
index 2e57f27..37a7e0d 100644
--- a/polyml.spec
+++ b/polyml.spec
@@ -68,7 +68,7 @@ sed -i '2iraise NotApplicable;' Tests/Succeed/Test174.ML
# is bad news for people running SELinux. The execstack flag is not really
# needed, so we go through the contortions below to keep it off.
%configure --enable-shared --disable-static --with-system-libffi \
-%if 0%{?__isa_bits} == 64
+%ifarch x86_64
--enable-compact32bit \
%endif
CPPFLAGS="-D_GNU_SOURCE" \
commit 63e75deabcac792348b1649e5deda040ab88bde1
Author: Jerry James <loganjerry(a)gmail.com>
Date: Wed Jul 22 12:01:41 2020 -0600
Version 5.8.1. Drop upstreamed -fixes patch.
diff --git a/polyml-fixes.patch b/polyml-fixes.patch
deleted file mode 100644
index 21fb61c..0000000
--- a/polyml-fixes.patch
+++ /dev/null
@@ -1,140 +0,0 @@
-diff --git a/Tests/Succeed/Test187.ML b/Tests/Succeed/Test187.ML
-new file mode 100644
-index 00000000..774f888c
---- /dev/null
-+++ b/Tests/Succeed/Test187.ML
-@@ -0,0 +1,4 @@
-+(* This could segfault if GMP was enabled due to a bug in neg_longc. *)
-+
-+val x = ~ (LargeInt.fromInt(valOf FixedInt.maxInt)) - 1;
-+PolyML.IntInf.gcd(x, 0);
-diff --git a/configure.ac b/configure.ac
-index e7e080cf..ee916314 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -581,7 +581,7 @@ AM_CONDITIONAL([MACOSLDOPTS], [test "$poly_need_macosopt" =
yes ])
-
- # If we're building only the static version of libpolyml
- # then polyc and polyml.pc have to include the dependent libraries.
--dependentlibs = ""
-+dependentlibs=""
- if test "${enable_shared}" != yes; then
- dependentlibs=${LIBS}
- fi
-diff --git a/configure b/configure
-index cfbc90da..9279c8c8 100755
---- a/configure
-+++ b/configure
-@@ -22488,7 +22488,7 @@ fi
-
- # If we're building only the static version of libpolyml
- # then polyc and polyml.pc have to include the dependent libraries.
--dependentlibs = ""
-+dependentlibs=""
- if test "${enable_shared}" != yes; then
- dependentlibs=${LIBS}
- fi
-diff --git a/libpolyml/arb.cpp b/libpolyml/arb.cpp
-index a1878363..e79d35d0 100644
---- a/libpolyml/arb.cpp
-+++ b/libpolyml/arb.cpp
-@@ -594,7 +594,7 @@ Handle neg_longc(TaskData *taskData, Handle x)
- Handle long_y = alloc_and_save(taskData, WORDS(bytes), F_MUTABLE_BIT|F_BYTE_OBJ);
- byte *v = DEREFBYTEHANDLE(long_y);
- if (IS_INT(DEREFWORD(x)))
-- memcpy(v, (byte*)x_extend, bytes);
-+ memcpy(v, &x_extend, bytes);
- else memcpy(v, DEREFBYTEHANDLE(x), bytes);
- #ifndef USE_GMP
- // Make sure the last word is zero. We may have unused bytes there.
-diff --git a/libpolyml/basicio.cpp b/libpolyml/basicio.cpp
-index 38dc5894..ac1b1a6e 100644
---- a/libpolyml/basicio.cpp
-+++ b/libpolyml/basicio.cpp
-@@ -200,7 +200,7 @@ int getStreamFileDescriptorWithoutCheck(PolyWord strm)
- // the standard streams which are tagged integers.
- if (strm.IsTagged())
- return strm.UnTagged();
-- return *(int*)(strm.AsObjPtr()) -1;
-+ return *(intptr_t*)(strm.AsObjPtr()) -1;
- }
-
- // Most of the time we want to raise an exception if the file descriptor
-@@ -254,7 +254,7 @@ static Handle close_file(TaskData *taskData, Handle stream)
- if (descr > 2)
- {
- close(descr);
-- *(int*)(stream->WordP()) = 0; // Mark as closed
-+ *(intptr_t*)(stream->WordP()) = 0; // Mark as closed
- }
-
- return Make_fixed_precision(taskData, 0);
-@@ -798,9 +798,6 @@ static Handle IO_dispatch_c(TaskData *taskData, Handle args, Handle
strm, Handle
- case 6: /* Open file for binary output. */
- return open_file(taskData, args, O_WRONLY | O_CREAT | O_TRUNC, 0666, 0);
- case 7: /* Close file */
-- // Legacy: During the bootstrap we will have old format references.
-- if (strm->Word().IsTagged())
-- return Make_fixed_precision(taskData, 0);
- return close_file(taskData, strm);
- case 8: /* Read text into an array. */
- return readArray(taskData, strm, args, true);
-diff --git a/libpolyml/interpret.cpp b/libpolyml/interpret.cpp
-index a14fd961..fee91117 100644
---- a/libpolyml/interpret.cpp
-+++ b/libpolyml/interpret.cpp
-@@ -1329,7 +1329,9 @@ int IntTaskData::SwitchToPoly()
- Handle reset = this->saveVec.mark();
- Handle pushedArg1 = this->saveVec.push(*sp++);
- Handle pushedArg2 = this->saveVec.push(*sp);
-+ SaveInterpreterState(pc, sp); // mult_longc allocates memory and may GC even
if it doesn't overflow.
- Handle result = mult_longc(this, pushedArg2, pushedArg1);
-+ LoadInterpreterState(pc, sp);
- PolyWord res = result->Word();
- this->saveVec.reset(reset);
- if (! res.IsTagged())
-diff --git a/libpolyml/poly_specific.cpp b/libpolyml/poly_specific.cpp
-index b92a5d5a..e484695f 100644
---- a/libpolyml/poly_specific.cpp
-+++ b/libpolyml/poly_specific.cpp
-@@ -376,11 +376,21 @@ POLYUNSIGNED PolySetCodeConstant(PolyWord closure, PolyWord offset,
PolyWord cWo
- case 0: // Absolute constant - size PolyWord
- {
- POLYUNSIGNED c = cWord.AsUnsigned();
-+#ifdef WORDS_BIGENDIAN
-+ // This is used to store constants in the constant area
-+ // on the interpreted version.
-+ for (unsigned i = sizeof(PolyWord); i > 0; i--)
-+ {
-+ pointer[i-1] = (byte)(c & 255);
-+ c >>= 8;
-+ }
-+#else
- for (unsigned i = 0; i < sizeof(PolyWord); i++)
- {
- pointer[i] = (byte)(c & 255);
- c >>= 8;
- }
-+#endif
- break;
- }
- case 1: // Relative constant - X86 - size 4 bytes
-diff --git a/mlsource/MLCompiler/CodeTree/CODETREE_SIMPLIFIER.sml
b/mlsource/MLCompiler/CodeTree/CODETREE_SIMPLIFIER.sml
-index e66503fb..c6b449cf 100644
---- a/mlsource/MLCompiler/CodeTree/CODETREE_SIMPLIFIER.sml
-+++ b/mlsource/MLCompiler/CodeTree/CODETREE_SIMPLIFIER.sml
-@@ -1108,12 +1108,12 @@ struct
- | (WordLogical logop, arg1, arg2 as Constnt(v2, _)) =>
- (* Return the zero if we are anding with zero otherwise the original arg *)
- if isShort v2 andalso toShort v2 = 0w0
-- then (case logop of LogicalAnd => arg2 | _ => arg1, decArgs,
EnvSpecNone)
-+ then (case logop of LogicalAnd => CodeZero | _ => arg1, decArgs,
EnvSpecNone)
- else (Binary{oper=oper, arg1=genArg1, arg2=genArg2}, decArgs, EnvSpecNone)
-
- | (WordLogical logop, Constnt(v1, _), arg2) =>
- if isShort v1 andalso toShort v1 = 0w0
-- then (case logop of LogicalAnd => arg2 | _ => arg2, decArgs,
EnvSpecNone)
-+ then (case logop of LogicalAnd => CodeZero | _ => arg2, decArgs,
EnvSpecNone)
- else (Binary{oper=oper, arg1=genArg1, arg2=genArg2}, decArgs, EnvSpecNone)
-
- (* TODO: Constant folding of shifts. *)
diff --git a/polyml.spec b/polyml.spec
index 7243339..2e57f27 100644
--- a/polyml.spec
+++ b/polyml.spec
@@ -2,16 +2,13 @@
%undefine _hardened_build
Name: polyml
-Version: 5.8
-Release: 4%{?dist}
+Version: 5.8.1
+Release: 1%{?dist}
Summary: Poly/ML compiler and runtime system
License: LGPLv2+
URL:
http://www.polyml.org/
Source0:
https://github.com/%{name}/%{name}/archive/v%{version}/%{name}-%{version}...
-# Fixes from the upstream fixes-5.8 branch. This currently contains fixes up
-# to commit 185b1ce7aa334ba7f27c4184fda77dc6831f2e4f.
-Patch0: polyml-fixes.patch
# The standard solution to kill the libtool-induced RPATH is to edit the
# libtool script to kill it. However, that causes problems for us as we need
@@ -79,7 +76,7 @@ sed -i '2iraise NotApplicable;' Tests/Succeed/Test174.ML
CXXFLAGS="${RPM_OPT_FLAGS} -fno-strict-aliasing -Wa,--noexecstack" \
CCASFLAGS="-Wa,--noexecstack" \
LDFLAGS="$RPM_LD_FLAGS -Wl,-z,noexecstack"
-make %{?_smp_mflags}
+%make_build
chrpath -d .libs/poly
chrpath -d .libs/polyimport
@@ -88,7 +85,7 @@ chrpath -d .libs/polyimport
sed -i 's/-Wl,-rpath,\${LIBDIR} //;s/-lffi //;s/-lgmp //' polyc
%install
-make install DESTDIR=$RPM_BUILD_ROOT
+%make_install
rm -f $RPM_BUILD_ROOT%{_libdir}/*.la
%check
@@ -115,6 +112,10 @@ make check
%{_libdir}/libpolyml.so.*
%changelog
+* Wed Jul 22 2020 Jerry James <loganjerry(a)gmail.com> - 5.8.1-1
+- Version 5.8.1
+- Drop upstreamed -fixes patch
+
* Thu Jan 30 2020 Fedora Release Engineering <releng(a)fedoraproject.org> - 5.8-4
- Rebuilt for
https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
diff --git a/sources b/sources
index cfecc98..c95f147 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (polyml-5.8.tar.gz) =
50baed79b50b14bd87acc637de93fd6d0f05e61fe0f03682a12a1d2c5f382313488d48f84b49ad915b01acc5a3a5769fb05fcaa7b24499c56402ddd3ba393930
+SHA512 (polyml-5.8.1.tar.gz) =
8701c27a4a84b00529b8ae30ce340a46f45eb12d74a94ff5c5663bbbe79f5723039b96298190ba23bcbde11a26fb2b364d9452f45fdb19576a596e364812416f