[ecl] New upstream release. Add sighandler patch to fix thread-enabled build.

Jerry James jjames at fedoraproject.org
Wed Aug 8 19:51:58 UTC 2012


commit 5b57319a10a367acaafe5a455693355a8930f068
Author: Jerry James <loganjerry at gmail.com>
Date:   Wed Aug 8 13:51:42 2012 -0600

    New upstream release.
    Add sighandler patch to fix thread-enabled build.

 .gitignore                                         |    2 +-
 ecl-12.2.1-atomic_ops.patch                        |16798 --------------------
 ecl-12.2.1-warnings.patch                          |  656 -
 ecl-12.7.1-atomic_ops.patch                        |   52 +
 ecl-12.7.1-sighandler.patch                        |   63 +
 ...atch => ecl-12.7.1-signal_handling_thread.patch |   10 +-
 ecl-12.7.1-warnings.patch                          |  277 +
 ecl.spec                                           |   29 +-
 sources                                            |    4 +-
 9 files changed, 419 insertions(+), 17472 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index d0a8ac4..f8454d2 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,2 @@
 /ecl-doc.tar.xz
-/ecl-12.2.1.tgz
+/ecl-12.7.1.tar.gz
diff --git a/ecl-12.7.1-atomic_ops.patch b/ecl-12.7.1-atomic_ops.patch
new file mode 100644
index 0000000..f686764
--- /dev/null
+++ b/ecl-12.7.1-atomic_ops.patch
@@ -0,0 +1,52 @@
+--- ./src/configure.in.orig	2012-07-24 10:51:53.000000000 -0600
++++ ./src/configure.in	2012-07-27 16:53:23.422951620 -0600
+@@ -722,7 +722,6 @@ if test ! ${opcode8} = "no" ; then
+ fi
+ 
+ ECL_GCC_BACKTRACE
+-ECL_LIBATOMIC_OPS
+ 
+ dnl ----------------------------------------------------------------------
+ dnl Lisp library and libecl features
+--- ./src/Makefile.in.orig	2012-07-24 10:51:53.000000000 -0600
++++ ./src/Makefile.in	2012-07-27 16:53:05.966979669 -0600
+@@ -123,11 +123,8 @@ bin/ecl-config: bin/ecl-config.pre
+ 	  mv @LIBPREFIX at ffi.@LIBEXT@ @LIBPREFIX at eclffi.@LIBEXT@; \
+ 	fi
+ @LIBPREFIX at eclatomic.@LIBEXT@:
+-	if (echo $(SUBDIRS) | grep atomic); then \
+-	  cd atomic && $(MAKE) && $(MAKE) install && cd .. && \
+-	  $(RM) -rf share ecl/atomic_ops_stack.h ecl/atomic_ops_malloc.h *atomic*gpl* && \
+-	  mv @LIBPREFIX at atomic_ops.@LIBEXT@ @LIBPREFIX at eclatomic.@LIBEXT@; \
+-	fi
++	cp -p ${libdir}/libatomic_ops.a $@
++	ln -s /usr/include/atomic_ops.h ecl/atomic_ops.h
+ @LIBPREFIX at eclgmp.@LIBEXT@:
+ 	if (echo $(SUBDIRS) | grep gmp); then \
+ 	  cd gmp && $(MAKE) install && \
+--- ./src/configure.orig	2012-07-24 10:51:53.000000000 -0600
++++ ./src/configure	2012-07-27 16:55:15.745769285 -0600
+@@ -14248,23 +14248,6 @@ fi
+ 
+ fi
+ 
+-
+-if test "x${enable_threads}" != "xno"; then
+-  test -d atomic || mkdir atomic
+-  (destdir=`${PWDCMD}`; cd atomic && CC="${CC} ${PICFLAG}" \
+-   $srcdir/${ECL_GC_DIR}/libatomic*/configure --disable-shared --prefix=${destdir} \
+-	--infodir=${destdir}/doc --includedir=${destdir}/ecl --with-pic \
+-        --libdir=${destdir} --build=${build_alias} --host=${host_alias} \
+-        CFLAGS="$CFLAGS" LDFLAGS="$LDFLAGS" CPPFLAGS="$CPPFLAGS" CC="${CC} \
+-        ${PICFLAG}")
+-  SUBDIRS="${SUBDIRS} atomic"
+-  CORE_LIBS="-leclatomic ${CORE_LIBS}"
+-  if test "${enable_shared}" = "no"; then
+-    LIBRARIES="${LIBRARIES} ${LIBPREFIX}eclatomic.${LIBEXT}"
+-  fi
+-fi
+-
+-
+ if test ${enable_shared} = "yes"; then
+ 
+ cat >>confdefs.h <<\_ACEOF
diff --git a/ecl-12.7.1-sighandler.patch b/ecl-12.7.1-sighandler.patch
new file mode 100644
index 0000000..a9ae373
--- /dev/null
+++ b/ecl-12.7.1-sighandler.patch
@@ -0,0 +1,63 @@
+--- ./src/c/symbols_list.h.orig	2012-07-24 10:51:53.000000000 -0600
++++ ./src/c/symbols_list.h	2012-08-08 13:07:07.920096592 -0600
+@@ -1233,7 +1233,7 @@ cl_symbols[] = {
+ {SYS_ "REPLACE-ARRAY", SI_ORDINARY, si_replace_array, 2, OBJNULL},
+ {SYS_ "ROW-MAJOR-ASET", SI_ORDINARY, si_row_major_aset, 3, OBJNULL},
+ {EXT_ "RUN-PROGRAM", EXT_ORDINARY, si_run_program, -1, OBJNULL},
+-{SYS_ "WAIT-FOR-ALL-PROCESSES", SI_ORDINARY, si_wait_for_all_processes, 0, OBJNULL},
++{SYS_ "WAIT-FOR-ALL-PROCESSES", SI_ORDINARY, si_wait_for_all_processes, -1, OBJNULL},
+ {EXT_ "SAFE-EVAL", EXT_ORDINARY, ECL_NAME(si_safe_eval), -1, OBJNULL},
+ {SYS_ "SCH-FRS-BASE", SI_ORDINARY, si_sch_frs_base, 2, OBJNULL},
+ {SYS_ "SCHAR-SET", SI_ORDINARY, si_char_set, 3, OBJNULL},
+--- ./src/c/unixsys.d.orig	2012-07-24 10:51:53.000000000 -0600
++++ ./src/c/unixsys.d	2012-08-08 13:07:07.921096588 -0600
+@@ -289,8 +289,8 @@ ecl_waitpid(cl_object pid, cl_object wai
+         @(return status code pid)
+ }
+ 
+-cl_object
+-si_wait_for_all_processes()
++@(defun si::wait-for-all-processes (&key (process ECL_NIL))
++@
+ {
+         const cl_env_ptr env = ecl_process_env();
+ #if defined(SIGCHLD) && !defined(ECL_WINDOWS_HOST)
+@@ -315,6 +315,7 @@ si_wait_for_all_processes()
+ #endif
+         ecl_return0(env);
+ }
++@)
+ 
+ #if defined(ECL_MS_WINDOWS_HOST) || defined(cygwin)
+ cl_object
+--- ./src/c/unixint.d.orig	2012-08-08 12:44:57.745877433 -0600
++++ ./src/c/unixint.d	2012-08-08 13:07:07.921096588 -0600
+@@ -563,7 +563,7 @@ asynchronous_signal_servicing_thread()
+ 		}
+ #ifdef SIGCHLD
+ 		if (signal_thread_msg.signo == SIGCHLD) {
+-			si_wait_for_all_processes();
++			si_wait_for_all_processes(0);
+ 			continue;
+ 		}
+ #endif
+@@ -1187,7 +1187,7 @@ asynchronous_signal_servicing_thread()
+ #endif
+ #ifdef SIGCHLD
+                         if (signo == SIGCHLD) {
+-                                si_wait_for_all_processes();
++                                si_wait_for_all_processes(0);
+                                 continue;
+                         }
+ #endif
+--- ./src/h/internal.h.orig	2012-07-24 10:51:53.000000000 -0600
++++ ./src/h/internal.h	2012-08-08 13:07:07.922096585 -0600
+@@ -516,7 +516,7 @@ extern cl_object mp_get_rwlock_write_wai
+ extern void ecl_interrupt_process(cl_object process, cl_object function);
+ 
+ /* unixsys.d */
+-extern cl_object si_wait_for_all_processes();
++extern cl_object si_wait_for_all_processes _ECL_ARGS((cl_narg narg, ...));
+ 
+ /*
+  * Fake several ISO C99 mathematical functions
diff --git a/ecl-12.2.1-signal_handling_thread.patch b/ecl-12.7.1-signal_handling_thread.patch
similarity index 67%
rename from ecl-12.2.1-signal_handling_thread.patch
rename to ecl-12.7.1-signal_handling_thread.patch
index d9c69c6..8c51786 100644
--- a/ecl-12.2.1-signal_handling_thread.patch
+++ b/ecl-12.7.1-signal_handling_thread.patch
@@ -1,6 +1,6 @@
---- ./src/c/main.d.orig	2012-06-13 10:04:55.038269146 -0600
-+++ ./src/c/main.d	2012-06-13 10:04:59.169264290 -0600
-@@ -76,7 +76,11 @@ static cl_fixnum option_values[ECL_OPT_L
+--- ./src/c/main.d.orig	2012-07-24 10:51:53.000000000 -0600
++++ ./src/c/main.d	2012-07-27 15:43:14.666816529 -0600
+@@ -76,7 +76,11 @@ cl_fixnum ecl_option_values[ECL_OPT_LIMI
  	1,		/* ECL_OPT_TRAP_SIGPIPE */
  	1,		/* ECL_OPT_TRAP_SIGCHLD */
  	1,		/* ECL_OPT_TRAP_INTERRUPT_SIGNAL */
