All of lore.kernel.org
 help / color / mirror / Atom feed
From: Fengguang Wu <fengguang.wu@intel.com>
To: Mel Gorman <mgorman@suse.de>
Cc: James Bottomley <James.Bottomley@HansenPartnership.com>,
	kernel-janitors@vger.kernel.org,
	Kyle McMartin <kyle@parisc-linux.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	LKML <linux-kernel@vger.kernel.org>,
	Parisc List <linux-parisc@vger.kernel.org>
Subject: Re: [next:akpm 129/309] net/core/sock.c:274:36: error: initializer element is not constant
Date: Mon, 23 Jul 2012 12:29:05 +0000	[thread overview]
Message-ID: <20120723122905.GA22476@localhost> (raw)
In-Reply-To: <20120723114258.GV9222@suse.de>

On Mon, Jul 23, 2012 at 12:42:58PM +0100, Mel Gorman wrote:
> On Mon, Jul 23, 2012 at 12:20:20PM +0100, James Bottomley wrote:
> > [Parisc list cc added]
> > On Mon, 2012-07-23 at 12:16 +0100, Mel Gorman wrote:
> > > On Mon, Jul 23, 2012 at 12:30:58AM +0800, Fengguang Wu wrote:
> > > > Hi Mel,
> > > > 
> > > > To be frank, I don't quite understand this build failure..
> > > > 
> > > > tree:   next/akpm akpm
> > > > head:   37e2ad4953983527f7bdb6831bf478eedcc84082
> > > > commit: 799dc3a908b1df8b766c35aefc24c1b5356aa051 [129/309] netvm: allow skb allocation to use PFMEMALLOC reserves
> > > > config: parisc-defconfig (attached as .config)
> > > > 
> > > > All related error/warning messages:
> > > > 
> > > > net/core/sock.c:274:36: error: initializer element is not constant
> > > > net/core/sock.c:274:36: error: (near initialization for 'memalloc_socks')
> > > > net/core/sock.c:274:36: error: initializer element is not constant
> > > > 
> > > 
> > > It looks parisc specific so am adding some parisc because this builds but
> > > I am less sure if it is actually correct. If it's correct, it should be
> > > appear before the swap-over-nfs patches to avoid bisection problems.
> > > I've added some parisc folk for review.
> > > 
> > > ---8<---
> > > parisc: Redefine ATOMIC_INIT and ATOMIC64_INIT like other architectures
> > > 
> > > The following build error occured during a parisc build with
> > > swap-over-NFS patches applied.
> > > 
> > > net/core/sock.c:274:36: error: initializer element is not constant
> > > net/core/sock.c:274:36: error: (near initialization for 'memalloc_socks')
> > > net/core/sock.c:274:36: error: initializer element is not constant
> > > 
> > > It's not obvious but this is due to how ATOMIC_INIT is defined on
> > > parisc. It should affect any user of STATIC_KEY_INIT_FALSE on that
> > > platform.
> > > 
> > > This patch makes the definition of ATOMIC_INIT on parisc to look like
> > > other arches definition.
> > > 
> > > Reported-by: Fengguang Wu <fengguang.wu@intel.com>
> > > Signed-off-by: Mel Gorman <mgorman@suse.de>
> > > ---
> > >  arch/parisc/include/asm/atomic.h |    4 ++--
> > >  1 file changed, 2 insertions(+), 2 deletions(-)
> > > 
> > > diff --git a/arch/parisc/include/asm/atomic.h b/arch/parisc/include/asm/atomic.h
> > > index 6c6defc..af9cf30 100644
> > > --- a/arch/parisc/include/asm/atomic.h
> > > +++ b/arch/parisc/include/asm/atomic.h
> > > @@ -141,7 +141,7 @@ static __inline__ int __atomic_add_unless(atomic_t *v, int a, int u)
> > >  
> > >  #define atomic_sub_and_test(i,v)	(atomic_sub_return((i),(v)) = 0)
> > >  
> > > -#define ATOMIC_INIT(i)	((atomic_t) { (i) })
> > > +#define ATOMIC_INIT(i)	{ (i) }
> > >  
> > >  #define smp_mb__before_atomic_dec()	smp_mb()
> > >  #define smp_mb__after_atomic_dec()	smp_mb()
> > > @@ -150,7 +150,7 @@ static __inline__ int __atomic_add_unless(atomic_t *v, int a, int u)
> > >  
> > >  #ifdef CONFIG_64BIT
> > >  
> > > -#define ATOMIC64_INIT(i) ((atomic64_t) { (i) })
> > > +#define ATOMIC64_INIT(i) { (i) }
> > >  
> > >  static __inline__ s64
> > >  __atomic64_add_return(s64 i, atomic64_t *v)
> > 
> > OK, I don't understand this either ... why would not casting to the
> > appropriate type suddenly stop warning about the initialiser being non
> > constant.  It looks like some type of gcc bug to me. 
> 
> I agree. I could not see any functional difference as such either but also
> could not figure out why gcc would get it right for some arches and not
> for others.

