On Sat, Feb 12, 2011 at 10:08:26AM +0200, Blue Swirl wrote: > On Sat, Feb 12, 2011 at 12:27 AM, Andi Kleen <a...@linux.intel.com> wrote: > > > >> I don't have any problems running a statically linked x86_64 > >> helloworld program in an i386 chroot. Dynamically linked programs try > >> to use wrong libraries, but at least running > >> /lib64/ld-linux-x86-64.so.2 directly works. > > > > static binary segfaults too. I wonder if it's some setup on my system. > > > > I tried disabling the usual suspects like address randomization, but that > > didn't change things. > > Or could it be the compiler (gcc 4.5)? > > I don't think so, but that could be ruled out. What happens if you try > to run some known ld-linux-x86-64.so.2?
It seems to be something with the glibc on the fedora box. If I copy an static executable from a older suse it works on the fedora system. I ran into some issues replacing ld-linux though, so I didn't test the fedora gcc output with a different glibc. > > The last blocks of qemu.log produced by using -d in_asm,out_asm could > reveal something, please try. Is that enough? Don't see anything obvious 0x00000040008117e7: shr $0x3,%ecx 0x00000040008117ea: test $0x4,%dl 0x00000040008117ed: mov %ecx,%ecx 0x00000040008117ef: rep stos %rax,%es:(%rdi) OUT: [size=184] 0x602104c0: mov 0x10(%r14),%rbp 0x602104c4: mov %ebp,%ebp 0x602104c6: xor %ebx,%ebx 0x602104c8: mov %ebx,%ebx 0x602104ca: mov %ebp,%ebp 0x602104cc: shr $0x3,%rbp 0x602104d0: mov %ebp,%ebp 0x602104d2: mov 0x10(%r14),%r12 0x602104d6: and $0x4,%r12d 0x602104da: mov %ebp,%ebp 0x602104dc: mov %rbp,%r13 0x602104df: mov $0x16,%r15d 0x602104e5: mov %r15d,0xa0(%r14) 0x602104ec: mov %r12,0x98(%r14) 0x602104f3: mov %rbx,(%r14) 0x602104f6: mov %rbp,0x8(%r14) 0x602104fa: test %r13,%r13 0x602104fd: jne 0x60210528 0x60210503: jmpq 0x60210508 0x60210508: mov $0x40008117f2,%rbp 0x60210512: mov %rbp,0x80(%r14) 0x60210519: mov $0x7fe2d7c139e1,%rax 0x60210523: jmpq 0x622324ce 0x60210528: mov (%r14),%rbp 0x6021052b: mov 0x38(%r14),%rbx 0x6021052f: mov %rbp,(%rbx) 0x60210532: movslq 0xa4(%r14),%rbp 0x60210539: shl $0x3,%rbp 0x6021053d: mov 0x38(%r14),%rbx 0x60210541: add %rbp,%rbx 0x60210544: mov 0x8(%r14),%rbp 0x60210548: dec %rbp 0x6021054b: mov %rbp,0x8(%r14) 0x6021054f: mov %rbx,0x38(%r14) 0x60210553: jmpq 0x60210558 0x60210558: mov $0x40008117ef,%rbp 0x60210562: mov %rbp,0x80(%r14) 0x60210569: mov $0x7fe2d7c139e0,%rax 0x60210573: jmpq 0x622324ce ---------------- IN: 0x00000040008117ef: rep stos %rax,%es:(%rdi) OUT: [size=130] 0x60210580: mov 0x8(%r14),%rbp 0x60210584: test %rbp,%rbp 0x60210587: jne 0x602105b2 0x6021058d: jmpq 0x60210592 0x60210592: mov $0x40008117f2,%rbp 0x6021059c: mov %rbp,0x80(%r14) 0x602105a3: mov $0x7fe2d7c13a59,%rax 0x602105ad: jmpq 0x622324ce 0x602105b2: mov (%r14),%rbp 0x602105b5: mov 0x38(%r14),%rbx 0x602105b9: mov %rbp,(%rbx) 0x602105bc: movslq 0xa4(%r14),%rbp 0x602105c3: shl $0x3,%rbp 0x602105c7: mov 0x38(%r14),%rbx 0x602105cb: add %rbp,%rbx 0x602105ce: mov 0x8(%r14),%rbp 0x602105d2: dec %rbp 0x602105d5: mov %rbp,0x8(%r14) 0x602105d9: mov %rbx,0x38(%r14) 0x602105dd: jmpq 0x602105e2 0x602105e2: mov $0x40008117ef,%rbp 0x602105ec: mov %rbp,0x80(%r14) 0x602105f3: mov $0x7fe2d7c13a58,%rax 0x602105fd: jmpq 0x622324ce ---------------- IN: 0x00000040008117f2: jne 0x4000811850 OUT: [size=104] 0x60210610: mov 0xa0(%r14),%edi 0x60210617: callq 0x60095060 0x6021061c: mov %eax,%ebp 0x6021061e: shr $0x6,%rbp 0x60210622: and $0x1,%ebp 0x60210625: test %rbp,%rbp 0x60210628: je 0x60210653 0x6021062e: jmpq 0x60210633 0x60210633: mov $0x40008117f4,%rbp 0x6021063d: mov %rbp,0x80(%r14) 0x60210644: mov $0x7fe2d7c13ad0,%rax 0x6021064e: jmpq 0x622324ce 0x60210653: jmpq 0x60210658 0x60210658: mov $0x4000811850,%rbp 0x60210662: mov %rbp,0x80(%r14) 0x60210669: mov $0x7fe2d7c13ad1,%rax 0x60210673: jmpq 0x622324ce ---------------- IN: 0x00000040008117f4: test $0x2,%dl 0x00000040008117f7: jne 0x4000811838 OUT: [size=116] 0x60210680: mov 0x10(%r14),%rbp 0x60210684: and $0x2,%ebp 0x60210687: mov %rbp,%rbx 0x6021068a: movzbl %bl,%ebx 0x6021068d: mov $0x16,%r12d 0x60210693: mov %r12d,0xa0(%r14) 0x6021069a: mov %rbp,0x98(%r14) 0x602106a1: test %rbx,%rbx 0x602106a4: jne 0x602106cf 0x602106aa: jmpq 0x602106af 0x602106af: mov $0x40008117f9,%rbp 0x602106b9: mov %rbp,0x80(%r14) 0x602106c0: mov $0x7fe2d7c13b48,%rax 0x602106ca: jmpq 0x622324ce 0x602106cf: jmpq 0x602106d4 0x602106d4: mov $0x4000811838,%rbp 0x602106de: mov %rbp,0x80(%r14) 0x602106e5: mov $0x7fe2d7c13b49,%rax 0x602106ef: jmpq 0x622324ce ---------------- IN: 0x00000040008117f9: and $0x1,%edx 0x00000040008117fc: jne 0x4000811830 OUT: [size=122] 0x60210700: mov 0x10(%r14),%rbp 0x60210704: and $0x1,%ebp 0x60210707: mov %ebp,%ebx 0x60210709: mov %rbp,%r12 0x6021070c: mov %r12d,%r12d 0x6021070f: mov $0x18,%r13d 0x60210715: mov %r13d,0xa0(%r14) 0x6021071c: mov %rbp,0x98(%r14) 0x60210723: mov %rbx,0x10(%r14) 0x60210727: test %r12,%r12 0x6021072a: jne 0x60210755 0x60210730: jmpq 0x60210735 0x60210735: mov $0x40008117fe,%rbp 0x6021073f: mov %rbp,0x80(%r14) 0x60210746: mov $0x7fe2d7c13bc0,%rax 0x60210750: jmpq 0x622324ce 0x60210755: jmpq 0x6021075a 0x6021075a: mov $0x4000811830,%rbp 0x60210764: mov %rbp,0x80(%r14) 0x6021076b: mov $0x7fe2d7c13bc1,%rax 0x60210775: jmpq 0x622324ce ---------------- IN: 0x00000040008117fe: mov 0x20f71b(%rip),%rdi # 0x4000a20f20 0x0000004000811805: mov $0x10,%esi 0x000000400081180a: lea 0xe(%rdi),%r12 0x000000400081180e: add $0x10,%rdi 0x0000004000811812: callq 0x4000801af0 OUT: [size=128] 0x60210780: mov $0x4000a20f20,%rbp 0x6021078a: mov 0x0(%rbp),%rbp 0x6021078e: mov $0x10,%ebx 0x60210793: mov %ebx,%ebx 0x60210795: mov %rbp,%r12 0x60210798: add $0xe,%r12 0x6021079c: add $0x10,%rbp 0x602107a0: mov %rbp,%r13 0x602107a3: mov 0x20(%r14),%r15 0x602107a7: add $0xfffffffffffffff8,%r15 0x602107ab: mov $0x4000811817,%r10 0x602107b5: mov $0x10,%r11d 0x602107bb: mov %r11,0x90(%r14) 0x602107c2: mov %rbp,0x98(%r14) 0x602107c9: mov %rbx,0x30(%r14) 0x602107cd: mov %r13,0x38(%r14) 0x602107d1: mov %r12,0x60(%r14) 0x602107d5: mov %r10,(%r15) 0x602107d8: mov $0x4000801af0,%rbp 0x602107e2: mov %rbp,0x80(%r14) 0x602107e9: mov $0x9,%ebp 0x602107ee: mov %ebp,0xa0(%r14) 0x602107f5: mov %r15,0x20(%r14) 0x602107f9: xor %eax,%eax 0x602107fb: jmpq 0x622324ce ---------------- IN: 0x0000004000811817: test %rax,%rax 0x000000400081181a: je 0x4000811868 OUT: [size=111] 0x60210800: mov (%r14),%rbp 0x60210803: mov (%r14),%rbx 0x60210806: and %rbx,%rbp 0x60210809: mov $0x19,%ebx 0x6021080e: mov %ebx,0xa0(%r14) 0x60210815: mov %rbp,0x98(%r14) 0x6021081c: test %rbp,%rbp 0x6021081f: je 0x6021084a 0x60210825: jmpq 0x6021082a 0x6021082a: mov $0x400081181c,%rbp 0x60210834: mov %rbp,0x80(%r14) 0x6021083b: mov $0x7fe2d7c13cb0,%rax 0x60210845: jmpq 0x622324ce 0x6021084a: jmpq 0x6021084f 0x6021084f: mov $0x4000811868,%rbp 0x60210859: mov %rbp,0x80(%r14) 0x60210860: mov $0x7fe2d7c13cb1,%rax 0x6021086a: jmpq 0x622324ce ---------------- IN: 0x000000400081181c: mov %r12,(%rax) 0x000000400081181f: add $0x10,%rax 0x0000004000811823: mov %rax,0x8(%rbx) 0x0000004000811827: mov %rbx,%rax 0x000000400081182a: pop %rbx 0x000000400081182b: pop %rbp 0x000000400081182c: pop %r12 0x000000400081182e: retq OUT: [size=180] 0x60210870: mov (%r14),%rbp 0x60210873: mov 0x60(%r14),%rbx 0x60210877: mov %rbx,0x0(%rbp) 0x6021087b: mov (%r14),%rbp 0x6021087e: add $0x10,%rbp 0x60210882: mov %rbp,%rbx 0x60210885: mov 0x18(%r14),%r12 0x60210889: add $0x8,%r12 0x6021088d: mov %rbx,%r13 0x60210890: mov $0x10,%r15d 0x60210896: mov %r15,0x90(%r14) 0x6021089d: mov %rbp,0x98(%r14) 0x602108a4: mov %rbx,(%r14) 0x602108a7: mov %r13,(%r12) 0x602108ab: mov 0x18(%r14),%rbp 0x602108af: mov 0x20(%r14),%rbx 0x602108b3: mov %rbp,(%r14) 0x602108b6: mov (%rbx),%rbp 0x602108b9: mov 0x20(%r14),%rbx 0x602108bd: add $0x8,%rbx 0x602108c1: mov %rbx,%r12 0x602108c4: mov %rbp,0x18(%r14) 0x602108c8: mov %rbx,0x20(%r14) 0x602108cc: mov (%r12),%rbp 0x602108d0: mov 0x20(%r14),%rbx 0x602108d4: add $0x8,%rbx 0x602108d8: mov %rbx,%r12 0x602108db: mov %rbx,0x20(%r14) 0x602108df: mov %rbp,0x28(%r14) 0x602108e3: mov (%r12),%rbp 0x602108e7: mov 0x20(%r14),%rbx 0x602108eb: add $0x8,%rbx 0x602108ef: mov %rbx,%r12 0x602108f2: mov %rbx,0x20(%r14) 0x602108f6: mov %rbp,0x60(%r14) 0x602108fa: mov (%r12),%rbp 0x602108fe: mov 0x20(%r14),%rbx 0x60210902: add $0x8,%rbx 0x60210906: mov %rbp,0x80(%r14) 0x6021090d: mov $0x9,%ebp 0x60210912: mov %ebp,0xa0(%r14) 0x60210919: mov %rbx,0x20(%r14) 0x6021091d: xor %eax,%eax 0x6021091f: jmpq 0x622324ce ---------------- IN: 0x0000004000802fb0: test %rax,%rax 0x0000004000802fb3: mov %rax,%rsi 0x0000004000802fb6: je 0x4000802ff0 OUT: [size=119] 0x60210930: mov (%r14),%rbp 0x60210933: mov (%r14),%rbx 0x60210936: and %rbx,%rbp 0x60210939: mov (%r14),%rbx 0x6021093c: mov $0x19,%r12d 0x60210942: mov %r12d,0xa0(%r14) 0x60210949: mov %rbp,0x98(%r14) 0x60210950: mov %rbx,0x30(%r14) 0x60210954: test %rbp,%rbp 0x60210957: je 0x60210982 0x6021095d: jmpq 0x60210962 0x60210962: mov $0x4000802fb8,%rbp 0x6021096c: mov %rbp,0x80(%r14) 0x60210973: mov $0x7fe2d7c13da0,%rax 0x6021097d: jmpq 0x622324ce 0x60210982: jmpq 0x60210987 0x60210987: mov $0x4000802ff0,%rbp 0x60210991: mov %rbp,0x80(%r14) 0x60210998: mov $0x7fe2d7c13da1,%rax 0x602109a2: jmpq 0x622324ce ---------------- IN: 0x0000004000802fb8: mov 0x8(%rax),%rax 0x0000004000802fbc: mov $0x1002,%edi 0x0000004000802fc1: mov %rax,0x21df88(%rip) # 0x4000a20f50 0x0000004000802fc8: mov %rsi,(%rsi) 0x0000004000802fcb: mov $0x9e,%eax 0x0000004000802fd0: mov %rsi,0x10(%rsi) 0x0000004000802fd4: syscall OUT: [size=113] 0x602109b0: mov (%r14),%rbp 0x602109b3: add $0x8,%rbp 0x602109b7: mov 0x0(%rbp),%rbp 0x602109bb: mov $0x1002,%ebx 0x602109c0: mov %ebx,%ebx 0x602109c2: mov %rbp,%r12 0x602109c5: mov $0x4000a20f50,%r13 0x602109cf: mov %rbp,(%r14) 0x602109d2: mov %rbx,0x38(%r14) 0x602109d6: mov %r12,0x0(%r13) 0x602109da: mov 0x30(%r14),%rbp 0x602109de: mov 0x30(%r14),%rbx 0x602109e2: mov %rbx,0x0(%rbp) 0x602109e6: mov $0x9e,%ebp 0x602109eb: mov %ebp,%ebp 0x602109ed: mov 0x30(%r14),%rbx 0x602109f1: add $0x10,%rbx 0x602109f5: mov 0x30(%r14),%r12 0x602109f9: mov %rbp,(%r14) 0x602109fc: mov %r12,(%rbx) 0x602109ff: mov $0x4000802fd4,%rbp 0x60210a09: mov %rbp,0x80(%r14) 0x60210a10: mov $0x2,%edi 0x60210a15: callq 0x60081ac0 0x60210a1a: xor %eax,%eax 0x60210a1c: jmpq 0x622324ce ---------------- IN: 0x0000004000802fd6: test %eax,%eax 0x0000004000802fd8: jne 0x400080300f OUT: [size=104] 0x60210a30: mov (%r14),%rbp 0x60210a33: mov (%r14),%rbx 0x60210a36: and %rbx,%rbp 0x60210a39: mov %rbp,%rbx 0x60210a3c: mov %ebx,%ebx 0x60210a3e: mov $0x18,%r12d 0x60210a44: mov %r12d,0xa0(%r14) 0x60210a4b: mov %rbp,0x98(%r14) 0x60210a52: test %rbx,%rbx 0x60210a55: jne 0x60210a80 0x60210a5b: jmpq 0x60210a60 0x60210a60: mov $0x4000802fda,%rbp 0x60210a6a: mov %rbp,0x80(%r14) 0x60210a71: mov $0x7fe2d7c13e90,%rax 0x60210a7b: jmpq 0x622324ce 0x60210a80: mov $0x400080300f,%rbp 0x60210a8a: mov %rbp,0x80(%r14) 0x60210a91: xor %eax,%eax 0x60210a93: jmpq 0x622324ce ---------------- IN: 0x0000004000802fda: movb $0x1,0x21e077(%rip) # 0x4000a21058 0x0000004000802fe1: jmpq 0x4000802f4b OUT: [size=55] 0x60210aa0: mov $0x1,%ebp 0x60210aa5: mov $0x4000a21058,%rbx 0x60210aaf: mov %bpl,(%rbx) 0x60210ab2: jmpq 0x60210ab7 0x60210ab7: mov $0x4000802f4b,%rbp 0x60210ac1: mov %rbp,0x80(%r14) 0x60210ac8: mov $0x7fe2d7c13f08,%rax 0x60210ad2: jmpq 0x622324ce ---------------- IN: 0x0000004000802f4b: mov %rsi,%rax 0x0000004000802f4e: pop %rbx 0x0000004000802f4f: retq OUT: [size=63] 0x60210ae0: mov 0x30(%r14),%rbp 0x60210ae4: mov 0x20(%r14),%rbx 0x60210ae8: mov %rbp,(%r14) 0x60210aeb: mov (%rbx),%rbp 0x60210aee: mov 0x20(%r14),%rbx 0x60210af2: add $0x8,%rbx 0x60210af6: mov %rbx,%r12 0x60210af9: mov %rbp,0x18(%r14) 0x60210afd: mov %rbx,0x20(%r14) 0x60210b01: mov (%r12),%rbp 0x60210b05: mov 0x20(%r14),%rbx 0x60210b09: add $0x8,%rbx 0x60210b0d: mov %rbp,0x80(%r14) 0x60210b14: mov %rbx,0x20(%r14) 0x60210b18: xor %eax,%eax 0x60210b1a: jmpq 0x622324ce ---------------- IN: 0x0000004000804c7c: mov %rax,-0x100(%rbp) 0x0000004000804c83: jmpq 0x4000803f77 OUT: [size=42] 0x60210b20: mov 0x28(%r14),%rbp 0x60210b24: add $0xffffffffffffff00,%rbp 0x60210b2b: mov (%r14),%rbx 0x60210b2e: mov %rbx,0x0(%rbp) 0x60210b32: mov $0x4000803f77,%rbp 0x60210b3c: mov %rbp,0x80(%r14) 0x60210b43: xor %eax,%eax 0x60210b45: jmpq 0x622324ce ---------------- IN: 0x0000004000803f77: cmpq $0x0,0x21d0d1(%rip) # 0x4000a21050 0x0000004000803f7f: jne 0x4000803fc4 OUT: [size=129] 0x60210b50: mov $0x4000a21050,%rbp 0x60210b5a: mov 0x0(%rbp),%rbp 0x60210b5e: sub $0x0,%rbp 0x60210b62: mov $0x11,%ebx 0x60210b67: mov %ebx,0xa0(%r14) 0x60210b6e: xor %ebx,%ebx 0x60210b70: mov %rbx,0x90(%r14) 0x60210b77: mov %rbp,0x98(%r14) 0x60210b7e: test %rbp,%rbp 0x60210b81: jne 0x60210bac 0x60210b87: jmpq 0x60210b8c 0x60210b8c: mov $0x4000803f81,%rbp 0x60210b96: mov %rbp,0x80(%r14) 0x60210b9d: mov $0x7fe2d7c14070,%rax 0x60210ba7: jmpq 0x622324ce 0x60210bac: jmpq 0x60210bb1 0x60210bb1: mov $0x4000803fc4,%rbp 0x60210bbb: mov %rbp,0x80(%r14) 0x60210bc2: mov $0x7fe2d7c14071,%rax 0x60210bcc: jmpq 0x622324ce ---------------- IN: 0x0000004000803f81: mov 0x21be58(%rip),%rax # 0x4000a1fde0 0x0000004000803f88: mov (%rax),%rdx 0x0000004000803f8b: mov %rdx,-0x78(%rbp) 0x0000004000803f8f: mov %rdx,%fs:0x28 0x0000004000803f98: cmpl $0x0,0x21bcd5(%rip) # 0x4000a1fc74 0x0000004000803f9f: je 0x4000803fb9 OUT: [size=198] 0x60210be0: mov $0x4000a1fde0,%rbp 0x60210bea: mov 0x0(%rbp),%rbp 0x60210bee: mov %rbp,%rbx 0x60210bf1: mov %rbp,(%r14) 0x60210bf4: mov (%rbx),%rbp 0x60210bf7: mov 0x28(%r14),%rbx 0x60210bfb: add $0xffffffffffffff88,%rbx 0x60210bff: mov %rbp,%r12 0x60210c02: mov %rbp,0x10(%r14) 0x60210c06: mov %r12,(%rbx) 0x60210c09: mov 0x118(%r14),%rbp 0x60210c10: mov $0x28,%ebx 0x60210c15: add %rbp,%rbx 0x60210c18: mov 0x10(%r14),%rbp 0x60210c1c: mov %rbp,(%rbx) 0x60210c1f: mov $0x4000a1fc74,%rbp 0x60210c29: mov 0x0(%rbp),%ebp 0x60210c2c: sub $0x0,%rbp 0x60210c30: mov %rbp,%rbx 0x60210c33: mov %ebx,%ebx 0x60210c35: mov $0x10,%r12d 0x60210c3b: mov %r12d,0xa0(%r14) 0x60210c42: xor %r12d,%r12d 0x60210c45: mov %r12,0x90(%r14) 0x60210c4c: mov %rbp,0x98(%r14) 0x60210c53: test %rbx,%rbx 0x60210c56: je 0x60210c81 0x60210c5c: jmpq 0x60210c61 0x60210c61: mov $0x4000803fa1,%rbp 0x60210c6b: mov %rbp,0x80(%r14) 0x60210c72: mov $0x7fe2d7c140e8,%rax 0x60210c7c: jmpq 0x622324ce 0x60210c81: jmpq 0x60210c86 0x60210c86: mov $0x4000803fb9,%rbp 0x60210c90: mov %rbp,0x80(%r14) 0x60210c97: mov $0x7fe2d7c140e9,%rax 0x60210ca1: jmpq 0x622324ce ---------------- IN: 0x0000004000803f81: mov 0x21be58(%rip),%rax # 0x4000a1fde0 0x0000004000803f88: mov (%rax),%rdx 0x0000004000803f8b: mov %rdx,-0x78(%rbp) 0x0000004000803f8f: mov %rdx,%fs:0x28 0x0000004000803f98: cmpl $0x0,0x21bcd5(%rip) # 0x4000a1fc74 0x0000004000803f9f: je 0x4000803fb9