diff --git a/.cargo/config b/.cargo/config
index 7c62c97b49a8fafd48c5d9097a08fee2afcc0c50..69c4db47dcee085641f5b1284dfca89dd42e264a 100644
--- a/.cargo/config
+++ b/.cargo/config
@@ -1,3 +1,7 @@
+[target.aarch64-unknown-redox]
+linker = "aarch64-unknown-redox-gcc"
+rustflags = []
+
 [target.x86_64-unknown-redox]
 linker = "x86_64-unknown-redox-gcc"
 rustflags = []
diff --git a/config.sh b/config.sh
index da7b8902ee28d8ea72701f366bec061e4d3b6d14..b08a2e5942bc4fc9d7a2313bf5dc8881b2d3bf1a 100755
--- a/config.sh
+++ b/config.sh
@@ -2,9 +2,12 @@
 set -e
 
 # Configuration
-ARCH=x86_64
-export TARGET=$ARCH-unknown-redox
-HOST=$TARGET
+if [ -z "${TARGET}" ]
+then
+    export TARGET=x86_64-unknown-redox
+fi
+ARCH="${TARGET%%-*}"
+HOST="$TARGET"
 
 # Automatic variables
 ROOT="$(cd `dirname "$0"` && pwd)"