On 2025-01-13 11:01, Brian Inglis wrote:
On 2025-01-13 05:58, Corinna Vinschen wrote:
On Jan 10 17:01, Brian Inglis wrote:
Add unavailable POSIX additions to Not Implemented section,
with mentions of headers and packages where they are expected.
Signed-off-by: Brian Inglis <brian.ing...@systematicsw.ab.ca>
---
winsup/doc/posix.xml | 24 ++++++++++++++++++++++--
1 file changed, 22 insertions(+), 2 deletions(-)
diff --git a/winsup/doc/posix.xml b/winsup/doc/posix.xml
index 17c9ebf6f73f..2e14861802bf 100644
--- a/winsup/doc/posix.xml
+++ b/winsup/doc/posix.xml
@@ -1678,9 +1678,17 @@ ISO/IEC DIS 9945 Information technology
</sect1>
-<sect1 id="std-notimpl"><title>NOT implemented system interfaces from the
Single Unix Specification, Volume 7:</title>
+<sect1 id="std-notimpl"><title>NOT implemented system interfaces from the
Single UNIX® Specification Version 5:</title>
<screen>
+ CMPLX (not available in "complex.h" header)
+ CMPLXF (not available in "complex.h" header)
+ CMPLXL (not available in "complex.h" header)
Erm... did you have a look into newlib/libc/include/complex.h?
I only looked at build include definition dump from Cygwin gcc 12,
which does not include this, only:
. /usr/include/complex.h
.. /usr/include/sys/cdefs.h
... /usr/include/machine/_default_types.h
.... /usr/include/sys/features.h
..... /usr/include/_newlib_version.h
... /usr/lib/gcc/x86_64-pc-cygwin/12/include/stddef.h
That file was updated last July and in August cygwin-devel 3.5.4 should have
included it, but that commit is not in that log, nor 3.5.5, or cygwin-3_5-
branch, but is under main and in 3.6.0 tars:
https://cygwin.com/git?p=newlib-cygwin.git;a=commit;f=newlib/libc/include/
complex.h;h=a5ffae14
$ curl https://mirror.cpsc.ucalgary.ca/mirror/cygwin.com/x86_64/release/cygwin/
cygwin-devel/cygwin-devel-3.5.5-1.tar.xz | tar -xJOf - usr/include/complex.h |
grep CMPLX; echo $?
1
$ curl https://mirror.cpsc.ucalgary.ca/mirror/cygwin.com/x86_64/release/cygwin/
cygwin-devel/cygwin-devel-3.6.0-0.278.g376fe1dab177.tar.xz | tar -xJOf - usr/
include/complex.h | grep CMPLX ; echo $?
#define CMPLX(x, y) ((double complex){ x, y })
#define CMPLXF(x, y) ((float complex){ x, y })
#define CMPLXL(x, y) ((long double complex){ x, y })
#define CMPLX(x, y) __builtin_complex((double)(x), (double)(y))
#define CMPLXF(x, y) __builtin_complex((float)(x), (float)(y))
#define CMPLXL(x, y) __builtin_complex((long double)(x), (long double)(y))
0
Also, don't add the "(not available ..." stuff if the API is supposed to
be implemented and exported by newlib/Cygwin.
+ dcgettext_l (not available in external gettext "libintl"
library)
+ dcngettext_l (not available in external gettext "libintl" library)
+ dgettext_l (not available in external gettext "libintl" library)
+ dngettext_l (not available in external gettext "libintl"
library)
...so in case of these libintl functions, it's ok, of course.
+ kill_dependency (not available in "stdatomic.h" header)
This is in /usr/lib/gcc/x86_64-pc-cygwin/12/include/c++/bits/atomic_base.h
But not in a standard Cygwin gcc 12 build which uses:
$ grep -A2 kill_ /usr/lib/gcc/x86_64-pc-cygwin/12/include/stdatomic.h
#define kill_dependency(Y) \
__extension__ \
({ \
__auto_type __kill_dependency_tmp = (Y); \
__kill_dependency_tmp; \
})
and I missed checking earlier and qualifies? :^<
Should I change those comments to "available in" and qualify stdatomic.h with
GCC or lib/gcc?
Looking at the end/get/set...ent groups, endhostent and sethostent are
implemented and gethostent is not implemented - should we keep them separate or
combine in one section?
--
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 à retrancher but when there is no more to cut
-- Antoine de Saint-Exupéry