diff --git a/target/linux/coldfire/patches/100-compile_fixes.patch b/target/linux/coldfire/patches/100-compile_fixes.patch
new file mode 100644
index 0000000000000000000000000000000000000000..7a579b3628a38c4808feb597fc8b1c8ca57e06a8
--- /dev/null
+++ b/target/linux/coldfire/patches/100-compile_fixes.patch
@@ -0,0 +1,33 @@
+--- a/include/asm-m68k/cf_pgtable.h
++++ b/include/asm-m68k/cf_pgtable.h
+@@ -176,7 +176,7 @@ extern inline pte_t pte_modify(pte_t pte
+ 
+ #define pmd_set(pmdp, ptep) do {} while (0)
+ 
+-extern inline void pgd_set(pgd_t *pgdp, pmd_t *pmdp)
++static inline void pgd_set(pgd_t *pgdp, pmd_t *pmdp)
+ {
+ 	pgd_val(*pgdp) = virt_to_phys(pmdp);
+ }
+--- a/include/asm-m68k/irq.h
++++ b/include/asm-m68k/irq.h
+@@ -61,7 +61,8 @@
+ 
+ #define IRQ_USER	8
+ 
+-extern unsigned int irq_canonicalize(unsigned int irq);
++//extern unsigned int irq_canonicalize(unsigned int irq);
++#define irq_canonicalize(irq)  (irq)
+ 
+ struct pt_regs;
+ 
+--- a/arch/m68k/mm/cf-mmu.c
++++ b/arch/m68k/mm/cf-mmu.c
+@@ -21,6 +21,7 @@
+ #include <linux/blkdev.h>
+ #endif
+ #include <linux/bootmem.h>
++#include <linux/highmem.h>
+ 
+ #include <asm/setup.h>
+ #include <asm/uaccess.h>