Disable Address Sanitizer instrumentation of the link_set objects

The link_set array must contain consecutive elements that can be iterated.

GCC disables instrumentation of globals for user-defined sections and this
__noasan attribute is implicit for this compiler. For Clang it is required
to be specified explicitly.
This commit is contained in:
kamil 2020-03-21 22:52:48 +00:00
parent ad22411d61
commit e01b61be71

View File

@ -1,4 +1,4 @@
/* $NetBSD: cdefs_elf.h,v 1.53 2017/08/10 19:03:27 joerg Exp $ */ /* $NetBSD: cdefs_elf.h,v 1.54 2020/03/21 22:52:48 kamil Exp $ */
/* /*
* Copyright (c) 1995, 1996 Carnegie-Mellon University. * Copyright (c) 1995, 1996 Carnegie-Mellon University.
@ -160,10 +160,10 @@
#ifndef __lint__ #ifndef __lint__
#define __link_set_make_entry(set, sym) \ #define __link_set_make_entry(set, sym) \
static void const * const __link_set_##set##_sym_##sym \ static void const * const __link_set_##set##_sym_##sym \
__section("link_set_" #set) __used = (const void *)&sym __section("link_set_" #set) __noasan __used = (const void *)&sym
#define __link_set_make_entry2(set, sym, n) \ #define __link_set_make_entry2(set, sym, n) \
static void const * const __link_set_##set##_sym_##sym##_##n \ static void const * const __link_set_##set##_sym_##sym##_##n \
__section("link_set_" #set) __used = (const void *)&sym[n] __section("link_set_" #set) __noasan __used = (const void *)&sym[n]
#else #else
#define __link_set_make_entry(set, sym) \ #define __link_set_make_entry(set, sym) \
extern void const * const __link_set_##set##_sym_##sym extern void const * const __link_set_##set##_sym_##sym