diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 138fecd1d887283ac90cf2444fc40d2da5528d35..c951769c62b804588a05c04575ffa2a59d407ebd 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2014-10-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+
+	* config/arm/arm.h (MACHMODE): Add 'enum' to machine_mode.
+	(struct machine_function): Gate definition on
+	!defined(USED_FOR_TARGET).
+
 2014-10-29  DJ Delorie  <dj@redhat.com>
 
 	* expmed.c (strict_volatile_bitfield_p): Fix off-by-one error.
diff --git a/gcc/config/arm/arm.h b/gcc/config/arm/arm.h
index 02d0a93f74932f1967d2557f775b9f7064134806..fef7e417502c986a048985a4db7392305cb9dcb0 100644
--- a/gcc/config/arm/arm.h
+++ b/gcc/config/arm/arm.h
@@ -36,7 +36,7 @@
 #define MACHMODE int
 #else
 #include "insn-modes.h"
-#define MACHMODE machine_mode
+#define MACHMODE enum machine_mode
 #endif
 
 #include "config/vxworks-dummy.h"
@@ -1510,7 +1510,7 @@ typedef struct GTY(()) arm_stack_offsets
 }
 arm_stack_offsets;
 
-#ifndef GENERATOR_FILE
+#if !defined(GENERATOR_FILE) && !defined(USED_FOR_TARGET)
 /* A C structure for machine-specific, per-function data.
    This is added to the cfun structure.  */
 typedef struct GTY(()) machine_function