On Fri, Dec 28, 2018 at 05:23:09PM +0300, Ivan Zakharyaschev wrote: > Hi Bruno, > > On Thu, 20 Dec 2018, Bruno Haible wrote: > > > > + # E2K (elbrus) systems send SIGILL on an access to an invalid > > > address. > > > > This is a bug in the system. Access of an invalid address ought to produce a > > SIGSEGV or SIGBUS. > > > > 'elbrus' is not an important OS so far, for which it would be worth adding > > workarounds in the gnulib source. > > Is it still in development? -> If so, please fix that bug. > > Or is it a museum system? -> If so, just bear with the test failure. > > Of these descriptions, "system in development" is the one which suits > Linux/E2k better. The port to E2K (MCST Elbrus general purpose hardware > architecture) is quite mature, but not yet released publicly. > > As for the SIGILL peculiarity, it has a reason in the Elbrus architecture. > AFAIU, a different protection mechanism comes into play here. It is based > on tagging values/memory: if an attempt is made to use a value in a way > which contradicts its tag, then the "illegal operand" condition arises. > Namely, a "load" instruction can expect a certain tag, and then there can > be a mismatch between the assumptions of the code and the actual value > and its tag.
No, this particular case (++*argv[argc]) has nothing to do with tagged memory, I hope Ivan will share his findings here. -- ldv
Description: PGP signature