[roland/ehdr_start] Use __ehdr_start, when available, for rtld to get its own headers.

Message ID 5327774A.3000609@redhat.com
State Not applicable
Headers

Commit Message

Carlos O'Donell March 17, 2014, 10:29 p.m. UTC
  On 03/17/2014 04:07 PM, Roland McGrath wrote:
>> This causes a failure in check-abi-ld.
> 
> I have no problems on x86_64-linux-gnu with trunk binutils.
> 
>> It looks like the additional symbol entry:
>>
>> 0000000000000000 g    D  .note.gnu.build-id     0000000000000000  Base
>>        .hidden __ehdr_start
>>
>> needs to either be accounted for in the abilist files or ignored in
>> the abilist script.
> 
> That looks like a binutils bug.  __ehdr_start should never make it to
> .dynsym.  Give details about your libc configuration and your binutils
> version.

I see this on f19 build systems.


...
Symbol table '.dynsym' contains 29 entries:
   Num:    Value          Size Type    Bind   Vis      Ndx Name
     0: 0000000000000000     0 NOTYPE  LOCAL  DEFAULT  UND 
     1: 0000000000000ab0     0 SECTION LOCAL  DEFAULT   10 
     2: 0000000000000000     0 NOTYPE  GLOBAL HIDDEN     1 __ehdr_start
...


GNU assembler version 2.23.52.0.1 (x86_64-redhat-linux) \
using BFD version version 2.23.52.0.1-9.fc19 20130226

../../src/glibc/configure --prefix=/usr \
--with-headers=/home/carlos/install-linux/include \
--without-selinux --enable-add-ons=nptl

Cheers,
Carlos.
  

Patch

--- ../sysdeps/unix/sysv/linux/x86_64/64/nptl/ld.abilist	2014-03-14 13:44:46.788247781 -0400
+++ /home/carlos/build/glibc-wundef/elf/ld.symlist	2014-03-17 01:17:11.841818363 -0400
@@ -0,0 +1,2 @@ 
+Base
+__ehdr_start Base g ? D .hash 0000000000000000