Commit Graph

56 Commits

Author SHA1 Message Date
Corinna Vinschen 38fd7ddb79 Allow sysconf to return CPU cache information
* include/sys/unistd.h (_SC_LEVEL*): Add cache-related variables as
        on Linux.

        * fhandler_proc.cc (format_proc_cpuinfo): Fetch cache information
        from new cache functions in sysconf.cc, get_cpu_cache_intel and
        get_cpu_cache_amd.
        * sysconf.cc (__nt_query_system): New local helper.
        (get_nproc_values): Utilize __nt_query_system on pre-Windows 7 systems.
        Use GetLogicalProcessorInformationEx otherwise to handle more than
        64 CPUs.  Only handle _SC_NPROCESSORS_CONF and _SC_NPROCESSORS_ONLN.
        (get_phys_pages): New helper to handle _SC_PHYS_PAGES.
        (cpuid2_cache_descriptor): New array to map Intel CPUID 2 descriptor
        values to cache type, cache size, associativity and linesize.
        (cpuid2_cache_desc_compar): Comparision function for bsearch over
        cpuid2_cache_descriptor.
        (get_cpu_cache_intel_cpuid2): New function to fetch cache info from
        Intel CPUID 2.
        (get_cpu_cache_intel_cpuid4): Ditto from Intel CPUID 4.
        (get_cpu_cache_intel): New function as CPU-specific entry point.
        (assoc): New array to map associativity values from AMD CPUID
        0x80000006.
        (get_cpu_cache_amd): New function to fetch cache info from AMD CPUIDs
        0x80000005 and 0x80000006.
        (get_cpu_cache): New function to fetch cache info.
        (sca): Call get_phys_pages if _SC_PHYS_PAGES is requested.  Call
        get_cpu_cache for new _SC_* cache requests.
        (SC_MAX): Set to _SC_LEVEL4_CACHE_LINESIZE.
        (get_phys_pages(void)): Call get_phys_pages(int).
        * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump.

        * new-features.xml (ov-new2.3): Document sysconf cache addition.

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2015-08-29 09:16:47 +02:00
Corinna Vinschen 35d5d87540 Implement POSIX_MADV_WILLNEED/POSIX_MADV_DONTNEED for newer OSes
* autoload.cc (DiscardVirtualMemory): Import.
        (PrefetchVirtualMemory): Import.
        * mmap.cc (posix_madvise): Actually implement POSIX_MADV_WILLNEED
        utilizing PrefetchVirtualMemory and POSIX_MADV_DONTNEED utilizing
        DiscardVirtualMemory on systems supporting them.
        * wincap.h (wincaps::has_broken_prefetchvm): New element.
        * wincap.cc: Implement above element throughout.
        (wincapc::init): Make sure has_broken_prefetchvm is only true on
        W10 under WOW64.
        * include/cygwin/version.h (CYGWIN_VERSION_DLL_MAJOR): Bump to 2003.
        (CYGWIN_VERSION_API_MINOR): Reset to 0.

        * new-features.xml (ov-new2.3): New section, document posix_madvise
        POSIX_MADV_WILLNEED/POSIX_MADV_DONTNEED change.

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2015-08-27 13:34:25 +02:00
Corinna Vinschen 7c96ab0b43 Cygwin: Implement siglongjmp and sigsetjmp functions.
* libc/include/machine/setjmp.h (siglongjmp): Declare as function on
	Cygwin.
	(sigsetjmp): Ditto.
	(_longjmp): Mark as noreturn function on Cygwin.

	* common.din (siglongjmp): Export.
	(sigsetjmp): Export.
	* gendef: Change formatting of some comments.
	(sigsetjmp): Implement.
	(siglongjmp): Implement.
	(__setjmpex): x86_64 only: Drop entry point.
	(setjmp): x86_64 only: Store tls stackptr in Frame now, store MXCSR
	and FPUCW registers in Spare, as MSVCRT does.
	(longjmp): x86_64 only: Restore tls stackptr from Frame now, restore
	MXCSR and FPUCW registers from Spare.
	* include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump.

	* new-features.xml (ov-new2.2): Document sigsetjmp, siglongjmp.

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2015-07-21 17:31:02 +02:00
Corinna Vinschen 1020bb292a Implement getcontext, setcontext, makecontext, swapcontext
* common.din (getcontext): Export.
        (makecontext): Export.
        (setcontext): Export.
        (swapcontext): Export.
        * exceptions.cc (__unwind_single_frame): New static functions, 64 bit
        only.
        (setcontext): New function.
        (getcontext): New function.
        (swapcontext): New function.
        (__cont_link_context): New function.
        (makecontext): New function.
        * include/cygwin/version.h (CYGWIN_VERSION_DLL_MAJOR): Bump to 2002.
        (CYGWIN_VERSION_API_MINOR): Bump.
        * include/ucontext.h (getcontext): Add prototype.
        (setcontext): Ditto.
        (swapcontext): Ditto.
        (makecontext): Ditto.
        * ntdll.h (NtContinue): Ditto.

        * new-features.xml (ov-new2.2): Add new section.  Document getcontext,
        setcontext, makecontext, swapcontext.
        * posix.xml (std-deprec): Add getcontext, setcontext, makecontext,
        swapcontext.

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2015-07-17 14:31:12 +02:00
Corinna Vinschen a54bc198b1 Implement correct RLIMIT_STACK handling
* miscfuncs.cc (struct pthread_wrapper_arg): Add member guardsize.
        (pthread_wrapper): Set thread stack guarantee according to guardsize.
        Tweak assembler code so that $rax/$eax is not required by GCC to
        prepare the wrapper_arg value.
        (CygwinCreateThread): Fix deadzone handling.  Drop setting a "POSIX"
        guardpage (aka page w/ PAGE_NOACCESS).  Always use Windows guard
        pages instead.  On post-XP systems (providing SetThreadStackGuarantee)
        always set up stack Windows like with reserved/commited areas and
        movable guard pages.  Only on XP set up stack fully commited if the
        guardpage size is not the default system guardpage size.
        Fill out pthread_wrapper_arg::guardsize.  Improve comments.
        * resource.cc: Implement RSTACK_LIMIT Linux-like.
        (DEFAULT_STACKSIZE): New macro.
        (DEFAULT_STACKGUARD): Ditto.
        (rlimit_stack_guard): New muto.
        (rlimit_stack): New global variable holding current RSTACK_LIMIT values.
        (__set_rlimit_stack): Set rlimit_stack under lock.
        (__get_rlimit_stack): Initialize rlimit_stack from executable header
        and return rlimit_stack values under lock.
        (get_rlimit_stack): Filtering function to return useful default
        stacksize from rlimit_stack.rlim_cur value.
        (getrlimit): Call __get_rlimit_stack in RLIMIT_STACK case.
        (setrlimit): Call __set_rlimit_stack in RLIMIT_STACK case.
        * thread.cc (pthread::create): Fetch default stacksize calling
        get_rlimit_stack.
        (pthread_attr::pthread_attr): Fetch default guardsize calling
        wincap.def_guard_page_size.
        (pthread_attr_getstacksize): Fetch default stacksize calling
        get_rlimit_stack.
        * thread.h (PTHREAD_DEFAULT_STACKSIZE): Remove.
        (PTHREAD_DEFAULT_GUARDSIZE): Remove.
        (get_rlimit_stack): Declare.

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2015-07-05 15:51:37 +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 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 5778304f16 Bump Cygwin version to 2.0.0.
* include/cygwin/version.h (CYGWIN_VERSION_DLL_MAJOR): Bump to 2000.
	(CYGWIN_VERSION_DLL_MINOR): Set to 0.

	* new-features.xml (ov-new2.0): Rename from ov-new1.7.36 and change
	version number to 2.0.

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2015-04-23 21:58:33 +02:00
Corinna Vinschen 2e3968cefa Document GNU basename.
* new-features.xml (ov-new1.7.36): Add new section.  Document GNU
	basename.

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2015-04-23 21:57:09 +02:00
Corinna Vinschen 694626a5f5 * new-features.xml (ov-new1.7.35): Add SIGSYS change. 2015-03-03 17:10:54 +00:00
Corinna Vinschen 73c0c53cf4 * new-features.xml (ov-new1.7.35): Add new section. 2015-03-03 13:02:21 +00:00
Corinna Vinschen e744f119e8 * new-features.xml (ov-new1.7.34): Add wcstold. 2015-02-04 11:04:12 +00:00
Corinna Vinschen 7656f3f4d7 * utils.xml (regtool): Clarify save action. Add description for
restore action.
	* new-features.xml (ov-new1.7.34): Add regtool restore.
