diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 8ff31436bdd5f0d44d3304d552eb2bf1445c183d..9d11ef7127f62fc8eb83dfa47301a4a123491e6a 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,12 @@
+2004-01-06  David Edelsohn  <edelsohn@gnu.org>
+
+	* config/rs6000/xcoff.h (EXTRA_SECTION_FUNCTIONS): Split each
+	function into a separate macro.
+	(read_only_data_section): Add void argument.
+	(private_data_section): Same.
+	(read_only_private_data_section): Same.
+	(toc_section): Same.
+
 2004-01-06  Jan Hubicka  <jh@suse.cz>
 
 	* invoke.texi:  Remove typo in last change.
diff --git a/gcc/config/rs6000/xcoff.h b/gcc/config/rs6000/xcoff.h
index 9bc7c1f1d2bc58a8f036c5e7ce99417df44358ff..36c2aa88623801107ec12cd1be693482158913b9 100644
--- a/gcc/config/rs6000/xcoff.h
+++ b/gcc/config/rs6000/xcoff.h
@@ -69,9 +69,14 @@
    BIGGEST_ALIGNMENT is 64, so align the sections that much.  */
 
 #define EXTRA_SECTION_FUNCTIONS				\
-							\
+  READ_ONLY_DATA_SECTION_FUNCTION			\
+  PRIVATE_DATA_SECTION_FUNCTION				\
+  READ_ONLY_PRIVATE_DATA_SECTION_FUNCTION		\
+  TOC_SECTION_FUNCTION
+
+#define READ_ONLY_DATA_SECTION_FUNCTION			\
 void							\
-read_only_data_section ()				\
+read_only_data_section (void)				\
 {							\
   if (in_section != read_only_data)			\
     {							\
@@ -79,10 +84,11 @@ read_only_data_section ()				\
 	       xcoff_read_only_section_name);		\
       in_section = read_only_data;			\
     }							\
-}							\
-							\
+}
+
+#define PRIVATE_DATA_SECTION_FUNCTION			\
 void							\
-private_data_section ()					\
+private_data_section (void)				\
 {							\
   if (in_section != private_data)			\
     {							\
@@ -90,10 +96,11 @@ private_data_section ()					\
 	       xcoff_private_data_section_name);	\
       in_section = private_data;			\
     }							\
-}							\
-							\
+}
+
+#define READ_ONLY_PRIVATE_DATA_SECTION_FUNCTION		\
 void							\
-read_only_private_data_section ()			\
+read_only_private_data_section (void)			\
 {							\
   if (in_section != read_only_private_data)		\
     {							\
@@ -101,10 +108,11 @@ read_only_private_data_section ()			\
 	       xcoff_private_data_section_name);	\
       in_section = read_only_private_data;		\
     }							\
-}							\
-							\
+}
+
+#define TOC_SECTION_FUNCTION				\
 void							\
-toc_section ()						\
+toc_section (void)					\
 {							\
   if (TARGET_MINIMAL_TOC)				\
     {							\