Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com Date: Thu, 8 Apr 2004 16:02:23 -0400 From: Christopher Faylor To: cygwin AT cygwin DOT com Subject: Re: reentrant functions Message-ID: <20040408200223.GD931@coc.bosbc.com> Reply-To: cygwin AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com References: <20040407044353 DOT GA6805 AT panix DOT com> <20040407194643 DOT GM26558 AT cygbert DOT vinschen DOT de> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.4.1i On Thu, Apr 08, 2004 at 09:30:47PM +0200, Bas van Gompel wrote: >Op Wed, 7 Apr 2004 21:46:43 +0200 >schreef Corinna Vinschen >in <20040407194643 DOT GM26558 AT cygbert DOT vinschen DOT de> >in local.ml.cygwin: >: On Apr 6 23:43, Oleg Ostrozhansky wrote: >[...] >: > not thread-safe. But when as an example I try using _gets_r(), I'm >: > getting a link error that this function does not exist: >[...] >: Many reentrant functions from newlib are currently just not exported by >: Cygwin. Any volunteer to collect these non-exported newlib functions >: so that we can add all of them? > >---- >$ grep -oR '_[^ ]\+_r *( *struct \+_reent' .|sed 's, *(.*,,'|sort|uniq >_atoi_r >_atol_r >_atoll_r >_calloc_r >_cfree_r >_close_r >_creat_r >_execve_r >_fcloseall_r >_fcntl_r >_fgetpos64_r >_fgetpos_r >_fork_r >_free_r >_freopen64_r >_freopen_r >_fscanf_r >_fseek_r >_fseeko64_r >_fseeko_r >_fsetpos64_r >_fsetpos_r >_fstat64_r >_fstat_r >_ftell_r >_ftello64_r >_ftello_r >_getenv_r >_getpid_r >_gettimeofday_r >_iconv_close_r >_iconv_open_r >_iconv_r >_iprintf_r >_kill_r >_ldtoa_r >_link_r >_lseek64_r >_lseek_r >_mallinfo_r >_malloc_r >_malloc_stats_r >_malloc_trim_r >_malloc_usable_size_r >_mallopt_r >_mblen_r >_memalign_r >_open64_r >_open_r >_pread_r >_printf_r >_pvalloc_r >_pwrite_r >_read_r >_realloc_r >_remove_r >_rewind_r >_sbrk_r >_scanf_r >_simdldtoa_r >_sscanf_r >_stat64_r >_stat_r >_strtoll_r >_strtoull_r >_times_r >_tzset_r >_unlink_r >_valloc_r >_wait_r >_write_r >---- > >_remove_r and _stat64_r only occur in winsup/cygwin/syscalls.cc. >_fstat_r, _getpid_r and _stat_r are in winsup/cygwin/syscalls.cc >and newlib/libc. >The others are only in newlib/libc. > >Is this the info you wanted? Not really. The above list includes at least one function that are already exported by the DLL. We also do not want to export _r functions which are unique only to newlib. For instance, I suspect that _mallopt_r is probably not something that we want to export since no other UNIX has it. This is not something that will be solved by grep. It actually involves some research. cgf -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/