Port-mips archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Running o32 code on n32 (Part 2, fancier programs)
So I'm trying to build packages from pkgsrc with o32. First one to be
built (ever) is pkgtools/digest. but built with -mabi=32, it hangs in an
infinite loop if just run with no arguments (normally it prints usage).
I noticed __getdents30 is in the backtrace and put a breakpoint for it.
after syscall, it changes the badvaddr register.
Also backtrace:
(gdb) bt
#0 0x78729b5c in __getdents30 () from /usr/lib/o32/libc.so.12
#1 0x787297e4 in ___readdir_unlocked50 () from /usr/lib/o32/libc.so.12
#2 0x78727364 in _citrus_load_module () from /usr/lib/o32/libc.so.12
#3 0x7872656c in _citrus_ctype_open () from /usr/lib/o32/libc.so.12
#4 0x7871be90 in _rune_load () from /usr/lib/o32/libc.so.12
#5 0x78719a10 in ?? () from /usr/lib/o32/libc.so.12
#6 0x78719d0c in ?? () from /usr/lib/o32/libc.so.12
#7 0x78719e44 in ?? () from /usr/lib/o32/libc.so.12
#8 0x7871a118 in _citrus_LC_CTYPE_setlocale () from
/usr/lib/o32/libc.so.12
#9 0x78716548 in _generic_LC_ALL_setlocale () from
/usr/lib/o32/libc.so.12
#10 0x78716bec in __setlocale () from /usr/lib/o32/libc.so.12
#11 0x00411dac in main ()
I thought that it might have something to do with registers being
trampled by the kernel on syscalls, but that seems unlikely - o32
just has temporary registers where n32 has non-temporary ones.
Any suggestions/tips?
I'm also slightly puzzled as to why we're saving temporary registers in
systemcall in mipsX_subr.S, isn't caller expected to save them?
Home |
Main Index |
Thread Index |
Old Index