1 |
Jan Kundrát píše: |
2 |
|
3 |
>>less /usr/lib/glibc.so |
4 |
> |
5 |
> Linkeru absolutne nerozumim, nicmene predpokladam spis "/usr/lib/libc.so". |
6 |
|
7 |
Přesně tak, omlouvám se za trapný překlep. |
8 |
Tak dlouho jsem hledal, jestli ten problematický soubor byl libc nebo |
9 |
libglib a s jakou koncovkou, až jsem to spletl dohromady a napsal nesmysl. |
10 |
|
11 |
>>> /* GNU ld script |
12 |
>>> Use the shared library, but some functions are only in |
13 |
>>> the static library, so try that secondarily. */ |
14 |
>>>OUTPUT_FORMAT(elf32-i386) |
15 |
>>>GROUP ( /lib/libc.so.6 /usr/lib/libc_nonshared.a AS_NEEDED ( /lib/ld-linux.so.2 ) ) |
16 |
>> ... |
17 |
>>>GROUP ( /lib/libc.so.6 /usr/lib/libc_nonshared.a /lib/ld-linux.so.2 ) |
18 |
> |
19 |
> To je nejakej rucni uber-tweak, a nebo defaultni volba? Pokud |
20 |
> automaticka, na jakych systemech? |
21 |
> ... |
22 |
> (OT poznamka - jak jiz bylo receno, linkeru ale vubec nerozumim, nicmene |
23 |
> to, ze do souboru s priponou .so dava ascii text, mi prijde takovy, no, |
24 |
> divny...) |
25 |
|
26 |
Mé vlastní znalosti programování vůbec a systémového zvlášť jsou |
27 |
značně útržkovité a omezené. Z onoho |
28 |
|
29 |
>>> /* GNU ld script |
30 |
|
31 |
na začátku ,,knihovny`` jsem vyrozuměl, že přinejmenším GNU ld poslední |
32 |
dobou žere kromě binárních knihoven i skripty, které popisují, jakou |
33 |
kombinaci binárních knihoven má za jakých okolností spořádat. |
34 |
Když jsem poprvé hledal, proč mi najednou kompilátor nekompiluje, |
35 |
našel jsem skrze Google věci jako |
36 |
http://sourceware.org/ml/binutils/2005-01/msg00288.html -- zrovna moudrý |
37 |
jsem z toho nebyl, ale usoudil jsem, že AS_NEEDED je příkaz, direktiva, |
38 |
nebo jak se tomu nadává, přidaný (či přidaná nebo přidané) k syntaxi |
39 |
skriptů linkeru někdy nedávno, a tak se mi může stát, že nainstaluji |
40 |
knihovnu, která to používá, s linkerem, jenž to ještě nezná. Tím pádem |
41 |
by problémy měly časem, jak budu upgradovat linker, zmizet, a prozatím |
42 |
je snad aspoň částečně vyřeší ruční zásah, kterým ve skriptu předepíšu, |
43 |
že to, co by se ideálně mělo načítat dle potřeby (AS_NEEDED), se bude |
44 |
načítat vždycky. |
45 |
Mé dočasné ruční řešení se zdálo vskutku fungovat, a teď, jak už jsem |
46 |
psal, už můj linker rozumí i AS_NEEDED a já si do knihoven zasahovat |
47 |
nemusím. Ale dělal jsem to několikrát, ještě docela nedávno, tak když |
48 |
teď někdo jiný narazil na zásadní problémy s kompilací, dávám tuhle |
49 |
možnost k lepšímu. |
50 |
|
51 |
> No a ja jenom doplnim, ze je taky dobre overovat vsechno, co na |
52 |
> konferenci/IRC lidi poradi. |
53 |
|
54 |
To je velmi dobrá rada (zvlášť jestli ta ukázka z IRC byla autentická |
55 |
a postižený o tom, že ,,rady`` okamžitě uposlechl, nežertoval). V tomhle |
56 |
má konference oproti IRC trochu výhodu -- i nepříliš rozvážný člověk má |
57 |
šanci, že než si přečte poštu, stačí zlomyslnou, nevhodně žertovnou nebo |
58 |
prostě hloupou radu někdo okomentovat a uvést na správnou míru. |
59 |
|
60 |
Například mě napadá, že v mém případě by možná bývalo už napoprvé |
61 |
pomohlo, kdybych místo studia knihoven zkusil |
62 |
eselect binutils list |
63 |
a přepnul na nejčerstvější verzi. Ale zatím to sem nikdo nenapsal, tak |
64 |
nevím. |
65 |
|
66 |
Mějte se krásně. |
67 |
Honza Macháček |
68 |
|
69 |
-- |
70 |
gentoo-user-cs@g.o mailing list |