Wed Nov 1 15:17:02 1995 Manfred Hollstein KS/EF4A 60/1F/110 #40283 <manfred@lts...
authorIan Lance Taylor <ian@airs.com>
Fri, 3 Nov 1995 03:58:09 +0000 (03:58 +0000)
committerIan Lance Taylor <ian@airs.com>
Fri, 3 Nov 1995 03:58:09 +0000 (03:58 +0000)
* configure.in (m88k-motorola-sysv*): New target.
* configure: Rebuild.
* config/te-delta88.h: New file.
* config/obj-coff.c (write_object_file): Use md_do_align if it is
defined.
* config/tc-m88k.h (SUB_SEGMENT_ALIGN): Define.
(md_do_align): Define.
* config/tc-m88k.c: Include "subsegs.h".
(m88k_do_align): New function.

* config/te-delta.h (STRIP_UNDERSCORE): Don't define.
(COFF_NOLOAD_PROBLEM): Define.
(LOCAL_LABELS_DOLLAR, LOCAL_LABELS_FB): Define.

gas/config/.Sanitize
gas/config/tc-m88k.c
gas/config/tc-m88k.h
gas/config/te-delta.h
gas/config/te-delta88.h [new file with mode: 0644]
gas/configure
gas/configure.in

index b65c06368f9a6bf63615042465b4fc99b292a78b..39ad355400e4b37674fb1045ef4a351a01b3eb4e 100644 (file)
@@ -126,6 +126,7 @@ tc-z8k.c
 tc-z8k.h
 te-386bsd.h
 te-delta.h
+te-delta88.h
 te-dpx2.h
 te-generic.h
 te-go32.h
index 586e274eaf602515597037821db0644aad52eb87..e9b22738e728a588be1ce586560ede77f9681009 100644 (file)
@@ -21,6 +21,7 @@ the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307
 
 #include <ctype.h>
 #include "as.h"
+#include "subsegs.h"
 #include "m88k-opcode.h"
 
 struct field_val_assoc
@@ -1428,4 +1429,21 @@ md_pcrel_from (fixp)
   /*NOTREACHED*/
 }
 
+/* When we align the .init section, insert the correct NOP pattern.  */
+
+int
+m88k_do_align (n, fill)
+     int n;
+     const char *fill;
+{
+  if (!fill
+      && strcmp (obj_segment_name (now_seg), ".init") == 0)
+    {
+      static const unsigned char nop_pattern[] = { 0xf4, 0x00, 0x58, 0x00 };
+      frag_align_pattern (n, nop_pattern, sizeof (nop_pattern));
+      return 1;
+    }
+  return 0;
+}
+
 #endif /* M88KCOFF */
index ac8289e9ab9a71db87831f28034c8bc8fcfa1463..f938ee46c7121b19482b06c3ecc6590810334967 100644 (file)
@@ -90,4 +90,15 @@ struct reloc_info_m88k
 /* No special hook needed for symbols.  */
 #define tc_coff_symbol_emit_hook(s)
 
+/* Align sections to a four byte boundary.  */
+#ifndef max
+#define max(a,b)       (((a) > (b)) ? (a) : (b))
+#endif
+#define SUB_SEGMENT_ALIGN(SEG) max (section_alignment[(int) (SEG)], 4)
+
+/* We use a special alignment function to insert the correct nop
+   pattern in .init.  */
+extern int m88k_do_align PARAMS ((int, const char *));
+#define md_do_align(n,fill,l)  if (m88k_do_align(n,fill)) goto l
+
 #endif /* M88KCOFF */
index 4debb28f0efa6aadd8e1bafc5fa5be900101776d..363a004ea6713b807a052ca4c216fdbb6b522bbd 100644 (file)
@@ -1,8 +1,13 @@
-/* Remove leading underscore from the gcc generated symbol names */
-#define STRIP_UNDERSCORE
-
 #define TE_DELTA
 
 #include "obj-format.h"
 
+#define COFF_NOLOAD_PROBLEM    1
+
+/* Added these, because if we don't know what we're targetting we may
+   need an assembler version of libgcc, and that will use local
+   labels.  */
+#define LOCAL_LABELS_DOLLAR    1
+#define LOCAL_LABELS_FB                1
+
 /* end of te-delta.h */
diff --git a/gas/config/te-delta88.h b/gas/config/te-delta88.h
new file mode 100644 (file)
index 0000000..adcd6b7
--- /dev/null
@@ -0,0 +1,13 @@
+/* This file is te-delta88.h.  */
+
+#define TE_DELTA88 1
+
+#define COFF_NOLOAD_PROBLEM    1
+
+/* Added these, because if we don't know what we're targetting we may
+   need an assembler version of libgcc, and that will use local
+   labels.  */
+#define LOCAL_LABELS_DOLLAR    1
+#define LOCAL_LABELS_FB                1
+
+#include "obj-format.h"
index bd805490eed65d27078720ead123ab1ab8c40e36..5929ea213da17a9dd2423e7867c3097575950903 100755 (executable)
@@ -731,6 +731,7 @@ for this_target in $target $canon_targets ; do
                             em=lynx ;;
       m68k-*-netbsd*)       fmt=aout em=nbsd bfd_gas=yes ;;
 
