From: Bruno H. <br...@cl...> - 2017-08-23 08:35:10
|
Hi Jerry, > Thanks again, Bruno, for the patches. They don't apply cleanly to > either the 2.49.60 beta release or to current mercurial head, though. > What version of the code are those patches against? The patches were meant to apply to the 2.49.60 beta release. They do apply without rejects, if you apply them in the order I sent them: $ cd clisp-2.49.60/ $ patch -p1 < ../gdbm.diff patching file modules/gdbm/gdbm.c $ patch -p1 < ../arm64.diff patching file src/lispbibl.d Hunk #1 succeeded at 390 (offset -4 lines). Hunk #2 succeeded at 2898 (offset -4 lines). Hunk #3 succeeded at 3029 (offset -4 lines). Hunk #4 succeeded at 3048 (offset -4 lines). Hunk #5 succeeded at 3068 (offset -4 lines). Hunk #6 succeeded at 3966 (offset -4 lines). patching file src/makemake.in patching file src/spvw.d patching file src/spvw_allocate.d $ patch -p1 < ../powerpc64.diff patching file src/lispbibl.d Hunk #1 succeeded at 2917 (offset -4 lines). Hunk #2 succeeded at 3406 (offset -4 lines). patching file src/spvw.d $ patch -p1 < ../s390x.diff patching file src/lispbibl.d Hunk #1 succeeded at 2378 (offset -4 lines). Hunk #2 succeeded at 2388 (offset -4 lines). Hunk #3 succeeded at 2420 (offset -4 lines). Hunk #4 succeeded at 2621 (offset -4 lines). Hunk #5 succeeded at 2942 (offset -4 lines). patching file src/spvw.d > Sadly, the patches have not improved the situation. The 32- and > 64-bit x86 and 32-bit ARM builds still succeed, and all of the others > segfault now. > That build was against mercurial revision 820ad4b724cb, with the > following patches: ... Please use the 2.49.60 beta release as a starting point. If you use the mercurial HEAD, you live more dangerously. There are some kinds of bugs that we detect and fix using special testing modes during beta testing, and this has not yet happened for the changes between 2.49.60 and HEAD. > - A patch to fix the ARM build: > http://sourceforge.net/tracker/?func=detail&aid=3529615&group_id=1355&atid=301355 > - A patch to fix configure detection of Berkeley DB: > http://sourceforge.net/tracker/?func=detail&aid=3572516&group_id=1355&atid=301355 > - A patch to add definitions for ERFKILL and EHWPOISON, and to remove > the definition of cfree, which has been dropped from recent versions > of glibc (attached). > - The gdbm patch I sent with the initial email These patches look all reasonable. They are surely not the causes of crashes on Linux/x86_64. If you still get segfaults on all other platforms, it may be due to * optimization bugs in the GCC you are using: please patch makemake.in to use only -O instead of -O2 and try that, * different behaviour of the Linux kernel. There is a crude workaround, which is to configure with --enable-portability, but this disables a lot of optimization features (including generational GC), therefore this is not the first thing I'd recommend to you. The other approach would be for me to debug it in a VM for x86_64 or i386. Which Fedora installer image is it that I can download and try in a VM? > I just noticed that we add these flags when building for ppc64/ppc64le: > > -DNO_GENERATIONAL_GC -DNO_MULTIMAP_FILE -DNO_SINGLEMAP > > That part of the spec file predates my involvement, so I don't know > why they are in there. Should we be using those flags? I tested the powerpc64.diff without these options, therefore I'm pretty sure you can remove them. Bruno |