/lib/ld-linux.so.2: cannot execute binary file: fix propsal
    Intron is my alias on the Internet 
    mag at intron.ac
       
    Sun Sep 10 23:39:39 PDT 2006
    
    
  
Marcin Cieslak wrote:
> Alexander Leidinger wrote:
> 
>>> 
>>> In general, I guess ELF shared libraries should be Linux branded as 
>>> well?
>> 
>> No, this will not work. You can't start apps which are linked to shared
>> libs anymore after this. The linux linker expects the to be branded
>> differently than what you propose here (been there done that months or
>> years ago).
> 
> This probably leads to commit/revert wars like http://42.pl/u/lAF :)
> 
> I have branded /compat/linux/lib/ld-2.3.6.so and it seems
> to work for me(tm).
> 
> It would be anyway interesting to know more about branding and its quirks.
> 
> -- 
>               << Marcin Cieslak // saper at system.pl >>
Please note that ld-2.3.3.so and ld-linux.so.2 point to a unique file:
-rwxr-xr-x  1 root  wheel    98176  4  1 00:52 ld-2.3.3.so
lrwxrwxrwx  1 root  wheel       11  4  1 00:53 ld-linux.so.2 -> ld-2.3.3.so
ld-linux.so.2 is loaded by FreeBSD kernel when a Linux ABI is executed.
At the same time, FreeBSD kernel can recognize various brand numbers:
#brandelf -l
known ELF types are: FreeBSD(9) Linux(3) Solaris(6) SVR4(0)
But this doesn't mean ld-linux.so.2 can recogize various brand numeric
indications of shared libraries other than ld-linux.so.2. If you mark
libc.so.6 with brand "3", you will get:
#/compat/linux/bin/ls 
/compat/linux/bin/ls: error while loading shared libraries: /lib/libc.so.6: ELF file OS ABI invalid
When you re-mark libc.so.6 with brand "0", it will work again:
#brandelf -f 0 libc.so.6 
#/compat/linux/bin/ls
... ...
This problem should be owed to ld-linux.so.2, the Linux dynamical linker,
not to FreeBSD kernel.
------------------------------------------------------------------------
                                                From Beijing, China
    
    
More information about the freebsd-emulation
mailing list