* Makefile.in (DLL_OFILES): Add newly-imported random.o. Eliminate reliance on
libiberty.
* random.cc: Import from FreeBSD. Modify for Cygwin environment.
* include/cygwin/stdlib.h (random): Reflect change in return value to be more
linux/freebsd-like.
(srandom): Ditto.
Preliminary change to make fifos/pipes interruptible and fifos reliable.
* dtable.cc (dtable::find_fifo): Eliminate definition.
* dtable.h (dtable::find_fifo): Ditto for declaration.
* fhandler.cc (fhandler_base::raw_read): Remove pipe-specific stuff.
(fhandler_base::fhandler_base): Ditto.
(fhandler_base::close): Handle overlapped I/O structure if appropriate.
(fhandler_base::dup): Ditto.
(fhandler_base::fork_fixup): Ditto.
(fhandler_base::setup_overlapped): Define new function.
(fhandler_base::destroy_overlapped): Ditto.
(fhandler_base::wait_overlapped): Ditto.
(fhandler_base::read_overlapped): Ditto.
(fhandler_base::write_overlapped): Ditto.
* fhandler.h (fhandler_base::get_overlapped): Declare new function.
(fhandler_base::setup_overlapped): Ditto.
(fhandler_base::destroy_overlapped): Ditto.
(fhandler_base::wait_overlapped): Ditto.
(fhandler_base::read_overlapped): Ditto.
(fhandler_base::write_overlapped): Ditto.
(fhandler_base::get_guard): Eliminate.
(fhandler_pipe::*): Rework to eliminate most Win9x related cruft, removing many
variables and defining a new overlapped capability.
(fhandler_fifo::*): Ditto.
(fifo_state): Declare new enum.
* fhandler_fifo.cc (fhandler_fifo::fhandler_fifo): Remove old Win9x stuff.
Initialize overlapped handle to NULL.
(fhandler_fifo::set_use): Eliminate.
(fhandler_fifo::open_nonserver): Define.
(fhandler_fifo::open): Rework to use named pipes and overlapped I/O.
(fhandler_fifo::wait): Define new function to wait for named pipe connection.
(fhandler_fifo::read): Rework to use wait() and new overlapped I/O
functionality.
(fhandler_fifo::write): Ditto.
(fhandler_fifo::dup): Eliminate.
* pinfo.cc (commune_process): Remove fifo handling.
(_pinfo::commune_request): Ditto.
* pinfo.h (picom): Ditto.
* pipe.cc (fhandler_pipe::fhandler_pipe): Remove Win9x stuff. Initialize
overlapped handle to NULL.
(fhandler_pipe::open): Eliminate Win9x stuff.
(fhandler_pipe::set_close_on_exec): Eliminate.
(read_pipe): Eliminate.
(fhandler_pipe::close): Ditto.
(fhandler_pipe::fixup_after_exec): Ditto.
(fhandler_pipe::fixup_in_child): Ditto.
(fhandler_pipe::read): Rework to use overlapped I/O.
(fhandler_pipe::write): New function using overlapped I/O.
(fhandler_pipe::dup): Rework to eliminate Win9x stuff.
(fhandler_pipe::create_selectable): Rework to eliminate Win9x and use
overlapped I/O.
* select.cc (peek_pipe): Rework to eliminate Win9x stuff and use overlapped
I/O.
(fhandler_base::ready_for_read): Ditto.
binutils:
* readelf.c (display_gnu_attribute): New.
(process_arm_specific): Rearrange as process_attributes.
(process_arm_specific): Replace by wrapper of process_attributes.
gas:
* as.c (create_obj_attrs_section): New.
(main): Call create_obj_attrs_section for ELF.
* read.c (s_gnu_attribute, skip_whitespace, skip_past_char,
skip_past_comma, s_vendor_attribute): New.
(potable): Add gnu_attribute for ELF.
* read.h (s_vendor_attribute): Declare.
* config/tc-arm.c (s_arm_eabi_attribute): Replace by wrapper
round s_vendor_attribute.
(aeabi_set_public_attributes): Update for new attributes
interfaces.
(arm_md_end): Remove attributes contents setting now done
generically.
Corinna Vinschen [Fri, 29 Jun 2007 15:13:01 +0000 (15:13 +0000)]
* cygwin.din: Export fdopendir.
* dir.cc (opendir): Call fhandler's opendir with fd set to -1.
(fdopendir): New function.
(seekdir64): Use dirent_info_mask.
(rewinddir): Ditto.
(closedir): Only release underlying file descriptor if it has been
reserved by opendir itself.
* fhandler.cc (fhandler_base::opendir): Accommodate new parameter.
* fhandler.h (dirent_states): Add dirent_valid_fd and dirent_info_mask.
(fhander_XXX::opendir): Add file descriptor parameter. Use regparms.
(fhandler_procnet::opendir): Drop declaration.
* fhandler_disk_file.cc (fhandler_disk_file::opendir): Ditto.
If called from fdopendir, use existing handle to re-open directory
with valid flags. Rename fd to cfd. Use only if no valid incoming fd.
(fhandler_cygdrive::opendir): Accommodate new parameter.
* fhandler_process.cc (fhandler_process::opendir): Ditto.
* fhandler_procnet.cc (fhandler_procnet::opendir): Drop definition.
* fhandler_virtual.cc (fhandler_virtual::opendir): Accommodate new
parameter. Only create new file descriptor entry if called from
opendir. Remove duplicated setting of dir->__flags.
* posix.sgml: Add fdopendir to list of implemented Solaris functions.
* include/cygwin/version.h: Bump API minor number.
* include/sys/dirent.h: Declare fdopendir.
Corinna Vinschen [Fri, 29 Jun 2007 07:36:54 +0000 (07:36 +0000)]
* cygwin-api.in.sgml: Remove authorgroup and revhistory.
* cygwin-ug.in.sgml: Add Joshua Daniel Franklin to authorgroup.
Remove revhistory.
* legal.sgml: Update dates.
Corinna Vinschen [Thu, 28 Jun 2007 17:55:01 +0000 (17:55 +0000)]
* cygwin.din: Export stpcpy, stpncpy.
* posix.sgml: Add stpcpy and stpncpy to list of implemented
GNU extensions.
* include/cygwin/version.h: Bump API minor number.
Danny Smith [Thu, 28 Jun 2007 07:13:04 +0000 (07:13 +0000)]
* msvcrt.def.in: Update comment.
Exclude _ctype stub if using msvcr71.dll or newer.
* include/ctype.h: Don't declare _ctype if using msvcr71.dll or newer.
* include/wctype.h: Likewise.
Corinna Vinschen [Wed, 27 Jun 2007 17:08:19 +0000 (17:08 +0000)]
* shared_info.h (SHARED_INFO_CB): Accommodate change to shared_info.
(CURR_SHARED_MAGIC): Ditto.
(class shared_info): Add heap_slop_inited member.
* shared.cc (shared_info::heap_slop_size): Use heap_slop_inited to
track initializing heap_slop since 0 is a valid value for heap_slop.
Drop useless < 0 consideration.
Eric Blake [Wed, 27 Jun 2007 12:46:35 +0000 (12:46 +0000)]
* assert.cc (__assert_func): New function, to match newlib header
change.
* cygwin.din: Export __assert_func.
* include/cygwin/version.h: Bump API minor number.
Eric Blake [Wed, 27 Jun 2007 12:44:41 +0000 (12:44 +0000)]
Support __func__ in assert, as required by C99.
* libc/stdlib/assert.c (__assert_func): New function.
(__assert): Use __assert_func.
* libc/include/assert.h (assert) [!NDEBUG]: Use __assert_func when
possible.
Corinna Vinschen [Thu, 21 Jun 2007 15:57:54 +0000 (15:57 +0000)]
* autoload.cc (WSAIoctl): Remove.
* cygwin.din: Export freeifaddrs, getifaddrs.
* fhandler_socket.cc (fhandler_socket::ioctl): Drop SOCKET parameter
from get_ifconf.
* net.cc: Include ifaddrs.h.
(in_are_prefix_equal): Match addresses in network byte order.
(ip_addr_prefix): Convert address into host byte order before
testing with IN_LOOPBACK.
(struct ifall): Define.
(get_xp_ifs): Replace get_xp_ifconf. Return struct ifall array.
(get_2k_ifs): Ditto, replace get_2k_ifconf.
(get_nt_ifs): Ditto, replace get_nt_ifconf.
(getifaddrs): New function.
(freeifaddrs): New function.
(get_ifconf): Call matching get_XX_ifs function and create
ifc content from here. Drop lo fake since it's now in get_nt_ifs.
* posix.sgml: Add freeifaddrs and getifaddrs to list of implemented
BSD functions.
* wincap.h (wincapc::has_broken_if_oper_status): New element.
* wincap.cc: Implement above element throughout.
* include/ifaddrs.h: New file.
* include/cygwin/version.h: Bump API minor number.
Jeff Johnston [Wed, 20 Jun 2007 21:53:01 +0000 (21:53 +0000)]
2007-06-20 Patrick Mansfield <patmans@us.ibm.com>
* spu/jsre.h: Add JSRE_MKSTEMP and JSRE_MKTEMP values.
* spu/mkstemp.c: New file to add mkstemp support via assist call.
* spu/mktemp.c: New file to add mktemp support via assist call.
* spu/Makefile.in: Add mkstemp.o and mktemp.o
Jeff Johnston [Wed, 20 Jun 2007 21:50:53 +0000 (21:50 +0000)]
2007-06-20 Patrick Mansfield <patmans@us.ibm.com>
* spu/jsre.h: Add new JSRE opcodes.
* spu/dup2.c: New file to add dup2 support via assist call.
* spu/fdatasync.c: New file to add fdatasync support via assist call.
* spu/fsync.c: New file to add fsync support via assist call.
* spu/lockf.c: New file to add lockf support via assist call.
* spu/sync.c: New file to add sync support via assist call.
* spu/truncate.c: New file to add truncate support via assist call.
* spu/Makefile.in: Add new files.
Jeff Johnston [Wed, 20 Jun 2007 21:44:54 +0000 (21:44 +0000)]
2007-06-20 Patrick Mansfield <patmans@us.ibm.com>
* spu/jsre.h: JSRE_LINK, JSRE_SYMLINK and JSRE_READLINK.
* spu/link.c: New file to add link support via an assist call.
* spu/readlink.c: New file to add readlink support via an assist call.
* spu/symlink.c: New file to add symlink support via an assist call.
* spu/Makefile.in: Add new files.
Jeff Johnston [Wed, 20 Jun 2007 21:41:33 +0000 (21:41 +0000)]
2007-06-20 Patrick Mansfield <patmans@us.ibm.com>
* spu/jsre.h: Add JSRE_LSTAT.
* spu/lstat.c: New file add lstat support via an assist call.
* spu/conv_stat.c: New file, add common stat conversion code.
* spu/fstat.c: Use __conv_stat.
* spu/stat.c: Use __conv_stat.
* spu/Makefile.in: Add conv_stat.o and lstat.o.
Jeff Johnston [Wed, 20 Jun 2007 17:28:09 +0000 (17:28 +0000)]
2007-06-20 Patrick Mansfield <patmans@us.ibm.com>
* spu/jsre.h: Add defines for new assist calls.
* spu/chdir.c: New file, support chdir via assist call.
* spu/chmod.c: New file, support chmod via assist call.
* spu/chown.c: New file, support chown via assist call.
* spu/fchdir.c: New file, support fchdir via assist call.
* spu/fchmod.c: New file, support fchmod via assist call.
* spu/fchown.c: New file, support fchown via assist call.
* spu/lchown.c: New file, support lchown via assist call.
* spu/mkdir.c: New file, support mkdir via assist call.
* spu/mknod.c: New file, support mknod via assist call.
* spu/rmdir.c: New file, support rmdir via assist call.
* spu/Makefile.in: Add new files.
Jeff Johnston [Wed, 13 Jun 2007 17:55:28 +0000 (17:55 +0000)]
2007-06-13 Patrick Mansfield <patmans@us.ibm.com>
* libc/machine/spu/creat.c: New file copied from libc/posix/creat.c,
it just calls open with appropriate arguments.
* libc/machine/spu/Makefile.am: Add creat.c.
* libc/machine/spu/Makefile.in: Regenerate.
Jeff Johnston [Wed, 13 Jun 2007 17:44:24 +0000 (17:44 +0000)]
2007-06-13 Patrick Mansfield <patmans@us.ibm.com>
* libc/include/sys/features.h: Define _POSIX_TIMERS for spu.
* libc/include/sys/unistd.h: Change usleep prototype to Posix
form and move outside of OS flag checks.
* libc/machine/spu/Makefile.am: Add sleep and usleep.
* libc/machine/spu/Makefile.in: Regenerate.
* libc/machine/spu/sleep.c: Copy libc/posix/sleep.c.
* libc/machine/spu/usleep.c: Copy libc/posix/usleep.c.
Corinna Vinschen [Mon, 11 Jun 2007 17:38:27 +0000 (17:38 +0000)]
* cygwin.din (confstr): Export.
* posix.sgml (confstr): Move to list of implemented SUSv3 functions.
* sysconf.cc (confstr): Implement.
* include/cygwin/version.h: Bump API minor number.
Bob Wilson [Mon, 11 Jun 2007 16:53:08 +0000 (16:53 +0000)]
bfd/
* elf32-xtensa.c (extend_ebb_bounds_forward): Use renamed
XTENSA_PROP_NO_TRANSFORM flag instead of XTENSA_PROP_INSN_NO_TRANSFORM.
(extend_ebb_bounds_backward, compute_text_actions): Likewise.
(compute_ebb_proposed_actions, coalesce_shared_literal): Likewise.
(xtensa_get_property_predef_flags): Likewise.
(compute_removed_literals): Pass new arguments to is_removable_literal.
(is_removable_literal): Add sec, prop_table and ptblsize arguments.
Do not remove literal if the NO_TRANSFORM property flag is set.
gas/
* config/tc-xtensa.c (XTENSA_PROP_INSN_NO_TRANSFORM): Renamed to...
(XTENSA_PROP_NO_TRANSFORM): ...this.
(frag_flags_struct): Move is_no_transform out of the insn sub-struct.
(xtensa_mark_frags_for_org): New.
(xtensa_handle_align): Set RELAX_ORG frag subtype for rs_org.
(xtensa_post_relax_hook): Call xtensa_mark_frags_for_org.
(get_frag_property_flags): Adjust reference to is_no_transform flag.
(xtensa_frag_flags_combinable): Likewise.
(frag_flags_to_number): Likewise. Use XTENSA_PROP_NO_TRANSFORM.
* config/tc-xtensa.h (xtensa_relax_statesE): Add RELAX_ORG.
include/elf/
* xtensa.h (XTENSA_PROP_INSN_NO_TRANSFORM): Renamed to...
(XTENSA_PROP_NO_TRANSFORM): ...this.
ld/
* emultempl/xtensaelf.em (replace_insn_sec_with_prop_sec): Use renamed
XTENSA_PROP_NO_TRANSFORM flag instead of XTENSA_PROP_INSN_NO_TRANSFORM.
* libc/sys/mmixware/access.c (access): Do not try to use a magic
file-handle and a direct syscall, just use _open.
* libc/sys/mmixware/sys/syscall.h (TMPFNO): Remove this magic
file-handle.
* libc/sys/mmixware/_exit.c (_exit): Update comment about
passing on the exit value.
Jeff Johnston [Tue, 5 Jun 2007 19:01:30 +0000 (19:01 +0000)]
2007-06-05 Patrick Mansfield <patman@us.ibm.com>
* spu/jsre.h: Remove the assist call structs and defines that are
specific to one assist call from here.
* spu/access.c: Move struct syscall_access_t to here.
* spu/fstat.c: Move struct syscall_fstat_t to here.
* spu/ftruncate.c: Move struct syscall_ftruncate_t to here.
* spu/gettimeofday.c: Move struct syscall_gettimeofday_t to here.
* spu/lseek.c: Move struct syscall_lseek_t and JSRE_SEEK defines to
here.
* spu/open.c: Move struct syscall_open_t and JSRE_O_ defines to here.
* spu/read.c: Move struct syscall_read_t to here, and actually use
it (it is the same as syscall_write_t).
* spu/stat.c: Move struct syscall_stat_t to here.
* spu/write.c: Move struct syscall_write_t to here.
* spu/close.c: Pass the address of the first and only argument to
__send_to_ppe rather than using an automatic variable and a
special struct.
* spu/dup.c: Ditto.
* spu/unlink.c: Ditto.