Add support for ashmem-host for host Windows
Migrate to tmpfile and fileno for temp file operations. These calls are
supported on MinGW, and the temp files are automatically cleaned up.
A Windows variant of ashmem-host is needed to support CursorWindows on
host Windows.
In Windows, it is not possible to unlink an open file, so the nlink
check in ashmem_validate_stat must be made Unix-only.
Test: SQLiteDatabaseTest in Google3
Test: libcutils_test_static on Windows
Bug: 317884162
Change-Id: I7fc0f1f49406b01549b7f4d7e138cb3e4d79be72
diff --git a/libcutils/Android.bp b/libcutils/Android.bp
index b7752d9..862af84 100644
--- a/libcutils/Android.bp
+++ b/libcutils/Android.bp
@@ -156,23 +156,18 @@
"fs_config.cpp",
],
},
- not_windows: {
- srcs: libcutils_nonwindows_sources + [
- "ashmem-host.cpp",
- "trace-host.cpp",
- ],
- },
- windows: {
- host_ldlibs: ["-lws2_32"],
-
+ host: {
srcs: [
"trace-host.cpp",
+ "ashmem-host.cpp",
],
-
+ },
+ not_windows: {
+ srcs: libcutils_nonwindows_sources,
+ },
+ windows: {
enabled: true,
- cflags: [
- "-D_GNU_SOURCE",
- ],
+ host_ldlibs: ["-lws2_32"],
},
android: {
sanitize: {
@@ -241,6 +236,7 @@
cc_defaults {
name: "libcutils_test_default",
srcs: [
+ "ashmem_base_test.cpp",
"native_handle_test.cpp",
"properties_test.cpp",
"sockets_test.cpp",
@@ -299,20 +295,26 @@
cc_defaults {
name: "libcutils_test_static_defaults",
defaults: ["libcutils_test_default"],
- static_libs: [
- "libc",
- "libcgrouprc_format",
- ] + test_libraries + always_static_test_libraries,
stl: "libc++_static",
require_root: true,
target: {
android: {
static_executable: true,
+ static_libs: [
+ "libcgrouprc_format",
+ ] + test_libraries + always_static_test_libraries,
+ },
+ not_windows: {
+ static_libs: test_libraries + always_static_test_libraries,
},
windows: {
+ static_libs: [
+ "libbase",
+ "libcutils",
+ "libcutils_sockets",
+ ],
host_ldlibs: ["-lws2_32"],
-
enabled: true,
},
},
@@ -320,6 +322,7 @@
cc_test {
name: "libcutils_test_static",
+ host_supported: true,
test_suites: ["device-tests"],
defaults: ["libcutils_test_static_defaults"],
}