[RFC] POSIX Issue 8 2024 SUS V5 Cygwin Doc Changes

Brian Inglis Brian.Inglis@SystematicSW.ab.ca
Sun Jan 5 20:43:02 GMT 2025


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
-------------- next part --------------
--- 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()

-------------- next part --------------
_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
-------------- next part --------------
_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
-------------- next part --------------
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
-------------- next part --------------
_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
-------------- next part --------------
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
-------------- next part --------------
_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


More information about the Cygwin-patches mailing list