patvdv
14th December 2001, 02:01
Okay, this one is for the real LINUX gurus out here. I got finally the Linux portingset - thanks Scott! - and with great expectations I started out for Baan installation. I didn't expect it to go smoothly as I am running quite a different system from the one the binaries were originally compiled on:
Redhat 7.1 SMP Kernel 2.4.2.2
Dual CPU 933 Intel
glibc2.2.4-19
compat-glibc-6.2-2.1.3.2
First try to run ba6.1 -v:
#bash : no such file or directory
#file ba6.1
ba6.1: ELF 32-bit LSB executable, Intel 80386, version 1, dynamically linked (uses shared libs), not stripped
Okay seems like the portingset binaries need libc5:
Installed libc5 and ld.so.1:
libc5-5.4.38-3
ld.so-1.9.5-13
Created /etc/ld.so.preload, reconfigured /etc/ld.so.conf and checked library dependancies:
# ldconfig
# ldd ba6.1
/lib/libsafe.so.1.3 => /lib/libsafe.so.1.3 (0x40021000)
libm.so.5 => /usr/i486-linuxlibc5/lib/libm.so.5 (0x40026000)
libc.so.5 => /usr/i486-linuxlibc5/lib/libc.so.5 (0x4002f000)
libdl.so.2 => /lib/libdl.so.2 (0x400eb000)
libc.so.6 => /lib/libc.so.6 (0x400ef000)
ld-linux.so.2 => /lib/ld-linux.so.2 (0x4022d000)
Okay, looks good. Second run still ends in segmentation fault.
Check core with gdb:
#gdb ba6.1 core
GNU gdb Red Hat Linux (5.1-0.71)
Copyright 2001 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as "i386-redhat-linux"...
(no debugging symbols found)...
Core was generated by `./ba6.1 -v'.
Program terminated with signal 11, Segmentation fault.
Reading symbols from /lib/libsafe.so.1.3...(no debugging symbols found)...done.
Loaded symbols for /lib/libsafe.so.1.3
Reading symbols from /usr/i486-linuxlibc5/lib/libm.so.5...done.
Loaded symbols for /usr/i486-linuxlibc5/lib/libm.so.5
Reading symbols from /usr/i486-linuxlibc5/lib/libc.so.5...done.
Loaded symbols for /usr/i486-linuxlibc5/lib/libc.so.5
Reading symbols from /lib/libdl.so.2...done.
Loaded symbols for /lib/libdl.so.2
Reading symbols from /lib/libc.so.6...done.
Loaded symbols for /lib/libc.so.6
Reading symbols from /lib/ld-linux.so.2...done.
Loaded symbols for /lib/ld-linux.so.2
Reading symbols from /lib/ld-linux.so.1...done.
Loaded symbols for /lib/ld-linux.so.1
#0 0x4023a520 in _dl_signal_error (errcode=) at dl-error.c:68
in dl-error.c
(gdb) quit
Trace system calls:
# strace -f ba6.1 -v
......
mprotect(0x400ef000, 1261030, PROT_READ|PROT_WRITE|PROT_EXEC) = 0
open("/usr/lib/libc.so.6", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/lib/ld-linux.so.2", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\220\36"..., 4096) = 4096
old_mmap(NULL, 94208, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x4022d000
old_mmap(0x4022d000, 87145, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0x4022d000
old_mmap(0x40243000, 1924, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x15000) = 0x40243000
close(3) = 0
mprotect(0x4022d000, 87145, PROT_READ|PROT_WRITE|PROT_EXEC) = 0
munmap(0x40008000, 98793) = 0
mprotect(0x8048000, 562378, PROT_READ|PROT_EXEC) = 0
mprotect(0x40021000, 13096, PROT_READ|PROT_EXEC) = 0
mprotect(0x40026000, 24992, PROT_READ|PROT_EXEC) = 0
mprotect(0x4002f000, 536799, PROT_READ|PROT_EXEC) = 0
mprotect(0x400eb000, 8205, PROT_READ|PROT_EXEC) = 0
mprotect(0x400ef000, 1261030, PROT_READ|PROT_EXEC) = 0
mprotect(0x4022d000, 87145, PROT_READ|PROT_EXEC) = 0
mprotect(0x40000000, 21772, PROT_READ|PROT_EXEC) = 0
personality(PER_LINUX) = 0
geteuid() = 0
getuid() = 0
getgid() = 0
getegid() = 0
brk(0x80e7ae4) = 0x80e7ae4
brk(0x80e8000) = 0x80e8000
brk(0x80e9000) = 0x80e9000
brk(0x80ea000) = 0x80ea000
.......
On a Redhat 6.2 system with glibc2.1.3 and libc5.3.12-31, the binaries execute without any problem:
A similar (and successful) strace:
.......
open("/usr/i486-linux-libc5/lib/libc.so.5", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0(k\1\000"..., 4096) = 4096
old_mmap(NULL, 823296, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40016000
old_mmap(0x40016000, 592037, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0x40016000
old_mmap(0x400a7000, 23728, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x90000) = 0x400a7000
old_mmap(0x400ad000, 201876, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x400ad000
close(3) = 0
mprotect(0x40016000, 592037, PROT_READ|PROT_WRITE|PROT_EXEC) = 0
munmap(0x40008000, 21183) = 0
mprotect(0x8048000, 562378, PROT_READ|PROT_EXEC) = 0
mprotect(0x4000e000, 24504, PROT_READ|PROT_EXEC) = 0
mprotect(0x40016000, 592037, PROT_READ|PROT_EXEC) = 0
mprotect(0x40000000, 21772, PROT_READ|PROT_EXEC) = 0
personality(PER_LINUX) = 0
geteuid() = 0
getuid() = 0
getgid() = 0
getegid() = 0
open("bse_vars", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/bse/bse_vars", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/baan/bse/lib/bse_vars", O_RDONLY) = -1 ENOENT (No such file or directory)
sigaction(SIGSEGV, {0x80a7a70, [], SA_INTERRUPT|SA_NOMASK|SA_ONESHOT}, {SIG_DFL}, 0x4003dc68) = 0
sigaction(SIGILL, {0x80a7a70, [], SA_INTERRUPT|SA_NOMASK|SA_ONESHOT}, {SIG_DFL}, 0x4003dc68) = 0
umask(0) = 022
open("/baan/bse/log/log.ba6.1", O_RDWR|O_APPEND|O_CREAT, 0666) = 3
fcntl(3, F_SETFD, FD_CLOEXEC) = 0
fcntl(3, F_SETFD, FD_CLOEXEC) = 0
umask(022) = 0
write(2, "--------------------------------"..., 56-------------------------------------------------------
) = 56
write(2, "Porting set : 6.1c.03\n", 22Porting set : 6.1c.03
) = 22
write(2, "Port no. : TD.PROTO\n", 23Port no. : TD.PROTO
) = 23
write(2, "Date : Mon Jul 6 11:50:2"..., 47Date : Mon Jul 6 11:50:20 MET DST 1998
) = 47
write(2, "Uname : Linux cnl01513.baa"..., 82Uname : Linux cnl01513.baan.com 2.0.18 #1 Tue Sep 10 10:15:48 EDT 1996 i586
) = 82
write(2, "Machine-id : LINUX_I\n", 22Machine-id : LINUX_I
) = 22
write(2, "OS-release : 2.0\n", 18OS-release : 2.0
) = 18
.....
write(2, "LOADFLAGS : \n", 15LOADFLAGS :
) = 15
write(2, "--------------------------------"..., 56-------------------------------------------------------
) = 56
write(2, "Copyright (c) 1990-1998 Baan Dev"..., 46Copyright (c) 1990-1998 Baan Development B.V.
) = 46
_exit(0) = ?
Someone any idea what might be going wrong? Is there anything else I need to change? If so what would that be? Or is this going to be a wasted effort without recompilation of the binaries?
Redhat 7.1 SMP Kernel 2.4.2.2
Dual CPU 933 Intel
glibc2.2.4-19
compat-glibc-6.2-2.1.3.2
First try to run ba6.1 -v:
#bash : no such file or directory
#file ba6.1
ba6.1: ELF 32-bit LSB executable, Intel 80386, version 1, dynamically linked (uses shared libs), not stripped
Okay seems like the portingset binaries need libc5:
Installed libc5 and ld.so.1:
libc5-5.4.38-3
ld.so-1.9.5-13
Created /etc/ld.so.preload, reconfigured /etc/ld.so.conf and checked library dependancies:
# ldconfig
# ldd ba6.1
/lib/libsafe.so.1.3 => /lib/libsafe.so.1.3 (0x40021000)
libm.so.5 => /usr/i486-linuxlibc5/lib/libm.so.5 (0x40026000)
libc.so.5 => /usr/i486-linuxlibc5/lib/libc.so.5 (0x4002f000)
libdl.so.2 => /lib/libdl.so.2 (0x400eb000)
libc.so.6 => /lib/libc.so.6 (0x400ef000)
ld-linux.so.2 => /lib/ld-linux.so.2 (0x4022d000)
Okay, looks good. Second run still ends in segmentation fault.
Check core with gdb:
#gdb ba6.1 core
GNU gdb Red Hat Linux (5.1-0.71)
Copyright 2001 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as "i386-redhat-linux"...
(no debugging symbols found)...
Core was generated by `./ba6.1 -v'.
Program terminated with signal 11, Segmentation fault.
Reading symbols from /lib/libsafe.so.1.3...(no debugging symbols found)...done.
Loaded symbols for /lib/libsafe.so.1.3
Reading symbols from /usr/i486-linuxlibc5/lib/libm.so.5...done.
Loaded symbols for /usr/i486-linuxlibc5/lib/libm.so.5
Reading symbols from /usr/i486-linuxlibc5/lib/libc.so.5...done.
Loaded symbols for /usr/i486-linuxlibc5/lib/libc.so.5
Reading symbols from /lib/libdl.so.2...done.
Loaded symbols for /lib/libdl.so.2
Reading symbols from /lib/libc.so.6...done.
Loaded symbols for /lib/libc.so.6
Reading symbols from /lib/ld-linux.so.2...done.
Loaded symbols for /lib/ld-linux.so.2
Reading symbols from /lib/ld-linux.so.1...done.
Loaded symbols for /lib/ld-linux.so.1
#0 0x4023a520 in _dl_signal_error (errcode=) at dl-error.c:68
in dl-error.c
(gdb) quit
Trace system calls:
# strace -f ba6.1 -v
......
mprotect(0x400ef000, 1261030, PROT_READ|PROT_WRITE|PROT_EXEC) = 0
open("/usr/lib/libc.so.6", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/lib/ld-linux.so.2", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\220\36"..., 4096) = 4096
old_mmap(NULL, 94208, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x4022d000
old_mmap(0x4022d000, 87145, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0x4022d000
old_mmap(0x40243000, 1924, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x15000) = 0x40243000
close(3) = 0
mprotect(0x4022d000, 87145, PROT_READ|PROT_WRITE|PROT_EXEC) = 0
munmap(0x40008000, 98793) = 0
mprotect(0x8048000, 562378, PROT_READ|PROT_EXEC) = 0
mprotect(0x40021000, 13096, PROT_READ|PROT_EXEC) = 0
mprotect(0x40026000, 24992, PROT_READ|PROT_EXEC) = 0
mprotect(0x4002f000, 536799, PROT_READ|PROT_EXEC) = 0
mprotect(0x400eb000, 8205, PROT_READ|PROT_EXEC) = 0
mprotect(0x400ef000, 1261030, PROT_READ|PROT_EXEC) = 0
mprotect(0x4022d000, 87145, PROT_READ|PROT_EXEC) = 0
mprotect(0x40000000, 21772, PROT_READ|PROT_EXEC) = 0
personality(PER_LINUX) = 0
geteuid() = 0
getuid() = 0
getgid() = 0
getegid() = 0
brk(0x80e7ae4) = 0x80e7ae4
brk(0x80e8000) = 0x80e8000
brk(0x80e9000) = 0x80e9000
brk(0x80ea000) = 0x80ea000
.......
On a Redhat 6.2 system with glibc2.1.3 and libc5.3.12-31, the binaries execute without any problem:
A similar (and successful) strace:
.......
open("/usr/i486-linux-libc5/lib/libc.so.5", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0(k\1\000"..., 4096) = 4096
old_mmap(NULL, 823296, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40016000
old_mmap(0x40016000, 592037, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0x40016000
old_mmap(0x400a7000, 23728, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x90000) = 0x400a7000
old_mmap(0x400ad000, 201876, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x400ad000
close(3) = 0
mprotect(0x40016000, 592037, PROT_READ|PROT_WRITE|PROT_EXEC) = 0
munmap(0x40008000, 21183) = 0
mprotect(0x8048000, 562378, PROT_READ|PROT_EXEC) = 0
mprotect(0x4000e000, 24504, PROT_READ|PROT_EXEC) = 0
mprotect(0x40016000, 592037, PROT_READ|PROT_EXEC) = 0
mprotect(0x40000000, 21772, PROT_READ|PROT_EXEC) = 0
personality(PER_LINUX) = 0
geteuid() = 0
getuid() = 0
getgid() = 0
getegid() = 0
open("bse_vars", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/bse/bse_vars", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/baan/bse/lib/bse_vars", O_RDONLY) = -1 ENOENT (No such file or directory)
sigaction(SIGSEGV, {0x80a7a70, [], SA_INTERRUPT|SA_NOMASK|SA_ONESHOT}, {SIG_DFL}, 0x4003dc68) = 0
sigaction(SIGILL, {0x80a7a70, [], SA_INTERRUPT|SA_NOMASK|SA_ONESHOT}, {SIG_DFL}, 0x4003dc68) = 0
umask(0) = 022
open("/baan/bse/log/log.ba6.1", O_RDWR|O_APPEND|O_CREAT, 0666) = 3
fcntl(3, F_SETFD, FD_CLOEXEC) = 0
fcntl(3, F_SETFD, FD_CLOEXEC) = 0
umask(022) = 0
write(2, "--------------------------------"..., 56-------------------------------------------------------
) = 56
write(2, "Porting set : 6.1c.03\n", 22Porting set : 6.1c.03
) = 22
write(2, "Port no. : TD.PROTO\n", 23Port no. : TD.PROTO
) = 23
write(2, "Date : Mon Jul 6 11:50:2"..., 47Date : Mon Jul 6 11:50:20 MET DST 1998
) = 47
write(2, "Uname : Linux cnl01513.baa"..., 82Uname : Linux cnl01513.baan.com 2.0.18 #1 Tue Sep 10 10:15:48 EDT 1996 i586
) = 82
write(2, "Machine-id : LINUX_I\n", 22Machine-id : LINUX_I
) = 22
write(2, "OS-release : 2.0\n", 18OS-release : 2.0
) = 18
.....
write(2, "LOADFLAGS : \n", 15LOADFLAGS :
) = 15
write(2, "--------------------------------"..., 56-------------------------------------------------------
) = 56
write(2, "Copyright (c) 1990-1998 Baan Dev"..., 46Copyright (c) 1990-1998 Baan Development B.V.
) = 46
_exit(0) = ?
Someone any idea what might be going wrong? Is there anything else I need to change? If so what would that be? Or is this going to be a wasted effort without recompilation of the binaries?