diff --git a/wmake/rules/linuxARM64Arm/c b/wmake/rules/linuxARM64Arm/c
index 91a1e739afdfc1596b33a83a8d6a17d281d8beca..06b574e59f6b2430fdc3b8198d037a87f7c8dde7 100644
--- a/wmake/rules/linuxARM64Arm/c
+++ b/wmake/rules/linuxARM64Arm/c
@@ -1,6 +1,6 @@
 SUFFIXES += .c
 
-cc          = armclang
+cc          = armclang -mcpu=native
 
 cWARN       = -Wall
 
@@ -12,5 +12,5 @@ ctoo        = $(WM_SCHEDULER) $(cc) $(cFLAGS) -c $< -o $@
 
 LINK_LIBS   = $(cDBUG)
 
-LINKLIBSO   = $(cc) -shared
-LINKEXE     = $(cc) -Xlinker --add-needed -Xlinker -z -Xlinker nodefs
+LINKLIBSO   = $(cc) -shared -armpl
+LINKEXE     = $(cc) -Xlinker --add-needed -Xlinker -z -Xlinker nodefs -armpl
diff --git a/wmake/rules/linuxARM64Arm/c++ b/wmake/rules/linuxARM64Arm/c++
index 5704e839a9b9edbeeaf92675661b79b937716c72..4bbc646aecb34986641e41a5a6b7d5a3ddd0d1ed 100644
--- a/wmake/rules/linuxARM64Arm/c++
+++ b/wmake/rules/linuxARM64Arm/c++
@@ -1,6 +1,6 @@
 include $(GENERAL_RULES)/Clang/c++
 
-CC          = armclang++ -std=c++11
+CC          = armclang++ -std=c++11 -mcpu=native
 
 include $(DEFAULT_RULES)/c++$(WM_COMPILE_OPTION)
 
@@ -13,5 +13,5 @@ cpptoo      = $(Ctoo)
 
 LINK_LIBS   = $(c++DBUG)
 
-LINKLIBSO   = $(CC) $(c++FLAGS) -shared
-LINKEXE     = $(CC) $(c++FLAGS) -Xlinker --add-needed
+LINKLIBSO   = $(CC) $(c++FLAGS) -shared -armpl
+LINKEXE     = $(CC) $(c++FLAGS) -Xlinker --add-needed -armpl
diff --git a/wmake/rules/linuxARM64Arm/c++Opt b/wmake/rules/linuxARM64Arm/c++Opt
index c427c3d08b8d71d05db3ceb32b020fb460f55fa3..7a4e09d9f42d00521d445af644e434507fd7ce20 100644
--- a/wmake/rules/linuxARM64Arm/c++Opt
+++ b/wmake/rules/linuxARM64Arm/c++Opt
@@ -1,2 +1,2 @@
 c++DBUG     =
-c++OPT      = -mcpu=thunderx2t99 -ffp-contract=fast -ffast-math -O3 -funsafe-math-optimizations
+c++OPT      = -ffp-contract=fast -ffast-math -O3 -funsafe-math-optimizations -fsimdmath -armpl
diff --git a/wmake/rules/linuxARM64Arm/cOpt b/wmake/rules/linuxARM64Arm/cOpt
index 0086d1849ebac2a560442be4d2032d7c73774e9d..10aa6fc610f154f7a49156a92d54824800811532 100644
--- a/wmake/rules/linuxARM64Arm/cOpt
+++ b/wmake/rules/linuxARM64Arm/cOpt
@@ -1,2 +1,2 @@
 cDBUG       =
-cOPT        = -mcpu=thunderx2t99 -ffp-contract=fast -ffast-math -O3
+cOPT        = -ffp-contract=fast -ffast-math -O3 -armpl
diff --git a/wmake/rules/linuxARM7Gcc/c b/wmake/rules/linuxARM7Gcc/c
index 6845d94483ae7de89f1106267bb220ca500a24a1..2cff6a24d77d33d95700c6eb1275c31b152bd226 100644
--- a/wmake/rules/linuxARM7Gcc/c
+++ b/wmake/rules/linuxARM7Gcc/c
@@ -1,6 +1,6 @@
 SUFFIXES += .c
 
