On Sun, Aug 24, 2014 at 08:05:45PM +0200, Bastian Blank wrote: > On Fri, Aug 22, 2014 at 07:21:31PM -0400, Stephen Powell wrote: > > 32ea: a7 f4 00 01 j 32ec > > <sclp_wait_for_int+0x84> > > 32ee: 07 07 nopr %r7 > gcc 4.9 decides that this must never happen and adds a trap in this > location, so this a is deliberate way to stop the process.
I found the culprit: The tree-isolate-paths pass in gcc 4.9. If I disable this pass I get: static inline int wait(void) { do { load_wait_psw(0x0102000180000000ULL, &S390_lowcore.external_new_psw); 32d6: e3 20 d0 00 00 04 lg %r2,0(%r13) 32dc: a7 39 01 b0 lghi %r3,432 32e0: c0 e5 ff ff fb b8 brasl %r14,2a50 <load_wait_psw> if (S390_lowcore.ext_int_code == 0x1004U) 32e6: 48 10 00 86 lh %r1,134 32ea: bd 13 d0 0a clm %r1,3,10(%r13) 32ee: a7 84 00 0c je 3306 <sclp_wait_for_int+0x9e> return ETIMEOUT; } while (S390_lowcore.ext_int_code != 0x2401U); 32f2: 48 10 00 86 lh %r1,134 32f6: bd 13 d0 08 clm %r1,3,8(%r13) 32fa: a7 74 ff ee jne 32d6 <sclp_wait_for_int+0x6e> return 0; 32fe: a7 28 00 00 lhi %r2,0 3302: a7 f4 00 04 j 330a <sclp_wait_for_int+0xa2> This pass seems to declare the null-pointer-access as invalid. Bastian -- In the strict scientific sense we all feed on death -- even vegetarians. -- Spock, "Wolf in the Fold", stardate 3615.4 -- To UNSUBSCRIBE, email to debian-s390-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: https://lists.debian.org/20140824183445.ga30...@mail.waldi.eu.org