On Fri, Mar 11, 2011 at 05:36:25PM +0100, Christoph Egger wrote: > Hi all! > > Bruno Haible <br...@clisp.org> writes: > >> libsigsegv doesn't cope well with s390 at the moment. This is caused > >> by the fact, that linux masks the address for sigsegv: > >> > >> mm/fault.c:#define __FAIL_ADDR_MASK 0x7ffff000 > >> > >> So the last 12 bit of information are lost. > > > > Thanks for the analysis. Indeed at least the 'sigsegv1' test will fail in > > this > > situation. > > > > Have you reported the problem to the linux-kernel mailing list, or to the > > maintainers of the s390 part of Linux? > > > >> Forcing libsigsegv to use > >> POSIX signal handlers othewise makes a library that passes all the tests > >> apart from the exact fault location. > > > > That sounds promising, if the kernel problem was fixed. > > It seems the FAIL_ADDR_MASK is some handling for hardware > limitation?
The hardware only stores the page address in case of a fault. The rest of the bits (if defined) in the eight byte value are used for other informations helping to figure out what sort of fault happened. > Is there some chance to get near a exact address for > segfault handlers or will we have to just live with the absence of this > facility on application level? You would have to perform instruction decoding to figure out what was the exact failing address. Not really a thankful job. _______________________________________________ pkg-common-lisp-devel mailing list pkg-common-lisp-devel@lists.alioth.debian.org http://lists.alioth.debian.org/mailman/listinfo/pkg-common-lisp-devel