diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 1f48401e117fa325f4862fa67e75420a3edc869f..9271319a21f884237644218fd05206d17b3ed74e 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,11 @@
 2001-04-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 
+	* output.h (assemble_real): Declare if REAL_VALUE_TYPE is defined.
+
+	* real.h (ereal_atof, real_value_truncate, target_isnan,
+	target_isinf, target_negative, assemble_real, debug_real): Delete
+	redundant prototypes.
+
 	* Makefile.in (ifcvt.o): Depend on toplev.h.
 
 	* c-semantics.c: Include expr.h.
diff --git a/gcc/output.h b/gcc/output.h
index 468313cce3f36ca58e150e1f801c8c8114f74087..93badde43fab3d6588f9c6f29cbb2cbe4048a6a8 100644
--- a/gcc/output.h
+++ b/gcc/output.h
@@ -311,7 +311,7 @@ extern void assemble_name		PARAMS ((FILE *, const char *));
 extern int assemble_integer		PARAMS ((rtx, int, int));
 extern int assemble_eh_integer		PARAMS ((rtx, int, int));
 
-#ifdef EMUSHORT
+#ifdef REAL_VALUE_TYPE
 /* Assemble the floating-point constant D into an object of size MODE.  */
 extern void assemble_real		PARAMS ((REAL_VALUE_TYPE,
 					       enum machine_mode));
diff --git a/gcc/real.h b/gcc/real.h
index 970c24c324d122676394ead4eb9e75b156d3807f..58cae6ffed4a48ae79f8eb9f955f69cc06c07b34 100644
--- a/gcc/real.h
+++ b/gcc/real.h
@@ -141,7 +141,6 @@ extern void earith		PARAMS ((REAL_VALUE_TYPE *, int,
 				       REAL_VALUE_TYPE *, REAL_VALUE_TYPE *));
 extern REAL_VALUE_TYPE etrunci	PARAMS ((REAL_VALUE_TYPE));
 extern REAL_VALUE_TYPE etruncui	PARAMS ((REAL_VALUE_TYPE));
-extern REAL_VALUE_TYPE ereal_atof PARAMS ((const char *, enum machine_mode));
 extern REAL_VALUE_TYPE ereal_negate PARAMS ((REAL_VALUE_TYPE));
 extern HOST_WIDE_INT efixi	PARAMS ((REAL_VALUE_TYPE));
 extern unsigned HOST_WIDE_INT efixui PARAMS ((REAL_VALUE_TYPE));
@@ -176,8 +175,6 @@ extern REAL_VALUE_TYPE ereal_from_double PARAMS ((HOST_WIDE_INT *));
 /* These return REAL_VALUE_TYPE: */
 #define REAL_VALUE_RNDZINT(x) (etrunci (x))
 #define REAL_VALUE_UNSIGNED_RNDZINT(x) (etruncui (x))
-extern REAL_VALUE_TYPE real_value_truncate	PARAMS ((enum machine_mode,
-							REAL_VALUE_TYPE));
 #define REAL_VALUE_TRUNCATE(mode, x)  real_value_truncate (mode, x)
 
 /* These return HOST_WIDE_INT: */
@@ -370,7 +367,6 @@ extern double ldexp PARAMS ((double, int));
 #ifndef REAL_VALUE_ATOF
 #if 1
 /* Use real.c to convert decimal numbers to binary, ... */
-extern REAL_VALUE_TYPE ereal_atof PARAMS ((const char *, enum machine_mode));
 #define REAL_VALUE_ATOF(x, s) ereal_atof (x, s)
 /* Could use ereal_atof here for hexadecimal floats too, but real_hex_to_f
    is OK and it uses faster native fp arithmetic.  */
@@ -430,10 +426,6 @@ extern REAL_VALUE_TYPE real_value_truncate PARAMS ((enum machine_mode,
 #define REAL_VALUE_NEGATIVE(x) (target_negative (x))
 #endif
 
-extern int target_isnan			PARAMS ((REAL_VALUE_TYPE));
-extern int target_isinf			PARAMS ((REAL_VALUE_TYPE));
-extern int target_negative		PARAMS ((REAL_VALUE_TYPE));
-
 /* Determine whether a floating-point value X is minus 0. */
 #ifndef REAL_VALUE_MINUS_ZERO
 #define REAL_VALUE_MINUS_ZERO(x) ((x) == 0 && REAL_VALUE_NEGATIVE (x))
@@ -487,13 +479,6 @@ extern int target_isnan		PARAMS ((REAL_VALUE_TYPE));
 extern int target_isinf		PARAMS ((REAL_VALUE_TYPE));
 extern int target_negative	PARAMS ((REAL_VALUE_TYPE));
 extern void debug_real		PARAMS ((REAL_VALUE_TYPE));
+extern REAL_VALUE_TYPE ereal_atof PARAMS ((const char *, enum machine_mode));
 
-/* In varasm.c */
-extern void assemble_real		PARAMS ((REAL_VALUE_TYPE,
-					       enum machine_mode));
-extern void debug_real			PARAMS ((REAL_VALUE_TYPE));
-
-/* In varasm.c */
-extern void assemble_real		PARAMS ((REAL_VALUE_TYPE,
-					       enum machine_mode));
 #endif /* Not REAL_H_INCLUDED */