2015-02-03 15:23:37 +00:00
Corinna Vinschen db9a8c9983 * Throughout, replace http with https as far as cygwin.com and
sourceware.org URLs are concerned.
	* Throughout, simplify ulink expressions if the visible text is the
	URL anyway.
	* faq-programming.xml (faq.programming.dll-relocatable): Remove.
	* faq-setup.xml (faq.setup.name-with-space): Change for 1.7.34.
	(faq.setup.home): Ditto.
	* faq-using.xml (faq.using.printing): Clarify old links and availability
	of a2ps and file.
	(faq.using.xemacs): Drop outdated version info and pointers to native
	XEmacs.
	(faq.using.ntemacs): Remove.
	* faq-what.xml (faq.what.what): Rephrase to reflect reality.
	(faq.what.supported): Ditto.
	(faq.what.who): Rephrase slightly.
	* legal.xml: Bump copyright.
	* setup-net.xml (internet-setup): Fix references to setup executables.
2015-02-03 13:48:43 +00:00
Corinna Vinschen 8915ff7f28 Fix typo 2015-01-27 14:59:58 +00:00
Corinna Vinschen 71906368e5 * new-features.xml (ov-new1.7.34): Add extension of gethostbyname2.
Add sockatmark.
2015-01-23 14:59:44 +00:00
Yaakov Selkowitz b2149cb666 * new-features.xml (ov-new1.7.34): Document Solaris stdio_ext.h
functions and BSD/GNU unlocked stdio extensions.
* posix.xml (std-bsd): Add BSD unlocked stdio extensions.
(std-gnu): Add GNU unlocked stdio extensions.
(std-solaris): Add stdio_ext.h functions.
2014-12-18 16:55:27 +00:00
Corinna Vinschen b3d0030d3c * new-features.xml (ov-new1.7.34): Add setfacl -k option.
* utils.xml (setfacl): Ditto.
2014-12-15 20:30:15 +00:00
Yaakov Selkowitz 5acd9c007f * new-features.xml (ov-new1.7.34): Document qsort_r and __bsd_qsort_r.
* posix.xml (std-bsd): Add qsort_r.
(std-gnu): Ditto.
(std-notes): Add section for qsort_r.
2014-12-05 16:33:02 +00:00
Corinna Vinschen c9cfd71d8c * new-features.xml (ov-new1.7.34): Add latest changes. 2014-12-03 16:35:02 +00:00
Corinna Vinschen d544f256d1 * include/cygwin/version.h (CYGWIN_VERSION_DLL_MINOR): Bump to 34.
* new-features.xml (ov-new1.7.34): Add new section.
	(ov-new1.7.33): Reflect intermediate 1.7.33 release.
