diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 5ed36cc51c793d6001a072536275ae5de584c725..0526f8f51bde64c9c75cd9f70181791ca672eaae 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2001-07-16  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
+
+	* output.h (sdb_begin_function_line): Restore as an extern
+	variable.
+	* sdbout.c (sdb_begin_function_line): Make extern.
+
 2001-07-15  Richard Henderson  <rth@redhat.com>
 
 	* machmode.def (Pmode): Redefine if GENERATOR_FILE.
diff --git a/gcc/output.h b/gcc/output.h
index 93b94c41bc9108bff1d8011736f864b49b42f4e9..58c406259d95f4f418358058753bd88a5088493f 100644
--- a/gcc/output.h
+++ b/gcc/output.h
@@ -374,6 +374,13 @@ extern void output_constant		PARAMS ((tree, int));
 extern rtx final_sequence;
 #endif
 
+/* The line number of the beginning of the current function.  Various
+   md code needs this so that it can output relative linenumbers.  */
+
+#ifdef SDB_DEBUGGING_INFO /* Avoid undef sym in certain broken linkers.  */
+extern int sdb_begin_function_line;
+#endif
+
 /* File in which assembler code is being written.  */
 
 #ifdef BUFSIZ
diff --git a/gcc/sdbout.c b/gcc/sdbout.c
index 1faffbede39264eb4e5920ede27ad2e44926a686..0738ca3489e3fb637f9a47be462d627c6e0d0e9e 100644
--- a/gcc/sdbout.c
+++ b/gcc/sdbout.c
@@ -80,7 +80,7 @@ AT&T C compiler.  From the example below I would conclude the following:
 /* Line number of beginning of current function, minus one.
    Negative means not in a function or not using sdb.  */
 
-static int sdb_begin_function_line = -1;
+int sdb_begin_function_line = -1;
 
 /* Counter to generate unique "names" for nameless struct members.  */