[PATCH] m68000 ELF + two m68k gas fixes

Jason R Thorpe thorpej@wasabisystems.com
Fri Feb 1 08:35:00 GMT 2002


Per Nick's request, I'm posting an updated version of Matt's patch
(some of the changes are no longer necessary), as Matt's copyright
assignment papers have been processed.
 
OK to commit?
 
 
        [ for bfd/ChangeLog ]
2002-02-01  Matt Fredette  <fredette@netbsd.org>
 
        * elf32-m68k.c (elf32_m68k_print_private_bfd_data): Recognize
        EF_M68000.
 
        [ for binutils/ChangeLog ]
2002-02-01  Matt Fredette  <fredette@netbsd.org>
 
        * readelf.c (get_machine_flags): Recognize EF_M68000.
 
        [ for gas/ChangeLog ]
2002-02-01  Matt Fredette  <fredette@netbsd.org>
 
        * config/tc-m68k.c (md_show_usage): No longer display a
        hard-coded "68020" for the default CPU, instead display the
        canonical name of the true, configured default CPU.
        (m68k_elf_final_processing): Mark objects for sub-68020
        CPUs with the new EF_M68000 flag.
 
        [ for include/elf/ChangeLog ]
2002-02-01  Matt Fredette  <fredette@netbsd.org>
 
        * m68k.h (EF_M68000): Define.

-- 
        -- Jason R. Thorpe <thorpej@wasabisystems.com>
-------------- next part --------------
Index: bfd/elf32-m68k.c
===================================================================
RCS file: /cvs/src/src/bfd/elf32-m68k.c,v
retrieving revision 1.34
diff -c -r1.34 elf32-m68k.c
*** elf32-m68k.c	2001/12/18 17:59:58	1.34
--- elf32-m68k.c	2002/02/01 07:08:47
***************
*** 412,417 ****
--- 412,420 ----
    if (elf_elfheader (abfd)->e_flags & EF_CPU32)
      fprintf (file, _ (" [cpu32]"));
  
+   if (elf_elfheader (abfd)->e_flags & EF_M68000)
+     fprintf (file, _ (" [m68000]"));
+ 
    fputc ('\n', file);
  
    return true;
Index: binutils/readelf.c
===================================================================
RCS file: /cvs/src/src/binutils/readelf.c,v
retrieving revision 1.148
diff -c -r1.148 readelf.c
*** readelf.c	2002/01/23 16:12:56	1.148
--- readelf.c	2002/02/01 07:08:54
***************
*** 1629,1634 ****
--- 1629,1636 ----
          case EM_68K:
            if (e_flags & EF_CPU32)
              strcat (buf, ", cpu32");
+ 	  if (e_flags & EF_M68000)
+ 	    strcat (buf, ", m68000");
            break;
  
  	case EM_PPC:
Index: gas/config/tc-m68k.c
===================================================================
RCS file: /cvs/src/src/gas/config/tc-m68k.c,v
retrieving revision 1.36
diff -c -r1.36 tc-m68k.c
*** tc-m68k.c	2002/01/06 12:15:45	1.36
--- tc-m68k.c	2002/02/01 07:08:59
***************
*** 6916,6931 ****
  md_show_usage (stream)
       FILE *stream;
  {
    fprintf (stream, _("\
  680X0 options:\n\
  -l			use 1 word for refs to undefined symbols [default 2]\n\
  -m68000 | -m68008 | -m68010 | -m68020 | -m68030 | -m68040 | -m68060 |\n\
  -m68302 | -m68331 | -m68332 | -m68333 | -m68340 | -m68360 | -mcpu32 |\n\
  -m5200  | -m5202  | -m5204  | -m5206  | -m5206e | -m5307  | -m5407\n\
! 			specify variant of 680X0 architecture [default 68020]\n\
  -m68881 | -m68882 | -mno-68881 | -mno-68882\n\
  			target has/lacks floating-point coprocessor\n\
! 			[default yes for 68020, 68030, and cpu32]\n"));
    fprintf (stream, _("\
  -m68851 | -mno-68851\n\
  			target has/lacks memory-management unit coprocessor\n\
--- 6916,6955 ----
  md_show_usage (stream)
       FILE *stream;
  {
+   const char *default_cpu = TARGET_CPU;
+   int default_arch, i;
+ 
+   /* Get the canonical name for the default target CPU. */
+   if (*default_cpu == 'm')
+     default_cpu++;
+   for (i = 0; i < n_archs; i++)
+     {
+       if (strcasecmp (default_cpu, archs[i].name) == 0)
+ 	{
+ 	  default_arch = archs[i].arch;
+ 	  for (i = 0; i < n_archs; i++)
+ 	    {
+ 	      if (archs[i].arch == default_arch
+ 		  && !archs[i].alias)
+ 		{
+ 		  default_cpu = archs[i].name;
+ 		  break;
+ 		}
+ 	    }
+ 	}
+     }
+ 
    fprintf (stream, _("\
  680X0 options:\n\
  -l			use 1 word for refs to undefined symbols [default 2]\n\
  -m68000 | -m68008 | -m68010 | -m68020 | -m68030 | -m68040 | -m68060 |\n\
  -m68302 | -m68331 | -m68332 | -m68333 | -m68340 | -m68360 | -mcpu32 |\n\
  -m5200  | -m5202  | -m5204  | -m5206  | -m5206e | -m5307  | -m5407\n\
! 			specify variant of 680X0 architecture [default %s]\n\
  -m68881 | -m68882 | -mno-68881 | -mno-68882\n\
  			target has/lacks floating-point coprocessor\n\
! 			[default yes for 68020, 68030, and cpu32]\n"),
!           default_cpu);
    fprintf (stream, _("\
  -m68851 | -mno-68851\n\
  			target has/lacks memory-management unit coprocessor\n\
***************
*** 7118,7122 ****
--- 7142,7149 ----
     /* Set file-specific flags if this is a cpu32 processor */
     if (cpu_of_arch (current_architecture) & cpu32)
       elf_elfheader (stdoutput)->e_flags |= EF_CPU32;
+    else if ((cpu_of_arch (current_architecture) & m68000up)
+ 	    && !(cpu_of_arch (current_architecture) & m68020up))
+      elf_elfheader (stdoutput)->e_flags |= EF_M68000;
  }
  #endif
Index: include/elf/m68k.h
===================================================================
RCS file: /cvs/src/src/include/elf/m68k.h,v
retrieving revision 1.6
diff -c -r1.6 m68k.h
*** m68k.h	2001/03/14 02:27:44	1.6
--- m68k.h	2002/02/01 07:09:02
***************
*** 53,57 ****
--- 53,58 ----
  END_RELOC_NUMBERS (R_68K_max)
  
  #define EF_CPU32    0x00810000
+ #define EF_M68000   0x01000000
  
  #endif


More information about the Binutils mailing list