[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Where should DLL files go?

The gcc-mingw32 package provides GCC configured to target Microsoft
Windows. The executables built by GCC will pick up a dependency on
libgcc_s_sjlj-1.dll; the question of where that file should be placed on
a Debian system has arisen.

Although on Debian, the same shared library files (libfoo.so) are used
by both compilers to link against, and ld-linux (what is that thing
called? The "loader"? The "linker"?) to satisfy runtime dependencies,
Windows works differently. The compiler links against 'foo.lib'; this
may either be a static library, in which case its contents are copied
into the final executable, or it may be a 'stub' for a dynamically
linked library (DLL). In the latter case, Windows will expect to find
'foo.dll' in the same directory as the executable that links against it.

See <http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=540783> for more
background information.

So, where do we put DLL files on a Debian system?

Upstream chose /usr/bin; this is where the libgcc DLL is installed by
GCC's Makefiles. It is where one would have to place a DLL file if one
were maintaining a FHS hierarchy on a Windows system, and is also where
cygwin and msys place put their DLL files in their packages.

The FHS itself doesn't say anything on the matter, it not being targeted
at Windows.

From a multiarch point of view, perhaps the DLL could go
in /usr/lib/i586-mingw32msvc?

Anyway, the final location doesn't much matter, as long as the people
who need to find the DLL can do so easily.


Sam Morris

PGP key id 1024D/5EA01078
3412 EA18 1277 354B 991B  C869 B219 7FDB 5EA0 1078

Attachment: signature.asc
Description: This is a digitally signed message part

Reply to: