summaryrefslogtreecommitdiff
path: root/dev-scheme/guile/files
diff options
context:
space:
mode:
Diffstat (limited to 'dev-scheme/guile/files')
-rw-r--r--dev-scheme/guile/files/50guile-gentoo.el1
-rw-r--r--dev-scheme/guile/files/guile-1.8.8-fix_guile-config.patch14
-rw-r--r--dev-scheme/guile/files/guile-1.8.8-gcc46.patch39
-rw-r--r--dev-scheme/guile/files/guile-1.8.8-gcc5.patch15
-rw-r--r--dev-scheme/guile/files/guile-1.8.8-gtexinfo-5.patch15
-rw-r--r--dev-scheme/guile/files/guile-1.8.8-makeinfo-5.patch71
-rw-r--r--dev-scheme/guile/files/guile-1.8.8-mkdir-mask.patch35
-rw-r--r--dev-scheme/guile/files/guile-1.8.8-readline.patch34
-rw-r--r--dev-scheme/guile/files/guile-1.8.8-sandbox.patch15
-rw-r--r--dev-scheme/guile/files/guile-1.8.8-tinfo.patch15
-rw-r--r--dev-scheme/guile/files/guile-2-snarf.patch47
-rw-r--r--dev-scheme/guile/files/guile-2.0.14-darwin.patch38
-rw-r--r--dev-scheme/guile/files/guile-2.0.14-ia64-fix-crash-thread-context-switch.patch63
-rw-r--r--dev-scheme/guile/files/guile-2.2.3-gentoo-sandbox.patch10
14 files changed, 412 insertions, 0 deletions
diff --git a/dev-scheme/guile/files/50guile-gentoo.el b/dev-scheme/guile/files/50guile-gentoo.el
new file mode 100644
index 000000000000..431f7e90ae73
--- /dev/null
+++ b/dev-scheme/guile/files/50guile-gentoo.el
@@ -0,0 +1 @@
+(add-to-list 'load-path "@SITELISP@")
diff --git a/dev-scheme/guile/files/guile-1.8.8-fix_guile-config.patch b/dev-scheme/guile/files/guile-1.8.8-fix_guile-config.patch
new file mode 100644
index 000000000000..2b04426ebd96
--- /dev/null
+++ b/dev-scheme/guile/files/guile-1.8.8-fix_guile-config.patch
@@ -0,0 +1,14 @@
+diff -ruN 1/configure.in 2/configure.in
+--- 1/configure.in 2010-12-13 17:24:39.000000000 +0000
++++ 2/configure.in 2011-04-29 11:53:39.000000000 +0000
+@@ -1522,8 +1522,8 @@
+ #######################################################################
+
+ dnl Tell guile-config what flags guile users should compile and link with.
+-GUILE_LIBS="$LDFLAGS $LIBS"
+-GUILE_CFLAGS="$CPPFLAGS $PTHREAD_CFLAGS"
++GUILE_LIBS="$LIBS"
++GUILE_CFLAGS="$PTHREAD_CFLAGS"
+ AC_SUBST(GUILE_LIBS)
+ AC_SUBST(GUILE_CFLAGS)
+
diff --git a/dev-scheme/guile/files/guile-1.8.8-gcc46.patch b/dev-scheme/guile/files/guile-1.8.8-gcc46.patch
new file mode 100644
index 000000000000..b06a0e59eb14
--- /dev/null
+++ b/dev-scheme/guile/files/guile-1.8.8-gcc46.patch
@@ -0,0 +1,39 @@
+Backported upstream patch to fix SIGSEGV with gcc-4.6
+
+http://git.savannah.gnu.org/cgit/guile.git/commit/?h=branch_release-1-8&id=62bc1072c19e81bb0f9e42a5034e7ab8c27d3b94
+https://bugs.gentoo.org/show_bug.cgi?id=424475
+--- a/configure.in
++++ b/configure.in
+@@ -1199,23 +1199,20 @@
+ AC_RUN_IFELSE([AC_LANG_SOURCE(
+ [AC_INCLUDES_DEFAULT
+ int
+-find_stack_direction ()
++find_stack_direction (int *addr, int depth)
+ {
+- static char *addr = 0;
+- auto char dummy;
+- if (addr == 0)
+- {
+- addr = &dummy;
+- return find_stack_direction ();
+- }
+- else
+- return (&dummy > addr) ? 1 : -1;
++ int dir, dummy = 0;
++ if (! addr)
++ addr = &dummy;
++ *addr = addr < &dummy ? 1 : addr == &dummy ? 0 : -1;
++ dir = depth ? find_stack_direction (addr, depth - 1) : 0;
++ return dir + dummy;
+ }
+
+ int
+-main ()
++main (int argc, char **argv)
+ {
+- return find_stack_direction () < 0;
++ return find_stack_direction (0, argc + !argv + 20) < 0;
+ }])],
+ [SCM_I_GSC_STACK_GROWS_UP=1],
+ [],
diff --git a/dev-scheme/guile/files/guile-1.8.8-gcc5.patch b/dev-scheme/guile/files/guile-1.8.8-gcc5.patch
new file mode 100644
index 000000000000..742ea0ba9de2
--- /dev/null
+++ b/dev-scheme/guile/files/guile-1.8.8-gcc5.patch
@@ -0,0 +1,15 @@
+Preprocessor changes in GCC 5 cause guile-snarf to output garbage.
+
+https://bugs.gentoo.org/560736
+
+--- a/libguile/guile-snarf.in
++++ b/libguile/guile-snarf.in
+@@ -50,7 +50,7 @@
+ ## Apparently, AIX's preprocessor is unhappy if you try to #include an
+ ## empty file.
+ echo "/* cpp arguments: $@ */" ;
+- ${cpp} -DSCM_MAGIC_SNARF_INITS -DSCM_MAGIC_SNARFER "$@" > ${temp} && cpp_ok_p=true
++ ${cpp} -P -DSCM_MAGIC_SNARF_INITS -DSCM_MAGIC_SNARFER "$@" > ${temp} && cpp_ok_p=true
+ grep "^ *\^ *\^" ${temp} | sed -e "s/^ *\^ *\^//" -e "s/\^\ *:\ *\^.*/;/"
+ }
+
diff --git a/dev-scheme/guile/files/guile-1.8.8-gtexinfo-5.patch b/dev-scheme/guile/files/guile-1.8.8-gtexinfo-5.patch
new file mode 100644
index 000000000000..d7fbda15c101
--- /dev/null
+++ b/dev-scheme/guile/files/guile-1.8.8-gtexinfo-5.patch
@@ -0,0 +1,15 @@
+$NetBSD: patch-doc_tutorial_guile-tut.texi,v 1.1 2013/11/30 07:06:25 dsainty Exp $
+
+Compatibility with gtexinfo 5.2
+
+--- doc/tutorial/guile-tut.texi 2010-12-14 06:24:39.000000000 +1300
++++ doc/tutorial/guile-tut.texi 2013-11-30 19:44:28.304575529 +1300
+@@ -446,7 +446,7 @@
+ Schemer} from that list.}
+
+
+-@subsection Hello World
++@section Hello World
+ @cindex hello world
+
+ Our first program is the typical Scheme "hello world" program. Put the \ No newline at end of file
diff --git a/dev-scheme/guile/files/guile-1.8.8-makeinfo-5.patch b/dev-scheme/guile/files/guile-1.8.8-makeinfo-5.patch
new file mode 100644
index 000000000000..9f3a02c18c65
--- /dev/null
+++ b/dev-scheme/guile/files/guile-1.8.8-makeinfo-5.patch
@@ -0,0 +1,71 @@
+From 937da0f2604ea208ec56517c5a41e582f316a246 Mon Sep 17 00:00:00 2001
+From: Cyprien Nicolas <cyp@fulax.fr>
+Date: Thu, 18 Apr 2013 23:45:23 +0200
+Subject: [PATCH] Fix texinfo files for makeinfo-5.1
+
+---
+ doc/ref/api-options.texi | 2 +-
+ doc/ref/api-utility.texi | 2 +-
+ doc/ref/fdl.texi | 2 +-
+ doc/ref/gh.texi | 4 ++--
+ 4 files changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/doc/ref/api-options.texi b/doc/ref/api-options.texi
+index 7b7a6e0..6ce7291 100644
+--- a/doc/ref/api-options.texi
++++ b/doc/ref/api-options.texi
+@@ -377,9 +377,9 @@ configure @emph{reading}, @emph{printing}, @emph{debugging} or
+ * User level options interfaces::
+ * Reader options::
+ * Printing options::
+-* Debugger options::
+ * Evaluator options::
+ * Evaluator trap options::
++* Debugger options::
+ * Examples of option use::
+ @end menu
+
+diff --git a/doc/ref/api-utility.texi b/doc/ref/api-utility.texi
+index 4a90212..9a4f3cc 100644
+--- a/doc/ref/api-utility.texi
++++ b/doc/ref/api-utility.texi
+@@ -657,7 +657,7 @@ Return 1 if @var{x} is a Scheme-level hook, 0 otherwise.
+ @end deftypefn
+
+
+-@subsubsection Handling Scheme-level hooks from C code
++@subsubheading Handling Scheme-level hooks from C code
+
+ Here is an example of how to handle Scheme-level hooks from C code using
+ the above functions.
+diff --git a/doc/ref/fdl.texi b/doc/ref/fdl.texi
+index 17fe148..4866055 100644
+--- a/doc/ref/fdl.texi
++++ b/doc/ref/fdl.texi
+@@ -408,7 +408,7 @@ as a draft) by the Free Software Foundation.
+ @end enumerate
+
+ @page
+-@appendixsubsec ADDENDUM: How to use this License for your documents
++@appendixsec ADDENDUM: How to use this License for your documents
+
+ To use this License in a document you have written, include a copy of
+ the License in the document and put the following copyright and
+diff --git a/doc/ref/gh.texi b/doc/ref/gh.texi
+index 95dfd92..bbd3af1 100644
+--- a/doc/ref/gh.texi
++++ b/doc/ref/gh.texi
+@@ -995,8 +995,8 @@ These correspond to the Scheme @code{(cons a b)} and @code{(list l0 l1
+
+ @deftypefun SCM gh_car (SCM @var{obj})
+ @deftypefunx SCM gh_cdr (SCM @var{obj})
+-@dots{}
+-
++@deftypefunx SCM gh_c[ad][ad]r (SCM @var{obj})
++@deftypefunx SCM gh_c[ad][ad][ad]r (SCM @var{obj})
+ @deftypefunx SCM gh_c[ad][ad][ad][ad]r (SCM @var{obj})
+ These correspond to the Scheme @code{(caadar ls)} procedures etc @dots{}
+ @end deftypefun
+--
+1.8.2.1
+
diff --git a/dev-scheme/guile/files/guile-1.8.8-mkdir-mask.patch b/dev-scheme/guile/files/guile-1.8.8-mkdir-mask.patch
new file mode 100644
index 000000000000..7d1c703835f1
--- /dev/null
+++ b/dev-scheme/guile/files/guile-1.8.8-mkdir-mask.patch
@@ -0,0 +1,35 @@
+--- a/libguile/filesys.c 2016-11-05 15:03:52.131894648 +0100
++++ b/libguile/filesys.c 2016-11-05 15:07:13.275894481 +0100
+@@ -791,24 +791,18 @@
+ SCM_DEFINE (scm_mkdir, "mkdir", 1, 1, 0,
+ (SCM path, SCM mode),
+ "Create a new directory named by @var{path}. If @var{mode} is omitted\n"
+- "then the permissions of the directory file are set using the current\n"
+- "umask. Otherwise they are set to the decimal value specified with\n"
+- "@var{mode}. The return value is unspecified.")
++ "then the permissions of the directory are set to @code{#o777}\n"
++ "masked with the current umask (@pxref{Processes, @code{umask}}).\n"
++ "Otherwise they are set to the value specified with @var{mode}.\n"
++ "The return value is unspecified.")
+ #define FUNC_NAME s_scm_mkdir
+ {
+ int rv;
+- mode_t mask;
++ mode_t c_mode;
+
+- if (SCM_UNBNDP (mode))
+- {
+- mask = umask (0);
+- umask (mask);
+- STRING_SYSCALL (path, c_path, rv = mkdir (c_path, 0777 ^ mask));
+- }
+- else
+- {
+- STRING_SYSCALL (path, c_path, rv = mkdir (c_path, scm_to_uint (mode)));
+- }
++ c_mode = SCM_UNBNDP (mode) ? 0777 : scm_to_uint (mode);
++
++ STRING_SYSCALL (path, c_path, rv = mkdir (c_path, c_mode));
+ if (rv != 0)
+ SCM_SYSERROR;
+ return SCM_UNSPECIFIED;
diff --git a/dev-scheme/guile/files/guile-1.8.8-readline.patch b/dev-scheme/guile/files/guile-1.8.8-readline.patch
new file mode 100644
index 000000000000..68f64c528a4b
--- /dev/null
+++ b/dev-scheme/guile/files/guile-1.8.8-readline.patch
@@ -0,0 +1,34 @@
+Make guile-readline optional
+
+https://bugs.gentoo.org/392553
+
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -24,7 +24,7 @@
+ #
+ AUTOMAKE_OPTIONS = 1.10
+
+-SUBDIRS = oop libguile ice-9 guile-config guile-readline emacs \
++SUBDIRS = oop libguile ice-9 guile-config @GUILE_READLINE@ emacs \
+ scripts srfi doc examples test-suite benchmark-suite lang am
+
+ bin_SCRIPTS = guile-tools
+--- a/configure.in
++++ b/configure.in
+@@ -57,7 +57,15 @@ AH_TOP(/*GUILE_CONFIGURE_COPYRIGHT*/)
+ #
+ #--------------------------------------------------------------------
+
+-AC_CONFIG_SUBDIRS(guile-readline)
++GUILE_READLINE=
++AC_ARG_ENABLE([readline],
++ [AS_HELP_STRING([--disable-readline],
++ [disable building guile-readline])],
++ if test "x$enable_readline" != xno; then
++ AC_CONFIG_SUBDIRS([guile-readline])
++ GUILE_READLINE="guile-readline"
++ fi)
++AC_SUBST([GUILE_READLINE])
+
+ #--------------------------------------------------------------------
+
diff --git a/dev-scheme/guile/files/guile-1.8.8-sandbox.patch b/dev-scheme/guile/files/guile-1.8.8-sandbox.patch
new file mode 100644
index 000000000000..70d752fdae97
--- /dev/null
+++ b/dev-scheme/guile/files/guile-1.8.8-sandbox.patch
@@ -0,0 +1,15 @@
+Prevent sandbox violation when installing
+
+https://bugs.gentoo.org/521546
+
+--- a/guile-config/Makefile.am
++++ b/guile-config/Makefile.am
+@@ -39,8 +39,3 @@ guile-config: guile-config.in ${top_builddir}/libguile/libpath.h
+ -e s:@-GUILE_VERSION-@:${GUILE_VERSION}:
+ chmod +x guile-config.tmp
+ mv guile-config.tmp guile-config
+-
+-## Get rid of any copies of the configuration script under the old
+-## name, so people don't end up running ancient copies of it.
+-install-exec-local:
+- rm -f ${bindir}/build-guile
diff --git a/dev-scheme/guile/files/guile-1.8.8-tinfo.patch b/dev-scheme/guile/files/guile-1.8.8-tinfo.patch
new file mode 100644
index 000000000000..6c4d0116246e
--- /dev/null
+++ b/dev-scheme/guile/files/guile-1.8.8-tinfo.patch
@@ -0,0 +1,15 @@
+With ncurses[tinfo] tgoto will be in libtinfo
+
+https://bugs.gentoo.org/539316
+
+--- a/guile-readline/configure.in
++++ b/guile-readline/configure.in
+@@ -33,7 +33,7 @@ if test "$MINGW32" = "yes" ; then
+ fi
+ AC_SUBST(EXTRA_DEFS)
+
+-for termlib in ncurses curses termcap terminfo termlib ; do
++for termlib in ncurses curses termcap terminfo termlib tinfo ; do
+ AC_CHECK_LIB(${termlib}, tgoto,
+ [LIBS="-l${termlib} $LIBS"; break])
+ done
diff --git a/dev-scheme/guile/files/guile-2-snarf.patch b/dev-scheme/guile/files/guile-2-snarf.patch
new file mode 100644
index 000000000000..c6ab5cd48cd6
--- /dev/null
+++ b/dev-scheme/guile/files/guile-2-snarf.patch
@@ -0,0 +1,47 @@
+From f775ab3654357fcaad294b95efb0b1c16de1eda8 Mon Sep 17 00:00:00 2001
+From: Sergei Trofimovich <slyfox@gentoo.org>
+Date: Sun, 19 Feb 2017 22:58:40 +0000
+Subject: guile-snarf: skip -g* arguments to avoid build failure
+
+* libguile/guile-snarf.in: skip -g* arguments to avoid failure on
+ -ggdb3.
+
+Bug: https://bugs.gentoo.org/608190
+Bug: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=25803
+Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
+---
+ libguile/guile-snarf.in | 16 ++++++++++++++--
+ 1 file changed, 14 insertions(+), 2 deletions(-)
+
+diff --git a/libguile/guile-snarf.in b/libguile/guile-snarf.in
+index 47bbc04..22dc1d3 100644
+--- a/libguile/guile-snarf.in
++++ b/libguile/guile-snarf.in
+@@ -95,10 +95,22 @@ if [ x"$CPP" = x ] ; then cpp="@CPP@" ; else cpp="$CPP" ; fi
+
+ trap "rm -rf $tempdir" 0 1 2 15
+
++# filter out -g* flags from commandline
++# as some flags like -ggdb3 cause CPP
++
++cpp_args=""
++for arg in "$@"
++do
++ case "$arg" in
++ -g*) ;; # skip debug flag
++ *) cpp_args="$cpp_args $arg" ;;
++ esac
++done
++
+ if [ ! "$outfile" = "-" ] ; then
+- modern_snarf "$@" > $outfile
++ modern_snarf $cpp_args > $outfile
+ else
+- modern_snarf "$@"
++ modern_snarf $cpp_args
+ fi
+
+ # zonk outfile if errors occurred
+--
+cgit v1.0-41-gc330
+
diff --git a/dev-scheme/guile/files/guile-2.0.14-darwin.patch b/dev-scheme/guile/files/guile-2.0.14-darwin.patch
new file mode 100644
index 000000000000..17741ae352c2
--- /dev/null
+++ b/dev-scheme/guile/files/guile-2.0.14-darwin.patch
@@ -0,0 +1,38 @@
+fix compilation on Darwin
+
+https://debbugs.gnu.org/cgi/bugreport.cgi?bug=24862#23
+https://bugs.gentoo.org/show_bug.cgi?id=612338
+
+--- guile-2.0.14/libguile/filesys.c
++++ guile-2.0.14/libguile/filesys.c
+@@ -1486,6 +1486,9 @@
+ mode_bits = scm_i_mode_bits (mode);
+ }
+
++#ifdef __APPLE__
++ open_flags &= O_APPEND|O_SHLOCK|O_EXLOCK|O_CLOEXEC;
++#endif
+ SCM_SYSCALL (rv = mkostemp (c_tmpl, open_flags));
+ if (rv == -1)
+ SCM_SYSERROR;
+--- guile-2.0.14/libguile/stime.c
++++ guile-2.0.14/libguile/stime.c
+@@ -830,6 +830,10 @@
+
+ #ifdef HAVE_POSIX_CPUTIME
+ {
++#ifdef __APPLE__
++ if (clock_gettime (CLOCK_PROCESS_CPUTIME_ID, &posix_run_time_base) == 0)
++ get_internal_run_time = get_internal_run_time_posix_timer;
++#else
+ clockid_t dummy;
+
+ /* Only use the _POSIX_CPUTIME clock if it's going to work across
+@@ -839,6 +843,7 @@
+ get_internal_run_time = get_internal_run_time_posix_timer;
+ else
+ errno = 0;
++#endif
+ }
+ #endif /* HAVE_POSIX_CPUTIME */
+ #endif /* HAVE_CLOCKTIME */
diff --git a/dev-scheme/guile/files/guile-2.0.14-ia64-fix-crash-thread-context-switch.patch b/dev-scheme/guile/files/guile-2.0.14-ia64-fix-crash-thread-context-switch.patch
new file mode 100644
index 000000000000..c2f136ddd104
--- /dev/null
+++ b/dev-scheme/guile/files/guile-2.0.14-ia64-fix-crash-thread-context-switch.patch
@@ -0,0 +1,63 @@
+From f92888853439a8ded221f3423865c78de2a96a14 Mon Sep 17 00:00:00 2001
+From: Sergei Trofimovich <slyfox@gentoo.org>
+Date: Sun, 5 Nov 2017 09:30:45 +0000
+Subject: ia64: Fix crash in thread context switch.
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Fixes <https://bugs.gnu.org/29151> and <https://bugs.gentoo.org/613986>.
+
+Backtrace looks like that:
+
+ Program terminated with signal SIGSEGV, Segmentation fault.
+ #0 0x200000000014a5c0 in scm_ia64_longjmp (JB=0x6000000000817020, VAL=1) at continuations.c:372
+ 372 t->pending_rbs_continuation->backing_store,
+ [Current thread is 1 (Thread 0x2000000000049340 (LWP 8190))]
+ (gdb) bt
+ #0 0x200000000014a5c0 in scm_ia64_longjmp (JB=0x6000000000817020, VAL=1) at continuations.c:372
+ #1 0x2000000000148e00 in scm_c_abort (vm=0x60000000000edea0, tag=0x6000000000795ba0, n=0, argv=0x60000fffff7f0ce0, cookie=-1) at control.c:239
+ #2 0x2000000000149070 in scm_at_abort (tag=0x6000000000795ba0, args=0x304) at control.c:258
+ (gdb) print t
+ $2 = (scm_i_thread *) 0x6000000000068000
+ (gdb) print t->pending_rbs_continuation
+ $3 = (scm_t_contregs *) 0xffeb
+
+The problem here is the value of 't->pending_rbs_continuation' pointer.
+It's supposed to poin to a register stack pointer or be NULL if not yet
+backed up.
+
+The problem is it is never initialized to NULL at creation time and
+contained garbage on stack. Sometimes people are lucky and have zeros
+on stack and guile works. But sometimes there is something and guile
+crashes.
+
+The fix is trivial: initialize 'pending_rbs_continuation = NULL'
+at thread registration time (the same way other threads are registered).
+
+Reported-by: Matt Turner
+
+* libguile/threads.c (guilify_self_1): Initialize pending_rbs_continuation
+to avoid crash on ia64.
+
+Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
+Signed-off-by: Ludovic Courtès <ludo@gnu.org>
+---
+ libguile/threads.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/libguile/threads.c b/libguile/threads.c
+index 9ceb5b8..770f62c 100644
+--- a/libguile/threads.c
++++ b/libguile/threads.c
+@@ -395,6 +395,7 @@ guilify_self_1 (struct GC_stack_base *base, int needs_unregister)
+ t.base = base->mem_base;
+ #ifdef __ia64__
+ t.register_backing_store_base = base->reg_base;
++ t.pending_rbs_continuation = 0;
+ #endif
+ t.continuation_root = SCM_EOL;
+ t.continuation_base = t.base;
+--
+cgit v1.0-41-gc330
+
diff --git a/dev-scheme/guile/files/guile-2.2.3-gentoo-sandbox.patch b/dev-scheme/guile/files/guile-2.2.3-gentoo-sandbox.patch
new file mode 100644
index 000000000000..1cded2d2c924
--- /dev/null
+++ b/dev-scheme/guile/files/guile-2.2.3-gentoo-sandbox.patch
@@ -0,0 +1,10 @@
+diff --git a/test-suite/standalone/test-out-of-memory b/test-suite/standalone/test-out-of-memory
+index 2216512..0ed6079 100755
+--- a/test-suite/standalone/test-out-of-memory
++++ b/test-suite/standalone/test-out-of-memory
+@@ -5,2 +5,5 @@ exec guile -q -s "$0" "$@"
+
++; Gentoo's sandbox does not handle OOM gracefully
++(exit 77)
++
+ (unless (defined? 'setrlimit)