sd-bus,static-destruct: clean up how we do our ELF section magic
authorLennart Poettering <lennart@poettering.net>
Mon, 3 Dec 2018 12:22:15 +0000 (13:22 +0100)
committerLennart Poettering <lennart@poettering.net>
Mon, 3 Dec 2018 12:28:26 +0000 (13:28 +0100)
commita898603563ffb21af5cf8dc91f9a516a41743991
tree7c6fe76923f58283b598d95b722b8ef9afcf5ff7
parent90b365cee03bab9b4925f2e918c362c4183f8e92
sd-bus,static-destruct: clean up how we do our ELF section magic

This cleans up a bit how we set up things for the ELF section magic:

1. Let's always use our gcc macros, instead of __attribute__ directly

2. Align our structures to sizeof(void*), i.e. the pointer size, rather
   than a fixed 8 or __BIGGEST_ALIGNMENT__. The former is unnecessarily
   high for 32bit systems, the latter too high for 64bit systems. gcc
   seems to use ptr alignment for static variables itself, hence this
   should be good enough for us too. Moreover, the Linux kernel also
   uses pointer alginment for all its ELF section registration magic,
   hence this should be good enough for us too.

3. Let's always prefix the sections we create ourself with SYSTEMD_,
   just to make clear where they come from.

4. Always align the pointer we start from when iterating through these
   lists. This should be unnecessary, but makes things nicely
   systematic, as we'll align all pointers we use to access these
   sections properly.
src/basic/static-destruct.h
src/libsystemd/sd-bus/bus-error.c
src/libsystemd/sd-bus/bus-error.h
src/libsystemd/sd-bus/test-bus-error.c