Will gcc create a temporary (and hence non constant) value for the
conversion?

> > Our toolchain
> > expert (Dave) hangs out on the parisc list ... he'll want to know your
> > gcc -v.
> > 
> 
> I'm using the cross-compiler from
> ftp://ftp.kernel.org/pub/tools/crosstool/files/bin/x86_64/4.6.3/. I do
> not know what compiler Fengguang Wu was using. 

Yeah that's handy binaries and I'm using them in the x86 compile
servers. However this particular parisc-defconfig is compile tested in
an ia64 machine which is built from debian's gcc-4.7 source:

Using built-in specs.
COLLECT_GCC=/opt/cross/bin/hppa-linux-gcc
COLLECT_LTO_WRAPPER=/opt/cross/libexec/gcc/hppa-linux/4.7/lto-wrapper
Target: hppa-linux
Configured with: /home/wfg/buildall/gcc-4.7-4.7.1/src/configure --target=hppa-linux --enable-targets=all --prefix=/opt/cross --enable-lang
uages=c --without-headers --enable-sjlj-exceptions --with-system-libunwind --disable-nls --disable-threads --disable-shared --disable-libmudflap --disable-libssp --disable-libgomp --disable-decimal-float --disable-libquadmath --enable-checking=release                         Thread model: single
gcc version 4.7.1 (GCC) 

Thanks,
Fengguang

> Using built-in specs.
> COLLECT_GCC=/home/mel/git-public/cross-compilers/gcc-4.6.3-nolibc/hppa-linux/bin/hppa-linux-gcc
> COLLECT_LTO_WRAPPER=/home/mel/git-public/cross-compilers/gcc-4.6.3-nolibc/hppa-linux/bin/../libexec/gcc/hppa-linux/4.6.3/lto-wrapper
> Target: hppa-linux
> Configured with: /home/tony/buildall/src/gcc/configure
> --target=hppa-linux --host=x86_64-linux-gnu --build=x86_64-linux-gnu
> --enable-targets=all --prefix=/opt/cross/gcc-4.6.3-nolibc/hppa-linux/
> --enable-languages=c --with-newlib --without-headers
> --enable-sjlj-exceptions --with-system-libunwind --disable-nls
> --disable-threads --disable-shared --disable-libmudflap --disable-libssp
> --disable-libgomp --disable-decimal-float --enable-checking=release
> --with-mpfr=/home/tony/buildall/src/sys-x86_64
> --with-gmp=/home/tony/buildall/src/sys-x86_64 --disable-bootstrap
> --disable-libquadmath
> Thread model: single
> gcc version 4.6.3 (GCC) 
> 
> -- 
> Mel Gorman
> SUSE Labs

WARNING: multiple messages have this Message-ID (diff)
From: Fengguang Wu <fengguang.wu@intel.com>
To: Mel Gorman <mgorman@suse.de>
Cc: James Bottomley <James.Bottomley@HansenPartnership.com>,
	kernel-janitors@vger.kernel.org,
	Kyle McMartin <kyle@parisc-linux.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	LKML <linux-kernel@vger.kernel.org>,
	Parisc List <linux-parisc@vger.kernel.org>
Subject: Re: [next:akpm 129/309] net/core/sock.c:274:36: error: initializer element is not constant
Date: Mon, 23 Jul 2012 20:29:05 +0800	[thread overview]
Message-ID: <20120723122905.GA22476@localhost> (raw)
In-Reply-To: <20120723114258.GV9222@suse.de>

