Bug #1471
Linux emulation: trouble with shared libraries
| Status: | Closed | Start date: | ||
|---|---|---|---|---|
| Priority: | Normal | Due date: | ||
| Assignee: | % Done: | 0% |
||
| Category: | - | |||
| Target version: | - |
Description
I have recently upgraded a machine to v2.3.2.717.gc93cf-DEVELOPMENT.
It is now impossible to run misc/openoffice3-bin.
This machine ran previously a development snapshot from just before the devfs
changeover and had no trouble with it.
Error messages :
$ soffice
sh: /dev/null: Permission denied
javaldx: Could not find a Java Runtime Environment!
/usr/pkg/openoffice.org3/program/soffice.bin: error while loading shared libraries: libXext.so.6: cannot open shared object file: No such file or directory
A complete reinstallation of the Linux Suse and OpenOffice packages did not
change the problem.
The Linux ldconfig doesn't find its libraries anymore:
# /usr/pkg/emul/linux/bin/bash
bash-3.00# ldconfig -v
ldconfig: Can't stat /usr/X11R6/lib/Xaw95: No such file or directory
ldconfig: Can't stat /usr/X11R6/lib/Xaw3d: No such file or directory
ldconfig: Can't stat /usr/i486-linux/lib: No such file or directory
ldconfig: Can't stat /usr/i486-linux-libc5/lib: No such file or directory
ldconfig: Can't stat /usr/i486-linux-libc6/lib: No such file or directory
ldconfig: Can't stat /usr/i486-linuxaout/lib: No such file or directory
ldconfig: Can't stat /usr/i386-suse-linux/lib: No such file or directory
ldconfig: Can't stat /usr/openwin/lib: No such file or directory
ldconfig: Can't stat /opt/kde/lib: No such file or directory
ldconfig: Can't stat /opt/kde2/lib: No such file or directory
ldconfig: Can't stat /opt/kde3/lib: No such file or directory
ldconfig: Can't stat /opt/gnome/lib: No such file or directory
ldconfig: Can't stat /opt/gnome2/lib: No such file or directory
/usr/X11R6/lib:
/usr/local/lib:
/lib:
/usr/lib:
It seems it is now impossible to list files from the Linux environment:
bash-3.00# cd /usr/X11R6/lib
bash-3.00# ls -la
total 0K
But find(1) still finds them !
bash-3.00# find . | grep Xext
./libXext.so.6
./libXext.so.6.4
Related todos
History
Updated by thomas.nikolajsen almost 4 years ago
I have same problem with recent DEVELOPMENT from August 27;
it works again when booting same world with DEVELOPMENT kernel from July 29
(no any pkgsrc packages changed).
Here it's www/opera which can't run anymore; can't find libX11.so.6.
Updated by alexh almost 4 years ago
Some more information is needed here. What exactly is the problem? Does readdir
() work? Does stat() work?
Updated by alexh almost 4 years ago
A test program showing the problem with linux_getdents (if it occurs with it)
would be helpful, too.
Updated by ftigeot almost 4 years ago
On Tue, Sep 01, 2009 at 04:13:50PM +0000, Alex Hornung (via DragonFly issue tracker) wrote:
>
> Alex Hornung <ahornung@gmail.com> added the comment:
>
> A test program showing the problem with linux_getdents (if it occurs with it)
> would be helpful, too.
Unfortunately, I don't know enough about userland system programming to create
one.
Howewer, I have tracked the bug to this commit:
http://gitweb.dragonflybsd.org/dragonfly.git/commit/e54488bbec5c9f80e95cedd395b0e3d31fde253d
"AMD64 - Refactor uio_resid and size_t assumptions."
The attached patch allows the Linux ls(1) is again able to list files.
It is to be applied in /usr/src/sys/emulation/linux and basically reverts
linux_file.c to the previous version, with enough changes to make it compile
in a recent trunk.
Think of it as a quick-and-dirty hack, there were many more changes in the
Linux emulation files which I haven't yet reviewed.
Updated by alexh almost 4 years ago
Commit 745218031721ef45a2714133cced693087a21376 should fix this issue.