Commit Graph

10778 Commits

Author SHA1 Message Date
Corinna Vinschen fc22f77503 Document previous change
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2015-07-01 15:50:18 +02:00
Corinna Vinschen e3d345c5c3 Fix fork after recovered stack overflow
* fork.cc (frok::parent): Set stacktop value based on requested stack
	pointer value in child.  Explain why.

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2015-07-01 15:28:16 +02:00
Corinna Vinschen 0f3e631571 Add comment to sigaltstack to explain setting ss_flags here
* signal.cc (sigaltstack): Add comment.

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2015-06-30 20:43:50 +02:00
Corinna Vinschen c2c1b84309 Handle ss_flags value longjmp safe.
* exceptions.cc (_cygtls::call_signal_handler): Drop manipulating
	thread's ss_flags here.  It's not safe against longjmp.
	* signal.cc (sigaltstack): Check if we're running on the alternate
	stack and set ss_flags returned in oss to SS_ONSTACK.

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2015-06-27 12:08:07 +02:00
Corinna Vinschen ba170254e6 Define larger MINSIGSTKSZ and SIGSTKSZ values for Cygwin
* include/cygwin/signal.h: Revert to define MINSIGSTKSZ and SIGSTKSZ
	here with bigger values to allow _cygtls to reside on signal stack,
	should it turn out to be required at one point.

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2015-06-26 21:41:26 +02:00
Corinna Vinschen 2ecaa3c176 Fix values returned by getrlimit(RLIMIT_STACK)
* resource.cc (getrlimit): Fix values returned by RLIMIT_STACK.
	Explain why this had to be changed.

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2015-06-26 20:41:54 +02:00
Jon TURNEY 06105fa9de winsup/doc: Update ancient README about building documentation
Update list of pre-requisites, everything else is obsolete.

Future work: Ensure that the list of pre-requisites in FAQ 6.21 "How do I build
Cygwin" remains synchronized with this list.

2015-06-22  Jon Turney  <jon.turney@dronecode.org.uk>

	* README: Update.

Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk>
2015-06-23 12:07:47 +01:00
Jon TURNEY 7e87f1ea1e winsup/doc: Use xidepend to generate the source list for FAQ targets as well
2015-06-22  Jon Turney  <jon.turney@dronecode.org.uk>

	* Makefile.in (FAQ_SOURCES): Remove and generate with xidepend.

Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk>
2015-06-23 12:07:41 +01:00
Jon TURNEY 8d720d6ac7 winsup/doc: Remove 'Usage' prefix from synopses
Remove redundant 'Usage' prefix from synopses.

2015-06-22  Jon Turney  <jon.turney@dronecode.org.uk>

	* utils.xml: Remove 'Usage' prefix from synopses.

Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk>
2015-06-23 12:07:36 +01:00
Jon TURNEY b769b6cc73 winsup/doc: Add intro man pages from cygwin-doc
v2:
intro.1 and cygwin.1 are identical. Make cygwin.1 a link to intro.1
Update dates in static man pages

v3:
Use doclifter to convert intro.[13] to DocBook XML
Clean up markup and fix a couple of spelling mistakes.
Build and install manpages from XML

v4:
Update to refer to GPLv3+, SUSv4
Simplify ulinks where anchor text is the same as the URL

2015-06-22  Jon Turney  <jon.turney@dronecode.org.uk>

	* Makefile.in (intro2man.stamp): Add.
	* intro.xml: New file.

Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk>
2015-06-23 12:05:40 +01:00
Jon TURNEY 5ea698c437 winsup/doc: Create info pages from cygwin documentation
v2:
Updated to use docbook2x-texi not docbook2texi, since source is now docbook XML.
Tweak DocBook XML so info directory entry has a description.

v3:
Use a custom charmap to handle &reg;

v4:
Proper build avoidance
texinfo node references may not contain ':', so provide alternate text for a few
xref targets

