Commit Graph

6230 Commits

Author SHA1 Message Date
Corinna Vinschen 000235c38d * cygserver_ipc.h (ipc_retval::ipc_retval): Take ssize_t as argument
to make sure entire ipc_retval union is initialized on all supported
	platforms.
2013-07-19 11:32:54 +00:00
Corinna Vinschen aff6ef0db4 * path.cc (normalize_posix_path): Start checking path before ".." at
dst, rather than at dst_start, otherwise suffer loss of one leading
	slash in case of UNC paths.
2013-07-18 10:11:33 +00:00
Christopher Faylor e6f4f3f7ee * winsup.h (cygbench): Fix declaration to match definition.
* dcrt0.cc (initial_env): Remove unused variable.
2013-07-17 17:46:10 +00:00
Corinna Vinschen 4c4693008a Remove /dev/mem, /dev/kmem, /dev/port support.
* Makefile.in (DLL_OFILES): Drop fhandler_mem.o.
	(fhandler_mem_CFLAGS): Remove rule.
	* devices.in (enum fh_devices): Remove FH_MEM, FH_KMEM and FH_PORT.
	* devices.cc: Regenerate.
	* dtable.cc (fh_alloc): Drop handling for FH_MEM, FH_KMEM and FH_PORT.
	* fhandler.h (class fhandler_dev_mem): Remove.
	* fhandler_mem.cc: Remove file.
	* globals.cc (ro_u_pmem): Remove.
	* mmap.cc (fhandler_dev_mem::mmap): Remove.
	(fhandler_dev_mem::munmap): Remove.
	(fhandler_dev_mem::fixup_mmap_after_fork): Remove.
2013-07-15 13:54:27 +00:00
Corinna Vinschen 7ea982e75a * include/cygwin/version.h (CYGWIN_VERSION_DLL_MINOR): Bump to 22. 2013-07-15 11:44:04 +00:00
Corinna Vinschen 7556523159 * path.cc (symlink_native): Fix common prefix search. Enhance comment. 2013-07-15 09:57:20 +00:00
Corinna Vinschen 3b2560e500 * uname.cc (uname): Drop unused code. 2013-07-11 11:20:38 +00:00
Christopher Faylor 41f9a410cc * gentlsoffsets: Clean up a little.
* thread.cc (semaphore::_fixup_after_fork): Report on potential problem
parameter.  Make sure that currentvalue is never zero.
(semaphore::init): Make cosmetic change.
2013-07-10 20:58:33 +00:00
Corinna Vinschen e3d9d8dfdc * cygwin.sc.in (.text.*): Fold into .text on all platforms.
(.eh_frame): Add section.
	* environ.cc (my_findenv): Drop __stdcall attribute.
	(getearly): Ditto.
	(findenv_func): Drop cast.
2013-07-10 12:15:32 +00:00
Christopher Faylor 470b8544e8 * fhandler.cc (fhandler_base::close_with_arch): Make sure that the archetype is
deleted when close_with_arch is referenced *via* the archetype.
2013-07-03 20:26:44 +00:00
Corinna Vinschen 562b70fbac * path.cc (find_fast_cwd_pointer): Use gas syntax for assembler
description in all comments.  Make algorithm work on Windows 8.1
	Preview.
2013-06-28 10:52:30 +00:00
Corinna Vinschen 9626422634 * dcrt0.cc (child_info_fork::alloc_stack): Fix a comparison to avoid
taking 4K more stack in forked child.
	* fork.cc (frok::parent): Print child exit code in hex if sync failed.
2013-06-27 17:00:12 +00:00
Yaakov Selkowitz ccccd71d58 * common.din (rawmemchr): Export.
* posix.sgml (std-gnu): Add rawmemchr.
* include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump.
2013-06-24 15:12:40 +00:00
Corinna Vinschen d21edf5276 * path.cc (cygwin_conv_path): Handle NULL "from" path gracefully.
* path.sgml (func-cygwin-conv-path): Document returning EINVAL if
	"from" is NULL.
