This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug bootstrap/55289] darwin bootstrap fails due to missing libsanitizer/interception/mach_override directory and files


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55289

Alexander Potapenko <glider at google dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |glider at google dot com

--- Comment #28 from Alexander Potapenko <glider at google dot com> 2012-11-14 16:13:47 UTC ---
===========================================================
t.o:     file format mach-o-x86-64


Disassembly of section .text:

0000000000000000 <_foo>:
   0:    55                       push   %rbp
   1:    48 89 e5                 mov    %rsp,%rbp
   4:    90                       nop
   5:    90                       nop
   6:    90                       nop
   7:    90                       nop
   8:    48 8d 05 11 4f 0b 00     lea    0xb4f11(%rip),%rax        # b4f20
<_foo.eh+0xb4ee8>
   f:    53                       push   %rbx
  10:    48 8d 5f e0              lea    -0x20(%rdi),%rbx
  14:    48 89 77 90              mov    %rsi,-0x70(%rdi)
  18:    5d                       pop    %rbp
  19:    c3                       retq   
===========================================================

mach_override must be choking on the lea instruction.
The easiest way to handle it is to add "48 8d 05 00 00 00 00" to the list of
instructions and mark it as "lea $imm(%rip),%rax". You can also dive into the
opcodes a bit and mask the bits that select the destination register.
I'll take a look at mach_override.c code to suggest the actual patch.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]