2015-06-22  Jon Turney  <jon.turney@dronecode.org.uk>

	* Makefile.in (install-info, cygwin-ug-net.info)
	(cygwin-api.info): Add.
	* cygwin-ug-net.xml: Add texinfo-node.
	* cygwin-api.xml: Ditto.
	* ntsec.xml (db_home): Add texinfo-node for titles containing a
	':' which are the targets of an xref.

Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk>
2015-06-23 12:05:29 +01:00
Ken Brown d04fd9d5f7 Complement SIGEV_* enums with macros
* include/cygwin/signal.h (SIGEV_*): Add macros.

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2015-06-23 10:39:06 +02:00
Corinna Vinschen f4abb28ea8 Don't push on original stack during alternate signal stack setup
* exceptions.cc (_cygtls::call_signal_handler): Drop pushing a register
	on the original stack, it confuses GCC.  Rearrange the assembler code
	so that $rax/$eax is not used by GCC to prepare an argument value.
	Use $rax/$eax without saving.  Drop clearing $rbp/$epb.

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2015-06-22 13:09:55 +02:00
Corinna Vinschen b6c18f2a64 Safe all clobbered volatile registers when using alternate stack
* exceptions.cc (_cygtls::call_signal_handler): Drop subtracting 16
	bytes from the alternate stack, it's not necessary.  Safe all clobbered
	registers.  Safe one on the orignal stack, the others on the alternate
	stack on both platforms.

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2015-06-21 13:58:57 +02:00
Corinna Vinschen 44745e3165 Fix comments
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2015-06-20 20:56:55 +02:00
Corinna Vinschen a88afecce6 ChangeLog entries for Cygwin's alternate signal stack implementation
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2015-06-20 20:36:16 +02:00
Corinna Vinschen b782f869bf Add alternate signal stack to docs
* new-features.xml (ov-new2.1): Add alterante signal stack info.
	* posix.xml (std-susv4): Move sigaltstack here.

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2015-06-20 20:30:17 +02:00
Corinna Vinschen 0cbf19283b Implement using alternate signal stack in Cygwin
* exceptions.cc (_cygtls::call_signal_handler): Implement alternate
	signal stack handling.

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2015-06-20 20:21:02 +02:00
Corinna Vinschen 6442e914d9 Use MINSIGSTKSZ and SIGSTKSZ from newlib for Cygwin as well
* libc/include/sys/signal.h: Move altstack macros completely
	outside of rtems block.

	* include/cygwin/signal.h: Remove definitions of MINSIGSTKSZ
	and SIGSTKSZ here.

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2015-06-20 19:05:51 +02:00
Corinna Vinschen 74d272cc02 Handle exceptions in sigaltstack
* signal.cc (sigaltstack): Add fault handler.

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2015-06-20 18:48:09 +02:00
Corinna Vinschen 22465796ed Preliminary infrastructure to implement alternate stack
* libc/include/sys/signal.h: Define SS_ONSTACK and SS_DISABLE
	unconditionally.
	(sigaltstack): Enable prototype on Cygwin.

	* common.din (sigaltstack): Export.
	* cygtls.cc (_cygtls::init_thread): Initialize altstack.
	* cygtls.h (__tlsstack_t): Rename from __stack_t to distinguish
	more clearly from stack_t.  Accommodate throughout.
	(_cygtls): Add altstack member.
	* exceptions.cc (exception::handle): Set SIGSEGV handler to SIG_DFL
	if we encounter a stack overflow, and no alternate stack has been
	defined.
	* include/cygwin/signal.h (MINSIGSTKSZ): Define
	(SIGSTKSZ): Define.
	(SA_ONSTACK): Define.
	* signal.cc (sigaltstack): New function.
	* tlsoffset.h: Regenerate.
	* tlsoffset64.h: Ditto.

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2015-06-19 16:12:45 +02:00
Corinna Vinschen 715ac1e872 Formatting fixes in exceptions.cc
* Makefile.in (install-man): Exclude release subdir from search paths.

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2015-06-19 16:12:10 +02:00
Jon TURNEY b992833969 winsup/doc: Fix command to create man3 install directory
Fix a cut and paste error in the command to create the man3 install directory,
added in 94f16969

