This is the mail archive of the binutils@sourceware.org mailing list for the binutils 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]

Re: Can't set architecture to m32c on m32c-elf-gdb.


Hi Masaki,

Please try 'print $dma0' on GDB (w/o my patch).
dma0 is a register supported by m32c only.
So the result of 'print $dma0' is ...
In case m32c, it should be 'No registers.'
In case m16c, it should be ''void' since it doesn't have dma0 register.

Thank you - that was the extra information that I needed in order to be able to diagnose this problem.


Please try out the attached patch and let me know if it works for you.

By the way, this has exposed a problem with GDB's set architecture command - it is not set up to allow the "ARCH:MACH" notation that is accepted by the BFD library. Maybe someone will want to fix this one day...

Cheers
  Nick

Index: bfd/cpu-m32c.c
===================================================================
RCS file: /cvs/src/src/bfd/cpu-m32c.c,v
retrieving revision 1.4
diff -c -3 -p -r1.4 cpu-m32c.c
*** bfd/cpu-m32c.c	2 Sep 2009 07:18:36 -0000	1.4
--- bfd/cpu-m32c.c	7 Jan 2010 15:44:35 -0000
***************
*** 22,27 ****
--- 22,40 ----
  #include "bfd.h"
  #include "libbfd.h"
  
+ /* Like bfd_default_scan but if the string is just "m32c" then
+    skip the m16c architecture.  */
+ 
+ static bfd_boolean
+ m32c_scan (const bfd_arch_info_type * info, const char * string)
+ {
+   if (strcmp (string, "m32c") == 0
+       && info->mach == bfd_mach_m16c)
+     return FALSE;
+ 
+   return bfd_default_scan (info, string);
+ }
+ 
  static const bfd_arch_info_type arch_info_struct[] =
  {
    {
*************** static const bfd_arch_info_type arch_inf
*** 35,41 ****
      3,				/* section align power */
      FALSE,			/* the default ? */
      bfd_default_compatible,	/* architecture comparison fn */
!     bfd_default_scan,		/* string to architecture convert fn */
      NULL			/* next in list */
    },
  };
--- 48,54 ----
      3,				/* section align power */
      FALSE,			/* the default ? */
      bfd_default_compatible,	/* architecture comparison fn */
!     m32c_scan,			/* string to architecture convert fn */
      NULL			/* next in list */
    },
  };
*************** const bfd_arch_info_type bfd_m32c_arch =
*** 52,57 ****
    4,				/* Section align power.  */
    TRUE,				/* The default ?  */
    bfd_default_compatible,	/* Architecture comparison fn.  */
!   bfd_default_scan,		/* String to architecture convert fn.  */
    &arch_info_struct[0],		/* Next in list.  */
  };
--- 65,70 ----
    4,				/* Section align power.  */
    TRUE,				/* The default ?  */
    bfd_default_compatible,	/* Architecture comparison fn.  */
!   m32c_scan,			/* String to architecture convert fn.  */
    &arch_info_struct[0],		/* Next in list.  */
  };

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