Prevent invalid optimizations for linker sets

This commit is contained in:
Sebastian Huber
2016-04-27 14:18:36 +02:00
parent 33724a268f
commit 4e07ea5063

View File

@@ -51,35 +51,35 @@
static void const * const __set_##set##_sym_##sym \
__section("set_" #set) __used = &sym
#else /* __rtems__ */
#define RTEMS_BSD_DEFINE_SET(set, type) \
type const __CONCAT(_bsd__start_set_,set)[0] \
__section(".rtemsroset.bsd." __STRING(set) ".begin") __used; \
type const __CONCAT(_bsd__stop_set_,set)[0] \
#define RTEMS_BSD_DEFINE_SET(set, type) \
type volatile const __CONCAT(_bsd__start_set_,set)[0] \
__section(".rtemsroset.bsd." __STRING(set) ".begin") __used; \
type volatile const __CONCAT(_bsd__stop_set_,set)[0] \
__section(".rtemsroset.bsd." __STRING(set) ".end") __used
#define RTEMS_BSD_DECLARE_SET(set, type) \
extern type const __CONCAT(_bsd__start_set_,set)[0]; \
extern type const __CONCAT(_bsd__stop_set_,set)[0]
extern type volatile const __CONCAT(_bsd__start_set_,set)[0]; \
extern type volatile const __CONCAT(_bsd__stop_set_,set)[0]
#define RTEMS_BSD_DEFINE_SET_ITEM(set, sym, type) \
static type const __set_##set##_sym_##sym \
static type volatile const __set_##set##_sym_##sym \
__section(".rtemsroset.bsd." __STRING(set) ".content") __used
#define __MAKE_SET(set, sym) \
RTEMS_BSD_DEFINE_SET_ITEM(set, sym, const void *) = &sym
#define RTEMS_BSD_DEFINE_RWSET(set, type) \
type __CONCAT(_bsd__start_set_,set)[0] \
__section(".rtemsrwset.bsd." __STRING(set) ".begin") __used; \
type __CONCAT(_bsd__start_set_,set)[0] \
__section(".rtemsrwset.bsd." __STRING(set) ".begin") __used; \
type __CONCAT(_bsd__stop_set_,set)[0] \
__section(".rtemsrwset.bsd." __STRING(set) ".end") __used
#define RTEMS_BSD_DECLARE_RWSET(set, type) \
extern type __CONCAT(_bsd__start_set_,set)[0]; \
extern type __CONCAT(_bsd__stop_set_,set)[0]
extern type volatile __CONCAT(_bsd__start_set_,set)[0]; \
extern type volatile __CONCAT(_bsd__stop_set_,set)[0]
#define RTEMS_BSD_DEFINE_RWSET_ITEM(set, sym, type) \
static type __set_##set##_sym_##sym \
static type volatile __set_##set##_sym_##sym \
__section(".rtemsrwset.bsd." __STRING(set) ".content") __used
#define __MAKE_RWSET(set, sym) \