2015-06-19  Jon Turney  <jon.turney@dronecode.org.uk>

	* Makefile.in (install-man): Fix command to create man3 install
	directory.

Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk>
2015-06-19 15:02:48 +01:00
Corinna Vinschen 0d3304af38 Disallow installing "man pages" from release subdir
* Makefile.in (install-man): Exclude release subdir from search paths.

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2015-06-18 22:04:58 +02:00
Jon TURNEY e9549aef38 winsup/doc: Add man.xsl customization stylesheet
2015-06-17  Jon Turney  <jon.turney@dronecode.org.uk>

	* man.xsl: New file.
	* Makefile.in (utils2man.stamp, api2man.stamp): Use it.

Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk>
2015-06-18 11:32:08 +01:00
Jon TURNEY 94f16969d3 winsup/doc: Make and install cygwin-api function manpages
Use 'xmlto man' to make manpages for utils

This will generate multiple .1 files as an output, but we don't know what they
will be called, so use a timestamp for build avoidance

2015-06-17  Jon Turney  <jon.turney@dronecode.org.uk>

	* Makefile.in (api2man.stamp): Add rules to build and install
	manpages for cygwin-api.

Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk>
2015-06-18 11:32:05 +01:00
Jon TURNEY cf1c6cd395 winsup/doc: Convert cygwin-api function documentation to refentry elements
Convert cygwin-api from using a sect2 element to using a refentry element for
each function.  This makes it possible to generate manpage-style output for
those elements.

Note that the chunked html now generates a page for each function, rather than
one containing all functions.

Also:

Remove pointless and incorrect date

Move introductory paragraph from the first section to the start of the chapter

Add a funcsynopsisinfo element with the header file to be included to each
function prototype

Remove extern "C" which doesn't process into all formats successfully

2015-06-17  Jon Turney  <jon.turney@dronecode.org.uk>

	* cygwin-api.xml: Move introductory paragraph here.
	* logon-funcs.xml: Convert from using a sect2 element to using a
	refentry element for each function.
	* misc-funcs.xml: Ditto.
	* path.xml: Ditto.

Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk>
2015-06-18 11:32:03 +01:00
Jon TURNEY a197d1d504 winsup/doc: Generate ANSI rather than K&R style function prototypes
Since K&R style prototypes appear to be the default for HTML and FO, customize
the stylesheets rendering of funcsynopsis elements to generate ANSI style
prototypes instead.

2015-06-17  Jon Turney  <jon.turney@dronecode.org.uk>

	* fo.xsl: Render funcsynopsis elements as ANSI style function
	prototypes.
	* html.xsl: Ditto.

Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk>
2015-06-18 11:32:00 +01:00
Jon TURNEY 73afd1315c winsup/doc: Rename cygwin.xsl as html.xsl
For clarity, rename cygwin.xsl as html.xsl, because that's what it is

2015-06-17  Jon Turney  <jon.turney@dronecode.org.uk>

	* html.xsl: Renamed from cygwin.xsl.

Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk>
2015-06-18 11:31:57 +01:00
Corinna Vinschen e4bdbca6eb Add sethostname to API list
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2015-06-17 11:22:14 +02:00
Corinna Vinschen 50b00d2b93 Add sethostname
* net.cc (sethostname): New function.
	* common.din (sethostname): Export
	* include/cygwin/version.h (CYGWIN_VERSION_DLL_MAJOR): Bump to 2001.
	(CYGWIN_VERSION_DLL_MINOR): Set to 0.

	* new-features.xml (ov-new): Rename from ov-new1.7.
	(ov-new2.1): Add new section.  Document sethostname.

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2015-06-17 11:11:02 +02:00
Corinna Vinschen c7af199237 Add release/2.0.5 file 2015-06-17 10:37:10 +02:00
Jon TURNEY d396a37c84 winsup/doc: Make and install manpages for utils
Use 'xmlto man' to make manpages for utils
(docbook2x-man could also be used, but since we already use xmlto...)

This will generate multiple .1 files as an output, but we don't know what they
will be called, so use a timestamp file for build avoidance when the
dependencies haven't changed.

