From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cagney To: Jiri Smid Cc: gdb@sources.redhat.com Subject: Re: multiarch x86_64 target Date: Wed, 29 Aug 2001 08:04:00 -0000 Message-id: <3B8D0480.9020902@cygnus.com> References: X-SW-Source: 2001-08/msg00218.html > Hello, > > I am converting x86_64 target to multiarch as you wanted. The bfd > architecture for both i386 and x86_64 is bfd_arch_i386. And these > targets are diferentiated by machine type. > Due to the i386 target is not yet multiarched I have a problem how to register > x86_64 in gdb. > I have created function i386_gdbarch_init which behaves that if target > vector for machine type differs from bfd_mach_x86_64 should be created > then internal_error(Not yet implemented) is invoked. > But when the gdb starts up then there is created target vector for default > machine type - bfd_mach_i386_i386. Thus gdb can't run. In x86-64-tdep.c? > Do you have any ideas how to solve it? Ulgh! For the short term, I'd just ignore it - return the x86-64 vector regardless. The one thing I wouldn't be trying to do is trying to multi-arch the x86. I should also note a known bug related to this (it won't affect your code). The architecture selection mechanism currently doesn't handle multiple registrants for the same architecture (eg raw x86 vs x86-linux). x86 vs x86_64 is going to be another example of this. Once the x86 is multi-arched a solution will be needed. Andrew