lkml.org 
[lkml]   [2011]   [Jul]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[23/35] uml: fix CONFIG_STATIC_LINK=y build failure with newer glibc
    2.6.33-longterm review patch.  If anyone has any objections, please let us know.

    ------------------

    From: Roland McGrath <roland@redhat.com>

    commit aa5fb4dbfd121296ca97c68cf90043a7ea97579d upstream.

    With glibc 2.11 or later that was built with --enable-multi-arch, the UML
    link fails with undefined references to __rel_iplt_start and similar
    symbols. In recent binutils, the default linker script defines these
    symbols (see ld --verbose). Fix the UML linker scripts to match the new
    defaults for these sections.

    Signed-off-by: Roland McGrath <roland@redhat.com>
    Cc: Jeff Dike <jdike@addtoit.com>
    Cc: Al Viro <viro@zeniv.linux.org.uk>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

    ---
    arch/um/kernel/dyn.lds.S | 14 ++++++++++++--
    arch/um/kernel/uml.lds.S | 17 +++++++++++++++++
    2 files changed, 29 insertions(+), 2 deletions(-)

    --- a/arch/um/kernel/dyn.lds.S
    +++ b/arch/um/kernel/dyn.lds.S
    @@ -50,8 +50,18 @@ SECTIONS
    .rela.got : { *(.rela.got) }
    .rel.bss : { *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) }
    .rela.bss : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) }
    - .rel.plt : { *(.rel.plt) }
    - .rela.plt : { *(.rela.plt) }
    + .rel.plt : {
    + *(.rel.plt)
    + PROVIDE_HIDDEN(__rel_iplt_start = .);
    + *(.rel.iplt)
    + PROVIDE_HIDDEN(__rel_iplt_end = .);
    + }
    + .rela.plt : {
    + *(.rela.plt)
    + PROVIDE_HIDDEN(__rela_iplt_start = .);
    + *(.rela.iplt)
    + PROVIDE_HIDDEN(__rela_iplt_end = .);
    + }
    .init : {
    KEEP (*(.init))
    } =0x90909090
    --- a/arch/um/kernel/uml.lds.S
    +++ b/arch/um/kernel/uml.lds.S
    @@ -43,6 +43,23 @@ SECTIONS
    __syscall_stub_end = .;
    }

    + /*
    + * These are needed even in a static link, even if they wind up being empty.
    + * Newer glibc needs these __rel{,a}_iplt_{start,end} symbols.
    + */
    + .rel.plt : {
    + *(.rel.plt)
    + PROVIDE_HIDDEN(__rel_iplt_start = .);
    + *(.rel.iplt)
    + PROVIDE_HIDDEN(__rel_iplt_end = .);
    + }
    + .rela.plt : {
    + *(.rela.plt)
    + PROVIDE_HIDDEN(__rela_iplt_start = .);
    + *(.rela.iplt)
    + PROVIDE_HIDDEN(__rela_iplt_end = .);
    + }
    +
    #include "asm/common.lds.S"

    init.data : { INIT_DATA }



    \
     
     \ /
      Last update: 2011-07-09 08:09    [W:0.024 / U:29.856 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site