Merge "[MIPS] Add mips64 and mips r6 targets."
diff --git a/Apps-config-host.mk b/Apps-config-host.mk
index 3778f7b..baf5a6a 100644
--- a/Apps-config-host.mk
+++ b/Apps-config-host.mk
@@ -114,6 +114,28 @@
mips_exclude_files :=
+mips64_clang_asflags :=
+
+mips64_cflags :=
+
+mips64_src_files :=
+
+mips64_exclude_files :=
+
+mips32r6_clang_asflags :=
+
+mips32r6_cflags :=
+
+mips32r6_src_files :=
+
+mips32r6_exclude_files :=
+
+
+ifdef ARCH_MIPS_REV6
+mips_cflags := $(mips32r6_cflags)
+mips_src_files := $(mips32r6_src_files)
+mips_exclude_files := $(mips32r6_exclude_files)
+endif
LOCAL_CFLAGS += $(common_cflags)
LOCAL_C_INCLUDES += $(common_c_includes) $(local_c_includes)
diff --git a/Apps-config-target.mk b/Apps-config-target.mk
index 3f3aefd..f2bb032 100644
--- a/Apps-config-target.mk
+++ b/Apps-config-target.mk
@@ -114,6 +114,28 @@
mips_exclude_files :=
+mips64_clang_asflags :=
+
+mips64_cflags :=
+
+mips64_src_files :=
+
+mips64_exclude_files :=
+
+mips32r6_clang_asflags :=
+
+mips32r6_cflags :=
+
+mips32r6_src_files :=
+
+mips32r6_exclude_files :=
+
+
+ifdef ARCH_MIPS_REV6
+mips_cflags := $(mips32r6_cflags)
+mips_src_files := $(mips32r6_src_files)
+mips_exclude_files := $(mips32r6_exclude_files)
+endif
LOCAL_CFLAGS += $(common_cflags)
LOCAL_C_INCLUDES += $(common_c_includes)
@@ -137,3 +159,7 @@
LOCAL_SRC_FILES_mips += $(filter-out $(mips_exclude_files),$(common_src_files) $(mips_src_files))
LOCAL_CFLAGS_mips += $(mips_cflags)
LOCAL_CLANG_ASFLAGS_mips += $(mips_clang_asflags)
+
+LOCAL_SRC_FILES_mips64 += $(filter-out $(mips64_exclude_files),$(common_src_files) $(mips64_src_files))
+LOCAL_CFLAGS_mips64 += $(mips64_cflags)
+LOCAL_CLANG_ASFLAGS_mips64 += $(mips64_clang_asflags)
diff --git a/Crypto-config-host.mk b/Crypto-config-host.mk
index 7207c23..6cd5c0b 100644
--- a/Crypto-config-host.mk
+++ b/Crypto-config-host.mk
@@ -709,12 +709,36 @@
crypto/aes/aes_core.c \
crypto/bn/bn_asm.c \
+mips64_clang_asflags :=
+
+mips64_cflags := \
+ -DOPENSSL_NO_ASM \
+
+mips64_src_files :=
+
+mips64_exclude_files :=
+
+mips32r6_clang_asflags :=
+
+mips32r6_cflags := \
+ -DOPENSSL_NO_ASM \
+
+mips32r6_src_files :=
+
+mips32r6_exclude_files :=
+
# "Temporary" hack until this can be fixed in openssl.config
x86_64_cflags += -DRC4_INT="unsigned int"
LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)/include
+ifdef ARCH_MIPS_REV6
+mips_cflags := $(mips32r6_cflags)
+mips_src_files := $(mips32r6_src_files)
+mips_exclude_files := $(mips32r6_exclude_files)
+endif
+
LOCAL_CFLAGS += $(common_cflags)
LOCAL_C_INCLUDES += $(common_c_includes) $(local_c_includes)
diff --git a/Crypto-config-target.mk b/Crypto-config-target.mk
index a4bf069..7fb86f5 100644
--- a/Crypto-config-target.mk
+++ b/Crypto-config-target.mk
@@ -709,12 +709,36 @@
crypto/aes/aes_core.c \
crypto/bn/bn_asm.c \
+mips64_clang_asflags :=
+
+mips64_cflags := \
+ -DOPENSSL_NO_ASM \
+
+mips64_src_files :=
+
+mips64_exclude_files :=
+
+mips32r6_clang_asflags :=
+
+mips32r6_cflags := \
+ -DOPENSSL_NO_ASM \
+
+mips32r6_src_files :=
+
+mips32r6_exclude_files :=
+
# "Temporary" hack until this can be fixed in openssl.config
x86_64_cflags += -DRC4_INT="unsigned int"
LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)/include
+ifdef ARCH_MIPS_REV6
+mips_cflags := $(mips32r6_cflags)
+mips_src_files := $(mips32r6_src_files)
+mips_exclude_files := $(mips32r6_exclude_files)
+endif
+
LOCAL_CFLAGS += $(common_cflags)
LOCAL_C_INCLUDES += $(common_c_includes)
@@ -737,3 +761,7 @@
LOCAL_SRC_FILES_mips += $(filter-out $(mips_exclude_files),$(common_src_files) $(mips_src_files))
LOCAL_CFLAGS_mips += $(mips_cflags)
LOCAL_CLANG_ASFLAGS_mips += $(mips_clang_asflags)
+
+LOCAL_SRC_FILES_mips64 += $(filter-out $(mips64_exclude_files),$(common_src_files) $(mips64_src_files))
+LOCAL_CFLAGS_mips64 += $(mips64_cflags)
+LOCAL_CLANG_ASFLAGS_mips64 += $(mips64_clang_asflags)
diff --git a/Crypto-config-trusty.mk b/Crypto-config-trusty.mk
index 05ec1df..cc22723 100644
--- a/Crypto-config-trusty.mk
+++ b/Crypto-config-trusty.mk
@@ -253,9 +253,31 @@
mips_exclude_files :=
+mips64_clang_asflags :=
+
+mips64_cflags :=
+
+mips64_src_files :=
+
+mips64_exclude_files :=
+
+mips32r6_clang_asflags :=
+
+mips32r6_cflags :=
+
+mips32r6_src_files :=
+
+mips32r6_exclude_files :=
+
LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)/include
+ifdef ARCH_MIPS_REV6
+mips_cflags := $(mips32r6_cflags)
+mips_src_files := $(mips32r6_src_files)
+mips_exclude_files := $(mips32r6_exclude_files)
+endif
+
LOCAL_CFLAGS += $(common_cflags)
LOCAL_C_INCLUDES += $(common_c_includes)
@@ -278,3 +300,7 @@
LOCAL_SRC_FILES_mips += $(filter-out $(mips_exclude_files),$(common_src_files) $(mips_src_files))
LOCAL_CFLAGS_mips += $(mips_cflags)
LOCAL_CLANG_ASFLAGS_mips += $(mips_clang_asflags)
+
+LOCAL_SRC_FILES_mips64 += $(filter-out $(mips64_exclude_files),$(common_src_files) $(mips64_src_files))
+LOCAL_CFLAGS_mips64 += $(mips64_cflags)
+LOCAL_CLANG_ASFLAGS_mips64 += $(mips64_clang_asflags)
diff --git a/Ssl-config-host.mk b/Ssl-config-host.mk
index ac1b1bb..8f3bdce 100644
--- a/Ssl-config-host.mk
+++ b/Ssl-config-host.mk
@@ -109,9 +109,31 @@
mips_exclude_files :=
+mips64_clang_asflags :=
+
+mips64_cflags :=
+
+mips64_src_files :=
+
+mips64_exclude_files :=
+
+mips32r6_clang_asflags :=
+
+mips32r6_cflags :=
+
+mips32r6_src_files :=
+
+mips32r6_exclude_files :=
+
LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)/include
+ifdef ARCH_MIPS_REV6
+mips_cflags := $(mips32r6_cflags)
+mips_src_files := $(mips32r6_src_files)
+mips_exclude_files := $(mips32r6_exclude_files)
+endif
+
LOCAL_CFLAGS += $(common_cflags)
LOCAL_C_INCLUDES += $(common_c_includes) $(local_c_includes)
diff --git a/Ssl-config-target.mk b/Ssl-config-target.mk
index c3c3749..30a2621 100644
--- a/Ssl-config-target.mk
+++ b/Ssl-config-target.mk
@@ -109,9 +109,31 @@
mips_exclude_files :=
+mips64_clang_asflags :=
+
+mips64_cflags :=
+
+mips64_src_files :=
+
+mips64_exclude_files :=
+
+mips32r6_clang_asflags :=
+
+mips32r6_cflags :=
+
+mips32r6_src_files :=
+
+mips32r6_exclude_files :=
+
LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)/include
+ifdef ARCH_MIPS_REV6
+mips_cflags := $(mips32r6_cflags)
+mips_src_files := $(mips32r6_src_files)
+mips_exclude_files := $(mips32r6_exclude_files)
+endif
+
LOCAL_CFLAGS += $(common_cflags)
LOCAL_C_INCLUDES += $(common_c_includes)
@@ -134,3 +156,7 @@
LOCAL_SRC_FILES_mips += $(filter-out $(mips_exclude_files),$(common_src_files) $(mips_src_files))
LOCAL_CFLAGS_mips += $(mips_cflags)
LOCAL_CLANG_ASFLAGS_mips += $(mips_clang_asflags)
+
+LOCAL_SRC_FILES_mips64 += $(filter-out $(mips64_exclude_files),$(common_src_files) $(mips64_src_files))
+LOCAL_CFLAGS_mips64 += $(mips64_cflags)
+LOCAL_CLANG_ASFLAGS_mips64 += $(mips64_clang_asflags)
diff --git a/import_openssl.sh b/import_openssl.sh
index c604088..b20c25e 100755
--- a/import_openssl.sh
+++ b/import_openssl.sh
@@ -149,6 +149,8 @@
CC=true $PERL_EXE "$1" o32 > "$OUT"
}
+# TODO: gen_asm_mips64
+
function gen_asm_x86 () {
local OUT
OUT=$(default_asm_file "$@")
@@ -409,7 +411,8 @@
function generate_config_mk() {
declare -r output="$1"
declare -r prefix="$2"
- declare -r all_archs="arm arm64 x86 x86_64 mips"
+ declare -r all_archs="arm arm64 x86 x86_64 mips mips64"
+ declare -r variant_archs="mips32r6"
echo "Generating $(basename $output)"
(
@@ -441,7 +444,7 @@
common_includes=$(var_sorted_value OPENSSL_${prefix}_INCLUDES)
print_vardef_with_prefix_in_mk common_c_includes external/openssl/ $common_includes
- for arch in $all_archs; do
+ for arch in $all_archs $variant_archs; do
arch_clang_asflags=$(var_sorted_value OPENSSL_${prefix}_CLANG_ASFLAGS_${arch})
print_vardef_in_mk ${arch}_clang_asflags $arch_clang_asflags
@@ -467,6 +470,13 @@
LOCAL_EXPORT_C_INCLUDE_DIRS := \$(LOCAL_PATH)/include"
fi
+ echo "
+ifdef ARCH_MIPS_REV6
+mips_cflags := \$(mips32r6_cflags)
+mips_src_files := \$(mips32r6_src_files)
+mips_exclude_files := \$(mips32r6_exclude_files)
+endif"
+
if [ $3 == "target" ]; then
echo "
LOCAL_CFLAGS += \$(common_cflags)
@@ -550,6 +560,10 @@
gen_asm_mips crypto/sha/asm/sha1-mips.pl
gen_asm_mips crypto/sha/asm/sha512-mips.pl crypto/sha/asm/sha256-mips.S
+ # TODO: Generate mips32r6 asm
+
+ # TODO: Generate mips64 asm
+
# Generate x86 asm
gen_asm_x86 crypto/x86cpuid.pl
gen_asm_x86 crypto/aes/asm/aes-586.pl
diff --git a/openssl.config b/openssl.config
index 9edd51e..c8b3dbd 100644
--- a/openssl.config
+++ b/openssl.config
@@ -275,6 +275,16 @@
SHA256_ASM \
"
+# TODO: generate *-mips32r6.S files
+OPENSSL_CRYPTO_DEFINES_mips32r6="\
+OPENSSL_NO_ASM \
+"
+
+# TODO: generate *-mips64.S files
+OPENSSL_CRYPTO_DEFINES_mips64="\
+OPENSSL_NO_ASM \
+"
+
OPENSSL_CRYPTO_DEFINES_x86="\
AES_ASM \
DES_PTR \
@@ -884,6 +894,20 @@
crypto/bn/bn_asm.c \
"
+# TODO: generate *-mips32r6.S files
+OPENSSL_CRYPTO_SOURCES_mips32r6="\
+"
+
+OPENSSL_CRYPTO_SOURCES_EXCLUDES_mips32r6="\
+"
+
+# TODO: generate *-mips64.S files
+OPENSSL_CRYPTO_SOURCES_mips64="\
+"
+
+OPENSSL_CRYPTO_SOURCES_EXCLUDES_mips64="\
+"
+
OPENSSL_CRYPTO_SOURCES_x86="\
crypto/aes/asm/aes-586.S \
crypto/aes/asm/aesni-x86.S \