Bug #1471

Linux emulation: trouble with shared libraries

Added by ftigeot over 4 years ago. Updated over 4 years ago.

Status:ClosedStart date:
Priority:NormalDue date:
Assignee:alexh% 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

linux_file.c.diff Magnifier (6.12 KB) ftigeot, 09/02/2009 09:22 AM

History

#1 Updated by thomas.nikolajsen over 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.

#2 Updated by alexh over 4 years ago

Some more information is needed here. What exactly is the problem? Does readdir
() work? Does stat() work?

#3 Updated by alexh over 4 years ago

A test program showing the problem with linux_getdents (if it occurs with it)
would be helpful, too.

#4 Updated by ftigeot over 4 years ago

On Tue, Sep 01, 2009 at 04:13:50PM +0000, Alex Hornung (via DragonFly issue tracker) wrote:
>
> Alex Hornung <> 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.

#5 Updated by alexh over 4 years ago

Commit 745218031721ef45a2714133cced693087a21376 should fix this issue.

Also available in: Atom PDF