Commit Graph

17284 Commits

Author SHA1 Message Date
Corinna Vinschen 05847ad6e9 Fix console clear screen in case of partial scrolling
Commit d7586cb incorrectly checked only for the new cursor position
beyond the old cursor position to decide if we have to correct for user
scrolling.  Since this situation is handled just fine if the cursor is
still visible, only perform the subsequent correction if the cursor is
not in the visible console window.

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2016-08-01 12:42:54 +02:00
Corinna Vinschen 11dcf9cb5c Open process with PROCESS_QUERY_INFORMATION to fetch maps
Commit ba58e5f lowered permission requirements when opening threads
and processes to {PROCESS,THREAD}_QUERY_LIMITED_INFORMATION.  However,
when creating the /proc/<PID>/maps file, the call to VirtualQueryEx
requires PROCESS_QUERY_INFORMATION access

Note: It seems PROCESS_QUERY_LIMITED_INFORMATION is sufficient starting
with Windows 8.1, but this is neither documented on MSDN, nor is it a
safe bet.  It may have to do with a fixed implementation of the UAC
trust levels.  Let's better follow the docs for now.

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2016-08-01 11:52:30 +02:00
Corinna Vinschen d7586cb66c Fix clear screen behaviour of console when user scrolled up or down
We must call SetConsoleCursorPosition prior to SetConsoleWindowInfo,
otherwise the scroll bars will not be updated by the OS.  Make sure
to scroll the console window by just the right amount to have the
new cursor position one line after the used console buffer area at
the top of the console window, no matter the scroll state.

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2016-07-29 12:07:46 +02:00
Corinna Vinschen 08da3bfc41 Fix buffer scrolling when performing a "clear screen"
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2016-07-28 08:50:09 +02:00
Corinna Vinschen 32b668d966 Don't raise SIGTTIN from poll/select
SIGTTIN should be raised when read() is made on a tty in a backgrounded
process, but not when it's tested with poll()/select().

I guess poll()/select() does need to call bg_check(), in order to detect the
error conditions that notices (that is, if bg_check() returns bg_eof or
bg_error, then fd is ready as an error condition exists) so add an optional
parameter to fhandler_base::bg_select() to indicate that signals aren't
desired.

