On Fri, Mar 11, 2011 at 05:36:25PM +0100, Christoph Egger wrote: > Hi all! > > Bruno Haible <bruno@xxxxxxxxx> 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. -- To unsubscribe from this list: send the line "unsubscribe linux-s390" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html