2013-06-21 08:14:26 +00:00
Christopher Faylor 5e24aee56c * winf.h (av::unshift): Make __reg2. 2013-06-19 17:21:25 +00:00
Christopher Faylor 37ee5b49af * spawn.cc (child_info_spawn::worker): Eliminate call to newargv.set() in favor
of conglomerated newargv.setup().  Let newargv.setup() decide when to call
dup_all().  Only set argc and argv for cygwin processes.
(av::setup): Rename from av::fixup.  Accept argc and argv parameters.  Fill out
argv and argc here.  Duplicate whole argv structure when this is a Cygwin
executable.
* winf.cc (linebuf::fromargv): Don't bother duplicating argv elements since
they will never be used.
* winf.h (av::set): Delete.
(av::setup): Rename from av::fixup.  Add two parameters.
(av::replace0_maybe): Assign calloced to 1 rather than 'true' for clarity.
(av::dup_maybe): Delete.
(av::dup_all): Set calloced to show that we have duplicated all of the
arguments in the list.
2013-06-19 16:00:43 +00:00
Corinna Vinschen c1d6d05470 * nlsfuncs.cc (__collate_range_cmp): Convert input to wchar_t and call
wcscoll since all calling functions are using wide chars.  Explain in
	preceeding comment.
2013-06-19 15:24:48 +00:00
Christopher Faylor 9e8cf6ebbd * spawn.cc (child_info_spawn::worker): Eliminate wascygexec. 2013-06-19 14:39:00 +00:00
Christopher Faylor 9a52d79f10 * dcrt0.cc (child_info_fork::alloc_stack): Don't subtract 4096 from stack
pointer since getstack() already does that.
2013-06-19 05:06:35 +00:00
Corinna Vinschen 700f8d5902 * gmon.c: Drop gratuitous inclusion of strings.h. Remove __MINGW32__
around definition of bzero.
2013-06-18 10:01:33 +00:00
Corinna Vinschen 943072f45c * Makefile.in (VPATH): Drop CONFIG_DIR.
(EXTRA_DLL_OFILES): Remove.
	(DLL_OFILES): Remove EXTRA_DLL_OFILES.
	(ASFLAGS): Define as -D_WIN64 on x86_64.
	(GMON_OFILES): Add mcountFunc.o.
	($(srcdir)/$(TLSOFFSETS_H)): Use target_cpu rather than CONFIG_DIR.
	* configure.ac (CONFIG_DIR): Remove definition.
	* configure: Regenerate.
	* gcrt0.c: Use latest version from Mingw-w64 project.
	* gmon.c: Ditto.
	* gmon.h: Ditto.
	* mcount.c: Ditto.
	* mcountFunc.S: Ditto, new file.
	* profil.c: Ditto.
	* profil.h: Ditto.
	* config: Remove entire directory.
2013-06-18 09:45:37 +00:00
Corinna Vinschen 2566c2e600 * path.cc (cnt_bs): New inline function.
(symlink_native): Fix creating relative native symlink.
2013-06-17 12:37:09 +00:00
Corinna Vinschen 42c8e85109 * fhandler_clipboard.cc (fhandler_dev_clipboard::read): Fix buffer
read access overrun when pos > 0.
2013-06-17 10:11:54 +00:00
Corinna Vinschen f4ddbb8ebf * times.cc (GetSystemTimePreciseAsFileTime): Add comment to declaration.
(__to_clock_t): Remove a debug_printf.
	(times): Align syscall_printf to debug output of other system calls.
2013-06-17 08:33:41 +00:00
Corinna Vinschen 7584fa98d4 * autoload.cc (GetSystemTimePreciseAsFileTime): Define.
* times.cc (GetSystemTimePreciseAsFileTime): Temporarily declare here
	to workaround missing definition in 32 bit w32api headers.
	(get_system_time): New always inline function to call either
	GetSystemTimePreciseAsFileTime or GetSystemTimeAsFileTime on a per OS
	basis.  Call throughout instead of GetSystemTimeAsFileTime.
	* wincap.h (wincaps::has_precise_system_time): New element.
	* wincap.cc: Implement above element throughout.
