aboutsummaryrefslogtreecommitdiff
path: root/libvpx/build/make/configure.sh
diff options
context:
space:
mode:
Diffstat (limited to 'libvpx/build/make/configure.sh')
-rwxr-xr-xlibvpx/build/make/configure.sh55
1 files changed, 51 insertions, 4 deletions
diff --git a/libvpx/build/make/configure.sh b/libvpx/build/make/configure.sh
index 81d30a16c..581042e38 100755
--- a/libvpx/build/make/configure.sh
+++ b/libvpx/build/make/configure.sh
@@ -449,6 +449,17 @@ EOF
fi
}
+check_inline_asm() {
+ log check_inline_asm "$@"
+ name="$1"
+ code="$2"
+ shift 2
+ disable_feature $name
+ check_cc "$@" <<EOF && enable_feature $name
+void foo(void) { __asm__ volatile($code); }
+EOF
+}
+
write_common_config_banner() {
print_webm_license config.mk "##" ""
echo '# This file automatically generated by configure. Do not edit!' >> config.mk
@@ -766,6 +777,12 @@ process_common_toolchain() {
*mips32el*)
tgt_isa=mips32
;;
+ loongarch32*)
+ tgt_isa=loongarch32
+ ;;
+ loongarch64*)
+ tgt_isa=loongarch64
+ ;;
esac
# detect tgt_os
@@ -774,7 +791,7 @@ process_common_toolchain() {
tgt_isa=x86_64
tgt_os=`echo $gcctarget | sed 's/.*\(darwin1[0-9]\).*/\1/'`
;;
- *darwin20*)
+ *darwin2[0-1]*)
tgt_isa=`uname -m`
tgt_os=`echo $gcctarget | sed 's/.*\(darwin2[0-9]\).*/\1/'`
;;
@@ -834,6 +851,11 @@ process_common_toolchain() {
ppc*)
enable_feature ppc
;;
+ loongarch*)
+ soft_enable lsx
+ soft_enable lasx
+ enable_feature loongarch
+ ;;
esac
# PIC is probably what we want when building shared libs
@@ -918,9 +940,9 @@ process_common_toolchain() {
add_cflags "-mmacosx-version-min=10.15"
add_ldflags "-mmacosx-version-min=10.15"
;;
- *-darwin20-*)
- add_cflags "-mmacosx-version-min=10.16 -arch ${toolchain%%-*}"
- add_ldflags "-mmacosx-version-min=10.16 -arch ${toolchain%%-*}"
+ *-darwin2[0-1]-*)
+ add_cflags "-arch ${toolchain%%-*}"
+ add_ldflags "-arch ${toolchain%%-*}"
;;
*-iphonesimulator-*)
add_cflags "-miphoneos-version-min=${IOS_VERSION_MIN}"
@@ -1419,6 +1441,15 @@ EOF
;;
esac
;;
+ loongarch*)
+ link_with_cc=gcc
+ setup_gnu_toolchain
+
+ enabled lsx && check_inline_asm lsx '"vadd.b $vr0, $vr1, $vr1"'
+ enabled lsx && soft_enable runtime_cpu_detect
+ enabled lasx && check_inline_asm lasx '"xvadd.b $xr0, $xr1, $xr1"'
+ enabled lasx && soft_enable runtime_cpu_detect
+ ;;
*-gcc|generic-gnu)
link_with_cc=gcc
enable_feature gcc
@@ -1521,6 +1552,22 @@ EOF
;;
esac
+ # only for LOONGARCH platforms
+ case ${toolchain} in
+ loongarch*)
+ if enabled big_endian; then
+ if enabled lsx; then
+ echo "lsx optimizations are available only for little endian platforms"
+ disable_feature lsx
+ fi
+ if enabled lasx; then
+ echo "lasx optimizations are available only for little endian platforms"
+ disable_feature lasx
+ fi
+ fi
+ ;;
+ esac
+
# glibc needs these
if enabled linux; then
add_cflags -D_LARGEFILE_SOURCE