diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index fbcdf5b8410..1f25aa14bf0 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,15 @@
+Thu Sep 23 10:48:27 1993  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
+
+	* section.c (SEC_DEBUGGING): New section flag.
+	* elfcode.h (bfd_section_from_shdr): If section is SHT_PROGBITS,
+	and the name starts with .debug, .line or .stab, set
+	SEC_DEBUGGING.
+	* elf32-target.h (TARGET_BIG_SYM, TARGET_LITTLE_SYM): Added
+	SEC_DEBUGGING to section_flags.
+	* elf64-target.h (TARGET_BIG_SYM, TARGET_LITTLE_SYM): Added
+	SEC_DEBUGGING and SEC_CODE to section_flags.
+	* bfd-in2.h: Updated.
+
 Wed Sep 22 16:34:14 1993  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
 
 	* bfd.c (tdata): Add lynx_core_data.
diff --git a/bfd/elf32-target.h b/bfd/elf32-target.h
index 47b52491ad6..1c1662b742d 100644
--- a/bfd/elf32-target.h
+++ b/bfd/elf32-target.h
@@ -120,7 +120,7 @@ bfd_target TARGET_BIG_SYM =
   
   /* section_flags: mask of all section flags */
   (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_RELOC | SEC_READONLY |
-   SEC_CODE | SEC_DATA), 
+   SEC_CODE | SEC_DATA | SEC_DEBUGGING),
 
    /* leading_symbol_char: is the first char of a user symbol
       predictable, and if so what is it */
@@ -202,7 +202,7 @@ bfd_target TARGET_LITTLE_SYM =
   
   /* section_flags: mask of all section flags */
   (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_RELOC | SEC_READONLY |
-   SEC_CODE | SEC_DATA), 
+   SEC_CODE | SEC_DATA | SEC_DEBUGGING),
 
    /* leading_symbol_char: is the first char of a user symbol
       predictable, and if so what is it */
diff --git a/bfd/elf64-target.h b/bfd/elf64-target.h
index fd5f5e11809..d7ee425aae2 100644
--- a/bfd/elf64-target.h
+++ b/bfd/elf64-target.h
@@ -98,7 +98,7 @@ bfd_target TARGET_BIG_SYM =
   
   /* section_flags: mask of all section flags */
   (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_RELOC | SEC_READONLY |
-   SEC_CODE | SEC_DATA), 
+   SEC_CODE | SEC_DATA | SEC_DEBUGGING),
 
    /* leading_symbol_char: is the first char of a user symbol
       predictable, and if so what is it */
@@ -180,7 +180,7 @@ bfd_target TARGET_LITTLE_SYM =
   
   /* section_flags: mask of all section flags */
   (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_RELOC | SEC_READONLY |
-   SEC_DATA), 
+   SEC_CODE | SEC_DATA | SEC_DEBUGGING),
 
    /* leading_symbol_char: is the first char of a user symbol
       predictable, and if so what is it */
diff --git a/bfd/elfcode.h b/bfd/elfcode.h
index 1e234e2daa5..4e86628f929 100644
--- a/bfd/elfcode.h
+++ b/bfd/elfcode.h
@@ -485,6 +485,13 @@ DEFUN (bfd_section_from_shdr, (abfd, shindex),
 	      else if (newsect->flags & SEC_ALLOC)
 		newsect->flags |= SEC_DATA;
 
+	      /* The debugging sections appear to recognized only by
+		 name.  */
+	      if (strncmp (name, ".debug", sizeof ".debug" - 1) == 0
+		  || strncmp (name, ".line", sizeof ".line" - 1) == 0
+		  || strncmp (name, ".stab", sizeof ".stab" - 1) == 0)
+		newsect->flags |= SEC_DEBUGGING;
+
 	      hdr->rawdata = (void *) newsect;
 	    }
 	  else