On Mon, Jul 23, 2012 at 12:42:58PM +0100, Mel Gorman wrote:
> On Mon, Jul 23, 2012 at 12:20:20PM +0100, James Bottomley wrote:
> > [Parisc list cc added]
> > On Mon, 2012-07-23 at 12:16 +0100, Mel Gorman wrote:
> > > On Mon, Jul 23, 2012 at 12:30:58AM +0800, Fengguang Wu wrote:
> > > > Hi Mel,
> > > > 
> > > > To be frank, I don't quite understand this build failure..
> > > > 
> > > > tree:   next/akpm akpm
> > > > head:   37e2ad4953983527f7bdb6831bf478eedcc84082
> > > > commit: 799dc3a908b1df8b766c35aefc24c1b5356aa051 [129/309] netvm: allow skb allocation to use PFMEMALLOC reserves
> > > > config: parisc-defconfig (attached as .config)
> > > > 
> > > > All related error/warning messages:
> > > > 
> > > > net/core/sock.c:274:36: error: initializer element is not constant
> > > > net/core/sock.c:274:36: error: (near initialization for 'memalloc_socks')
> > > > net/core/sock.c:274:36: error: initializer element is not constant
> > > > 
> > > 
> > > It looks parisc specific so am adding some parisc because this builds but
> > > I am less sure if it is actually correct. If it's correct, it should be
> > > appear before the swap-over-nfs patches to avoid bisection problems.
> > > I've added some parisc folk for review.
> > > 
> > > ---8<---
> > > parisc: Redefine ATOMIC_INIT and ATOMIC64_INIT like other architectures
> > > 
> > > The following build error occured during a parisc build with
> > > swap-over-NFS patches applied.
> > > 
> > > net/core/sock.c:274:36: error: initializer element is not constant
> > > net/core/sock.c:274:36: error: (near initialization for 'memalloc_socks')
> > > net/core/sock.c:274:36: error: initializer element is not constant
> > > 
> > > It's not obvious but this is due to how ATOMIC_INIT is defined on
> > > parisc. It should affect any user of STATIC_KEY_INIT_FALSE on that
> > > platform.
> > > 
> > > This patch makes the definition of ATOMIC_INIT on parisc to look like
> > > other arches definition.
> > > 
> > > Reported-by: Fengguang Wu <fengguang.wu@intel.com>
> > > Signed-off-by: Mel Gorman <mgorman@suse.de>
> > > ---
> > >  arch/parisc/include/asm/atomic.h |    4 ++--
> > >  1 file changed, 2 insertions(+), 2 deletions(-)
> > > 
> > > diff --git a/arch/parisc/include/asm/atomic.h b/arch/parisc/include/asm/atomic.h
> > > index 6c6defc..af9cf30 100644
> > > --- a/arch/parisc/include/asm/atomic.h
> > > +++ b/arch/parisc/include/asm/atomic.h
> > > @@ -141,7 +141,7 @@ static __inline__ int __atomic_add_unless(atomic_t *v, int a, int u)
> > >  
> > >  #define atomic_sub_and_test(i,v)	(atomic_sub_return((i),(v)) == 0)
> > >  
> > > -#define ATOMIC_INIT(i)	((atomic_t) { (i) })
> > > +#define ATOMIC_INIT(i)	{ (i) }
> > >  
> > >  #define smp_mb__before_atomic_dec()	smp_mb()
> > >  #define smp_mb__after_atomic_dec()	smp_mb()
> > > @@ -150,7 +150,7 @@ static __inline__ int __atomic_add_unless(atomic_t *v, int a, int u)
> > >  
> > >  #ifdef CONFIG_64BIT
> > >  
> > > -#define ATOMIC64_INIT(i) ((atomic64_t) { (i) })
> > > +#define ATOMIC64_INIT(i) { (i) }
> > >  
> > >  static __inline__ s64
> > >  __atomic64_add_return(s64 i, atomic64_t *v)
> > 
> > OK, I don't understand this either ... why would not casting to the
> > appropriate type suddenly stop warning about the initialiser being non
> > constant.  It looks like some type of gcc bug to me. 
> 
> I agree. I could not see any functional difference as such either but also
> could not figure out why gcc would get it right for some arches and not
> for others.

Will gcc create a temporary (and hence non constant) value for the
conversion?

> > Our toolchain
> > expert (Dave) hangs out on the parisc list ... he'll want to know your
> > gcc -v.
> > 
> 
> I'm using the cross-compiler from
> ftp://ftp.kernel.org/pub/tools/crosstool/files/bin/x86_64/4.6.3/. I do
> not know what compiler Fengguang Wu was using. 

Yeah that's handy binaries and I'm using them in the x86 compile
servers. However this particular parisc-defconfig is compile tested in
an ia64 machine which is built from debian's gcc-4.7 source:

Using built-in specs.
COLLECT_GCC=/opt/cross/bin/hppa-linux-gcc
COLLECT_LTO_WRAPPER=/opt/cross/libexec/gcc/hppa-linux/4.7/lto-wrapper
Target: hppa-linux
Configured with: /home/wfg/buildall/gcc-4.7-4.7.1/src/configure --target=hppa-linux --enable-targets=all --prefix=/opt/cross --enable-lang
uages=c --without-headers --enable-sjlj-exceptions --with-system-libunwind --disable-nls --disable-threads --disable-shared --disable-libmudflap --disable-libssp --disable-libgomp --disable-decimal-float --disable-libquadmath --enable-checking=release                         Thread model: single
gcc version 4.7.1 (GCC) 

Thanks,
Fengguang

> Using built-in specs.
> COLLECT_GCC=/home/mel/git-public/cross-compilers/gcc-4.6.3-nolibc/hppa-linux/bin/hppa-linux-gcc
> COLLECT_LTO_WRAPPER=/home/mel/git-public/cross-compilers/gcc-4.6.3-nolibc/hppa-linux/bin/../libexec/gcc/hppa-linux/4.6.3/lto-wrapper
> Target: hppa-linux
> Configured with: /home/tony/buildall/src/gcc/configure
> --target=hppa-linux --host=x86_64-linux-gnu --build=x86_64-linux-gnu
> --enable-targets=all --prefix=/opt/cross/gcc-4.6.3-nolibc/hppa-linux/
> --enable-languages=c --with-newlib --without-headers
> --enable-sjlj-exceptions --with-system-libunwind --disable-nls
> --disable-threads --disable-shared --disable-libmudflap --disable-libssp
> --disable-libgomp --disable-decimal-float --enable-checking=release
> --with-mpfr=/home/tony/buildall/src/sys-x86_64
> --with-gmp=/home/tony/buildall/src/sys-x86_64 --disable-bootstrap
> --disable-libquadmath
> Thread model: single
> gcc version 4.6.3 (GCC) 
> 
> -- 
> Mel Gorman
> SUSE Labs

  reply	other threads:[~2012-07-23 12:29 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-07-22 16:30 [next:akpm 129/309] net/core/sock.c:274:36: error: initializer element is not constant Fengguang Wu
2012-07-22 16:30 ` Fengguang Wu
2012-07-23 11:16 ` Mel Gorman
2012-07-23 11:16   ` Mel Gorman
2012-07-23 11:20   ` James Bottomley
2012-07-23 11:20     ` James Bottomley
2012-07-23 11:42     ` Mel Gorman
2012-07-23 11:42       ` Mel Gorman
2012-07-23 12:29       ` Fengguang Wu [this message]
2012-07-23 12:29         ` Fengguang Wu
2012-07-23 15:13         ` John David Anglin
2012-07-23 15:13           ` John David Anglin
2012-07-24  7:48           ` Fengguang Wu
2012-07-24  7:48             ` Fengguang Wu
2012-07-24 21:08             ` John David Anglin
2012-07-24 21:08               ` John David Anglin
2012-07-25  5:10               ` James Bottomley
2012-07-25  5:10                 ` James Bottomley
2012-07-26 17:06                 ` Tony Luck
2012-07-26 17:06                   ` Tony Luck
2012-08-02 15:02                   ` Fengguang Wu
2012-08-02 15:02                     ` Fengguang Wu
2012-08-12  1:33                     ` Michael Cree
2012-08-12  1:33                       ` Michael Cree
2012-08-12  2:10                       ` Fengguang Wu
2012-08-12  2:10                         ` Fengguang Wu
2012-08-12  2:42                         ` Michael Cree
2012-08-12  2:42                           ` Michael Cree
2012-08-12 13:00                           ` John David Anglin
2012-08-12 13:00                             ` John David Anglin
2012-08-12  2:14                       ` [PATCH] [ALPHA] Redefine ATOMIC_INIT and ATOMIC64_INIT to drop the casts Fengguang Wu
2012-08-12  2:14                         ` Fengguang Wu
2012-08-15 22:03                         ` Andrew Morton
2012-08-15 22:03                           ` Andrew Morton
2012-07-25  8:27               ` [next:akpm 129/309] net/core/sock.c:274:36: error: initializer element is not constant Mel Gorman
2012-07-25  8:27                 ` Mel Gorman

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20120723122905.GA22476@localhost \
    --to=fengguang.wu@intel.com \
    --cc=James.Bottomley@HansenPartnership.com \
    --cc=akpm@linux-foundation.org \
    --cc=kernel-janitors@vger.kernel.org \
    --cc=kyle@parisc-linux.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-parisc@vger.kernel.org \
    --cc=mgorman@suse.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.