"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:
David Starks-Browning 2000-07-04 16:17:57 +00:00
parent 6680b6a589
commit f88cc35383
1 changed files with 72 additions and 42 deletions

View File

@ -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
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
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?
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
versions, get rid of (or rename) all the older versions, keeping only
the newest one.
your path. They often conflict in funny ways.
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,
though.
@ -399,46 +403,49 @@ This should never be necessary under Windows NT.
@subsection Why the weird directory structure?
@strong{(Please note: This section has not yet been updated for the latest
net release.)}
Why do /lib and /usr/lib (and /bin, /usr/bin) point to the same thing?
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
H-i586-cygwin32\lib\gcc-lib\...\egcs-2.91.57\include
x86-cygwin32\include
x86-cygwin32\H-i586-cygwin32\i586-cygwin32\include
@end smallexample
After a new installation in the default location, your mount points will
look something like this:
This way multiple releases for different hosts and targets can all
coexist in the same tree. H-i586-cygwin32 means hosted on
i586-cygwin32, common files shared by all hosts are in the top level
directories, target-specific files are in the
H-i586-cygwin32/i586-cygwin32
directory, etc...
@example
Device Directory Type Flags
C:\cygwin\bin /usr/bin user binmode
C:\cygwin\lib /usr/lib user binmode
C:\cygwin / user binmode
@end example
If you had a server sharing files to a ppc NT machine and an x86 NT
machine, you could have both an H-i586-cygwin32 and an
H-powerpcle-cygwin32 directory without having to duplicate the top level
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.
Note that /bin and /usr/bin point to the same location, as do /lib and
/usr/lib. This is intentional, and you should not undo these mounts
unless you @emph{really} know what you are doing.
Normally we also have another higher level directory that identifies the
release. Then multiple Cygwin releases can coexist with different
dll versions, giving:
Various applications and packages may expect to be installed in /lib or
/usr/lib (similarly /bin or /usr/bin). Rather than distinguish between
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
cygnus/b19/H-i586-cygwin32
cygnus/cygwin-b20/H-i586-cygwin32
...
@end smallexample
Symbolic links had been considered for this purpose, but were dismissed
because they do not always work on Samba drives. Also, mounts are
faster to process because no disk access is required to resolve them.
In any case, this does add complexity to the directory structure but
it's worth it for people with more complex installations.
Note that non-cygwin applications will not observe Cygwin mounts (or
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?
@ -509,7 +516,7 @@ documentation and then add these lines to your samba configuration
file:
@smallexample
mask system = yes
map system = yes
create mask = 0775
@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
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?
@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
@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?
@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?
@strong{(Please note: This section has not yet been updated for the latest
net release.)}
@strong{(Please note: This section has not yet been updated for the
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
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?
@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
different mangling scheme than GNU C++, so you will have difficulties
combining C++ objects.