1 |
Hi Benda, |
2 |
|
3 |
Thx for suggestions and the link on elf. |
4 |
|
5 |
1. Host python is too old. |
6 |
|
7 |
2. This give the unhelpful message |
8 |
lect: error while loading shared libraries: lect: cannot open shared object file |
9 |
I tried the --list option of ld but it does not help. |
10 |
|
11 |
3. This is what I'm desperately trying to avoid, but it looks |
12 |
unavoidable I'm afraid. |
13 |
|
14 |
Cheers, |
15 |
Antoine. |
16 |
|
17 |
On Sat, Dec 3, 2016 at 8:45 AM, Benda Xu <heroxbd@g.o> wrote: |
18 |
> Hi Antoine, |
19 |
> |
20 |
> Antoine Dechaume <boolegue@×××××.com> writes: |
21 |
> |
22 |
>> this is the error I get inside gentoo-rap when running an executable |
23 |
>> and libraries build on another platform: |
24 |
>> lect: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by |
25 |
>> /XXX/gentoo-rap/usr/lib64/libcgns.so) |
26 |
>> lect: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by |
27 |
>> /XXX/gentoo-rap/usr/lib64/libpython2.7.so.1.0) |
28 |
> |
29 |
> The binary is interpretated by the host /lib64/ld-linux-x86-64.so.2 but |
30 |
> it somehow loads python runtime from RAP (which is compiled with a newer |
31 |
> version of glibc). The old /lib64/ld-linux-x86-64.so.2 cannot resolve that. |
32 |
> |
33 |
> 3 possible solutions: |
34 |
> |
35 |
> 1. find out how the binary loaded libpython, and point it to the host |
36 |
> libpython instead. |
37 |
> |
38 |
> 2. execute the binary by RAP dynamic linker explicitly: |
39 |
> |
40 |
> /XXX/gentoo-rap/lib64/ld-linux-x86-64.so.2 <binary> |
41 |
> |
42 |
> you can use patchelf to rewrite the program interpreter. |
43 |
> |
44 |
> 3. rebuild the binary with Gentoo RAP gcc. |
45 |
> |
46 |
> Yours, |
47 |
> Benda |
48 |
> |
49 |
> Reference: https://greek0.net/elf.html |
50 |
> section "Dynamic linking and the ELF interpreter" |
51 |
> |