Missing _restvr_20 and _savevr_20 subroutines for lib/raid6/altivec8.o

Ben Hutchings ben at decadent.org.uk
Wed Oct 23 21:54:34 EST 2013


On Wed, 2013-10-23 at 00:28 -0500, Kumar Gala wrote:
> On Oct 19, 2013, at 5:24 PM, Ben Hutchings wrote:
> 
> > When building lib/raid6/altivec8.o with gcc 4.8 on Debian, the compiler
> > is generating references to two new runtime subroutines which are
> > apparently not included in the kernel:
> > 
> > ERROR: "_restvr_20" [lib/raid6/raid6_pq.ko] undefined!
> > ERROR: "_savevr_20" [lib/raid6/raid6_pq.ko] undefined!
> > 
> > The save/restore subroutines are specified in
> > http://refspecs.linuxfoundation.org/ELF/ppc64/PPC-elf64abi-1.7.1.html#SAVE-RESTORE
> > and we do have the _restgpr_* and _savegpr_* subroutines in
> > arch/powerpc/boot/crtsavres.S.  I'm not sure whether these subroutines
> > should be added or whether this indicates the compiler is doing
> > something wrong.
> > 
> > A configuration that triggers this is included below.
> > 
> > Ben.
> 
> Try with CONFIG_CC_OPTIMIZE_FOR_SIZE=n.  A feature was added to gcc
> for -Os to "outline" the save/restore routines.  I'm surprised this
> hasn't shown up sooner.

That does avoid the problem, thanks.

Ben.

> Well need to add _restvr_* / _savevr_* to the version in lib/crtsaveres.S.
> 
> http://gcc.gnu.org/git/?p=gcc.git;a=blob_plain;f=libgcc/config/rs6000/crtrestvr.S;hb=HEAD
> http://gcc.gnu.org/git/?p=gcc.git;a=blob_plain;f=libgcc/config/rs6000/crtsavevr.S;hb=HEAD
> 
> - k

-- 
Ben Hutchings
friends: People who know you well, but like you anyway.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 828 bytes
Desc: This is a digitally signed message part
URL: <http://lists.ozlabs.org/pipermail/linuxppc-dev/attachments/20131023/a9d1fbbe/attachment.sig>


More information about the Linuxppc-dev mailing list