Mailinglist Archive: opensuse-factory (1324 mails)

< Previous Next >
Re: [opensuse-factory] 32bit apps on OS 13.2 64bit responses with Bad system call
Am Fri, 02 Oct 2015 16:02:57 +0200
schrieb Michal Kubecek <mkubecek@xxxxxxx>:

On Friday 02 of October 2015 15:42:02 Peter Ragosch wrote:
There are no missing 32bit package reported by zypper/rpm. But I'm
unsure if this is really true. Since the crash some packages were
reported as not installed by zypper, whilst the binaries were in
path. I've updated such package asap I found them. May be there are
more.

The *-32bit packages (their files installed in the system) might be
corrupted since the crash. That's why I suggested to run "rpm
--verify" on them.

Michal
Kubeček


@ Michal
--------
OK, at least I did
raven:~ # zypper se 32bit | grep "i |" >> 32bit.txt
raven:~ # awk -F "|" '{print $2}' 32bit.txt >> 32bit_names.txt
raven:~ # while read i; do rpm --verify $i; done < 32bit_names.txt
.....L.... /usr/lib/libgmp.so.10
raven:~ #

raven:~ # rpm -v --verify libgmp10-32bit
.....L.... /usr/lib/libgmp.so.10
.......... /usr/lib/libgmp.so.10.1.3
raven:~ # ls -al /usr/lib/libgmp.so.10
lrwxrwxrwx 1 root root 16 Sep 27 10:09 /usr/lib/libgmp.so.10 ->
libgmp.so.10.2.0
raven:~ #

because
raven:~ # rpm -q -f /usr/lib/libgmp.so.10.2.0
file /usr/lib/libgmp.so.10.2.0 is not owned by any package

I don't know where it comes from, so I linked it back to version 10.1.3

raven:~ # rm /usr/lib/libgmp.so.10
raven:~ # ln -s /usr/lib/libgmp.so.10.1.3 /usr/lib/libgmp.so.10
raven:~ #

libgmp was not the reason for the problem.


@Andrei
-------
Well, i did a strace -f on acroread and tried a compare of the output
with one on a 13.1 machine. Interpreting the output is far beyond my
skills.

The strace -f wine output is much easier to understand, I think:
On my 13.2 machine:
raven:~ # strace -f wine
execve("/usr/bin/wine", ["wine"], [/* 78 vars */]) = 0
+++ killed by SIGSYS +++
Bad system call

On the 13.2 machine: (only the first 5 lines)
raven2:~ # strace -f wine
execve("/usr/bin/wine", ["wine"], [/* 64 vars */]) = 0
[ Process PID=4401 runs in 32 bit mode. ]
brk(0) = 0x7c287000
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1,
0) = 0xfffffffff779b000
readlink("/proc/self/exe", "/usr/bin/wine", 4096) = 13

Just after execve the first one is killed, but the second one is
recognized as 32-bit binary.

I guess the question of interest should be: Which "part" is responsible
for the detection of a starting 32bit binary on a 64bit installation?
Which "part" is switching the arch for the binary?

Am I right?

--
Mit freundlichen Grüßen
Kind Regards

Peter Ragosch

--
To unsubscribe, e-mail: opensuse-factory+unsubscribe@xxxxxxxxxxxx
To contact the owner, e-mail: opensuse-factory+owner@xxxxxxxxxxxx

< Previous Next >