bug-binutils
[Top][All Lists]
Advanced

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

[Bug ld/13301] Wrong linker relaxation for TLS_LDM_CALL and TLS_GD_CALL


From: cvs-commit at gcc dot gnu.org
Subject: [Bug ld/13301] Wrong linker relaxation for TLS_LDM_CALL and TLS_GD_CALL on SPARC
Date: Wed, 19 Oct 2011 00:32:28 +0000

http://sourceware.org/bugzilla/show_bug.cgi?id=13301

--- Comment #1 from cvs-commit at gcc dot gnu.org <cvs-commit at gcc dot 
gnu.org> 2011-10-19 00:32:28 UTC ---
CVSROOT:    /cvs/src
Module name:    src
Changes by:    address@hidden    2011-10-19 00:32:25

Modified files:
    bfd            : ChangeLog elfxx-sparc.c 
    gold           : ChangeLog sparc.cc 
    ld/testsuite   : ChangeLog 
    ld/testsuite/ld-sparc: tlssunbin32.dd tlssunbin64.dd 
                           tlssunpic32.dd tlssunpic64.dd 

Log message:
    Fix sparc TLS call relaxation when the delay slot sets up %o0.

    bfd/

    PR binutils/13301
    * elfxx-sparc.c (sparc_elf_find_reloc_at_ofs): New function.
    (_bfd_sparc_elf_relocate_section): Always move the __tls_get_addr
    call delay slot instruction forward 4 bytes when performing
    relaxation.

    gold/

    PR binutils/13301
    * sparc.cc (Target_sparc::Relocate::reloc_adjust_addr_): New
    member to track relocation locations that have moved during TLS
    reloc optimizations.
    (Target_sparc::Relocate::Relocate): Initialize to NULL.
    (Target_sparc::Relocate::relocate): Adjust view down by 4
    bytes if it matches reloc_adjust_addr_.
    (Target_sparc::Relocate::relocate_tls): Always move the
    __tls_get_addr call delay slot instruction forward 4 bytes when
    performing relaxation.

    ld/testsuite/

    * ld-sparc/tlssunbin32.dd: Update for TLS call relaxation fix
    for PR 13301.
    * ld-sparc/tlssunbin64.dd: Likewise.
    * ld-sparc/tlssunpic32.dd: Likewise.
    * ld-sparc/tlssunpic64.dd: Likewise.

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/src/bfd/ChangeLog.diff?cvsroot=src&r1=1.5491&r2=1.5492
http://sourceware.org/cgi-bin/cvsweb.cgi/src/bfd/elfxx-sparc.c.diff?cvsroot=src&r1=1.60&r2=1.61
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gold/ChangeLog.diff?cvsroot=src&r1=1.841&r2=1.842
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gold/sparc.cc.diff?cvsroot=src&r1=1.49&r2=1.50
http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/testsuite/ChangeLog.diff?cvsroot=src&r1=1.1469&r2=1.1470
http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/testsuite/ld-sparc/tlssunbin32.dd.diff?cvsroot=src&r1=1.3&r2=1.4
http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/testsuite/ld-sparc/tlssunbin64.dd.diff?cvsroot=src&r1=1.2&r2=1.3
http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/testsuite/ld-sparc/tlssunpic32.dd.diff?cvsroot=src&r1=1.3&r2=1.4
http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/testsuite/ld-sparc/tlssunpic64.dd.diff?cvsroot=src&r1=1.2&r2=1.3

-- 
Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.



reply via email to

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