2014-11-13 13:10:26 +00:00
Corinna Vinschen b8fd41f5df * new-features.xml (ov-new1.7.33): Document xdr and atexit. 2014-11-05 09:56:09 +00:00
Corinna Vinschen 24485a663c * cygwinenv.xml: Change default setting of dosfilewarning.
* new-features.xml (ov-new1.7.33): Document aforementioned change.
2014-10-28 10:47:38 +00:00
Corinna Vinschen 61a41e77e9 * new-features.xml (ov-new1.7.33): Document empty $PATH handling. 2014-10-27 11:35:15 +00:00
Corinna Vinschen b18aed9262 * new-features.xml (ov-new1.7.33): Fix paragraph order. 2014-10-27 10:35:52 +00:00
Corinna Vinschen f1271e19c3 * highlights.xml: Rearrange itemizedlist markup slightly.
* new-features.xml (ov-new1.7.33): Add setfacl -b option.
	* utils.xml (setfacl): Ditto.
2014-10-27 10:34:17 +00:00
Corinna Vinschen a4705a7d26 Fix typo 2014-10-24 19:14:49 +00:00
Corinna Vinschen fdf455637b * Makefile.in: Create install targets.
(cygwin-ug-net/cygwin-ug-net.pdf): Create subdir to allow building PDF
	even if subdir is missing.
	(cygwin-api/cygwin-api.pdf): Ditto.
	* configure.ac: Add AC_PROG_INSTALL rule.
	* configure: Regenerate.
	* new-features.xml (ov-new1.7.33): Add installation of docs.