2015-06-12  Jon Turney  <jon.turney@dronecode.org.uk>

	* Makefile.in (install-man, utils2man.stamp): Add rules to build
	and install manpages for utils.

Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk>
2015-06-16 18:29:22 +01:00
Jon TURNEY 646745cbf3 winsup/doc: Convert utils.xml to using refentry elements
Convert utils.xml from using a sect2 element to using a refentry element for
each utility program.  This makes it possible to generate manpage-style output
for those elements.

Note that the chunked html now generates a page for each utility, rather than
one containing all utilities.

A small customization to TOC generation for HTML and PDF is needed to ensure
that it appears as before, containing an entry for each utility command.

Future work: synopsis and options sections could use more detailed markup than
just wrapping the whole thing in <screen>

2015-06-12  Jon Turney  <jon.turney@dronecode.org.uk>

	* utils.xml : Convert from using a sect2 element to using a
	refentry element for each utility program.
	* cygwin.xsl: Customize autotoc to include refentries.
	* fo.xsl: Ditto.

Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk>
2015-06-16 18:28:40 +01:00
Jon TURNEY 07605dccd2 winsup/doc: Fix an issue with parallel make
The cygwin-ug-net-nochunks.html.gz target does not ensure that the
cygwin-ug-net/ directory exists, so it can fail if run on it's own, or if the
cygwin-ug-net/cygwin-ug-net.html target has not yet created it in a parallel
make.

2015-06-12  Jon Turney  <jon.turney@dronecode.org.uk>

	* Makefile.in (cygwin-ug-net/cygwin-ug-net-nochunks.html.gz):
	Ensure cygwin-ug-net directory exists.

Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk>
2015-06-16 10:29:28 +01:00
Jon TURNEY 38529ea03a winsup/doc: Make it easier to extend xidepend to more targets
Change xidepend to create a variable containing all the XIncluded sources, which
can be used as a dependency, rather than writing the dependency target itself.

Future work: Makefile.dep should depend on xidepend, but xidepend should not be
passed to itself.

2015-06-12  Jon Turney  <jon.turney@dronecode.org.uk>

	* xidepend: Write a Makefile fragment defining variables
	containing all the XIncluded sources, rather than a dependency on
	those sources.
	* Makefile.in: Use that variable to express the dependency.

Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk>
2015-06-16 10:28:49 +01:00
Jon TURNEY c46fe19460 winsup/doc: Use fo.xsl to customize PDF generation from DocBook XML
fo.xsl doesn't seem to be used since c2f50c40 switched back from xsltproc to
xmlto

2015-06-12  Jon Turney  <jon.turney@dronecode.org.uk>

	* Makefile.in (cygwin-ug-net/cygwin-ug-net.pdf)
	(cygwin-api/cygwin-api.pdf): Use fo.xsl to customized DocBook
	XML->PDF conversion.

Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk>
2015-06-16 10:23:06 +01:00
Jon TURNEY 7177456cf0 winsup/doc: Some preparatory XML fixes
Remove the inconsistent .exe suffix in strace and umount usage lines.

Tidy up some trailing whitespace.

Tabs inside <screen> are not consistently formatted by all formatters, replace
with spaces.

Remove pointlesss and incorrect date

2015-06-12  Jon Turney  <jon.turney@dronecode.org.uk>

	* cygwin-ug-net.xml: Remove incorrect unused date.
	* utils.xml : Remove .exe suffix inconsistently added in a few
	places.  Tidy up some trailing whitespace.

Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk>
2015-06-16 10:20:06 +01:00
Jon TURNEY 2ef3009068 winsup/doc: Fix xidepend to handle relative pathnames
It seems that xidepend doesn't work correctly if we are ./configure'd using a
relative pathname to the srcdir:

$ make
cd ../../../../src/winsup/doc && ./xidepend ../../../../src/winsup/doc/cygwin-ug-net.xml ../../../../src/winsup/doc/cygwin-api.xml >"/wip/cygwin/build/x86_64-unknown-cygwin/winsup/doc/Makefile.dep"
grep: ../../../../src/winsup/doc/cygwin-ug-net.xml: No such file or directory
grep: ../../../../src/winsup/doc/cygwin-api.xml: No such file or directory

