native_simulator: Get latest from upstream

Align with native_simulator's upstream main
6f6b359c4fe26ddeed8a65ad55f5bc402d3b7f91

Which includes:
* 6f6b359 Avoid issue with llvm address sanitizer

Signed-off-by: Alberto Escolar Piedras <alberto.escolar.piedras@nordicsemi.no>
This commit is contained in:
Alberto Escolar Piedras 2024-04-10 14:17:17 +02:00 committed by Alberto Escolar
parent 1c8ea0a941
commit 1fcc245eda
3 changed files with 12 additions and 2 deletions

View file

@ -35,7 +35,7 @@ struct nsi_hw_event_st {
*/ */
#define NSI_HW_EVENT(t, fn, prio) \ #define NSI_HW_EVENT(t, fn, prio) \
static const struct nsi_hw_event_st NSI_CONCAT(NSI_CONCAT(__nsi_hw_event_, fn), t) \ static const struct nsi_hw_event_st NSI_CONCAT(NSI_CONCAT(__nsi_hw_event_, fn), t) \
__attribute__((__used__)) \ __attribute__((__used__)) NSI_NOASAN \
__attribute__((__section__(".nsi_hw_event_" NSI_STRINGIFY(prio)))) \ __attribute__((__section__(".nsi_hw_event_" NSI_STRINGIFY(prio)))) \
= { \ = { \
.callback = fn, \ .callback = fn, \

View file

@ -29,4 +29,14 @@
#define NSI_FUNC_NORETURN __attribute__((__noreturn__)) #define NSI_FUNC_NORETURN __attribute__((__noreturn__))
#if defined(__clang__)
/* The address sanitizer in llvm adds padding (redzones) after data
* But for those we are re-grouping using the linker script
* we cannot have that extra padding as we intend to iterate over them
*/
#define NSI_NOASAN __attribute__((no_sanitize("address")))
#else
#define NSI_NOASAN
#endif
#endif /* NSI_COMMON_SRC_INCL_NSI_UTILS_H */ #endif /* NSI_COMMON_SRC_INCL_NSI_UTILS_H */

View file

@ -51,7 +51,7 @@ extern "C" {
*/ */
#define NSI_TASK(fn, level, prio) \ #define NSI_TASK(fn, level, prio) \
static void (* const NSI_CONCAT(__nsi_task_, fn))(void) \ static void (* const NSI_CONCAT(__nsi_task_, fn))(void) \
__attribute__((__used__)) \ __attribute__((__used__)) NSI_NOASAN \
__attribute__((__section__(".nsi_" #level NSI_STRINGIFY(prio) "_task")))\ __attribute__((__section__(".nsi_" #level NSI_STRINGIFY(prio) "_task")))\
= fn; \ = fn; \
/* Let's cross-check the macro level is a valid one, so we don't silently drop it */ \ /* Let's cross-check the macro level is a valid one, so we don't silently drop it */ \