Hello! One of the users here is still actively using Applixware office suit. The applications worked alright under FreBSD-8.x/i386: % file /opt/applix/applix /opt/applix/applix: ELF 32-bit LSB executable, Intel 80386, version 1, dynamically linked (uses shared libs), not stripped Unfortunately, applix would not start under FreeBSD-10.1/amd64: Bad system call. The tail of kdump looks thus: ...... 14383 applix CALL sigprocmask(SIG_BLOCK,0x28071e20,0xffffc788) 14383 applix RET sigprocmask 0 14383 applix CALL sigprocmask(SIG_SETMASK,0x28071e34,0) 14383 applix RET sigprocmask 0 14383 applix CALL sigprocmask(SIG_BLOCK,0x28071e20,0xffffc788) 14383 applix RET sigprocmask 0 14383 applix CALL sigprocmask(SIG_SETMASK,0x28071e34,0) 14383 applix RET sigprocmask 0 14383 applix CALL compat.sigprocmask 14383 applix RET compat.sigprocmask -1 errno 78 Function not implemented 14383 applix PSIG SIGSYS SIG_DFL code=SI_KERNEL I copied the 32-bit libraries from the old install -- they are found, according to ldd. % ldd /opt/applix/applix /opt/bin/applix: libX11.so.6 => /opt/lib32/libX11.so.6 (0x2807b000) libm.so.2 => /usr/lib32/libm.so.4 (0x281af000) libc.so.3 => /usr/lib32/libc.so.3 (0x281c5000) libxcb.so.2 => /opt/lib32/libxcb.so.2 (0x28247000) libXau.so.6 => /opt/lib/../lib32/libXau.so.6 (0x2825e000) libXdmcp.so.6 => /opt/lib/../lib32/libXdmcp.so.6 (0x28261000) libpthread-stubs.so.0 => /opt/lib/../lib32/libpthread-stubs.so.0 (0x28267000) librpcsvc.so.5 => /usr/lib32/librpcsvc.so.5 (0x28269000) libc.so.7 => /usr/lib32/libc.so.7 (0x28271000) Yes, the usage of libm.so.4 instead of 2 looks funny, but that's how it always was -- the old (8.x) install does not have libm.so.2 at all. Besides, it dies at the very start -- would not even process the `-version' or `-help' options.... The new kernel includes GENERIC -- without disabling any of the COMPAT-options. What else am I missing? Thank you! Yours, -mi
Konstantin Belousov
2014-Dec-22 17:29 UTC
Old 32-bit binary stopped working after upgrade to 10.1/amd64
On Mon, Dec 22, 2014 at 12:13:02PM -0500, MT wrote:> Hello! > > One of the users here is still actively using Applixware office suit. > The applications worked alright under FreBSD-8.x/i386: > > % file /opt/applix/applix > /opt/applix/applix: ELF 32-bit LSB executable, Intel 80386, version > 1, dynamically linked (uses shared libs), not stripped > > Unfortunately, applix would not start under FreeBSD-10.1/amd64: Bad > system call. The tail of kdump looks thus: > > ...... > 14383 applix CALL sigprocmask(SIG_BLOCK,0x28071e20,0xffffc788) > 14383 applix RET sigprocmask 0 > 14383 applix CALL sigprocmask(SIG_SETMASK,0x28071e34,0) > 14383 applix RET sigprocmask 0 > 14383 applix CALL sigprocmask(SIG_BLOCK,0x28071e20,0xffffc788) > 14383 applix RET sigprocmask 0 > 14383 applix CALL sigprocmask(SIG_SETMASK,0x28071e34,0) > 14383 applix RET sigprocmask 0 > 14383 applix CALL compat.sigprocmask > 14383 applix RET compat.sigprocmask -1 errno 78 Function not > implemented > 14383 applix PSIG SIGSYS SIG_DFL code=SI_KERNEL > > I copied the 32-bit libraries from the old install -- they are found, > according to ldd. > > % ldd /opt/applix/applix > /opt/bin/applix: > libX11.so.6 => /opt/lib32/libX11.so.6 (0x2807b000) > libm.so.2 => /usr/lib32/libm.so.4 (0x281af000) > libc.so.3 => /usr/lib32/libc.so.3 (0x281c5000) > libxcb.so.2 => /opt/lib32/libxcb.so.2 (0x28247000) > libXau.so.6 => /opt/lib/../lib32/libXau.so.6 (0x2825e000) > libXdmcp.so.6 => /opt/lib/../lib32/libXdmcp.so.6 (0x28261000) > libpthread-stubs.so.0 => > /opt/lib/../lib32/libpthread-stubs.so.0 (0x28267000) > librpcsvc.so.5 => /usr/lib32/librpcsvc.so.5 (0x28269000) > libc.so.7 => /usr/lib32/libc.so.7 (0x28271000) > > Yes, the usage of libm.so.4 instead of 2 looks funny, but that's how it > always was -- the old (8.x) install does not have libm.so.2 at all. > Besides, it dies at the very start -- would not even process the > `-version' or `-help' options.... > > The new kernel includes GENERIC -- without disabling any of the > COMPAT-options. > > What else am I missing? Thank you! Yours,I think you need COMPAT_43 option. It is for compatibility with pre-FreeBSD 4 syscalls, not for FreeBSD 4.3.