[PATCH v16 4/9] posix: let the getopt caller choose the textdomain for translation
Vivien Kraus
vivien@planete-kraus.eu
Thu Oct 30 20:13:09 GMT 2025
Using the same solution as for the option translation context, a new
opttextdomain variable is defined.
Note that all options in the call to getopt_long are looked up in the
same domain.
---
manual/argp.texi | 7 +++--
manual/getopt.texi | 11 +++++--
posix/Versions | 2 +-
posix/bits/getopt_ext.h | 5 ++++
posix/getopt.c | 30 ++++++++++++-------
posix/getopt1.c | 15 +++++++---
posix/getopt_int.h | 11 ++++---
posix/tstgetoptl.c | 9 ++----
sysdeps/mach/hurd/i386/libc.abilist | 1 +
sysdeps/mach/hurd/x86_64/libc.abilist | 1 +
sysdeps/unix/sysv/linux/aarch64/libc.abilist | 1 +
sysdeps/unix/sysv/linux/alpha/libc.abilist | 1 +
sysdeps/unix/sysv/linux/arc/libc.abilist | 1 +
sysdeps/unix/sysv/linux/arm/be/libc.abilist | 1 +
sysdeps/unix/sysv/linux/arm/le/libc.abilist | 1 +
sysdeps/unix/sysv/linux/csky/libc.abilist | 1 +
sysdeps/unix/sysv/linux/hppa/libc.abilist | 1 +
sysdeps/unix/sysv/linux/i386/libc.abilist | 1 +
.../sysv/linux/loongarch/lp64/libc.abilist | 1 +
.../sysv/linux/m68k/coldfire/libc.abilist | 1 +
.../unix/sysv/linux/m68k/m680x0/libc.abilist | 1 +
.../sysv/linux/microblaze/be/libc.abilist | 1 +
.../sysv/linux/microblaze/le/libc.abilist | 1 +
.../sysv/linux/mips/mips32/fpu/libc.abilist | 1 +
.../sysv/linux/mips/mips32/nofpu/libc.abilist | 1 +
.../sysv/linux/mips/mips64/n32/libc.abilist | 1 +
.../sysv/linux/mips/mips64/n64/libc.abilist | 1 +
sysdeps/unix/sysv/linux/or1k/libc.abilist | 1 +
.../linux/powerpc/powerpc32/fpu/libc.abilist | 1 +
.../powerpc/powerpc32/nofpu/libc.abilist | 1 +
.../linux/powerpc/powerpc64/be/libc.abilist | 1 +
.../linux/powerpc/powerpc64/le/libc.abilist | 1 +
.../unix/sysv/linux/riscv/rv32/libc.abilist | 1 +
.../unix/sysv/linux/riscv/rv64/libc.abilist | 1 +
.../unix/sysv/linux/s390/s390-32/libc.abilist | 1 +
.../unix/sysv/linux/s390/s390-64/libc.abilist | 1 +
sysdeps/unix/sysv/linux/sh/be/libc.abilist | 1 +
sysdeps/unix/sysv/linux/sh/le/libc.abilist | 1 +
.../sysv/linux/sparc/sparc32/libc.abilist | 1 +
.../sysv/linux/sparc/sparc64/libc.abilist | 1 +
.../unix/sysv/linux/x86_64/64/libc.abilist | 1 +
.../unix/sysv/linux/x86_64/x32/libc.abilist | 1 +
42 files changed, 94 insertions(+), 30 deletions(-)
diff --git a/manual/argp.texi b/manual/argp.texi
index 97456ef20e..50d67b6c55 100644
--- a/manual/argp.texi
+++ b/manual/argp.texi
@@ -208,8 +208,11 @@ messages. @xref{Argp Help Filtering}.
If non-zero, the strings used in the argp library are translated using
the domain described by this string. If zero, the current default
domain is used. The long option names are always translated with the
-current default domain, and with the @samp{"command-line option"}
-disambiguation string.
+current default domain (not this one), and with the
+@samp{"command-line option"} disambiguation string. This is because
+all the option names, including those defined in sub-parsers, must be
+in the same textdomain for @command{getopt} to process the options
+correctly.
@end table
@end deftp
diff --git a/manual/getopt.texi b/manual/getopt.texi
index 65e24f1143..20be0fba69 100644
--- a/manual/getopt.texi
+++ b/manual/getopt.texi
@@ -59,8 +59,15 @@ names in the current textdomain. Since option names may be short
words instead of long sentences, they may have different translations
in other places of the program. @xref{Contexts, , Using contexts for
solving ambiguities, gettext, the GNU Gettext manual}, for more
-information. If this is @code{NULL}, then the translated option names
-will not be processed.
+information. If this is @code{NULL} (the default), then the
+translated option names will not be processed.
+@end deftypevar
+
+@deftypevar {const char *} opttextdomain
+Option names may be translated in a textdomain that is not currently
+the default (@pxref{Interface to gettext, , The Interface, gettext,
+the GNU Gettext manual}). If this is @code{NULL} (the default), the
+translation will be searched in the current text domain.
@end deftypevar
@deftypefun int getopt (int @var{argc}, char *const *@var{argv}, const char *@var{options})
diff --git a/posix/Versions b/posix/Versions
index 5873e8ec56..d1c2cffcf9 100644
--- a/posix/Versions
+++ b/posix/Versions
@@ -160,7 +160,7 @@ libc {
posix_spawn_file_actions_addtcsetpgrp_np;
}
GLIBC_2.43 {
- optctxt;
+ optctxt; opttextdomain;
}
GLIBC_PRIVATE {
__libc_fork; __libc_pread; __libc_pwrite;
diff --git a/posix/bits/getopt_ext.h b/posix/bits/getopt_ext.h
index 07d9407b64..6cd0932596 100644
--- a/posix/bits/getopt_ext.h
+++ b/posix/bits/getopt_ext.h
@@ -31,6 +31,11 @@ __BEGIN_DECLS
names. If unset, the option names will not be translated. */
extern const char *optctxt;
+
+/* Callers store the textdomain to use to retrieve option names, or
+ NULL to use the current textdomain. */
+
+extern const char *opttextdomain;
#endif
/* Describe the long-named options requested by the application.
diff --git a/posix/getopt.c b/posix/getopt.c
index 28f0be03f8..28c8aa4bbf 100644
--- a/posix/getopt.c
+++ b/posix/getopt.c
@@ -185,16 +185,20 @@ exchange (char **argv, struct _getopt_data *d)
/* Return 1 iff translation_context is not NULL, a translation for
opt_name has been found and it matches the substring from argument,
length argument_length.
+
+ The translate function pointer is like dpgettext.
*/
static const int
-match_translated_option_name (char *(*translate) (const char *, const char *),
+match_translated_option_name (char *(*translate) (const char *, const char *,
+ const char *),
const char *argument, size_t argument_length,
const char *translation_context,
+ const char *opt_textdomain,
const char *opt_name)
{
const char *translated = opt_name;
if (translate)
- translated = translate (translation_context, opt_name);
+ translated = translate (opt_textdomain, translation_context, opt_name);
return (!strncmp (translated, argument, argument_length)
&& argument_length == strlen (translated));
}
@@ -212,7 +216,8 @@ process_long_option (int argc, char **argv, const char *optstring,
const struct option *longopts, int *longind,
int long_only, struct _getopt_data *d,
int print_errors, const char *prefix,
- char *(*translate) (const char *, const char *))
+ char *(*translate) (const char *, const char *,
+ const char *))
{
char *nameend;
size_t namelen;
@@ -243,9 +248,9 @@ process_long_option (int argc, char **argv, const char *optstring,
/* Didn't find an exact match, try with translated option
names. */
for (p = longopts, option_index = 0; p->name; p++, option_index++)
- if (match_translated_option_name (translate,
- d->__nextchar, namelen,
- d->optctxt, p->name))
+ if (match_translated_option_name (translate, d->__nextchar, namelen,
+ d->optctxt, d->opttextdomain,
+ p->name))
{
/* Exact match found with translation. */
pfound = p;
@@ -369,7 +374,7 @@ process_long_option (int argc, char **argv, const char *optstring,
/* We have found a matching long option. Consume it. */
d->optind++;
d->__nextchar = NULL;
- translated_option_name = translate (d->optctxt, pfound->name);
+ translated_option_name = translate (d->opttextdomain, d->optctxt, pfound->name);
if (*nameend)
{
/* Don't test has_arg with >, because some C compilers don't
@@ -535,7 +540,8 @@ int
_getopt_internal_r (int argc, char **argv, const char *optstring,
const struct option *longopts, int *longind,
int long_only, struct _getopt_data *d, int posixly_correct,
- char *(*translate) (const char *, const char *))
+ char *(*translate) (const char *, const char *,
+ const char *))
{
int print_errors = d->opterr;
@@ -771,14 +777,16 @@ int
_getopt_internal (int argc, char **argv, const char *optstring,
const struct option *longopts, int *longind, int long_only,
int posixly_correct,
- char *(*translate) (const char *, const char *),
- const char *ctxt)
+ char *(*translate) (const char *, const char *, const char *),
+ const char *ctxt,
+ const char *domain)
{
int result;
getopt_data.optind = optind;
getopt_data.opterr = opterr;
getopt_data.optctxt = ctxt;
+ getopt_data.opttextdomain = domain;
result = _getopt_internal_r (argc, argv, optstring, longopts,
longind, long_only, &getopt_data,
@@ -801,7 +809,7 @@ _getopt_internal (int argc, char **argv, const char *optstring,
{ \
return _getopt_internal (argc, (char **)argv, optstring, \
NULL, NULL, 0, POSIXLY_CORRECT, \
- NULL, NULL); \
+ NULL, NULL, NULL); \
}
#ifdef _LIBC
diff --git a/posix/getopt1.c b/posix/getopt1.c
index 28d090019d..48852dc692 100644
--- a/posix/getopt1.c
+++ b/posix/getopt1.c
@@ -34,9 +34,14 @@
const char *optctxt = NULL;
+/* Callers store the textdomain in which the option names are to be
+ looked up. */
+
+const char *opttextdomain = NULL;
+
/* FIXME: use pgettext_expr. */
static char *
-do_translate (const char *context, const char *msgid)
+do_translate (const char *domain, const char *context, const char *msgid)
{
char *full_msgid;
const char *translated = msgid;
@@ -49,7 +54,7 @@ do_translate (const char *context, const char *msgid)
strcpy (full_msgid, context);
full_msgid[strlen (context)] = '\004';
strcpy (full_msgid + strlen (context) + 1, msgid);
- translated = __dcgettext (NULL, full_msgid, LC_MESSAGES);
+ translated = __dcgettext (domain, full_msgid, LC_MESSAGES);
if (!strcmp (translated, full_msgid))
{
translated = msgid;
@@ -67,7 +72,8 @@ getopt_long (int argc, char *__getopt_argv_const *argv, const char *options,
const struct option *long_options, int *opt_index)
{
return _getopt_internal (argc, (char **) argv, options, long_options,
- opt_index, 0, 0, do_translate, optctxt);
+ opt_index, 0, 0, do_translate,
+ optctxt, opttextdomain);
}
int
@@ -90,7 +96,8 @@ getopt_long_only (int argc, char *__getopt_argv_const *argv,
const struct option *long_options, int *opt_index)
{
return _getopt_internal (argc, (char **) argv, options, long_options,
- opt_index, 1, 0, do_translate, optctxt);
+ opt_index, 1, 0, do_translate,
+ optctxt, opttextdomain);
}
int
diff --git a/posix/getopt_int.h b/posix/getopt_int.h
index 1d091979c3..1deb6cad35 100644
--- a/posix/getopt_int.h
+++ b/posix/getopt_int.h
@@ -24,13 +24,14 @@
/* The translate argument here is optional (can be NULL), it is used
to avoid depending on the gettext functions in the posix getopt
- function. */
+ function. It is like dpgettext. */
extern int _getopt_internal (int ___argc, char **___argv,
const char *__shortopts,
const struct option *__longopts, int *__longind,
int __long_only, int __posixly_correct,
- char *(*translate) (const char *, const char *),
- const char *__optctxt);
+ char *(*translate) (const char *, const char *,
+ const char *),
+ const char *__optctxt, const char *__optdomain);
/* Reentrant versions which can handle parsing multiple argument
@@ -73,6 +74,7 @@ struct _getopt_data
int optopt;
char *optarg;
const char *optctxt;
+ const char *opttextdomain;
/* Internal members. */
@@ -109,7 +111,8 @@ extern int _getopt_internal_r (int ___argc, char **___argv,
const struct option *__longopts, int *__longind,
int __long_only, struct _getopt_data *__data,
int __posixly_correct,
- char *(*translate) (const char *, const char *));
+ char *(*translate) (const char *, const char *,
+ const char *));
extern int _getopt_long_r (int ___argc, char **___argv,
const char *__shortopts,
diff --git a/posix/tstgetoptl.c b/posix/tstgetoptl.c
index 5ff1ba75c4..ba9dbe4222 100644
--- a/posix/tstgetoptl.c
+++ b/posix/tstgetoptl.c
@@ -44,13 +44,8 @@ prepare_localedir (void)
fputs ("Cannot call bindtextdomain.\n", stderr);
return -1;
}
- if (textdomain ("tstgetoptl") == NULL)
- {
- fputs ("Cannot call textdomain.\n", stderr);
- return -1;
- }
/* Check that the catalog is OK: */
- if (strcmp (gettext (TRANSLATION_CONTEXT "\004" "color"), "colour") != 0)
+ if (strcmp (dgettext ("tstgetoptl", TRANSLATION_CONTEXT "\004" "color"), "colour") != 0)
{
fputs ("The mo file does not work.\n", stderr);
return -1;
@@ -62,6 +57,7 @@ int
main (int argc, char **argv)
{
static const char *translation_context = TRANSLATION_CONTEXT;
+ static const char *translation_textdomain = "tstgetoptl";
static const struct option options[] =
{
{"required", required_argument, NULL, 'r'},
@@ -89,6 +85,7 @@ main (int argc, char **argv)
return 1;
}
optctxt = translation_context;
+ opttextdomain = translation_textdomain;
while ((c = getopt_long (argc, argv, "abc:", options, NULL)) >= 0)
switch (c)
{
diff --git a/sysdeps/mach/hurd/i386/libc.abilist b/sysdeps/mach/hurd/i386/libc.abilist
index a9064037da..6989068c80 100644
--- a/sysdeps/mach/hurd/i386/libc.abilist
+++ b/sysdeps/mach/hurd/i386/libc.abilist
@@ -2666,6 +2666,7 @@ GLIBC_2.43 __memset_explicit_chk F
GLIBC_2.43 memalignment F
GLIBC_2.43 memset_explicit F
GLIBC_2.43 optctxt D 0x4
+GLIBC_2.43 opttextdomain D 0x4
GLIBC_2.43 pthread_cancel F
GLIBC_2.43 pthread_clockjoin_np F
GLIBC_2.43 pthread_detach F
diff --git a/sysdeps/mach/hurd/x86_64/libc.abilist b/sysdeps/mach/hurd/x86_64/libc.abilist
index 09d0370977..aea7928b30 100644
--- a/sysdeps/mach/hurd/x86_64/libc.abilist
+++ b/sysdeps/mach/hurd/x86_64/libc.abilist
@@ -2347,6 +2347,7 @@ GLIBC_2.43 __memset_explicit_chk F
GLIBC_2.43 memalignment F
GLIBC_2.43 memset_explicit F
GLIBC_2.43 optctxt D 0x8
+GLIBC_2.43 opttextdomain D 0x8
GLIBC_2.43 pthread_cancel F
GLIBC_2.43 pthread_clockjoin_np F
GLIBC_2.43 pthread_detach F
diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
index 5feb7f0af0..9ea34418b8 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
@@ -2771,4 +2771,5 @@ GLIBC_2.43 __memset_explicit_chk F
GLIBC_2.43 memalignment F
GLIBC_2.43 memset_explicit F
GLIBC_2.43 optctxt D 0x8
+GLIBC_2.43 opttextdomain D 0x8
GLIBC_2.43 umaxabs F
diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
index 241ad03f61..c595ee4d43 100644
--- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
@@ -3118,6 +3118,7 @@ GLIBC_2.43 __memset_explicit_chk F
GLIBC_2.43 memalignment F
GLIBC_2.43 memset_explicit F
GLIBC_2.43 optctxt D 0x8
+GLIBC_2.43 opttextdomain D 0x8
GLIBC_2.43 umaxabs F
GLIBC_2.5 __readlinkat_chk F
GLIBC_2.5 inet6_opt_append F
diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
index 5d4ab3f417..01a24c5007 100644
--- a/sysdeps/unix/sysv/linux/arc/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
@@ -2532,4 +2532,5 @@ GLIBC_2.43 __memset_explicit_chk F
GLIBC_2.43 memalignment F
GLIBC_2.43 memset_explicit F
GLIBC_2.43 optctxt D 0x4
+GLIBC_2.43 opttextdomain D 0x4
GLIBC_2.43 umaxabs F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
index 1f1d4bcb8e..c538142b6d 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
@@ -2824,6 +2824,7 @@ GLIBC_2.43 __memset_explicit_chk F
GLIBC_2.43 memalignment F
GLIBC_2.43 memset_explicit F
GLIBC_2.43 optctxt D 0x4
+GLIBC_2.43 opttextdomain D 0x4
GLIBC_2.43 umaxabs F
GLIBC_2.5 __readlinkat_chk F
GLIBC_2.5 inet6_opt_append F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
index 6c00005438..9f1ebbc775 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -2821,6 +2821,7 @@ GLIBC_2.43 __memset_explicit_chk F
GLIBC_2.43 memalignment F
GLIBC_2.43 memset_explicit F
GLIBC_2.43 optctxt D 0x4
+GLIBC_2.43 opttextdomain D 0x4
GLIBC_2.43 umaxabs F
GLIBC_2.5 __readlinkat_chk F
GLIBC_2.5 inet6_opt_append F
diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
index 469d1a0b70..9a3fd17729 100644
--- a/sysdeps/unix/sysv/linux/csky/libc.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
@@ -2808,4 +2808,5 @@ GLIBC_2.43 __memset_explicit_chk F
GLIBC_2.43 memalignment F
GLIBC_2.43 memset_explicit F
GLIBC_2.43 optctxt D 0x4
+GLIBC_2.43 opttextdomain D 0x4
GLIBC_2.43 umaxabs F
diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
index ef019f4639..ee7c568977 100644
--- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
@@ -2845,6 +2845,7 @@ GLIBC_2.43 __memset_explicit_chk F
GLIBC_2.43 memalignment F
GLIBC_2.43 memset_explicit F
GLIBC_2.43 optctxt D 0x4
+GLIBC_2.43 opttextdomain D 0x4
GLIBC_2.43 umaxabs F
GLIBC_2.5 __readlinkat_chk F
GLIBC_2.5 inet6_opt_append F
diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
index 7320ea3e70..c0b8a5d878 100644
--- a/sysdeps/unix/sysv/linux/i386/libc.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
@@ -3028,6 +3028,7 @@ GLIBC_2.43 __memset_explicit_chk F
GLIBC_2.43 memalignment F
GLIBC_2.43 memset_explicit F
GLIBC_2.43 optctxt D 0x4
+GLIBC_2.43 opttextdomain D 0x4
GLIBC_2.43 umaxabs F
GLIBC_2.5 __readlinkat_chk F
GLIBC_2.5 inet6_opt_append F
diff --git a/sysdeps/unix/sysv/linux/loongarch/lp64/libc.abilist b/sysdeps/unix/sysv/linux/loongarch/lp64/libc.abilist
index d516f3f623..e71bca6e25 100644
--- a/sysdeps/unix/sysv/linux/loongarch/lp64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/loongarch/lp64/libc.abilist
@@ -2292,4 +2292,5 @@ GLIBC_2.43 __memset_explicit_chk F
GLIBC_2.43 memalignment F
GLIBC_2.43 memset_explicit F
GLIBC_2.43 optctxt D 0x8
+GLIBC_2.43 opttextdomain D 0x8
GLIBC_2.43 umaxabs F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
index 4f0f648220..87358cac03 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -2804,6 +2804,7 @@ GLIBC_2.43 __memset_explicit_chk F
GLIBC_2.43 memalignment F
GLIBC_2.43 memset_explicit F
GLIBC_2.43 optctxt D 0x4
+GLIBC_2.43 opttextdomain D 0x4
GLIBC_2.43 umaxabs F
GLIBC_2.5 __readlinkat_chk F
GLIBC_2.5 inet6_opt_append F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
index 76a446925b..d522bb4b6e 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
@@ -2971,6 +2971,7 @@ GLIBC_2.43 __memset_explicit_chk F
GLIBC_2.43 memalignment F
GLIBC_2.43 memset_explicit F
GLIBC_2.43 optctxt D 0x4
+GLIBC_2.43 opttextdomain D 0x4
GLIBC_2.43 umaxabs F
GLIBC_2.5 __readlinkat_chk F
GLIBC_2.5 inet6_opt_append F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
index eeb704c1c6..5ebc20ec50 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
@@ -2857,4 +2857,5 @@ GLIBC_2.43 __memset_explicit_chk F
GLIBC_2.43 memalignment F
GLIBC_2.43 memset_explicit F
GLIBC_2.43 optctxt D 0x4
+GLIBC_2.43 opttextdomain D 0x4
GLIBC_2.43 umaxabs F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
index 05f456f478..1455fdac75 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
@@ -2854,4 +2854,5 @@ GLIBC_2.43 __memset_explicit_chk F
GLIBC_2.43 memalignment F
GLIBC_2.43 memset_explicit F
GLIBC_2.43 optctxt D 0x4
+GLIBC_2.43 opttextdomain D 0x4
GLIBC_2.43 umaxabs F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
index c696e5c29c..e3d1886342 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
@@ -2934,6 +2934,7 @@ GLIBC_2.43 __memset_explicit_chk F
GLIBC_2.43 memalignment F
GLIBC_2.43 memset_explicit F
GLIBC_2.43 optctxt D 0x4
+GLIBC_2.43 opttextdomain D 0x4
GLIBC_2.43 umaxabs F
GLIBC_2.5 __readlinkat_chk F
GLIBC_2.5 inet6_opt_append F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
index 986b3c1983..590d650b46 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
@@ -2932,6 +2932,7 @@ GLIBC_2.43 __memset_explicit_chk F
GLIBC_2.43 memalignment F
GLIBC_2.43 memset_explicit F
GLIBC_2.43 optctxt D 0x4
+GLIBC_2.43 opttextdomain D 0x4
GLIBC_2.43 umaxabs F
GLIBC_2.5 __readlinkat_chk F
GLIBC_2.5 inet6_opt_append F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
index 1a412a72e7..1296cb6eac 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
@@ -2940,6 +2940,7 @@ GLIBC_2.43 __memset_explicit_chk F
GLIBC_2.43 memalignment F
GLIBC_2.43 memset_explicit F
GLIBC_2.43 optctxt D 0x4
+GLIBC_2.43 opttextdomain D 0x4
GLIBC_2.43 umaxabs F
GLIBC_2.5 __readlinkat_chk F
GLIBC_2.5 inet6_opt_append F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
index e8c6f8bc9d..1f086b7c3c 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
@@ -2842,6 +2842,7 @@ GLIBC_2.43 __memset_explicit_chk F
GLIBC_2.43 memalignment F
GLIBC_2.43 memset_explicit F
GLIBC_2.43 optctxt D 0x8
+GLIBC_2.43 opttextdomain D 0x8
GLIBC_2.43 umaxabs F
GLIBC_2.5 __readlinkat_chk F
GLIBC_2.5 inet6_opt_append F
diff --git a/sysdeps/unix/sysv/linux/or1k/libc.abilist b/sysdeps/unix/sysv/linux/or1k/libc.abilist
index 6fbdb0655b..ea01cdcefd 100644
--- a/sysdeps/unix/sysv/linux/or1k/libc.abilist
+++ b/sysdeps/unix/sysv/linux/or1k/libc.abilist
@@ -2282,4 +2282,5 @@ GLIBC_2.43 __memset_explicit_chk F
GLIBC_2.43 memalignment F
GLIBC_2.43 memset_explicit F
GLIBC_2.43 optctxt D 0x4
+GLIBC_2.43 opttextdomain D 0x4
GLIBC_2.43 umaxabs F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
index e0ef547732..1b38685543 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
@@ -3161,6 +3161,7 @@ GLIBC_2.43 __memset_explicit_chk F
GLIBC_2.43 memalignment F
GLIBC_2.43 memset_explicit F
GLIBC_2.43 optctxt D 0x4
+GLIBC_2.43 opttextdomain D 0x4
GLIBC_2.43 umaxabs F
GLIBC_2.5 __readlinkat_chk F
GLIBC_2.5 inet6_opt_append F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
index 2700f7dfe9..6ffee791d2 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
@@ -3206,6 +3206,7 @@ GLIBC_2.43 __memset_explicit_chk F
GLIBC_2.43 memalignment F
GLIBC_2.43 memset_explicit F
GLIBC_2.43 optctxt D 0x4
+GLIBC_2.43 opttextdomain D 0x4
GLIBC_2.43 umaxabs F
GLIBC_2.5 __readlinkat_chk F
GLIBC_2.5 inet6_opt_append F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
index 290b68d6a0..f68663d743 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
@@ -2915,6 +2915,7 @@ GLIBC_2.43 __memset_explicit_chk F
GLIBC_2.43 memalignment F
GLIBC_2.43 memset_explicit F
GLIBC_2.43 optctxt D 0x8
+GLIBC_2.43 opttextdomain D 0x8
GLIBC_2.43 umaxabs F
GLIBC_2.5 __readlinkat_chk F
GLIBC_2.5 inet6_opt_append F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
index 20b11c419e..bded5ed711 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
@@ -2991,4 +2991,5 @@ GLIBC_2.43 __memset_explicit_chk F
GLIBC_2.43 memalignment F
GLIBC_2.43 memset_explicit F
GLIBC_2.43 optctxt D 0x8
+GLIBC_2.43 opttextdomain D 0x8
GLIBC_2.43 umaxabs F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
index 11e5729829..7becb9e808 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
@@ -2535,4 +2535,5 @@ GLIBC_2.43 __memset_explicit_chk F
GLIBC_2.43 memalignment F
GLIBC_2.43 memset_explicit F
GLIBC_2.43 optctxt D 0x4
+GLIBC_2.43 opttextdomain D 0x4
GLIBC_2.43 umaxabs F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
index 1b80a431a7..b9afa56d08 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
@@ -2735,4 +2735,5 @@ GLIBC_2.43 __memset_explicit_chk F
GLIBC_2.43 memalignment F
GLIBC_2.43 memset_explicit F
GLIBC_2.43 optctxt D 0x8
+GLIBC_2.43 opttextdomain D 0x8
GLIBC_2.43 umaxabs F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
index 083276f87c..918f8ee959 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
@@ -3159,6 +3159,7 @@ GLIBC_2.43 __memset_explicit_chk F
GLIBC_2.43 memalignment F
GLIBC_2.43 memset_explicit F
GLIBC_2.43 optctxt D 0x4
+GLIBC_2.43 opttextdomain D 0x4
GLIBC_2.43 umaxabs F
GLIBC_2.5 __readlinkat_chk F
GLIBC_2.5 inet6_opt_append F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
index 732c0c5a28..691b362df1 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
@@ -2952,6 +2952,7 @@ GLIBC_2.43 __memset_explicit_chk F
GLIBC_2.43 memalignment F
GLIBC_2.43 memset_explicit F
GLIBC_2.43 optctxt D 0x8
+GLIBC_2.43 opttextdomain D 0x8
GLIBC_2.43 umaxabs F
GLIBC_2.5 __readlinkat_chk F
GLIBC_2.5 inet6_opt_append F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
index adc435f65f..33e4cacb64 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
@@ -2851,6 +2851,7 @@ GLIBC_2.43 __memset_explicit_chk F
GLIBC_2.43 memalignment F
GLIBC_2.43 memset_explicit F
GLIBC_2.43 optctxt D 0x4
+GLIBC_2.43 opttextdomain D 0x4
GLIBC_2.43 umaxabs F
GLIBC_2.5 __readlinkat_chk F
GLIBC_2.5 inet6_opt_append F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
index 3e51e02807..90d9a4da24 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
@@ -2848,6 +2848,7 @@ GLIBC_2.43 __memset_explicit_chk F
GLIBC_2.43 memalignment F
GLIBC_2.43 memset_explicit F
GLIBC_2.43 optctxt D 0x4
+GLIBC_2.43 opttextdomain D 0x4
GLIBC_2.43 umaxabs F
GLIBC_2.5 __readlinkat_chk F
GLIBC_2.5 inet6_opt_append F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
index b5040b9680..33a2ef8f55 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
@@ -3182,6 +3182,7 @@ GLIBC_2.43 __memset_explicit_chk F
GLIBC_2.43 memalignment F
GLIBC_2.43 memset_explicit F
GLIBC_2.43 optctxt D 0x4
+GLIBC_2.43 opttextdomain D 0x4
GLIBC_2.43 umaxabs F
GLIBC_2.5 __readlinkat_chk F
GLIBC_2.5 inet6_opt_append F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
index 181a62bdd2..fe61be2d33 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
@@ -2818,6 +2818,7 @@ GLIBC_2.43 __memset_explicit_chk F
GLIBC_2.43 memalignment F
GLIBC_2.43 memset_explicit F
GLIBC_2.43 optctxt D 0x8
+GLIBC_2.43 opttextdomain D 0x8
GLIBC_2.43 umaxabs F
GLIBC_2.5 __readlinkat_chk F
GLIBC_2.5 inet6_opt_append F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
index 5c40dfc5b9..fc031b7542 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
@@ -2767,6 +2767,7 @@ GLIBC_2.43 __memset_explicit_chk F
GLIBC_2.43 memalignment F
GLIBC_2.43 memset_explicit F
GLIBC_2.43 optctxt D 0x8
+GLIBC_2.43 opttextdomain D 0x8
GLIBC_2.43 umaxabs F
GLIBC_2.5 __readlinkat_chk F
GLIBC_2.5 inet6_opt_append F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
index 3531f8fbed..d194315a5e 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
@@ -2786,4 +2786,5 @@ GLIBC_2.43 __memset_explicit_chk F
GLIBC_2.43 memalignment F
GLIBC_2.43 memset_explicit F
GLIBC_2.43 optctxt D 0x4
+GLIBC_2.43 opttextdomain D 0x4
GLIBC_2.43 umaxabs F
--
2.34.1
More information about the Libc-alpha
mailing list