[PATCH v18 00/11] Support translated long option names in getopt and argp

Vivien Kraus vivien@planete-kraus.eu
Sun Nov 23 17:07:27 GMT 2025


Dear glibc developers,

Thank you Adhemerval Zanella Netto for your feedback and help.  Some
of the issues you pointed out span across the whole series, so please
continue your review with this version, which should have the
modernized versions for all C tests, TAB indentation, and double space
at end of sentence.

Best regards,

Vivien

Vivien Kraus (11):
  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
  Add NEWS entry for getopt_long translated option names
  support: Document the correct macro name for (CMDLINE_OPTIONS)

 NEWS                                          |   2 +
 argp/Makefile                                 |  14 ++
 argp/argp-help.c                              |  76 ++++++-
 argp/argp-parse.c                             |   1 +
 argp/tst-argphelp-localized.c                 | 140 ++++++++++++
 argp/tst-argphelp-localized.po                |  23 ++
 argp/tst-argpusage-localized.c                |  80 +++++++
 manual/argp.texi                              |  25 ++-
 manual/getopt.texi                            |  81 ++++++-
 posix/Makefile                                |  39 ++++
 posix/Versions                                |   3 +
 posix/bits/getopt_ext.h                       |  17 ++
 posix/check-getopt-translations.pl            | 199 ++++++++++++++++++
 posix/getopt.c                                | 164 +++++++++++++--
 posix/getopt1.c                               | 105 ++++++++-
 posix/getopt_int.h                            |  14 +-
 .../standalone-multiple-getopt-collisions.po  |  45 ++++
 posix/tst-check-getopt-translations.sh        |  59 ++++++
 posix/tst-getopt_long_collision.c             |  69 ++++++
 posix/tst-getopt_long_collision.po            |  22 ++
 posix/tstgetoptl.c                            | 151 +++++++++++++
 posix/tstgetoptl.po                           |  27 +++
 support/test-driver.c                         |   2 +-
 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 +
 57 files changed, 1423 insertions(+), 37 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: 0f7b73f2ed70e783cd02ab77503645b03ee1d332
-- 
2.34.1



More information about the Libc-alpha mailing list