Although it might be better to fix this by making xidepend use pathnames, rather
than ignoring them and assuming everything is in the current directory...

2015-06-12  Jon Turney  <jon.turney@dronecode.org.uk>

	* xidepend: Fix to handle relative pathnames.

Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk>
2015-06-16 10:13:29 +01:00
Jon TURNEY efc0b0094b winsup/doc: Remove tarball target from .PHONY
Left over after 4885352e.

2015-06-12  Jon Turney  <jon.turney@dronecode.org.uk>

	* Makefile.in (.PHONY): Remove tarball target.
2015-06-16 10:13:26 +01:00
Corinna Vinschen 79d65a1ed2 Try to handle concurrent close on socket more gracefully
* fhandler_socket.cc (LOCK_EVENTS): Don't enter critical section with
	invalid mutex handle since then socket has been closed.
	(UNLOCK_EVENTS): Close critical section.
	(fhandler_socket::evaluate_events): Handle calling connect on shutdown
	socket.
	(fhandler_socket::wait_for_events): Try for pthread_testcancel in case
	of WAIT_FAILED.  Try to come up with a better errno in case we waited
	on an invalid handle.
	(fhandler_socket::release_events): Change wsock_mtx and wsock_evt to
	NULL under lock to avoid accessing invalid handle.

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2015-06-15 18:29:56 +02:00
Corinna Vinschen 6f9e2f3ed5 Handle more Winsock error codes.
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2015-06-15 16:17:16 +02:00
Corinna Vinschen 95c5a3f6b7 Don't enforce SA_RESTART in non-main threads
* exceptions.cc (_cygtls::call_signal_handler): Disable enforcing
	SA_RESTART in non-main threads to allow returning with EINTR from
	system calls.

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2015-06-15 16:15:54 +02:00
Corinna Vinschen b81a830f1a Fix ChangeLog entry 2015-06-11 15:39:34 +02:00
Jon TURNEY 5c4129d937 Improve strace to log most Windows debug events
Not sure if this is wanted, but on a couple of occasions recently I have been
presented with strace output which contains an exception at an address in an
unknown module (i.e. not in the cygwin DLL or the main executable), so here is a
patch which adds some more information, including DLL load addresses, to help
interpret such straces.

v2:
Use NtQueryObject() for HANDLE -> filename conversion
Add new '-e' option to toggle this additional logging

2015-06-07  Jon Turney  <jon.turney@dronecode.org.uk>

	* strace.cc (proc_child): Log process and thread create and exit,
	and DLL load and unload.
	(GetFileNameFromHandle): New function.

Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk>
2015-06-11 12:00:51 +01:00
Corinna Vinschen 5979b17401 Bump minor DLL version to 5
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2015-06-11 12:59:12 +02:00
Corinna Vinschen 7701a023ff Drop Windows 2000 considerations in ps, fix uid field length
* ps.cc (main): Widen UID field in long format to accommodate longer
	UIDs since Cygwin 1.7.34.  Remove Windows 2000 considerations.  Fix
	comments accordingly.

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2015-06-10 11:07:27 +02:00
Corinna Vinschen 6261fb30a9 Avoid compiler warning in latest patch
* pinfo.cc (_pinfo::cwd): Initialize s to avoid comiler warning.
	(_pinfo::cmdline): Ditto.

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2015-06-08 21:55:11 +02:00
Corinna Vinschen 575ec00a43 Evaluate /proc/$PID/{root,cwd,cmdline} for native processes
* pinfo.cc (_pinfo::root): Fake default root for native processes.
	(open_commune_proc_parms): New helper function to access process
	parameter block.
	(_pinfo::cwd): Fetch missing cwd for native processes from processes
	parameter block.
	(_pinfo::cmdline): Ditto for command line.

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2015-06-08 21:48:13 +02:00
Corinna Vinschen 79511853f7 add bind mount fix to release notes
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2015-06-08 17:48:34 +02:00