Hi folks,
Looked at our current posix.xml to get its timeframe ~2017, so compared POSIX
functions for POSIX Issue 7 SUS V4 TC2 2016 to POSIX Issue 8 SUS V5 2024
(html/idx/functions.html - subscribe for access).
After cleaning up editorial only changes to get differences, split those into
logs of SUS V5 functions to add and cut since TC2.
Searched those in posix.xml to get lists of those in context in the Cygwin/POSIX
logs, which need moved into (...-new.log) or out of (...-cut.log) the POSIX section.
https://cygwin.com/git/?p=newlib-cygwin.git;a=blob;f=winsup/doc/posix.xml
Used "new" log to produce a sorted list of the existing documented functions as
"SUS V5 new", and used that to produce a log (...-add.log) of POSIX functions
which need to be added to Cygwin, or documented as such if present.
Joining SUS V5 add entries with cygwin.din entries gives us ...-din.log with
additions in the DLL and ...-non.log with those not in the DLL (but may be
implemented in other libraries like gettext to add to posix.xml with Notes), or
yet to be implemented.
https://cygwin.com/git/?p=newlib-cygwin.git;a=blob;f=winsup/cygwin/cygwin.din
Differences, SUS V5 functions sorted, Cygwin POSIX Interfaces doc, and Cygwin
DLL Functions logs attached.
So it looks like we need to decide how we should do a few things:
- Move or copy the "new" entries to the SUS/POSIX section, update the
description to SUS V5 POSIX Issue 8 2024 and IEEE and ISO/IEC (almost)
Standards, update the id "std-susv4" and any refs.
Should we copy and keep original entries under their original sections or not?
Add any "din" entries; and decide if Notes are needed for any new entries?
- Move "cut" entries out of the SUS/POSIX section to deprecated interfaces
section and mark dropped from SUS V5 POSIX Issue 8 2024 (SUSv4)?
- Decide how to check if any "non" entries are available in other packages, add
Notes about them, and references in entries to add?
If not available, add to Not Implemented section?
What have I got wrong or missed, how should we proceed, anything else?
Feel free to add your 2¢, 2¥, ₤.02, €.02: all comments welcome?
--
Take care. Thanks, Brian Inglis Calgary, Alberta, Canada
La perfection est atteinte Perfection is achieved
non pas lorsqu'il n'y a plus rien à ajouter not when there is no more to add
mais lorsqu'il n'y a plus rien à retirer but when there is no more to cut
-- Antoine de Saint-Exupéry
--- susv4tc2-2016/idx/functions.html 2008-12-02
+++ susv5-html/idx/functions.html 2025-01-03
Doc Function
+CMPLX CMPLX()
+CMPLXF CMPLXF()
+CMPLXL CMPLXL()
_Exit _Exit()
+_Exit _exit()
-_exit _exit()
+_Fork _Fork()
-_longjmp _longjmp()
-_setjmp _setjmp()
-_tolower _tolower()
-_toupper _toupper()
+accept4 accept4()
+aligned_alloc aligned_alloc()
+asprintf asprintf()
+at_quick_exit at_quick_exit()
+atomic_compare_exchange_strong atomic_compare_exchange_strong()
+atomic_compare_exchange_strong_explicit
atomic_compare_exchange_strong_explicit()
+atomic_compare_exchange_weak atomic_compare_exchange_weak()
+atomic_compare_exchange_weak_explicit
atomic_compare_exchange_weak_explicit()
+atomic_exchange atomic_exchange()
+atomic_exchange_explicit atomic_exchange_explicit()
+atomic_fetch_add atomic_fetch_add()
+atomic_fetch_add_explicit atomic_fetch_add_explicit()
+atomic_fetch_and atomic_fetch_and()
+atomic_fetch_and_explicit atomic_fetch_and_explicit()
+atomic_fetch_or atomic_fetch_or()
+atomic_fetch_or_explicit atomic_fetch_or_explicit()
+atomic_fetch_sub atomic_fetch_sub()
+atomic_fetch_sub_explicit atomic_fetch_sub_explicit()
+atomic_fetch_xor atomic_fetch_xor()
+atomic_fetch_xor_explicit atomic_fetch_xor_explicit()
+atomic_flag_clear atomic_flag_clear()
+atomic_flag_clear_explicit atomic_flag_clear_explicit()
+atomic_flag_test_and_set atomic_flag_test_and_set()
+atomic_flag_test_and_set_explicit
atomic_flag_test_and_set_explicit()
+atomic_init atomic_init()
+atomic_is_lock_free atomic_is_lock_free()
+atomic_load atomic_load()
+atomic_load_explicit atomic_load_explicit()
+atomic_signal_fence atomic_signal_fence()
+atomic_store atomic_store()
+atomic_store_explicit atomic_store_explicit()
+atomic_thread_fence atomic_thread_fence()
+be16toh be16toh()
+be32toh be32toh()
+be64toh be64toh()
+bind_textdomain_codeset bind_textdomain_codeset()
+bindtextdomain bindtextdomain()
+c16rtomb c16rtomb()
+c32rtomb c32rtomb()
+call_once call_once()
+cnd_broadcast cnd_broadcast()
+cnd_destroy cnd_destroy()
+cnd_init cnd_init()
+cnd_signal cnd_signal()
+cnd_timedwait cnd_timedwait()
+cnd_wait cnd_wait()
+dcgettext dcgettext()
+dcgettext_l dcgettext_l()
+dcngettext dcngettext()
+dcngettext_l dcngettext_l()
+dgettext dgettext()
+dgettext_l dgettext_l()
+dladdr dladdr()
+dngettext dngettext()
+dngettext_l dngettext_l()
-fattach fattach()
-fdetach fdetach()
+ffsl ffsl()
+ffsll ffsll()
-ftw ftw()
+getentropy getentropy()
-getitimer getitimer()
+getlocalename_l getlocalename_l()
-getmsg getmsg()
-getpmsg getpmsg()
+getresgid getresgid()
+getresuid getresuid()
-gets gets()
-gettimeofday gettimeofday()
+gettext gettext()
+gettext_l gettext_l()
+htobe16 htobe16()
+htobe32 htobe32()
+htobe64 htobe64()
+htole16 htole16()
+htole32 htole32()
+htole64 htole64()
+in6addr_any in6addr_any
+in6addr_loopback in6addr_loopback
-ioctl ioctl()
-isascii isascii()
-isastream isastream()
+kill_dependency kill_dependency()
+le16toh le16toh()
+le32toh le32toh()
+le64toh le64toh()
+mbrtoc16 mbrtoc16()
+mbrtoc32 mbrtoc32()
+memmem memmem()
+mkostemp mkostemp()
+mtx_destroy mtx_destroy()
+mtx_init mtx_init()
+mtx_lock mtx_lock()
+mtx_timedlock mtx_timedlock()
+mtx_trylock mtx_trylock()
+mtx_unlock mtx_unlock()
+ngettext ngettext()
+ngettext_l ngettext_l()
+pipe2 pipe2()
+posix_close posix_close()
+posix_devctl posix_devctl()
+posix_getdents posix_getdents()
+posix_spawn_file_actions_addchdir
posix_spawn_file_actions_addchdir()
+posix_spawn_file_actions_addfchdir
posix_spawn_file_actions_addfchdir()
-posix_trace_attr_destroy posix_trace_attr_destroy()
-posix_trace_attr_getclockres posix_trace_attr_getclockres()
-posix_trace_attr_getcreatetime posix_trace_attr_getcreatetime()
-posix_trace_attr_getgenversion posix_trace_attr_getgenversion()
-posix_trace_attr_getinherited posix_trace_attr_getinherited()
-posix_trace_attr_getlogfullpolicy
posix_trace_attr_getlogfullpolicy()
-posix_trace_attr_getlogsize posix_trace_attr_getlogsize()
-posix_trace_attr_getmaxdatasize
posix_trace_attr_getmaxdatasize()
-posix_trace_attr_getmaxsystemeventsize
posix_trace_attr_getmaxsystemeventsize()
-posix_trace_attr_getmaxusereventsize
posix_trace_attr_getmaxusereventsize()
-posix_trace_attr_getname posix_trace_attr_getname()
-posix_trace_attr_getstreamfullpolicy
posix_trace_attr_getstreamfullpolicy()
-posix_trace_attr_getstreamsize posix_trace_attr_getstreamsize()
-posix_trace_attr_init posix_trace_attr_init()
-posix_trace_attr_setinherited posix_trace_attr_setinherited()
-posix_trace_attr_setlogfullpolicy
posix_trace_attr_setlogfullpolicy()
-posix_trace_attr_setlogsize posix_trace_attr_setlogsize()
-posix_trace_attr_setmaxdatasize
posix_trace_attr_setmaxdatasize()
-posix_trace_attr_setname posix_trace_attr_setname()
-posix_trace_attr_setstreamfullpolicy
posix_trace_attr_setstreamfullpolicy()
-posix_trace_attr_setstreamsize posix_trace_attr_setstreamsize()
-posix_trace_clear posix_trace_clear()
-posix_trace_close posix_trace_close()
-posix_trace_create posix_trace_create()
-posix_trace_create_withlog posix_trace_create_withlog()
-posix_trace_event posix_trace_event()
-posix_trace_eventid_equal posix_trace_eventid_equal()
-posix_trace_eventid_get_name posix_trace_eventid_get_name()
-posix_trace_eventid_open posix_trace_eventid_open()
-posix_trace_eventset_add posix_trace_eventset_add()
-posix_trace_eventset_del posix_trace_eventset_del()
-posix_trace_eventset_empty posix_trace_eventset_empty()
-posix_trace_eventset_fill posix_trace_eventset_fill()
-posix_trace_eventset_ismember posix_trace_eventset_ismember()
-posix_trace_eventtypelist_getnext_id
posix_trace_eventtypelist_getnext_id()
-posix_trace_eventtypelist_rewind
posix_trace_eventtypelist_rewind()
-posix_trace_flush posix_trace_flush()
-posix_trace_get_attr posix_trace_get_attr()
-posix_trace_get_filter posix_trace_get_filter()
-posix_trace_getnext_event posix_trace_getnext_event()
-posix_trace_get_status posix_trace_get_status()
-posix_trace_open posix_trace_open()
-posix_trace_rewind posix_trace_rewind()
-posix_trace_set_filter posix_trace_set_filter()
-posix_trace_shutdown posix_trace_shutdown()
-posix_trace_start posix_trace_start()
-posix_trace_stop posix_trace_stop()
-posix_trace_timedgetnext_event posix_trace_timedgetnext_event()
-posix_trace_trid_eventid_open posix_trace_trid_eventid_open()
-posix_trace_trygetnext_event posix_trace_trygetnext_event()
+ppoll ppoll()
+pthread_cond_clockwait pthread_cond_clockwait()
-pthread_getconcurrency pthread_getconcurrency()
+pthread_mutex_clocklock pthread_mutex_clocklock()
+pthread_rwlock_clockrdlock pthread_rwlock_clockrdlock()
+pthread_rwlock_clockwrlock pthread_rwlock_clockwrlock()
-pthread_setconcurrency pthread_setconcurrency()
+ptsname_r ptsname_r()
-putmsg putmsg()
-putpmsg putpmsg()
+qsort_r qsort_r()
+quick_exit quick_exit()
-rand_r rand_r()
+reallocarray reallocarray()
+secure_getenv secure_getenv()
+sem_clockwait sem_clockwait()
-setitimer setitimer()
-setpgrp setpgrp()
+setresgid setresgid()
+setresuid setresuid()
+shm_open shm_open()
+shm_unlink shm_unlink()
-shm_open shm_open()
-shm_unlink shm_unlink()
+sig2str sig2str()
-sighold sighold()
-sigignore sigignore()
-siginterrupt siginterrupt()
-sigpause sigpause()
-sigrelse sigrelse()
-sigset sigset()
+str2sig str2sig()
+strlcat strlcat()
+strlcpy strlcpy()
+tcgetwinsize tcgetwinsize()
+tcsetwinsize tcsetwinsize()
-tempnam tempnam()
+textdomain textdomain()
+thrd_create thrd_create()
+thrd_current thrd_current()
+thrd_detach thrd_detach()
+thrd_equal thrd_equal()
+thrd_exit thrd_exit()
+thrd_join thrd_join()
+thrd_sleep thrd_sleep()
+thrd_yield thrd_yield()
+timespec_get timespec_get()
-toascii toascii()
+tss_create tss_create()
+tss_delete tss_delete()
+tss_get tss_get()
+tss_set tss_set()
-ulimit ulimit()
-utime utime()
+vasprintf vasprintf()
+wcslcat wcslcat()
+wcslcpy wcslcpy()
_Fork
accept4
aligned_alloc
asprintf
at_quick_exit
atomic_compare_exchange_strong
atomic_compare_exchange_strong_explicit
atomic_compare_exchange_weak
atomic_compare_exchange_weak_explicit
atomic_exchange
atomic_exchange_explicit
atomic_fetch_add
atomic_fetch_add_explicit
atomic_fetch_and
atomic_fetch_and_explicit
atomic_fetch_or
atomic_fetch_or_explicit
atomic_fetch_sub
atomic_fetch_sub_explicit
atomic_fetch_xor
atomic_fetch_xor_explicit
atomic_flag_clear
atomic_flag_clear_explicit
atomic_flag_test_and_set
atomic_flag_test_and_set_explicit
atomic_init
atomic_is_lock_free
atomic_load
atomic_load_explicit
atomic_signal_fence
atomic_store
atomic_store_explicit
atomic_thread_fence
be16toh
be32toh
be64toh
bind_textdomain_codeset
bindtextdomain
c16rtomb
c32rtomb
call_once
CMPLX
CMPLXF
CMPLXL
cnd_broadcast
cnd_destroy
cnd_init
cnd_signal
cnd_timedwait
cnd_wait
dcgettext
dcgettext_l
dcngettext
dcngettext_l
dgettext
dgettext_l
dladdr
dngettext
dngettext_l
ffsl
ffsll
getentropy
getlocalename_l
getresgid
getresuid
gettext
gettext_l
htobe16
htobe32
htobe64
htole16
htole32
htole64
in6addr_any
in6addr_loopback
kill_dependency
le16toh
le32toh
le64toh
mbrtoc16
mbrtoc32
memmem
mkostemp
mtx_destroy
mtx_init
mtx_lock
mtx_timedlock
mtx_trylock
mtx_unlock
ngettext
ngettext_l
pipe2
posix_close
posix_devctl
posix_getdents
posix_spawn_file_actions_addchdir
posix_spawn_file_actions_addfchdir
ppoll
pthread_cond_clockwait
pthread_mutex_clocklock
pthread_rwlock_clockrdlock
pthread_rwlock_clockwrlock
ptsname_r
qsort_r
quick_exit
reallocarray
secure_getenv
sem_clockwait
setresgid
setresuid
shm_open
shm_unlink
sig2str
str2sig
strlcat
strlcpy
tcgetwinsize
tcsetwinsize
textdomain
thrd_create
thrd_current
thrd_detach
thrd_equal
thrd_exit
thrd_join
thrd_sleep
thrd_yield
timespec_get
tss_create
tss_delete
tss_get
tss_set
vasprintf
wcslcat
wcslcpy
_longjmp
_setjmp
_tolower
_toupper
fattach
fdetach
ftw
getitimer
getmsg
getpmsg
gets
gettimeofday
ioctl
isascii
isastream
posix_trace_attr_destroy
posix_trace_attr_getclockres
posix_trace_attr_getcreatetime
posix_trace_attr_getgenversion
posix_trace_attr_getinherited
posix_trace_attr_getlogfullpolicy
posix_trace_attr_getlogsize
posix_trace_attr_getmaxdatasize
posix_trace_attr_getmaxsystemeventsize
posix_trace_attr_getmaxusereventsize
posix_trace_attr_getname
posix_trace_attr_getstreamfullpolicy
posix_trace_attr_getstreamsize
posix_trace_attr_init
posix_trace_attr_setinherited
posix_trace_attr_setlogfullpolicy
posix_trace_attr_setlogsize
posix_trace_attr_setmaxdatasize
posix_trace_attr_setname
posix_trace_attr_setstreamfullpolicy
posix_trace_attr_setstreamsize
posix_trace_clear
posix_trace_close
posix_trace_create
posix_trace_create_withlog
posix_trace_event
posix_trace_eventid_equal
posix_trace_eventid_get_name
posix_trace_eventid_open
posix_trace_eventset_add
posix_trace_eventset_del
posix_trace_eventset_empty
posix_trace_eventset_fill
posix_trace_eventset_ismember
posix_trace_eventtypelist_getnext_id
posix_trace_eventtypelist_rewind
posix_trace_flush
posix_trace_get_attr
posix_trace_get_filter
posix_trace_get_status
posix_trace_getnext_event
posix_trace_open
posix_trace_rewind
posix_trace_set_filter
posix_trace_shutdown
posix_trace_start
posix_trace_stop
posix_trace_timedgetnext_event
posix_trace_trid_eventid_open
posix_trace_trygetnext_event
pthread_getconcurrency
pthread_setconcurrency
putmsg
putpmsg
rand_r
setitimer
setpgrp
shm_open
shm_unlink
sighold
sigignore
siginterrupt
sigpause
sigrelse
sigset
tempnam
toascii
ulimit
utime
accept4
aligned_alloc
asprintf
at_quick_exit
c16rtomb
c32rtomb
call_once
cnd_broadcast
cnd_destroy
cnd_init
cnd_signal
cnd_timedwait
cnd_wait
dladdr
ffsl
ffsll
mbrtoc16
mbrtoc32
memmem
mkostemp
mtx_destroy
mtx_init
mtx_lock
mtx_timedlock
mtx_trylock
mtx_unlock
pipe2
ppoll
pthread_cond_clockwait
pthread_mutex_clocklock
pthread_rwlock_clockrdlock
pthread_rwlock_clockwrlock
ptsname_r
qsort_r
qsort_r
quick_exit
reallocarray
secure_getenv
sem_clockwait
shm_open
shm_unlink
sig2str
str2sig
strlcat
strlcpy
thrd_create
thrd_current
thrd_detach
thrd_equal
thrd_exit
thrd_join
thrd_sleep
thrd_yield
tss_create
tss_delete
tss_get
tss_set
vasprintf
wcslcat
wcslcpy
_Fork
atomic_compare_exchange_strong
atomic_compare_exchange_strong_explicit
atomic_compare_exchange_weak
atomic_compare_exchange_weak_explicit
atomic_exchange
atomic_exchange_explicit
atomic_fetch_add
atomic_fetch_add_explicit
atomic_fetch_and
atomic_fetch_and_explicit
atomic_fetch_or
atomic_fetch_or_explicit
atomic_fetch_sub
atomic_fetch_sub_explicit
atomic_fetch_xor
atomic_fetch_xor_explicit
atomic_flag_clear
atomic_flag_clear_explicit
atomic_flag_test_and_set
atomic_flag_test_and_set_explicit
atomic_init
atomic_is_lock_free
atomic_load
atomic_load_explicit
atomic_signal_fence
atomic_store
atomic_store_explicit
atomic_thread_fence
be16toh
be32toh
be64toh
bind_textdomain_codeset
bindtextdomain
CMPLX
CMPLXF
CMPLXL
dcgettext
dcgettext_l
dcngettext
dcngettext_l
dgettext
dgettext_l
dngettext
dngettext_l
getentropy
getlocalename_l
getresgid
getresuid
gettext
gettext_l
htobe16
htobe32
htobe64
htole16
htole32
htole64
in6addr_any
in6addr_loopback
kill_dependency
le16toh
le32toh
le64toh
ngettext
ngettext_l
posix_close
posix_devctl
posix_getdents
posix_spawn_file_actions_addchdir
posix_spawn_file_actions_addfchdir
setresgid
setresuid
tcgetwinsize
tcsetwinsize
textdomain
timespec_get
accept4 SIGFE
aligned_alloc SIGFE
asprintf SIGFE
at_quick_exit SIGFE
c16rtomb NOSIGFE
c32rtomb NOSIGFE
call_once SIGFE
cnd_broadcast SIGFE
cnd_destroy SIGFE
cnd_init SIGFE
cnd_signal SIGFE
cnd_timedwait SIGFE
cnd_wait SIGFE
dladdr SIGFE
ffsl NOSIGFE
ffsll NOSIGFE
getentropy SIGFE
getlocalename_l SIGFE
in6addr_any DATA
in6addr_loopback DATA
mbrtoc16 NOSIGFE
mbrtoc32 NOSIGFE
memmem NOSIGFE
mkostemp SIGFE
mtx_destroy SIGFE
mtx_init SIGFE
mtx_lock SIGFE
mtx_timedlock SIGFE
mtx_trylock SIGFE
mtx_unlock SIGFE
pipe2 SIGFE
posix_getdents SIGFE
ppoll SIGFE
pthread_cond_clockwait SIGFE
pthread_mutex_clocklock SIGFE
pthread_rwlock_clockrdlock SIGFE
pthread_rwlock_clockwrlock SIGFE
ptsname_r SIGFE
qsort_r NOSIGFE
quick_exit SIGFE
reallocarray SIGFE
secure_getenv NOSIGFE
sem_clockwait SIGFE
shm_open SIGFE
shm_unlink SIGFE
sig2str SIGFE
str2sig SIGFE
strlcat NOSIGFE
strlcpy NOSIGFE
thrd_create SIGFE
thrd_current SIGFE
thrd_detach SIGFE
thrd_equal SIGFE
thrd_exit SIGFE
thrd_join SIGFE
thrd_sleep SIGFE
thrd_yield SIGFE
timespec_get SIGFE
tss_create SIGFE
tss_delete SIGFE
tss_get SIGFE
tss_set SIGFE
vasprintf SIGFE
wcslcat NOSIGFE
wcslcpy NOSIGFE
_Fork
atomic_compare_exchange_strong
atomic_compare_exchange_strong_explicit
atomic_compare_exchange_weak
atomic_compare_exchange_weak_explicit
atomic_exchange
atomic_exchange_explicit
atomic_fetch_add
atomic_fetch_add_explicit
atomic_fetch_and
atomic_fetch_and_explicit
atomic_fetch_or
atomic_fetch_or_explicit
atomic_fetch_sub
atomic_fetch_sub_explicit
atomic_fetch_xor
atomic_fetch_xor_explicit
atomic_flag_clear
atomic_flag_clear_explicit
atomic_flag_test_and_set
atomic_flag_test_and_set_explicit
atomic_init
atomic_is_lock_free
atomic_load
atomic_load_explicit
atomic_signal_fence
atomic_store
atomic_store_explicit
atomic_thread_fence
be16toh
be32toh
be64toh
bind_textdomain_codeset
bindtextdomain
CMPLX
CMPLXF
CMPLXL
dcgettext
dcgettext_l
dcngettext
dcngettext_l
dgettext
dgettext_l
dngettext
dngettext_l
getresgid
getresuid
gettext
gettext_l
htobe16
htobe32
htobe64
htole16
htole32
htole64
kill_dependency
le16toh
le32toh
le64toh
ngettext
ngettext_l
posix_close
posix_devctl
posix_spawn_file_actions_addchdir
posix_spawn_file_actions_addfchdir
setresgid
setresuid
tcgetwinsize
tcsetwinsize
textdomain