2013-06-14 15:41:17 +00:00
Corinna Vinschen 0ff057d5a5 Streamline time/times functionality. Remove last remains of former
Windows 9x compatibility.
	* fhandler_disk_file.cc (fhandler_base::fstat_helper): Drop now unneeded
	casts in calls to_timestruc_t.
	(fhandler_base::utimens_fs): Ditto for timespec_to_filetime.
	* fhandler_proc.cc (format_proc_stat): Ditto for to_time_t.
	* hires.h (class hires_ms): Remove unused member initime_ns.
	Remove declarations for timeGetTime_ns and prime.
	(hires_ms::uptime): Remove.
	* posix_ipc.cc (ipc_cond_timedwait): Ditto for timespec_to_filetime.
	* fhandler_registry.cc (fhandler_registry::fstat): Add cast.
	* resource.cc (fill_rusage): Call NtQueryInformationProcess rather than
	GetProcessTimes to deal with LARGE_INTEGER rather than FILETIME.
	* times.cc: Simplify time handling.  Throughout, use LARGE_INTEGER
	rather than FILETIME to simplify computations.  Throughout use
	{u}int64_t rather than {unsigned} long long.  Drop unneeded casts since
	NSPERSEC is 64 bit anyway.
	(systime_ns): Remove.
	(times): Call NtQuerySystemInformation to fetch boot time.  Call
	NtQueryInformationProcess rather than GetProcessTimes to deal with
	LARGE_INTEGER rather than FILETIME.  Call GetSystemTimeAsFileTime.
	(totimeval): Use constant 1000000 as in other functions.
	(time_t_to_filetime): Remove.
	(to_time_t): Change return type to time_t.
	(time_as_timestruc_t): Rename filetime to systime.
	(time): Ditto. Add cast.
	(hires_ns::nsecs): Fix return type cast.
	(hires_ms::timeGetTime_ns): Remove.
	(hires_ns::prime): Remove.
	(hires_ms::nsecs): Drop call to prime.  Call GetSystemTimeAsFileTime
	directly.  Subtract FACTOR here since it's the only function needing
	to do so.
	(minperiod): Cosmetically change to ULONG.
	(hires_ns::resolution): Fix return type cast.
	(hires_ms::resolution): Simplify, rely on NtQueryTimerResolution.
	* winsup.h: Align time related prototypes to above changes.
2013-06-14 09:09:41 +00:00
Corinna Vinschen ba763af559 * net.cc (gen_old_if_name): New function to generate short interface
names for old pre-1.7 applications.
	(get_ifs): Call gen_old_if_name for said old applications.
2013-06-13 19:37:14 +00:00
Corinna Vinschen f06d6d2886 * posix.sgml (fcntl, flock, lockf): Point to implementation notes. 2013-06-13 12:50:28 +00:00
Corinna Vinschen 0b8722c2db * path.cc (normalize_posix_path): Fix long-standing problem which
allows to access files via ".." using an invalid POSIX path.
2013-06-12 17:45:42 +00:00
Corinna Vinschen bb345ed147 * winver.rc (FileDescription): Remove (R). 2013-06-11 07:46:40 +00:00
Corinna Vinschen 8675d2e301 * sec_auth.cc (get_user_groups): Don't handle ERROR_ACCESS_DENIED as
error.  Explain why.
2013-06-10 15:33:12 +00:00
Christopher Faylor d7e4267f45 clarify entry 2013-06-08 16:55:29 +00:00
Christopher Faylor 62003f180a * exceptions.cc (try_to_debug): Don't use yield() when waiting for another
process.
(sigpacket::setup_handler): Fix long-standing problem where loop could exit
with lock held.
2013-06-08 16:54:41 +00:00
Christopher Faylor 1952976a1b * miscfuncs.cc (yield): Revert (after researching) to calling SleepEx with 0.
We don't want to actually sleep when calling this function.
2013-06-08 16:39:52 +00:00
Christopher Faylor 5d35299e51 * cygwait.cc (cygwait): Remove lock around sig retrieval since this code is
essentially guarded by thread-specific signal_arrived.
* exceptions.cc (_cygtls::handle_SIGCONT): Simplify.  Eliminate lock/unlock
since code is guarded by signal_arrived.
2013-06-08 14:38:20 +00:00
Corinna Vinschen 2f78d07f49 * winver.rc (LegalCopyright): Belatedly bump to 2013. 2013-06-07 19:07:05 +00:00
Christopher Faylor da6461a4d5 * exceptions.cc (_cygtls::handle_SIGCONT): Reinstate previous behavior but make
sure that yield() isn't called when signal stack is locked.
2013-06-07 17:09:56 +00:00
Christopher Faylor 0f38043d8b * exceptions.cc (exception::handle): Add comment explaining si_addr behavior. 2013-06-07 16:05:12 +00:00
Christopher Faylor 9791177448 * DevNotes: Add entry cgf-000023.
* sigproc.cc (exit_thread): Remove now-unneeded sleep code.
2013-06-07 15:37:11 +00:00
Corinna Vinschen 34ec6f665b * include/cygwin/version.h (CYGWIN_VERSION_DLL_MINOR): Bump to 21. 2013-06-07 09:21:53 +00:00
Corinna Vinschen 6c860dfd25 * posix.sgml (std-notes): Fix typo. 2013-06-07 08:43:01 +00:00
Corinna Vinschen 000e74dfd5 * fhandler_disk_file.cc (fhandler_disk_file::pread): Skip to non-atomic
code if mandatory locking is used on this descriptor.  Explain why.
	(fhandler_disk_file::pwrite): Ditto.
	* posix.sgml (std-notes): Extend description of file locking.
