[PATCH v16 0/9] Support translated option names in getopt and argp

Vivien Kraus vivien@planete-kraus.eu
Thu Oct 30 20:13:05 GMT 2025


Dear glibc developers,

Oops, I did not know that the order of Perl hash keys is not
reproducible. It means the static checker fails sometimes.  When keys
are sorted, it works.

Best regards,

Vivien

Vivien Kraus (9):
  posix: allow getopt_long to match translated option names
  posix: let the getopt caller set the translation context
  argp: document translated names in --help and --usage
  posix: let the getopt caller choose the textdomain for translation
  posix: do not allow option name translations for secure programs
  posix, argp: Support deprecation of long option name translations
  argp: do not display option name translations if __libc_enable_secure
  posix: Add getopt_long_collision
  posix: Add a script for static validation of getopt_long PO files

 argp/Makefile                                 |  14 ++
 argp/argp-help.c                              |  83 +++++++-
 argp/argp-parse.c                             |   1 +
 argp/tst-argphelp-localized.c                 | 169 +++++++++++++++
 argp/tst-argphelp-localized.po                |  23 ++
 argp/tst-argpusage-localized.c                |  82 ++++++++
 manual/argp.texi                              |  25 ++-
 manual/getopt.texi                            |  81 ++++++-
 posix/Makefile                                |  40 ++++
 posix/Versions                                |   3 +
 posix/bits/getopt_ext.h                       |  17 ++
 posix/check-getopt-translations.pl            | 199 ++++++++++++++++++
 posix/getopt.c                                | 168 +++++++++++++--
 posix/getopt1.c                               | 102 ++++++++-
 posix/getopt_int.h                            |  14 +-
 .../standalone-multiple-getopt-collisions.po  |  45 ++++
 posix/tst-check-getopt-translations.sh        |  59 ++++++
 posix/tst-getopt_long_collision.c             |  83 ++++++++
 posix/tst-getopt_long_collision.po            |  22 ++
 posix/tstgetoptl.c                            | 144 +++++++++++++
 posix/tstgetoptl.po                           |  27 +++
 sysdeps/mach/hurd/i386/libc.abilist           |   3 +
 sysdeps/mach/hurd/x86_64/libc.abilist         |   3 +
 sysdeps/unix/sysv/linux/aarch64/libc.abilist  |   3 +
 sysdeps/unix/sysv/linux/alpha/libc.abilist    |   3 +
 sysdeps/unix/sysv/linux/arc/libc.abilist      |   3 +
 sysdeps/unix/sysv/linux/arm/be/libc.abilist   |   3 +
 sysdeps/unix/sysv/linux/arm/le/libc.abilist   |   3 +
 sysdeps/unix/sysv/linux/csky/libc.abilist     |   3 +
 sysdeps/unix/sysv/linux/hppa/libc.abilist     |   3 +
 sysdeps/unix/sysv/linux/i386/libc.abilist     |   3 +
 .../sysv/linux/loongarch/lp64/libc.abilist    |   3 +
 .../sysv/linux/m68k/coldfire/libc.abilist     |   3 +
 .../unix/sysv/linux/m68k/m680x0/libc.abilist  |   3 +
 .../sysv/linux/microblaze/be/libc.abilist     |   3 +
 .../sysv/linux/microblaze/le/libc.abilist     |   3 +
 .../sysv/linux/mips/mips32/fpu/libc.abilist   |   3 +
 .../sysv/linux/mips/mips32/nofpu/libc.abilist |   3 +
 .../sysv/linux/mips/mips64/n32/libc.abilist   |   3 +
 .../sysv/linux/mips/mips64/n64/libc.abilist   |   3 +
 sysdeps/unix/sysv/linux/or1k/libc.abilist     |   3 +
 .../linux/powerpc/powerpc32/fpu/libc.abilist  |   3 +
 .../powerpc/powerpc32/nofpu/libc.abilist      |   3 +
 .../linux/powerpc/powerpc64/be/libc.abilist   |   3 +
 .../linux/powerpc/powerpc64/le/libc.abilist   |   3 +
 .../unix/sysv/linux/riscv/rv32/libc.abilist   |   3 +
 .../unix/sysv/linux/riscv/rv64/libc.abilist   |   3 +
 .../unix/sysv/linux/s390/s390-32/libc.abilist |   3 +
 .../unix/sysv/linux/s390/s390-64/libc.abilist |   3 +
 sysdeps/unix/sysv/linux/sh/be/libc.abilist    |   3 +
 sysdeps/unix/sysv/linux/sh/le/libc.abilist    |   3 +
 .../sysv/linux/sparc/sparc32/libc.abilist     |   3 +
 .../sysv/linux/sparc/sparc64/libc.abilist     |   3 +
 .../unix/sysv/linux/x86_64/64/libc.abilist    |   3 +
 .../unix/sysv/linux/x86_64/x32/libc.abilist   |   3 +
 55 files changed, 1460 insertions(+), 43 deletions(-)
 create mode 100644 argp/tst-argphelp-localized.c
 create mode 100644 argp/tst-argphelp-localized.po
 create mode 100644 argp/tst-argpusage-localized.c
 create mode 100644 posix/check-getopt-translations.pl
 create mode 100644 posix/standalone-multiple-getopt-collisions.po
 create mode 100644 posix/tst-check-getopt-translations.sh
 create mode 100644 posix/tst-getopt_long_collision.c
 create mode 100644 posix/tst-getopt_long_collision.po
 create mode 100644 posix/tstgetoptl.c
 create mode 100644 posix/tstgetoptl.po


base-commit: ee946212fe3b45f5194a8bbffc1e855855874ff0
-- 
2.34.1



More information about the Libc-alpha mailing list