Andrew Haley writes: > Andrew Haley writes: > > Andrew Haley writes: > > > Anthony Green writes: > > > > I see the following issues with rawhide (on x86) right now... > > > > > > > > * I'm not getting any stack traces, just <<No stacktrace available>> > > > > > > > > > > > > * Eclipse fails and the log contains the following errors (with no > > > > stacktraces): > > > > > > > > java.lang.IllegalAccessError: org.xml.sax.helpers.NamespaceSupport$Context: org.xml.sax.helpers.NamespaceSupport.EMPTY_ENUMERATION > > > > > > > > java.lang.Exception: Cannot initialize Update Configurator > > > > > > > > java.lang.IllegalStateException: Bundle initial@reference:file:plugins/org.eclipse.core.runtime_3.1.1.jar/ [1] is not active. > > > > > > > > > > > > * aot-compile-rpm is using -mcpu=i686, but -mcpu is deprecated in GCC 4.1. I can't see where this comes from. > > > > > > > > > > > > Any ideas? > > > > > > gcc is emitting bad unwinder data for some routines. This isn't a bug > > > in the gcc unwinder itself, because gdb has the same problems. Look > > > at Frame 7 and Frame 9: > > > > BTW, I don't have this problem when building gcc from FSF sources. > > You'll have to make your window hugely wide to read this mail. > > Here's the difference. On the left, we have gcc version 4.1.0 20051212 (prerelease), > on the right we have gcc version 4.1.0 20051214 (Red Hat 4.1.0-0.9) > > The one on the right is the one that works. > > You'll note that the bad one uses three push instructions and then > sets CFA offset to 12. This is wrong AFAICS: the original CFA offset > at function entry is 4, so if you push three registers, the CFA offset > should be 16. The code on the right subtracts 12 from sp -- > allocating three words -- and then sets CFA offset to 16. This one is > correct, and we get a Java stacktrace. > > Both built on the same box. However, the 4.1 build was > i686-pc-linux-gnu, and the RPM build was i386-pc-linux-gnu. I'm > guessing that is the *real* difference, and I'm investigating building > 4.1 branch with host=i386-pc-linux-gnu. And here is 4.1 branch built with i386-pc-linux-gnu. And guess what! It's just as bad as the Fedora RPM. OK, so I'm now going to go digging into the DWARF output routines to see if I can discover the root cause of this insanity. Andrew. 00a326a8 <java.lang.Throwable.Throwable(java.lang.String)>: a326a8: 56 push %esi a326a9: 53 push %ebx a326aa: 50 push %eax a326ab: e8 00 00 00 00 call a326b0 <java.lang.Throwable.Throwable(java.lang.String)+0x8> a326b0: 5b pop %ebx a326b1: 81 c3 34 ee 6a 00 add $0x6aee34,%ebx a326b7: 8b 74 24 10 mov 0x10(%esp),%esi a326bb: 89 34 24 mov %esi,(%esp) a326be: e8 7d f6 dd ff call 811d40 <java.lang.Object.Object()@plt> a326c3: 89 34 24 mov %esi,(%esp) a326c6: e8 a5 8a dc ff call 7fb170 <java.lang.Throwable.finit$()@plt> a326cb: 8b 06 mov (%esi),%eax a326cd: 89 34 24 mov %esi,(%esp) a326d0: ff 50 3c call *0x3c(%eax) a326d3: 8b 44 24 14 mov 0x14(%esp),%eax a326d7: 89 46 04 mov %eax,0x4(%esi) a326da: 5e pop %esi a326db: 5b pop %ebx a326dc: 5e pop %esi a326dd: c3 ret a326de: 89 f6 mov %esi,%esi 00058d50 0000001c 00032528 FDE cie=0002682c pc=00a326a8..00a326de Augmentation data: 00 00 00 00 DW_CFA_advance_loc: 1 to 00a326a9 DW_CFA_def_cfa_offset: 8 DW_CFA_advance_loc: 1 to 00a326aa DW_CFA_def_cfa_offset: 12 DW_CFA_offset: r3 at cfa-12 DW_CFA_offset: r6 at cfa-8 00058d50 0000001c 00032528 FDE cie=0002682c pc=00a326a8..00a326de LOC CFA r3 r6 ra 00a326a8 r4+4 u u c-4 00a326a9 r4+8 u u c-4 00a326aa r4+12 c-12 c-8 c-4