diff --git a/device/testing/device-motorola-surnia/APKBUILD b/device/testing/device-motorola-surnia/APKBUILD
index a5b28b99d488bc66965a996860a4806c7c227836..381a327eb2b966c29fc0763496f821bd86c6afcb 100644
--- a/device/testing/device-motorola-surnia/APKBUILD
+++ b/device/testing/device-motorola-surnia/APKBUILD
@@ -5,7 +5,7 @@ pkgver=0.1
 pkgrel=10
 url="https://postmarketos.org"
 license="MIT"
-arch="armhf"
+arch="armv7"
 options="!check !archcheck"
 depends="postmarketos-base linux-motorola-surnia mkbootimg mesa-dri-gallium"
 makedepends="devicepkg-dev"
@@ -38,5 +38,5 @@ nonfree_firmware_modem() {
 }
 
 sha512sums="
-76cf306abef564fdf06974352af8a725934f3eda4f8a7009c39cc3d1e73c285a7ed35f8dd485b191465f27378d9e8ebd0f8ab30d6bf93a8c90a58e52ac49ac5b  deviceinfo
+5d6435ab975ed6acbf57d9b042b7c97b1dbebbd0400072e24a24a1136bb23a6da576ae081c22b57c379ecc92a0bef775869763dc16bb5225ca2dc783081fafae  deviceinfo
 "
diff --git a/device/testing/device-motorola-surnia/deviceinfo b/device/testing/device-motorola-surnia/deviceinfo
index 49ca82acbbad2acc38325633aa75e7437347333e..ce7e0c8c9c85e49bb0a1df696c0ab6bf9770f4ae 100644
--- a/device/testing/device-motorola-surnia/deviceinfo
+++ b/device/testing/device-motorola-surnia/deviceinfo
@@ -6,7 +6,7 @@ deviceinfo_name="Motorola Moto E (2nd Gen)"
 deviceinfo_manufacturer="Motorola"
 deviceinfo_codename="motorola-surnia"
 deviceinfo_year="2015"
-deviceinfo_arch="armhf"
+deviceinfo_arch="armv7"
 
 # Device related
 deviceinfo_gpu_accelerated="true"
diff --git a/device/testing/firmware-motorola-surnia/APKBUILD b/device/testing/firmware-motorola-surnia/APKBUILD
index 023cc63dc26c6c09a8595e0f8b63fda5672bf301..3b07735e3ebddb910a78b5580bb803600c2f215e 100644
--- a/device/testing/firmware-motorola-surnia/APKBUILD
+++ b/device/testing/firmware-motorola-surnia/APKBUILD
@@ -4,7 +4,7 @@ pkgrel=0
 pkgdesc="Firmware for Motorola Moto E 2015 (2nd gen)"
 url="https://github.com/linuxgorl/vendor_motorola_surnia"
 subpackages="$pkgname-wcnss $pkgname-venus $pkgname-modem"
-arch="armhf"
+arch="armv7"
 license="proprietary"
 options="!check !strip !archcheck !tracedeps pmb:cross-native"
 
diff --git a/device/testing/linux-motorola-surnia/APKBUILD b/device/testing/linux-motorola-surnia/APKBUILD
index 0d5faa559b1146e7c127b52e91212b8c0d3156e2..afcc4fce602caf80d334411ebae569569541df39 100644
--- a/device/testing/linux-motorola-surnia/APKBUILD
+++ b/device/testing/linux-motorola-surnia/APKBUILD
@@ -3,22 +3,24 @@
 
 pkgname=linux-motorola-surnia
 pkgver=3.10.49
-pkgrel=5
+pkgrel=6
 pkgdesc="Motorola Moto E (2nd Gen) kernel fork"
-arch="armhf"
+arch="armv7"
 _carch="arm"
 _flavor="motorola-surnia"
 url="https://kernel.org"
 license="GPL-2.0-only"
 options="!strip !check !tracedeps pmb:cross-native"
-makedepends="perl sed installkernel bash gmp-dev bc linux-headers elfutils-dev devicepkg-dev dtbtool gcc6 xz"
-
-# Compiler: GCC 6 (doesn't compile with newer versions)
-if [ "${CC:0:5}" != "gcc6-" ]; then
-	CC="gcc6-$CC"
-	HOSTCC="gcc6-gcc"
-	CROSS_COMPILE="gcc6-$CROSS_COMPILE"
-fi
+makedepends="
+	bash
+	bc
+	bison
+	devicepkg-dev
+	dtbtool
+	flex
+	openssl-dev
+	perl
+"
 
 # Source
 _repository="android_kernel_motorola_msm8916"
@@ -28,9 +30,12 @@ source="
 	$pkgname-$_commit.tar.gz::https://github.com/LineageOS/$_repository/archive/$_commit.tar.gz
 	$_config
 	gcc7-give-up-on-ilog2-const-optimizations.patch
+	gcc8-fix-put-user.patch
 	gcc10-extern_YYLOC_global_declaration.patch
+	kernel-use-the-gnu89-standard-explicitly.patch
 "
 builddir="$srcdir/$_repository-$_commit"
