| package { |
| default_applicable_licenses: ["external_arm-optimized-routines_license"], |
| } |
| |
| // Added automatically by a large-scale-change |
| // See: http://go/android-license-faq |
| license { |
| name: "external_arm-optimized-routines_license", |
| visibility: [":__subpackages__"], |
| license_kinds: [ |
| "SPDX-license-identifier-MIT", |
| ], |
| license_text: [ |
| "LICENSE", |
| ], |
| } |
| |
| cc_defaults { |
| name: "arm-optimized-routines-defaults", |
| host_supported: true, |
| cflags: [ |
| "-Werror", |
| "-Wno-unused-parameter", |
| "-O2", |
| "-ffp-contract=fast", |
| "-fno-math-errno", |
| |
| // bionic configuration. |
| |
| // We're actually implementing bionic here, so we don't want <math.h> |
| // to try to be helpful by renaming long double routines. |
| "-D__BIONIC_LP32_USE_LONG_DOUBLE", |
| "-DFLT_EVAL_METHOD=0", |
| |
| // arm-optimized-routines configuration. |
| |
| // BSD libm doesn't set errno, and bionic was based on the BSDs. |
| // https://github.com/ARM-software/optimized-routines/issues/16#issuecomment-572009659 |
| "-DWANT_ERRNO=0", |
| // TODO: we may want the vector code in future, but it's not ready yet. |
| "-DWANT_VMATH=0", |
| ], |
| local_include_dirs: ["math/include"], |
| } |
| |
| cc_defaults { |
| name: "libarm-optimized-routines-defaults", |
| defaults: ["arm-optimized-routines-defaults"], |
| ramdisk_available: true, |
| vendor_ramdisk_available: true, |
| recovery_available: true, |
| native_bridge_supported: true, |
| apex_available: [ |
| "//apex_available:platform", |
| "com.android.runtime", |
| ], |
| |
| stl: "none", |
| static: { |
| system_shared_libs: [], |
| }, |
| header_libs: ["libc_headers"], |
| } |
| |
| cc_library_static { |
| name: "libarm-optimized-routines-math", |
| defaults: ["libarm-optimized-routines-defaults"], |
| exclude_srcs: [ |
| // Provided by: |
| // bionic/libm/upstream-freebsd/lib/msun/src/s_erf.c |
| // bionic/libm/upstream-freebsd/lib/msun/src/s_erff.c |
| "math/erf.c", |
| "math/erf_data.c", |
| "math/erff.c", |
| "math/erff_data.c", |
| ], |
| srcs: [ |
| "math/*.c", |
| ], |
| |
| // arch-specific settings |
| arch: { |
| arm64: { |
| cflags: [ |
| "-DHAVE_FAST_FMA=1", |
| ], |
| }, |
| }, |
| |
| target: { |
| darwin: { |
| enabled: false, |
| }, |
| linux_bionic: { |
| enabled: true, |
| }, |
| }, |
| } |
| |
| cc_library_static { |
| name: "libarm-optimized-routines-string", |
| defaults: ["libarm-optimized-routines-defaults"], |
| |
| arch: { |
| arm64: { |
| srcs: [ |
| "string/aarch64/memchr-mte.S", |
| "string/aarch64/memchr.S", |
| "string/aarch64/memcmp.S", |
| "string/aarch64/memrchr.S", |
| "string/aarch64/stpcpy-mte.S", |
| "string/aarch64/stpcpy.S", |
| "string/aarch64/strchrnul-mte.S", |
| "string/aarch64/strchrnul.S", |
| "string/aarch64/strchr-mte.S", |
| "string/aarch64/strchr.S", |
| "string/aarch64/strcmp-mte.S", |
| "string/aarch64/strcmp.S", |
| "string/aarch64/strcpy-mte.S", |
| "string/aarch64/strcpy.S", |
| "string/aarch64/strlen-mte.S", |
| "string/aarch64/strlen.S", |
| "string/aarch64/strncmp-mte.S", |
| "string/aarch64/strncmp.S", |
| "string/aarch64/strnlen.S", |
| "string/aarch64/strrchr-mte.S", |
| "string/aarch64/strrchr.S", |
| ], |
| asflags: [ |
| "-D__memcmp_aarch64=memcmp", |
| "-D__memrchr_aarch64=memrchr", |
| "-D__strnlen_aarch64=strnlen", |
| ] |
| }, |
| }, |
| } |
| |
| // adb shell "/data/nativetest64/mathtest/mathtest /data/nativetest64/mathtest/test/testcases/directed/*" |
| // adb shell "/data/nativetest/mathtest/mathtest /data/nativetest/mathtest/test/testcases/directed/*" |
| cc_test { |
| name: "mathtest", |
| defaults: ["arm-optimized-routines-defaults"], |
| gtest: false, |
| cflags: ["-Wno-missing-braces"], |
| srcs: ["math/test/mathtest.c"], |
| data: ["math/test/testcases/directed/*.tst"], |
| target: { |
| darwin: { |
| enabled: false, |
| }, |
| linux_bionic: { |
| enabled: true, |
| }, |
| }, |
| } |
| |
| cc_test { |
| name: "ulp", |
| defaults: ["arm-optimized-routines-defaults"], |
| gtest: false, |
| srcs: ["math/test/ulp.c"], |
| data: ["math/test/runulp.sh"], |
| } |
| |
| sh_test { |
| name: "arm-optimized-routines-tests", |
| src: "run-arm-optimized-routines-tests-on-android.sh", |
| filename: "run-arm-optimized-routines-tests-on-android.sh", |
| test_suites: ["general-tests"], |
| host_supported: true, |
| device_supported: false, |
| require_root: true, |
| target_required: [ |
| "mathtest", |
| "ulp", |
| ], |
| } |