"Posting Guidelines": New name for old entry.
"Multiple copies of DLL": shared region corrupt error message. "Why the weird directory structure": re-wrote for latest. "Symlinks on Samba": fix typo. "Where is glibc": new entry. "HT build relocatable dll": (interim update) link to Carl Thompson's message in cygwin list. "Can I mix msvc++ and gcc objects": remove disclaimer.
This commit is contained in:
parent
6680b6a589
commit
f88cc35383
@ -53,7 +53,7 @@ Cygwin mailing lists are not gatewayed to USENET, so anti-spam measures
|
|||||||
in your email address are neither required nor appreciated. Also, avoid
|
in your email address are neither required nor appreciated. Also, avoid
|
||||||
sending HTML content to Cygwin mailing lists.
|
sending HTML content to Cygwin mailing lists.
|
||||||
|
|
||||||
@subsection Why won't you/the mailing list answer my questions?
|
@subsection Posting Guidelines (Or: Why won't you/the mailing list answer my questions?)
|
||||||
|
|
||||||
If you follow these guidelines, you are much more likely to get a
|
If you follow these guidelines, you are much more likely to get a
|
||||||
helpful response from the Cygwin developers and/or the Cygwin community at
|
helpful response from the Cygwin developers and/or the Cygwin community at
|
||||||
@ -253,9 +253,13 @@ properly).
|
|||||||
@subsection Is it OK to have multiple copies of the DLL?
|
@subsection Is it OK to have multiple copies of the DLL?
|
||||||
|
|
||||||
It is a very bad idea to have multiple *versions* of the cygwin DLL in
|
It is a very bad idea to have multiple *versions* of the cygwin DLL in
|
||||||
your path. They often conflict in funny ways. If you have multiple
|
your path. They often conflict in funny ways.
|
||||||
versions, get rid of (or rename) all the older versions, keeping only
|
|
||||||
the newest one.
|
If you get the error "shared region is corrupted" it means you have
|
||||||
|
multiple versions of cygwin1.dll running at the same time.
|
||||||
|
|
||||||
|
If you do have multiple versions, get rid of (or rename) all the older
|
||||||
|
versions, keeping only the newest one.
|
||||||
|
|
||||||
It should be OK to have multiple copies of the *same* DLL in your path,
|
It should be OK to have multiple copies of the *same* DLL in your path,
|
||||||
though.
|
though.
|
||||||
@ -399,46 +403,49 @@ This should never be necessary under Windows NT.
|
|||||||
|
|
||||||
@subsection Why the weird directory structure?
|
@subsection Why the weird directory structure?
|
||||||
|
|
||||||
@strong{(Please note: This section has not yet been updated for the latest
|
Why do /lib and /usr/lib (and /bin, /usr/bin) point to the same thing?
|
||||||
net release.)}
|
|
||||||
|
|
||||||
Why are cpp.exe, cc1.exe, etc., not in the bin directory?
|
Why use mounts instead of symbolic links?
|
||||||
|
|
||||||
Why more than one lib and include directory?
|
Can I use a disk root (e.g., C:\) as Cygwin root? Why is this discouraged?
|
||||||
|
|
||||||
@smallexample
|
After a new installation in the default location, your mount points will
|
||||||
H-i586-cygwin32\lib\gcc-lib\...\egcs-2.91.57\include
|
look something like this:
|
||||||
x86-cygwin32\include
|
|
||||||
x86-cygwin32\H-i586-cygwin32\i586-cygwin32\include
|
|
||||||
@end smallexample
|
|
||||||
|
|
||||||
This way multiple releases for different hosts and targets can all
|
@example
|
||||||
coexist in the same tree. H-i586-cygwin32 means hosted on
|
Device Directory Type Flags
|
||||||
i586-cygwin32, common files shared by all hosts are in the top level
|
C:\cygwin\bin /usr/bin user binmode
|
||||||
directories, target-specific files are in the
|
C:\cygwin\lib /usr/lib user binmode
|
||||||
H-i586-cygwin32/i586-cygwin32
|
C:\cygwin / user binmode
|
||||||
directory, etc...
|
@end example
|
||||||
|
|
||||||
If you had a server sharing files to a ppc NT machine and an x86 NT
|
Note that /bin and /usr/bin point to the same location, as do /lib and
|
||||||
machine, you could have both an H-i586-cygwin32 and an
|
/usr/lib. This is intentional, and you should not undo these mounts
|
||||||
H-powerpcle-cygwin32 directory without having to duplicate the top level
|
unless you @emph{really} know what you are doing.
|
||||||
files that are the same for both hosts. If you built and installed an
|
|
||||||
i586-cygwin32 x mips-elf cross-compiler, you would have an
|
|
||||||
H-i586-cygwin32/mips-elf with its target-specific files and some
|
|
||||||
mips-elf- prefixed binaries in H-i586-cygwin32/bin.
|
|
||||||
|
|
||||||
Normally we also have another higher level directory that identifies the
|
Various applications and packages may expect to be installed in /lib or
|
||||||
release. Then multiple Cygwin releases can coexist with different
|
/usr/lib (similarly /bin or /usr/bin). Rather than distinguish between
|
||||||
dll versions, giving:
|
them and try to keep track of them (possibly requiring the occasional
|
||||||
|
duplication or symbolic link), it was decided to maintain only one
|
||||||
|
actual directory, with equivalent ways to access it.
|
||||||
|
|
||||||
@smallexample
|
Symbolic links had been considered for this purpose, but were dismissed
|
||||||
cygnus/b19/H-i586-cygwin32
|
because they do not always work on Samba drives. Also, mounts are
|
||||||
cygnus/cygwin-b20/H-i586-cygwin32
|
faster to process because no disk access is required to resolve them.
|
||||||
...
|
|
||||||
@end smallexample
|
|
||||||
|
|
||||||
In any case, this does add complexity to the directory structure but
|
Note that non-cygwin applications will not observe Cygwin mounts (or
|
||||||
it's worth it for people with more complex installations.
|
symlinks for that matter). For example, if you use WinZip to unpack the
|
||||||
|
tar distribution of a Cygwin package, it may not get installed to the
|
||||||
|
correct Cygwin path. @emph{So don't do this!}
|
||||||
|
|
||||||
|
It is strongly recommended not to make the Cygwin root directory the
|
||||||
|
same as your drive's root directory, unless you know what you are doing
|
||||||
|
and are prepared to deal with the consequences. It is generally easier
|
||||||
|
to maintain the Cygwin hierarchy if it is isolated from, say, C:\. For
|
||||||
|
one thing, you avoid possible collisions with other (non-cygwin)
|
||||||
|
applications that may create (for example) \bin and \lib directories.
|
||||||
|
(Maybe you have nothing like that installed now, but who knows about
|
||||||
|
things you might add in the future?)
|
||||||
|
|
||||||
@subsection How do anti-virus programs like Cygwin?
|
@subsection How do anti-virus programs like Cygwin?
|
||||||
|
|
||||||
@ -509,7 +516,7 @@ documentation and then add these lines to your samba configuration
|
|||||||
file:
|
file:
|
||||||
|
|
||||||
@smallexample
|
@smallexample
|
||||||
mask system = yes
|
map system = yes
|
||||||
create mask = 0775
|
create mask = 0775
|
||||||
@end smallexample
|
@end smallexample
|
||||||
|
|
||||||
@ -865,6 +872,12 @@ GCC_EXEC_PREFIX set -- it should be able to find cpp regardless of the
|
|||||||
install location. But if you have it set incorrectly, you may still
|
install location. But if you have it set incorrectly, you may still
|
||||||
see this message.
|
see this message.
|
||||||
|
|
||||||
|
@subsection Where is glibc?
|
||||||
|
|
||||||
|
Cygwin does not provide glibc. It uses newlib instead, which provides
|
||||||
|
much (but not all) of the same functionality. Porting glibc to Cygwin
|
||||||
|
would be difficult.
|
||||||
|
|
||||||
@subsection Why can't bison find bison.simple or bison.hairy?
|
@subsection Why can't bison find bison.simple or bison.hairy?
|
||||||
|
|
||||||
@strong{(Please note: This section has not yet been updated for the latest
|
@strong{(Please note: This section has not yet been updated for the latest
|
||||||
@ -1050,6 +1063,23 @@ make > make.log 2>&1
|
|||||||
make install > install.log 2>&1
|
make install > install.log 2>&1
|
||||||
@end example
|
@end example
|
||||||
|
|
||||||
|
This will normally attempt to build the documentation, which
|
||||||
|
additionally requires texinfo, texi2html, db2html and possibly others.
|
||||||
|
These tools are not included in the Cygwin distribution, but are readily
|
||||||
|
obtainable (or build OOTB).
|
||||||
|
|
||||||
|
To check a cygwin1.dll, run "make check" in the winsup/cygwin directory.
|
||||||
|
If that works, install everything @emph{except} the dll (if you can).
|
||||||
|
Then, close down all cygwin programs (including bash windows, inetd,
|
||||||
|
etc.), save your old dll, and copy the new dll to @emph{all} the
|
||||||
|
places where the old dll was (if there is more than one on your
|
||||||
|
machine). Then start up a bash window and see what happens. (Or better,
|
||||||
|
run a cygwin program from the Windows command prompt.)
|
||||||
|
|
||||||
|
If you get the error "shared region is corrupted" it means that two
|
||||||
|
different versions of cygwin1.dll are running on your machine at the
|
||||||
|
same time.
|
||||||
|
|
||||||
@subsection How can I compile a powerpc NT toolchain?
|
@subsection How can I compile a powerpc NT toolchain?
|
||||||
|
|
||||||
@strong{(Please note: This section has not yet been updated for the latest
|
@strong{(Please note: This section has not yet been updated for the latest
|
||||||
@ -1107,8 +1137,11 @@ question.
|
|||||||
|
|
||||||
@subsection How can I build a relocatable dll?
|
@subsection How can I build a relocatable dll?
|
||||||
|
|
||||||
@strong{(Please note: This section has not yet been updated for the latest
|
@strong{(Please note: This section has not yet been updated for the
|
||||||
net release.)}
|
latest net release. However, there was a discussion on the cygwin
|
||||||
|
mailing list recently that addresses this issue. Read
|
||||||
|
@file{http://sourceware.cygnus.com/ml/cygwin/2000-06/msg00688.html} and
|
||||||
|
related messages.)}
|
||||||
|
|
||||||
You must execute the following sequence of five commands, in this
|
You must execute the following sequence of five commands, in this
|
||||||
order:
|
order:
|
||||||
@ -1291,9 +1324,6 @@ to occur after @code{main} is called, then this will surely break.
|
|||||||
|
|
||||||
@subsection Can I mix objects compiled with msvc++ and gcc?
|
@subsection Can I mix objects compiled with msvc++ and gcc?
|
||||||
|
|
||||||
@strong{(Please note: This section has not yet been updated for the latest
|
|
||||||
net release.)}
|
|
||||||
|
|
||||||
Yes, but only if you are combining C object files. MSVC C++ uses a
|
Yes, but only if you are combining C object files. MSVC C++ uses a
|
||||||
different mangling scheme than GNU C++, so you will have difficulties
|
different mangling scheme than GNU C++, so you will have difficulties
|
||||||
combining C++ objects.
|
combining C++ objects.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user