Jeff Johnston [Tue, 20 Jun 2000 18:34:57 +0000 (18:34 +0000)]
Tue Jun 20 14:30:00 2000 Jeff Johnston <jjohnstn@cygnus.com>
* libc/include/sys/reent.h (_rand_next): Added __extension__
qualifier as long long type is not strict ANSI.
* libc/stdlib/rand.c (rand): Added __extension__ qualifier
to long long constant.
Corinna Vinschen [Mon, 19 Jun 2000 17:36:30 +0000 (17:36 +0000)]
* dcrt0.cc: Add load statements for `GetSidIdentifierAuthority'
and `RegLoadKeyA'.
* registry.cc (get_registry_hive_path): New function.
(load_registry_hive): Ditto.
* security.cc (convert_sid_to_string_sid): New function.
(get_ssid): Renamed to `convert_string_sid_to_sid'.
(get_pw_sid): Call `convert_string_sid_to_sid' instead of `get_ssid'.
(get_gr_sid): Ditto.
(get_admin_sid): Ditto.
(get_system_sid): Ditto.
(get_creator_owner_sid): Ditto.
(get_world_sid): Ditto.
* shared.h: New prototypes for `get_registry_hive_path' and
`load_registry_hive'.
* spawn.cc (spawn_guts): Set child->psid to NULL to force calling
`internal_getlogin' from child process in case of changing user context.
Call `load_registry_hive' in case of changing user context.
(_spawnve): Copy user infos only if user context remains the same.
* uinfo.cc: Add load statement for `NetUserGetInfo'.
Remove load statement for `NetGetDCName'.
(internal_getlogin): Rewrite to speed up process startup
and to correct user environment in case user context changes.
(uinfo_init): Call internal_getlogin only if myself->psid is NULL,
that is user context changes.
* winsup.h: Add prototypes for `convert_sid_to_string_sid',
`convert_string_sid_to_sid' and `get_pw_sid'.
* configure.in: Detect "cross-hosting" situation and set appropriate variables
in Makefile to avoid building excess stuff.
* configure: Regenerate.
* Makefile.in: Accomodate above change.
* Makefile.in: Just use library files from this tree when building cygrun.exe.
* path.cc (chdir): Don't set cache to offending chdir. Change comment to
reflect current reality.
Corinna Vinschen [Fri, 16 Jun 2000 19:36:07 +0000 (19:36 +0000)]
* cygwin.din: Define symbols for `cygwin_logon_user' and
`cygwin_set_impersonation_token'.
* dcrt0.cc (dll_crt0_1): Eliminate superfluous conditional
statements.
Add load statements for `ImpersonateLoggedOnUser', `LogonUserA'
and `RevertToSelf'.
* fork.cc (fork): Care for correct impersonation of parent
and child process.
* security.cc (cygwin_set_impersonation_token): New function.
(cygwin_logon_user): Ditto.
shared.h (class pinfo): New members `orig_uid', `orig_gid',
`real_uid' nad `real_gid'.
spawn.cc (spawn_guts): Care for impersonation when starting
child process in a different user context.
* syscalls.cc (setgid): Call `setegid' now. Set real_gid.
(setuid): Call `seteuid' now. Set real_uid.
(seteuid): Functionality moved from setuid to here. Care for
correct impersonation.
(setegid): Functionality moved from setgid to here.
* uinfo.cc (uinfo_init): Initialization of additional pinfo
members.
(getuid): Return real uid.
(getgid): Return real gid.
(geteuid): Return effective uid.
(getegid): Return effective gid.
include/sys/cygwin.h: Add prototypes for `cygwin_logon_user' and
`cygwin_set_impersonation_token'.
include/cygwin/version.h: Bumb API minor version to 22.
H.J. Lu [Thu, 15 Jun 2000 20:47:02 +0000 (20:47 +0000)]
2000-06-15 H.J. Lu <hjl@gnu.org>
* sort.h: New file. Impored from gcc.
* hashtab.h: Updated from from gcc.
2000-06-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* demangle.h (demangling_styles): Remove trailing comma in enum.
* dyn-string.h (dyn_string_append_char): Change parameter from
char to int.
2000-06-04 Alex Samuel <samuel@codesourcery.com>
* dyn-string.h: Move here from gcc/dyn-string.h. Add new functions.
* demangle.h (DMGL_GNU_NEW_ABI): New macro.
(DMGL_STYLE_MASK): Or in DMGL_GNU_NEW_ABI.
(current_demangling_style): Add gnu_new_abi_demangling.
(GNU_NEW_ABI_DEMANGLING_STYLE_STRING): New macro.
(GNU_NEW_ABI_DEMANGLING): Likewise.
(cplus_demangle_new_abi): New declaration.
"Installation using the setup.exe program": minor note not to mess with
default mounts.
"Adding or updating packages": full instructions now, not just links to ml.
New:
subsection "Problems running setup.exe"
subsubsection "Error message: "Unable to retrieve the list of cygwin mirrors...""
subsubsection "System hangs when unpacking tar archives"
* thread.h: Shorten "current_directory" variables to "cwd_*" throughout.
* path.cc: Ditto.
(normalize_posix_path): Add some extra debugging info.
(chdir): Ditto. Store chdir'ed posix and MS-DOS directory names in "cache"
here rather than trying to derive them later.
Jeff Johnston [Fri, 9 Jun 2000 18:50:05 +0000 (18:50 +0000)]
Fri Jun 9 14:28:00 2000 Jeff Johnston <jjohnstn@cygnus.com>
* libc/include/sys/reent.h (_rand_next): Changed to
unsigned long long and moved to end of _reent struct in _new union.
(_REENT_INIT): Changed to move _rand_next initialization.
* libc/stdlib/rand.c (rand): Changed to use unsigned long long
linear congruential algorithm that is used by DJGPP.
path.cc (mount_info::init): Eliminate the mount_slash feature.
(mount_slash): Eliminated.
(mount_info::read_mounts): Eliminate looking up existing entries. The
loop for deleting cygpath entries is done only when such entries exist.
(mount_info::from_registry): Eliminate sorting.
(mount_info::add_item): Call add_reg_mount if necessary. Check nmounts
more precisely. Use strcasematch in looking up existing entries.
(mount_info::del_item): Call del_reg_mount if necessary. Use
strcasematch. Use memmove instead of memcpy.
(mount_info::import_v1_registry): Everything is done in this method.
(mount_info::to_registry): Eliminated.
(mount_info::from_v1_registry): Eliminated.
(cygwin_umount): Simply call del_item.
shared.h: Modify the declaration of add_item and del_item. Remove the
declaration of from_v1_registry.
mount.cc (error): New function to report an error and exit.
umount.cc (error): Ditto.
(remove_all_automounts): Check return status of cygwin_umount.
(remove_all_user_mounts): Ditto.
(remove_all_system_mounts): Ditto.
Major update to "Where can I get more information?" section. Now includes:
- Posting guidelines
- Pointers to User's Guide, API Reference, USENIX paper
- Pointer to alternate searchable mail archive (www.delorie.com)
- Addresses for commercial & CD-ROM inquiries
* Makefile.in: Remove libadvapi32.a.
* autoload.h: Add additional field to autoload block for handling unimplemented
functions.
(LoadDLLfuncEx): New function which accepts additional parameter for
controlling unimplemented function behavior.
(LoadDLLfunc): Use LoadDLLfuncEx.
* dcrt0.cc: Use new arguments for LoadDLLfunc. Add advapi32 routines.
(noload): Rewrite in assembler. Handle new unimplemented function type.
* exceptions.cc: Eliminate another vestige of StackWalk stuff.
* net.cc: Use new arguments for LoadDLLfunc.
* uinfo.cc: Ditto.
* config.h.in: Remove obsolete define.
* path.h (isdrive): New macro.
* dcrt0.cc (globify): Use new macro to determine if a string refers to an
MS-DOS drive.
* environ.cc (winenv): Ditto.
* spawn.cc (find_exec): Ditto.
* path.cc (get_raw_device_number): Ditto.
(mount_info::conv_to_posix_path): Ditto.
(chdir): Ditto.
(cygwin_posix_path_list_p): Ditto.
(cygwin_split_path): Ditto.
(path_conv::check): Move tmp_buf to beginning of function since it can be used
earlier in the loop. Use tmp_buf rather than 'root' to hold root information.
(mount_info::conv_to_win32_path): Add trailing slash to end of mount path when
it translates to a drive. Add defensive code to avoid writing beyond the end
of 'dst'.
DJ Delorie [Tue, 23 May 2000 23:52:50 +0000 (23:52 +0000)]
* syscalls.cc (_cygwin_istext_for_stdio): New, for newlib
* include/cygwin/version.h: Bump API number for detect old
programs using old getc/putc macros
DJ Delorie [Tue, 23 May 2000 23:51:54 +0000 (23:51 +0000)]
* libc/stdio/stdio.c (__stextmode): new, see if file is text mode
(__sread): always read in binary mode
(__swrite): always write in binary mode
* libc/include/stdio.h: no getc/putc macros for cygwin; causes
compatibility issues with different dll versions
* libc/stdio/fopen.c: use __stextmode
* libc/stdio/fdopen.c: ditto
* libc/stdio/freopen.c: ditto
* libc/stdio/findfp.c: set up __SCLE for std{in,out,err}
* libc/stdio/local.h: declare __stextmode