This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [ARM] Fix ld.so crash when built using Binutils 2.29




On 12/07/17 17:23, Ramana Radhakrishnan wrote:
On Wed, Jul 12, 2017 at 5:13 PM, Jiong Wang <jiong.wang@foss.arm.com> wrote:
Hi,

   There is bug report that ld.so in GLIBC 2.24 built by Binutils 2.29 will
crash
on arm-linux-gnueabihf.  This is confirmed, and the details is at:

    https://sourceware.org/bugzilla/show_bug.cgi?id=21725.

   And I could also reproduce this crash using GLIBC master.

   As analyzed in the PR, the old code was with the assumption that assembler
won't set bit0 of thumb function address if it comes from PC-relative
instructions and the calculation can be finished during assembling.  This
assumption however does not hold after PR gas/21458.

   I think ARM backend in GLIBC should be fix to be more portable so it could
work with various combinations of GLIBC and Binutils.

   OK for master and backport to all release branches?
Has a combination of a binutils that did not have the fix for 21458 +
glibc with this patch been tested ?

It has been tested.

PR gas/21458 will set lsb of the address, so now the lsb may or may not be set and this
depends on whether you are using old or new Binutils.  Always strip "pcrel_addr" makes
its lsb status synced with "got_addr".


Ramana

2017-07-12  Jiong Wang  <jiong.wang@arm.com>

         * sysdeps/arm/dl-machine.h (elf_machine_load_address):  Also strip
bit 0
         of pcrel_address under Thumb mode.



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]