|
From: | Brian Inglis |
Subject: | Re: bison segv under Cygwin 64 at fatal-signal.c:318 |
Date: | Sat, 18 Sep 2021 08:04:35 -0600 |
User-agent: | Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.14.0 |
On 2021-09-18 07:22, Brian Inglis wrote:
On 2021-09-17 14:25, Bruno Haible wrote:Brian Inglis wrote:Can you also try to build it through gl_cv_have_weak=no ../configure -C && make && make check in a different subdirectory? Please send the config.log, config.cache, config.status, and gltests/test-suite.log for each run.Done and attachedThanks! Indeed, gl_cv_have_weak=no appears to make the essential difference.Therefore, I'm applying this fix. 2021-09-17 Bruno Haible <bruno@clisp.org> threadlib: Avoid crashes in thread-related functions on Cygwin 3.2.0. Reported by Brian Inglis via Akim Demaille in<https://lists.gnu.org/archive/html/bug-gnulib/2021-09/msg00063.html>.* m4/threadlib.m4 (gl_WEAK_SYMBOLS): Force a "guessing no" result on Cygwin. diff -w --git a/m4/threadlib.m4 b/m4/threadlib.m4 index 37b797c18..6b43bbdfa 100644 --- a/m4/threadlib.m4 +++ b/m4/threadlib.m4 @@ -1,4 +1,4 @@ -# threadlib.m4 serial 31 +# threadlib.m4 serial 32 dnl Copyright (C) 2005-2021 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, @@ -84,7 +84,15 @@ AC_DEFUN([gl_WEAK_SYMBOLS], AC_REQUIRE([AC_CANONICAL_HOST]) AC_CACHE_CHECK([whether imported symbols can be declared weak], [gl_cv_have_weak], - [gl_cv_have_weak=no + [case "$host_os" in + cygwin*)+ dnl On Cygwin 3.2.0 with gcc 10.2, the test below would succeed, but + dnl programs that use pthread_in_use() with weak symbol references+ dnl crash miserably at runtime. + gl_cv_have_weak="guessing no" + ;; + *) + gl_cv_have_weak=no dnl First, test whether the compiler accepts it syntactically. AC_LINK_IFELSE( [AC_LANG_PROGRAM( @@ -116,6 +124,8 @@ int main () [gl_cv_have_weak="guessing no"]) ]) fi + ;; + esac dnl But when linking statically, weak symbols don't work. case " $LDFLAGS " in *" -static "*) gl_cv_have_weak=no ;;Patch would not apply as included gnulib and bison threadlib.m4 appear to be from July and August.Respun and applied patch successfully to glm4/threadlib.m4.Still did not change gnulib or bison builds to configure weak=no or check successfully.Were there additional conditions required to ensure that was used?Had to configure with explicit gl_cv_have_weak=no arg to successfully configure and run tests.Please see attached tars for logs and config.*.Patch also made no difference to bison build, but adding to CYGCONF_ARGS explicit gl_cv_have_weak=no allowed all tests to run:* D, Java, 129: Output file name: `~!..., 150: Tabulations and multibyte characters, 283-287: syncline escapes, 647: LAC: Exploratory stack, were skipped;* all but two others 672-673: Doxygen Public-Private Documentation were successful.Please see attached bison...check.log.gz.So the diagnosis and cure were correct and worked, but the patch did not seem to make any difference?
[Dropping bug-bison]Attaching the patches provided by Bruno (gnulib/...orig.patch), respun for gnulib config tests (gnulib/...patch), and respun for bison config tests (threadlib...patch).
-- Take care. Thanks, Brian Inglis, Calgary, Alberta, Canada This email may be disturbing to some readers as it contains too much technical detail. Reader discretion is advised. [Data in binary units and prefixes, physical quantities in SI.]
gnulib-threadlib-m4-31-cygwin-weak-no.orig.patch
Description: Text document
gnulib-threadlib-m4-31-cygwin-weak-no.patch
Description: Text document
threadlib-m4-31-cygwin-weak-no.patch
Description: Text document
[Prev in Thread] | Current Thread | [Next in Thread] |