On 26/10/2020 20:33, Érico Nogueira via Libc-alpha wrote:
> From: Érico Rolim
>
> I would like to add these enums in order to conform to the POSIX
> specification: https://www.man7.org/linux/man-pages/man0/unistd.h.0p.html
>
> This change also helps musl-libc, since they want to have these defines
> with the same values as glibc.
>
> I tried to add them for the bits/confname.h and
> conform/data/unistd.h-data files following the example of the other
> values, but didn't know how to plug them into the confstr / __sysconf
> implementations.
I think since we do not export _SC_POSIX_THREADS and now that libpthread
symbols were all moved to libc, there is no need return the libpthread
for LDFLAGS. However it requires to be handled on confstr and getconf:
diff --git a/posix/confstr.c b/posix/confstr.c
index 6e3c264462..95fb0f6abc 100644
--- a/posix/confstr.c
+++ b/posix/confstr.c
@@ -249,6 +249,11 @@ __confstr (int name, char *buf, size_t len)
/* GNU libc does not require special actions to use LFS functions. */
break;
+case _CS_POSIX_V7_THREADS_CFLAGS:
+case _CS_POSIX_V7_THREADS_LDFLAGS:
+ /* GNU libc does not require special actions to use thread functions. */
+ break;
+
case _CS_GNU_LIBC_VERSION:
string = "glibc " VERSION;
string_len = sizeof ("glibc " VERSION);
diff --git a/posix/getconf.c b/posix/getconf.c
index a1adbc4b50..6a5363ad49 100644
--- a/posix/getconf.c
+++ b/posix/getconf.c
@@ -310,6 +310,8 @@ static const struct conf vars[] =
{ "POSIX_V7_LPBIG_OFFBIG_LDFLAGS", _CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS,
CONFSTR },
{ "POSIX_V7_LPBIG_OFFBIG_LIBS", _CS_POSIX_V7_LPBIG_OFFBIG_LIBS, CONFSTR },
{ "POSIX_V7_LPBIG_OFFBIG_LINTFLAGS", _CS_POSIX_V7_LPBIG_OFFBIG_LINTFLAGS,
CONFSTR },
+{ "POSIX_V7_THREADS_CFLAGS", _CS_POSIX_V7_THREADS_CFLAGS, CONFSTR },
+{ "POSIX_V7_THREADS_LDFLAGS", _CS_POSIX_V7_THREADS_LDFLAGS, CONFSTR },
{ "_POSIX_ADVISORY_INFO", _SC_ADVISORY_INFO, SYSCONF },
{ "_POSIX_BARRIERS", _SC_BARRIERS, SYSCONF },
Also now that we do not require a copyright assignment, you just need to add
a sign-off on the email submission.
>
> bits/confname.h| 7 ++-
> conform/data/unistd.h-data | 2 ++
> 2 files changed, 8 insertions(+), 1 deletion(-)
>
> diff --git a/bits/confname.h b/bits/confname.h
> index 5dc8215093..fdc5403697 100644
> --- a/bits/confname.h
> +++ b/bits/confname.h
> @@ -670,6 +670,11 @@ enum
>
> _CS_V6_ENV,
> #define _CS_V6_ENV _CS_V6_ENV
> -_CS_V7_ENV
> +_CS_V7_ENV,
> #define _CS_V7_ENV _CS_V7_ENV
> +
> +_CS_POSIX_V7_THREADS_CFLAGS,
> +#define _CS_POSIX_V7_THREADS_CFLAGS _CS_POSIX_V7_THREADS_CFLAGS
> +_CS_POSIX_V7_THREADS_LDFLAGS
> +#define _CS_POSIX_V7_THREADS_LDFLAGS _CS_POSIX_V7_THREADS_LDFLAGS
>};
> diff --git a/conform/data/unistd.h-data b/conform/data/unistd.h-data
> index aa070528e8..6c4b52a733 100644
> --- a/conform/data/unistd.h-data
> +++ b/conform/data/unistd.h-data
> @@ -367,6 +367,8 @@ constant _CS_POSIX_V7_LP64_OFF64_LIBS
> constant _CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS
> constant _CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS
> constant _CS_POSIX_V7_LPBIG_OFFBIG_LIBS
> +constant _CS_POSIX_V7_THREADS_CFLAGS
> +constant _CS_POSIX_V7_THREADS_LDFLAGS
> constant _CS_POSIX_V7_WIDTH_RESTRICTED_ENVS
> constant _CS_V7_ENV
> # endif