Re: [PATCH] fix setting of sn_hub_info->shub_1_1_found

From: Andreas Schwab <schwab_at_suse.de>
Date: 2005-06-07 03:04:21
David Mosberger <davidm@napali.hpl.hp.com> writes:

>>>>>> On Sat, 04 Jun 2005 14:18:16 +1000, Keith Owens <kaos@sgi.com> said:
>
>   Keith> On Fri, 3 Jun 2005 11:50:55 -0700, 
>   Keith> "Luck, Tony" <tony.luck@intel.com> wrote:
>   >>> This explains why XPC has been so troublesome to load on older systems.
>   >>> Thanks Dean!
>   >>> 
>   >>> Tony, can this still get into 2.6.12?
>   >> 
>   >> Probably ... but the first hunk of the patch looks like a no-op,
>   >> and contravenes some style guidlines about initializing global
>   >> variables to 0.
>   >> 
>   >> -static int shub_1_1_found __initdata;
>   >> +static int __initdata shub_1_1_found = 0;
>
>   Keith> There is a linker restriction that you must initialise variables that
>   Keith> are to be stored in different sections, which is what __initdata does.
>   Keith> without initialization shub_1_1_found ends up in .bss, with
>   Keith> initialization it ends up in .init.data.
>
> Interesting.  Strikes me as a toolchain-bug, though.  Clearly the
> __initdata declaration is in conflict with putting the data in .bss,
> yet there is no warning or error.

Can't reproduce that with gcc 3.2, or anything newer.

$ cat section.c
int __attribute__((section(".init.data"))) foo;
$ gcc -S section.c
$ cat section.s
	.file	"section.c"
	.pred.safe_across_calls p1-p5,p16-p63
	.global foo#
	.section	.init.data,"aw",@progbits
	.align 4
	.type	foo#,@object
	.size	foo#,4
foo:
	.skip	4
	.ident	"GCC: (GNU) 3.2.2"

Andreas.

-- 
Andreas Schwab, SuSE Labs, schwab@suse.de
SuSE Linux Products GmbH, Maxfeldstraße 5, 90409 Nürnberg, Germany
Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."
-
To unsubscribe from this list: send the line "unsubscribe linux-ia64" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Received on Mon Jun 6 13:07:15 2005

This archive was generated by hypermail 2.1.8 : 2005-08-02 09:20:39 EST