* coff-i386.c (coff_i386_is_local_label_name): New static function
authorIan Lance Taylor <ian@airs.com>
Mon, 7 Jul 1997 20:42:48 +0000 (20:42 +0000)
committerIan Lance Taylor <ian@airs.com>
Mon, 7 Jul 1997 20:42:48 +0000 (20:42 +0000)
if TARGET_UNDERSCORE.
(coff_bfd_is_local_label_name): Define if TARGET_UNDERSCORE.
(i386coff_vec): Add SEC_CODE and SEC_DATA to section_flags.

bfd/ChangeLog
bfd/coff-i386.c

index 8303f0dac868749ebab311e429747f3b69ab6bd5..54b984279a8b9bed2fc5f92577343b8bb1ae5ada 100644 (file)
@@ -1,3 +1,10 @@
+Mon Jul  7 16:41:20 1997  Ian Lance Taylor  <ian@cygnus.com>
+
+       * coff-i386.c (coff_i386_is_local_label_name): New static function
+       if TARGET_UNDERSCORE.
+       (coff_bfd_is_local_label_name): Define if TARGET_UNDERSCORE.
+       (i386coff_vec): Add SEC_CODE and SEC_DATA to section_flags.
+
 Mon Jun 30 14:29:26 1997  Ian Lance Taylor  <ian@cygnus.com>
 
        * elf32-m68k.c (howto_table): Use complain_overflow_bitfield, not
index 04de7514a007c0bba9e2b01c3e0787976944e54a..b6b6257639b02993cda2c72cc5241ae78d18e141 100644 (file)
@@ -417,9 +417,30 @@ coff_i386_reloc_type_lookup (abfd, code)
     }
 }
 
+#define coff_rtype_to_howto coff_i386_rtype_to_howto
 
+#ifdef TARGET_UNDERSCORE
 
-#define coff_rtype_to_howto coff_i386_rtype_to_howto
+/* If i386 gcc uses underscores for symbol names, then it does not use
+   a leading dot for local labels, so if TARGET_UNDERSCORE is defined
+   we treat all symbols starting with L as local.  */
+
+static boolean coff_i386_is_local_label_name PARAMS ((bfd *, const char *));
+
+static boolean
+coff_i386_is_local_label_name (abfd, name)
+     bfd *abfd;
+     const char *name;
+{
+  if (name[0] == 'L')
+    return true;
+
+  return _bfd_coff_is_local_label_name (abfd, name);
+}
+
+#define coff_bfd_is_local_label_name coff_i386_is_local_label_name
+
+#endif /* TARGET_UNDERSCORE */
 
 #include "coffcode.h"
 
@@ -507,9 +528,11 @@ const bfd_target
    HAS_SYMS | HAS_LOCALS | WP_TEXT | D_PAGED),
 
 #ifndef COFF_WITH_PE
-  (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_RELOC), /* section flags */
+  (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_RELOC /* section flags */
+   | SEC_CODE | SEC_DATA),
 #else
   (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_RELOC /* section flags */
+   | SEC_CODE | SEC_DATA
    | SEC_LINK_ONCE | SEC_LINK_DUPLICATES),
 #endif