2b0445262a
Embedding sd_id128_t's in constant strings was rather cumbersome. We had SD_ID128_CONST_STR which returned a const char[], but it had two problems: - it wasn't possible to statically concatanate this array with a normal string - gcc wasn't really able to optimize this, and generated code to perform the "conversion" at runtime. Because of this, even our own code in coredumpctl wasn't using SD_ID128_CONST_STR. Add a new macro to generate a constant string: SD_ID128_MAKE_STR. It is not as elegant as SD_ID128_CONST_STR, because it requires a repetition of the numbers, but in practice it is more convenient to use, and allows gcc to generate smarter code: $ size .libs/systemd{,-logind,-journald}{.old,} text data bss dec hex filename 1265204 149564 4808 1419576 15a938 .libs/systemd.old 1260268 149564 4808 1414640 1595f0 .libs/systemd 246805 13852 209 260866 3fb02 .libs/systemd-logind.old 240973 13852 209 255034 3e43a .libs/systemd-logind 146839 4984 34 151857 25131 .libs/systemd-journald.old 146391 4984 34 151409 24f71 .libs/systemd-journald It is also much easier to check if a certain binary uses a certain MESSAGE_ID: $ strings .libs/systemd.old|grep MESSAGE_ID MESSAGE_ID=%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x MESSAGE_ID=%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x MESSAGE_ID=%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x MESSAGE_ID=%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x $ strings .libs/systemd|grep MESSAGE_ID MESSAGE_ID=c7a787079b354eaaa9e77b371893cd27 MESSAGE_ID=b07a249cd024414a82dd00cd181378ff MESSAGE_ID=641257651c1b4ec9a8624d7a40a9e1e7 MESSAGE_ID=de5b426a63be47a7b6ac3eaac82e2f6f MESSAGE_ID=d34d037fff1847e6ae669a370e694725 MESSAGE_ID=7d4958e842da4a758f6c1cdc7b36dcc5 MESSAGE_ID=1dee0369c7fc4736b7099b38ecb46ee7 MESSAGE_ID=39f53479d3a045ac8e11786248231fbf MESSAGE_ID=be02cf6855d2428ba40df7e9d022f03d MESSAGE_ID=7b05ebc668384222baa8881179cfda54 MESSAGE_ID=9d1aaa27d60140bd96365438aad20286 |
||
---|---|---|
.. | ||
.gitignore | ||
audit-type.c | ||
audit-type.h | ||
cat.c | ||
catalog.c | ||
catalog.h | ||
compress.c | ||
compress.h | ||
fsprg.c | ||
fsprg.h | ||
journal-authenticate.c | ||
journal-authenticate.h | ||
journal-def.h | ||
journal-file.c | ||
journal-file.h | ||
journal-internal.h | ||
journal-qrcode.c | ||
journal-qrcode.h | ||
journal-send.c | ||
journal-vacuum.c | ||
journal-vacuum.h | ||
journal-verify.c | ||
journal-verify.h | ||
journalctl.c | ||
journald-audit.c | ||
journald-audit.h | ||
journald-console.c | ||
journald-console.h | ||
journald-gperf.gperf | ||
journald-kmsg.c | ||
journald-kmsg.h | ||
journald-native.c | ||
journald-native.h | ||
journald-rate-limit.c | ||
journald-rate-limit.h | ||
journald-server.c | ||
journald-server.h | ||
journald-stream.c | ||
journald-stream.h | ||
journald-syslog.c | ||
journald-syslog.h | ||
journald-wall.c | ||
journald-wall.h | ||
journald.c | ||
journald.conf | ||
lookup3.c | ||
lookup3.h | ||
Makefile | ||
mmap-cache.c | ||
mmap-cache.h | ||
sd-journal.c | ||
test-audit-type.c | ||
test-catalog.c | ||
test-compress-benchmark.c | ||
test-compress.c | ||
test-journal-enum.c | ||
test-journal-flush.c | ||
test-journal-init.c | ||
test-journal-interleaving.c | ||
test-journal-match.c | ||
test-journal-send.c | ||
test-journal-stream.c | ||
test-journal-syslog.c | ||
test-journal-verify.c | ||
test-journal.c | ||
test-mmap-cache.c |