diff options
author | Miroslav Lichvar <mlichvar@fedoraproject.org> | 2008-12-09 12:12:42 +0000 |
---|---|---|
committer | Miroslav Lichvar <mlichvar@fedoraproject.org> | 2008-12-09 12:12:42 +0000 |
commit | 30890d5d17dd77b550df20629d18accd4f6d89b8 (patch) | |
tree | 5759fdf3a987bba07fec066a012b63d2a70e6d1b | |
parent | 294b38caf3bb24580d4072bb60b781328fb18d11 (diff) | |
download | guile-30890d5d17dd77b550df20629d18accd4f6d89b8.tar.gz guile-30890d5d17dd77b550df20629d18accd4f6d89b8.tar.xz guile-30890d5d17dd77b550df20629d18accd4f6d89b8.zip |
- update to 1.8.6guile-1_8_6-1_fc11
-rw-r--r-- | .cvsignore | 2 | ||||
-rw-r--r-- | guile-1.8.5-conts.patch | 474 | ||||
-rw-r--r-- | guile-1.8.5-macrodir.patch | 12 | ||||
-rw-r--r-- | guile-1.8.6-deplibs.patch (renamed from guile-1.8.1-deplibs.patch) | 41 | ||||
-rw-r--r-- | guile.spec | 19 | ||||
-rw-r--r-- | sources | 2 |
6 files changed, 32 insertions, 518 deletions
@@ -1 +1 @@ -guile-1.8.5.tar.gz +guile-1.8.6.tar.gz diff --git a/guile-1.8.5-conts.patch b/guile-1.8.5-conts.patch deleted file mode 100644 index 66e979c..0000000 --- a/guile-1.8.5-conts.patch +++ /dev/null @@ -1,474 +0,0 @@ -From 78aa4a8850396801f2e5515565d051b45b4f15b5 Mon Sep 17 00:00:00 2001 -From: Neil Jerram <neil@ossau.uklinux.net> -Date: Thu, 8 May 2008 00:29:53 +0100 -Subject: [PATCH] Fix continuation problems on IA64. - -* Specific problems in IA64 make check - -** test-unwind - -Representation of the relevant dynamic context: - - non-rewindable - catch frame make cont. - o----o-----a----------b-------------c - \ - \ call cont. - o-----o-----------d - -A continuation is captured at (c), with a non-rewindable frame in the -dynamic context at (b). If a rewind through that frame was attempted, -Guile would throw to the catch at (a). Then the context unwinds back -past (a), then winds forwards again, and the captured continuation is -called at (d). - -We should end up at the catch at (a). On ia64, we get an "illegal -instruction". - -The problem is that Guile does not restore the ia64 register backing -store (RBS) stack (which is saved off when the continuation is -captured) until all the unwinding and rewinding is done. Therefore, -when the rewind code (scm_i_dowinds) hits the non-rewindable frame at -(b), the RBS stack hasn't yet been restored. The throw finds the -jmp_buf (for the catch at (a)) correctly from the dynamic context, and -jumps back to (a), but the RBS stack is invalid, hence the illegal -instruction. - -This could be fixed by restoring the RBS stack earlier, at the same -point (copy_stack) where the normal stack is restored. But that -causes a problem in the next test... - -** continuations.test - -The dynamic context diagram for this case is similar: - - non-rewindable - catch frame make cont. - a----x-----o----------b-------------c - \ - \ call cont. - o-------d - -The only significant difference is that the catch point (a) is -upstream of where the dynamic context forks. This means that the RBS -stack at (d) already contains the correct RBS contents for throwing -back to (a), so it doesn't matter whether the RBS stack that was saved -off with the continuation gets restored. - -This test passes with the Guile 1.8.4 code, but fails (with an -"illegal instruction") when the code is changed to restore the RBS -stack earlier as described above. - -The problem now is that the RBS stack is being restored _too_ early; -specifically when there is still stuff to do that relies on the old -RBS contents. When a continuation is called, the sequence of relevant -events is: - - (1) Grow the (normal) stack until it is bigger than the (normal) - stack saved off in the continuation. (scm_dynthrow, grow_stack) - - (2) scm_i_dowinds calls itself recursively, such that - - (2.1) for each rewind (from (x) to (c)) that will be needed, - another frame is added to the stack (both normal and RBS), - with local variables specifying the required rewind; the - rewinds don't actually happen yet, they will happen when - the stack unwinds again through these frames - - (2.2) required unwinds - back from where the continuation was - called (d) to the fork point (x) - are done immediately. - - (3) The normal (i.e. non-RBS) stack that was stored in the - continuation is restored (i.e. copied on top of the actual - stack). - - Note that this doesn't overwrite the frames that were added in - (2.1), because the growth in (1) ensures that the added frames - are beyond the end of the restored stack. - - (4) ? Restore the RBS stack here too ? - - (5) Return (from copy_stack) through the (2.1) frames, which means - that the rewinds now happen. - - (6) setcontext (or longjmp) to the context (c) where the - continuation was captured. - -The trouble is that step (1) does not create space in the RBS stack in -the same kind of way that it does for the normal stack. Therefore, if -the saved (in the continuation) RBS stack is big enough, it can -overwrite the RBS of the (2.1) frames that still need to complete. -This causes an illegal instruction when we return through those frames -and try to perform the rewinds. - -* Fix - -The key to the fix is that the saved RBS stack only needs to be -restored at some point before the next setcontext call, and that doing -it as close to the setcontext call as possible will avoid bad -interactions with the pre-setcontext stack. Therefore we do the -restoration at the last possible point, immediately before the next -setcontext call. - -The situation is complicated by there being two ways that the next -setcontext call can happen. - - - If the unwinding and rewinding is all successful, the next - setcontext will be the one from step (6) above. This is the - "normal" continuation invocation case. - - - If one of the rewinds throws an error, the next setcontext will - come from the throw implementation code. (And the one in step (6) - will never happen.) This is the rewind error case. - -In the rewind error case, the code calling setcontext knows nothing -about the continuation. So to cover both cases, we: - - - copy (in step (4) above) the address and length of the - continuation's saved RBS stack to the current thread state - (SCM_I_CURRENT_THREAD) - - - modify all setcontext callers so that they check the current - thread state for a saved RBS stack, and restore it if so before - calling setcontext. - -* Notes - -** I think rewinders cannot rely on using any stack data - -Unless it can be guaranteed that the data won't go into a register. -I'm not 100% sure about this, but I think it follows from the fact -that the RBS stack is not restored until after the rewinds have -happened. - -Note that this isn't a regression caused by the current fix. In Guile -1.8.4, the RBS stack was restored _after_ the rewinds, and this is -still the case now. - -** Most setcontext calls for `throw' don't need to change the RBS stack - -In the absence of continuation invocation, the setcontext call in the -throw implementation code always sets context to a place higher up the -same stack (both normal and RBS), hence no stack restoration is -needed. - -* Other changes - -** Using setcontext for all non-local jumps (for __ia64__) - -Along the way, I read a claim somewhere that setcontext was more -reliable than longjmp, in cases where the stack has been manipulated. - -I don't now have any reason to believe this, but it seems reasonable -anyway to leave the __ia64__ code using getcontext/setcontext, instead -of setjmp/longjmp. - -(I think the only possible argument against this would be performance - -if getcontext was significantly slower than setjmp. It that proves to -be the case, we should revisit this.) - -** Capping RBS base for non-main threads - -Somewhere else along the way, I hit a problem in GC, involving the RBS -stack of a non-main thread. The problem was, in -SCM_MARK_BACKING_STORE, that scm_ia64_register_backing_store_base was -returning a value that was massively greater than the value of -scm_ia64_ar_bsp, leading to a seg fault. This is because the -implementation of scm_ia64_register_backing_store_base is only valid -for the main thread. I couldn't find a neat way of getting the true -RBS base of a non-main thread, but one idea is simply to call -scm_ia64_ar_bsp when guilifying a thread, and use the value returned -as an upper bound for that thread's RBS base. (Note that the RBS -stack grows upwards.) - -(Were it not for scm_init_guile, we could be much more definitive -about this. We could take the value of scm_ia64_ar_bsp as a -definitive base address for the part of the RBS stack that Guile cares -about. We could also then discard -scm_ia64_register_backing_store_base.) ---- - libguile/ChangeLog | 35 +++++++++++++++++++++++++++ - libguile/__scm.h | 18 +++++++++++++- - libguile/continuations.c | 58 +++++++++++++++++++++------------------------ - libguile/continuations.h | 2 - - libguile/threads.c | 20 ++++++++++++++- - libguile/threads.h | 5 ++++ - libguile/throw.c | 6 ++++ - 7 files changed, 108 insertions(+), 36 deletions(-) - -diff --git a/libguile/ChangeLog b/libguile/ChangeLog -index 6c25443..dec6dcd 100644 ---- a/libguile/ChangeLog -+++ b/libguile/ChangeLog -@@ -1,3 +1,38 @@ -+2008-05-08 Neil Jerram <neil@ossau.uklinux.net> -+ -+ * throw.c (scm_ithrow): For IA64 add a return statement, to -+ appease GCC. -+ -+ * threads.h (scm_i_thread): New IA64 fields: -+ register_backing_store_base and pending_rbs_continuation. -+ -+ * threads.c (guilify_self_1): For IA64: cap RBS base address at -+ the current value of scm_ia64_ar_bsp, and store the capped value -+ in thread state. -+ (SCM_MARK_BACKING_STORE): Use thread->register_backing_store_base -+ instead of scm_ia64_register_backing_store_base(). -+ (scm_threads_mark_stacks): Add "&" in "&t->regs", so that the code -+ works both for jmp_buf defined as an array, and jmp_buf defined as -+ a struct. -+ -+ * continuations.h (scm_t_contregs): Remove `fresh' and `ctx' -+ fields; these are now inside the IA64 definition of `jmp_buf'. -+ -+ * continuations.c (scm_make_continuation): Simplify, by moving -+ some of the IA64 code inside the definition of "setjmp", and by -+ some obvious commonizations. For IA64 register backing store -+ (RBS) stack base, use thread->register_backing_store_base instead -+ of scm_ia64_register_backing_store_base(). -+ (copy_stack): For IA64, store pointer to continuation being -+ invoked in thread state, so we can restore the continuation's RBS -+ stack just before the next setcontext call. -+ (copy_stack_and_call): Don't restore RBS stack explicitly here. -+ It will be restored, if appropriate, inside the longjmp call. -+ (scm_ia64_longjmp): New function. -+ -+ * __scm.h (setjmp, longjmp, jmp_buf): For IA64, implement using -+ getcontext and setcontext. -+ - 2008-05-07 Ludovic Courtès <ludo@gnu.org> - - * numbers.c (scm_from_complex_double): Mark as `SCM_UNUSED'. -diff --git a/libguile/__scm.h b/libguile/__scm.h -index 3d6d9a7..b198f9d 100644 ---- a/libguile/__scm.h -+++ b/libguile/__scm.h -@@ -402,7 +402,23 @@ - # define setjmp setjump - # define longjmp longjump - # else /* ndef _CRAY1 */ --# include <setjmp.h> -+# if defined (__ia64__) -+/* For IA64, emulate the setjmp API using getcontext. */ -+# include <signal.h> -+# include <ucontext.h> -+ typedef struct { -+ ucontext_t ctx; -+ int fresh; -+ } jmp_buf; -+# define setjmp(JB) \ -+ ( (JB).fresh = 1, \ -+ getcontext (&((JB).ctx)), \ -+ ((JB).fresh ? ((JB).fresh = 0, 0) : 1) ) -+# define longjmp(JB,VAL) scm_ia64_longjmp (&(JB), VAL) -+ void scm_ia64_longjmp (jmp_buf *, int); -+# else /* ndef __ia64__ */ -+# include <setjmp.h> -+# endif /* ndef __ia64__ */ - # endif /* ndef _CRAY1 */ - #endif /* ndef vms */ - -diff --git a/libguile/continuations.c b/libguile/continuations.c -index 39785a5..80a2790 100644 ---- a/libguile/continuations.c -+++ b/libguile/continuations.c -@@ -124,47 +124,30 @@ scm_make_continuation (int *first) - continuation->offset = continuation->stack - src; - memcpy (continuation->stack, src, sizeof (SCM_STACKITEM) * stack_size); - --#ifdef __ia64__ -- continuation->fresh = 1; -- getcontext (&continuation->ctx); -- if (continuation->fresh) -+ *first = !setjmp (continuation->jmpbuf); -+ if (*first) - { -+#ifdef __ia64__ - continuation->backing_store_size = -- (char *) scm_ia64_ar_bsp(&continuation->ctx) -+ (char *) scm_ia64_ar_bsp(&continuation->jmpbuf.ctx) - - -- (char *) scm_ia64_register_backing_store_base (); -+ (char *) thread->register_backing_store_base; - continuation->backing_store = NULL; - continuation->backing_store = - scm_gc_malloc (continuation->backing_store_size, - "continuation backing store"); - memcpy (continuation->backing_store, -- (void *) scm_ia64_register_backing_store_base (), -+ (void *) thread->register_backing_store_base, - continuation->backing_store_size); -- *first = 1; -- continuation->fresh = 0; -+#endif /* __ia64__ */ - return cont; - } - else - { - SCM ret = continuation->throw_value; -- *first = 0; - continuation->throw_value = SCM_BOOL_F; - return ret; - } --#else /* !__ia64__ */ -- if (setjmp (continuation->jmpbuf)) -- { -- SCM ret = continuation->throw_value; -- *first = 0; -- continuation->throw_value = SCM_BOOL_F; -- return ret; -- } -- else -- { -- *first = 1; -- return cont; -- } --#endif /* !__ia64__ */ - } - #undef FUNC_NAME - -@@ -218,6 +201,9 @@ copy_stack (void *data) - copy_stack_data *d = (copy_stack_data *)data; - memcpy (d->dst, d->continuation->stack, - sizeof (SCM_STACKITEM) * d->continuation->num_stack_items); -+#ifdef __ia64__ -+ SCM_I_CURRENT_THREAD->pending_rbs_continuation = d->continuation; -+#endif - } - - static void -@@ -235,16 +221,26 @@ copy_stack_and_call (scm_t_contregs *continuation, SCM val, - scm_i_set_last_debug_frame (continuation->dframe); - - continuation->throw_value = val; --#ifdef __ia64__ -- memcpy (scm_ia64_register_backing_store_base (), -- continuation->backing_store, -- continuation->backing_store_size); -- setcontext (&continuation->ctx); --#else - longjmp (continuation->jmpbuf, 1); --#endif - } - -+#ifdef __ia64__ -+void -+scm_ia64_longjmp (jmp_buf *JB, int VAL) -+{ -+ scm_i_thread *t = SCM_I_CURRENT_THREAD; -+ -+ if (t->pending_rbs_continuation) -+ { -+ memcpy (t->register_backing_store_base, -+ t->pending_rbs_continuation->backing_store, -+ t->pending_rbs_continuation->backing_store_size); -+ t->pending_rbs_continuation = NULL; -+ } -+ setcontext (&JB->ctx); -+} -+#endif -+ - /* Call grow_stack until the stack space is large enough, then, as the current - * stack frame might get overwritten, let copy_stack_and_call perform the - * actual copying and continuation calling. -diff --git a/libguile/continuations.h b/libguile/continuations.h -index 0274c1b..f6fb96a 100644 ---- a/libguile/continuations.h -+++ b/libguile/continuations.h -@@ -46,8 +46,6 @@ typedef struct - jmp_buf jmpbuf; - SCM dynenv; - #ifdef __ia64__ -- ucontext_t ctx; -- int fresh; - void *backing_store; - unsigned long backing_store_size; - #endif /* __ia64__ */ -diff --git a/libguile/threads.c b/libguile/threads.c -index 858a1eb..609fc99 100644 ---- a/libguile/threads.c -+++ b/libguile/threads.c -@@ -423,6 +423,22 @@ guilify_self_1 (SCM_STACKITEM *base) - t->pending_asyncs = 1; - t->last_debug_frame = NULL; - t->base = base; -+#ifdef __ia64__ -+ /* Calculate and store off the base of this thread's register -+ backing store (RBS). Unfortunately our implementation(s) of -+ scm_ia64_register_backing_store_base are only reliable for the -+ main thread. For other threads, therefore, find out the current -+ top of the RBS, and use that as a maximum. */ -+ t->register_backing_store_base = scm_ia64_register_backing_store_base (); -+ { -+ ucontext_t ctx; -+ void *bsp; -+ getcontext (&ctx); -+ bsp = scm_ia64_ar_bsp (&ctx); -+ if (t->register_backing_store_base > bsp) -+ t->register_backing_store_base = bsp; -+ } -+#endif - t->continuation_root = SCM_EOL; - t->continuation_base = base; - scm_i_pthread_cond_init (&t->sleep_cond, NULL); -@@ -1350,7 +1366,7 @@ SCM_DEFINE (scm_broadcast_condition_variable, "broadcast-condition-variable", 1, - scm_mark_locations ((SCM_STACKITEM *) &ctx.uc_mcontext, \ - ((size_t) (sizeof (SCM_STACKITEM) - 1 + sizeof ctx.uc_mcontext) \ - / sizeof (SCM_STACKITEM))); \ -- bot = (SCM_STACKITEM *) scm_ia64_register_backing_store_base (); \ -+ bot = (SCM_STACKITEM *) SCM_I_CURRENT_THREAD->register_backing_store_base; \ - top = (SCM_STACKITEM *) scm_ia64_ar_bsp (&ctx); \ - scm_mark_locations (bot, top - bot); } while (0) - #else -@@ -1374,7 +1390,7 @@ scm_threads_mark_stacks (void) - #else - scm_mark_locations (t->top, t->base - t->top); - #endif -- scm_mark_locations ((SCM_STACKITEM *) t->regs, -+ scm_mark_locations ((SCM_STACKITEM *) &t->regs, - ((size_t) sizeof(t->regs) - / sizeof (SCM_STACKITEM))); - } -diff --git a/libguile/threads.h b/libguile/threads.h -index 09939b0..d58a0fb 100644 ---- a/libguile/threads.h -+++ b/libguile/threads.h -@@ -28,6 +28,7 @@ - #include "libguile/root.h" - #include "libguile/iselect.h" - #include "libguile/dynwind.h" -+#include "libguile/continuations.h" - - #if SCM_USE_PTHREAD_THREADS - #include "libguile/pthread-threads.h" -@@ -107,6 +108,10 @@ typedef struct scm_i_thread { - SCM_STACKITEM *base; - SCM_STACKITEM *top; - jmp_buf regs; -+#ifdef __ia64__ -+ void *register_backing_store_base; -+ scm_t_contregs *pending_rbs_continuation; -+#endif - - } scm_i_thread; - -diff --git a/libguile/throw.c b/libguile/throw.c -index 1c25463..119d0bd 100644 ---- a/libguile/throw.c -+++ b/libguile/throw.c -@@ -824,6 +824,12 @@ scm_ithrow (SCM key, SCM args, int noreturn SCM_UNUSED) - /* Otherwise, it's some random piece of junk. */ - else - abort (); -+ -+#ifdef __ia64__ -+ /* On IA64, we #define longjmp as setcontext, and GCC appears not to -+ know that that doesn't return. */ -+ return SCM_UNSPECIFIED; -+#endif - } - - --- -1.5.4.1 - diff --git a/guile-1.8.5-macrodir.patch b/guile-1.8.5-macrodir.patch deleted file mode 100644 index f46f93b..0000000 --- a/guile-1.8.5-macrodir.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -up guile-1.8.5/configure.in.macrodir guile-1.8.5/configure.in ---- guile-1.8.5/configure.in.macrodir 2008-05-07 19:51:15.000000000 +0200 -+++ guile-1.8.5/configure.in 2008-11-19 13:58:34.000000000 +0100 -@@ -38,7 +38,7 @@ AC_INIT(patsubst(m4_esyscmd(. ./GUILE-VE - ]), - [bug-guile@gnu.org]) - AC_CONFIG_AUX_DIR([build-aux]) --AC_CONFIG_MACRO_DIR([m4]) -+AC_CONFIG_MACRO_DIR([guile-config]) - AC_CONFIG_SRCDIR(GUILE-VERSION) - - AM_INIT_AUTOMAKE([gnu no-define check-news]) diff --git a/guile-1.8.1-deplibs.patch b/guile-1.8.6-deplibs.patch index 4efe565..6bc164d 100644 --- a/guile-1.8.1-deplibs.patch +++ b/guile-1.8.6-deplibs.patch @@ -1,6 +1,23 @@ ---- guile-1.8.1/libguile/Makefile.in.deplibs 2006-10-07 05:54:33.000000000 +0200 -+++ guile-1.8.1/libguile/Makefile.in 2006-10-09 10:54:38.000000000 +0200 -@@ -441,7 +441,7 @@ +diff -up guile-1.8.6/guile-config/guile-config.in.deplibs guile-1.8.6/guile-config/guile-config.in +--- guile-1.8.6/guile-config/guile-config.in.deplibs 2008-12-04 19:30:41.000000000 +0100 ++++ guile-1.8.6/guile-config/guile-config.in 2008-12-09 12:17:48.000000000 +0100 +@@ -152,10 +152,10 @@ + (list + (get-build-info 'CFLAGS) + (if (or (string=? libdir "/usr/lib") +- (string=? libdir "/usr/lib/")) ++ (string=? libdir "/usr/lib64")) + "" + (string-append "-L" (get-build-info 'libdir))) +- "-lguile -lltdl" ++ "-lguile" + (string-join other-flags) + + ))) +diff -up guile-1.8.6/libguile/Makefile.in.deplibs guile-1.8.6/libguile/Makefile.in +--- guile-1.8.6/libguile/Makefile.in.deplibs 2008-12-09 12:15:36.000000000 +0100 ++++ guile-1.8.6/libguile/Makefile.in 2008-12-09 12:15:36.000000000 +0100 +@@ -456,7 +456,7 @@ noinst_HEADERS = convert.i.c \ libguile_la_DEPENDENCIES = @LIBLOBJS@ libguile_la_LIBADD = @LIBLOBJS@ @@ -9,7 +26,7 @@ # These are headers visible as <guile/mumble.h> pkginclude_HEADERS = gh.h -@@ -1908,8 +1908,8 @@ +@@ -2026,8 +2026,8 @@ libpath.h: $(srcdir)/Makefile.in $(top_ @echo '#define SCM_LIBRARY_DIR "$(pkgdatadir)/$(GUILE_EFFECTIVE_VERSION)"'>>libpath.tmp @echo '#define SCM_SITE_DIR "$(pkgdatadir)/site"' >> libpath.tmp @echo '#define SCM_BUILD_INFO { \' >> libpath.tmp @@ -20,7 +37,7 @@ @echo ' { "prefix", "@prefix@" }, \' >> libpath.tmp @echo ' { "exec_prefix", "@exec_prefix@" }, \' >> libpath.tmp @echo ' { "bindir", "@bindir@" }, \' >> libpath.tmp -@@ -1930,7 +1930,7 @@ +@@ -2048,7 +2048,7 @@ libpath.h: $(srcdir)/Makefile.in $(top_ @echo ' { "guileversion", "@GUILE_VERSION@" }, \' >> libpath.tmp @echo ' { "libguileinterface", "@LIBGUILE_INTERFACE@" }, \' \ >> libpath.tmp @@ -29,17 +46,3 @@ @echo ' { "CFLAGS", "@GUILE_CFLAGS@" }, \' >> libpath.tmp @echo ' { "buildstamp", "'"`date`"'" }, \' >> libpath.tmp @echo '}' >> libpath.tmp ---- guile-1.8.1/guile-config/guile-config.in.deplibs 2006-09-20 02:19:02.000000000 +0200 -+++ guile-1.8.1/guile-config/guile-config.in 2006-10-09 11:00:02.000000000 +0200 -@@ -151,9 +151,9 @@ - (display (string-join - (list - (get-build-info 'CFLAGS) -- "-lguile -lltdl" -+ "-lguile" - (if (or (string=? libdir "/usr/lib") -- (string=? libdir "/usr/lib/")) -+ (string=? libdir "/usr/lib64")) - "" - (string-append "-L" (get-build-info 'libdir))) - (string-join other-flags) @@ -1,15 +1,13 @@ Summary: A GNU implementation of Scheme for application extensibility Name: guile %define mver 1.8 -Version: 1.8.5 -Release: 2%{?dist} +Version: 1.8.6 +Release: 1%{?dist} Source: ftp://ftp.gnu.org/pub/gnu/guile/guile-%{version}.tar.gz URL: http://www.gnu.org/software/guile/ Patch1: guile-1.8.4-multilib.patch Patch2: guile-1.8.4-testsuite.patch -Patch3: guile-1.8.5-conts.patch -Patch4: guile-1.8.1-deplibs.patch -Patch5: guile-1.8.5-macrodir.patch +Patch4: guile-1.8.6-deplibs.patch License: GPLv2+ and LGPLv2+ Group: Development/Languages BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) @@ -32,7 +30,7 @@ that you are developing. %package devel Summary: Libraries and header files for the GUILE extensibility library Group: Development/Libraries -Requires: guile = %{epoch}:%{version} gmp-devel +Requires: guile = %{epoch}:%{version}-%{release} gmp-devel Requires: pkgconfig %description devel @@ -47,13 +45,8 @@ install the guile package. %prep %setup -q -%patch5 -p1 -b .macrodir -autoreconf -i -f -sed -i '/define _GNU_SOURCE/d' config.h.in - %patch1 -p1 -b .multilib %patch2 -p1 -b .testsuite -%patch3 -p1 -b .conts %patch4 -p1 -b .deplibs %build @@ -156,6 +149,7 @@ fi %ghost %{_datadir}/guile/%{mver}/slib %dir %{_datadir}/guile/site %{_infodir}/* +%{_mandir}/man1/guile.1* %files devel %defattr(-,root,root,-) @@ -169,6 +163,9 @@ fi %{_includedir}/libguile.h %changelog +* Tue Dec 09 2008 Miroslav Lichvar <mlichvar@redhat.com> - 5:1.8.6-1 +- update to 1.8.6 + * Wed Nov 19 2008 Miroslav Lichvar <mlichvar@redhat.com> - 5:1.8.5-2 - fix building with new libtool @@ -1 +1 @@ -a3f8216544509a74a4441f689a0410d2 guile-1.8.5.tar.gz +9e23d3dbea0e89bab8a9acc6880150de guile-1.8.6.tar.gz |