rtld i386 versus amd64
Dan Lukes
dan at obluda.cz
Wed Feb 16 17:47:13 CET 2011
On 02/16/11 17:02, Petr Matousek:
>> A ted jeste potrebuju aby se nasel nekdo, kdo vyresi tu druhou
>> polovinu problemu - a zjevil kde se, sakra, rika jaka rtld knihovna se
>> ma pouzit ;-)
>
> http://fxr.watson.org/fxr/source/compat/ia32/ia32_sysvec.c?im=10#L163
> http://fxr.watson.org/fxr/source/kern/imgact_elf.c?im=10#L768
>
> co tohle?
Hm, jakpakto jsem mel ten grep napsanej, ze mi tohle nenasel ...
Tam nekde to skutecne je.
Ja jsem si to ale mezitim pri skrabani brambor prerozmyslel a mozna se
obejdu bez toho.
Teda - ja o tom premyslim jako o teoretickem problemu. Budu to urcite
nekdy potrebovat, ale ted nemam cas to dotahnout do konce. Kdyby to
nekoho zajimalo, tak soucasna predstava jak to udelat je
Vychazim z i386 systemu stejne verze jaky bude mit AMD64 na jaky hodlam
prejit. rec je o normalne bezicim systemu kam se pristupuje na dalku po
siti, v /usr/src jsou zdrojaky, v /usr/obj je jsou relozene veci PRO
AMD64 (jak se tam dostali ? odjinud, respektive, je to sitove
primoutovany vzdaleny disk). Takze:
1) nainstalovat LIB32 set.
to by jeste nemelo mit na bezici system naprosto zadny vliv
2) nakopirovat na stroj AMD64 kernel obsahujici COMPAT32
3) do rc.conf dat
ldconfig32_paths="$ldconfig32_paths $ldconfig_paths"
ldconfig_local32_dirs="ldconfig_local32_dirs ldconfig_local_dirs"
3) reboot
nyni mame amd64-kerne/i386 world system - mel by byt ovsem normalne
funkcni (vcetne portu) - kernel je 64, world je kompletne 32 bitu a 32
bitu kernel podporuje, ma tam i potrebne knihovny, vcetne
/libexec/ld-elf32.so.1
4) nyni je treba nainstalovat spravny /libexec/ld-elf.so.1
stavajici /libexec/ld-elf.so.1 pochazejici pro i386 byl pro 64bit kernel
zcela nepouzitelna, ale dokud neni na disku jediny 64 bitovy binar, tak
by to melo byt fuk protoze se nepouzival.
5) na rade jsou systemove dynamicke knihovny (/lib, /usr/lib)
6) regenerovat databazi pro ldconfig
7) preinstalovat programy make a install
8) ted uz by to melo unest klasicky 'installworld'
9) restart
mame konzistentni amd64-kernel/amd64-world system. Porty jsou stale
i386, ale mely by bezet, protoze kompatibilita je pritomna
10) kompletni reinstalace portu na jejich amd64 varianty
11) odstranit upravy rc.conf
12) hotovo, restart
==================
nesnazim se nekoho presvedcit at to jde zkouset - spis kdyby to nekoho
zajimalo nebo to potreboval, nebo tam na prvni pohled videl nejaky zadrhel.
Ja sam se ted nebudu pokouset to zkouset a doladit do finalne
pouziteneho stavu ...
Dan
More information about the Users-l
mailing list