[arch-commits] Commit in libgap/trunk (PKGBUILD libgap-4.8.6.patch)

Antonio Rojas arojas at archlinux.org
Tue Feb 7 09:39:59 UTC 2017


    Date: Tuesday, February 7, 2017 @ 09:39:58
  Author: arojas
Revision: 210724

Use upstream tarball

Modified:
  libgap/trunk/PKGBUILD
Deleted:
  libgap/trunk/libgap-4.8.6.patch

--------------------+
 PKGBUILD           |   20 
 libgap-4.8.6.patch | 1861 ---------------------------------------------------
 2 files changed, 9 insertions(+), 1872 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2017-02-07 09:15:26 UTC (rev 210723)
+++ PKGBUILD	2017-02-07 09:39:58 UTC (rev 210724)
@@ -4,7 +4,7 @@
 
 pkgname=libgap
 pkgver=4.8.6
-pkgrel=1
+pkgrel=2
 pkgdesc="A C library version of the GAP kernel"
 arch=(i686 x86_64)
 url="https://bitbucket.org/vbraun/libgap"
@@ -12,20 +12,18 @@
 depends=(gap)
 makedepends=(git python2-ply)
 #source=("https://bitbucket.org/vbraun/$pkgname/downloads/$pkgname-$pkgver.tar.gz")
