diff options
author | 2019-06-23 17:58:55 +0200 | |
---|---|---|
committer | 2019-06-23 17:58:55 +0200 | |
commit | 48f0e9ff67868013bcf43f044b297425ae451117 (patch) | |
tree | 3c90677f076884418551fbd35a54f7a53e5abc98 /dev-scheme | |
parent | dev-scheme/guile-lib: Add patch for slotted guile, bump to 0.2.6.1 (diff) | |
download | lisp-48f0e9ff67868013bcf43f044b297425ae451117.tar.gz lisp-48f0e9ff67868013bcf43f044b297425ae451117.tar.bz2 lisp-48f0e9ff67868013bcf43f044b297425ae451117.zip |
dev-scheme/guile: append -fno-fast-math to cflags, bug #598986
Package-Manager: Portage-2.3.66, Repoman-2.3.11
Diffstat (limited to 'dev-scheme')
-rw-r--r-- | dev-scheme/guile/Manifest | 12 | ||||
-rw-r--r-- | dev-scheme/guile/files/guile-2-snarf.patch | 47 | ||||
-rw-r--r-- | dev-scheme/guile/files/guile-2.0.14-darwin.patch | 38 | ||||
-rw-r--r-- | dev-scheme/guile/files/guile-2.0.14-ia64-fix-crash-thread-context-switch.patch | 63 | ||||
-rw-r--r-- | dev-scheme/guile/files/guile-2.0.14-tests-repl-server.patch | 25 | ||||
-rw-r--r-- | dev-scheme/guile/guile-2.0.14-r4.ebuild | 89 | ||||
-rw-r--r-- | dev-scheme/guile/guile-2.2.5.ebuild | 2 | ||||
-rw-r--r-- | dev-scheme/guile/guile-2.9.2.ebuild | 2 | ||||
-rw-r--r-- | dev-scheme/guile/guile-9999.ebuild | 2 |
9 files changed, 277 insertions, 3 deletions
diff --git a/dev-scheme/guile/Manifest b/dev-scheme/guile/Manifest index 2c9c7f93..c102031f 100644 --- a/dev-scheme/guile/Manifest +++ b/dev-scheme/guile/Manifest @@ -1,7 +1,13 @@ +AUX guile-2-snarf.patch 1274 BLAKE2B e9efdd1e14560579131ecff748add4f97de730678e6f766681be72f95bf99ab36edd8bc7279701084d13f3fa762968af814760bcf9b8778c73c956c282bb3c93 SHA512 49d015b08d0bcf5d27aa43d4a595b2ccb4366dffe0f5d159162c8c7747fb9fdbe84056a737f3c81a6e39281d91109bfa4aa98c85dd0e757c17ab668a1dd46f24 +AUX guile-2.0.14-darwin.patch 1026 BLAKE2B 9193732cfb74931f7bf8e9b55c5c9dd2621ef6271c8d18190e0ed94d90decde85272f271bbbe7d3c4dd0dd509e51fae3f7f0af42872a0b9ebb87396c9e69a9d2 SHA512 151d19f171656105d87336f81dd8c34273d07a3e88aa03ac5ca8d640c79ab317a90ef06097858bf627e4666fba747faea45237c73e7bc6462d19d8f0d1904d53 +AUX guile-2.0.14-ia64-fix-crash-thread-context-switch.patch 2426 BLAKE2B 5b2073a3780794e9466d8e5434ab98a91a821408ab792abbfaf61d09c95e113b99746b0da850115b4534bda00b1313cef5bb9b08c90c8bf9a04c81b1eb78faa3 SHA512 082f98ac4ee2f40dd3762006bf5c43022088b2286c9a8d63ae9e234d3c8527f3afcfba8076e0c8578e7fbed257294db6ce1a4513661b89f821579dc121d449ae +AUX guile-2.0.14-tests-repl-server.patch 964 BLAKE2B 08ee4f7399b108c7bc30314b28b7e53e632a74e5d00e1a3d149c0771cbd2bbd91942a8e7a6c68680b5f2ace5648780b81466bdb9bbec48607753cddcb03298ac SHA512 e5a67524011e69fdd14c8feb70b42b1860fcce0dd889cf0defab48f7508391e14e0da24065cac040beeaeade445d5dd36f71d75d2fe4fae22cd14aff74b66898 AUX guile-2.2.3-gentoo-sandbox.patch 361 BLAKE2B 997d4cec108f302f34b42c59c78d420c858f964b8587bed523d95fadedbf9981dd9c196934299413db9c23e940a4b88e798e4fff65cdea1507968494338313ba SHA512 450f44cbd2b3f0c7c02963c35e58e8d0e4a7192239993215b69713d8a1109692ab1e153efe685c27681069477a56e7bc52b34ebd8717a2c8695be8c6b8abe673 +DIST guile-2.0.14.tar.gz 7823099 BLAKE2B e7fa5a4ca19dc4adfcc151350b0ed4e211b8470b0d12f65451697a818c3139a4a5992a019bd213114748230cb15ec755d1af70d42b901230854915c0ee7b05de SHA512 d69c9bdf589fedcc227f3203012f6ed11c327cef3a0147d8e016fe276abecdb4272625efe1d0c7aa68219fe8f29bbced44089a4b479e4eafe01976c6b2b83633 DIST guile-2.2.5.tar.gz 18126413 BLAKE2B 9b52402417ba62236c101b283cc4c1a1cac19d93c96b1df814ab357cb6e1aef2ef086e2181719d747f468841a5dd1c5146c062984280808ac64a5c7dfde85dba SHA512 1c07a6d16e00953d416bd8db5b1e9574c62751f745c203de5a910b9688cf93756fe2303ab084d9e9949bff11e6e14909304ecd1ef671be2a06c7c3f292f6380c DIST guile-2.9.2.tar.gz 21564297 BLAKE2B 23ef2f2036bffe908d2aa6f9c9528d4883a58e9223d30bc8bb9c0159a7c6ca12b2580b6d1c698fba99265731d6fa4b00db141ef64351347348aa9c6d6641c5c3 SHA512 91dfb47bfaa20a53e961cec4f4ea29a81a2da5e5118726c003379e3202a5e5dad6c5dd6f0f4d9e17119c9431f59c0ae61ed2142628b2221029831e7e99d5587b -EBUILD guile-2.2.5.ebuild 2453 BLAKE2B c3cad7c92ff8fc9e7234617466d32c717677aeee5f7ffbb2c35aed1a0d2e1dab87607e53caae27bebd01ee57667257b5bc543eb7269c70a65db929850ae23135 SHA512 34a9dd0095541de56aa82c44d28aad3f25e3960015fa7944230b9264495faa8e53febb1c4ba4e261679558854f1dd518e14a0f7da9b7ffb39d8c6de783ba9b61 -EBUILD guile-2.9.2.ebuild 2386 BLAKE2B 6a5cc1773c52301d334985739d58ee85318cdf05262a8c7f5e8bf2d946a5b244742a4b72464f32190569d425c72829e57c9ea67e46a1cddaff81e851a3117aed SHA512 5ad352b874fae0dfd52ee728141962456ba45a86924454a8b15e46c1bd80f68a04368739de393203f16903cd02a089a6b7db48cf742b5ba0f49a4e5e86d4a26e -EBUILD guile-9999.ebuild 2313 BLAKE2B 81f3e627fbce2fca9d133203a7f004a2bf07e6832a82059791663e627a7271d13126509df1a423c8a61ff71055f9abf4781a100189ec42ec2af5df9510aac732 SHA512 ffed3103570111bae217e41dc760097a0558a0cbce63249b8537e3de1c85b76c508c97c0ac7bd57acf866416aac94d166fcdd64629982c84aab5ad5cac65d9ba +EBUILD guile-2.0.14-r4.ebuild 2352 BLAKE2B 5ffa28dddf88b6e55f40e8b917767be9a4714719a6a2f380c01842f3cba08d296163f68a53332ef3846acaea1377cbfad62d817da8b0f66fec730f9e86aff366 SHA512 2aafc7934658b7d7e3e8df632890affa409e3aabf5d782e98da1812f2cc58870a4e80a4c726c2980df3d862d91a35c20c90978008fa2e1ede23422bc285f0e30 +EBUILD guile-2.2.5.ebuild 2519 BLAKE2B 2c7cb0deeb7b534b009d5e4f191c26c43173c1f6d92e7001c6ad01c463bd9f5f657fc97ed2ee60c3997c48cbbf68e8daf5431538554b9b089933331726fc7701 SHA512 518aa88e02a930f7bb283e9c56fe84810c06f591e0dfd8cdaaa4e804b6ef5bb4b706a10887bd9863987b2099f0cafe3b4c2e8c88bdb8630f6d28ecd74fc24ef8 +EBUILD guile-2.9.2.ebuild 2452 BLAKE2B beef273c96d341df0cf5642d37f6ff0686aa79e9371553101322e73ee9e35ce8bd6eb5078fdb9c74d5de386539818e8d9e308a192b7e8c64d7b603ee9f0aec49 SHA512 6df90f4a9b5dd135894c913b4e608d1abfb974b9e790023c243ab7d52c408b7eb7c8ea3966ca6778401bac7fc15b9c1c6b9b4f4bfc2f0bf4755c74aa5b772d73 +EBUILD guile-9999.ebuild 2379 BLAKE2B e064e9946f66f4e4b24e5f5fc2f56042eb1eb9d373e722e8d98e4eb0a3439a7111e610581831792797c319fcd4e19557cc1725d37de5462629b348bd5bdbe6d5 SHA512 4c8c25472d129ad3a6323bb77a665427041f24189c58d5c8dedad8a3b5a4d35b828d837268173887c182db9313ec04780aefce20a3e6e155f7989a6bbc8f7ed0 MISC metadata.xml 853 BLAKE2B 14e193fda4ff6397d2ab6aedaeab4320883da005e869491072deb1a38a0afab199692466dd7321cf0e6ca79c3f198f64efbb3a611dcd653ce514cc81d78a78e1 SHA512 958758b1ff1a2fc0a4fe9931b74fa38450b52a2081738f2dfc3b6310433ab01ed68752e256ecb9c4f23db7a22d14e0e72da1f99208be012550c62e308b349667 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 00000000..c6ab5cd4 --- /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 00000000..17741ae3 --- /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 00000000..c2f136dd --- /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.0.14-tests-repl-server.patch b/dev-scheme/guile/files/guile-2.0.14-tests-repl-server.patch new file mode 100644 index 00000000..15c78a46 --- /dev/null +++ b/dev-scheme/guile/files/guile-2.0.14-tests-repl-server.patch @@ -0,0 +1,25 @@ +--- guile-2.2.5/test-suite/tests/00-repl-server.test.old 2017-04-14 23:26:40.000000000 +0200 ++++ guile-2.2.5/test-suite/tests/00-repl-server.test 2019-06-23 12:16:10.624115938 +0200 +@@ -27,7 +27,7 @@ + (define (call-with-repl-server proc) + "Set up a REPL server in a separate process and call PROC with a + socket connected to that server." +- (let ((sockaddr (make-socket-address AF_UNIX "/tmp/repl-server")) ++ (let ((sockaddr (make-test-socket-address)) + (client-socket (socket AF_UNIX SOCK_STREAM 0))) + (false-if-exception + (delete-file (sockaddr:path sockaddr))) +@@ -86,6 +86,13 @@ + (lambda (client-socket) + body ...))) + ++(define (make-test-socket-address) ++ (catch 'unbound-variable ++ (lambda () ++ (make-socket-address AF_UNIX "/tmp/repl-server")) ++ (lambda (key . args) ++ (throw 'unresolved)))) ++ + (define (read-until-prompt port str) + "Read from PORT until STR has been read or the end-of-file was + reached." diff --git a/dev-scheme/guile/guile-2.0.14-r4.ebuild b/dev-scheme/guile/guile-2.0.14-r4.ebuild new file mode 100644 index 00000000..f68b2613 --- /dev/null +++ b/dev-scheme/guile/guile-2.0.14-r4.ebuild @@ -0,0 +1,89 @@ +# Copyright 1999-2019 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 +inherit flag-o-matic autotools ltprune + +DESCRIPTION="GNU Ubiquitous Intelligent Language for Extensions" +HOMEPAGE="https://www.gnu.org/software/guile/" +SRC_URI="mirror://gnu/guile/${P}.tar.gz" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos" +LICENSE="LGPL-3+" +IUSE="debug debug-malloc +deprecated +networking +nls +regex +threads" # upstream recommended +networking +nls +# emacs useflag removal not working + +# workaround for bug 596322 +REQUIRED_USE="regex" + +RDEPEND=" + >=dev-libs/boehm-gc-7.0:=[threads?] + dev-libs/gmp:= + virtual/libffi:= + dev-libs/libltdl:= + dev-libs/libunistring:0= + sys-devel/libtool + sys-libs/ncurses:0= + sys-libs/readline:0=" +DEPEND="${RDEPEND} + virtual/pkgconfig + sys-apps/texinfo + sys-devel/gettext" + +SLOT="12/22" # subslot is soname version +MAJOR="2.0" + +DOCS=( GUILE-VERSION HACKING README ) + +PATCHES=( + "${FILESDIR}/${PN}-2-snarf.patch" + "${FILESDIR}/${P}-darwin.patch" + "${FILESDIR}/${P}-ia64-fix-crash-thread-context-switch.patch" + "${FILESDIR}/${P}-tests-repl-server.patch" +) + +src_prepare() { + default + eautoreconf +} + +src_configure() { + # see bug #178499 + filter-flags -ftree-vectorize + # see bug #598986 + append-cflags $(test-flags-CC -fno-fast-math) + + econf \ + --disable-error-on-warning \ + --disable-rpath \ + --disable-static \ + --enable-posix \ + --without-libgmp-prefix \ + --without-libiconv-prefix \ + --without-libintl-prefix \ + --without-libltdl-prefix \ + --without-libreadline-prefix \ + --without-libunistring-prefix \ + $(use_enable debug guile-debug) \ + $(use_enable debug-malloc) \ + $(use_enable deprecated) \ + $(use_enable networking) \ + $(use_enable nls) \ + $(use_enable regex) \ + $(use_with threads) +} + +src_install() { + default + prune_libtool_files + + # From Novell + # https://bugzilla.novell.com/show_bug.cgi?id=874028#c0 + dodir /usr/share/gdb/auto-load/$(get_libdir) + mv "${ED}"/usr/$(get_libdir)/libguile-*-gdb.scm "${ED}"/usr/share/gdb/auto-load/$(get_libdir) || die + + # necessary for registering slib, see bug 206896 + keepdir /usr/share/guile/site + + # Dark magic necessary for some deps + dosym libguile-2.0.so /usr/$(get_libdir)/libguile.so +} diff --git a/dev-scheme/guile/guile-2.2.5.ebuild b/dev-scheme/guile/guile-2.2.5.ebuild index 2e0088b0..23095046 100644 --- a/dev-scheme/guile/guile-2.2.5.ebuild +++ b/dev-scheme/guile/guile-2.2.5.ebuild @@ -38,6 +38,8 @@ DOCS=( GUILE-VERSION HACKING README ) src_configure() { # see bug #178499 filter-flags -ftree-vectorize + # see bug #598986 + append-cflags $(test-flags-CC -fno-fast-math) econf \ --program-suffix="-${MAJOR}" \ diff --git a/dev-scheme/guile/guile-2.9.2.ebuild b/dev-scheme/guile/guile-2.9.2.ebuild index f15a1db5..852109f4 100644 --- a/dev-scheme/guile/guile-2.9.2.ebuild +++ b/dev-scheme/guile/guile-2.9.2.ebuild @@ -37,6 +37,8 @@ DOCS=( GUILE-VERSION HACKING README ) src_configure() { # see bug #178499 filter-flags -ftree-vectorize + # see bug #598986 + append-cflags $(test-flags-CC -fno-fast-math) econf \ --program-suffix="-${MAJOR}" \ diff --git a/dev-scheme/guile/guile-9999.ebuild b/dev-scheme/guile/guile-9999.ebuild index 8feb94b2..f571ceed 100644 --- a/dev-scheme/guile/guile-9999.ebuild +++ b/dev-scheme/guile/guile-9999.ebuild @@ -44,6 +44,8 @@ src_prepare() { src_configure() { # see bug #178499 filter-flags -ftree-vectorize + # see bug #598986 + append-cflags $(test-flags-CC -fno-fast-math) econf \ --program-suffix="-${MAJOR}" \ |