diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index c79a2db45967c29a940b737475fce2ba252beca4..627ed8ecd52b5c1111a68af9d5dcc6a47a850c83 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2002-05-12  Richard Henderson  <rth@redhat.com>
+
+	* profile.h (profile_info): Add missing extern to declaration.
+	* profile.c (profile_info): Define it.
+
 2002-05-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
 
 	* pa/pa32-regs.h (HARD_REGNO_MODE_OK): Revise sets of general registers
diff --git a/gcc/profile.c b/gcc/profile.c
index 6fa4e12f031be225c36b5b1c727969d402213e47..60159a3e3228aba8cd839719057e9a153ea2e030 100644
--- a/gcc/profile.c
+++ b/gcc/profile.c
@@ -79,6 +79,10 @@ struct bb_info
 			       : ((bb) == EXIT_BLOCK_PTR		\
 				  ? n_basic_blocks + 1 : (bb)->index + 1))
 
+/* Instantiate the profile info structure.  */
+
+struct profile_info profile_info;
+
 /* Name and file pointer of the output file for the basic block graph.  */
 
 static FILE *bbg_file;
diff --git a/gcc/profile.h b/gcc/profile.h
index a6bc7ee984fa0ce1b3dc6f88d1715f4ee9e41c01..609b0d37e669acbafc1ab6490357724dea55f76c 100644
--- a/gcc/profile.h
+++ b/gcc/profile.h
@@ -21,7 +21,7 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
 #ifndef GCC_PROFILE_H
 #define GCC_PROFILE_H
 
-struct
+struct profile_info
   {
     /* Used by final, for allocating the proper amount of storage for the
        instrumented arc execution counts.  */
@@ -47,6 +47,8 @@ struct
        function.  */
     int count_profiles_merged;
 
-  } profile_info;
+  };
+
+extern struct profile_info profile_info;
 
 #endif