Just as a quick continuation from Dans mail, I thought I'd find out what libs Wine actually required, at least on my build.
Running:
( for f in *.so; do ldd $f | sed 's/ =>.*//'; done ) | sort | uniq
in the $prefix/lib/wine/ directory produced the following list:
libc.so.6 libdl.so.2 libgcc_s.so.1 libGLcore.so.1 libGL.so.1 libGLU.so.1 libICE.so.6 libjpeg.so.62 /lib/ld-linux.so.2 libm.so.6 libncurses.so.5 libntdll.dll.so libSM.so.6 libstdc++.so.5 libungif.so.4 libwine.so libwine_unicode.so libX11.so.6 libXext.so.6
The inclusion of libgcc_s and libstdc++ is from the Direct3D code I think, I didn't realise there were deps on the c++ libs.
Otherwise, it's a remarkably short list. I think maybe quite a few of the libs are detected at runtime, I know there was a patch to make OpenGL code detected like this (as opposed to enabled at compile time) - despite having a driver for the Jack sound server in this directory for instance, there is no dependancy on libjack. The other libs are fairly standard and would be present on almost all installations. A few, like the C++ libs and ncurses aren't a part of the LSB and at present would need to be statically linked.
The inclusion of libgcc_s and libstdc++ is from the Direct3D code I think, I didn't realise there were deps on the c++ libs.
libstdc++ comes from libGLU (which is a C++ library). I have no idea what libgcc_s is though :-)
Otherwise, it's a remarkably short list. I think maybe quite a few of the libs are detected at runtime, I know there was a patch to make OpenGL code detected like this (as opposed to enabled at compile time) -
This OpenGL patch is integrated.. This means that the 'core' Wine DLLs do NOT link directly to GL. Only the DLLs which won't work at all without OpenGL are 'hard-linked' to GL (ie D3D, D3D8 and OpenGL32.DLL).
So basically, GL and GLU are NOT part of the depedancies of Wine, only of some parts of it :-)
Lionel
On Mon, Mar 03, 2003 at 09:25:37PM +0100, Lionel Ulmer wrote:
The inclusion of libgcc_s and libstdc++ is from the Direct3D code I think, I didn't realise there were deps on the c++ libs.
libstdc++ comes from libGLU (which is a C++ library). I have no idea what libgcc_s is though :-)
libgcc_s is helper library from GCC 3.x to allow passing exceptions between C++ libs. See Link Options: -shared-libgcc in gcc's info docs.
-- Michal Miroslaw
On Mon, Mar 03, 2003 at 05:08:58PM +0000, Mike Hearn wrote:
Just as a quick continuation from Dans mail, I thought I'd find out what libs Wine actually required, at least on my build.
Running:
( for f in *.so; do ldd $f | sed 's/ =>.*//'; done ) | sort | uniq
in the $prefix/lib/wine/ directory produced the following list:
The inclusion of libgcc_s and libstdc++ is from the Direct3D code I think, I didn't realise there were deps on the c++ libs.
Otherwise, it's a remarkably short list. I think maybe quite a few of the libs are detected at runtime, I know there was a patch to make
You missed libXrender.so, libfreetype.so, libjack.so, libcups.so, (libcrypto.so, libssl.so), which are loaded dynamically :)
libfreetype.so is also pulling the C++ libraries.
instance, there is no dependancy on libjack. The other libs are fairly standard and would be present on almost all installations. A few, like the C++ libs and ncurses aren't a part of the LSB and at present would need to be statically linked.
I think the C++ libraries are going to be in LSB.
Also we currently access glibc lowlevel code, which does not help in portability.
Ciao, Marcus
Marcus Meissner wrote:
I think the C++ libraries are going to be in LSB.
No sign of that happening in current draft.
I agree, once gcc3.3 or so is widespread, this will happen. I expect it to become part of LSB in about two years (just a personal WAG). - Dan