The package rpms/gap.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/gap.git/commit/?id=1f5a7c6853bab5....
Change:
-%ifarch aarch64
Thanks.
Full change:
============
commit 1f5a7c6853bab545326939bff37f0c965f7f360f
Author: Jerry James <loganjerry(a)gmail.com>
Date: Thu Apr 2 19:48:52 2020 -0600
Reenable inlining on aarch64 on all but 1 function.
diff --git a/gap-aarch64.patch b/gap-aarch64.patch
index e7217c2..3e16608 100644
--- a/gap-aarch64.patch
+++ b/gap-aarch64.patch
@@ -1,45 +1,11 @@
---- src/funcs.c.orig 2020-02-29 02:02:10.000000000 -0700
-+++ src/funcs.c 2020-03-21 08:22:21.264432840 -0600
-@@ -53,8 +53,7 @@ extern inline struct FuncsModuleState *F
+--- src/gasman.c.orig 2020-02-29 02:02:10.000000000 -0700
++++ src/gasman.c 2020-03-30 10:15:52.004487823 -0600
+@@ -1780,7 +1780,7 @@ static void SparcStackFuncBags(void)
+ #endif
- Int IncRecursionDepth(void)
- {
-- int depth = ++(FuncsState()->RecursionDepth);
-- return depth;
-+ return ++(FuncsState()->RecursionDepth);
- }
-
- void DecRecursionDepth(void)
---- src/funcs.h.orig 2020-02-29 02:02:10.000000000 -0700
-+++ src/funcs.h 2020-03-21 08:15:52.136455354 -0600
-@@ -55,7 +55,7 @@ void RecursionDepthTrap(void);
- EXPORT_INLINE void CheckRecursionBefore( void )
+-static void GenStackFuncBags(void)
++static NOINLINE void GenStackFuncBags(void)
{
-- Int depth = IncRecursionDepth();
-+ UInt depth = (UInt)IncRecursionDepth();
- if ( RecursionTrapInterval &&
- 0 == (depth % RecursionTrapInterval) )
- RecursionDepthTrap();
---- src/hookintrprtr.h.orig 2020-02-29 02:02:10.000000000 -0700
-+++ src/hookintrprtr.h 2020-03-21 07:02:59.585429467 -0600
-@@ -128,7 +128,7 @@ void DeactivatePrintHooks(struct PrintHo
-
- #define GAP_HOOK_LOOP(member, ...) \
- do { \
-- Int i; \
-+ int i; \
- struct InterpreterHooks * hook; \
- for (i = 0; i < HookCount; ++i) { \
- hook = activeHooks[i]; \
---- src/system.h.orig 2020-02-29 02:02:10.000000000 -0700
-+++ src/system.h 2020-03-23 16:33:30.583638125 -0600
-@@ -101,7 +101,7 @@ enum {
- *T Wrappers for various compiler attributes
- **
- */
--#if defined(HAVE_FUNC_ATTRIBUTE_ALWAYS_INLINE) && !defined(GAP_KERNEL_DEBUG)
-+#if 0
- #define ALWAYS_INLINE __attribute__((always_inline)) inline
- #else
- #define ALWAYS_INLINE inline
+ Bag * top; /* top of stack */
+ Bag * p; /* loop variable */
diff --git a/gap.spec b/gap.spec
index e2b843c..d891c89 100644
--- a/gap.spec
+++ b/gap.spec
@@ -31,7 +31,7 @@
Name: gap
Version: 4.11.0
-Release: 2%{?dist}
+Release: 3%{?dist}
Summary: Computational discrete algebra
%global majver %(cut -d. -f1-2 <<< %{version})
@@ -59,7 +59,7 @@ Patch2: %{name}-escape.patch
Patch3: %{name}-ref.patch
# Fix paths in gac
Patch4: %{name}-gac.patch
-# Work around a possible aarch64 gcc inlining bug
+# Work around a problem with inlining that currently manifests only on aarch64
Patch5: %{name}-aarch64.patch
BuildRequires: desktop-file-utils
@@ -195,9 +195,7 @@ Headers and library links for libgap.
%patch2
%patch3
%patch4
-%ifarch aarch64
%patch5
-%endif
# Get the README
cp -p %{SOURCE1} README.fedora
@@ -207,11 +205,6 @@ cp -p %{SOURCE1} README.fedora
export LDFLAGS="-Wl,-z,relro -Wl,--as-needed"
export CPPFLAGS='-DSYS_DEFAULT_PATHS="\"%{gapdir}\""'
export STRIP=%{_bindir}/true
-%ifarch aarch64
-# Work around an apparent GCC inlining bug
-export CFLAGS="%{optflags} -fno-inline"
-export CXXFLAGS="%{optflags} -fno-inline"
-%endif
%configure
# Get rid of undesirable hardcoded rpaths
@@ -460,6 +453,9 @@ make check
%{_libdir}/libgap.so
%changelog
+* Thu Apr 2 2020 Jerry James <loganjerry(a)gmail.com> - 4.11.0-3
+- Reenable inlining on aarch64 on all but 1 function
+
* Mon Mar 23 2020 Jerry James <loganjerry(a)gmail.com> - 4.11.0-2
- Turn off all inlining on aarch64 to work around possible GCC bug