* variables declared in .so's, as the list is private to the same linking unit. But maybe that's a good thing. */
#define _common_static_destruct_attrs_ \
- /* Older compilers don't know "retain" attribute. */ \
- _Pragma("GCC diagnostic ignored \"-Wattributes\"") \
/* The actual destructor structure we place in a special section to find it. */ \
_section_("SYSTEMD_STATIC_DESTRUCT") \
/* Use pointer alignment, since that is apparently what gcc does for static variables. */ \
* the error map is really added to the final binary.
*
* In addition, set the retain attribute so that the section cannot be
- * discarded by ld --gc-sections -z start-stop-gc. Older compilers would
- * warn for the unknown attribute, so just disable -Wattributes.
+ * discarded by ld --gc-sections -z start-stop-gc.
*/
#define BUS_ERROR_MAP_ELF_REGISTER \
- _Pragma("GCC diagnostic ignored \"-Wattributes\"") \
_section_("SYSTEMD_BUS_ERROR_MAP") \
_used_ \
_retain_ \
/* See static-destruct.h for an explanation of how this works. */
#define REGISTER_TEST(func, ...) \
- _Pragma("GCC diagnostic ignored \"-Wattributes\"") \
_section_("SYSTEMD_TEST_TABLE") _alignptr_ _used_ _retain_ _variable_no_sanitize_address_ \
static const TestFunc UNIQ_T(static_test_table_entry, UNIQ) = { \
.f = (union f) &(func), \