OpenSSL is tud ám exportálni...

Ja, exportál az OpenSSL lelkesen, mint egy fejlődő ország, ami kemény valutára vágyik.
Kicsit megfékeztem a lelkesedését, itt a jutalmam:


$ ssh
exec(): 0509-036 Cannot load program ssh because of the following errors:
        0509-130 Symbol resolution failed for ssh because:
        0509-136   Symbol memcpy (number 207) is not exported from
                   dependent module /usr/local/lib64/libcrypto.so.1.0.2.
        0509-136   Symbol memset (number 208) is not exported from
                   dependent module /usr/local/lib64/libcrypto.so.1.0.2.
        0509-136   Symbol strcmp (number 209) is not exported from
                   dependent module /usr/local/lib64/libcrypto.so.1.0.2.
        0509-136   Symbol memmove (number 210) is not exported from
                   dependent module /usr/local/lib64/libcrypto.so.1.0.2.

Vagyis ez egy olyanfajta hiba, ami nem akkor okoz bajt, amikor történik, hanem amikor kijavítják.

Szerk: Elfelejtettem mondani, hogy itt AIX-ról van szó.
Emlékeztető önmagamnak: újrafordítási sor:
openssl -> openssh, wget, libssh2, curl, lynx, httpd, php, httpd, tomcat-native, serf, python, smbd

Hozzászólások

;)
Igazából azért nem a szokásos módszerrel csinálták OpenSSL-ék az exportolást, mert az Assembly-programrészeikben (pl ppccpuid.s) nincs function descriptor az exportált szimbólumokhoz. Nyilván lehetne tenni bele, vagy explicit felsorolni ezeket valami export-fájlban; de még egyszerűbb volt a -bexpall opciót használni. A mellékhatásokról nem kérdezték meg a kezelőorvosukat, gyógyszerészüket, vagyis hogy az OpenSSL-t azt is exportálni fogja, amit a libc.a-ból ránt be, pl a libc.a[memcpy.o]-ból a memcpy-t.

Az nm szerint szep nagy U(ndefined) symbol a memcpy es tarsai linuxokon a libcrypto.so.1.0.0-ban, es ez igy is van rendjen, mert a libc.so.6-ban vannak, szoval azon a linuxon, ahol en nezelodok, minden okes. A problema az on keszulekeben van.