From: Richard Mortimer <ri...@oldelvet.org.uk>
Date: Thu, 13 Jan 2011 23:34:01 +0000

> On Wed, 2011-01-12 at 00:37 +0000, Ben Hutchings wrote:
>> On Wed, 2011-01-12 at 00:27 +0000, Richard Mortimer wrote:
>> > 
>> > On 09/01/2011 03:46, David Miller wrote:
>> > > From: Ben Hutchings<b...@decadent.org.uk>
>> > > Date: Sun, 09 Jan 2011 03:00:40 +0000
>> > >
>> > >> On Sun, 2011-01-09 at 01:05 +0000, Richard Mortimer wrote:
>> > >>> Package: linux-2.6
>> > >>> Version: 2.6.37-1~experimental.1
>> > >>> Severity: normal
>> > >>>
>> > >>> Boot of linux-image-2.6.37-trunk-sparc64 fails to find the disks and 
>> > >>> drops
>> > >>> to the initramfs prompt. When I try to load the sym53c8xx driver it 
>> > >>> fails
>> > >>> as follows
>> > >>>
>> > >>> (initramfs) modprobe sym53c8xx
>> > >>> [  122.470284] module scsi_mod: Unknown relocation: 36
>> > >>> FATAL: Error inserting sym53c8xx 
>> > >>> (/lib/modules/2.6.37-trunk-sparc64/kernel/drive
>> > >>> rs/scsi/sym53c8xx_2/sym53c8xx.ko): Invalid module format
>> > >>> (initramfs)
>> > >>
>> > >> David, do you have any idea how this could happen?
>> > >>
>> > >>> A quick web search finds a similar issue
>> > >>> http://kerneltrap.org/mailarchive/linux-kernel/2010/6/16/4583942
>> > >>> but I have not looked into this any further yet.
>> > >> [...]
>> > >>
>> > >> That was apparently a bug in the build scripts for a separate module.
>> > >
>> > > And like that case bad build flags are causing this problem too.  It
>> > > means that "-mcode-model=medlow" is not making it into the module
>> > > build cflags somehow.
>> > >
>> > > This relocation can only occur for sparc64 code models other than
>> > > "medlow".
>> > 
>> > I did a test Debian build using my Sun Fire V120 running to double check 
>> > the build with the 2.6.27-1@experimental.1 sources. This fails in the 
>> > same way that the official build fails.
>> > 
>> > Looking at the build output it seems to end up building setup_sparc but 
>> > I think it should be building setup_sparc64 in the rules.
>> [...]
>> > I will try a package build forcing DEB_HOST_ARCH to sparc64 and see if 
>> > that builds the right packages.
>> 
>> No, this is correct behaviour.  $DEB_HOST_ARCH is the Debian userland
>> architecture (as used in the package metadata) and may differ from the
>> kernel architecture.  All the defined kernel flavours for sparc are
>> 64-bit.
>> 
> Thanks Ben. I've started looking at a few other potential causes...
> 
> Looking at the relocation symbols in scsi_mod.ko as reported by objdump
> it looks to me that the R_SPARC_13 and R_SPARC_UA64 are the unsupported
> relocation types that are stopping the driver getting loaded.
> 
> richm@shirehall:/usr/src/linux-2.6-2.6.37/debian/build/build_sparc_none_sparc64$
>  objdump -r /lib/modules/2.6.37-trunk-sparc64/kernel/drivers/scsi/scsi_mod.ko 
> | cut -d' ' -f 2 | sort | uniq -c
>      51 
>      16 RECORDS
>      53 R_SPARC_13
>     129 R_SPARC_32
>    2352 R_SPARC_64
>     825 R_SPARC_HI22
>     869 R_SPARC_LO10
>      20 R_SPARC_UA64
>    1011 R_SPARC_WDISP30

The original error report shows:

>> > >>> (initramfs) modprobe sym53c8xx
>> > >>> [  122.470284] module scsi_mod: Unknown relocation: 36
                                         ^^^^^^^^^^^^^^^^^^^^^^
>> > >>> FATAL: Error inserting sym53c8xx 
>> > >>> (/lib/modules/2.6.37-trunk-sparc64/kernel/drive
>> > >>> rs/scsi/sym53c8xx_2/sym53c8xx.ko): Invalid module format
>> > >>> (initramfs)

So you didn't need to analyze the binary with objdump to
work on this bug.

Relocation type 36 is R_SPARC_LM22.



-- 
To UNSUBSCRIBE, email to debian-kernel-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/20110113.155700.102679408.da...@davemloft.net

Reply via email to