* libc/include/sys/unistd.h: Guard getopt.h call to force only declaration of
getopt and avoid getopt_long declaration.
* libc/sys/cygwin/include/unistd.h: Remove.
* path.h (PATH_LNK): New enum val.
(path_conv::is_lnk_symlink): New function. True if path represents .lnk style
symlink.
* path.cc (check_shortcut): Set PATH_LNK in pflags when appropriate.
(symlink_info::check): Ditto. Remove PATH_LNK from pflags initially.
* syscalls.cc (unlink): Always remove readonly attribute from a symlink
regardless of type.
(link): (from Corinna Vinschen) Allow links to symlinks. Reset attributes on a
symlink after successful link creation.
(chmod): Use is_lnk_symlink where appropriate.
(rename): Ditto.
* tty.cc (create_tty_master): Call GetComputerName instead of
cygwin_gethostname. Set ut_id.
* syscalls.cc (login): Call endutent.
(setutent): Do not seek after a fresh open.
* configure.host: Define stdio64_dir for Cygwin.
* libc/include/stdio.h: Change definition of fpos_t to fulfill
Cygwin 64bit file access requirements.
Drop definition of f*64() functions when compiled for Cygwin.
* libc/include/sys/config.h: Define __LARGE64_FILES for Cygwin.
* libc/reent/lseek64r.c: Use _off64_t instead of off64_t.
* libc/stdio64/local64.h: Use _fpos64_t instead of fpos64_t.
* fhandler.h (fhandler_tty_slave::close): Declare new function.
(fhandler_tty_slave::dup): Declare new function.
(fhandler_tty_slave::fixup_after_function): Declare new function.
* fhandler_tty.cc (fhandler_tty_slave_open): Only increment
fhandler_console::open_fhs when associated with a pty.
(fhandler_tty_slave::close): Define new function. Decrement
fhandler_console::open_fhs when associated with a pty.
(fhandler_tty_slave::dup): Define new function. Increment
fhandler_console::open_fhs when associated with a pty.
(fhandler_tty_slave::fixup_after_fork): Define new function. Increment
fhandler_console::open_fhs when associated with a pty.
Joern Rennecke [Mon, 3 Mar 2003 21:03:58 +0000 (21:03 +0000)]
Fix sh-elf linker relaxation:
gcc:
* config/sh/sh.h (EXTRA_SPECS): Add subtarget_asm_relax_spec and
subtarget_asm_isa_spec.
(SUBTARGET_ASM_RELAX_SPEC, SUBTARGET_ASM_ISA_SPEC): Define.
(ASM_SPEC): Define as SH_ASM_SPEC.
(SH_ASM_SPEC): New; take the role of ASM_SPEC, but safe from svr4.h.
Use subtarget_asm_relax_spec and subtarget_asm_isa_spec.
* config/sh/elf.h (ASM_SPEC): Use SH_ASM_SPEC.
(SUBTARGET_ASM_ISA_SPEC): Undef / define.
gcc/testsuite:
gcc.dg/sh-relax.c: New test.
include/elf:
* sh.h (EF_SH_MERGE_MACH): Make sure SH2E & SH3/SH3E merge to SH3E,
and SH2E & SH4 merge to SH4, not SH2E.
gas:
* config/tc-sh.c (sh_dsp): Replace with preset_target_arch.
(md_begin): Use preset_target_arch.
(md_longopts): Make isa option unconditional.
(md_parse_option): Make OPTION_DSP and OPTION_ISA sh4 / any
set preset_target_arch.
(md_apply_fix3): If BFD_ASSEMBLER, adjust SWITCH_TABLE fixups
by -S_GET_VALUE (fixP->fx_subsy).
(tc_gen_reloc): For SWITCH_TABLE fixups, the symbol is fixp->fx_subsy,
and the addend is 0.
Adjust addend of R_SH_IND12W relocations by fixp->fx_offset - 4.
* config/tc-sh.h (TC_FORCE_RELOCATION_SUB_LOCAL): Define.
bfd:
elf32-sh.c (sh_elf_howto_tab): Make R_SH_IND12W into an ordinary
relocation (no special function), and make it non-partial_inplace.
(sh_elf_relax_section): When creating a bsr, use a consistent value
no matter if the symbol is extern or not; set addend to -4.
Don't swap load / non-load instructions for SH4.
(sh_elf_relax_delete_bytes): In R_SH_IND12W case, check the offset
rather than if the symbol is external to determine if adjusting the
offset makes sense. Adjust the addend too if appropriate.
(sh_elf_relocate_section): In R_SH_IND12W, don't fiddle with the
relocation.
* dll_init.cc (dll_list::load_after_fork): Don't revert to LoadLibrary if
LoadLibraryEx fails.
* dtable.cc (dtable::dec_console_fds): Eliminate.
(dtable::release): Don't treat console specially.
(dtable::build_fhandler): Ditto.
* dtable.h (console_fds): Eliminate.
(dtable::dec_console_fds): Eliminate.
(dtable::inc_console_fds): Eliminate.
* fhandler.h (fhandler_console::open_fhs): New static element.
* fhandler_console.cc (fhandler_console::open): Increment open_fs.
(fhandler_console::close): Call FreeConsole if no more open consoles and ctty
is not associated with the console.
* syscalls.cc (setsid): Simplify check for when to call FreeConsole.
(check_pty_fds): Eliminate definition.
* winsup.h (check_pty_fds): Eliminate declaration.
2003-03-02 Aaron W LaFramboise <AWLaFramboise@aol.com>
* mingwex/stdio: New directory
* mingwex/stdio/vfscanf.c: New file.
* mingwex/stdio/vfwscanf.c: New file.
* mingwex/stdio/vscanf.c: New file.
* mingwex/stdio/vsscanf.c: New file.
* mingwex/stdio/vswscanf.c: New file.
* mingwex/stdio/vwscanf.c: New file.
Pierre Humblet [Sat, 1 Mar 2003 16:38:26 +0000 (16:38 +0000)]
2003-03-01 Pierre Humblet <pierre.humblet@ieee.org>
* mkpasswd.cc (main): On Win95, output both a default line and a
line for the current user (if known) with a pseudorandom uid. If
the -u switch is given, produce a line for the specified user.
* mkgroup.cc (main): On Win95 change the group name from "unknown" to
"all".
* Makefile.in (cygcheck.o): Fix so that actual mingw include files are used.
* cygcheck.cc (find_on_path): Translate from cygwin path when qualified path
name found.
(pretty_id): New function. Dump output of id command.
(dump_sysinfo): Call pretty_id for CYGWIN=ntsec and CYGWIN=nontsec cases.
Corinna Vinschen [Thu, 27 Feb 2003 21:41:28 +0000 (21:41 +0000)]
2003-03-27 Corinna Vinschen <corinna@vinschen.de>
* fhandler_socket.cc (class sock_event): New class managing Winsock
events for interruptible socket calls.
(fhandler_socket::connect): Move support for interruptible call to
class sock_event. Use class object instead.
(fhandler_socket::accept): Ditto. Remove useless casts.
2003-03-27 Thomas Pfaff <tpfaff@gmx.net>
* fhandler_socket.cc (fhandler_socket::connect): Add support for
an interruptable connect.
* syslog.cc (syslog): Do not print the Windows pid. Print the Cygwin pid as an
unsigned decimal. On Win95 print a timestamp and attempt to lock the file up
to four times in 3 ms.
Earnie Boyd [Fri, 21 Feb 2003 21:12:29 +0000 (21:12 +0000)]
Thanks to David Frasier <davidf@sjsoft.com> who inspired portions of
this patch.
* Makefile.in (libmsvcrtd.a): Add target library.
(libmoldnamed.a): Ditto.
(msvcrt.def, msvcrtd.def, msvcrt20.def, msvcrt40.def): Use msvcrt.def.in
template to create.
($(srcdir)): Remove explicit reference for depencies of object targets.
* moldname.def, moldname-msvcrt.def, moldname-crtdll.def, msvcrt.def,
msvcrt20.def, msvcrt40.def: Remove.
* msvcrt.def.in: New file (Copy of previous msvcrt.def).
Corinna Vinschen [Fri, 21 Feb 2003 14:59:35 +0000 (14:59 +0000)]
* fhandler_socket.cc (fhandler_socket::fhandler_socket): Fix compiler
warning.
(fhandler_socket::fstat): Simplify. Set st_uid/st_gid to effective
uid/gid of current process in case of open sockets.
Corinna Vinschen [Fri, 21 Feb 2003 14:29:18 +0000 (14:29 +0000)]
* dtable.cc (dtable::build_fhandler_from_name): Set some fhandler
data on sockets to evaluate AF_LOCAL sockets correctly.
(dtable::build_fhandler): Set unit number on sockets.
* fhandler.h (fhandler_socket): Add unit number.
(fhandler_socket::get_unit): New method.
* fhandler_socket.cc (fhandler_socket::fhandler_socket): Set unit
number.
(fhandler_socket::fstat): Reorganize to return more Linux-like
values.
* net.cc: include ctype.h.
(fdsock): Set unit number when building fhandler.
* path.cc (path_conv::check): Set device type to FH_SOCKET if file
is a AF_UNIX socket.
(get_devn): Evaluate unit for virtual socket devices.
(win32_device_name): Set windows path for sockets to unix_path with
just backslashes to keep the different names.
* syscalls.cc (fstat64): Don't override st_ino, st_dev and st_rdev
for sockets.
(stat_worker): Ditto.
From Pierre Humblet:
* autoload.cc (AccessCheck): Add.
(DuplicateToken): Add.
* security.h (check_file_access): Declare.
* syscalls.cc (access): Convert path to Windows, check existence
and readonly attribute. Call check_file_access instead of acl_access.
* security.cc (check_file_access): Create.
* sec_acl (acl_access): Delete.
* fhandler.cc (fhandler_base::open): Move some filesystem specific stuff.
(fhandler_disk_file::open): Accept some filesystem specific stuff.
* sigproc.cc (wait_for_sigthread): Become slightly more thread safe.
(sig_send): Don't assume that signal thread is ready.
DJ Delorie [Fri, 21 Feb 2003 01:55:12 +0000 (01:55 +0000)]
* Makefile.tpl: Add definition of CPPFLAGS to pass into
configure-target-* as some target builds may require additional
flags for preprocessor tests.
* Makefile.in: Regenerated.
Corinna Vinschen [Thu, 20 Feb 2003 11:12:44 +0000 (11:12 +0000)]
* autoload.cc (GetCompressedFileSize): Add.
* fhandler_disk_file.cc (fhandler_disk_file::fstat_helper): Compute
st_blocks value from GetCompressedFileSize() if available.
Corinna Vinschen [Thu, 20 Feb 2003 10:14:53 +0000 (10:14 +0000)]
w32api:
* include/winioctl.h (FSCTL_SET_SPARSE): Define.
cygwin:
* wincap.h (wincaps::supports_sparse_files): New flag.
(wincapc::supports_sparse_files): New method.
* wincap.cc (wincap_unknown): Define value for the new flag.
(wincap_95): Ditto.
(wincap_95osr2): Ditto.
(wincap_98): Ditto.
(wincap_98se): Ditto.
(wincap_me): Ditto.
(wincap_nt3): Ditto.
(wincap_nt4): Ditto.
(wincap_nt4sp4): Ditto.
(wincap_2000): Ditto.
(wincap_xp): Ditto.
* path.h (path_conv::fs_flags): New method.
* fhandler_disk_file.cc: Include winioctl.h for DeviceIoControl.
(fhandler_disk_file::open): Set newly created and truncated files as
sparse on platforms that support it.
Alexandre Oliva [Thu, 20 Feb 2003 02:09:58 +0000 (02:09 +0000)]
* libtool.m4 (LD): Append -melf* option to LD on IRIX with GNU ld.
* ltconfig: Handle it.
* ltcf-cxx.sh: Use with_gnu_ld passed as a shell variable instead of
auto-detecting it.
Alexandre Oliva [Thu, 20 Feb 2003 01:12:28 +0000 (01:12 +0000)]
* libtool.m4 (LD): Append -melf* option to LD on IRIX with GNU ld.
* ltconfig: Handle it.
* ltcf-cxx.sh: Use with_gnu_ld passed as a shell variable instead of
auto-detecting it.