lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Tue, 18 Jan 2011 10:52:07 +0000
From:	Richard Mortimer <richm@...elvet.org.uk>
To:	David Miller <davem@...emloft.net>
CC:	609371@...s.debian.org, ben@...adent.org.uk,
	sparclinux@...r.kernel.org, linux-kernel@...r.kernel.org,
	rostedt@...dmis.org, fweisbec@...il.com, mingo@...hat.com,
	Jesper.Nilsson@...s.com, jeffm@...e.com
Subject: Re: R_SPARC_13



On 18/01/2011 06:50, David Miller wrote:
> From: David Miller<davem@...emloft.net>
> Date: Mon, 17 Jan 2011 16:37:09 -0800 (PST)
>
>> So we do end up seeing the R_SPARC_LO10 + R_SPARC_13 sequences in the
>> final module object.
>>
>> Therefore, we really should handle R_SPARC_13 in the sparc module loader.
>
> Ok, I now feel like I'm hallucinating.
>
> davem@...set:~/src/GIT/linux-2.6-stable$ uname -a
> Linux sunset 2.6.37 #1 SMP Wed Jan 12 20:14:59 PST 2011 sparc64 GNU/Linux
> davem@...set:~/src/GIT/linux-2.6-stable$ objdump --reloc /lib/modules/2.6.37/kernel/net/ipv6/ipv6.ko | grep R_SPARC_13
> 0000000000000c7c R_SPARC_13        *ABS*+0x0000000000000004
> 0000000000001ae4 R_SPARC_13        *ABS*+0x0000000000000018
> 0000000000001b0c R_SPARC_13        *ABS*+0x0000000000000008
>   ...
> davem@...set:~/src/GIT/linux-2.6-stable$ lsmod | grep ipv6
> ipv6                  240422  12
> davem@...set:~/src/GIT/linux-2.6-stable$
>
> I must be missing something obvious.
>

I think objdump may be distorting the truth a little. I found the 
following in binutils gas/config/tc-sparc.c tc-gen_reloc(). I wonder if 
it is displaying rewritten records rather than displaying the raw 
contents. I haven't traced it through the code but the fact that it is 
obviously working for you means that something like this is going on.

   /* We expand R_SPARC_OLO10 to R_SPARC_LO10 and R_SPARC_13
      on the same location.  */
   if (code == BFD_RELOC_SPARC_OLO10)
     {
       relocs[1] = reloc = (arelent *) xmalloc (sizeof (arelent));
       relocs[2] = NULL;

       reloc->sym_ptr_ptr = (asymbol **) xmalloc (sizeof (asymbol *));
       *reloc->sym_ptr_ptr
         = symbol_get_bfdsym (section_symbol (absolute_section));
       reloc->address = fixp->fx_frag->fr_address + fixp->fx_where;
       reloc->howto = bfd_reloc_type_lookup (stdoutput, BFD_RELOC_SPARC13);
       reloc->addend = fixp->tc_fix_data;
     }

I will try your alignment patch without any R_SPARC_13 related changes 
and see how that goes.

Regards

Richard
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