diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index f62189804717b867a3961f6418ac151fdb6e8606..1d83c906d4470ce8c0490893e4fa83fd6aa63f01 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,11 @@
+2005-12-10  Richard Sandiford  <richard@codesourcery.com>
+
+	* output.h (init_section, fini_section): Delete.
+	* varasm.c (init_section, fini_section): Delete.
+	(init_varasm_once): Don't initialize them.
+	* doc/tm.texi (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP): Say that
+	there are no corresponding varasm.c variables.
+
 2005-12-10  Richard Sandiford  <richard@codesourcery.com>
 
 	* dwarf2out.c (default_eh_frame_section): Delete, moving handling
diff --git a/gcc/doc/tm.texi b/gcc/doc/tm.texi
index 53f405b7862dfedf8d83afe316684b26b7d9e9dd..64a1a22f9cb4b8f415fd7f5782bd686f509a42be 100644
--- a/gcc/doc/tm.texi
+++ b/gcc/doc/tm.texi
@@ -5994,14 +5994,16 @@ uninitialized, writable small data.
 If defined, a C expression whose value is a string, including spacing,
 containing the assembler operation to identify the following data as
 initialization code.  If not defined, GCC will assume such a section does
-not exist.
+not exist.  This section has no corresponding @code{init_section}
+variable; it is used entirely in runtime code.
 @end defmac
 
 @defmac FINI_SECTION_ASM_OP
 If defined, a C expression whose value is a string, including spacing,
 containing the assembler operation to identify the following data as
 finalization code.  If not defined, GCC will assume such a section does
-not exist.
+not exist.  This section has no corresponding @code{fini_section}
+variable; it is used entirely in runtime code.
 @end defmac
 
 @defmac INIT_ARRAY_SECTION_ASM_OP
diff --git a/gcc/output.h b/gcc/output.h
index 5ea0faaf8ae9853751e410a417c85581ce3a4fa9..c61edce4b56371407bbfa4b1b47dc5f6a778d22e 100644
--- a/gcc/output.h
+++ b/gcc/output.h
@@ -495,8 +495,6 @@ extern GTY(()) section *ctors_section;
 extern GTY(()) section *dtors_section;
 extern GTY(()) section *bss_section;
 extern GTY(()) section *sbss_section;
-extern GTY(()) section *init_section;
-extern GTY(()) section *fini_section;
 extern GTY(()) section *exception_section;
 extern GTY(()) section *eh_frame_section;
 
diff --git a/gcc/varasm.c b/gcc/varasm.c
index 244d6d8dfc429697648dc6c3d6c7f4eba8fbbdcd..fe5231476f0f499addeff18be60a3cc63dc9401b 100644
--- a/gcc/varasm.c
+++ b/gcc/varasm.c
@@ -152,8 +152,6 @@ section *ctors_section;
 section *dtors_section;
 section *bss_section;
 section *sbss_section;
-section *init_section;
-section *fini_section;
 
 /* The section that holds the main exception table, when known.  The section
    is set either by the target's init_sections hook or by the first call to
@@ -4857,16 +4855,6 @@ init_varasm_once (void)
 				      SBSS_SECTION_ASM_OP);
 #endif
 
-#ifdef INIT_SECTION_ASM_OP
-  init_section = get_unnamed_section (SECTION_CODE, output_section_asm_op,
-				      INIT_SECTION_ASM_OP);
-#endif
-
-#ifdef FINI_SECTION_ASM_OP
-  fini_section = get_unnamed_section (SECTION_CODE, output_section_asm_op,
-				      FINI_SECTION_ASM_OP);
-#endif
-
   targetm.asm_out.init_sections ();
 
   if (readonly_data_section == NULL)