+_outdir="out"
 
 prepare() {
 	default_prepare
@@ -39,22 +44,26 @@ prepare() {
 
 build() {
 	unset LDFLAGS
-	make ARCH="$_carch" CC="${CC:-gcc}" \
+	make O="$_outdir" ARCH="$_carch" CC="${CC:-gcc}" \
 		KBUILD_BUILD_VERSION="$((pkgrel + 1 ))-postmarketOS"
 
-	# Generate master DTB (deviceinfo_bootimg_qcdt)
-	dtbTool -s 2048 -p "scripts/dtc/" -o "arch/arm/boot/dt.img" "arch/arm/boot/"
+	# Master DTB (deviceinfo_bootimg_qcdt)
+	dtbTool -o "$_outdir/arch/$_carch/boot"/dt.img \
+		"$_outdir/arch/$_carch/boot/"
 }
 
 package() {
-	downstreamkernel_package "$builddir" "$pkgdir" "$_carch" "$_flavor"
-
-	# Master DTB (deviceinfo_bootimg_qcdt)
-	install -Dm644 "$builddir/arch/arm/boot/dt.img" \
-		"$pkgdir/boot/dt.img"
+	downstreamkernel_package "$builddir" "$pkgdir" "$_carch" \
+		"$_flavor" "$_outdir"
+	install -Dm644 "$_outdir/arch/$_carch/boot"/dt.img \
+		"$pkgdir"/boot/dt.img
 }
 
-sha512sums="28e70a5af0df65b85c257c4ca455553d38b17dad8d141876854c5a38502114638c8e59440cffcf81c278a6836e39ec0f63ed35dad825c49a8c3f299de7617b80  linux-motorola-surnia-4c864820053bb70e21cf1e9764baefefd4d2f6b1.tar.gz
-e45324994d22d15fba27a7cad26d7258a2d11ef691a1ab31a033dfa00d1cc0457c660061298fb2194c12e49935c56a4b331f51e8f059563166e7de3e688ef0f6  config-motorola-surnia.armhf
+sha512sums="
+28e70a5af0df65b85c257c4ca455553d38b17dad8d141876854c5a38502114638c8e59440cffcf81c278a6836e39ec0f63ed35dad825c49a8c3f299de7617b80  linux-motorola-surnia-4c864820053bb70e21cf1e9764baefefd4d2f6b1.tar.gz
+e45324994d22d15fba27a7cad26d7258a2d11ef691a1ab31a033dfa00d1cc0457c660061298fb2194c12e49935c56a4b331f51e8f059563166e7de3e688ef0f6  config-motorola-surnia.armv7
 77eba606a71eafb36c32e9c5fe5e77f5e4746caac292440d9fb720763d766074a964db1c12bc76fe583c5d1a5c864219c59941f5e53adad182dbc70bf2bc14a7  gcc7-give-up-on-ilog2-const-optimizations.patch
-2b48f1bf0e3f70703d2cdafc47d5e615cc7c56c70bec56b2e3297d3fa4a7a1321d649a8679614553dde8fe52ff1051dae38d5990e3744c9ca986d92187dcdbeb  gcc10-extern_YYLOC_global_declaration.patch"
+197d40a214ada87fcb2dfc0ae4911704b9a93354b75179cd6b4aadbb627a37ec262cf516921c84a8b1806809b70a7b440cdc8310a4a55fca5d2c0baa988e3967  gcc8-fix-put-user.patch
+2b48f1bf0e3f70703d2cdafc47d5e615cc7c56c70bec56b2e3297d3fa4a7a1321d649a8679614553dde8fe52ff1051dae38d5990e3744c9ca986d92187dcdbeb  gcc10-extern_YYLOC_global_declaration.patch
+ad0182a483791fc88e058838bc331b2f04a75ba291e763767babdb815efadfc3b4fda97e69e2e3f00a426cabea088e35297a92bd287592597d1e309be68ee92c  kernel-use-the-gnu89-standard-explicitly.patch
+"
diff --git a/device/testing/linux-motorola-surnia/config-motorola-surnia.armhf b/device/testing/linux-motorola-surnia/config-motorola-surnia.armv7
similarity index 100%
rename from device/testing/linux-motorola-surnia/config-motorola-surnia.armhf
rename to device/testing/linux-motorola-surnia/config-motorola-surnia.armv7
diff --git a/device/testing/linux-motorola-surnia/gcc8-fix-put-user.patch b/device/testing/linux-motorola-surnia/gcc8-fix-put-user.patch
new file mode 120000
index 0000000000000000000000000000000000000000..1d40b26743bfef9f155b53503db8c6b122b56161
--- /dev/null
+++ b/device/testing/linux-motorola-surnia/gcc8-fix-put-user.patch
@@ -0,0 +1 @@
+../../.shared-patches/linux/gcc8-fix-put-user.patch
\ No newline at end of file
diff --git a/device/testing/linux-motorola-surnia/kernel-use-the-gnu89-standard-explicitly.patch b/device/testing/linux-motorola-surnia/kernel-use-the-gnu89-standard-explicitly.patch
new file mode 120000
index 0000000000000000000000000000000000000000..a5f4de276037a4f48770b790adbd92649e666cf9
--- /dev/null
+++ b/device/testing/linux-motorola-surnia/kernel-use-the-gnu89-standard-explicitly.patch
@@ -0,0 +1 @@
+../../.shared-patches/linux/kernel-use-the-gnu89-standard-explicitly.patch
\ No newline at end of file