2013-06-07 08:28:25 +00:00
Corinna Vinschen b3f0fb6baa * exceptions.cc (_cygtls::handle_SIGCONT): Simplify loop waiting for
sig_handle_tty_stop to wake up.  Make sure to unlock before calling
	yield to avoid starvation of sig_handle_tty_stop.  Add comments.
	* miscfuncs.cc (yield): Explain why yield should never be called under
	_cygtls::lock conditions.  Call SleepEx with 1ms timeout.  Explain why.
2013-06-06 15:29:41 +00:00
Corinna Vinschen aa6aee7dd7 * include/cygwin/version.h (CYGWIN_VERSION_DLL_MINOR): Bump to 20. 2013-06-05 09:37:53 +00:00
Corinna Vinschen edd73646f3 * fhandler.cc (fhandler_base::lock): Move to flock.cc.
(fhandler_base::fixup_after_exec): Reset mandatory_locking.
	* fhandler.h (class fhandler_base): Add mandatory_locking status flag.
	Add mandatory_locking accessor methods.  Accommodate change throughout.
	(fhandler_base::mand_lock): Declare.
	(class fhandler_disk_file): Drop in favor of new status flag.
	* (fhandler_disk_file::fcntl): Call need_fork_fixup if mandatory_locking
	flag gets set.
	* flock.cc (fhandler_base::lock): Define here.
	(flock): Handle mandatory_locking.
	(lockf): Ditto.
	(fhandler_base::mand_lock): Define.
2013-06-04 10:24:43 +00:00
Corinna Vinschen 69154cfd6b * sigproc.cc (exit_thread): Allow to exit the thread while running
global dtors.  Explain why.
2013-06-03 09:48:54 +00:00
Corinna Vinschen 8516b54215 Fix typo 2013-06-02 10:50:57 +00:00
Corinna Vinschen a24ad2c346 * autoload.cc (CancelSynchronousIo): Define.
* fcntl.cc (fcntl64): Drop handling of locking commands.
	* fhandler.h (class fhandler_disk_file): Add mandatory_locking.
	(fhandler_disk_file::fcntl): Declare.
	(fhandler_disk_file::mand_lock): Declare.
	* fhandler_disk_file.cc (fhandler_disk_file::fhandler_disk_file):
	Initialize mandatory_locking.
	(fhandler_disk_file::fcntl): New method.  Handle F_LCK_MANDATORY and
	locking commands.
	(fhandler_disk_file::dup): Duplicate mandatory_locking.  Fix a bug
	when duplicating prw_handle failed.
	(fhandler_disk_file::fixup_after_fork): Reset mandatory_locking.
	* flock.cc (fhandler_disk_file::lock): Add comment.
	(struct lock_parms): New struct to pass parameters to blocking_lock_thr
	thread function.
	(blocking_lock_thr): New thread function.
	(fhandler_disk_file::mand_lock): New methof implementing mandatory
	locking with Windows semantics.
	* ntdll.h (NtLockFile): Declare.
	(NtUnlockFile): Declare.
	* include/fcntl.h: Fix a comment.
	(F_LCK_MANDATORY): Define.  Add lengthy comment to explain.
