Következő megálló az openssl-0.9.7g... ahhoz, hogy menjen a gcc-vel, el kell neki magyarázni hogy nincs cc a gépen.. persze van, hiszen az egy szimlink a gcc-re... tehát a trükk:
A másik bűnös a gas akit zavar hogy az aix_ppc32.s-ben definiált szimbólumok (pl bn_add_words) csect-nélküliek... bármit is jelent ez A megoldás: a gyári as használata
ln -sf /usr/bin/as . export PATH="$(pwd -P):$PATH" make all
Megjegyzések: 1. Hagyományosan a "cc" egy link a default compilerre, aki lehet a "gcc" vagy az "xlc" vagy más, tehát az openssl-nek inkább az xlc meglétét kellene ellenőriznie. 2. Nálunk a PATH-ban a /usr/local/bin a /usr/bin előtt van, így 'magától' a /usr/local/bin/as-t találja meg (ami egy szimlink a /usr/local/bin/gas-ra)
Az a legbosszantóbb, hogy már ott van a nevében a "L", de még csak annyit jelent, hogy le tud fordítani linux-ból származó source-kat (LINUX_SOURCE_COMPAT-ot vagy hasonlót kell #define-olni), csak futtatáskor közli, hogy nem megy a PTRACE (PTRACE_SYSCALL)
Sőt, a locale64 sikeresen kload-olja a nem is létező /usr/ccs/lib/libi18n.a(shr_64.o)-t! Lehet, hogy statikusan hozzá van bindelve, és ilyenkor a kload nem is nézi a fizikai file-t?
Ha 64 bittel repülünk, akkor a sokkal olvashatóbb "kload"-ot látjuk, amiből a következők derülnek ki:
Be tudja tölteni a "/usr/lib/nls/loc/en_US.ISO8859-1__64"-t vagy a "/usr/lib/nls/loc/hu_HU.ISO8859-2__64"-t, utána pedig keresi, de nem találja a "/usr/ccs/lib/libi18n.a(shr_64.o)"-et.
Végül az errno-t beállítja 8-ra (Exec format error)
Javítás: libcharset/localcharset.lo a helyes megfejtés, egy kis hiba még van benne... ugyanis, mint tudjuk, a "nl_langinfo (CODESET)" mindig "iso8859-1"-et válaszol, tehát rá kell venni, hogy ne azt nézze, hanem a LC_ALL/ LC_CTYPE/ LANG változót... ezt meg is tenné, csak nem szedi ki a . és a @ közül a karakterkészlet nevét... (pl be: hu_HU.ISO8859-2 ki: ISO8859-2)
Ugy néz ki, hogy a glib/libcharset/localcharset.c függvényei "nem jól" kerültek bele a libglib-2.0.so.0 -ba. A gond azzal függ össze, hogy nem közvetlenül az objekt-modult linkeli, hanem egy köztes könyvtárba helyezi. Megoldásképpen ezzel próbálkozom (./configure után):
Igy működik, viszont belehal a hibaüzenet kiírásába...
#0 0xd6b77488 in _g_locale_charset_raw () from /usr/local/lib/libglib-2.0.a(libglib-2.0.so.0) #1 0xd6b6df0c in g_get_charset () from /usr/local/lib/libglib-2.0.a(libglib-2.0.so.0) #2 0xd6b626e8 in g_strerror () from /usr/local/lib/libglib-2.0.a(libglib-2.0.so.0) #3 0x1001efa0 in unix_error_string (error_num=13) at util.c:769 #4 0x100852a4 in files_error ( format=0x100a7ec8 " Cannot move directory "%s" to "%s" n %s ", file1=0x8 "", file2=0x2005dfd8 "./w") at file.c:2216 #5 0x10083480 in move_dir_dir (ctx=0x2005d018, s=0x2005dfb8 "/usr/local/www", d=0x2005dfd8 "./w", progress_count=0x2ff22668, progress_bytes=0x2ff22670) at file.c:1315 #6 0x1008497c in panel_operate (source_panel=0x2004f5d8, operation=OP_MOVE, thedefault=0x42228442 <Address 0x42228442 out of bounds>, ask_user=1) at file.c:1989 #7 0x10029694 in ren_cmd () at cmd.c:369 #8 0x10037d84 in buttonbar_callback (bb=0x2005d8e8, msg=8, par=0) at widget.c:2230 #9 0x1002f254 in dlg_try_hotkey (h=0x20041968, d_key=1006) at dlg.c:613 #10 0x1002f408 in dlg_key_event (h=0x20041968, d_key=1006) at dlg.c:658 #11 0x1002f6dc in dlg_process_event (h=0x20041968, key=8, event=0x2ff22868) at dlg.c:779 #12 0x1002fee0 in frontend_run_dlg (h=0x20041968) at dlg.c:813 #13 0x1002f840 in run_dlg (h=0x20041968) at dlg.c:828 #14 0x10003af4 in setup_panels_and_run_mc () at main.c:1912 #15 0x10003dc0 in do_nc () at main.c:1985 #16 0x10004978 in main (argc=536890016, argv=0x20004aa0) at main.c:2520
Azért nem egy fáklyásmenet az élet az ilyen egzotikus platformokon... most éppen a mc-4.6.0 intett be: # ldd mc exec(): 0509-036 Cannot load program mc because of the following errors: 0509-022 Cannot load module /usr/lib/libX11.a(shr4.o). 0509-150 Dependent module /usr/local/lib/libiconv.a(shr4.o) could not be loaded. 0509-152 Member shr4.o is not found in archive 0509-022 Cannot load module /usr/local/lib/libiconv.a. 0509-150 Dependent module /usr/local/lib/libiconv.a could not be loaded.
A gas-sal akkor jó, ha a '-mppc' '-mppc32' '-mppc64' opciók valamelyikét megadjuk neki. Már csak az kell, hogy a gcc-n keresztül hogy fog ez működni...
A hülye is kitalálhatja, hogy mi a megoldás;) Fordítsuk újra a GNU-gettext-et, de úgy, hogy a configure előtt állítsuk be: export am_cv_langinfo_codeset=no akkor nem fogja a nl_langinfo(CODESET)-et kérdezgetni, hanem a LC_ALL/ LC_CTYPE/ LANG változók valamelyikéből veszi a charset info-t