diff options
author | Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> | 2014-10-31 10:07:54 -0400 |
---|---|---|
committer | Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> | 2014-10-31 11:32:00 -0400 |
commit | fedfcdee6f55c3f183752b7fac4879bf41eed60b (patch) | |
tree | c37f5157e631d6e9426d8eb9905c8894061c0205 /src/libsystemd/sd-bus | |
parent | 5e071f200c4cc86443af07a876ee0e1c2901fda1 (diff) |
Make bus errno mappings non-static
__attribute__((used)) is not enough to force static variables to
be carried over to a compiled program from a library. Mappings defined
in libsystemd-shared.a were not visible in the compiled binaries.
To ensure that the mappings are present in the final binary, the
tables are made non-static and are given a real unique name by which
they can be referenced.
To use a mapping defined not in the local compilation unit (e.g. in
a library) a reference to the mapping table is added. This is done
by including a declaration in the header file.
Expected values in test-engine are fixed to reflect the new mappings.
Diffstat (limited to 'src/libsystemd/sd-bus')
-rw-r--r-- | src/libsystemd/sd-bus/bus-error.c | 2 | ||||
-rw-r--r-- | src/libsystemd/sd-bus/test-bus-error.c | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/src/libsystemd/sd-bus/bus-error.c b/src/libsystemd/sd-bus/bus-error.c index ad1a66da72..cfb8d147a7 100644 --- a/src/libsystemd/sd-bus/bus-error.c +++ b/src/libsystemd/sd-bus/bus-error.c @@ -35,7 +35,7 @@ #define BUS_ERROR_OOM SD_BUS_ERROR_MAKE_CONST(SD_BUS_ERROR_NO_MEMORY, "Out of memory") #define BUS_ERROR_FAILED SD_BUS_ERROR_MAKE_CONST(SD_BUS_ERROR_FAILED, "Operation failed") -SD_BUS_ERROR_MAPPING = { +SD_BUS_ERROR_MAPPING(sd_bus_standard) = { {"org.freedesktop.DBus.Error.Failed", EACCES}, {"org.freedesktop.DBus.Error.NoMemory", ENOMEM}, {"org.freedesktop.DBus.Error.ServiceUnknown", EHOSTUNREACH}, diff --git a/src/libsystemd/sd-bus/test-bus-error.c b/src/libsystemd/sd-bus/test-bus-error.c index aff34a90cd..ae894e39fd 100644 --- a/src/libsystemd/sd-bus/test-bus-error.c +++ b/src/libsystemd/sd-bus/test-bus-error.c @@ -130,7 +130,7 @@ static void test_errno_mapping_standard(void) { assert_se(sd_bus_error_set(NULL, "System.Error.WHATSIT", NULL) == -EIO); } -SD_BUS_ERROR_MAPPING = { +SD_BUS_ERROR_MAPPING(test) = { {"org.freedesktop.custom-dbus-error", 5}, {"org.freedesktop.custom-dbus-error-2", 52}, }; |