2013-06-02 10:22:14 +00:00
Corinna Vinschen fa35814af1 * exceptions.cc (exception::handle): Resurrect accidentally lost
patch from 2009-07-22: Set si_addr according to POSIX for SIGSEGV.
2013-06-02 09:11:09 +00:00
Corinna Vinschen cd9ca871b0 * include/sys/socket.h: Move SHUT_xx definitoins from here...
* include/cygwin/socket.h: ...to here.
2013-05-31 18:08:25 +00:00
Corinna Vinschen 9fccd63bc3 * include/cygwin/if.h: Include cygwin/socket.h rather than sys/socket.h
to avoid circular dependency resulting in bogus compile time warnings.
2013-05-31 08:40:35 +00:00
Corinna Vinschen b09e6ec935 * fhandler_procsys.cc (fhandler_procsys::read): Just call
fhandler_base::raw_read from here.  Drop comment.
	(fhandler_procsys::write): Drop comment.
2013-05-28 15:07:01 +00:00
Corinna Vinschen 27a21b38c0 * dll_init.cc (dll_list::topsort): Fix early-return condition to
accommodate process with all runtime loaded DLLs already dlclosed
	at fork time.
	* gendef (_sigfe_maybe): Fix code handling early return if we don't
	have a tls, broken on 2013-05-21.
2013-05-27 19:31:04 +00:00
Corinna Vinschen 10ce3cd70a * Makefile.in (DEFS): Unused, remove.
(COMPILE.cc): Move -mno-use-libstdc-wrappers flag from here...
	($(TEST_DLL_NAME)): ...to here since it's a link time flag.
2013-05-24 21:12:16 +00:00
Corinna Vinschen 6184e6b9c8 * pinfo.cc (pinfo::status_exit): Enhance comment. 2013-05-24 13:43:26 +00:00
Corinna Vinschen 1a5dfe8ae0 * environ.cc (win_env::add_cache): Set the Windows environment variable
using wide chars to make sure native chars don't get scrambled.
	* environ.h (build_env): Fix formatting in declaration.
	* pinfo.cc (pinfo::status_exit): Handle STATUS_NO_MEMORY.  Explain why.
2013-05-24 13:32:10 +00:00
Corinna Vinschen 592989d65c * fork.cc (frok::parent): Always set CREATE_UNICODE_ENVIRONMENT flag.
Explain why.
2013-05-24 08:43:43 +00:00
Corinna Vinschen 61fb9713c6 * fork.cc (frok::parent): Call CreateProcessW with command line set
to the parent command line.  Change comment to explain why.
2013-05-23 20:47:45 +00:00
Corinna Vinschen c6696a3426 * dcrt0.cc (child_info_fork::alloc_stack_hard_way): Fix datatype of
stacksize to SIZE_T.  Cast to SIZE_T in pointer arithmetic.  Slightly
	enhance output in case of a fatal error.
	* fork.cc (frok::parent): Always set ch.stackaddr to DeallocationStack
	value of current thread to help stack reservation in
	child_info_fork::alloc_stack_hard_way along.  Simplify subsequent code
	storing stack values in ch.  Print guardsize in hex, too.
2013-05-23 20:10:35 +00:00
Corinna Vinschen 33cb946e7e * environ.cc (set_winsymlinks): Handle "winsymlinks:nativestrict"
option.  On pre-Vista warn the user if the "winsymlinks:native*" option
	is set.
	* globals.cc (enum winsym_t): Add WSYM_nativestrict.
	* path.cc (symlink_native): Don't create native symlink if target
	does not exist.  Explain why.  Improve comments.
	(symlink_worker): Change AFS symlink handling to WSYM_nativestrict.
	Handle WSYM_nativestrict throughout.  Change condition for bail out
	to wsym_type == WSYM_nativestrict.  Add comment.  Fix formatting.
	* shared_info.h (CURR_USER_MAGIC): Change to reflect change in
	class user_info.
	(class user_info): Add member warned_nonativesyms.
