Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933065AbdHYUyD (ORCPT ); Fri, 25 Aug 2017 16:54:03 -0400 Received: from relay4-d.mail.gandi.net ([217.70.183.196]:59348 "EHLO relay4-d.mail.gandi.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932586AbdHYUyC (ORCPT ); Fri, 25 Aug 2017 16:54:02 -0400 X-Originating-IP: 209.85.215.43 MIME-Version: 1.0 In-Reply-To: References: <20170824164506.9108-1-joe@ovn.org> From: Joe Stringer Date: Fri, 25 Aug 2017 13:53:39 -0700 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH net-next] compiler: Document behavior compiling with -O0 To: Arnd Bergmann Cc: Linux Kernel Mailing List , Ian Abbott , Michal Nazarewicz , Kees Cook Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1074 Lines: 21 On 24 August 2017 at 14:20, Arnd Bergmann wrote: > On Thu, Aug 24, 2017 at 6:45 PM, Joe Stringer wrote: >> Recent changes[0] to make use of __compiletime_assert() from container_of() >> increased the scope of this macro, resulting in a wider set of >> situations where developers cannot compile their code using "-O0". I >> noticed this when making use of the macro in my own development, and >> spent more time than I'd like to admit tracking the problem down. This >> patch documents the behavior in lieu of a compile-time assertion >> implementation that does not rely on optimizations. >> >> Example compilation failure: > > Maybe the macro should be enclosed in "#ifdef __OPTIMIZE__"? > > Generally speaking we at least rely on function inlining to create a > working kernel, but sometimes there may be a reason to compile a > single file without optimizations. Right. The above approach seems okay to me, if the developer really doesn't notice issues when they've been debugging -O0, it should be picked up fairly quickly during review.