On Mon, Oct 22, 2018 at 3:59 AM Miguel Ojeda <miguel.ojeda.sandonis@xxxxxxxxx> wrote: > > Here it is the Compiler Attributes series/tree, which tries to disentangle > the include/linux/compiler*.h headers and bring them up to date. I've finally emptied the "normal" pull queues, and am looking at the odd ones that I felt I needed to review more in-depth. This looked fine to me, and I already pulled, but when looking at the conflict for __no_sanitize_address_or_inline, I also noticed that you actually changed the gcc version logic. The logic for using __no_sanitize_address *used* to be #if GCC_VERSION >= 40902 but you have changed it to # define __GCC4_has_attribute___no_sanitize_address__ (__GNUC_MINOR__ >= 8) so now it's gcc-4.8+ rather than gcc-4.9.2+. I'm not sure how much that matters (maybe the original check for 4.9.2 was just a random pick by Andrey? Added to cc), but together with the movement to <linux/compiler_attributes.h> that looks like it also wouldn't want the CONFIG_KASAN tests, I wonder what the right merge resolution would be. Yes, I see the resolution in linux-next, and I think that one is odd and dubious, and now it *mixes* that old test of gcc-4.9.2 with the different test in compiler-attributes. I'm _inclined_ to just do #ifdef CONFIG_KASAN #define __no_sanitize_address_or_inline \ __no_sanitize_address __maybe_unused notrace #else #define __no_sanitize_address_or_inline inline #endif without any compiler versions at all, because I don't think it matters (maybe we won't get address sanitation, and we will not get inlining either, but do we care?). But I'm also unsure whether you meant for the "__has_attribute()" test to be usable outside the linux/compiler_attributes.h file, in which case I could just do #if defined(CONFIG_KASAN) && __has_attribute(__no_sanitize_address__) instead. End result: it's not the merge resolution itself that raises questions, it's just semantics in general. So I've dropped this for now, in the hope that you/Andrey can answer these questions. Linus