diff -uNr 14.12/common/lib/modules/fglrx/build_mod/firegl_public.c 14.12_2/common/lib/modules/fglrx/build_mod/firegl_public.c
--- 14.12/common/lib/modules/fglrx/build_mod/firegl_public.c	2014-11-28 21:02:10.000000000 +0100
+++ 14.12_2/common/lib/modules/fglrx/build_mod/firegl_public.c	2015-03-08 13:30:42.565275902 +0100
@@ -4468,8 +4468,13 @@
 
     if (cpu_has_pge)
     {
+#if LINUX_VERSION_CODE < KERNEL_VERSION(4,0,0)
         cr4 = read_cr4();
         write_cr4(cr4 & ~X86_CR4_PGE);
+#else
+        cr4 = __read_cr4();
+        __write_cr4(cr4 & ~X86_CR4_PGE);
+#endif
     }
      __flush_tlb();
 
@@ -4482,7 +4487,11 @@
     write_cr0(cr0 & 0xbfffffff);
     if (cpu_has_pge)
     {
+#if LINUX_VERSION_CODE < KERNEL_VERSION(4,0,0)
         write_cr4(cr4);
+#else
+        __write_cr4(cr4);
+#endif
     }
     local_irq_restore(flags);
 
@@ -4509,8 +4518,13 @@
 
     if (cpu_has_pge)
     {
+#if LINUX_VERSION_CODE < KERNEL_VERSION(4,0,0)
         cr4 = read_cr4();
         write_cr4(cr4 & ~X86_CR4_PGE);
+#else
+        cr4 = __read_cr4();
+        __write_cr4(cr4 & ~X86_CR4_PGE);
+#endif
     }
      __flush_tlb();
   
@@ -4522,7 +4536,11 @@
     write_cr0(cr0 & 0xbfffffff);
     if (cpu_has_pge)
     {
+#if LINUX_VERSION_CODE < KERNEL_VERSION(4,0,0)
         write_cr4(cr4);
+#else
+        __write_cr4(cr4);
+#endif
     }
     local_irq_restore(flags);
 
diff -uNr 14.12/common/lib/modules/fglrx/build_mod/kcl_str.c 14.12_2/common/lib/modules/fglrx/build_mod/kcl_str.c
--- 14.12/common/lib/modules/fglrx/build_mod/kcl_str.c	2014-11-28 21:02:10.000000000 +0100
+++ 14.12_2/common/lib/modules/fglrx/build_mod/kcl_str.c	2015-03-08 13:25:11.568396701 +0100
@@ -169,7 +169,11 @@
                                   const char* s2,
                                   KCL_TYPE_SizeSigned count)
 {
+#if LINUX_VERSION_CODE < KERNEL_VERSION(4,0,0)
     return strnicmp(s1, s2, count);
+#else
+    return strncasecmp(s1, s2, count);
+#endif
 }
 
 /** \brief Locate character in string
