Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754989Ab2HLBor (ORCPT ); Sat, 11 Aug 2012 21:44:47 -0400 Received: from nctlincom01.orcon.net.nz ([60.234.4.74]:40602 "EHLO nctlincom01.orcon.net.nz" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751268Ab2HLBom (ORCPT ); Sat, 11 Aug 2012 21:44:42 -0400 X-Greylist: delayed 687 seconds by postgrey-1.27 at vger.kernel.org; Sat, 11 Aug 2012 21:44:42 EDT Message-ID: <502707D5.7020602@orcon.net.nz> Date: Sun, 12 Aug 2012 13:33:09 +1200 From: Michael Cree User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.16) Gecko/20120613 Icedove/3.0.11 MIME-Version: 1.0 To: Fengguang Wu CC: linux-alpha@vger.kernel.org, Richard Henderson , Ivan Kokshaysky , Matt Turner , Tony Luck , James Bottomley , John David Anglin , Mel Gorman , kernel-janitors@vger.kernel.org, Kyle McMartin , Andrew Morton , LKML , Parisc List Subject: Re: [next:akpm 129/309] net/core/sock.c:274:36: error: initializer element is not constant References: <20120722163058.GB13376@localhost> <20120723111619.GT9222@suse.de> <1343042420.3027.11.camel@dabdike.int.hansenpartnership.com> <20120723114258.GV9222@suse.de> <20120723122905.GA22476@localhost> <20120724074844.GA9519@localhost> <1343193053.3139.6.camel@dabdike> <20120802150209.GA26601@localhost> In-Reply-To: <20120802150209.GA26601@localhost> X-Enigmail-Version: 1.0.1 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-DSPAM-Check: by mx7.orcon.net.nz on Sun, 12 Aug 2012 13:33:09 +1200 X-DSPAM-Result: Innocent X-DSPAM-Processed: Sun Aug 12 13:33:12 2012 X-DSPAM-Confidence: 0.9938 X-DSPAM-Probability: 0.0000 X-Bayes-Prob: 0.0001 (Score 0, tokens from: @@RPTN, default) X-Spam-Score: 0.00 () [Hold at 5.50] X-CanIt-Geo: ip=60.234.221.162; country=NZ; region=G2; city=Porirua; latitude=-41.1333; longitude=174.8500; http://maps.google.com/maps?q=-41.1333,174.8500&z=6 X-CanItPRO-Stream: base:default X-Canit-Stats-ID: 06HJBFIxk - 1644c1ca7268 - 20120812 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 3025 Lines: 81 On 03/08/12 03:02, Fengguang Wu wrote: > On Thu, Jul 26, 2012 at 10:06:41AM -0700, Tony Luck wrote: >> On Tue, Jul 24, 2012 at 10:10 PM, James Bottomley >> wrote: >>>> Here is the line in sock.i: >>>> >>>> struct static_key memalloc_socks = ((struct static_key) { .enabled = >>>> ((atomic_t) { (0) }) }); >>> >>> The above line contains two compound literals. It also uses a designated >>> initializer to initialize the field enabled. A compound literal is not a >>> constant expression. >> >> Seeing the same thing on ia64 building next-20120726. Same fix works >> for me ... so I'll steal this whole changelog and attributes. > > I got the same error for alpha, the same fix applies. Just trying this patch on Alpha against v3.6-rc1 and it leads to new compilation errors, namely: init/init_task.c:12: error: braced-group within expression allowed only inside a function init/init_task.c:13: error: braced-group within expression allowed only inside a function init/init_task.c:16: error: braced-group within expression allowed only inside a function init/init_task.c:16: error: braced-group within expression allowed only inside a function make[1]: *** [init/init_task.o] Error 1 > --- > From: Mel Gorman > Subject: [PATCH] [ALPHA] Redefine ATOMIC_INIT and ATOMIC64_INIT to drop the casts > > The following build error occurred during an alpha build: > > net/core/sock.c:274:36: error: initializer element is not constant > > Dave Anglin says: >> Here is the line in sock.i: >> >> struct static_key memalloc_socks = ((struct static_key) { .enabled = >> ((atomic_t) { (0) }) }); > > The above line contains two compound literals. It also uses a designated > initializer to initialize the field enabled. A compound literal is not a > constant expression. > > The location of the above statement isn't fully clear, but if a compound > literal occurs outside the body of a function, the initializer list must > consist of constant expressions. > > Reported-by: Fengguang Wu > Signed-off-by: Mel Gorman > Cc: > --- > arch/alpha/include/asm/atomic.h | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > --- linux.orig/arch/alpha/include/asm/atomic.h 2012-05-24 19:03:06.000000000 +0800 > +++ linux/arch/alpha/include/asm/atomic.h 2012-08-02 23:01:02.243224220 +0800 > @@ -14,8 +14,8 @@ > */ > > > -#define ATOMIC_INIT(i) ( (atomic_t) { (i) } ) > -#define ATOMIC64_INIT(i) ( (atomic64_t) { (i) } ) > +#define ATOMIC_INIT(i) ( { (i) } ) > +#define ATOMIC64_INIT(i) ( { (i) } ) > > #define atomic_read(v) (*(volatile int *)&(v)->counter) > #define atomic64_read(v) (*(volatile long *)&(v)->counter) Cheers Michael. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/