2013-05-23 14:23:01 +00:00
Corinna Vinschen c20a5e603a * spinlock.h (ULONG): Replace LONG operator with ULONG to accommodate
the fact that CURR_SHARED_MAGIC and USER_SHARED_MAGIC are unsigned
	values.
	* shared.cc (shared_info::initialize): Drop explicit cast here.
2013-05-22 16:55:55 +00:00
Corinna Vinschen 3e096c5010 Add missing ChangeLog entry for former checkin. 2013-05-21 19:07:52 +00:00
Corinna Vinschen 3e8d2576fd * globals.cc (__isthreaded): New global variable. Explain what it's
used for.
	* miscfuncs.cc (thread_wrapper): Set __isthreaded to 1 here.
2013-05-21 18:53:23 +00:00
Corinna Vinschen cc4a1b830d * fhandler.h (class fhandler_dev_random): Change type of pseudo to
uint32_t to make sure it's 32 bit on all supported platforms.
2013-05-21 18:51:36 +00:00
Corinna Vinschen 2cf3d4faae x86_64 only:
* gendef (_sigfe_maybe): Drop pushing %r12, use %r10 instead since we
	don't call yield anymore.
	(_sigfe): Ditto.
	(_sigbe): Ditto.
2013-05-21 18:26:48 +00:00
Corinna Vinschen e99674fb55 * libc/base64.c: New file.
* Makefile.in (DLL_OFILES): Add base64.o.
	* common.din: Export __b64_ntop and __b64_pton.
	* posix.sgml (std-bsd): Add __b64_ntop and __b64_pton.
	* include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump.
2013-05-21 10:07:55 +00:00
Corinna Vinschen 676548b3d1 * syscalls.cc (open): Only return ENOTDIR if file exists. 2013-05-21 10:04:45 +00:00
Christopher Faylor dae40103a5 * sigproc.cc (sig_hold): Delete.
(sigheld): Delete.
(sig_send): Eliminate special-case __SIGHOLD handling.
(wait_sig): Just flag when signals are on hold and add them to the queue rather
than stalling the wait_sig loop.  Clear the flag when __SIGNOHOLD is specified.
2013-05-16 05:36:15 +00:00
Corinna Vinschen 58854fc721 * Makefile.in (devices_CFLAGS): Drop -Os. 2013-05-14 17:28:45 +00:00
Corinna Vinschen b39bb1802a * Makefile.in (localtime_CFLAGS): Define as -fwrapv since localtime
code requires int overflows to be fully defined.
	* localtime.cc: Align a bit more to upstream code.
2013-05-14 13:34:05 +00:00
Corinna Vinschen ccd40e46d7 * grp.cc (get_groups): Convert to void function.
(initgroups32): Accommodate the aforementioned change.
	(getgrouplist): Ditto.