+      m88k-motorola-sysv3*) fmt=coff targ=m88kcoff em=delta88 ;;
       m88k-*-coff*)         fmt=coff targ=m88kcoff ;;
 
       # don't change em like *-*-bsd does
@@ -1245,7 +1246,7 @@ else
   # On the NeXT, cc -E runs the code through the compiler's parser,
   # not just through cpp.
   cat > conftest.$ac_ext <<EOF
-#line 1249 "configure"
+#line 1250 "configure"
 #include "confdefs.h"
 #include <assert.h>
 Syntax Error
@@ -1259,7 +1260,7 @@ else
   rm -rf conftest*
   CPP="${CC-cc} -E -traditional-cpp"
   cat > conftest.$ac_ext <<EOF
-#line 1263 "configure"
+#line 1264 "configure"
 #include "confdefs.h"
 #include <assert.h>
 Syntax Error
@@ -1292,7 +1293,7 @@ if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 1296 "configure"
+#line 1297 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
@@ -1344,7 +1345,7 @@ else
   ac_cv_c_cross=yes
 else
 cat > conftest.$ac_ext <<EOF
-#line 1348 "configure"
+#line 1349 "configure"
 #include "confdefs.h"
 main(){return(0);}
 EOF
@@ -1367,7 +1368,7 @@ if eval "test \"`echo '$''{'ac_cv_header_alloca_h'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 1371 "configure"
+#line 1372 "configure"
 #include "confdefs.h"
 #include <alloca.h>
 int main() { return 0; }
@@ -1398,7 +1399,7 @@ if eval "test \"`echo '$''{'ac_cv_func_alloca'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 1402 "configure"
+#line 1403 "configure"
 #include "confdefs.h"
 
 #ifdef __GNUC__
@@ -1456,7 +1457,7 @@ if eval "test \"`echo '$''{'ac_cv_os_cray'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 1460 "configure"
+#line 1461 "configure"
 #include "confdefs.h"
 #if defined(CRAY) && ! defined(CRAY2)
 webecray
@@ -1484,7 +1485,7 @@ if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 1488 "configure"
+#line 1489 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -1538,7 +1539,7 @@ else
   ac_cv_c_stack_direction=0
 else
 cat > conftest.$ac_ext <<EOF
-#line 1542 "configure"
+#line 1543 "configure"
 #include "confdefs.h"
 find_stack_direction ()
 {
@@ -1580,7 +1581,7 @@ else
   ac_cv_c_inline=no
 for ac_kw in inline __inline__ __inline; do
   cat > conftest.$ac_ext <<EOF
-#line 1584 "configure"
+#line 1585 "configure"
 #include "confdefs.h"
 
 int main() { return 0; }
@@ -1619,7 +1620,7 @@ if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 1623 "configure"
+#line 1624 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -1672,7 +1673,7 @@ if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 1676 "configure"
+#line 1677 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -1725,7 +1726,7 @@ if eval "test \"`echo '$''{'gas_cv_assert_ok'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 1729 "configure"
+#line 1730 "configure"
 #include "confdefs.h"
 #include <assert.h>
 #include <stdio.h>
@@ -1782,7 +1783,7 @@ if eval "test \"`echo '$''{'gas_cv_decl_needed_malloc'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 1786 "configure"
+#line 1787 "configure"
 #include "confdefs.h"
 $gas_test_headers
 int main() { return 0; }
@@ -1818,7 +1819,7 @@ if eval "test \"`echo '$''{'gas_cv_decl_needed_free'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 1822 "configure"
+#line 1823 "configure"
 #include "confdefs.h"
 $gas_test_headers
 int main() { return 0; }
@@ -1857,7 +1858,7 @@ if eval "test \"`echo '$''{'gas_cv_decl_needed_errno'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 1861 "configure"
+#line 1862 "configure"
 #include "confdefs.h"
 
 #ifdef HAVE_ERRNO_H
index a67bf6d6fd2fbe57bb48a9d4bebbf8ac71f7dae0..35bbfd00d6e3fb6696ad5021f0c193c4c55e5dd1 100644 (file)
@@ -204,6 +204,7 @@ changequote([,])dnl
                             em=lynx ;;
       m68k-*-netbsd*)       fmt=aout em=nbsd bfd_gas=yes ;;
 
+      m88k-motorola-sysv3*) fmt=coff targ=m88kcoff em=delta88 ;;
       m88k-*-coff*)         fmt=coff targ=m88kcoff ;;
 
       # don't change em like *-*-bsd does