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

Vivien Kraus vivien@planete-kraus.eu
Sat Jun 6 07:13:59 GMT 2026


Dear glibc developers,

Since I now have a simple script that I can execute at night to run the
test suite on all of my commits, it’s easier for me to regularly assert
that my series is ready for your feedback.

And today it is!

Best regards,

Vivien

Le jeudi 23 avril 2026 à 18:03 +0200, Vivien Kraus a écrit :
> Dear glibc developers,
> 
> Since there is a new libc.abilist, here is an updated series.
> 
> 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
>   argp: do not display option name translations if __libc_enable_secure
>   posix: check for collisions in getopt_long
>   posix: Add a script for static validation of getopt_long PO files
>   posix, argp: Support multiple long option name translations
> 
>  NEWS                                          |  10 +
>  argp/Makefile                                 |  19 ++
>  argp/argp-help.c                              | 142 +++++++-
>  argp/argp-parse.c                             |   1 +
>  argp/tst-argphelp-localized.c                 | 141 ++++++++
>  argp/tst-argphelp-localized.po                |  26 ++
>  argp/tst-argpusage-localized.c                |  82 +++++
>  manual/argp.texi                              |  25 +-
>  manual/getopt.texi                            |  80 ++++-
>  manual/install.texi                           |   7 +-
>  posix/Makefile                                |  52 ++-
>  posix/Versions                                |   4 +
>  posix/bits/getopt_ext.h                       |   4 +
>  posix/check-getopt-translations.pl            | 199 +++++++++++
>  posix/getopt.c                                | 323 +++++++++++++++++-
>  posix/getopt1.c                               | 114 ++++++-
>  posix/getopt_int.h                            |  22 +-
>  .../standalone-multiple-getopt-collisions.po  |  45 +++
>  posix/tst-check-getopt-translations.sh        |  61 ++++
>  posix/tst-getopt_long_collision.c             | 130 +++++++
>  posix/tst-getopt_long_collision.po            |  32 ++
>  posix/tstgetoptl.c                            | 183 ++++++++++
>  posix/tstgetoptl.po                           |  26 ++
>  sysdeps/mach/hurd/i386/libc.abilist           |   2 +
>  sysdeps/mach/hurd/x86_64/libc.abilist         |   2 +
>  sysdeps/unix/sysv/linux/aarch64/libc.abilist  |   2 +
>  sysdeps/unix/sysv/linux/alpha/libc.abilist    |   2 +
>  sysdeps/unix/sysv/linux/arc/libc.abilist      |   2 +
>  sysdeps/unix/sysv/linux/arm/be/libc.abilist   |   2 +
>  sysdeps/unix/sysv/linux/arm/le/libc.abilist   |   2 +
>  sysdeps/unix/sysv/linux/csky/libc.abilist     |   2 +
>  sysdeps/unix/sysv/linux/hppa/libc.abilist     |   2 +
>  sysdeps/unix/sysv/linux/i386/libc.abilist     |   2 +
>  .../sysv/linux/loongarch/ilp32/libc.abilist   |   2 +
>  .../sysv/linux/loongarch/lp64/libc.abilist    |   2 +
>  .../sysv/linux/m68k/coldfire/libc.abilist     |   2 +
>  .../unix/sysv/linux/m68k/m680x0/libc.abilist  |   2 +
>  .../sysv/linux/microblaze/be/libc.abilist     |   2 +
>  .../sysv/linux/microblaze/le/libc.abilist     |   2 +
>  .../sysv/linux/mips/mips32/fpu/libc.abilist   |   2 +
>  .../sysv/linux/mips/mips32/nofpu/libc.abilist |   2 +
>  .../sysv/linux/mips/mips64/n32/libc.abilist   |   2 +
>  .../sysv/linux/mips/mips64/n64/libc.abilist   |   2 +
>  sysdeps/unix/sysv/linux/or1k/libc.abilist     |   2 +
>  .../linux/powerpc/powerpc32/fpu/libc.abilist  |   2 +
>  .../powerpc/powerpc32/nofpu/libc.abilist      |   2 +
>  .../linux/powerpc/powerpc64/be/libc.abilist   |   2 +
>  .../linux/powerpc/powerpc64/le/libc.abilist   |   2 +
>  .../unix/sysv/linux/riscv/rv32/libc.abilist   |   2 +
>  .../unix/sysv/linux/riscv/rv64/libc.abilist   |   2 +
>  sysdeps/unix/sysv/linux/s390/libc.abilist     |   2 +
>  sysdeps/unix/sysv/linux/sh/be/libc.abilist    |   2 +
>  sysdeps/unix/sysv/linux/sh/le/libc.abilist    |   2 +
>  .../sysv/linux/sparc/sparc32/libc.abilist     |   2 +
>  .../sysv/linux/sparc/sparc64/libc.abilist     |   2 +
>  .../unix/sysv/linux/x86_64/64/libc.abilist    |   2 +
>  .../unix/sysv/linux/x86_64/x32/libc.abilist   |   2 +
>  57 files changed, 1744 insertions(+), 52 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: 5880459251e74f2471a5a45c90aa6494756ac4bf


More information about the Libc-alpha mailing list