Add -bagheader patch to work around package build failures on i386.
This commit is contained in:
parent
df779ce3da
commit
45d8e5062b
21
README.md
Normal file
21
README.md
Normal file
@ -0,0 +1,21 @@
|
||||
# gap
|
||||
|
||||
GAP is a system for computational discrete algebra, with particular
|
||||
emphasis on
|
||||
[Computational Group Theory](https://www.gap-system.org/Doc/references.html).
|
||||
GAP provides a
|
||||
[programming language](https://www.gap-system.org/Manuals/doc/ref/chap4.html),
|
||||
a library of thousands of functions implementing algebraic algorithms
|
||||
written in the GAP language as well as large
|
||||
[data libraries](https://www.gap-system.org/Datalib/datalib.html) of
|
||||
algebraic objects. See also the
|
||||
[overview](https://www.gap-system.org/Overview/overview.html) and the
|
||||
description of the
|
||||
[mathematical capabilities](https://www.gap-system.org/Overview/Capabilities/capabilities.html).
|
||||
GAP is used in research and teaching for studying groups and their
|
||||
representations, rings, vector spaces, algebras, combinatorial
|
||||
structures, and more.
|
||||
|
||||
In July 2008, GAP was awarded the ACM/SIGSAM
|
||||
[Richard Dimick Jenks Memorial Prize](https://www.sigsam.org/awards/jenks/)
|
||||
for Excellence in Software Engineering applied to Computer Algebra.
|
25
gap-bagheader.patch
Normal file
25
gap-bagheader.patch
Normal file
@ -0,0 +1,25 @@
|
||||
--- src/gasman.h.orig 2021-03-02 08:12:10.000000000 -0700
|
||||
+++ src/gasman.h 2021-10-18 16:14:34.641300191 -0600
|
||||
@@ -77,12 +77,16 @@ typedef UInt * * Bag;
|
||||
**
|
||||
*/
|
||||
typedef struct {
|
||||
- uint8_t type : 8;
|
||||
- uint8_t flags : 8;
|
||||
- // the following unnamed field ensures that on 32 bit systems,
|
||||
- // the 'size' field is aligned to a 32 bit boundary
|
||||
- uint16_t : (sizeof(UInt) == 8) ? 0 : 16;
|
||||
- uint64_t size : (sizeof(UInt) == 8) ? 48 : 32;
|
||||
+#if __SIZEOF_INT__ == 8
|
||||
+ uint64_t type : 8;
|
||||
+ uint64_t flags : 8;
|
||||
+ uint64_t size : 48;
|
||||
+#else
|
||||
+ uint8_t type;
|
||||
+ uint8_t flags;
|
||||
+ uint16_t unused;
|
||||
+ uint32_t size;
|
||||
+#endif
|
||||
#ifdef USE_GASMAN
|
||||
Bag link;
|
||||
#endif
|
15
gap.spec
15
gap.spec
@ -31,7 +31,7 @@
|
||||
|
||||
Name: gap
|
||||
Version: 4.11.1
|
||||
Release: 2%{?dist}
|
||||
Release: 3%{?dist}
|
||||
Summary: Computational discrete algebra
|
||||
|
||||
%global majver %(cut -d. -f1-2 <<< %{version})
|
||||
@ -57,6 +57,14 @@ Patch1: %{name}-help.patch
|
||||
Patch2: %{name}-ref.patch
|
||||
# Fix paths in gac
|
||||
Patch3: %{name}-gac.patch
|
||||
# On i386 only, and with recent versions of gcc only, various parts of the
|
||||
# compiled code disagree about the size of a BagHeader. Some parts think it
|
||||
# is 12 bytes, and some parts think it is 16 bytes. This leads to pointers
|
||||
# pointing 4 bytes off from the actual first byte of a BagHeader, leading to
|
||||
# weird failure modes. This does not affect 32-bit ARM, so it is not purely
|
||||
# a 32-bit issue. I do not yet know if this behavior is due to a GCC bug, or
|
||||
# if the GAP code is in fact wrong, but this patch works around the issue.
|
||||
Patch4: %{name}-bagheader.patch
|
||||
|
||||
BuildRequires: appstream
|
||||
BuildRequires: desktop-file-utils
|
||||
@ -70,7 +78,6 @@ BuildRequires: parallel
|
||||
BuildRequires: perl-generators
|
||||
BuildRequires: pkgconfig(readline)
|
||||
BuildRequires: pkgconfig(zlib)
|
||||
BuildRequires: procps
|
||||
BuildRequires: tex(color.sty)
|
||||
BuildRequires: tex(english.ldf)
|
||||
BuildRequires: tex(enumitem.sty)
|
||||
@ -194,6 +201,7 @@ Library containing core GAP logic
|
||||
%patch1
|
||||
%patch2
|
||||
%patch3
|
||||
%patch4
|
||||
|
||||
# Get the README
|
||||
cp -p %{SOURCE1} README.fedora
|
||||
@ -443,6 +451,9 @@ make check
|
||||
%{_libdir}/libgap.so
|
||||
|
||||
%changelog
|
||||
* Mon Oct 18 2021 Jerry James <loganjerry@gmail.com> - 4.11.1-3
|
||||
- Add -bagheader patch to work around package build failures on i386
|
||||
|
||||
* Wed Jul 21 2021 Fedora Release Engineering <releng@fedoraproject.org> - 4.11.1-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user