qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] sparc-linux-user: Fix missing symbols in .rel/.rela.plt


From: Aurelien Jarno
Subject: Re: [Qemu-devel] sparc-linux-user: Fix missing symbols in .rel/.rela.plt sections
Date: Sun, 19 May 2013 14:58:07 +0200
User-agent: Mutt/1.5.21 (2010-09-15)

On Thu, May 09, 2013 at 05:56:03PM +0000, Blue Swirl wrote:
> On Wed, May 8, 2013 at 7:18 AM, Michael Tokarev <address@hidden> wrote:
> > Ping #2?
> >
> > 06.04.2013 10:08, Michael Tokarev wrote:
> >> This patch was submitted more than a year ago (at Jan-2012).
> >> Is it still needed?  If yes, why it hasn't been applied?
> 
> Well, is it still needed?

Without it, trying to build static qemu-user on sparc leads to the
following error:

|   LINK  mips-linux-user/qemu-mips
| 
/usr/lib/gcc/sparc-linux-gnu/4.6/../../../sparc-linux-gnu/libglib-2.0.a(gutils.o):
 In function `g_get_any_init_do':
| (.text+0x440): warning: Using 'getpwuid' in statically linked applications 
requires at runtime the shared libraries from the glibc version used for linking
| 
/usr/lib/gcc/sparc-linux-gnu/4.6/../../../sparc-linux-gnu/libglib-2.0.a(gutils.o):
 In function `g_get_any_init_do':
| (.text+0x430): warning: Using 'setpwent' in statically linked applications 
requires at runtime the shared libraries from the glibc version used for linking
| 
/usr/lib/gcc/sparc-linux-gnu/4.6/../../../sparc-linux-gnu/libglib-2.0.a(gutils.o):
 In function `g_get_any_init_do':
| (.text+0x448): warning: Using 'endpwent' in statically linked applications 
requires at runtime the shared libraries from the glibc version used for linking
| 
/usr/lib/gcc/sparc-linux-gnu/4.6/../../../sparc-linux-gnu/libglib-2.0.a(gutils.o):
 In function `g_get_any_init_do':
| (.text+0x188): warning: Using 'getpwnam_r' in statically linked applications 
requires at runtime the shared libraries from the glibc version used for linking
| 
/usr/lib/gcc/sparc-linux-gnu/4.6/../../../sparc-linux-gnu/libglib-2.0.a(gutils.o):
 In function `g_get_any_init_do':
| (.text+0x1c8): warning: Using 'getpwuid_r' in statically linked applications 
requires at runtime the shared libraries from the glibc version used for linking
| /usr/lib/gcc/sparc-linux-gnu/4.6/../../../sparc-linux-gnu/libc.a(elf-init.o): 
In function `__libc_csu_irel':
| (.text+0x144): undefined reference to `__rela_iplt_start'
| /usr/lib/gcc/sparc-linux-gnu/4.6/../../../sparc-linux-gnu/libc.a(elf-init.o): 
In function `__libc_csu_irel':
| (.text+0x148): undefined reference to `__rela_iplt_end'
| /usr/lib/gcc/sparc-linux-gnu/4.6/../../../sparc-linux-gnu/libc.a(elf-init.o): 
In function `__libc_csu_irel':
| (.text+0x14c): undefined reference to `__rela_iplt_start'
| /usr/lib/gcc/sparc-linux-gnu/4.6/../../../sparc-linux-gnu/libc.a(elf-init.o): 
In function `__libc_csu_irel':
| (.text+0x150): undefined reference to `__rela_iplt_end'
| collect2: ld returned 1 exit status
| make[1]: *** [qemu-mips] Error 1
| make: *** [subdir-mips-linux-user] Error 2

So I think it is still needed, unless you have another fix in mind.

> >>
> >> It still applies cleanly to the current git, with the exception
> >> of s|^|ldscripts/| - sparc.ld moved from the top directory to
> >> ldscripts/.
> >>
> >> (Ref: http://patchwork.ozlabs.org/patch/135267 )
> >>
> >> Thanks,
> >>
> >> /mjt
> >>
> >>
> >> 10.01.2012 11:38, Aurelien Jarno wrote:
> >>> sparc-linux-user: Fix missing symbols in .rel/.rela.plt sections
> >>>
> >>> Fix .rel.plt sections in the output to not only include .rel.plt
> >>> sections from the input but also the .rel.iplt sections and to define
> >>> the hidden symbols __rel_iplt_start and __rel_iplt_end around
> >>> .rel.iplt as otherwise we get undefined references to these when
> >>> linking statically to a multiarch enabled libc (using STT_GNU_IFUNC).
> >>>
> >>> Cc: Blue Swirl <address@hidden>
> >>> Signed-off-by: Aurelien Jarno <address@hidden>
> >>>
> >>> ---
> >>> sparc.ld |   16 ++++++++++++++--
> >>>  1 files changed, 14 insertions(+), 2 deletions(-)
> >>>
> >>> diff --git a/sparc.ld b/sparc.ld
> >>> index 56efe34..cec17c9 100644
> >>> --- a/sparc.ld
> >>> +++ b/sparc.ld
> >>> @@ -37,8 +37,20 @@ SECTIONS
> >>>    .rela.fini     : { *(.rela.fini)      }
> >>>    .rel.bss       : { *(.rel.bss)                }
> >>>    .rela.bss      : { *(.rela.bss)               }
> >>> -  .rel.plt       : { *(.rel.plt)                }
> >>> -  .rela.plt      : { *(.rela.plt)               }
> >>> +  .rel.plt      :
> >>> +  {
> >>> +    *(.rel.plt)
> >>> +    PROVIDE (__rel_iplt_start = .);
> >>> +    *(.rel.iplt)
> >>> +    PROVIDE (__rel_iplt_end = .);
> >>> +  }
> >>> +  .rela.plt       :
> >>> +  {
> >>> +    *(.rela.plt)
> >>> +    PROVIDE (__rela_iplt_start = .);
> >>> +    *(.rela.iplt)
> >>> +    PROVIDE (__rela_iplt_end = .);
> >>> +  }
> >>>    .init          : { *(.init)   } =0x47ff041f
> >>>    .text      :
> >>>    {
> >>>
> >>
> >>
> >
> 
> 

-- 
Aurelien Jarno                          GPG: 1024D/F1BCDB73
address@hidden                 http://www.aurel32.net



reply via email to

[Prev in Thread] Current Thread [Next in Thread]