diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index aeed7051e485f7adf8460dbd98c953f097dde3e7..490114d30d075eb50b11ef6c2982bcd1275bedc5 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2008-12-15  Richard Sandiford  <rdsandiford@googlemail.com>
+
+	* config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_abicalls
+	if TARGET_ABICALLS is true.
+
 2008-12-15  Richard Sandiford  <rdsandiford@googlemail.com>
 
 	* config/mips/mips.md (move_doubleword_fpr<mode>): Use
diff --git a/gcc/config/mips/mips.h b/gcc/config/mips/mips.h
index a6444b5f993bdf4fc510bd31f802218f53db3025..f5de061d44c33ee62ddfcee6bf0155f259baaf50 100644
--- a/gcc/config/mips/mips.h
+++ b/gcc/config/mips/mips.h
@@ -529,6 +529,11 @@ enum mips_code_readable_setting {
 	  builtin_define ("_MIPSEL");					\
 	}								\
                                                                         \
+      /* Whether calls should go through $25.  The separate __PIC__	\
+	 macro indicates whether abicalls code might use a GOT.  */	\
+      if (TARGET_ABICALLS)						\
+	builtin_define ("__mips_abicalls");				\
+									\
       /* Whether Loongson vector modes are enabled.  */                 \
       if (TARGET_LOONGSON_VECTORS)					\
         builtin_define ("__mips_loongson_vector_rev");                  \