]> git.ipfire.org Git - thirdparty/systemd.git/commit - src/sleep/sleep.c
tree-wide: add SD_ID128_MAKE_STR, remove LOG_MESSAGE_ID
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Sun, 6 Nov 2016 17:48:23 +0000 (12:48 -0500)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Wed, 15 Feb 2017 05:45:12 +0000 (00:45 -0500)
commit2b0445262ad9be2a9bf49956ab8e886ea2e48a0a
treeb5bdc069842f9c6a7223d3abb57dfd6c6841fa68
parent5ab9ed0762ca332634f221c56258ee8e32cdfdc0
tree-wide: add SD_ID128_MAKE_STR, remove LOG_MESSAGE_ID

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
27 files changed:
Makefile-man.am
man/sd-id128.xml
src/basic/log.c
src/basic/log.h
src/core/execute.c
src/core/job.c
src/core/manager.c
src/core/unit.c
src/coredump/coredump.c
src/coredump/coredumpctl.c
src/journal/journald-kmsg.c
src/journal/journald-server.c
src/journal/journald-server.h
src/journal/journald-syslog.c
src/journal/journald.c
src/login/logind-button.c
src/login/logind-dbus.c
src/login/logind-seat.c
src/login/logind-session.c
src/machine/machine.c
src/resolve/resolved-dns-server.c
src/resolve/resolved-dns-transaction.c
src/resolve/resolved-dns-trust-anchor.c
src/sleep/sleep.c
src/systemd/sd-id128.h
src/systemd/sd-messages.h
src/timedate/timedated.c