[gcl] Fix FTBFS on Rawhide due to missing volatile markings on some variables.

Jerry James jjames at fedoraproject.org
Thu Feb 10 22:24:37 UTC 2011


commit 826294695c8b9c4e12c17ec8b95aa5a5a5b393c9
Author: Jerry James <loganjerry at gmail.com>
Date:   Thu Feb 10 15:24:11 2011 -0700

    Fix FTBFS on Rawhide due to missing volatile markings on some variables.

 gcl-2.6.8-volatile.patch |   38 ++++++++++++++++++++++++++++++++++++++
 gcl.spec                 |    8 ++++++--
 2 files changed, 44 insertions(+), 2 deletions(-)
---
diff --git a/gcl-2.6.8-volatile.patch b/gcl-2.6.8-volatile.patch
new file mode 100644
index 0000000..a53475f
--- /dev/null
+++ b/gcl-2.6.8-volatile.patch
@@ -0,0 +1,38 @@
+--- o/print.d.orig	2005-07-18 11:07:24.000000000 -0600
++++ o/print.d	2011-02-10 15:12:01.415288045 -0700
+@@ -482,11 +482,11 @@ int level;
+ */
+ 	short ois[IS_SIZE];
+ 
+-	int oqh;
+-	int oqt;
+-	int oqc;
+-	int oisp;
+-	int oiisp;
++	VOL int oqh;
++	VOL int oqt;
++	VOL int oqc;
++	VOL int oisp;
++	VOL int oiisp;
+ 
+ ONCE_MORE:
+ 	if (interrupt_flag) {
+--- o/prog.c.orig	2005-07-18 11:07:24.000000000 -0600
++++ o/prog.c	2011-02-10 15:13:47.428299399 -0700
+@@ -48,12 +48,12 @@ FFD(Ftagbody)(object body)
+ {
+ 
+ 	object *old_top = vs_top;
+-	object *new_top;
+-	VOL object *tinf;
+-	VOL object *tinf_base;
++	object * VOL new_top;
++	object *tinf;
++	object * VOL tinf_base;
+ 	object *env = lex_env;
+ 	object id = alloc_frame_id();
+-	object bodysv = body;
++	VOL object bodysv = body;
+ 	object label;
+ 	enum type item_type;
+ 
diff --git a/gcl.spec b/gcl.spec
index 068e14f..2d331b4 100644
--- a/gcl.spec
+++ b/gcl.spec
@@ -1,6 +1,6 @@
 # -fstack-protector leads to segfaults because GCL uses its own conflicting
 # stack protection scheme.  GCL code violates C99 aliasing rules.
-%global __global_cflags %(printf %%s '%__global_cflags' | sed 's/-fstack-protector --param=ssp-buffer-size=4/-fno-strict-aliasing/')
+%global __global_cflags %(printf %%s '%__global_cflags' | sed 's/-fstack-protector --param=ssp-buffer-size=4//')
 
 # Prerelease of 2.6.8
 %global alphatag 20101115cvs
@@ -83,7 +83,10 @@ Patch14:        gcl-2.6.8-ellipsis.patch
 # This patch was last sent upstream on 30 Dec 2010.  It fixes some malformed
 # man page constructions.
 Patch15:        gcl-2.6.8-man.patch
-BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
+# This patch was last sent upstream on 10 Feb 2011.  It fixes some volatile
+# markings on local variables that should not be clobbered by longjmp().
+Patch16:        gcl-2.6.8-volatile.patch
+
 BuildRequires:  libSM-devel
 BuildRequires:  libXext-devel
 BuildRequires:  libXaw-devel
@@ -182,6 +185,7 @@ gcl_exec_t.
 %patch13
 %patch14
 %patch15
+%patch16
 
 # Don't let the configure script add compiler flags we don't want
 sed -i -e 's/"-fomit-frame-pointer"/""/' -e 's/-O3/-O2/g' configure


More information about the scm-commits mailing list