On Sun, Feb 24, 2008 at 03:33:51PM +0100, Bartlomiej Zolnierkiewicz wrote:
On Saturday 23 February 2008, Sam Ravnborg wrote:
hpt366: fix section mismatch warnings
Fix following warnings:
WARNING: o-sparc64/vmlinux.o(.data+0x195a38): Section mismatch in reference
from the variable hpt37x_info.0 to the variable .devinit.data:hpt370
WARNING: o-sparc64/vmlinux.o(.data+0x195a40): Section mismatch in reference
from the variable hpt37x_info.0 to the variable .devinit.data:hpt370a
WARNING: o-sparc64/vmlinux.o(.data+0x195a48): Section mismatch in reference
from the variable hpt37x_info.0 to the variable .devinit.data:hpt372
WARNING: o-sparc64/vmlinux.o(.data+0x195a50): Section mismatch in reference
from the variable hpt37x_info.0 to the variable .devinit.data:hpt372n
Replace a static array with a small switch resulting in
more readable code.
Mark the pci table __devinitconst.
A lot of variables are const but annotated __devinitdata.
Annotating them __devinitconst would cause a section type
conflict error when build for 64 bit powerpc.
Signed-off-by: Sam Ravnborg [EMAIL PROTECTED]
Cc: Bartlomiej Zolnierkiewicz [EMAIL PROTECTED]
Cc: Sergei Shtylyov [EMAIL PROTECTED]
---
thanks, applied
The first patch I posted caused a section type conflict when
build for 64 bit powerpc. The actual cause of this is know and unavoidable
when we start to declare variables const.
The patch attached is much simpler as the transition from __devinitdata
to __devinitconst turned out to be bogus.
Weird, I thought that the main purpose of __devinitconst was to replace
const + __devinitdata?
The problem we face is that gcc in some cases mark the
destination section READ-ONLY and in other cases not.
So if we annotate two variables to go into the same
section and gcc only annotate one of them READ-ONLY them
we will have a section type conflict.
gcc is not consistent across architectures what to mark
READ-ONLY and not. And what we saw here was a combination
where on x86 the destinatin section were marked equal
(READ-ONLY or not READ-ONLY) but on powerpc were marked
different. One was marked READ-ONLY the other was not.
So when playing with const it is improtant to try out with
a 64 bit gcc for powerpc to see if it causes any section
type conflict. Note: 32 bit gcc does not have this
issue.
Sam
-
To unsubscribe from this list: send the line unsubscribe linux-ide in
the body of a message to [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html