2013-05-14 09:07:30 +00:00
Corinna Vinschen ee6ed1db45 * grp.cc (get_groups): Never return error. Always create a group list,
even if it's empty.
2013-05-14 08:50:37 +00:00
Christopher Faylor 73dfbd86bd * include/cygwin/version.h: Bump api minor number to reflect previous change. 2013-05-13 19:27:34 +00:00
Christopher Faylor 6d15197bce * i686.din: Remove _strtold.
* x86_64.din: Move strtold definition...
* common.din: ...to here.
2013-05-13 19:25:35 +00:00
Christopher Faylor ad48b1b79c change wording 2013-05-08 00:10:35 +00:00
Christopher Faylor eeec3bebbc * fhandler_tty.cc (fhandler_pty_common::__acquire_output_mutex): Never wait an
INFINITE amount of time.  Instead default to 1/10 second.
(fhandler_pty_slave::open): Just default to INFINITE wait rather than
(now) waiting longer than previously.
2013-05-08 00:10:08 +00:00
Christopher Faylor ebba7327e1 * spawn.cc (ILLEGAL_SIG_FUNC_PTR): New define.
(system_call_handle): Rename from system_call_cleanup.
(is_system_call): New convenience method.
(system_call_handle::system_call_handle): Use ILLEGAL_SIG_FUNC_PTR rather than
cast.  Call sig_send here rather than in caller.  Initialize oldint.
(system_call_handle::arm): New function pulled from constructor.
(~system_call_handle::system_call_handle): Use is_system_call().
(child_info_spawn::worker): Use system_call_handle to set up for system call
early.  Use arm call prior to waiting for child to properly set up signal
handling.  Move comment closer to code it is commenting on.
2013-05-03 19:39:01 +00:00
Christopher Faylor 0cfce9acc9 * resource.cc (setrlimit): Use consistent commenting style. Return EINVAL when
rlim_cur > rlim_max.
2013-05-01 21:19:51 +00:00
Yaakov Selkowitz 1f36328e7f Throughout, (mainly in fhandler*) fix remaining gcc 4.7 mismatch
warnings between regparm definitions and declarations.
* smallprint.cc (__small_vswprintf): Conditionalize declaration and
setting of l_opt for only x86_64.
* spawn.cc (child_info_spawn::worker): Remove unused 'pid' variable.
* thread.cc (verifyable_object_isvalid): Temporarily define as
non-inline with gcc 4.7+, regardless of target.
2013-05-01 01:20:37 +00:00
Christopher Faylor 92f63de367 * gendef: Fix sigfe.s typo. 2013-05-01 01:15:07 +00:00
Christopher Faylor 3cb9da1461 * spawn.cc (system_call_cleanup): Rename from pthread_cleanup. Extend
functionality.
(system_call_cleanup::system_call_cleanup): Set up signals like system()
requires.  Unblock previously-blocked signal handling.
(system_call_cleanup::~system_call_cleanup): Restore signal handling after
system().
(child_info_spawn::worker): Put signals on hold and use system_call_cleanup
class to set and restore signals rather than doing it prior to to running the
program.  Remove the ill-conceived pthread_cleanup stuff.
2013-04-30 23:51:08 +00:00
Christopher Faylor cc5bdf003f * exceptions.cc (cygwin_exception::dumpstack): Guard against wild pointer
dereference.
(CYG_EXC_CONTINUE_EXECUTION): Define based on standard Windows definition.
(CYG_EXC_CONTINUE_SEARCH): Ditto.
(exception::handle): Move andreas detection earlier.  Make comment clearer.
(signal_exit): Set core-dumped flag.
2013-04-30 23:47:01 +00:00
Christopher Faylor 9379e877da Sigh. Another missing checkin. 2013-04-30 23:44:06 +00:00
Christopher Faylor bfebe413bd * i686.din: New file.
* x86_64.din: New file.
* common.din: New file.
* cygwin.din: Delete.
* cygwin64.din: Delete.
* gendef: Rework to take options rather than using positional parameters.
Accept multiple files as input.
2013-04-30 23:43:08 +00:00
Christopher Faylor f821269534 * autoload.cc (CreateSymbolicLinkW): Rename from CreateSymbolicLink. 2013-04-30 00:52:46 +00:00
Corinna Vinschen 151f737ab0 * fcntl.cc (fcntl): Define as export alias for fcntl64 on x86_64. 2013-04-26 18:20:17 +00:00
Corinna Vinschen 79b4d1beb0 Fix date in latest ChangeLog entry 2013-04-24 16:06:55 +00:00
Corinna Vinschen 9ecd475cd8 * autoload.cc (CreateSymbolicLink): Define.
* environ.cc (set_winsymlinks): Set allow_winsymlinks.
	(parse_thing): Change "winsymlinks" to set by function.
	* globals.cc (enum winsym_t): Define.
	(allow_winsymlinks): Define as winsym_t.
	(ro_u_afs): New R/O Unicode string.
	* mount.cc (fs_info::update): Fix comment.  Handle AFS.
	(fs_names): Add "afs".
	* mount.h (enum fs_info_type): Add afs.
	(class fs_info): Implement afs.
	* path.cc (symlink): Drop third parameter in call to symlink_worker.
	(symlink_nfs): New function.
	(symlink_native): New function.
	(symlink_worker): Drop third argument.  Handle native symlink type by
	calling symlink_native.  Move code to handle NFS to symlink_nfs.  Fix
	formatting.  Slightly restructure code.
	* path.h (class path_conv): Add fs_is_afs method.
	(symlink_worker): Declare here.
	* security.h: Define privilege constants as unsigned int instead of as
	unsigned long.
	* syscalls.cc (mknod_worker): Set third parameter in symlink_worker
	call to WSYM_lnk.
	* winsup.h (symlink_worker): Drop declaration here.