See https://cygwin.com/ml/cygwin-developers/2016-07/msg00004.html
2016-07-27 17:02:08 +01:00
Corinna Vinschen 10a30e7a25 Remove redundant macro and function called `__getreent'
Just rely on the inline version in include/cygwin/config.h

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2016-07-27 14:00:30 +02:00
Corinna Vinschen 886f89ac39 posix.xml: Add missing unimplemented functions from POSIX-1.2013
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2016-07-23 13:56:52 +02:00
Corinna Vinschen 25cb82a55e Change "nodomain+nobody" to "no+body"
Per https://cygwin.com/ml/cygwin-apps/2016-07/msg00059.html

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2016-07-22 09:41:23 +02:00
Corinna Vinschen 1a988fc6ba Handle WinFSP nobody account
Per discussion started at
https://cygwin.com/ml/cygwin/2016-06/msg00347.html

S-1-0-65534 == uid/gid 65534 == nodomain+nobody

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2016-07-19 11:14:50 +02:00
Corinna Vinschen 642c48095c Fix typo
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2016-07-18 22:03:37 +02:00
Corinna Vinschen 2082bcec41 Add release message for commit 71df3bf
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2016-07-18 22:03:00 +02:00
Corinna Vinschen 71df3bfd51 truncl: Fix setting rounding bits in FPU control word
Mingw-w64, which is the source of this code, uses different
definitions of the rounding bits FE_TONEAREST and friends.
They immediately reflect the bit values in the FPU control word,
while on Cygwin they are shifted down to become the values 0-3.

Fix the bit computing expression to account for the difference.

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2016-07-18 22:00:17 +02:00
Yaakov Selkowitz 52d940e263 math.h: fix guards on basic M_ constants
MAXFLOAT, M_PI, and friends date back to at least XPG4v2, so this guard
was incorrect even prior to the feature test macros overhaul.

Signed-off-by: Yaakov Selkowitz <yselkowi@redhat.com>
2016-07-15 09:06:53 -05:00
Eric Blake 7475b656f4 Put previous doc in correct section
SSIZE_MAX was a bug fix, not a huge change.

Signed-off-by: Eric Blake <eblake@redhat.com>
2016-07-14 13:26:29 -06:00
Corinna Vinschen 863952f273 Add release message for commit fe9e3b4
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2016-07-14 20:55:04 +02:00
Corinna Vinschen fe9e3b4498 Transform all special chars in relative Windows path string
get_nt_native_path handles the transposition of chars not allowed
in Windows pathnames.  However, it never starts transposition at
the start of the string, which is wrong for relative paths.  Fix it.

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2016-07-14 20:52:04 +02:00
Eric Blake 6795ef7d37 Fix 32-bit SSIZE_MAX
POSIX requires that SSIZE_MAX have the same type as ssize_t, but
on 32-bit, we were defining it as a long even though ssize_t
resolves to an int.  It also requires that SSIZE_MAX be usable
via preprocessor #if, so we can't cheat and use a cast.

If this were newlib, I'd have had to hack _intsup.h to probe the
qualities of size_t (via gcc's __SIZE_TYPE__), similar to how we
already probe the qualities of int8_t and friends, then cross our
fingers that ssize_t happens to have the same rank (most systems
do, but POSIX permits a system where they differ such as size_t
being long while ssize_t is int).  Unfortunately gcc gives us
neither __SSIZE_TYPE__ nor __SSIZE_MAX__.  On the other hand, our
limits.h is specific to cygwin, so we can just shortcut to the
correct results rather than being generic to all possible ABI.

Signed-off-by: Eric Blake <eblake@redhat.com>
2016-07-14 12:38:49 -06:00
Corinna Vinschen 87076a3a83 Add release message for commit 82e0649
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2016-07-14 19:11:45 +02:00
Ray Donnelly 82e06490de machine/_types.h: __blkcnt_t should be signed
[1] states: "blkcnt_t and off_t shall be signed integer types."

This causes pacman to fail when the size requirement
of the net update operation is negative, instead it
calculated a huge positive number.

[1] http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/sys_types.h.html
2016-07-14 19:02:57 +02:00
Jon Turney 53a831f063 Improve description of Cygwin ldd utility
Improve the description of Cygwin ldd utility to give a bit more detail
about how it does what it does

Also add a security warning (modelled after the one in the Linux manpage)
that it may end up executing the file it is applied to.

Signed-off-by: Jon Turney <jon.turney@dronecode.org.uk>
2016-07-07 14:48:09 +01:00
Jon Turney 5ff2fcf9bd Use <filename> tag, not <pathname> tag
Fix an instance of the invalid <pathname> tag in Cygwin utils documentation,
by using the valid <filename> tag instead.

Signed-off-by: Jon Turney <jon.turney@dronecode.org.uk>
2016-07-07 14:48:09 +01:00
Jon Turney d4bed7c3af Use <example> tag at same level as <para>, not inside it
In Cygwin utils documentation, use the <example> tag at same level as
<para>, not inside it.

This improves the generated manpages.

Signed-off-by: Jon Turney <jon.turney@dronecode.org.uk>
2016-07-07 14:48:09 +01:00
Corinna Vinschen a5d197eb48 Add release message for commit 8cff156
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2016-07-06 19:16:05 +02:00
Corinna Vinschen 8cff1569fc strace: Make sure strace timer isn't copied to child process
At fork time the .data and .bss segments of the Cygwin DLL are copied
over to the child process.  This also copies the strace timer since
it's in the .bss segment so far.  Fix that by moving the strace timer
out into the .data_cygwin_nocopy segment.

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2016-07-06 19:12:59 +02:00
Corinna Vinschen 28d393c001 Fix typo in comment added by previous commit
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2016-07-06 18:23:21 +02:00
Corinna Vinschen a68ca43b90 Redefine locale info in struct _reent for per-thread locales
The _reent members _current_category and _current_locale are not
used at all.  _current_locale is set to "C" in various points of
the code but its value is just as unused as _current_category.

This patch redefines these members without changing the size of the
structure to allow for an implementation of per-thread locales per
POSIX-1.2008 (i.e. uselocale and usage of the per-thread locale in
subsequent function calls).

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2016-07-06 15:41:35 +02:00
Jon Turney b9ac3c2c8b Regenerate newlib Makefiles 2016-07-04 17:53:06 +01:00
Jon Turney d7e47a557e Regenerate newlib Makefiles 2016-07-04 17:13:55 +01:00
Jon Turney 0b4cbd2fb8 Make newlib manpages (v3)
Add makedocbook, a tool to process makedoc markup and output DocBook XML
refentries.

Process all the source files which are processed with makedoc with
makedocbook as well

Add chapter-texi2docbook, a tool to automatically generate DocBook XML
chapter files from the chapter .texi files.  For generating man pages all we
care about is the content of the refentries, so all this needs to do is
convert the @include of the makedoc generated .def files to xi:include of
the makedocbook generated .xml files.

Add skeleton Docbook XML book files, lib[cm].in.xml which include these
generated chapters, which in turn include the generated files containing
refentries, which is processed with xsltproc to generate the lib[cm].xml

Add new make targets to generate and install man pages from lib[cm].xml
2016-07-04 14:17:10 +01:00
Corinna Vinschen 85db21730b ldd: Handle executable relocation when setting breakpoint
set_entry_point_break() uses GetModuleInformation to fetch the
address of the exe's entry point.  However, just as with
lpStartAddress from the CREATE_PROCESS_DEBUG_EVENT event, the
returned address is only computed from the PE file header.  It's
not actually the entry point in memory, if the executable is
relocated (ASLR).  See
https://msdn.microsoft.com/en-us/library/windows/desktop/ms684229(v=vs.85).aspx

Convert this to using the info from CREATE_PROCESS_DEBUG_EVENT
combined with the offset from the PE file header's  AddressOfEntryPoint
to deal with relocation.

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2016-07-02 12:36:05 +02:00
Corinna Vinschen 9f54ceadae ldd: terminate process on hitting breakpoint
So far ldd terminates the inferior process as soon as some thread
is started.  Apparently threads are started from even ntdll.dll
before the main thread of the application is started.  As a result
the dll list is cut short since ldd terminates prematurely.

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2016-07-02 12:27:04 +02:00
Corinna Vinschen 29600e04e3 Make sure to use the Winsock definition of FIONREAD in ioctlsocket call
Commit b1b46d45 introduced a regression.  After redefining FIONREAD
as part of restructuring newlib/Cygwin headers, the call to ioctlsocket
in the FIONREAD branch of fhandler_socket::ioctl should have been
changed to use the Winsock definition of FIONREAD, which I neglected.
This only affects 64 bit Cygwin.

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2016-07-01 16:56:07 +02:00
Jon Turney e27cfa4631 Restore mingw64-x86_64-gcc-core in FAQ listing required packages
Restore mingw64-x86_64-gcc-core to requirements for 32-bit builds in FAQ
listing required packages, and give reason.
2016-06-29 15:08:33 +01:00
Jon Turney 24b1c90116 Update FAQ listing required packages for building Cygwin
docbook2X is now required for building documentation
libiconv differences between x86_64 and x86 no longer exist
2016-06-28 20:11:12 +01:00
Qian Hong f8a7ef17fe Continuous Integration: Add Tea CI build configuration. 2016-06-28 13:42:59 +02:00
Kuba Sejdak 8a603a697f Phoenix-RTOS: Add caddr_t definition to <sys/types.h>. 2016-06-28 12:47:05 +02:00
Corinna Vinschen c920bf0b01 Reformat some too-long lines
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2016-06-27 18:00:56 +02:00
Corinna Vinschen 532ecdd36f Add comment to point out missing access right per documentation
In get_mem_values we open the process without PROCESS_VM_READ access
and are *still* able to request working set information, despite
MSDN claiming we need it for this purpose.  Instead of adding this
access right, just add an comment to point this out for now.

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2016-06-27 18:00:01 +02:00
Corinna Vinschen ba58e5f20c Use PROCESS/THREAD_QUERY_LIMITED_INFORMATION where appropriate
Using PROCESS/THREAD_QUERY_INFORMATION may limit the number of
processes/threads we can inspect depending on their integrity level.

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2016-06-27 17:56:16 +02:00
Corinna Vinschen d21b63594c Set supported Windows release to Windows 10
This affects setting _WIN32_WINNT and WINVER.

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2016-06-27 17:51:41 +02:00
Corinna Vinschen b6693e7c17 Remove pre-Vista considerations from utilities
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2016-06-27 17:50:25 +02:00
Kuba Sejdak 673dd34823 Phoenix-RTOS: Adjust network-related headers to new kernel API. 2016-06-27 13:23:35 +02:00
Kuba Sejdak 6325dbb30f Phoenix-RTOS: Add dummy implementation of fdatasync() syscall. 2016-06-27 13:23:35 +02:00
Kuba Sejdak 3302072436 Add dummy implementation of getentropy(), if_nametoindex() and if_indextoname() functions. 2016-06-27 13:23:35 +02:00
Kuba Sejdak 75c98c35c3 Phoenix-RTOS: Implement daemon() function. 2016-06-27 13:23:35 +02:00
Kuba Sejdak 0601c03109 Phoenix-RTOS: Add checking EOF in getmntent(). 2016-06-27 13:23:34 +02:00
Kuba Sejdak cd169e629a Phoenix-RTOS: Provide __progname symbol for user-space apps. 2016-06-27 13:23:34 +02:00
Kuba Sejdak e5e0bd38d2 Phoenix-RTOS: Fix warning with pointer treated as integer. 2016-06-27 13:23:34 +02:00
Kuba Sejdak ab92a06cd4 Phoenix-RTOS: Add <netpacket/packet.h> header and import <net/if_arp.h> header from FreeBSD. 2016-06-27 13:23:34 +02:00
Kuba Sejdak 4473035feb Phoenix-RTOS: Provide daemon() and fdatasync() syscalls in <sys/unistd.h>. 2016-06-27 13:23:34 +02:00