2014-10-22 20:04:42 +00:00
Yaakov Selkowitz 8a091aad42 * new-features.xml (ov-new1.7.33): Document stime.
* posix.xml (std-deprec): Add stime.
2014-10-22 19:18:50 +00:00
Corinna Vinschen 27b7220d20 * new-features.xml (ov-new1.7.33): s/Linux/glibc. 2014-10-22 09:03:50 +00:00
Corinna Vinschen 37b1a944c7 * new-features.xml (ov-new1.7.33): Update to current state. 2014-10-22 08:33:37 +00:00
Corinna Vinschen 12a8027532 * new-features.xml: (ov-new1.7.33): Add new section.
(ov-new1.7.32): Reflect intermediate 1.7.32 release.
2014-08-13 17:44:07 +00:00
Corinna Vinschen 0e76ca5fd9 * new-features.xml: (ov-new1.7): Change section title. 2014-07-30 11:32:41 +00:00
Corinna Vinschen 232f23e038 * new-features.xml: (ov-new1.7.1): Add new section. Move old 1.7
sections into section level 3.
2014-07-30 11:28:58 +00:00
Corinna Vinschen f092b3ddf3 * cygwin.xsl: Allow 3 section levels in TOC.
* new-features.xml: (ov-new1.7.32): Add new section.
	* ntsec.xml: Rename top-level section to reflect extension of topics.
	Remove old /etc/passwd, /etc/group considerations.  Add new sections
	explaining Windows to POSIX account mapping.  Make setuid sections
	third level sections.
	* pathnames.xml: Note new method of account mapping for fstab.d/$USER.
	* faq-setup.xml: Rework references to /etc/passwd and /etc/group to
	reflect changes to account handling.
	* faq-using.xml: Ditto.
2014-07-30 11:07:34 +00:00
Corinna Vinschen 11e2c05c9e * new-features.xml: (ov-new1.7.31): Add new section. 2014-07-21 09:47:05 +00:00
Corinna Vinschen 2c4cbf8e7b * new-features.xml: (ov-new1.7.29): Fix incomplete XML tagging. 2014-04-04 16:17:13 +00:00
Christopher Faylor 47f07c8b3c * new-features.xml: (ov-new1.7.29): Add new section. 2014-04-01 00:57:07 +00:00
Corinna Vinschen e5819caa0b * new-features.xml (ov-new1.7.28): Add new section. 2014-01-27 21:26:36 +00:00
Corinna Vinschen 17bb9160d5 * new-features.xml (ov-new1.7.26): Add new section. 2013-12-07 10:12:55 +00:00
Corinna Vinschen fea986bdc6 * new-features.xml (ov-new1.7.26): Fix section ID and title. Add
posix_spawn item.
2013-11-29 10:14:13 +00:00
Corinna Vinschen 7a5be33eb5 * new-features.xml (ov-new1.7.26): Add new section. 2013-11-23 11:39:51 +00:00
Christopher Faylor 1560d3e281 cygwin changes:
* spawn.cc (child_info_spawn): Revert previous change.  Always set
	lpReserved2.
	* release/1.7.25: Change wording.
doc changes:
	* new-features.xml (ov-new1.7.25): Change wording.
2013-08-23 18:19:46 +00:00
Corinna Vinschen 78aaee2321 * new-features.xml (ov-new1.7.25): Add new section. 2013-08-23 09:46:41 +00:00
Corinna Vinschen b4e7956e5f * new-features.xml (ov-new1.7.24): Add new section. Mention
posix_memalign override.
2013-08-14 11:44:46 +00:00
Christopher Faylor 033fe7d87f cygwin directory changes:
* environ.cc (tty_is_gone): Delete.
	(known): Delete tty, add wincmdln.
	* globals.cc: Reorganize list of environment bools, remove explicit =
	false for slight load time optimization.
	(wincmdln): New global.
	* spawn.cc (child_info_spawn::worker): Honor wincmdln.

doc directory changes:
	* new-features.sgml (ov-new1.7.23): Add new section.  Mention wincmdln.
	* cygwinenv.xml: Mention wincmdln.
2013-07-26 17:28:00 +00:00
Corinna Vinschen 463cca40bd * new-features.sgml (ov-new1.7.22): Add GetCommandLine and regcomp
changes.
2013-07-21 19:30:19 +00:00
Corinna Vinschen f7180e5eac * new-features.sgml (ov-new1.7.22): New section. Document dropped
support for /dev/mem, /dev/kmem, /dev/port.
	* specialnames.xml (pathnames-posixdevices): Drop description of
	/dev/mem, /dev/kmem, /dev/port.
2013-07-15 14:00:32 +00:00
Yaakov Selkowitz 8131499d73 * new-features.sgml (ov-new1.7.21): New section. Document rawmemchr. 2013-06-24 15:30:49 +00:00
Corinna Vinschen 338a3e8b15 * new-features.xml (ov-new1.7.19): Revert mandatory locking support to
"preliminary".
2013-06-05 07:23:07 +00:00