blob: 78f1fdc770e41d3372e0f9accf9f9b4d09b7e1c3 [file] [log] [blame]
Elliott Hughes3eae8e02019-12-18 14:17:17 -08001cc_defaults {
2 name: "arm-optimized-routines-defaults",
Elliott Hughesc2e01832018-07-20 13:55:44 -07003 host_supported: true,
4 cflags: [
5 "-Werror",
Elliott Hughes7504fa92019-10-16 11:00:15 -07006 "-Wno-unused-parameter",
Elliott Hughesc2e01832018-07-20 13:55:44 -07007 "-O2",
Elliott Hughesef3eb232020-01-10 15:06:56 -08008 "-ffp-contract=fast",
9 "-fno-math-errno",
10
11 // bionic configuration.
12
Elliott Hughes055b2f32019-09-17 13:05:56 -070013 // We're actually implementing bionic here, so we don't want <math.h>
14 // to try to be helpful by renaming long double routines.
15 "-D__BIONIC_LP32_USE_LONG_DOUBLE",
Adhemerval Zanella9e6e8322018-07-26 11:43:46 -030016 "-DFLT_EVAL_METHOD=0",
Elliott Hughesef3eb232020-01-10 15:06:56 -080017
18 // arm-optimized-routines configuration.
19
20 // BSD libm doesn't set errno, and bionic was based on the BSDs.
21 // https://github.com/ARM-software/optimized-routines/issues/16#issuecomment-572009659
22 "-DWANT_ERRNO=0",
Elliott Hughes9ba6fed2020-01-13 09:07:28 -080023 // TODO: we may want the vector code in future, but it's not ready yet.
Elliott Hughesef3eb232020-01-10 15:06:56 -080024 "-DWANT_VMATH=0",
Elliott Hughesc2e01832018-07-20 13:55:44 -070025 ],
Elliott Hughes3f885362019-10-15 09:04:39 -070026 local_include_dirs: ["math/include"],
Elliott Hughes3eae8e02019-12-18 14:17:17 -080027}
28
Peter Collingbournea1546db2020-02-21 12:19:26 -080029cc_defaults {
30 name: "libarm-optimized-routines-defaults",
Elliott Hughes3eae8e02019-12-18 14:17:17 -080031 defaults: ["arm-optimized-routines-defaults"],
Yifan Hong212cd842020-01-21 18:16:50 -080032 ramdisk_available: true,
Yifan Hongc13a69b2020-10-21 18:39:44 -070033 vendor_ramdisk_available: true,
Elliott Hughes3eae8e02019-12-18 14:17:17 -080034 recovery_available: true,
35 native_bridge_supported: true,
Peter Collingbournea1546db2020-02-21 12:19:26 -080036 apex_available: [
37 "//apex_available:platform",
38 "com.android.runtime",
39 ],
40
41 stl: "none",
42 static: {
43 system_shared_libs: [],
44 },
Martin Stjernholmcec4de02020-04-08 01:02:20 +010045 header_libs: ["libc_headers"],
Peter Collingbournea1546db2020-02-21 12:19:26 -080046}
47
48cc_library {
49 name: "libarm-optimized-routines-math",
50 defaults: ["libarm-optimized-routines-defaults"],
Haibo Huang59371d52020-11-30 18:13:41 -080051 exclude_srcs: [
52 // Provided by:
53 // bionic/libm/upstream-freebsd/lib/msun/src/s_erf.c
54 // bionic/libm/upstream-freebsd/lib/msun/src/s_erff.c
55 "math/erf.c",
56 "math/erf_data.c",
57 "math/erff.c",
58 "math/erff_data.c",
59 ],
Elliott Hughesc2e01832018-07-20 13:55:44 -070060 srcs: [
Haibo Huangcd7d5362019-07-31 18:22:02 -070061 "math/*.c",
Elliott Hughesc2e01832018-07-20 13:55:44 -070062 ],
Adhemerval Zanella8e8d1b72018-08-06 13:22:58 -030063
64 // arch-specific settings
65 arch: {
66 arm64: {
67 cflags: [
68 "-DHAVE_FAST_FMA=1",
69 ],
70 },
71 },
72
Elliott Hughesc2e01832018-07-20 13:55:44 -070073 target: {
Christopher Ferris8785a762018-07-27 13:59:37 -070074 darwin: {
75 enabled: false,
76 },
Elliott Hughesc2e01832018-07-20 13:55:44 -070077 linux_bionic: {
78 enabled: true,
79 },
80 },
Peter Collingbournea1546db2020-02-21 12:19:26 -080081}
82
83cc_library {
84 name: "libarm-optimized-routines-string",
85 defaults: ["libarm-optimized-routines-defaults"],
86
87 arch: {
88 arm64: {
89 srcs: [
Peter Collingbourne5bde7af2020-06-03 16:56:02 -070090 "string/aarch64/memchr-mte.S",
Peter Collingbournea1546db2020-02-21 12:19:26 -080091 "string/aarch64/memchr.S",
92 "string/aarch64/memcmp.S",
Peter Collingbourne5bde7af2020-06-03 16:56:02 -070093 "string/aarch64/memrchr.S",
94 "string/aarch64/stpcpy-mte.S",
Peter Collingbournea1546db2020-02-21 12:19:26 -080095 "string/aarch64/stpcpy.S",
Peter Collingbourne5bde7af2020-06-03 16:56:02 -070096 "string/aarch64/strchrnul-mte.S",
Peter Collingbournea1546db2020-02-21 12:19:26 -080097 "string/aarch64/strchrnul.S",
98 "string/aarch64/strchr-mte.S",
99 "string/aarch64/strchr.S",
Peter Collingbourne5bde7af2020-06-03 16:56:02 -0700100 "string/aarch64/strcmp-mte.S",
Peter Collingbournea1546db2020-02-21 12:19:26 -0800101 "string/aarch64/strcmp.S",
Peter Collingbourne5bde7af2020-06-03 16:56:02 -0700102 "string/aarch64/strcpy-mte.S",
Peter Collingbournea1546db2020-02-21 12:19:26 -0800103 "string/aarch64/strcpy.S",
104 "string/aarch64/strlen-mte.S",
105 "string/aarch64/strlen.S",
Peter Collingbourne5bde7af2020-06-03 16:56:02 -0700106 "string/aarch64/strncmp-mte.S",
Peter Collingbournea1546db2020-02-21 12:19:26 -0800107 "string/aarch64/strncmp.S",
108 "string/aarch64/strnlen.S",
Peter Collingbourne5bde7af2020-06-03 16:56:02 -0700109 "string/aarch64/strrchr-mte.S",
Peter Collingbournea1546db2020-02-21 12:19:26 -0800110 "string/aarch64/strrchr.S",
111 ],
112 asflags: [
113 "-D__memcmp_aarch64=memcmp",
Peter Collingbourne5bde7af2020-06-03 16:56:02 -0700114 "-D__memrchr_aarch64=memrchr",
115 "-D__strnlen_aarch64=strnlen",
Peter Collingbournea1546db2020-02-21 12:19:26 -0800116 ]
117 },
Dan Willemsen35edf452018-12-03 13:56:24 -0800118 },
Elliott Hughesc2e01832018-07-20 13:55:44 -0700119}
120
Elliott Hughese9c71052018-08-01 13:26:04 -0700121// adb shell "/data/nativetest64/mathtest/mathtest /data/nativetest64/mathtest/test/testcases/directed/*"
122// adb shell "/data/nativetest/mathtest/mathtest /data/nativetest/mathtest/test/testcases/directed/*"
Elliott Hughesc2e01832018-07-20 13:55:44 -0700123cc_test {
124 name: "mathtest",
Elliott Hughes3eae8e02019-12-18 14:17:17 -0800125 defaults: ["arm-optimized-routines-defaults"],
Elliott Hughesc2e01832018-07-20 13:55:44 -0700126 gtest: false,
Elliott Hughes3eae8e02019-12-18 14:17:17 -0800127 cflags: ["-Wno-missing-braces"],
128 srcs: ["math/test/mathtest.c"],
Haibo Huangcd7d5362019-07-31 18:22:02 -0700129 data: ["math/test/testcases/directed/*.tst"],
Elliott Hughesc2e01832018-07-20 13:55:44 -0700130 target: {
Elliott Hughese3966aa2018-07-26 08:46:15 -0700131 darwin: {
132 enabled: false,
133 },
Elliott Hughesc2e01832018-07-20 13:55:44 -0700134 linux_bionic: {
135 enabled: true,
136 },
137 },
138}
Elliott Hughes3eae8e02019-12-18 14:17:17 -0800139
140cc_test {
141 name: "ulp",
142 defaults: ["arm-optimized-routines-defaults"],
143 gtest: false,
144 srcs: ["math/test/ulp.c"],
145 data: ["math/test/runulp.sh"],
146}
147
148sh_test {
149 name: "arm-optimized-routines-tests",
150 src: "run-arm-optimized-routines-tests-on-android.sh",
151 filename: "run-arm-optimized-routines-tests-on-android.sh",
152 test_suites: ["general-tests"],
153 host_supported: true,
154 device_supported: false,
frankfeng726e3ec2020-10-16 13:55:24 -0700155 require_root: true,
Elliott Hughes3eae8e02019-12-18 14:17:17 -0800156 target_required: [
157 "mathtest",
158 "ulp",
159 ],
160}