@@ -9,10 +9,10 @@
 +#else
  	1,		/* ECL_OPT_SIGNAL_HANDLING_THREAD */
 +#endif
- 	128,		/* ECL_OPT_SIGNAL_QUEUE_SIZE */
+ 	16,		/* ECL_OPT_SIGNAL_QUEUE_SIZE */
  	0,		/* ECL_OPT_BOOTED */
  	8192,		/* ECL_OPT_BIND_STACK_SIZE */
-@@ -449,11 +453,11 @@ cl_boot(int argc, char **argv)
+@@ -504,11 +508,11 @@ cl_boot(int argc, char **argv)
  		return 1;
  	}
  
diff --git a/ecl-12.7.1-warnings.patch b/ecl-12.7.1-warnings.patch
new file mode 100644
index 0000000..78886cd
--- /dev/null
+++ b/ecl-12.7.1-warnings.patch
@@ -0,0 +1,277 @@
+--- ./src/c/ffi.d.orig	2012-07-24 10:51:53.000000000 -0600
++++ ./src/c/ffi.d	2012-08-08 13:11:51.158046473 -0600
+@@ -701,7 +701,7 @@ si_load_foreign_module(cl_object filenam
+ #if !defined(ENABLE_DLOPEN)
+ 	FEerror("SI:LOAD-FOREIGN-MODULE does not work when ECL is statically linked", 0);
+ #else
+-	cl_object output;
++	cl_object output = ECL_NIL;
+ 
+ # ifdef ECL_THREADS
+ 	mp_get_lock(1, ecl_symbol_value(@'mp::+load-compile-lock+'));
+--- ./src/c/cinit.d.orig	2012-07-24 10:51:53.000000000 -0600
++++ ./src/c/cinit.d	2012-08-08 13:09:32.569613012 -0600
+@@ -146,6 +146,7 @@ static cl_object si_simple_toplevel ()
+                         ecl_prin1(sentence, output);
+                 }
+         } ECL_CATCH_ALL_END;
++	return ECL_NIL;
+ }
+ 
+ int
+--- ./src/c/read.d.orig	2012-07-24 10:51:53.000000000 -0600
++++ ./src/c/read.d	2012-08-08 13:09:32.570613009 -0600
+@@ -2261,7 +2261,7 @@ ecl_init_module(cl_object block, void (*
+ 	volatile cl_object x;
+ 	cl_index i, len, perm_len, temp_len;
+ 	cl_object in;
+-	cl_object *VV, *VVtemp = 0;
++	cl_object *VV = 0, *VVtemp = 0;
+ 
+ 	if (block == NULL)
+                 block = ecl_make_codeblock();
+--- ./src/c/compiler.d.orig	2012-07-24 10:51:53.000000000 -0600
++++ ./src/c/compiler.d	2012-08-08 13:09:32.572613002 -0600
+@@ -3073,7 +3073,7 @@ si_valid_function_name_p(cl_object name)
+ cl_object
+ si_make_lambda(cl_object name, cl_object rest)
+ {
+-	cl_object lambda;
++	cl_object lambda = Cnil;
+         const cl_env_ptr the_env = ecl_process_env();
+ 	volatile cl_compiler_env_ptr old_c_env = the_env->c_env;
+ 	struct cl_compiler_env new_c_env;
+--- ./src/c/unixfsys.d.orig	2012-07-24 10:51:53.000000000 -0600
++++ ./src/c/unixfsys.d	2012-08-08 13:09:32.573612999 -0600
+@@ -460,7 +460,6 @@ ecl_file_len(int f)
+ 
+ @(defun rename-file (oldn newn &key (if_exists @':error'))
+ 	cl_object old_filename, new_filename, old_truename, new_truename;
+-	int error;
+ @
+ 
+ 	/* 1) Get the old filename, and complain if it has wild components,
+@@ -497,6 +496,9 @@ ecl_file_len(int f)
+                         1, if_exists);
+ 	}
+         {
++#if defined(ECL_MS_WINDOWS_HOST)
++		int error;
++#endif
+                 ecl_disable_interrupts();
+ #if defined(ECL_MS_WINDOWS_HOST)
+ 		error = SetErrorMode(0);
+@@ -630,7 +632,10 @@ ecl_homedir_pathname(cl_object user)
+ {
+ 	cl_index i;
+ 	cl_object namestring;
+-	const char *h, *d;
++	const char *h;
++#if defined(ECL_MS_WINDOWS_HOST)
++	const char *d;
++#endif
+ 	if (!Null(user)) {
+ #ifdef HAVE_PWD_H
+ 		struct passwd *pwent = NULL;
+--- ./src/c/hash.d.orig	2012-07-24 10:51:53.000000000 -0600
++++ ./src/c/hash.d	2012-08-08 13:09:32.574612996 -0600
+@@ -46,7 +46,7 @@ _hash_eql(cl_hashkey h, cl_object x)
+ 		h = _hash_eql(h, x->ratio.num);
+ 		return _hash_eql(h, x->ratio.den);
+ 	case t_singlefloat:
+-		return hash_string(h, (unsigned char*)&ecl_single_float(x), sizeof(ecl_signle_float(x)));
++		return hash_string(h, (unsigned char*)&ecl_single_float(x), sizeof(ecl_single_float(x)));
+ 	case t_doublefloat:
+ 		return hash_string(h, (unsigned char*)&ecl_double_float(x), sizeof(ecl_double_float(x)));
+ #ifdef ECL_LONG_FLOAT
+--- ./src/c/printer/float_to_digits.d.orig	2012-07-24 10:51:53.000000000 -0600
++++ ./src/c/printer/float_to_digits.d	2012-08-08 13:09:32.574612996 -0600
+@@ -177,7 +177,6 @@ change_precision(float_approx *approx, c
+                 {
+                         cl_object e1 = cl_expt(PRINT_BASE, position);
+                         cl_object e2 = ecl_divide(e1, ecl_make_fixnum(2));
+-                        cl_object e3 = cl_expt(PRINT_BASE, k); 
+                         if (ecl_greatereq(ecl_plus(approx->r, ecl_times(approx->s, e1)),
+                                           ecl_times(approx->s, e2)))
+                                 position = ecl_one_minus(position);
+--- ./src/c/num_co.d.orig	2012-07-24 10:51:53.000000000 -0600
++++ ./src/c/num_co.d	2012-08-08 13:09:32.575612992 -0600
+@@ -453,7 +453,7 @@ ecl_ceiling2(cl_object x, cl_object y)
+ 		}
+ #endif
+ 		default:
+-		  (void)0; /*Never reached */
++		  __builtin_unreachable(); /*Never reached */
+ 		}
+ 		break;
+ 	case t_bignum:
+@@ -499,7 +499,7 @@ ecl_ceiling2(cl_object x, cl_object y)
+ 		}
+ #endif
+ 		default:
+-		  (void)0; /*Never reached */
++		  __builtin_unreachable(); /*Never reached */
+ 		}
+ 		break;
+ 	case t_ratio:
+--- ./src/c/ffi/libraries.d.orig	2012-07-24 10:51:53.000000000 -0600
++++ ./src/c/ffi/libraries.d	2012-08-08 13:09:32.575612992 -0600
+@@ -299,7 +299,6 @@ cl_object
+ ecl_library_open(cl_object filename, bool force_reload) {
+ 	cl_object block;
+ 	bool self_destruct = 0;
+-	char *filename_string;
+ 
+ 	/* Coerces to a file name but does not merge with cwd */
+ 	filename = coerce_to_physical_pathname(filename);
+--- ./src/c/unixint.d.orig	2012-07-24 10:51:53.000000000 -0600
++++ ./src/c/unixint.d	2012-08-08 13:09:32.576612988 -0600
+@@ -534,6 +534,8 @@ asynchronous_signal_servicing_thread()
+ 			interrupt_signal =
+ 				ecl_option_values[ECL_OPT_THREAD_INTERRUPT_SIGNAL];
+ 			sigdelset(&handled_set, interrupt_signal);
++		} else {
++			interrupt_signal = -1;
+ 		}
+ 		pthread_sigmask(SIG_BLOCK, &handled_set, NULL);
+ 	}
+@@ -608,7 +610,7 @@ static void
+ handler_fn_prototype(fpe_signal_handler, int sig, siginfo_t *info, void *data)
+ {
+ 	cl_object condition;
+-        int code, old_errno = errno;
++        int code;
+ 	cl_env_ptr the_env;
+ 	reinstall_signal(sig, fpe_signal_handler);
+         /* The lisp environment might not be installed. */
+@@ -783,7 +785,6 @@ ecl_check_pending_interrupts(cl_env_ptr
+ static cl_object
+ do_catch_signal(int code, cl_object action, cl_object process)
+ {
+-	cl_object code_fixnum = ecl_make_fixnum(code);
+         if (action == ECL_NIL || action == @':ignore') {
+                 mysignal(code, SIG_IGN);
+                 return ECL_T;
+--- ./src/c/num_log.d.orig	2012-07-24 10:51:53.000000000 -0600
++++ ./src/c/num_log.d	2012-08-08 13:09:32.577612985 -0600
+@@ -476,7 +476,7 @@ cl_object
+ si_bit_array_op(cl_object o, cl_object x, cl_object y, cl_object r)
+ {
+ 	cl_fixnum i, j, n, d;
+-	cl_object r0;
++	cl_object r0 = ECL_NIL;
+ 	bit_operator op;
+ 	bool replace = FALSE;
+ 	int xi, yi, ri;
+--- ./src/c/numbers/expt.d.orig	2012-07-24 10:51:53.000000000 -0600
++++ ./src/c/numbers/expt.d	2012-08-08 13:09:32.577612985 -0600
+@@ -81,7 +81,7 @@ expt_zero(cl_object x, cl_object y)
+                 return ecl_make_complex(z, ecl_make_fixnum(0));
+         default:
+                 /* We will never reach this */
+-                (void)0;
++                __builtin_unreachable();
+         }
+ }
+ 
+--- ./src/c/alloc_2.d.orig	2012-07-24 10:51:53.000000000 -0600
++++ ./src/c/alloc_2.d	2012-08-08 13:09:32.578612982 -0600
+@@ -33,6 +33,9 @@
+ 
+ static void gather_statistics();
+ static void ecl_mark_env(struct cl_env_struct *env);
++extern void GC_push_all(char *bottom, char *top);
++extern void GC_push_conditional(char *bottom, char *top, int all);
++extern void GC_set_mark_bit(const void *p);
+ 
+ #ifdef GBC_BOEHM_PRECISE
+ # if GBC_BOEHM
+@@ -760,8 +763,6 @@ to_bitmap(void *x, void *y)
+ void
+ init_alloc(void)
+ {
+-        union cl_lispunion o;
+-        struct ecl_cons c;
+ 	int i;
+ 	if (alloc_initialized) return;
+ 	alloc_initialized = TRUE;
+--- ./src/c/interpreter.d.orig	2012-07-24 10:51:53.000000000 -0600
++++ ./src/c/interpreter.d	2012-08-08 13:09:32.579612979 -0600
+@@ -273,7 +273,7 @@ ecl_interpret(cl_object frame, cl_object
+         volatile cl_index frame_index = 0;
+ 	cl_opcode *vector = (cl_opcode*)bytecodes->bytecodes.code;
+ 	cl_object *data = bytecodes->bytecodes.data->vector.self.t;
+-	cl_object reg0, reg1, lex_env = env;
++	cl_object reg0 = OBJNULL, reg1 = OBJNULL, lex_env = env;
+ 	cl_index narg;
+ 	struct ecl_stack_frame frame_aux;
+ 	volatile struct ecl_ihs_frame ihs;
+--- ./src/c/file.d.orig	2012-07-24 10:51:53.000000000 -0600
++++ ./src/c/file.d	2012-08-08 13:09:32.581612973 -0600
+@@ -1119,6 +1119,8 @@ utf_8_encoder(cl_object stream, unsigned
+ 		buffer[1] = (c & 0x3f) | 0x80; c >>= 6;
+ 		buffer[0] = c | 0xF0;
+ 		nbytes = 4;
++	} else {
++		nbytes = 0;
+ 	}
+ 	return nbytes;
+ }
+@@ -5110,7 +5112,7 @@ ecl_open_stream(cl_object fn, enum ecl_s
+ 		FEerror("Illegal stream mode ~S", 1, ecl_make_fixnum(smm));
+ 	}
+ 	if (flags & ECL_STREAM_C_STREAM) {
+-		FILE *fp;
++		FILE *fp = NULL;
+ 		safe_close(f);
+ 		/* We do not use fdopen() because Windows seems to
+ 		 * have problems with the resulting streams. Furthermore, even for
+--- ./src/c/serialize.d.orig	2012-07-24 10:51:53.000000000 -0600
++++ ./src/c/serialize.d	2012-08-08 13:09:32.581612973 -0600
+@@ -120,7 +120,7 @@ fix_to_ptr(cl_object ptr)
+ static cl_object
+ enqueue(pool_t pool, cl_object what)
+ {
+-        cl_object record, index;
++        cl_object index;
+         if (ECL_FIXNUMP(what) || ECL_CHARACTERP(what) || what == OBJNULL) {
+                 return what;
+         }
+--- ./src/h/legacy.h.orig	2012-07-24 10:51:53.000000000 -0600
++++ ./src/h/legacy.h	2012-08-08 13:13:29.205633962 -0600
+@@ -120,7 +120,7 @@
+ 
+ #define number_to_float(x) ((float)ecl_to_double(x))
+ 
+-#define ecl_make_unsigned_long_Long(o) ecl_make_ulong_long(o)
++#define ecl_make_unsigned_long_Long(o) ecl_make_ulong_Long(o)
+ #define ecl_to_unsigned_long_long(o) ecl_to_ulong_long(o)
+ 
+ #define ADIMLIM ECL_ARRAY_DIMENSION_LIMIT
+--- ./src/h/ecl-inl.h.orig	2012-07-24 10:51:53.000000000 -0600
++++ ./src/h/ecl-inl.h	2012-08-08 13:09:32.582612969 -0600
+@@ -73,11 +73,11 @@
+                 cl_fixnum padding[(sizeof(struct ecl_base_string)+3)/4*4]; \
+         } name[]
+ 
+-#define ecl_def_string_array_elt(chars) {                      \
++#define ecl_def_string_array_elt(chars) { {                      \
+                 (int8_t)t_base_string, 0, ecl_aet_bc, 0,            \
+                         ECL_NIL, (cl_index)(sizeof(chars))-1,      \
+                         (cl_index)(sizeof(chars))-1,            \
+-                        (ecl_base_char*)(chars) }
++                        (ecl_base_char*)(chars) } }
+ 
+ #define ecl_def_ct_base_string(name,chars,len,static,const)     \
+         static const struct ecl_base_string name ## _data = {    \
+--- ./src/h/external.h.orig	2012-07-24 10:51:53.000000000 -0600
++++ ./src/h/external.h	2012-08-08 13:13:14.485702638 -0600
+@@ -1101,7 +1101,7 @@ extern ECL_API cl_object ecl_make_int64_
+ #ifdef ecl_long_long_t
+ extern ECL_API ecl_ulong_long_t ecl_to_ulong_Long(cl_object p);
+ extern ECL_API ecl_long_long_t ecl_to_long_long(cl_object p);
+-extern ECL_API cl_object ecl_make_ulong_long(ecl_ulong_long_t i);
++extern ECL_API cl_object ecl_make_ulong_Long(ecl_ulong_long_t i);
+ extern ECL_API cl_object ecl_make_long_long(ecl_long_long_t i);
+ #endif /* ecl_long_long_t */
+ 
diff --git a/ecl.spec b/ecl.spec
index 72c085c..7cbb50f 100644
--- a/ecl.spec
+++ b/ecl.spec
@@ -1,21 +1,20 @@
 Name:           ecl
-Version:        12.2.1
-Release:        5%{?dist}
+Version:        12.7.1
+Release:        1%{?dist}
 Summary:        Embeddable Common-Lisp
 
 Group:          Development/Languages
 License:        LGPLv2+ and BSD and MIT and Public Domain
 URL:            http://ecls.sourceforge.net/
-Source0:        http://downloads.sourceforge.net/ecls/%{name}-%{version}.tgz
+Source0:        http://downloads.sourceforge.net/ecls/%{name}-%{version}.tar.gz
 # The manual has not yet been released.  Use the following commands to generate
 # the manual tarball:
 #   git clone git://ecls.git.sourceforge.net/gitroot/ecls/ecl-doc
 #   cd ecl-doc
-#   git checkout 04798a28d55c5ec096af5976f0ceef663f4d717b
+#   git checkout 5d2657b5b32a2b5df701ba1ffa768e3e05816b70
 #   rm -fr .git
 #   cd ..
-#   tar cf ecl-doc.tar ecl-doc
-#   xz ecl-doc.tar
+#   tar cJf ecl-doc.tar.xz ecl-doc
 Source1:        %{name}-doc.tar.xz
 Source2:        %{name}.desktop
 # A modified version of src/util/ecl.svg with extra whitespace removed.  The
@@ -23,18 +22,21 @@ Source2:        %{name}.desktop
 Source3:        %{name}.svg
 # This patch is Fedora-specific; it will not be sent upstream.  It avoids
 # building libatomic_ops from source.
-Patch0:         %{name}-12.2.1-atomic_ops.patch
+Patch0:         %{name}-12.7.1-atomic_ops.patch
 # This patch was sent upstream on 4 Feb 2012.  It fixes a few warnings
 # from the C compiler that indicate situations that might be dangerous at
 # runtime.
-Patch1:         %{name}-12.2.1-warnings.patch
+Patch1:         %{name}-12.7.1-warnings.patch
 # Do not use a separate thread to handle signals by default if built with
 # bohem-gc support.
 # This prevents a deadlock when building maxima with ecl support in
 # fedora, and should handle by default these problems:
 # http://trac.sagemath.org/sage_trac/ticket/11752
 # http://www.mail-archive.com/ecls-list@lists.sourceforge.net/msg00644.html
-Patch2:         %{name}-12.2.1-signal_handling_thread.patch
+Patch2:         %{name}-12.7.1-signal_handling_thread.patch
+# Sent upstream 8 Aug 2012.  Fix a signal handler interface that does not
+# conform to the required interface.
+Patch3:         %{name}-12.7.1-sighandler.patch
 
 BuildRequires:  libX11-devel
 BuildRequires:  pkgconfig
@@ -73,6 +75,7 @@ Gray streams.
 %patch0
 %patch1
 %patch2
+%patch3
 
 # Remove spurious executable bits
 chmod a-x src/CHANGELOG
@@ -88,7 +91,9 @@ find src/h -type f -perm /0111 | xargs chmod a-x
 %endif
   CPPFLAGS=`pkg-config --cflags libffi`
 make
+mkdir -p ecl-doc/tmp
 make -C ecl-doc
+rm ecl-doc/html/ecl2.proc
 
 
 %install
@@ -146,10 +151,14 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor >&/dev/null ||:
 %{_includedir}/ecl
 %{_mandir}/man1/*
 %doc ANNOUNCEMENT Copyright LGPL examples src/CHANGELOG
-%doc ecl-doc/ecl.css ecl-doc/html src/doc/amop.txt src/doc/types-and-classes
+%doc ecl-doc/html src/doc/amop.txt src/doc/types-and-classes
 
 
 %changelog
+* Wed Aug  8 2012 Jerry James <loganjerry at gmail.com> - 12.7.1-1
+- New upstream release
+- Add sighandler patch to fix thread-enabled build
+
 * Wed Jul 18 2012 Fedora Release Engineering <rel-eng at lists.fedoraproject.org> - 12.2.1-5
 - Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
 
diff --git a/sources b/sources
index 3c0d520..b2caef8 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
-1a54b733e7cd07af2b1cb6d7f8b716d2  ecl-12.2.1.tgz
-e50473e1fa75a2475aff5f4423dbe228  ecl-doc.tar.xz
+ce8dd2136fbbc74e44a1c41b32db1f3c  ecl-12.7.1.tar.gz
+1eb2e041f59852dc3adb4db457564e6c  ecl-doc.tar.xz


More information about the scm-commits mailing list