marcellus
Kaiser
Solved: Uralt Software zum laufen bringen?
Ich hab hier ein Programm herumliegen, dass ich zum laufen bekommen will, aber es ist etwas sagen wir eigen.
Es ist ansich ein 32bit programm und ich hab hier ein 64bit monolib system, aber ich hab die ia32 emulaton im kernel aufgedreht. Da es nicht dynamisch gelinkt ist sollte es ja gehen
Wenn ich probiere es auszuführen bekomme ich:
Ein strace sagt:
Das check ich ja schon gar nicht, der exec aufruf meldet, dass es die datei nicht gibt.
Dann wird mit dup(2) denk ich der stdout filestream dupliziert, was das mit fstat soll weiß ich beim besten willen nicht. Zu allem überfluss wird dann noch der duplizierte stdout auf die aktuelle position gespult, was dann letztendlich nicht funktioniert.
Zu allem überfluss
laut dem ist es dynamisch gelinkt, aber laut ldd nicht? Kann das was damit zu tun haben, dass es für den Linux kernel 2.2.5 kompiliert wurde?
Ich bin unter Linux erst seit version 2.6 unterwegs, ich hab also keine Ahnung, wies vorher ausgesehen hat.
Hat vielleicht jemand Vorschläge, wie ich weiter vorgehen kann?
Ich bin mir nicht sicher, ob ich die binary hergeben darf. Ehrlichgesagt bin ich mir nicht einmal sicher, ob ich sie haben darf, die Windows user hier gehen alle recht großzügig mit softwarelizenzen um.
Ich hab hier ein Programm herumliegen, dass ich zum laufen bekommen will, aber es ist etwas sagen wir eigen.
Es ist ansich ein 32bit programm und ich hab hier ein 64bit monolib system, aber ich hab die ia32 emulaton im kernel aufgedreht. Da es nicht dynamisch gelinkt ist sollte es ja gehen
Code:
$ ldd install
not a dynamic executable
Wenn ich probiere es auszuführen bekomme ich:
Code:
$ ./install
bash: ./install: No such file or directory
Ein strace sagt:
Code:
$ strace ./install
execve("./install", ["./install"], [/* 44 vars */]) = -1 ENOENT (No such file or directory)
dup(2) = 3
fcntl(3, F_GETFL) = 0x8002 (flags O_RDWR|O_LARGEFILE)
fstat(3, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 0), ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f224fd5a000
lseek(3, 0, SEEK_CUR) = -1 ESPIPE (Illegal seek)
write(3, "strace: exec: No such file or di"..., 40strace: exec: No such file or directory
) = 40
close(3) = 0
munmap(0x7f224fd5a000, 4096) = 0
exit_group(1) = ?
Das check ich ja schon gar nicht, der exec aufruf meldet, dass es die datei nicht gibt.
Dann wird mit dup(2) denk ich der stdout filestream dupliziert, was das mit fstat soll weiß ich beim besten willen nicht. Zu allem überfluss wird dann noch der duplizierte stdout auf die aktuelle position gespult, was dann letztendlich nicht funktioniert.
Zu allem überfluss
Code:
$ file install
install: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.2.5, not stripped
laut dem ist es dynamisch gelinkt, aber laut ldd nicht? Kann das was damit zu tun haben, dass es für den Linux kernel 2.2.5 kompiliert wurde?
Ich bin unter Linux erst seit version 2.6 unterwegs, ich hab also keine Ahnung, wies vorher ausgesehen hat.
Hat vielleicht jemand Vorschläge, wie ich weiter vorgehen kann?
Ich bin mir nicht sicher, ob ich die binary hergeben darf. Ehrlichgesagt bin ich mir nicht einmal sicher, ob ich sie haben darf, die Windows user hier gehen alle recht großzügig mit softwarelizenzen um.
Zuletzt bearbeitet: