Explain why snapuserd is a static binary.

Static binaries are pretty rare (and usually a bad idea) but there's a
rationale for this one, so we should record it.

Test: treehugger
Change-Id: I7fc5c32bbbec1ccf195d94eaedfb1bd718a364e1
This commit is contained in:
Elliott Hughes 2021-12-03 13:57:10 -08:00
parent aa6964861a
commit 17572ca9e7

View file

@ -61,12 +61,12 @@ cc_defaults {
"dm-snapshot-merge/snapuserd_worker.cpp",
"dm-snapshot-merge/snapuserd_readahead.cpp",
"snapuserd_daemon.cpp",
"snapuserd_buffer.cpp",
"user-space-merge/snapuserd_core.cpp",
"user-space-merge/snapuserd_dm_user.cpp",
"user-space-merge/snapuserd_merge.cpp",
"user-space-merge/snapuserd_readahead.cpp",
"user-space-merge/snapuserd_transitions.cpp",
"snapuserd_buffer.cpp",
"user-space-merge/snapuserd_core.cpp",
"user-space-merge/snapuserd_dm_user.cpp",
"user-space-merge/snapuserd_merge.cpp",
"user-space-merge/snapuserd_readahead.cpp",
"user-space-merge/snapuserd_transitions.cpp",
"user-space-merge/snapuserd_server.cpp",
],
@ -95,7 +95,14 @@ cc_binary {
init_rc: [
"snapuserd.rc",
],
// snapuserd is started during early boot by first-stage init. At that
// point, /system is mounted using the "dm-user" device-mapper kernel
// module. dm-user routes all I/O to userspace to be handled by
// snapuserd, which would lead to deadlock if we had to handle page
// faults for its code pages.
static_executable: true,
system_shared_libs: [],
ramdisk_available: true,
vendor_ramdisk_available: true,
@ -111,7 +118,7 @@ cc_test {
"dm-snapshot-merge/cow_snapuserd_test.cpp",
"dm-snapshot-merge/snapuserd.cpp",
"dm-snapshot-merge/snapuserd_worker.cpp",
"snapuserd_buffer.cpp",
"snapuserd_buffer.cpp",
],
cflags: [
"-Wall",