2013-04-24 10:16:13 +00:00
Corinna Vinschen 629b2a7e19 * cygwin64.din (_setjmp): Export.
(_longjmp): Export.
2013-04-23 10:03:39 +00:00
Corinna Vinschen 61522196c7 * Merge in cygwin-64bit-branch. 2013-04-23 09:44:36 +00:00
Corinna Vinschen 40702aef2c * include/sys/queue.h: Delete in favor of more complete newlib file. 2013-04-22 10:35:02 +00:00
Corinna Vinschen a1467f6434 Adapt to changes in newlib's sys/cdefs.h:
* include/sys/sysinfo.h (struct sysinfo): Rename __unused member to __f.
	* libc/fts.c (__FBSDID): Drop definition.
	* regex/regexec.c (__unused): Drop definition.
2013-04-22 10:33:09 +00:00
Corinna Vinschen fc1ff1150c * include/cygwin/version.h (CYGWIN_VERSION_DLL_MINOR): Bump to 19. 2013-04-22 10:13:30 +00:00
Corinna Vinschen 48f81ac677 * glob.cc: Include winsup.h before anything else. 2013-04-16 10:20:25 +00:00
Corinna Vinschen 492ee4ee4b * path.cc (symlink_info::check): Drop PC_KEEP_HANDLE flag for
unrecognized reparse points as well.  Reorganize code and comments
	handling reparse points for better readability.
2013-04-12 08:30:47 +00:00
Corinna Vinschen 8f81761b69 * hires.h (hires_ns::nsecs): Declare with bool parameter.
* times.cc (hires_ns::nsecs): Take bool parameter.  If set to true,
	don't use prime value (== return system wide absolute value).
2013-04-11 19:49:58 +00:00
Christopher Faylor b49dae4a44 fix YA typo 2013-04-09 01:23:41 +00:00
Christopher Faylor 9d2155089e * cygtls.h (_cygtls::reset_signal_arrived): Actually reset the signal_arrived
event.
(_cygtls::handle_SIGCONT): Declare ew function.
* cygwait.cc (is_cw_sig_handle): Delete.
(is_cw_sig_cont): New convenience define.
(cygwait): Clear signal if is_cw_sig_cont and we got a SIGCONT.
* cygwait.h (cw_wait_mask): Add cw_sig_cont.
* exceptions.cc (sig_handle_tty_stop): Tighten "incyg" region.  Use cw_sig_cont
param for cygwait.  Don't zero signal here outside of lock.
(sigpacket::setup_handler): Don't check for in_forkee since we will now never
get here in that state.
(_cygtls::handle_SIGCONT): Define new function.
(sigpacket::process): Call handle_SIGCONT early to deal with SIGCONT.  Nuke
continue_now handling.  Allow SIGKILL to kill a suspended process.  Delete a
couple of now-unneeded labels.
(_cygtls::call_signal_handler): Reorganize setting of incyg within lock.
* sigproc.cc (pending_signals): Simplify.
(pending_signals::clear): New method.
(_cygtls::remove_wq): Reorganize to always close wq.thread_ev if it exists to
avoid handle leaks.
(sig_clear): Simplify by just calling sigq.clear().
(sig_dispatch_pending): Always call sigq.pending even in signal thread to force
another loop in wait_sig.
(sig_send): Remove a "goto out" just before out: label.
(pending_signals::add): Simplify.
(pending_signals::del): Delete.
(pending_signals::next): Delete.
(wait_sig): Define variable q to be the start of the signal queue.  Just
iterate through sigq queue, deleting processed or zeroed signals.  Only set
clearwait when the current signal is SIGCHLD.
* sigproc.h: Add a comment about an unused enum.
2013-04-09 01:01:19 +00:00
Christopher Faylor 037ad80a52 fix typo 2013-04-08 17:55:57 +00:00
Corinna Vinschen 2617a91597 * fhandler_socket.cc (get_inet_addr): Handle abstract AF_LOCAL socket.
(fhandler_socket::recv_internal): Create abstract socket name for
	AF_LOCAL datagram sockets.  Explain why we do that.
2013-04-08 17:34:34 +00:00