-cc          = gcc
+cc          = gcc -mcpu=cortex-a9
 
 cWARN       = -Wall
 
diff --git a/wmake/rules/linuxARM7Gcc/c++ b/wmake/rules/linuxARM7Gcc/c++
index 00a88b07a16c4ec1856fd30302d542fa7ba2404c..a1cf1ad6cf12041797c1a86eca9eca296c87281e 100644
--- a/wmake/rules/linuxARM7Gcc/c++
+++ b/wmake/rules/linuxARM7Gcc/c++
@@ -1,6 +1,6 @@
 include $(GENERAL_RULES)/Gcc/c++
 
-CC          = g++ -std=c++11
+CC          = g++ -std=c++11 -mcpu=cortex-a9
 
 include $(DEFAULT_RULES)/c++$(WM_COMPILE_OPTION)
 
diff --git a/wmake/rules/linuxARM7Gcc/c++Opt b/wmake/rules/linuxARM7Gcc/c++Opt
index fe7b457de7b83c21a980701a223eb319e4ca3112..ab2bfabcd0804e8686593f81507cf546a48992d9 100644
--- a/wmake/rules/linuxARM7Gcc/c++Opt
+++ b/wmake/rules/linuxARM7Gcc/c++Opt
@@ -1,5 +1,5 @@
 c++DBUG     =
-#c++OPT     = -O3 -floop-optimize -falign-loops -falign-labels -falign-functions -falign-jumps -fprefetch-loop-arrays -mcpu=cortex-a9 -mfpu=vfpv3-d16 -mfloat-abi=hard
-c++OPT      = -O3 -floop-optimize -falign-loops -falign-labels -falign-functions -falign-jumps -fprefetch-loop-arrays -mcpu=cortex-a9 -mfpu=vfpv3-d16 -mfloat-abi=softfp
+#c++OPT     = -O3 -floop-optimize -falign-loops -falign-labels -falign-functions -falign-jumps -fprefetch-loop-arrays -mfpu=vfpv3-d16 -mfloat-abi=hard
+c++OPT      = -O3 -floop-optimize -falign-loops -falign-labels -falign-functions -falign-jumps -fprefetch-loop-arrays -mfpu=vfpv3-d16 -mfloat-abi=softfp
 
 ROUNDING_MATH = -frounding-math
diff --git a/wmake/rules/linuxARM7Gcc/cOpt b/wmake/rules/linuxARM7Gcc/cOpt
index c80aa2b5c137b05847b4cb684b3bf4c70cb68550..6efb6d39bf73f9068f94f953012ae2b229eebeec 100644
--- a/wmake/rules/linuxARM7Gcc/cOpt
+++ b/wmake/rules/linuxARM7Gcc/cOpt
@@ -1,3 +1,3 @@
 cDBUG       =
-#cOPT       = -O3 -floop-optimize -falign-loops -falign-labels -falign-functions -falign-jumps -fprefetch-loop-arrays -mcpu=cortex-a9 -mfpu=vfpv3-d16 -mfloat-abi=hard
-cOPT        = -O3 -floop-optimize -falign-loops -falign-labels -falign-functions -falign-jumps -fprefetch-loop-arrays -mcpu=cortex-a9 -mfpu=vfpv3-d16 -mfloat-abi=softfp
+#cOPT       = -O3 -floop-optimize -falign-loops -falign-labels -falign-functions -falign-jumps -fprefetch-loop-arrays -mfpu=vfpv3-d16 -mfloat-abi=hard
+cOPT        = -O3 -floop-optimize -falign-loops -falign-labels -falign-functions -falign-jumps -fprefetch-loop-arrays -mfpu=vfpv3-d16 -mfloat-abi=softfp