-source=("git+https://bitbucket.org/vbraun/libgap/src#commit=6f4bb7e"
-        libgap-4.8.6.patch)
-md5sums=('SKIP'
-         '11c0a2657c77af80ae41b38c2bb0ba50')
+source=(http://mirrors.mit.edu/sage/spkg/upstream/libgap/libgap-$pkgver.tar.gz)
+md5sums=('dd5e20228a136a5fa8e86ad3f4bcf81a')
 
 prepare() {
-  cd src
-  patch -p1 -i ../libgap-4.8.6.patch
-  python2 scripts/libGAPify.py --modify src
-  autoreconf -vi
+  cd $pkgname-$pkgver
+#  patch -p1 -i ../libgap-4.8.6.patch
+#  python2 scripts/libGAPify.py --modify src
+#  autoreconf -vi
 }
 
 build() {
-  cd src
+  cd $pkgname-$pkgver
 
   ./configure --prefix=/usr
   make
@@ -32,6 +30,6 @@
 }
 
 package() {
-  cd src
+  cd $pkgname-$pkgver
   make install DESTDIR="$pkgdir"
 }

Deleted: libgap-4.8.6.patch
===================================================================
--- libgap-4.8.6.patch	2017-02-07 09:15:26 UTC (rev 210723)
+++ libgap-4.8.6.patch	2017-02-07 09:39:58 UTC (rev 210724)
@@ -1,1861 +0,0 @@
-From 55035e11db706d4dea0c8834d3059c33f77c1d42 Mon Sep 17 00:00:00 2001
-From: Lukas Fleischer <lfleischer at lfos.de>
-Date: Fri, 25 Nov 2016 13:59:22 +0100
-Subject: [PATCH] Update to 4.8.6
-
----
- Makefile.in             |  19 +-
- aclocal.m4              |   1 +
- config.guess            |   6 +-
- config.sub              |  10 +-
- configure               | 123 ++++++++-
- configure.ac            |   2 +-
- m4/libtool.m4           |   5 +-
- patches/gap-4.8.6.patch | 684 ++++++++++++++++++++++++++++++++++++++++++++++++
- src/Makefile.in         |  18 +-
- src/bool.c              |   2 +-
- src/code.c              |  40 ++-
- src/gap.c               |   1 +
- src/intfuncs.c          |  33 ---
- src/listfunc.c          |   7 +-
- src/pperm.c             |   4 +-
- src/profile.c           |  75 +++++-
- src/profile.h           |   3 +-
- src/read.c              |  10 +-
- src/streams.c           |  74 ++----
- src/sysfiles.c          |  93 ++++++-
- src/sysfiles.h          |  15 +-
- src/system.c            |   4 +-
- src/trans.c             |   4 +-
- test/Makefile.in        |   9 +-
- 24 files changed, 1076 insertions(+), 166 deletions(-)
- create mode 100644 patches/gap-4.8.6.patch
-
-diff --git a/Makefile.in b/Makefile.in
-index 44732ab..c5f0384 100644
---- a/Makefile.in
-+++ b/Makefile.in
-@@ -97,10 +97,10 @@ host_triplet = @host@
- target_triplet = @target@
- subdir = .
- ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
--am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \
--	$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
--	$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
--	$(top_srcdir)/configure.ac
-+am__aclocal_m4_deps = $(top_srcdir)/m4/ld-version-script.m4 \
-+	$(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
-+	$(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
-+	$(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
- am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
- 	$(ACLOCAL_M4)
- DIST_COMMON = $(srcdir)/Makefile.am $(top_srcdir)/configure \
-@@ -169,7 +169,7 @@ CSCOPE = cscope
- DIST_SUBDIRS = $(SUBDIRS)
- am__DIST_COMMON = $(srcdir)/Makefile.in AUTHORS COPYING ChangeLog \
- 	INSTALL NEWS README TODO compile config.guess config.sub \
--	install-sh ltmain.sh missing
-+	depcomp install-sh ltmain.sh missing
- DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
- distdir = $(PACKAGE)-$(VERSION)
- top_distdir = $(distdir)
-@@ -250,6 +250,7 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
- INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
- LD = @LD@
- LDFLAGS = @LDFLAGS@
-+LIBGAP_LT_VERSION = @LIBGAP_LT_VERSION@
- LIBOBJS = @LIBOBJS@
- LIBS = @LIBS@
- LIBTOOL = @LIBTOOL@
-@@ -558,7 +559,7 @@ distdir: $(DISTFILES)
- 	  ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
- 	|| chmod -R a+r "$(distdir)"
- dist-gzip: distdir
--	tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
-+	tardir=$(distdir) && $(am__tar) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).tar.gz
- 	$(am__post_remove_distdir)
- 
- dist-bzip2: distdir
-@@ -584,7 +585,7 @@ dist-shar: distdir
- 	@echo WARNING: "Support for shar distribution archives is" \
- 	               "deprecated." >&2
- 	@echo WARNING: "It will be removed altogether in Automake 2.0" >&2
--	shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
-+	shar $(distdir) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).shar.gz
- 	$(am__post_remove_distdir)
- 
- dist-zip: distdir
-@@ -602,7 +603,7 @@ dist dist-all:
- distcheck: dist
- 	case '$(DIST_ARCHIVES)' in \
- 	*.tar.gz*) \
--	  GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\
-+	  eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).tar.gz | $(am__untar) ;;\
- 	*.tar.bz2*) \
- 	  bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
- 	*.tar.lz*) \
-@@ -612,7 +613,7 @@ distcheck: dist
- 	*.tar.Z*) \
- 	  uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
- 	*.shar.gz*) \
--	  GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\
-+	  eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).shar.gz | unshar ;;\
- 	*.zip*) \
- 	  unzip $(distdir).zip ;;\
- 	esac
-diff --git a/aclocal.m4 b/aclocal.m4
-index e62b4ad..b839773 100644
---- a/aclocal.m4
-+++ b/aclocal.m4
-@@ -1170,6 +1170,7 @@ AC_SUBST([am__tar])
- AC_SUBST([am__untar])
- ]) # _AM_PROG_TAR
- 
-+m4_include([m4/ld-version-script.m4])
- m4_include([m4/libtool.m4])
- m4_include([m4/ltoptions.m4])
- m4_include([m4/ltsugar.m4])
-diff --git a/config.guess b/config.guess
-index dbfb978..6c32c86 100755
---- a/config.guess
-+++ b/config.guess
-@@ -1,8 +1,8 @@
- #! /bin/sh
- # Attempt to guess a canonical system name.
--#   Copyright 1992-2015 Free Software Foundation, Inc.
-+#   Copyright 1992-2014 Free Software Foundation, Inc.
- 
--timestamp='2015-01-01'
-+timestamp='2014-11-04'
- 
- # This file is free software; you can redistribute it and/or modify it
- # under the terms of the GNU General Public License as published by
-@@ -50,7 +50,7 @@ version="\
- GNU config.guess ($timestamp)
- 
- Originally written by Per Bothner.
--Copyright 1992-2015 Free Software Foundation, Inc.
-+Copyright 1992-2014 Free Software Foundation, Inc.
- 
- This is free software; see the source for copying conditions.  There is NO
- warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
-diff --git a/config.sub b/config.sub
-index 6467c95..7ffe373 100755
---- a/config.sub
-+++ b/config.sub
-@@ -1,8 +1,8 @@
- #! /bin/sh
- # Configuration validation subroutine script.
--#   Copyright 1992-2015 Free Software Foundation, Inc.
-+#   Copyright 1992-2014 Free Software Foundation, Inc.
- 
--timestamp='2015-01-01'
-+timestamp='2014-12-03'
- 
- # This file is free software; you can redistribute it and/or modify it
- # under the terms of the GNU General Public License as published by
-@@ -68,7 +68,7 @@ Report bugs and patches to <config-patches at gnu.org>."
- version="\
- GNU config.sub ($timestamp)
- 
--Copyright 1992-2015 Free Software Foundation, Inc.
-+Copyright 1992-2014 Free Software Foundation, Inc.
- 
- This is free software; see the source for copying conditions.  There is NO
- warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
-@@ -260,7 +260,7 @@ case $basic_machine in
- 	| c4x | c8051 | clipper \
- 	| d10v | d30v | dlx | dsp16xx \
- 	| epiphany \
--	| fido | fr30 | frv | ft32 \
-+	| fido | fr30 | frv \
- 	| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
- 	| hexagon \
- 	| i370 | i860 | i960 | ia64 \
-@@ -1025,7 +1025,7 @@ case $basic_machine in
- 		;;
- 	ppc64)	basic_machine=powerpc64-unknown
- 		;;
--	ppc64-* | ppc64p7-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
-+	ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
- 		;;
- 	ppc64le | powerpc64little | ppc64-le | powerpc64-little)
- 		basic_machine=powerpc64le-unknown
-diff --git a/configure b/configure
-index e3c0c61..b9f24ba 100755
---- a/configure
-+++ b/configure
-@@ -1,6 +1,6 @@
- #! /bin/sh
- # Guess values for system-dependent variables and create Makefiles.
--# Generated by GNU Autoconf 2.69 for libGAP 4.8.3.
-+# Generated by GNU Autoconf 2.69 for libGAP 4.8.6.
- #
- # Report bugs to <sage-devel at googlegroups.com>.
- #
-@@ -590,8 +590,8 @@ MAKEFLAGS=
- # Identity of this package.
- PACKAGE_NAME='libGAP'
- PACKAGE_TARNAME='libgap'
--PACKAGE_VERSION='4.8.3'
--PACKAGE_STRING='libGAP 4.8.3'
-+PACKAGE_VERSION='4.8.6'
-+PACKAGE_STRING='libGAP 4.8.6'
- PACKAGE_BUGREPORT='sage-devel at googlegroups.com'
- PACKAGE_URL=''
- 
-@@ -635,6 +635,9 @@ ac_includes_default="\
- ac_subst_vars='am__EXEEXT_FALSE
- am__EXEEXT_TRUE
- LTLIBOBJS
-+HAVE_LD_VERSION_SCRIPT_FALSE
-+HAVE_LD_VERSION_SCRIPT_TRUE
-+LIBGAP_LT_VERSION
- NEED_ITANIUMOBJ_FALSE
- NEED_ITANIUMOBJ_TRUE
- LIBOBJS
-@@ -779,6 +782,7 @@ with_aix_soname
- with_gnu_ld
- with_sysroot
- enable_libtool_lock
-+enable_ld_version_script
- '
-       ac_precious_vars='build_alias
- host_alias
-@@ -1332,7 +1336,7 @@ if test "$ac_init_help" = "long"; then
-   # Omit some internal or obsolete options to make the list less imposing.
-   # This message is too long to be a string in the A/UX 3.1 sh.
-   cat <<_ACEOF
--\`configure' configures libGAP 4.8.3 to adapt to many kinds of systems.
-+\`configure' configures libGAP 4.8.6 to adapt to many kinds of systems.
- 
- Usage: $0 [OPTION]... [VAR=VALUE]...
- 
-@@ -1403,7 +1407,7 @@ fi
- 
- if test -n "$ac_init_help"; then
-   case $ac_init_help in
--     short | recursive ) echo "Configuration of libGAP 4.8.3:";;
-+     short | recursive ) echo "Configuration of libGAP 4.8.6:";;
-    esac
-   cat <<\_ACEOF
- 
-@@ -1422,6 +1426,9 @@ Optional Features:
-   --enable-fast-install[=PKGS]
-                           optimize for fast installation [default=yes]
-   --disable-libtool-lock  avoid locking (might break parallel builds)
-+  --enable-ld-version-script
-+                          enable linker version script (default is enabled
-+                          when possible)
- 
- Optional Packages:
-   --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
-@@ -1520,7 +1527,7 @@ fi
- test -n "$ac_init_help" && exit $ac_status
- if $ac_init_version; then
-   cat <<\_ACEOF
--libGAP configure 4.8.3
-+libGAP configure 4.8.6
- generated by GNU Autoconf 2.69
- 
- Copyright (C) 2012 Free Software Foundation, Inc.
-@@ -2183,7 +2190,7 @@ cat >config.log <<_ACEOF
- This file contains any messages produced by compilers while
- running configure, to aid debugging if configure makes a mistake.
- 
--It was created by libGAP $as_me 4.8.3, which was
-+It was created by libGAP $as_me 4.8.6, which was
- generated by GNU Autoconf 2.69.  Invocation command line was
- 
-   $ $0 $@
-@@ -3157,7 +3164,7 @@ fi
- 
- # Define the identity of the package.
-  PACKAGE='libgap'
-- VERSION='4.8.3'
-+ VERSION='4.8.6'
- 
- 
- cat >>confdefs.h <<_ACEOF
-@@ -11936,9 +11943,6 @@ fi
-   # before this can be enabled.
-   hardcode_into_libs=yes
- 
--  # Add ABI-specific directories to the system library path.
--  sys_lib_dlsearch_path_spec="/lib64 /usr/lib64 /lib /usr/lib"
--
-   # Ideally, we could use ldconfig to report *all* directores which are
-   # searched for libraries, however this is still not possible.  Aside from not
-   # being certain /sbin/ldconfig is available, command
-@@ -11947,7 +11951,7 @@ fi
-   # appending ld.so.conf contents (and includes) to the search path.
-   if test -f /etc/ld.so.conf; then
-     lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[	 ]*hwcap[	 ]/d;s/[:,	]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
--    sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $lt_ld_extra"
-+    sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
-   fi
- 
-   # We used to test for /lib/ld.so.1 and disable shared libraries on
-@@ -14448,6 +14452,93 @@ $as_echo "#define SYS_IS_CYGWIN32 0" >>confdefs.h
- 
- fi
- 
-+LIBGAP_RELEASE_MAJOR=${PACKAGE_VERSION%.*}
-+LIBGAP_VERSION_MAJOR=${PACKAGE_VERSION%%.*}
-+LIBGAP_VERSION_MINOR=${LIBGAP_RELEASE_MAJOR#*.}
-+LIBGAP_VERSION_MICRO=${PACKAGE_VERSION##*.}
-+LIBGAP_VERSION_MICRO=${LIBGAP_VERSION_MICRO%-*}
-+LIBGAP_LT_VERSION="$(expr ${LIBGAP_VERSION_MAJOR} + ${LIBGAP_VERSION_MINOR}):${LIBGAP_VERSION_MICRO}:${LIBGAP_VERSION_MINOR}"
-+
-+
-+
-+# Checks for linker script support:
-+
-+  # Check whether --enable-ld-version-script was given.
-+if test "${enable_ld_version_script+set}" = set; then :
-+  enableval=$enable_ld_version_script; have_ld_version_script=$enableval
-+fi
-+
-+  if test -z "$have_ld_version_script"; then
-+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking if LD -Wl,--version-script works" >&5
-+$as_echo_n "checking if LD -Wl,--version-script works... " >&6; }
-+    save_LDFLAGS="$LDFLAGS"
-+    LDFLAGS="$LDFLAGS -Wl,--version-script=conftest.map"
-+    cat > conftest.map <<EOF
-+foo
-+EOF
-+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+
-+int
-+main ()
-+{
-+
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_c_try_link "$LINENO"; then :
-+  accepts_syntax_errors=yes
-+else
-+  accepts_syntax_errors=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext \
-+    conftest$ac_exeext conftest.$ac_ext
-+    if test "$accepts_syntax_errors" = no; then
-+      cat > conftest.map <<EOF
-+VERS_1 {
-+        global: sym;
-+};
-+
-+VERS_2 {
-+        global: sym;
-+} VERS_1;
-+EOF
-+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+
-+int
-+main ()
-+{
-+
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_c_try_link "$LINENO"; then :
-+  have_ld_version_script=yes
-+else
-+  have_ld_version_script=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext \
-+    conftest$ac_exeext conftest.$ac_ext
-+    else
-+      have_ld_version_script=no
-+    fi
-+    rm -f conftest.map
-+    LDFLAGS="$save_LDFLAGS"
-+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_ld_version_script" >&5
-+$as_echo "$have_ld_version_script" >&6; }
-+  fi
-+   if test "$have_ld_version_script" = "yes"; then
-+  HAVE_LD_VERSION_SCRIPT_TRUE=
-+  HAVE_LD_VERSION_SCRIPT_FALSE='#'
-+else
-+  HAVE_LD_VERSION_SCRIPT_TRUE='#'
-+  HAVE_LD_VERSION_SCRIPT_FALSE=
-+fi
-+
-+
- 
- #OUTPUT
- cat >confcache <<\_ACEOF
-@@ -14592,6 +14683,10 @@ if test -z "${NEED_ITANIUMOBJ_TRUE}" && test -z "${NEED_ITANIUMOBJ_FALSE}"; then
-   as_fn_error $? "conditional \"NEED_ITANIUMOBJ\" was never defined.
- Usually this means the macro was only invoked conditionally." "$LINENO" 5
- fi
-+if test -z "${HAVE_LD_VERSION_SCRIPT_TRUE}" && test -z "${HAVE_LD_VERSION_SCRIPT_FALSE}"; then
-+  as_fn_error $? "conditional \"HAVE_LD_VERSION_SCRIPT\" was never defined.
-+Usually this means the macro was only invoked conditionally." "$LINENO" 5
-+fi
- 
- : "${CONFIG_STATUS=./config.status}"
- ac_write_fail=0
-@@ -14989,7 +15084,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
- # report actual input values of CONFIG_FILES etc. instead of their
- # values after options handling.
- ac_log="
--This file was extended by libGAP $as_me 4.8.3, which was
-+This file was extended by libGAP $as_me 4.8.6, which was
- generated by GNU Autoconf 2.69.  Invocation command line was
- 
-   CONFIG_FILES    = $CONFIG_FILES
-@@ -15055,7 +15150,7 @@ _ACEOF
- cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
- ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
- ac_cs_version="\\
--libGAP config.status 4.8.3
-+libGAP config.status 4.8.6
- configured by $0, generated by GNU Autoconf 2.69,
-   with options \\"\$ac_cs_config\\"
- 
-diff --git a/configure.ac b/configure.ac
-index 695caee..7355821 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -1,7 +1,7 @@
- AC_PREREQ([2.66])
- 
- # Note: the version number must match the GAP version number
--AC_INIT([libGAP], [4.8.3], [sage-devel at googlegroups.com])
-+AC_INIT([libGAP], [4.8.6], [sage-devel at googlegroups.com])
- 
- AC_CANONICAL_TARGET
- AM_INIT_AUTOMAKE
-diff --git a/m4/libtool.m4 b/m4/libtool.m4
-index a644432..a3bc337 100644
---- a/m4/libtool.m4
-+++ b/m4/libtool.m4
-@@ -2867,9 +2867,6 @@ linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
-   # before this can be enabled.
-   hardcode_into_libs=yes
- 
--  # Add ABI-specific directories to the system library path.
--  sys_lib_dlsearch_path_spec="/lib64 /usr/lib64 /lib /usr/lib"
--
-   # Ideally, we could use ldconfig to report *all* directores which are
-   # searched for libraries, however this is still not possible.  Aside from not
-   # being certain /sbin/ldconfig is available, command
-@@ -2878,7 +2875,7 @@ linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
-   # appending ld.so.conf contents (and includes) to the search path.
-   if test -f /etc/ld.so.conf; then
-     lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[	 ]*hwcap[	 ]/d;s/[:,	]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
--    sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $lt_ld_extra"
-+    sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
-   fi
- 
-   # We used to test for /lib/ld.so.1 and disable shared libraries on
-diff --git a/patches/gap-4.8.6.patch b/patches/gap-4.8.6.patch
-new file mode 100644
-index 0000000..71b4ee5
---- /dev/null
-+++ b/patches/gap-4.8.6.patch
-@@ -0,0 +1,684 @@
-+diff -urd upstream-gap-4.8.6/src/c_filt1.c src/c_filt1.c
-+--- upstream-gap-4.8.6/src/c_filt1.c	2016-11-12 15:42:10.000000000 +0100
-++++ src/c_filt1.c	2016-11-25 13:39:28.975513235 +0100
-+@@ -1,6 +1,6 @@
-+ #ifndef AVOID_PRECOMPILED
-+ /* C file produced by GAC */
-+-#include "src/compiled.h"
-++#include "compiled.h"
-+ 
-+ /* global variables used in handlers */
-+ static GVar G_IS__FUNCTION;
-+diff -urd upstream-gap-4.8.6/src/c_meths1.c src/c_meths1.c
-+--- upstream-gap-4.8.6/src/c_meths1.c	2016-11-12 15:42:10.000000000 +0100
-++++ src/c_meths1.c	2016-11-25 13:39:28.982179816 +0100
-+@@ -1,6 +1,6 @@
-+ #ifndef AVOID_PRECOMPILED
-+ /* C file produced by GAC */
-+-#include "src/compiled.h"
-++#include "compiled.h"
-+ 
-+ /* global variables used in handlers */
-+ static GVar G_METHOD__0ARGS;
-+Only in src: config.h
-+Only in src: config.h.in
-+Only in src: config.h.in~
-+diff -urd upstream-gap-4.8.6/src/c_oper1.c src/c_oper1.c
-+--- upstream-gap-4.8.6/src/c_oper1.c	2016-11-12 15:42:10.000000000 +0100
-++++ src/c_oper1.c	2016-11-25 13:39:28.982179816 +0100
-+@@ -1,6 +1,6 @@
-+ #ifndef AVOID_PRECOMPILED
-+ /* C file produced by GAC */
-+-#include "src/compiled.h"
-++#include "compiled.h"
-+ 
-+ /* global variables used in handlers */
-+ static GVar G_REREADING;
-+diff -urd upstream-gap-4.8.6/src/c_random.c src/c_random.c
-+--- upstream-gap-4.8.6/src/c_random.c	2016-11-12 15:42:10.000000000 +0100
-++++ src/c_random.c	2016-11-25 13:39:28.985513106 +0100
-+@@ -1,6 +1,6 @@
-+ #ifndef AVOID_PRECOMPILED
-+ /* C file produced by GAC */
-+-#include "src/compiled.h"
-++#include "compiled.h"
-+ 
-+ /* global variables used in handlers */
-+ static GVar G_QUO__INT;
-+diff -urd upstream-gap-4.8.6/src/c_type1.c src/c_type1.c
-+--- upstream-gap-4.8.6/src/c_type1.c	2016-11-12 15:42:10.000000000 +0100
-++++ src/c_type1.c	2016-11-25 13:39:28.985513106 +0100
-+@@ -1,6 +1,6 @@
-+ #ifndef AVOID_PRECOMPILED
-+ /* C file produced by GAC */
-+-#include "src/compiled.h"
-++#include "compiled.h"
-+ 
-+ /* global variables used in handlers */
-+ static GVar G_NAME__FUNC;
-+Only in src: .deps
-+diff -urd upstream-gap-4.8.6/src/gap.c src/gap.c
-+--- upstream-gap-4.8.6/src/gap.c	2016-11-12 15:42:10.000000000 +0100
-++++ src/gap.c	2016-11-25 13:39:29.105511560 +0100
-+@@ -212,14 +212,14 @@
-+ #endif
-+ 
-+ static StructImportedGVars ImportedGVars[MAX_IMPORTED_GVARS];
-+-static Int NrImportedGVars;
-++Int NrImportedGVars;
-+ 
-+ static StructImportedGVars ImportedFuncs[MAX_IMPORTED_GVARS];
-+-static Int NrImportedFuncs;
-++Int NrImportedFuncs;
-+ 
-+ char *original_argv0;
-+ static char **sysargv;
-+-static char **sysenviron;
-++char **sysenviron;
-+ 
-+ Obj ShellContext = 0;
-+ Obj BaseShellContext = 0;
-+@@ -730,11 +730,7 @@
-+ }
-+ #endif
-+ 
-+-#ifdef COMPILECYGWINDLL
-+-#define main realmain
-+-#endif
-+-
-+-int main (
-++int gap_main_loop (
-+           int                 argc,
-+           char *              argv [],
-+           char *              environ [] )
-+@@ -1311,6 +1307,7 @@
-+ 
-+ Obj FuncJUMP_TO_CATCH( Obj self, Obj payload)
-+ {
-++  libgap_call_error_handler();
-+   TLS(ThrownObject) = payload;
-+   syLongjmp(TLS(ReadJmpError), 1);
-+   return 0;
-+Only in src: gap_version.h
-+diff -urd upstream-gap-4.8.6/src/gasman.c src/gasman.c
-+--- upstream-gap-4.8.6/src/gasman.c	2016-11-12 15:42:10.000000000 +0100
-++++ src/gasman.c	2016-11-25 13:39:29.108844850 +0100
-+@@ -137,6 +137,7 @@
-+ 
-+ #include        "objects.h"             /* objects                         */
-+ #include        "scanner.h"             /* scanner                         */
-++#include        "libgap_internal.h"     /* gasman callback                 */
-+ 
-+ #include	"code.h"		/* coder                           */
-+ #include	"thread.h"		/* threads			   */
-+@@ -2210,6 +2211,9 @@
-+     /* prepare the list of marked bags for the future                      */
-+     MarkedBags = 0;
-+ 
-++    /* call the libgap callback so library users can mark their own bags   */
-++    libgap_call_gasman_callback();
-++
-+     /* mark from the static area                                           */
-+     for ( i = 0; i < GlobalBags.nr; i++ )
-+         MARK_BAG( *GlobalBags.addr[i] );
-+diff -urd upstream-gap-4.8.6/src/iostream.c src/iostream.c
-+--- upstream-gap-4.8.6/src/iostream.c	2016-11-12 15:42:10.000000000 +0100
-++++ src/iostream.c	2016-11-25 13:39:29.108844850 +0100
-+@@ -48,6 +48,8 @@
-+ #include	"thread.h"		/* threads			   */
-+ #include	"tls.h"			/* thread-local storage		   */
-+ 
-++#include        "libgap_internal.h"     /* GAP shared library              */
-++
-+ #include <stdio.h>                      /* standard input/output functions */
-+ #include <stdlib.h>
-+ #include <string.h>
-+@@ -886,8 +888,9 @@
-+   InitHdlrFuncsFromTable( GVarFuncs );
-+   
-+   /* Set up the trap to detect future dying children */
-++#ifdef LIBGAP_SIGNALS
-+   signal( SIGCHLD, ChildStatusChanged );
-+-
-++#endif
-+   return 0;
-+ }
-+ 
-+Only in src: libgap.c
-+Only in src: libgap.h
-+Only in src: libgap_internal.h
-+Only in src: libgap.la
-+Only in src: libgap_la-ariths.lo
-+Only in src: libgap_la-ariths.o
-+Only in src: libgap_la-blister.lo
-+Only in src: libgap_la-blister.o
-+Only in src: libgap_la-bool.lo
-+Only in src: libgap_la-bool.o
-+Only in src: libgap_la-calls.lo
-+Only in src: libgap_la-calls.o
-+Only in src: libgap_la-c_filt1.lo
-+Only in src: libgap_la-c_filt1.o
-+Only in src: libgap_la-c_meths1.lo
-+Only in src: libgap_la-c_meths1.o
-+Only in src: libgap_la-code.lo
-+Only in src: libgap_la-code.o
-+Only in src: libgap_la-compiler.lo
-+Only in src: libgap_la-compiler.o
-+Only in src: libgap_la-compstat.lo
-+Only in src: libgap_la-compstat.o
-+Only in src: libgap_la-c_oper1.lo
-+Only in src: libgap_la-c_oper1.o
-+Only in src: libgap_la-costab.lo
-+Only in src: libgap_la-costab.o
-+Only in src: libgap_la-c_random.lo
-+Only in src: libgap_la-c_random.o
-+Only in src: libgap_la-c_type1.lo
-+Only in src: libgap_la-c_type1.o
-+Only in src: libgap_la-cyclotom.lo
-+Only in src: libgap_la-cyclotom.o
-+Only in src: libgap_la-dteval.lo
-+Only in src: libgap_la-dteval.o
-+Only in src: libgap_la-dt.lo
-+Only in src: libgap_la-dt.o
-+Only in src: libgap_la-exprs.lo
-+Only in src: libgap_la-exprs.o
-+Only in src: libgap_la-finfield.lo
-+Only in src: libgap_la-finfield.o
-+Only in src: libgap_la-funcs.lo
-+Only in src: libgap_la-funcs.o
-+Only in src: libgap_la-gap.lo
-+Only in src: libgap_la-gap.o
-+Only in src: libgap_la-gasman.lo
-+Only in src: libgap_la-gasman.o
-+Only in src: libgap_la-gmpints.lo
-+Only in src: libgap_la-gmpints.o
-+Only in src: libgap_la-gvars.lo
-+Only in src: libgap_la-gvars.o
-+Only in src: libgap_la-integer.lo
-+Only in src: libgap_la-integer.o
-+Only in src: libgap_la-intfuncs.lo
-+Only in src: libgap_la-intfuncs.o
-+Only in src: libgap_la-intrprtr.lo
-+Only in src: libgap_la-intrprtr.o
-+Only in src: libgap_la-iostream.lo
-+Only in src: libgap_la-iostream.o
-+Only in src: libgap_la-libgap.lo
-+Only in src: libgap_la-libgap.o
-+Only in src: libgap_la-listfunc.lo
-+Only in src: libgap_la-listfunc.o
-+Only in src: libgap_la-listoper.lo
-+Only in src: libgap_la-listoper.o
-+Only in src: libgap_la-lists.lo
-+Only in src: libgap_la-lists.o
-+Only in src: libgap_la-macfloat.lo
-+Only in src: libgap_la-macfloat.o
-+Only in src: libgap_la-objccoll.lo
-+Only in src: libgap_la-objccoll.o
-+Only in src: libgap_la-objcftl.lo
-+Only in src: libgap_la-objcftl.o
-+Only in src: libgap_la-objects.lo
-+Only in src: libgap_la-objects.o
-+Only in src: libgap_la-objfgelm.lo
-+Only in src: libgap_la-objfgelm.o
-+Only in src: libgap_la-objpcgel.lo
-+Only in src: libgap_la-objpcgel.o
-+Only in src: libgap_la-objscoll.lo
-+Only in src: libgap_la-objscoll.o
-+Only in src: libgap_la-opers.lo
-+Only in src: libgap_la-opers.o
-+Only in src: libgap_la-permutat.lo
-+Only in src: libgap_la-permutat.o
-+Only in src: libgap_la-plist.lo
-+Only in src: libgap_la-plist.o
-+Only in src: libgap_la-pperm.lo
-+Only in src: libgap_la-pperm.o
-+Only in src: libgap_la-precord.lo
-+Only in src: libgap_la-precord.o
-+Only in src: libgap_la-profile.lo
-+Only in src: libgap_la-profile.o
-+Only in src: libgap_la-range.lo
-+Only in src: libgap_la-range.o
-+Only in src: libgap_la-rational.lo
-+Only in src: libgap_la-rational.o
-+Only in src: libgap_la-read.lo
-+Only in src: libgap_la-read.o
-+Only in src: libgap_la-records.lo
-+Only in src: libgap_la-records.o
-+Only in src: libgap_la-saveload.lo
-+Only in src: libgap_la-saveload.o
-+Only in src: libgap_la-scanner.lo
-+Only in src: libgap_la-scanner.o
-+Only in src: libgap_la-sctable.lo
-+Only in src: libgap_la-sctable.o
-+Only in src: libgap_la-set.lo
-+Only in src: libgap_la-set.o
-+Only in src: libgap_la-stats.lo
-+Only in src: libgap_la-stats.o
-+Only in src: libgap_la-streams.lo
-+Only in src: libgap_la-streams.o
-+Only in src: libgap_la-string.lo
-+Only in src: libgap_la-string.o
-+Only in src: libgap_la-sysfiles.lo
-+Only in src: libgap_la-sysfiles.o
-+Only in src: libgap_la-system.lo
-+Only in src: libgap_la-system.o
-+Only in src: libgap_la-tietze.lo
-+Only in src: libgap_la-tietze.o
-+Only in src: libgap_la-trans.lo
-+Only in src: libgap_la-trans.o
-+Only in src: libgap_la-vars.lo
-+Only in src: libgap_la-vars.o
-+Only in src: libgap_la-vec8bit.lo
-+Only in src: libgap_la-vec8bit.o
-+Only in src: libgap_la-vecffe.lo
-+Only in src: libgap_la-vecffe.o
-+Only in src: libgap_la-vecgf2.lo
-+Only in src: libgap_la-vecgf2.o
-+Only in src: libgap_la-vector.lo
-+Only in src: libgap_la-vector.o
-+Only in src: libgap_la-weakptr.lo
-+Only in src: libgap_la-weakptr.o
-+Only in src: libgap.map
-+Only in src: .libs
-+diff -urd upstream-gap-4.8.6/src/lists.c src/lists.c
-+--- upstream-gap-4.8.6/src/lists.c	2016-11-12 15:42:10.000000000 +0100
-++++ src/lists.c	2016-11-25 13:39:29.108844850 +0100
-+@@ -1976,7 +1976,7 @@
-+                 }
-+                 if ( LEN_LIST( poss ) != LEN_LIST( obj ) ) {
-+                     obj = ErrorReturnObj(
-+-     "List Assigments: <objs> must have the same length as <positions> (%d)",
-++     "List Assignments: <objs> must have the same length as <positions> (%d)",
-+                         LEN_LIST( poss ), 0L,
-+                         "you can replace <objs> via 'return <objs>;'" );
-+                 }
-+Only in src: Makefile
-+Only in src: Makefile.am
-+Only in src: Makefile.in
-+diff -urd upstream-gap-4.8.6/src/objscoll.c src/objscoll.c
-+--- upstream-gap-4.8.6/src/objscoll.c	2016-11-12 15:42:10.000000000 +0100
-++++ src/objscoll.c	2016-11-25 13:39:29.112178140 +0100
-+@@ -103,7 +103,7 @@
-+ #define SingleCollectWord   C8Bits_SingleCollectWord
-+ #define Solution            C8Bits_Solution
-+ #define UIntN               UInt1
-+-#include "src/objscoll-impl.h"
-++#include "objscoll-impl.h"
-+ 
-+ /****************************************************************************
-+ **
-+@@ -125,7 +125,7 @@
-+ #define SingleCollectWord   C16Bits_SingleCollectWord
-+ #define Solution            C16Bits_Solution
-+ #define UIntN               UInt2
-+-#include "src/objscoll-impl.h"
-++#include "objscoll-impl.h"
-+ 
-+ /****************************************************************************
-+ **
-+@@ -147,7 +147,7 @@
-+ #define SingleCollectWord   C32Bits_SingleCollectWord
-+ #define Solution            C32Bits_Solution
-+ #define UIntN               UInt4
-+-#include "src/objscoll-impl.h"
-++#include "objscoll-impl.h"
-+ 
-+ /****************************************************************************
-+ **
-+diff -urd upstream-gap-4.8.6/src/saveload.c src/saveload.c
-+--- upstream-gap-4.8.6/src/saveload.c	2016-11-12 15:42:10.000000000 +0100
-++++ src/saveload.c	2016-11-25 13:39:29.112178140 +0100
-+@@ -924,7 +924,7 @@
-+   if ((x & 3) == 1)
-+     Pr("Immediate  integer %d\n", INT_INTOBJ((Obj)x),0L);
-+   else if ((x & 3) == 2)
-+-    Pr("Immedate FFE %d %d\n", VAL_FFE(x), SIZE_FF(FLD_FFE(x)));
-++    Pr("Immediate FFE %d %d\n", VAL_FFE(x), SIZE_FF(FLD_FFE(x)));
-+   else
-+     Pr("Reference to bag number %d\n",x>>2,0L);
-+ }
-+diff -urd upstream-gap-4.8.6/src/scanner.c src/scanner.c
-+--- upstream-gap-4.8.6/src/scanner.c	2016-11-12 15:42:10.000000000 +0100
-++++ src/scanner.c	2016-11-25 13:39:29.112178140 +0100
-+@@ -64,6 +64,8 @@
-+ #include	"tls.h"
-+ #include	"thread.h"
-+ 
-++#include        "libgap_internal.h"     /* GAP shared library              */
-++
-+ #include <assert.h>
-+ #include <limits.h>
-+ #include <stdlib.h>
-+@@ -2453,150 +2455,25 @@
-+          KOutputStream stream,
-+          Char                ch )
-+ {
-+-  Int                 i, hint, spos;
-+-  Char                str [MAXLENOUTPUTLINE];
-+-
-+-
-+-  /* '\01', increment indentation level                                  */
-+-  if ( ch == '\01' ) {
-+-
-+-    if (!stream->format)
-+-      return;
-+-
-+-    /* add hint to break line  */
-+-    addLineBreakHint(stream, stream->pos, 16*stream->indent, 1);
-+-  }
-+-
-+-  /* '\02', decrement indentation level                                  */
-+-  else if ( ch == '\02' ) {
-+-
-+-    if (!stream -> format)
-+-      return;
-+-
-+-    /* if this is a better place to split the line remember it         */
-+-    addLineBreakHint(stream, stream->pos, 16*stream->indent, -1);
-+-  }
-+-
-+-  /* '\03', print line                                                   */
-+-  else if ( ch == '\03' ) {
-+-
-+-    /* print the line                                                  */
-+-    if (stream->pos != 0)
-+-      {
-+-        stream->line[ stream->pos ] = '\0';
-+-        PutLineTo(stream, stream->pos );
-+-
-+-        /* start the next line                                         */
-+-        stream->pos      = 0;
-+-      }
-+-    /* reset line break hints                                          */
-+-    stream->hints[0] = -1;
-+-
-+-  }
-+-
-+-  /* <newline> or <return>, print line, indent next                      */
-+-  else if ( ch == '\n' || ch == '\r' ) {
-+-
-+-    /* put the character on the line and terminate it                  */
-+-    stream->line[ stream->pos++ ] = ch;
-+-    stream->line[ stream->pos   ] = '\0';
-+-
-+-    /* print the line                                                  */
-+-    PutLineTo( stream, stream->pos );
-+-
-+-    /* and dump it from the buffer */
-+-    stream->pos = 0;
-+-    if (stream -> format)
-+-      {
-+-        /* indent for next line                                         */
-+-        for ( i = 0;  i < stream->indent; i++ )
-+-          stream->line[ stream->pos++ ] = ' ';
-+-      }
-+-    /* reset line break hints                                       */
-+-    stream->hints[0] = -1;
-+-
-+-  }
-+-
-+-  /* normal character, room on the current line                          */
-+-  else if ( stream->pos < SyNrCols-2-TLS(NoSplitLine) ) {
-+-
-+-    /* put the character on this line                                  */
-+-    stream->line[ stream->pos++ ] = ch;
-+-
-+-  }
-+-
-+-  else
-+-    {
-+-      /* position to split                                              */
-+-      if ( (hint = nrLineBreak(stream)) != -1 )
-+-        spos = stream->hints[3*hint];
-+-      else
-+-        spos = 0;
-+-
-+-      /* if we are going to split at the end of the line, and we are
-+-         formatting discard blanks */
-+-      if ( stream->format && spos == stream->pos && ch == ' ' ) {
-+-        ;
-+-      }
-+-
-+-      /* full line, acceptable split position                              */
-+-      else if ( stream->format && spos != 0 ) {
-+-
-+-        /* add character to the line, terminate it                         */
-+-        stream->line[ stream->pos++ ] = ch;
-+-        stream->line[ stream->pos++ ] = '\0';
-+-
-+-        /* copy the rest after the best split position to a safe place     */
-+-        for ( i = spos; i < stream->pos; i++ )
-+-          str[ i-spos ] = stream->line[ i ];
-+-        str[ i-spos] = '\0';
-+-
-+-        /* print line up to the best split position                        */
-+-        stream->line[ spos++ ] = '\n';
-+-        stream->line[ spos   ] = '\0';
-+-        PutLineTo( stream, spos );
-+-        spos--;
-+-
-+-        /* indent for the rest                                             */
-+-        stream->pos = 0;
-+-        for ( i = 0; i < stream->hints[3*hint+2]; i++ )
-+-          stream->line[ stream->pos++ ] = ' ';
-+-        spos -= stream->hints[3*hint+2];
-+-
-+-        /* copy the rest onto the next line                                */
-+-        for ( i = 0; str[ i ] != '\0'; i++ )
-+-          stream->line[ stream->pos++ ] = str[ i ];
-+-        /* recover line break hints for copied rest                      */
-+-        for ( i = hint+1; stream->hints[3*i] != -1; i++ )
-+-        {
-+-          stream->hints[3*(i-hint-1)] = stream->hints[3*i]-spos;
-+-          stream->hints[3*(i-hint-1)+1] = stream->hints[3*i+1];
-+-          stream->hints[3*(i-hint-1)+2] = stream->hints[3*i+2];
-+-        }
-+-        stream->hints[3*(i-hint-1)] = -1;
-+-      }
-+-
-+-      /* full line, no split position                                       */
-+-      else {
-+-
-+-        if (stream->format)
-+-          {
-+-            /* append a '\',*/
-+-            stream->line[ stream->pos++ ] = '\\';
-+-            stream->line[ stream->pos++ ] = '\n';
-+-          }
-+-        /* and print the line                                */
-+-        stream->line[ stream->pos   ] = '\0';
-+-        PutLineTo( stream, stream->pos );
-+-
-+-        /* add the character to the next line                              */
-+-        stream->pos = 0;
-+-        stream->line[ stream->pos++ ] = ch;
-+-
-+-        if (stream->format)
-+-          stream->hints[0] = -1;
-+-      }
-+-
-++    // printf("PutChrTo %i %i %c %hhx\n", stream->file, stream->isstream, ch, ch);
-++    if (ch <= 3)  // GAP control characters
-++    return;
-++  // Magic constants are defined in SyFopen
-++    if (stream->file == 0) {        // negative number indicates an error
-++      assert(False);
-++    } else if (stream->file == 0) { // 0 identifies the standard input file "*stdin*"
-++      assert(False);
-++    } else if (stream->file == 1) { // 1 identifies the standard outpt file "*stdout*"
-++      libgap_append_stdout(ch);
-++    } else if (stream->file == 2) { // 2 identifies the brk loop input file "*errin*"
-++      assert(False);
-++    } else if (stream->file == 3) { // 3 identifies the error messages file "*errout*"
-++      libgap_append_stderr(ch);
-++    } else {                        // anything else is a real file descriptor
-++      stream->line[stream->pos++] = ch;
-++      stream->line[stream->pos++] = '\0';
-++      PutLineTo(stream, stream->pos);
-++      stream->pos = 0;
-+     }
-+ }
-+ 
-+Only in src: stamp-h1
-+diff -urd upstream-gap-4.8.6/src/sysfiles.c src/sysfiles.c
-+--- upstream-gap-4.8.6/src/sysfiles.c	2016-11-12 15:42:10.000000000 +0100
-++++ src/sysfiles.c	2016-11-25 13:39:29.115511430 +0100
-+@@ -42,6 +42,8 @@
-+ #include	"thread.h"		/* threads			   */
-+ #include	"tls.h"			/* thread-local storage		   */
-+ 
-++#include        "libgap_internal.h"     /* GAP shared library              */
-++
-+ #include        <assert.h>
-+ #include        <fcntl.h>
-+ 
-+@@ -1135,16 +1137,20 @@
-+ 
-+ void syAnswerCont ( int signr )
-+ {
-++#ifdef LIBGAP_SIGNALS
-+     syStartraw( syFid );
-+     signal( SIGCONT, SIG_DFL );
-+     kill( getpid(), SIGCONT );
-++#endif
-+ }
-+ 
-+ void syAnswerTstp ( int signr )
-+ {
-++#ifdef LIBGAP_SIGNALS
-+     syStopraw( syFid );
-+     signal( SIGCONT, syAnswerCont );
-+     kill( getpid(), SIGTSTP );
-++#endif
-+ }
-+ 
-+ #endif
-+@@ -1217,12 +1223,13 @@
-+ 
-+ #endif
-+ 
-+-
-++#ifdef LIBGAP_SIGNALS
-+ #ifdef SIGTSTP
-+     /* install signal handler for stop                                     */
-+     syFid = fid;
-+     signal( SIGTSTP, syAnswerTstp );
-+ #endif
-++#endif
-+ 
-+     /* indicate success                                                    */
-+     return 1;
-+@@ -1245,10 +1252,12 @@
-+     if ( SyWindow )
-+         return;
-+ 
-++#ifdef LIBGAP_SIGNALS
-+ #ifdef SIGTSTP
-+     /* remove signal handler for stop                                      */
-+     signal( SIGTSTP, SIG_DFL );
-+ #endif
-++#endif
-+ 
-+ #if HAVE_TERMIOS_H
-+ 
-+@@ -1342,11 +1351,13 @@
-+ 
-+ void SyInstallAnswerIntr ( void )
-+ {
-++#ifdef LIBGAP_SIGNALS
-+     if ( signal( SIGINT, SIG_IGN ) != SIG_IGN )
-+     {
-+         signal( SIGINT, syAnswerIntr );
-+         siginterrupt( SIGINT, 0 );
-+     }
-++#endif
-+ }
-+ 
-+ 
-+@@ -1625,7 +1636,9 @@
-+             if (CO <= 0)
-+                 CO = win.ws_col;
-+         }
-++#ifdef LIBGAP_SIGNALS
-+         (void) signal(SIGWINCH, syWindowChangeIntr);
-++#endif
-+     }
-+ #endif /* TIOCGWINSZ */
-+ 
-+@@ -3256,7 +3269,13 @@
-+     UInt                length,
-+     Int                 fid)
-+ {
-+-  return syFgets( line, length, fid, 1);
-++  if(fid!=0 && fid!=2) {
-++    // not stdin/stderr; probably file IO. Do the standard thing.
-++    // printf("SyFgets fid=%i\n", fid);
-++    return syFgets( line, length, fid, 1);
-++  }
-++  return libgap_get_input(line, length);
-++  // return syFgets( line, length, fid, 1);
-+ }
-+ 
-+ 
-+@@ -3380,7 +3399,7 @@
-+ # endif
-+ #endif
-+ 
-+-extern char ** environ;
-++#include "libgap_internal.h"
-+ 
-+ void NullSignalHandler(int scratch) {}
-+ 
-+@@ -3495,6 +3514,7 @@
-+        `After that, we call the old signal handler, in case any other children have died in the
-+        meantime. This resets the handler */
-+ 
-++#ifdef LIBGAP_SIGNALS
-+     func2 = signal( SIGCHLD, SIG_DFL );
-+ 
-+     /* This may return SIG_DFL (0x0) or SIG_IGN (0x1) if the previous handler
-+@@ -3503,6 +3523,7 @@
-+      * is to do nothing */
-+     if(func2 == SIG_ERR || func2 == SIG_DFL || func2 == SIG_IGN)
-+       func2 = &NullSignalHandler;
-++#endif
-+ 
-+     /* clone the process                                                   */
-+     pid = vfork();
-+@@ -3514,8 +3535,9 @@
-+     if ( pid != 0 ) {
-+ 
-+         /* ignore a CTRL-C                                                 */
-++#ifdef LIBGAP_SIGNALS
-+         func = signal( SIGINT, SIG_IGN );
-+-
-++#endif
-+         /* wait for some action                                            */
-+ #if HAVE_WAITPID
-+         wait_pid = waitpid( pid, &status, 0 );
-+@@ -3523,18 +3545,24 @@
-+         wait_pid = wait4( pid, &status, 0, &usage );
-+ #endif
-+         if ( wait_pid == -1 ) {
-++#ifdef LIBGAP_SIGNALS
-+             signal( SIGINT, func );
-+             (*func2)(SIGCHLD);
-++#endif
-+             return -1;
-+         }
-+ 
-+         if ( WIFSIGNALED(status) ) {
-++#ifdef LIBGAP_SIGNALS
-+             signal( SIGINT, func );
-+             (*func2)(SIGCHLD);
-++#endif
-+             return -1;
-+         }
-++#ifdef LIBGAP_SIGNALS
-+         signal( SIGINT, func );
-+         (*func2)(SIGCHLD);
-++#endif
-+         return WEXITSTATUS(status);
-+     }
-+ 
-+Only in src: sysfiles.c.orig
-diff --git a/src/Makefile.in b/src/Makefile.in
-index 3ccedf9..13263fe 100644
---- a/src/Makefile.in
-+++ b/src/Makefile.in
-@@ -90,13 +90,14 @@ POST_UNINSTALL = :
- build_triplet = @build@
- host_triplet = @host@
- target_triplet = @target@
-- at NEED_ITANIUMOBJ_TRUE@am__append_1 = itanium.s
-+ at HAVE_LD_VERSION_SCRIPT_TRUE@am__append_1 = -Wl,--version-script=$(top_srcdir)/src/libgap.map
-+ at NEED_ITANIUMOBJ_TRUE@am__append_2 = itanium.s
- subdir = src
- ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
--am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \
--	$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
--	$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
--	$(top_srcdir)/configure.ac
-+am__aclocal_m4_deps = $(top_srcdir)/m4/ld-version-script.m4 \
-+	$(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
-+	$(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
-+	$(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
- am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
- 	$(ACLOCAL_M4)
- DIST_COMMON = $(srcdir)/Makefile.am $(libgapinclude_HEADERS) \
-@@ -290,6 +291,7 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
- INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
- LD = @LD@
- LDFLAGS = @LDFLAGS@
-+LIBGAP_LT_VERSION = @LIBGAP_LT_VERSION@
- LIBOBJS = @LIBOBJS@
- LIBS = @LIBS@
- LIBTOOL = @LIBTOOL@
-@@ -379,6 +381,8 @@ top_builddir = @top_builddir@
- top_srcdir = @top_srcdir@
- DEFAULT_INCLUDES = -I at top_builddir@
- lib_LTLIBRARIES = libgap.la
-+libgap_la_LT_INFO = -version-info @LIBGAP_LT_VERSION@
-+libgap_la_LD_VERSION_SCRIPT = $(am__append_1)
- libgap_la_SOURCES = ariths.c c_random.c gmpints.c objccoll.c \
- 	rational.c system.c blister.c c_type1.c gvars.c objcftl.c \
- 	read.c tietze.c bool.c cyclotom.c integer.c objects.c \
-@@ -389,7 +393,7 @@ libgap_la_SOURCES = ariths.c c_random.c gmpints.c objccoll.c \
- 	compiler.c funcs.c listfunc.c permutat.c stats.c weakptr.c \
- 	compstat.c gap.c listoper.c plist.c streams.c c_oper1.c \
- 	lists.c precord.c string.c costab.c gasman.c macfloat.c \
--	range.c sysfiles.c pperm.c trans.c profile.c $(am__append_1)
-+	range.c sysfiles.c pperm.c trans.c profile.c $(am__append_2)
- libgapincludedir = @includedir@/gap
- libgapinclude_HEADERS = \
-   ariths.h    cyclotom.h  integer.h   objcftl.h   rational.h  sysfiles.h \
-@@ -413,7 +417,7 @@ libgap_la_CFLAGS = $(AM_CFLAGS) \
- 
- 
- # the no-undefined is necessary for Cygwin
--libgap_la_LDFLAGS = -lm @GMP_LIBS@ -no-undefined
-+libgap_la_LDFLAGS = $(libgap_la_LT_INFO) $(libgap_la_LD_VERSION_SCRIPT) @GMP_LIBS@ -lm -no-undefined
- all: config.h
- 	$(MAKE) $(AM_MAKEFLAGS) all-am
- 
-diff --git a/src/bool.c b/src/bool.c
-index 1fa9d5a..5d64437 100644
---- a/src/bool.c
-+++ b/src/bool.c
-@@ -373,7 +373,7 @@ static Int InitKernel (
-     StructInitInfo *    module )
- {
-     /* install the marking functions for boolean values                    */
--    InfoBags[ T_BOOL ].name = "boolean";
-+    InfoBags[ T_BOOL ].name = "boolean or fail";
-     InitMarkFuncBags( T_BOOL, MarkNoSubBags );
- 
-     /* init filters and functions                                          */
-diff --git a/src/code.c b/src/code.c
-index 6bcdf21..e0e2e8f 100644
---- a/src/code.c
-+++ b/src/code.c
-@@ -135,8 +135,33 @@ Obj FILENAME_STAT(Stat stat)
-       filename = ELM_PLIST(FilenameCache, filenameid);
-   return filename;
- }
--    
--    
-+
-+
-+/****************************************************************************
-+**
-+** Fill in filename and line of a statement, checking we do not overflow
-+** the space we have for storing information
-+*/
-+Stat fillFilenameLine(Int fileid, Int line, Int size, Int type)
-+{
-+  Stat stat;
-+  if(fileid < 0 || fileid >= (1 << 16))
-+  {
-+    fileid = (1 << 16) - 1;
-+    RegisterProfilingFileOverflowOccured();
-+  }
-+  if(line < 0 || line >= (1 << 16))
-+  {
-+    line = (1 << 16) - 1;
-+    RegisterProfilingLineOverflowOccured();
-+  }
-+
-+  stat = ((Stat)fileid << 48) + ((Stat)line << 32) +
-+          ((Stat)size << 8) + (Stat)type;
-+
-+  return stat;
-+}
-+
- /****************************************************************************
- **
- *F  NewStat( <type>, <size> ) . . . . . . . . . . .  allocate a new statement
-@@ -173,8 +198,7 @@ Stat NewStatWithLine (
-     setup_gapname(TLS(Input));
-     
-     /* enter type and size                                                 */
--    ADDR_STAT(stat)[-1] = ((Stat)TLS(Input)->gapnameid << 48) + ((Stat)line << 32) +
--                          ((Stat)size << 8) + (Stat)type;
-+    ADDR_STAT(stat)[-1] = fillFilenameLine(TLS(Input)->gapnameid, line, size, type);
-     RegisterStatWithProfiling(stat);
-     /* return the new statement                                            */
-     return stat;
-@@ -218,9 +242,8 @@ Expr            NewExpr (
-     }
- 
-     /* enter type and size                                                 */
--    ADDR_EXPR(expr)[-1] = ((Stat)TLS(Input)->gapnameid << 48) +
--                          ((Stat)TLS(Input)->number << 32) +
--                          ((Stat)size << 8) + type;
-+    ADDR_EXPR(expr)[-1] = fillFilenameLine(TLS(Input)->gapnameid,
-+                                           TLS(Input)->number, size, type);
-     RegisterStatWithProfiling(expr);
-     /* return the new expression                                           */
-     return expr;
-@@ -3510,6 +3533,3 @@ StructInitInfo * InitInfoCode ( void )
- 
- *E  code.c  . . . . . . . . . . . . . . . . . . . . . . . . . . . . ends here
- */
--
--
--
-diff --git a/src/gap.c b/src/gap.c
-index 58528c9..68b5eff 100644
---- a/src/gap.c
-+++ b/src/gap.c
-@@ -3091,6 +3091,7 @@ static Int PostRestore (
-     Last2             = GVarName( "last2" );
-     Last3             = GVarName( "last3" );
-     Time              = GVarName( "time"  );
-+    AssGVar(Time, INTOBJ_INT(0));
-     QUITTINGGVar      = GVarName( "QUITTING" );
-     
-     /* return success                                                      */
-diff --git a/src/intfuncs.c b/src/intfuncs.c
-index 51a542b..1614c3c 100644
---- a/src/intfuncs.c
-+++ b/src/intfuncs.c
-@@ -202,36 +202,6 @@ UInt4 nextrandMT_int32(UInt4* mt)
-     return y;
- }
- 
--
--Obj FuncRandomListMT(Obj self, Obj mtstr, Obj list)
--{
--  Int len, a, lg;
--  UInt4 *mt;
--  while ((! IsStringConv(mtstr)) || GET_LEN_STRING(mtstr) < 2500) {
--     mtstr = ErrorReturnObj(
--         "<mtstr> must be a string with at least 2500 characters, ",
--         0L, 0L,
--         "you can replace <mtstr> via 'return <mtstr>;'" );
--  }
--  while (! IS_LIST(list)) {
--     list = ErrorReturnObj(
--         "<list> must be a list, not a %s",
--         (Int)TNAM_OBJ(list), 0L,
--         "you can replace <list> via 'return <list>;'" );
--  }
--  len = LEN_LIST(list);
--  if (len == 0) return Fail;
--  mt = (UInt4*) CHARS_STRING(mtstr);
--  lg = 31 - CLog2Int(len);
--  for (a = nextrandMT_int32(mt) >> lg;
--       a >= len;
--       a = nextrandMT_int32(mt) >> lg
--    );
--  return ELM_LIST(list, a+1);
--}
--
--
--
- /****************************************************************************
- **
- *F  FuncHASHKEY_BAG(<self>,<obj>,<seed>,<offset>,<maxlen>)
-@@ -678,9 +648,6 @@ static StructGVarFunc GVarFuncs [] = {
-     { "InitRandomMT", 1, "initstr",
-       FuncInitRandomMT, "src/integer.c:InitRandomMT" },
- 
--    { "RandomListMT", 2, "mtstr, list",
--      FuncRandomListMT, "src/integer.c:RandomListMT" },
--
-     { 0 }
- 
- };
-diff --git a/src/listfunc.c b/src/listfunc.c
-index 7d04525..4b92f01 100644
---- a/src/listfunc.c
-+++ b/src/listfunc.c
-@@ -232,8 +232,10 @@ Obj            RemPlist (
-     }
-     removed = ELM_PLIST(list, pos);
-     SET_ELM_PLIST(list, pos, (Obj)0L);
--    SET_LEN_PLIST(list, pos-1);
--    if ( pos == 1 ) {
-+    pos--;
-+    while ( 1 <= pos && ELM_PLIST( list, pos ) == 0 ) { pos--; }
-+    SET_LEN_PLIST(list, pos);
-+    if ( pos == 0 ) {
-       RetypeBag(list, T_PLIST_EMPTY);
-     }
-     if (4*pos*sizeof(Obj) < 3*SIZE_BAG(list))
-@@ -302,6 +304,7 @@ Obj             FuncAPPEND_LIST_INTR (
-         len2 = GET_LEN_STRING(list2);
-         GROW_STRING(list1, len1 + len2);
-         SET_LEN_STRING(list1, len1 + len2);
-+        CLEAR_FILTS_LIST(list1);
-         memmove( (void *)(CHARS_STRING(list1) + len1), 
-                 (void *)CHARS_STRING(list2), len2 + 1);
-         /* ensure trailing zero */
-diff --git a/src/pperm.c b/src/pperm.c
-index 5965767..45a536b 100644
---- a/src/pperm.c
-+++ b/src/pperm.c
-@@ -2246,7 +2246,7 @@ Obj PrintPPerm4(Obj self, Obj f){
-   
-   deg=DEG_PPERM4(f);
-   if(deg==0) Pr("<empty partial perm>", 0L, 0L);
--  n=MAX(deg, CODEG_PPERM2(f));
-+  n=MAX(deg, CODEG_PPERM4(f));
-   ResizeTmpPPerm(n);
-   ptseen=(UInt4*)(ADDR_OBJ(TmpPPerm));
-   for(i=0;i<n;i++) ptseen[i]=0; 
-@@ -4451,7 +4451,7 @@ Obj QuoPPerm22(Obj f, Obj g){
-       }
-     }
-   }
--  CODEG_PPERM2(quo)=codeg;
-+  CODEG_PPERM4(quo)=codeg;
-   return quo;
- }
- 
-diff --git a/src/profile.c b/src/profile.c
-index 6e5d22e..c2f82d3 100644
---- a/src/profile.c
-+++ b/src/profile.c
-@@ -509,6 +509,73 @@ Obj ProfileEvalBoolPassthrough(Expr stat)
- }
- 
- 
-+/****************************************************************************
-+**
-+** This functions check if we overflow either 2^16 lines, or files.
-+** In this case profiling will "give up". We print a warning to tell users
-+** that this happens.
-+**/
-+
-+Int HaveReportedLineProfileOverflow;
-+Int ShouldReportLineProfileOverflow;
-+
-+Int HaveReportedFileProfileOverflow;
-+Int ShouldReportFileProfileOverflow;
-+
-+// This function only exists to allow testing of these overflow checks
-+Obj FuncCLEAR_PROFILE_OVERFLOW_CHECKS(Obj self) {
-+  HaveReportedLineProfileOverflow = 0;
-+  ShouldReportLineProfileOverflow = 0;
-+
-+  HaveReportedFileProfileOverflow = 0;
-+  ShouldReportFileProfileOverflow = 0;
-+  
-+  return 0;
-+}
-+
-+void CheckPrintOverflowWarnings() {
-+    if(!HaveReportedLineProfileOverflow && ShouldReportLineProfileOverflow)
-+    {
-+      HaveReportedLineProfileOverflow = 1;
-+      Pr("#I Profiling only works on the first 65,535 lines of each file\n"
-+         "#I (this warning will only appear once).\n",
-+          0L, 0L);
-+    }
-+    
-+    if(!HaveReportedFileProfileOverflow && ShouldReportFileProfileOverflow)
-+    {
-+      HaveReportedFileProfileOverflow = 1;
-+      Pr("#I Profiling only works for the first 65,535 read files\n"
-+         "#I (this warning will only appear once).\n",
-+          0L, 0L );
-+    }
-+}
-+
-+void RegisterProfilingLineOverflowOccured()
-+{
-+    Int active;
-+    HashLock(&profileState);
-+    active = profileState_Active;
-+    HashUnlock(&profileState);
-+    ShouldReportLineProfileOverflow = 1;
-+    if(active)
-+    {
-+        CheckPrintOverflowWarnings();
-+    }
-+}
-+
-+void RegisterProfilingFileOverflowOccured()
-+{
-+    Int active;
-+    HashLock(&profileState);
-+    active = profileState_Active;
-+    HashUnlock(&profileState);
-+    ShouldReportFileProfileOverflow = 1;
-+    if(active)
-+    {
-+        CheckPrintOverflowWarnings();
-+    }
-+}
- 
- /****************************************************************************
- **
-@@ -603,7 +670,7 @@ Obj FuncACTIVATE_PROFILING (
-     if(profileState_Active) {
-       return Fail;
-     }
--    
-+
-     if(profileState.profiledPreviously &&
-        coverage == True) {
-         ErrorMayQuit("Code coverage can only be started once per"
-@@ -611,6 +678,8 @@ Obj FuncACTIVATE_PROFILING (
-         return Fail;
-     }
- 
-+    CheckPrintOverflowWarnings();
-+
-     OutputtedFilenameList = NEW_PLIST(T_PLIST, 0);
- 
-     if ( ! IsStringConv( filename ) ) {
-@@ -897,6 +966,8 @@ void RegisterStatWithProfiling(Stat stat)
- }
- 
- 
-+
-+
- /****************************************************************************
- **
- 
-@@ -913,6 +984,8 @@ static StructGVarFunc GVarFuncs [] = {
-       FuncACTIVATE_PROFILING, "src/profile.c:ACTIVATE_PROFILING" },
-     { "DEACTIVATE_PROFILING", 0, "",
-       FuncDEACTIVATE_PROFILING, "src/profile.c:DEACTIVATE_PROFILING" },
-+    { "CLEAR_PROFILE_OVERFLOW_CHECKS", 0, "",
-+      FuncCLEAR_PROFILE_OVERFLOW_CHECKS, "src/profile.c:CLEAR_PROFILE_OVERFLOW_CHECKS" },
-     { "IsLineByLineProfileActive", 0, "",
-       FuncIS_PROFILE_ACTIVE, "src/profile.c:IsLineByLineProfileActive" },
-     { "ACTIVATE_COLOR_PROFILING", 1, "bool",
-diff --git a/src/profile.h b/src/profile.h
-index d6f4fa7..27bbd6f 100644
---- a/src/profile.h
-+++ b/src/profile.h
-@@ -28,7 +28,8 @@
- StructInitInfo * InitInfoProfile ( void );
- 
- void RegisterStatWithProfiling(Stat);
--
-+void RegisterProfilingLineOverflowOccured();
-+void RegisterProfilingFileOverflowOccured();
- 
- void InstallEvalBoolFunc( Int, Obj(*)(Expr));
- void InstallEvalExprFunc( Int, Obj(*)(Expr));
-diff --git a/src/read.c b/src/read.c
-index f69d149..a8f6601 100644
---- a/src/read.c
-+++ b/src/read.c
-@@ -551,13 +551,19 @@ void ReadCallVarAss (
-         }
-     }
- 
-+#ifdef HPCGAP
-+#define ASSIGN_ERROR_MESSAGE ":= or ::="
-+#else
-+#define ASSIGN_ERROR_MESSAGE ":="
-+#endif
-+
-     /* if we need a statement                                              */
-     else if ( mode == 's' || (mode == 'x' && IS_IN(TLS(Symbol), S_ASSIGN)) ) {
-         if ( type != 'c' && type != 'C') {
- 	    if (TLS(Symbol) != S_ASSIGN)
--	      Match( S_INCORPORATE, ":= or ::=", follow);
-+	      Match( S_INCORPORATE, ASSIGN_ERROR_MESSAGE, follow);
- 	    else
--	      Match( S_ASSIGN, ":= or ::=", follow );
-+	      Match( S_ASSIGN, ASSIGN_ERROR_MESSAGE, follow );
-             if ( TLS(CountNams) == 0 || !TLS(IntrCoding) ) { TLS(CurrLHSGVar) = (type == 'g' ? var : 0); }
-             ReadExpr( follow, 'r' );
-         }
-diff --git a/src/streams.c b/src/streams.c
-index 7738672..93fbe07 100644
---- a/src/streams.c
-+++ b/src/streams.c
-@@ -1947,25 +1947,30 @@ Obj FuncWRITE_STRING_FILE_NC (
-     Obj             fid,
-     Obj             str )
- {
--    Int             len = 0, ret;
-+    Int             len = 0, l, ret;
-+    char            *ptr;
- 
-     /* don't check the argument                                            */
-     
-     len = GET_LEN_STRING(str);
--    ret = write( syBuf[INT_INTOBJ(fid)].echo, CHARS_STRING(str), len);
--    return (ret == len)?True : Fail;
-+    ptr = CSTR_STRING(str);
-+    while (len > 0) {
-+      l = (len > 1048576) ? 1048576 : len;
-+      ret = write( syBuf[INT_INTOBJ(fid)].echo, ptr, l);
-+      if (ret == -1) {
-+        SySetErrorNo();
-+        return Fail;
-+      }
-+      len -= ret;
-+      ptr += ret;
-+    }
-+    return True;
- }
- 
--
- Obj FuncREAD_STRING_FILE (
-     Obj             self,
-     Obj             fid )
- {
--    Char            buf[20001];
--    Int             ret, len;
--    UInt            lstr;
--    Obj             str;
--
-     /* check the argument                                                  */
-     while ( ! IS_INTOBJ(fid) ) {
-         fid = ErrorReturnObj(
-@@ -1973,56 +1978,7 @@ Obj FuncREAD_STRING_FILE (
-             (Int)TNAM_OBJ(fid), 0L,
-             "you can replace <fid> via 'return <fid>;'" );
-     }
--
--#if ! SYS_IS_CYGWIN32
--    /* fstat seems completely broken under CYGWIN */
--#if HAVE_STAT
--    /* first try to get the whole file as one chunk, this avoids garbage
--       collections because of the GROW_STRING calls below    */
--    {
--        struct stat fstatbuf;
--        if ( syBuf[INT_INTOBJ(fid)].pipe == 0 &&
--            fstat( syBuf[INT_INTOBJ(fid)].fp, &fstatbuf) == 0 ) {
--            if((off_t)(Int)fstatbuf.st_size != fstatbuf.st_size) {
--                ErrorMayQuit(
--                    "The file is too big to fit the current workspace",
--                    (Int)0, (Int)0);
--            }
--            len = (Int) fstatbuf.st_size;
--            str = NEW_STRING( len );
--            ret = read( syBuf[INT_INTOBJ(fid)].fp, 
--                        CHARS_STRING(str), len);
--            CHARS_STRING(str)[ret] = '\0';
--            SET_LEN_STRING(str, ret);
--            if ( (off_t) ret == fstatbuf.st_size ) {
--                 return str;
--            }
--        }
--    }
--#endif
--#endif
--    /* read <fid> until we see  eof   (in 20kB pieces)                     */
--    str = NEW_STRING(0);
--    len = 0;
--    while (1) {
--        if ( (ret = read( syBuf[INT_INTOBJ(fid)].fp , buf, 20000)) <= 0 )
--            break;
--        len += ret;
--        GROW_STRING( str, len );
--	lstr = GET_LEN_STRING(str);
--        memcpy( CHARS_STRING(str)+lstr, buf, ret );
--	*(CHARS_STRING(str)+lstr+ret) = '\0';
--	SET_LEN_STRING(str, lstr+ret);
--    }
--
--    /* fix the length of <str>                                             */
--    len = GET_LEN_STRING(str);
--    ResizeBag( str, SIZEBAG_STRINGLEN(len) );
--
--    /* and return */
--
--    syBuf[INT_INTOBJ(fid)].ateof = 1;
--    return len == 0 ? Fail : str;
-+    return SyReadStringFid(INT_INTOBJ(fid));
- }
- 
- /****************************************************************************
-diff --git a/src/sysfiles.c b/src/sysfiles.c
-index 99e7974..fd46d1a 100644
---- a/src/sysfiles.c
-+++ b/src/sysfiles.c
-@@ -1424,9 +1424,6 @@ static void syAnswerAlarm ( int signr, siginfo_t * si, void *context)
-        Later we might want to do something cleverer with throwing an 
-        exception or dealing better if this isn't our timer     */
-   assert( signr == TIMER_SIGNAL);
--  assert( si->si_signo == TIMER_SIGNAL);
--  assert( si->si_code == SI_TIMER);
--  assert( si->si_value.sival_int == 0x12345678 );
-   SyAlarmRunning = 0;
-   SyAlarmHasGoneOff = 1;
-   InterruptExecStat();
-@@ -4055,6 +4052,96 @@ Char * SyTmpdir ( const Char * hint )
- #endif
- #endif
- 
-+Obj SyReadStringFile(Int fid)
-+{
-+    Char            buf[32769];
-+    Int             ret, len;
-+    UInt            lstr;
-+    Obj             str;
-+
-+    /* read <fid> until we see  eof   (in 32kB pieces)                     */
-+    str = NEW_STRING(0);
-+    len = 0;
-+    do {
-+        ret = read( syBuf[fid].fp , buf, 32768);
-+        if (ret < 0) {
-+            SySetErrorNo();
-+            return Fail;
-+        }
-+        len += ret;
-+        GROW_STRING( str, len );
-+        lstr = GET_LEN_STRING(str);
-+        memcpy( CHARS_STRING(str)+lstr, buf, ret );
-+        *(CHARS_STRING(str)+lstr+ret) = '\0';
-+        SET_LEN_STRING(str, lstr+ret);
-+    } while(ret > 0);
-+
-+    /* fix the length of <str>                                             */
-+    len = GET_LEN_STRING(str);
-+    ResizeBag( str, SIZEBAG_STRINGLEN(len) );
-+
-+    syBuf[fid].ateof = 1;
-+    return str;
-+}
-+
-+#if !defined(SYS_IS_CYGWIN32) && defined(HAVE_STAT)
-+/* fstat seems completely broken under CYGWIN */
-+/* first try to get the whole file as one chunk, this avoids garbage
-+   collections because of the GROW_STRING calls below    */
-+Obj SyReadStringFileStat(Int fid)
-+{
-+    Int             ret, len;
-+    Obj             str;
-+    Int             l;
-+    char            *ptr;
-+    struct stat     fstatbuf;
-+
-+    if( fstat( syBuf[fid].fp, &fstatbuf) == 0 ) {
-+        if((off_t)(Int)fstatbuf.st_size != fstatbuf.st_size) {
-+            ErrorMayQuit(
-+                "The file is too big to fit the current workspace",
-+                (Int)0, (Int)0);
-+        }
-+        len = (Int) fstatbuf.st_size;
-+        str = NEW_STRING( len );
-+        CHARS_STRING(str)[len] = '\0';
-+        SET_LEN_STRING(str, len);
-+        ptr = CSTR_STRING(str);
-+        while (len > 0) {
-+            l = (len > 1048576) ? 1048576 : len;
-+            ret = read( syBuf[fid].fp, ptr, l);
-+            if (ret == -1) {
-+                SySetErrorNo();
-+                return Fail;
-+            }
-+            len -= ret;
-+            ptr += ret;
-+        }
-+        syBuf[fid].ateof = 1;
-+        return str;
-+    } else {
-+        SySetErrorNo();
-+        return Fail;
-+    }
-+}
-+
-+Obj SyReadStringFid(Int fid)
-+{
-+    if(syBuf[fid].pipe == 1) {
-+        return SyReadStringFile(fid);
-+    } else {
-+        return SyReadStringFileStat(fid);
-+    }
-+}
-+
-+#else
-+
-+Obj SyReadStringFid(Int fid) {
-+    return SyReadStringFile(fid);
-+}
-+
-+#endif
-+
- 
- 
- /****************************************************************************
-diff --git a/src/sysfiles.h b/src/sysfiles.h
-index 497acca..dbf6b19 100644
---- a/src/sysfiles.h
-+++ b/src/sysfiles.h
-@@ -630,8 +630,21 @@ extern void syWinPut (
-     const Char *        cmd,
-     const Char *        str );
- 
-+/***************************************************************************
-+ **
-+ *F SyReadStringFid( <fid> )
-+ **   - read file given by <fid> into a string
-+ *F SyReadStringFile( <fid> )
-+ **   - read file given by <fid> into a string, only rely on read()
-+ *F SyReadStringFileStat( <fid> )
-+ **   - read file given by <fid> into a string, use stat() to determine
-+ **     size of file before reading. This does not work for pipes
-+ */
-+
-+extern Obj SyReadStringFid(Int fid);
-+extern Obj SyReadStringFile(Int fid);
-+extern Obj SyReadStringFileGeneric(Int fid);
- 
--     
- /****************************************************************************
- **
- 
-diff --git a/src/system.c b/src/system.c
-index 8548293..e34b898 100644
---- a/src/system.c
-+++ b/src/system.c
-@@ -78,10 +78,10 @@ Int enableCodeCoverageAtStartup( Char **argv, void * dummy);
- /****************************************************************************
- **
- *V  SyKernelVersion  . . . . . . . . . . . . . . . hard coded kernel version
--** do not edit the following line. Occurences of `4.8.3' and `today'
-+** do not edit the following line. Occurences of `4.8.6' and `today'
- ** will be replaced by string matching by distribution wrapping scripts.
- */
--const Char * SyKernelVersion = "4.8.3";
-+const Char * SyKernelVersion = "4.8.6";
- 
- /****************************************************************************
- **
-diff --git a/src/trans.c b/src/trans.c
-index f7ec508..8699166 100644
---- a/src/trans.c
-+++ b/src/trans.c
-@@ -421,7 +421,7 @@ Obj FuncRANK_TRANS_LIST(Obj self, Obj f, Obj list){
-     rank=0; 
-     for(i=1;i<=len;i++){
-       pt=ELM_LIST(list, i);
--      if(!TNUM_OBJ(pt)==T_INT||INT_INTOBJ(pt)<1){
-+      if(TNUM_OBJ(pt)!=T_INT||INT_INTOBJ(pt)<1){
-         ErrorQuit("usage: the second argument <list> must be a list of positive\n integers (not a %s)", (Int)TNAM_OBJ(pt), 0L);
-       }
-       j=INT_INTOBJ(pt)-1;
-@@ -439,7 +439,7 @@ Obj FuncRANK_TRANS_LIST(Obj self, Obj f, Obj list){
-     rank=0; 
-     for(i=1;i<=len;i++){
-       pt=ELM_LIST(list, i);
--      if(!TNUM_OBJ(pt)==T_INT||INT_INTOBJ(pt)<1){
-+      if(TNUM_OBJ(pt)!=T_INT||INT_INTOBJ(pt)<1){
-         ErrorQuit("usage: the second argument <list> must be a list of positive\n integers (not a %s)", (Int)TNAM_OBJ(pt), 0L);
-       }
-       j=INT_INTOBJ(pt)-1;
-diff --git a/test/Makefile.in b/test/Makefile.in
-index 013b127..6de463f 100644
---- a/test/Makefile.in
-+++ b/test/Makefile.in
-@@ -92,10 +92,10 @@ TESTS = test$(EXEEXT) shell$(EXEEXT) error_handler$(EXEEXT)
- check_PROGRAMS = test$(EXEEXT) shell$(EXEEXT) error_handler$(EXEEXT)
- subdir = test
- ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
--am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \
--	$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
--	$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
--	$(top_srcdir)/configure.ac
-+am__aclocal_m4_deps = $(top_srcdir)/m4/ld-version-script.m4 \
-+	$(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
-+	$(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
-+	$(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
- am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
- 	$(ACLOCAL_M4)
- DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
-@@ -430,6 +430,7 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
- INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
- LD = @LD@
- LDFLAGS = @LDFLAGS@
-+LIBGAP_LT_VERSION = @LIBGAP_LT_VERSION@
- LIBOBJS = @LIBOBJS@
- LIBS = @LIBS@
- LIBTOOL = @LIBTOOL@
--- 
-2.7.4.1.g5468f9e
-



More information about the arch-commits mailing list